blob: 2bb382045fd1e70f8eafdd11fc360d1247a584df [file] [log] [blame]
{"version":3,"sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/fetch.js","../src/resolve.js","../src/config.js","../src/evaluate.js","../src/format-helpers.js","../src/instantiate.js","../src/systemjs-loader.js","../src/system.js"],"names":["baseURI","isBrowser","window","document","isNode","process","versions","node","isWindows","platform","match","envGlobal","self","global","hasSymbol","Symbol","createSymbol","name","getElementsByTagName","bases","href","location","slashIndex","split","lastIndexOf","substr","cwd","TypeError","replace","length","errArgs","Error","fileName","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","err","message","lineNumber","stack","originalErr","throwResolveError","relUrl","parentUrl","RangeError","resolveIfNotPlain","trim","parentProtocol","indexOf","firstChar","secondChar","pathname","parentIsPlain","undefined","segmented","output","segmentIndex","i","pop","push","substring","join","resolvedPromise","Promise","resolve","arrayValues","arr","values","iterator","iterable","keys","Object","keyIndex","next","value","done","Loader","this","registry","Registry","ensureInstantiated","module","ModuleNamespace","prototype","constructor","import","key","parent","loader","then","RESOLVE_INSTANTIATE","catch","addToError","RESOLVE","resolveInstantiate","ensureResolution","resolvedKey","resolved","get","iteratorSupport","REGISTRY","entries","map","set","namespace","has","hasOwnProperty","call","delete","BASE_OBJECT","baseObject","defineProperty","forEach","extendNamespace","enumerable","create","toStringTag","REGISTER_INTERNAL","RegisterLoader","registryDelete","deleted","records","linkRecord","lastRegister","trace","INSTANTIATE","instantiate","createLoadRecord","state","registration","importerSetters","loadError","evalError","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","load","link","instantiation","traceLoad","declare","definedExports","declared","default","__useDefault","changed","p","ContextualLoader","exports","resolveInstantiateDep","parentKey","traceDepMap","loads","deps","dynamicDeps","depMap","id","meta","url","ensureEvaluate","seen","doEvaluate","depLoad","depLink","nullContext","e","declarativeExecute","configurable","require","dynamicExecute","moduleDefault","__esModule","processAnonRegister","reject","instantiated","loadCnt","queueLoad","depsInstantiatePromises","Array","all","setter","instantiateDeps","processLoad","register","registerDynamic","freeze","noop","hasStringTag","emptyModule","parentModuleContext","CONFIG","METADATA","isWorker","importScripts","warn","msg","force","warnings","console","extend","a","b","prepend","extendMeta","_prepend","val","concat","supportsPreload","supportsPrefetch","preloadScript","createElement","rel","as","head","appendChild","Image","src","relList","supports","onerror","apply","arguments","scriptLoad","crossOrigin","integrity","workerImport","script","cleanup","error","removeEventListener","removeChild","type","charset","async","addEventListener","readMemberExpression","pParts","shift","applyPaths","baseURL","paths","mapMatch","getMapMatch","target","checkMap","curLen","len","bestMatch","fs","cjsRequireRegEx","fetchFetch","authorization","asBuffer","hasXhr","xhrFetch","opts","headers","Accept","credentials","fetch","res","ok","arrayBuffer","text","status","statusText","xhr","XMLHttpRequest","response","responseText","responseType","onreadystatechange","readyState","open","setRequestHeader","withCredentials","send","hasFetch","fetch$1","readFile","data","dataString","getParentMetadata","config","parentPluginIndex","parentMetadata","pluginKey","pluginArgument","pluginModule","packageKey","packageConfig","pluginFirst","packages","decanonicalize","parsed","parsePlugin","plugin","combinePluginParts","coreResolve","argument","doMap","packageName","relativeResolved","trailingSlash","packageResolveSync","metadata","skipExtensions","parentMap","parentMapMatch","mapped","doMapSync","normalized","pkgConfigMatch","getPackageConfigMatch","packageConfigKeys","createPackage","subPath","pkg","pkgKey","main","mapPath","addDefaultExtension","applyPackageConfigSync","packageResolve","createMeta","format","configured","pkgConfigPath","configLoader","pluginLoader","pkgConfig","setPkgConfig","loadPackageConfigPath","configPath","applyPackageConfig","extension","globals","nonce","sourceMap","encapsulateGlobal","cjsRequireDetection","cjsDeferDepsExecute","esModule","argumentKey","pluginIndex","defaultExtension","metaMatch","getMetaMatches","metaPattern","matchMeta","matchDepth","validMapping","path","interpolateConditional","conditionPromises","conditions","c","parseCondition","condition","conditionValues","prop","negate","packageConfigPaths","lastWildcard","exactMatch","packageConfigPath","Math","max","regEx","RegExp","wildcard","pkgMeta","matchFn","wildcardIndex","dotRel","exactMeta","sysConditions","conditionExport","conditionModule","negation","conditionExportIndex","resolveCondition","conditionObj","bool","m","interpolationRegEx","conditionalMatch","conditionValue","envConfigNames","envSet","cfg","envCallback","envConfig","envModule","getConfigItem","cfgItem","cloneObj","obj","maxDepth","clone","pkgName","prependConfig","hasBuffer","Buffer","toString","vm","useVm","curSystem","sourceMapPrefix","getSource","source","address","wrap","sourceMapString","lastLineIndex","JSON","stringify","btoa","unescape","encodeURIComponent","callCounter","preExec","System","SystemJS","postExec","windowOrigin","supportsScriptExec","evaluate","noWrap","body","documentElement","_e","setAttribute","scriptExec","_nodeRequire","runInThisContext","filename","eval","setAmdHelper","names","callback","errback","referer","splice","dynamicRequires","modules","define","factory","requireIndex","exportsIndex","moduleIndex","req","depValues","uri","contextualRequire","toUrl","normalizeSync","curRequire","curMetaDeps","requireAlias","commentRegEx","fnBracketRegEx","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","lastIndex","exec","amdGetCJSDeps","lastNamedDefine","multipleNamedDefines","curEsModule","wrapEsModuleExecute","amd","amdDefine","amdRequire","stripOrigin","requireResolve","request","parentId","getPathVars","moduleId","dirname","chrome","navigator","userAgent","protocol","hostname","port","stringRegEx","globalSnapshot","ignoredGlobalProps","globalIterator","globalName","getGlobalValue","globalValue","prepareGlobal","moduleName","encapsulate","oldGlobals","curDefine","g","singleGlobal","multipleExports","nodeRequire","supportsScriptLoad","setMetaEsModule","moduleValue","translateAndInstantiate","metaRegEx","metaParts","metaPartRegEx","curPart","metaString","metaName","metaValue","setMetaProperty","readMetaSyntax","pluginLoad","translate","traceOpts","translated","sanitizeSourceMap","detectRegisterFormat","esmRegEx","transpiler","depsPrefix","parse","transpile","calledInstantiate","result","bindings","amdRegEx","cjsExportsRegEx","metaDeps","registered","newModule","stringLocations","commentLocations","inLocation","locations","index","dep","getCJSDeps","pathVars","__cjsWrapper","args","cjsWrapper","hashBangRegEx","gl","exportName","retrieveGlobal","browser","leadingCommentAndMetaRegEx","leadingCommentAndMeta","codeStart","startsWith","originalName","file","sources","scriptSrc","scripts","curScript","currentScript","defer","__filename","SystemJSLoader","_loader","depCache","bundles","production","loadedBundles","wasm","setProduction","bind","isProduction","isBuilder","dev","build","normalize","booleanIndex","bestDepth","depth","resolveSync","matched","curModule","parts","loadBundlesAndDepCache","Module","base","decodeURI","_nodeModulePaths","locate","fetched","wasmBuffer","bytes","Uint8Array","WebAssembly","compile","importObj","imports","_export","Instance","wasmInstantiated","stringSource","TextDecoder","decode","isEnvConfig","defaultJSExtensions","v","packageLength","bundle","configNames","getConfig","configName","configItem","hasProxy","Proxy","option","registryWarn","method","isModule","version"],"mappings":"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","sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n var slashIndex = baseURI.lastIndexOf('/');\n if (slashIndex !== -1)\n baseURI = baseURI.substr(0, slashIndex + 1);\n}\nelse if (typeof process !== 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError (relUrl, parentUrl) {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n relUrl = relUrl.trim();\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||\n relUrl.length === 1 && (relUrl += '/')) ||\n firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = -1;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== -1) {\n if (segmented[i] === '/') {\n output.push(segmented.substring(segmentIndex, i + 1));\n segmentIndex = -1;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== -1)\n output.push(segmented.substr(segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace, REGISTRY }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace, REGISTRY } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, caching load and eval errors separately\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n var registryDelete = this.registry.delete;\n this.registry.delete = function (key) {\n var deleted = registryDelete.call(this, key);\n\n // also delete from register registry if linked\n if (records.hasOwnProperty(key) && !records[key].linkRecord) {\n delete records[key];\n deleted = true;\n }\n\n return deleted;\n };\n\n var records = {};\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: records\n };\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n loadError: undefined,\n evalError: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = this.registry[REGISTRY];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n var link = instantiated.linkRecord;\n\n // if already beaten to done, return\n if (!link) {\n if (instantiated.module)\n return instantiated.module;\n throw instantiated.evalError;\n }\n\n return deepInstantiateDeps(loader, instantiated, link, registry, state)\n .then(function () {\n return ensureEvaluate(loader, instantiated, link, registry, state, undefined);\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (load.loadError)\n return Promise.reject(load.loadError);\n return instantiate(loader, load, load.linkRecord, registry, state);\n }\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n if (load.loadError)\n return Promise.reject(load.loadError);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = link.moduleObj.__useDefault = {};\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n return load;\n })\n .catch(function (err) {\n load.linkRecord = undefined;\n throw load.loadError = load.loadError || addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = resolvedKey;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n if (load && load.loadError)\n throw load.loadError;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n dynamicDeps: [],\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var definedExports = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n if (typeof name === 'object') {\n var changed = false;\n for (var p in name) {\n value = name[p];\n if (p !== '__useDefault' && (!(p in moduleObj) || moduleObj[p] !== value)) {\n changed = true;\n moduleObj[p] = value;\n }\n }\n if (changed === false)\n return value;\n }\n else {\n if ((definedExports || name in moduleObj) && moduleObj[name] === value)\n return value;\n moduleObj[name] = value;\n }\n\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports) {\n link.moduleObj = moduleObj = declared.exports;\n definedExports = true;\n }\n}\n\nfunction instantiateDeps (loader, load, link, registry, state) {\n if (link.depsInstantiatePromise)\n return link.depsInstantiatePromise;\n\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && link.depMap || (link.depMap = {}));\n\n var depsInstantiatePromise = Promise.all(depsInstantiatePromises)\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n if (instantiation.loadError)\n throw instantiation.loadError;\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n\n return load;\n });\n\n if (loader.trace)\n depsInstantiatePromise = depsInstantiatePromise.then(function () {\n traceLoad(loader, load, link);\n return load;\n });\n\n depsInstantiatePromise = depsInstantiatePromise.catch(function (err) {\n // throw up the instantiateDeps stack\n link.depsInstantiatePromise = undefined;\n throw addToError(err, 'Loading ' + load.key);\n });\n\n depsInstantiatePromise.catch(function () {});\n\n return link.depsInstantiatePromise = depsInstantiatePromise;\n}\n\nfunction deepInstantiateDeps (loader, load, link, registry, state) {\n return new Promise(function (resolve, reject) {\n var seen = [];\n var loadCnt = 0;\n function queueLoad (load) {\n var link = load.linkRecord;\n if (!link)\n return;\n\n if (seen.indexOf(load) !== -1)\n return;\n seen.push(load);\n\n loadCnt++;\n instantiateDeps(loader, load, link, registry, state)\n .then(processLoad, reject);\n }\n function processLoad (load) {\n loadCnt--;\n var link = load.linkRecord;\n if (link) {\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n if (!(depLoad instanceof ModuleNamespace))\n queueLoad(depLoad);\n }\n }\n if (loadCnt === 0)\n resolve();\n }\n queueLoad(load);\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id, .key\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n this.meta = {\n url: key\n // scriptElement: null\n };\n}\n/*ContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};*/\nContextualLoader.prototype.import = function (key) {\n if (this.loader.trace)\n this.loader.loads[this.key].dynamicDeps.push(key);\n return this.loader.import(key, this.key);\n};\n/*ContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};*/\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (load.evalError)\n throw load.evalError;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err)\n throw err;\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return '__useDefault' in module ? module.__useDefault : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLoad.evalError)\n err = depLoad.evalError;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err) {\n load.linkRecord = undefined;\n load.evalError = addToError(err, 'Evaluating ' + load.key);\n return load.evalError;\n }\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = moduleObj.__useDefault = exports;\n },\n get: function () {\n return moduleObj.__useDefault;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.__useDefault)\n moduleObj.default = moduleObj.__useDefault = module.exports;\n\n var moduleDefault = moduleObj.default;\n\n // __esModule flag extension support via lifting\n if (moduleDefault && moduleDefault.__esModule) {\n for (var p in moduleDefault) {\n if (Object.hasOwnProperty.call(moduleDefault, p))\n moduleObj[p] = moduleDefault[p];\n }\n }\n }\n }\n\n // dispose link record\n load.linkRecord = undefined;\n\n if (err)\n return load.evalError = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\r\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\r\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\r\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\r\n\r\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\r\n\r\nexport var resolvedPromise = Promise.resolve();\r\nexport function noop () {};\r\n\r\nexport var emptyModule = new ModuleNamespace({});\r\n\r\nexport function protectedCreateNamespace (bindings) {\r\n if (bindings instanceof ModuleNamespace)\r\n return bindings;\r\n\r\n if (bindings && bindings.__esModule)\r\n return new ModuleNamespace(bindings);\r\n\r\n return new ModuleNamespace({ default: bindings, __useDefault: bindings });\r\n}\r\n\r\nvar hasStringTag;\r\nexport function isModule (m) {\r\n if (hasStringTag === undefined)\r\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\r\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\r\n}\r\n\r\nexport var CONFIG = createSymbol('loader-config');\r\nexport var METADATA = createSymbol('metadata');\r\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\r\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\r\n\r\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\r\n\r\nexport function warn (msg, force) {\r\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\r\n console.warn(msg);\r\n}\r\n\r\nexport function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {\r\n var bytes = new Uint8Array(wasmBuffer);\r\n\r\n // detect by leading bytes\r\n // Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node\r\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\r\n return WebAssembly.compile(wasmBuffer).then(function (m) {\r\n var deps = [];\r\n var setters = [];\r\n var importObj = {};\r\n\r\n // we can only set imports if supported (eg Safari doesnt support)\r\n if (WebAssembly.Module.imports)\r\n WebAssembly.Module.imports(m).forEach(function (i) {\r\n var key = i.module;\r\n setters.push(function (m) {\r\n importObj[key] = m;\r\n });\r\n if (deps.indexOf(key) === -1)\r\n deps.push(key);\r\n });\r\n loader.register(deps, function (_export) {\r\n return {\r\n setters: setters,\r\n execute: function () {\r\n _export(new WebAssembly.Instance(m, importObj).exports);\r\n }\r\n };\r\n });\r\n processAnonRegister();\r\n\r\n return true;\r\n });\r\n }\r\n\r\n return Promise.resolve(false);\r\n}\r\n\r\nvar parentModuleContext;\r\nexport function loadNodeModule (key, baseURL) {\r\n if (key[0] === '.')\r\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\r\n\r\n if (!parentModuleContext) {\r\n var Module = this._nodeRequire('module');\r\n var base = decodeURI(baseURL.substr(isWindows ? 8 : 7));\r\n parentModuleContext = new Module(base);\r\n parentModuleContext.paths = Module._nodeModulePaths(base);\r\n }\r\n return parentModuleContext.require(key);\r\n}\r\n\r\nexport function extend (a, b) {\r\n for (var p in b) {\r\n if (!Object.hasOwnProperty.call(b, p))\r\n continue;\r\n a[p] = b[p];\r\n }\r\n return a;\r\n}\r\n\r\nexport function prepend (a, b) {\r\n for (var p in b) {\r\n if (!Object.hasOwnProperty.call(b, p))\r\n continue;\r\n if (a[p] === undefined)\r\n a[p] = b[p];\r\n }\r\n return a;\r\n}\r\n\r\n// meta first-level extends where:\r\n// array + array appends\r\n// object + object extends\r\n// other properties replace\r\nexport function extendMeta (a, b, _prepend) {\r\n for (var p in b) {\r\n if (!Object.hasOwnProperty.call(b, p))\r\n continue;\r\n var val = b[p];\r\n if (a[p] === undefined)\r\n a[p] = val;\r\n else if (val instanceof Array && a[p] instanceof Array)\r\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\r\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\r\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\r\n else if (!_prepend)\r\n a[p] = val;\r\n }\r\n}\r\n\r\nvar supportsPreload = false, supportsPrefetch = false;\r\nif (isBrowser)\r\n (function () {\r\n var relList = document.createElement('link').relList;\r\n if (relList && relList.supports) {\r\n supportsPrefetch = true;\r\n try {\r\n supportsPreload = relList.supports('preload');\r\n }\r\n catch (e) {}\r\n }\r\n })();\r\n\r\nexport function preloadScript (url) {\r\n // fallback to old fashioned image technique which still works in safari\r\n if (!supportsPreload && !supportsPrefetch) {\r\n var preloadImage = new Image();\r\n preloadImage.src = url;\r\n return;\r\n }\r\n\r\n var link = document.createElement('link');\r\n if (supportsPreload) {\r\n link.rel = 'preload';\r\n link.as = 'script';\r\n }\r\n else {\r\n // this works for all except Safari (detected by relList.supports lacking)\r\n link.rel = 'prefetch';\r\n }\r\n link.href = url;\r\n document.head.appendChild(link);\r\n}\r\n\r\nfunction workerImport (src, resolve, reject) {\r\n try {\r\n importScripts(src);\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n resolve();\r\n}\r\n\r\nif (isBrowser) {\r\n var onerror = window.onerror;\r\n window.onerror = function globalOnerror (msg, src) {\r\n if (onerror)\r\n onerror.apply(this, arguments);\r\n };\r\n}\r\n\r\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\r\n // percent encode just \"#\" for HTTP requests\r\n src = src.replace(/#/g, '%23');\r\n\r\n // subresource integrity is not supported in web workers\r\n if (isWorker)\r\n return workerImport(src, resolve, reject);\r\n\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.charset = 'utf-8';\r\n script.async = true;\r\n\r\n if (crossOrigin)\r\n script.crossOrigin = crossOrigin;\r\n if (integrity)\r\n script.integrity = integrity;\r\n\r\n script.addEventListener('load', load, false);\r\n script.addEventListener('error', error, false);\r\n\r\n script.src = src;\r\n document.head.appendChild(script);\r\n\r\n function load () {\r\n resolve();\r\n cleanup();\r\n }\r\n\r\n // note this does not catch execution errors\r\n function error (err) {\r\n cleanup();\r\n reject(new Error('Fetching ' + src));\r\n }\r\n\r\n function cleanup () {\r\n script.removeEventListener('load', load, false);\r\n script.removeEventListener('error', error, false);\r\n document.head.removeChild(script);\r\n }\r\n}\r\n\r\nexport function readMemberExpression (p, value) {\r\n var pParts = p.split('.');\r\n while (pParts.length)\r\n value = value[pParts.shift()];\r\n return value;\r\n}\r\n\r\n// separate out paths cache as a baseURL lock process\r\nexport function applyPaths (baseURL, paths, key) {\r\n var mapMatch = getMapMatch(paths, key);\r\n if (mapMatch) {\r\n var target = paths[mapMatch] + key.substr(mapMatch.length);\r\n\r\n var resolved = resolveIfNotPlain(target, baseURI);\r\n if (resolved !== undefined)\r\n return resolved;\r\n\r\n return baseURL + target;\r\n }\r\n else if (key.indexOf(':') !== -1) {\r\n return key;\r\n }\r\n else {\r\n return baseURL + key;\r\n }\r\n}\r\n\r\nfunction checkMap (p) {\r\n var name = this.name;\r\n // can add ':' here if we want paths to match the behaviour of map\r\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\r\n var curLen = p.split('/').length;\r\n if (curLen > this.len) {\r\n this.match = p;\r\n this.len = curLen;\r\n }\r\n }\r\n}\r\n\r\nexport function getMapMatch (map, name) {\r\n if (Object.hasOwnProperty.call(map, name))\r\n return name;\r\n\r\n var bestMatch = {\r\n name: name,\r\n match: undefined,\r\n len: 0\r\n };\r\n\r\n Object.keys(map).forEach(checkMap, bestMatch);\r\n\r\n return bestMatch.match;\r\n}\r\n\r\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\r\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)\\s*\\)/g\r\n","import { isWindows } from './common.js';\r\n\r\n/*\r\n * Source loading\r\n */\r\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\r\n // fetch doesn't support file:/// urls\r\n if (url.substr(0, 8) === 'file:///') {\r\n if (hasXhr)\r\n return xhrFetch(url, authorization, integrity, asBuffer);\r\n else\r\n throw new Error('Unable to fetch file URLs in this environment.');\r\n }\r\n\r\n // percent encode just \"#\" for HTTP requests\r\n url = url.replace(/#/g, '%23');\r\n\r\n var opts = {\r\n // NB deprecate\r\n headers: { Accept: 'application/x-es-module, */*' }\r\n };\r\n\r\n if (integrity)\r\n opts.integrity = integrity;\r\n\r\n if (authorization) {\r\n if (typeof authorization == 'string')\r\n opts.headers['Authorization'] = authorization;\r\n opts.credentials = 'include';\r\n }\r\n\r\n return fetch(url, opts)\r\n .then(function(res) {\r\n if (res.ok)\r\n return asBuffer ? res.arrayBuffer() : res.text();\r\n else\r\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\r\n });\r\n}\r\n\r\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\r\n return new Promise(function (resolve, reject) {\r\n // percent encode just \"#\" for HTTP requests\r\n url = url.replace(/#/g, '%23');\r\n\r\n var xhr = new XMLHttpRequest();\r\n if (asBuffer)\r\n xhr.responseType = 'arraybuffer';\r\n function load() {\r\n resolve(asBuffer ? xhr.response : xhr.responseText);\r\n }\r\n function error() {\r\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\r\n }\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n // in Chrome on file:/// URLs, status is 0\r\n if (xhr.status == 0) {\r\n if (xhr.response) {\r\n load();\r\n }\r\n else {\r\n // when responseText is empty, wait for load or error event\r\n // to inform if it is a 404 or empty file\r\n xhr.addEventListener('error', error);\r\n xhr.addEventListener('load', load);\r\n }\r\n }\r\n else if (xhr.status === 200) {\r\n load();\r\n }\r\n else {\r\n error();\r\n }\r\n }\r\n };\r\n xhr.open(\"GET\", url, true);\r\n\r\n if (xhr.setRequestHeader) {\r\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\r\n // can set \"authorization: true\" to enable withCredentials only\r\n if (authorization) {\r\n if (typeof authorization == 'string')\r\n xhr.setRequestHeader('Authorization', authorization);\r\n xhr.withCredentials = true;\r\n }\r\n }\r\n\r\n xhr.send(null);\r\n });\r\n}\r\n\r\nvar fs;\r\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\r\n if (url.substr(0, 8) != 'file:///') {\r\n if (hasFetch)\r\n return fetchFetch(url, authorization, integrity, asBuffer);\r\n else\r\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node without fetch.'));\r\n }\r\n \r\n fs = fs || require('fs');\r\n if (isWindows)\r\n url = url.replace(/\\//g, '\\\\').substr(8);\r\n else\r\n url = url.substr(7);\r\n\r\n return new Promise(function (resolve, reject) {\r\n fs.readFile(url, function(err, data) {\r\n if (err) {\r\n return reject(err);\r\n }\r\n else {\r\n if (asBuffer) {\r\n resolve(data);\r\n }\r\n else {\r\n // Strip Byte Order Mark out if it's the leading char\r\n var dataString = data + '';\r\n if (dataString[0] === '\\ufeff')\r\n dataString = dataString.substr(1);\r\n\r\n resolve(dataString);\r\n }\r\n }\r\n });\r\n });\r\n}\r\n\r\nfunction noFetch () {\r\n throw new Error('No fetch method is defined for this environment.');\r\n}\r\n\r\nvar fetchFunction;\r\n\r\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\r\nvar hasFetch = typeof fetch !== 'undefined';\r\n\r\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\r\n fetchFunction = fetchFetch;\r\nelse if (hasXhr)\r\n fetchFunction = xhrFetch;\r\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\r\n fetchFunction = nodeFetch;\r\nelse\r\n fetchFunction = noFetch;\r\n\r\nexport default fetchFunction;\r\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\r\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\r\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\r\nimport { setPkgConfig, createPackage } from './config.js';\r\nimport fetch from './fetch.js';\r\n\r\nexport function createMetadata () {\r\n return {\r\n pluginKey: undefined,\r\n pluginArgument: undefined,\r\n pluginModule: undefined,\r\n packageKey: undefined,\r\n packageConfig: undefined,\r\n load: undefined\r\n };\r\n}\r\n\r\nfunction getCoreParentMetadata (loader, config, parentKey) {\r\n var parentMetadata = createMetadata();\r\n\r\n if (parentKey) {\r\n // detect parent plugin\r\n // we just need pluginKey to be truthy for package configurations\r\n // so we duplicate it as pluginArgument - although not correct its not used\r\n var parentPluginIndex;\r\n if (config.pluginFirst) {\r\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\r\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\r\n }\r\n else {\r\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\r\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\r\n }\r\n }\r\n\r\n return parentMetadata;\r\n}\r\n\r\nfunction getParentMetadata (loader, config, parentKey) {\r\n var parentMetadata = createMetadata();\r\n\r\n if (parentKey) {\r\n // detect parent plugin\r\n // we just need pluginKey to be truthy for package configurations\r\n // so we duplicate it as pluginArgument - although not correct its not used\r\n var parentPluginIndex;\r\n if (config.pluginFirst) {\r\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\r\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\r\n }\r\n else {\r\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\r\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\r\n }\r\n\r\n // detect parent package\r\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\r\n if (parentMetadata.packageKey)\r\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\r\n }\r\n\r\n return parentMetadata;\r\n}\r\n\r\nexport function normalize (key, parentKey) {\r\n var config = this[CONFIG];\r\n\r\n var metadata = createMetadata();\r\n var parentMetadata = getParentMetadata(this, config, parentKey);\r\n\r\n var loader = this;\r\n\r\n return Promise.resolve()\r\n\r\n // boolean conditional\r\n .then(function () {\r\n // first we normalize the conditional\r\n var booleanIndex = key.lastIndexOf('#?');\r\n\r\n if (booleanIndex === -1)\r\n return Promise.resolve(key);\r\n\r\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\r\n\r\n // in builds, return normalized conditional\r\n /*if (this.builder)\r\n return this.resolve(conditionObj.module, parentKey)\r\n .then(function (conditionModule) {\r\n conditionObj.module = conditionModule;\r\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\r\n });*/\r\n\r\n return resolveCondition.call(loader, conditionObj, parentKey, true)\r\n .then(function (conditionValue) {\r\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\r\n });\r\n })\r\n\r\n // plugin\r\n .then(function (key) {\r\n var parsed = parsePlugin(config.pluginFirst, key);\r\n\r\n if (!parsed)\r\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\r\n\r\n metadata.pluginKey = parsed.plugin;\r\n\r\n return Promise.all([\r\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\r\n loader.resolve(parsed.plugin, parentKey)\r\n ])\r\n .then(function (normalized) {\r\n metadata.pluginArgument = normalized[0];\r\n metadata.pluginKey = normalized[1];\r\n\r\n // don't allow a plugin to load itself\r\n if (metadata.pluginArgument === metadata.pluginKey)\r\n throw new Error('Plugin ' + metadata.pluginArgument + ' cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.');\r\n\r\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\r\n });\r\n })\r\n .then(function (normalized) {\r\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\r\n })\r\n .then(function (normalized) {\r\n setMeta.call(loader, config, normalized, metadata);\r\n\r\n if (metadata.pluginKey || !metadata.load.loader)\r\n return normalized;\r\n\r\n // loader by configuration\r\n // normalizes to parent to support package loaders\r\n return loader.resolve(metadata.load.loader, normalized)\r\n .then(function (pluginKey) {\r\n metadata.pluginKey = pluginKey;\r\n metadata.pluginArgument = normalized;\r\n return normalized;\r\n });\r\n })\r\n .then(function (normalized) {\r\n loader[METADATA][normalized] = metadata;\r\n return normalized;\r\n });\r\n}\r\n\r\n// normalization function used for registry keys\r\n// just does coreResolve without map\r\nexport function decanonicalize (config, key) {\r\n var parsed = parsePlugin(config.pluginFirst, key);\r\n\r\n // plugin\r\n if (parsed) {\r\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\r\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false, false), pluginKey);\r\n }\r\n\r\n return coreResolve.call(this, config, key, undefined, false, false);\r\n}\r\n\r\nexport function normalizeSync (key, parentKey) {\r\n var config = this[CONFIG];\r\n\r\n // normalizeSync is metadataless, so create metadata\r\n var metadata = createMetadata();\r\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\r\n\r\n var parsed = parsePlugin(config.pluginFirst, key);\r\n\r\n // plugin\r\n if (parsed) {\r\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\r\n return combinePluginParts(config.pluginFirst,\r\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\r\n metadata.pluginKey);\r\n }\r\n\r\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\r\n}\r\n\r\nexport function coreResolve (config, key, parentKey, doMap, packageName) {\r\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\r\n\r\n // standard URL resolution\r\n if (relativeResolved)\r\n return applyPaths(config.baseURL, config.paths, relativeResolved);\r\n\r\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\r\n if (doMap) {\r\n var mapMatch = getMapMatch(config.map, key);\r\n\r\n if (mapMatch) {\r\n key = config.map[mapMatch] + key.substr(mapMatch.length);\r\n\r\n relativeResolved = resolveIfNotPlain(key, baseURI);\r\n if (relativeResolved)\r\n return applyPaths(config.baseURL, config.paths, relativeResolved);\r\n }\r\n }\r\n\r\n if (this.registry.has(key))\r\n return key;\r\n\r\n if (key.substr(0, 6) === '@node/')\r\n return key;\r\n\r\n var trailingSlash = packageName && key[key.length - 1] !== '/';\r\n var resolved = applyPaths(config.baseURL, config.paths, trailingSlash ? key + '/' : key);\r\n if (trailingSlash)\r\n return resolved.substr(0, resolved.length - 1);\r\n return resolved;\r\n}\r\n\r\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\r\n // ignore . since internal maps handled by standard package resolution\r\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\r\n var parentMap = parentMetadata.packageConfig.map;\r\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\r\n\r\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\r\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\r\n if (mapped)\r\n return mapped;\r\n }\r\n }\r\n\r\n var normalized = coreResolve.call(this, config, key, parentKey, true, true);\r\n\r\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\r\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\r\n\r\n if (!metadata.packageKey)\r\n return normalized;\r\n\r\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\r\n metadata.packageKey = undefined;\r\n return normalized;\r\n }\r\n\r\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\r\n\r\n var subPath = normalized.substr(metadata.packageKey.length + 1);\r\n\r\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\r\n}\r\n\r\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\r\n var loader = this;\r\n\r\n return resolvedPromise\r\n .then(function () {\r\n // ignore . since internal maps handled by standard package resolution\r\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\r\n var parentMap = parentMetadata.packageConfig.map;\r\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\r\n\r\n if (parentMapMatch)\r\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\r\n }\r\n\r\n return resolvedPromise;\r\n })\r\n .then(function (mapped) {\r\n if (mapped)\r\n return mapped;\r\n\r\n // apply map, core, paths, contextual package map\r\n var normalized = coreResolve.call(loader, config, key, parentKey, true, true);\r\n\r\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\r\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\r\n\r\n if (!metadata.packageKey)\r\n return Promise.resolve(normalized);\r\n\r\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\r\n metadata.packageKey = undefined;\r\n metadata.load = createMeta();\r\n metadata.load.format = 'json';\r\n // ensure no loader\r\n metadata.load.loader = '';\r\n return Promise.resolve(normalized);\r\n }\r\n\r\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\r\n\r\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\r\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\r\n\r\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\r\n .then(function () {\r\n var subPath = normalized.substr(metadata.packageKey.length + 1);\r\n\r\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\r\n });\r\n });\r\n}\r\n\r\nfunction createMeta () {\r\n return {\r\n extension: '',\r\n deps: undefined,\r\n format: undefined,\r\n loader: undefined,\r\n scriptLoad: undefined,\r\n globals: undefined,\r\n nonce: undefined,\r\n integrity: undefined,\r\n sourceMap: undefined,\r\n exports: undefined,\r\n encapsulateGlobal: false,\r\n crossOrigin: undefined,\r\n cjsRequireDetection: true,\r\n cjsDeferDepsExecute: false,\r\n esModule: false\r\n };\r\n}\r\n\r\nfunction setMeta (config, key, metadata) {\r\n metadata.load = metadata.load || createMeta();\r\n\r\n // apply wildcard metas\r\n var bestDepth = 0;\r\n var wildcardIndex;\r\n for (var module in config.meta) {\r\n wildcardIndex = module.indexOf('*');\r\n if (wildcardIndex === -1)\r\n continue;\r\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\r\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\r\n var depth = module.split('/').length;\r\n if (depth > bestDepth)\r\n bestDepth = depth;\r\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\r\n }\r\n }\r\n\r\n // apply exact meta\r\n if (config.meta[key])\r\n extendMeta(metadata.load, config.meta[key], false);\r\n\r\n // apply package meta\r\n if (metadata.packageKey) {\r\n var subPath = key.substr(metadata.packageKey.length + 1);\r\n\r\n var meta = {};\r\n if (metadata.packageConfig.meta) {\r\n var bestDepth = 0;\r\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\r\n if (matchDepth > bestDepth)\r\n bestDepth = matchDepth;\r\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\r\n });\r\n\r\n extendMeta(metadata.load, meta, false);\r\n }\r\n\r\n // format\r\n if (metadata.packageConfig.format && !metadata.pluginKey && !metadata.load.loader)\r\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\r\n }\r\n}\r\n\r\nfunction parsePlugin (pluginFirst, key) {\r\n var argumentKey;\r\n var pluginKey;\r\n\r\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\r\n\r\n if (pluginIndex === -1)\r\n return;\r\n\r\n if (pluginFirst) {\r\n argumentKey = key.substr(pluginIndex + 1);\r\n pluginKey = key.substr(0, pluginIndex);\r\n }\r\n else {\r\n argumentKey = key.substr(0, pluginIndex);\r\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\r\n }\r\n\r\n return {\r\n argument: argumentKey,\r\n plugin: pluginKey\r\n };\r\n}\r\n\r\n// put key back together after parts have been normalized\r\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\r\n if (pluginFirst)\r\n return pluginKey + '!' + argumentKey;\r\n else\r\n return argumentKey + '!' + pluginKey;\r\n}\r\n\r\n/*\r\n * Package Configuration Extension\r\n *\r\n * Example:\r\n *\r\n * SystemJS.packages = {\r\n * jquery: {\r\n * main: 'index.js', // when not set, package key is requested directly\r\n * format: 'amd',\r\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\r\n * modules: {\r\n * '*.ts': {\r\n * loader: 'typescript'\r\n * },\r\n * 'vendor/sizzle.js': {\r\n * format: 'global'\r\n * }\r\n * },\r\n * map: {\r\n * // map internal require('sizzle') to local require('./vendor/sizzle')\r\n * sizzle: './vendor/sizzle.js',\r\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\r\n * './vendor/another.js': './another/index.js',\r\n * // test.js / test -> lib/test.js\r\n * './test.js': './lib/test.js',\r\n *\r\n * // environment-specific map configurations\r\n * './index.js': {\r\n * '~browser': './index-node.js',\r\n * './custom-condition.js|~export': './index-custom.js'\r\n * }\r\n * },\r\n * // allows for setting package-prefixed depCache\r\n * // keys are normalized module keys relative to the package itself\r\n * depCache: {\r\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\r\n * './index.js': ['./test'],\r\n * './test.js': ['external-dep'],\r\n * 'external-dep/path.js': ['./another.js']\r\n * }\r\n * }\r\n * };\r\n *\r\n * Then:\r\n * import 'jquery' -> jquery/index.js\r\n * import 'jquery/submodule' -> jquery/submodule.js\r\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\r\n * import 'jquery/vendor/another' -> another/index.js\r\n *\r\n * Detailed Behaviours\r\n * - main can have a leading \"./\" can be added optionally\r\n * - map and defaultExtension are applied to the main\r\n * - defaultExtension adds the extension only if the exact extension is not present\r\n\r\n * - if a meta value is available for a module, map and defaultExtension are skipped\r\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\r\n * - condition module map is '@env' module in package or '@system-env' globally\r\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\r\n * - internal package map targets cannot use boolean conditionals\r\n *\r\n * Package Configuration Loading\r\n *\r\n * Not all packages may already have their configuration present in the System config\r\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\r\n * a request, will first request a \".json\" file by the package key to derive the package\r\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\r\n * case in SystemJS.\r\n *\r\n * Example:\r\n *\r\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\r\n *\r\n * // will first request 'packages/new-package/package.json' for the package config\r\n * // before completing the package request to 'packages/new-package/path'\r\n * SystemJS.import('packages/new-package/path');\r\n *\r\n * // will first request 'packages/test/package.json' before the main\r\n * SystemJS.import('packages/test');\r\n *\r\n * When a package matches packageConfigPaths, it will always send a config request for\r\n * the package configuration.\r\n * The package key itself is taken to be the match up to and including the last wildcard\r\n * or trailing slash.\r\n * The most specific package config path will be used.\r\n * Any existing package configurations for the package will deeply merge with the\r\n * package config, with the existing package configurations taking preference.\r\n * To opt-out of the package configuration request for a package that matches\r\n * packageConfigPaths, use the { configured: true } package config option.\r\n *\r\n */\r\n\r\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\r\n // don't apply extensions to folders or if defaultExtension = false\r\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\r\n return subPath;\r\n\r\n var metaMatch = false;\r\n\r\n // exact meta or meta with any content after the last wildcard skips extension\r\n if (pkg.meta)\r\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\r\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\r\n return metaMatch = true;\r\n });\r\n\r\n // exact global meta or meta with any content after the last wildcard skips extension\r\n if (!metaMatch && config.meta)\r\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\r\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\r\n return metaMatch = true;\r\n });\r\n\r\n if (metaMatch)\r\n return subPath;\r\n\r\n // work out what the defaultExtension is and add if not there already\r\n var defaultExtension = '.' + pkg.defaultExtension;\r\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\r\n return subPath + defaultExtension;\r\n else\r\n return subPath;\r\n}\r\n\r\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\r\n // main\r\n if (!subPath) {\r\n if (pkg.main)\r\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\r\n else\r\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\r\n // NB can add a default package main convention here\r\n // if it becomes internal to the package then it would no longer be an exit path\r\n return pkgKey;\r\n }\r\n\r\n // map config checking without then with extensions\r\n if (pkg.map) {\r\n var mapPath = './' + subPath;\r\n\r\n var mapMatch = getMapMatch(pkg.map, mapPath);\r\n\r\n // we then check map with the default extension adding\r\n if (!mapMatch) {\r\n mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\r\n if (mapPath !== './' + subPath)\r\n mapMatch = getMapMatch(pkg.map, mapPath);\r\n }\r\n if (mapMatch) {\r\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\r\n if (mapped)\r\n return mapped;\r\n }\r\n }\r\n\r\n // normal package resolution\r\n return pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\r\n}\r\n\r\nfunction validMapping (mapMatch, mapped, path) {\r\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\r\n // but only if the path is exactly ./x and not ./x/z\r\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\r\n return false;\r\n\r\n return true;\r\n}\r\n\r\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\r\n if (path[path.length - 1] === '/')\r\n path = path.substr(0, path.length - 1);\r\n var mapped = pkg.map[mapMatch];\r\n\r\n if (typeof mapped === 'object')\r\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\r\n\r\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\r\n return;\r\n\r\n return packageResolveSync.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\r\n}\r\n\r\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\r\n // main\r\n if (!subPath) {\r\n if (pkg.main)\r\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\r\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\r\n else\r\n // NB can add a default package main convention here\r\n // if it becomes internal to the package then it would no longer be an exit path\r\n return Promise.resolve(pkgKey);\r\n }\r\n\r\n // map config checking without then with extensions\r\n var mapPath, mapMatch;\r\n\r\n if (pkg.map) {\r\n mapPath = './' + subPath;\r\n mapMatch = getMapMatch(pkg.map, mapPath);\r\n\r\n // we then check map with the default extension adding\r\n if (!mapMatch) {\r\n mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\r\n if (mapPath !== './' + subPath)\r\n mapMatch = getMapMatch(pkg.map, mapPath);\r\n }\r\n }\r\n\r\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\r\n .then(function (mapped) {\r\n if (mapped)\r\n return Promise.resolve(mapped);\r\n\r\n // normal package resolution / fallback resolution for no conditional match\r\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions));\r\n });\r\n}\r\n\r\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\r\n if (path[path.length - 1] === '/')\r\n path = path.substr(0, path.length - 1);\r\n\r\n var mapped = pkg.map[mapMatch];\r\n\r\n if (typeof mapped === 'string') {\r\n if (!validMapping(mapMatch, mapped, path))\r\n return resolvedPromise;\r\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\r\n .then(function (normalized) {\r\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\r\n });\r\n }\r\n\r\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\r\n /*if (loader.builder)\r\n return Promise.resolve(pkgKey + '/#:' + path);*/\r\n\r\n // we load all conditions upfront\r\n var conditionPromises = [];\r\n var conditions = [];\r\n for (var e in mapped) {\r\n var c = parseCondition(e);\r\n conditions.push({\r\n condition: c,\r\n map: mapped[e]\r\n });\r\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\r\n }\r\n\r\n // map object -> conditional map\r\n return Promise.all(conditionPromises)\r\n .then(function (conditionValues) {\r\n // first map condition to match is used\r\n for (var i = 0; i < conditions.length; i++) {\r\n var c = conditions[i].condition;\r\n var value = readMemberExpression(c.prop, '__useDefault' in conditionValues[i] ? conditionValues[i].__useDefault : conditionValues[i]);\r\n if (!c.negate && value || c.negate && !value)\r\n return conditions[i].map;\r\n }\r\n })\r\n .then(function (mapped) {\r\n if (mapped) {\r\n if (!validMapping(mapMatch, mapped, path))\r\n return resolvedPromise;\r\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\r\n .then(function (normalized) {\r\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\r\n });\r\n }\r\n\r\n // no environment match -> fallback to original subPath by returning undefined\r\n });\r\n}\r\n\r\n// check if the given normalized key matches a packageConfigPath\r\n// if so, loads the config\r\nvar packageConfigPaths = {};\r\n\r\n// data object for quick checks against package paths\r\nfunction createPkgConfigPathObj (path) {\r\n var lastWildcard = path.lastIndexOf('*');\r\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\r\n return {\r\n length: length,\r\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\r\n wildcard: lastWildcard !== -1\r\n };\r\n}\r\n\r\n// most specific match wins\r\nfunction getPackageConfigMatch (config, normalized) {\r\n var pkgKey, exactMatch = false, configPath;\r\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\r\n var packageConfigPath = config.packageConfigPaths[i];\r\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\r\n if (normalized.length < p.length)\r\n continue;\r\n var match = normalized.match(p.regEx);\r\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\r\n pkgKey = match[1];\r\n exactMatch = !p.wildcard;\r\n configPath = pkgKey + packageConfigPath.substr(p.length);\r\n }\r\n }\r\n\r\n if (!pkgKey)\r\n return;\r\n\r\n return {\r\n packageKey: pkgKey,\r\n configPath: configPath\r\n };\r\n}\r\n\r\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\r\n var configLoader = loader.pluginLoader || loader;\r\n\r\n // ensure we note this is a package config file path\r\n // it will then be skipped from getting other normalizations itself to ensure idempotency\r\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\r\n config.packageConfigKeys.push(pkgConfigPath);\r\n\r\n return configLoader.import(pkgConfigPath)\r\n .then(function (pkgConfig) {\r\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\r\n metadata.packageConfig.configured = true;\r\n })\r\n .catch(function (err) {\r\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\r\n });\r\n}\r\n\r\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\r\n // wildcard meta\r\n var wildcardIndex;\r\n for (var module in pkgMeta) {\r\n // allow meta to start with ./ for flexibility\r\n var dotRel = module.substr(0, 2) === './' ? './' : '';\r\n if (dotRel)\r\n module = module.substr(2);\r\n\r\n wildcardIndex = module.indexOf('*');\r\n if (wildcardIndex === -1)\r\n continue;\r\n\r\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\r\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\r\n // alow match function to return true for an exit path\r\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\r\n return;\r\n }\r\n }\r\n // exact meta\r\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\r\n if (exactMeta)\r\n matchFn(exactMeta, exactMeta, 0);\r\n}\r\n\r\n\r\n/*\r\n * Conditions Extension\r\n *\r\n * Allows a condition module to alter the resolution of an import via syntax:\r\n *\r\n * import $ from 'jquery/#{browser}';\r\n *\r\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\r\n * take the default export of that module.\r\n * If the default export is not a string, an error is thrown.\r\n *\r\n * We then substitute the string into the require to get the conditional resolution\r\n * enabling environment-specific variations like:\r\n *\r\n * import $ from 'jquery/ie'\r\n * import $ from 'jquery/firefox'\r\n * import $ from 'jquery/chrome'\r\n * import $ from 'jquery/safari'\r\n *\r\n * It can be useful for a condition module to define multiple conditions.\r\n * This can be done via the `|` modifier to specify an export member expression:\r\n *\r\n * import 'jquery/#{./browser.js|grade.version}'\r\n *\r\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\r\n *\r\n *\r\n * Boolean Conditionals\r\n *\r\n * For polyfill modules, that are used as imports but have no module value,\r\n * a binary conditional allows a module not to be loaded at all if not needed:\r\n *\r\n * import 'es5-shim#?./conditions.js|needs-es5shim'\r\n *\r\n * These conditions can also be negated via:\r\n *\r\n * import 'es5-shim#?./conditions.js|~es6'\r\n *\r\n */\r\n\r\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\r\n\r\nfunction parseCondition (condition) {\r\n var conditionExport, conditionModule, negation;\r\n\r\n var negation;\r\n var conditionExportIndex = condition.lastIndexOf('|');\r\n if (conditionExportIndex !== -1) {\r\n conditionExport = condition.substr(conditionExportIndex + 1);\r\n conditionModule = condition.substr(0, conditionExportIndex);\r\n\r\n if (conditionExport[0] === '~') {\r\n negation = true;\r\n conditionExport = conditionExport.substr(1);\r\n }\r\n }\r\n else {\r\n negation = condition[0] === '~';\r\n conditionExport = 'default';\r\n conditionModule = condition.substr(negation);\r\n if (sysConditions.indexOf(conditionModule) !== -1) {\r\n conditionExport = conditionModule;\r\n conditionModule = null;\r\n }\r\n }\r\n\r\n return {\r\n module: conditionModule || '@system-env',\r\n prop: conditionExport,\r\n negate: negation\r\n };\r\n}\r\n\r\nfunction resolveCondition (conditionObj, parentKey, bool) {\r\n // import without __useDefault handling here\r\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\r\n .then(function (condition) {\r\n var m = readMemberExpression(conditionObj.prop, condition);\r\n\r\n if (bool && typeof m !== 'boolean')\r\n throw new TypeError('Condition did not resolve to a boolean.');\r\n\r\n return conditionObj.negate ? !m : m;\r\n });\r\n}\r\n\r\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\r\nfunction interpolateConditional (key, parentKey, parentMetadata) {\r\n // first we normalize the conditional\r\n var conditionalMatch = key.match(interpolationRegEx);\r\n\r\n if (!conditionalMatch)\r\n return Promise.resolve(key);\r\n\r\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\r\n\r\n // in builds, return normalized conditional\r\n /*if (this.builder)\r\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\r\n .then(function (conditionModule) {\r\n conditionObj.module = conditionModule;\r\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\r\n });*/\r\n\r\n return resolveCondition.call(this, conditionObj, parentKey, false)\r\n .then(function (conditionValue) {\r\n if (typeof conditionValue !== 'string')\r\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\r\n\r\n if (conditionValue.indexOf('/') !== -1)\r\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\r\n\r\n return key.replace(interpolationRegEx, conditionValue);\r\n });\r\n}\r\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\r\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\r\nimport { coreResolve } from './resolve.js';\r\n\r\n/*\r\n Extend config merging one deep only\r\n\r\n loader.config({\r\n some: 'random',\r\n config: 'here',\r\n deep: {\r\n config: { too: 'too' }\r\n }\r\n });\r\n\r\n <=>\r\n\r\n loader.some = 'random';\r\n loader.config = 'here'\r\n loader.deep = loader.deep || {};\r\n loader.deep.config = { too: 'too' };\r\n\r\n\r\n Normalizes meta and package configs allowing for:\r\n\r\n SystemJS.config({\r\n meta: {\r\n './index.js': {}\r\n }\r\n });\r\n\r\n To become\r\n\r\n SystemJS.meta['https://thissite.com/index.js'] = {};\r\n\r\n For easy normalization canonicalization with latest URL support.\r\n\r\n*/\r\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\r\nfunction envSet(loader, cfg, envCallback) {\r\n for (var i = 0; i < envConfigNames.length; i++) {\r\n var envConfig = envConfigNames[i];\r\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\r\n envCallback(cfg[envConfig]);\r\n }\r\n}\r\n\r\nfunction cloneObj (obj, maxDepth) {\r\n var clone = {};\r\n for (var p in obj) {\r\n var prop = obj[p];\r\n if (maxDepth > 1) {\r\n if (prop instanceof Array)\r\n clone[p] = [].concat(prop);\r\n else if (typeof prop === 'object')\r\n clone[p] = cloneObj(prop, maxDepth - 1);\r\n else if (p !== 'packageConfig')\r\n clone[p] = prop;\r\n }\r\n else {\r\n clone[p] = prop;\r\n }\r\n }\r\n return clone;\r\n}\r\n\r\nexport function getConfigItem (config, p) {\r\n var cfgItem = config[p];\r\n\r\n // getConfig must return an unmodifiable clone of the configuration\r\n if (cfgItem instanceof Array)\r\n return config[p].concat([]);\r\n else if (typeof cfgItem === 'object')\r\n return cloneObj(cfgItem, 3)\r\n else\r\n return config[p];\r\n}\r\n\r\nexport function getConfig (configName) {\r\n if (configName) {\r\n if (configNames.indexOf(configName) !== -1)\r\n return getConfigItem(this[CONFIG], configName);\r\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\r\n }\r\n\r\n var cfg = {};\r\n for (var i = 0; i < configNames.length; i++) {\r\n var p = configNames[i];\r\n var configItem = getConfigItem(this[CONFIG], p);\r\n if (configItem !== undefined)\r\n cfg[p] = configItem;\r\n }\r\n return cfg;\r\n}\r\n\r\nexport function setConfig (cfg, isEnvConfig) {\r\n var loader = this;\r\n var config = this[CONFIG];\r\n\r\n if ('warnings' in cfg)\r\n config.warnings = cfg.warnings;\r\n\r\n if ('wasm' in cfg)\r\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\r\n\r\n if ('production' in cfg || 'build' in cfg)\r\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\r\n\r\n if (!isEnvConfig) {\r\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\r\n // these exceptions will be unnecessary when we can properly implement config queuings\r\n var baseURL;\r\n envSet(loader, cfg, function(cfg) {\r\n baseURL = baseURL || cfg.baseURL;\r\n });\r\n baseURL = baseURL || cfg.baseURL;\r\n\r\n // always configure baseURL first\r\n if (baseURL) {\r\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\r\n if (config.baseURL[config.baseURL.length - 1] !== '/')\r\n config.baseURL += '/';\r\n }\r\n\r\n if (cfg.paths)\r\n extend(config.paths, cfg.paths);\r\n\r\n envSet(loader, cfg, function(cfg) {\r\n if (cfg.paths)\r\n extend(config.paths, cfg.paths);\r\n });\r\n\r\n for (var p in config.paths) {\r\n if (config.paths[p].indexOf('*') === -1)\r\n continue;\r\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\r\n delete config.paths[p];\r\n }\r\n }\r\n\r\n if (cfg.defaultJSExtensions)\r\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\r\n\r\n if (typeof cfg.pluginFirst === 'boolean')\r\n config.pluginFirst = cfg.pluginFirst;\r\n\r\n if (cfg.map) {\r\n for (var p in cfg.map) {\r\n var v = cfg.map[p];\r\n\r\n if (typeof v === 'string') {\r\n var mapped = coreResolve.call(loader, config, v, undefined, false, false);\r\n if (mapped[mapped.length -1] === '/' && p[p.length - 1] !== ':' && p[p.length - 1] !== '/')\r\n mapped = mapped.substr(0, mapped.length - 1);\r\n config.map[p] = mapped;\r\n }\r\n\r\n // object map\r\n else {\r\n var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);\r\n pkgName = pkgName.substr(0, pkgName.length - 1);\r\n\r\n var pkg = config.packages[pkgName];\r\n if (!pkg) {\r\n pkg = config.packages[pkgName] = createPackage();\r\n // use '' instead of false to keep type consistent\r\n pkg.defaultExtension = '';\r\n }\r\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\r\n }\r\n }\r\n }\r\n\r\n if (cfg.packageConfigPaths) {\r\n var packageConfigPaths = [];\r\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\r\n var path = cfg.packageConfigPaths[i];\r\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\r\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false, false);\r\n packageConfigPaths[i] = normalized + path.substr(packageLength);\r\n }\r\n config.packageConfigPaths = packageConfigPaths;\r\n }\r\n\r\n if (cfg.bundles) {\r\n for (var p in cfg.bundles) {\r\n var bundle = [];\r\n for (var i = 0; i < cfg.bundles[p].length; i++)\r\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\r\n config.bundles[p] = bundle;\r\n }\r\n }\r\n\r\n if (cfg.packages) {\r\n for (var p in cfg.packages) {\r\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\r\n throw new TypeError('\"' + p + '\" is not a valid package name.');\r\n\r\n var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);\r\n pkgName = pkgName.substr(0, pkgName.length - 1);\r\n\r\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\r\n }\r\n }\r\n\r\n if (cfg.depCache) {\r\n for (var p in cfg.depCache)\r\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\r\n }\r\n\r\n if (cfg.meta) {\r\n for (var p in cfg.meta) {\r\n // base wildcard stays base\r\n if (p[0] === '*') {\r\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\r\n }\r\n else {\r\n var resolved = coreResolve.call(loader, config, p, undefined, true, true);\r\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\r\n }\r\n }\r\n }\r\n\r\n if ('transpiler' in cfg)\r\n config.transpiler = cfg.transpiler;\r\n\r\n\r\n // copy any remaining non-standard configuration properties\r\n for (var c in cfg) {\r\n if (configNames.indexOf(c) !== -1)\r\n continue;\r\n if (envConfigNames.indexOf(c) !== -1)\r\n continue;\r\n\r\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\r\n loader[c] = cfg[c];\r\n }\r\n\r\n envSet(loader, cfg, function(cfg) {\r\n loader.config(cfg, true);\r\n });\r\n}\r\n\r\nexport function createPackage () {\r\n return {\r\n defaultExtension: undefined,\r\n main: undefined,\r\n format: undefined,\r\n meta: undefined,\r\n map: undefined,\r\n packageConfig: undefined,\r\n configured: false\r\n };\r\n}\r\n\r\n// deeply-merge (to first level) config with any existing package config\r\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\r\n for (var prop in cfg) {\r\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\r\n if (!prependConfig || pkg[prop] === undefined)\r\n pkg[prop] = cfg[prop];\r\n }\r\n else if (prop === 'map') {\r\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\r\n }\r\n else if (prop === 'meta') {\r\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\r\n }\r\n else if (Object.hasOwnProperty.call(cfg, prop)) {\r\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\r\n }\r\n }\r\n\r\n // default defaultExtension for packages only\r\n if (pkg.defaultExtension === undefined)\r\n pkg.defaultExtension = 'js';\r\n\r\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\r\n pkg.main = pkg.map['.'];\r\n delete pkg.map['.'];\r\n }\r\n // main object becomes main map\r\n else if (typeof pkg.main === 'object') {\r\n pkg.map = pkg.map || {};\r\n pkg.map['./@main'] = pkg.main;\r\n pkg.main['default'] = pkg.main['default'] || './';\r\n pkg.main = '@main';\r\n }\r\n\r\n return pkg;\r\n}\r\n","import { isBrowser, global } from './common.js';\r\n\r\nvar hasBuffer = typeof Buffer !== 'undefined';\r\ntry {\r\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\r\n hasBuffer = false;\r\n}\r\ncatch (e) {\r\n hasBuffer = false;\r\n}\r\n\r\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\r\nfunction inlineSourceMap (sourceMapString) {\r\n if (hasBuffer)\r\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\r\n else if (typeof btoa !== 'undefined')\r\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\r\n else\r\n return '';\r\n}\r\n\r\nfunction getSource(source, sourceMap, address, wrap) {\r\n var lastLineIndex = source.lastIndexOf('\\n');\r\n\r\n if (sourceMap) {\r\n if (typeof sourceMap != 'object')\r\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\r\n\r\n sourceMap = JSON.stringify(sourceMap);\r\n }\r\n\r\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\r\n // adds the sourceURL comment if not already present\r\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\r\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\r\n // add sourceMappingURL if load.metadata.sourceMap is set\r\n + (sourceMap && inlineSourceMap(sourceMap) || '');\r\n}\r\n\r\n// script execution via injecting a script tag into the page\r\n// this allows CSP nonce to be set for CSP environments\r\nvar head;\r\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\r\n if (!head)\r\n head = document.head || document.body || document.documentElement;\r\n\r\n var script = document.createElement('script');\r\n script.text = getSource(source, sourceMap, address, false);\r\n var onerror = window.onerror;\r\n var e;\r\n window.onerror = function(_e) {\r\n e = addToError(_e, 'Evaluating ' + address);\r\n if (onerror)\r\n onerror.apply(this, arguments);\r\n }\r\n preExec(loader);\r\n\r\n if (nonce)\r\n script.setAttribute('nonce', nonce);\r\n\r\n head.appendChild(script);\r\n head.removeChild(script);\r\n postExec();\r\n window.onerror = onerror;\r\n if (e)\r\n return e;\r\n}\r\n\r\nvar vm;\r\nvar useVm;\r\n\r\nvar curSystem;\r\n\r\nvar callCounter = 0;\r\nfunction preExec (loader) {\r\n if (callCounter++ == 0)\r\n curSystem = global.System;\r\n global.System = global.SystemJS = loader;\r\n}\r\nfunction postExec () {\r\n if (--callCounter == 0)\r\n global.System = global.SystemJS = curSystem;\r\n}\r\n\r\nvar supportsScriptExec = false;\r\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\r\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\r\n supportsScriptExec = true;\r\n}\r\n\r\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\r\n if (!source)\r\n return;\r\n if (nonce && supportsScriptExec)\r\n return scriptExec(loader, source, sourceMap, address, nonce);\r\n try {\r\n preExec(loader);\r\n // global scoped eval for node (avoids require scope leak)\r\n if (!vm && loader._nodeRequire) {\r\n vm = loader._nodeRequire('vm');\r\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\r\n }\r\n if (useVm)\r\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\r\n else\r\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\r\n postExec();\r\n }\r\n catch (e) {\r\n postExec();\r\n return e;\r\n }\r\n}\r\n","\r\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\r\n\r\nexport function setHelpers (loader) {\r\n loader.set('@@cjs-helpers', loader.newModule({\r\n requireResolve: requireResolve.bind(loader),\r\n getPathVars: getPathVars\r\n }));\r\n\r\n loader.set('@@global-helpers', loader.newModule({\r\n prepareGlobal: prepareGlobal\r\n }));\r\n}\r\n\r\nexport function setAmdHelper (loader) {\r\n\r\n /*\r\n AMD-compatible require\r\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\r\n */\r\n function require (names, callback, errback, referer) {\r\n // in amd, first arg can be a config object... we just ignore\r\n if (typeof names === 'object' && !(names instanceof Array))\r\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\r\n\r\n // amd require\r\n if (typeof names === 'string' && typeof callback === 'function')\r\n names = [names];\r\n if (names instanceof Array) {\r\n var dynamicRequires = [];\r\n for (var i = 0; i < names.length; i++)\r\n dynamicRequires.push(loader.import(names[i], referer));\r\n Promise.all(dynamicRequires).then(function (modules) {\r\n if (callback)\r\n callback.apply(null, modules);\r\n }, errback);\r\n }\r\n\r\n // commonjs require\r\n else if (typeof names === 'string') {\r\n var normalized = loader.decanonicalize(names, referer);\r\n var module = loader.get(normalized);\r\n if (!module)\r\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\r\n return '__useDefault' in module ? module.__useDefault : module;\r\n }\r\n\r\n else\r\n throw new TypeError('Invalid require');\r\n }\r\n\r\n function define (name, deps, factory) {\r\n if (typeof name !== 'string') {\r\n factory = deps;\r\n deps = name;\r\n name = null;\r\n }\r\n\r\n if (!(deps instanceof Array)) {\r\n factory = deps;\r\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\r\n }\r\n\r\n if (typeof factory !== 'function')\r\n factory = (function (factory) {\r\n return function() { return factory; }\r\n })(factory);\r\n\r\n if (!name) {\r\n if (curMetaDeps) {\r\n deps = deps.concat(curMetaDeps);\r\n curMetaDeps = undefined;\r\n }\r\n }\r\n\r\n // remove system dependencies\r\n var requireIndex, exportsIndex, moduleIndex;\r\n\r\n if ((requireIndex = deps.indexOf('require')) !== -1) {\r\n\r\n deps.splice(requireIndex, 1);\r\n\r\n // only trace cjs requires for non-named\r\n // named defines assume the trace has already been done\r\n if (!name)\r\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\r\n }\r\n\r\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\r\n deps.splice(exportsIndex, 1);\r\n\r\n if ((moduleIndex = deps.indexOf('module')) !== -1)\r\n deps.splice(moduleIndex, 1);\r\n\r\n function execute (req, exports, module) {\r\n var depValues = [];\r\n for (var i = 0; i < deps.length; i++)\r\n depValues.push(req(deps[i]));\r\n\r\n module.uri = module.id;\r\n\r\n module.config = noop;\r\n\r\n // add back in system dependencies\r\n if (moduleIndex !== -1)\r\n depValues.splice(moduleIndex, 0, module);\r\n\r\n if (exportsIndex !== -1)\r\n depValues.splice(exportsIndex, 0, exports);\r\n\r\n if (requireIndex !== -1) {\r\n var contextualRequire = function (names, callback, errback) {\r\n if (typeof names === 'string' && typeof callback !== 'function')\r\n return req(names);\r\n return require.call(loader, names, callback, errback, module.id);\r\n };\r\n contextualRequire.toUrl = function (name) {\r\n return loader.normalizeSync(name, module.id);\r\n };\r\n depValues.splice(requireIndex, 0, contextualRequire);\r\n }\r\n\r\n // set global require to AMD require\r\n var curRequire = global.require;\r\n global.require = require;\r\n\r\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\r\n\r\n global.require = curRequire;\r\n\r\n if (typeof output !== 'undefined')\r\n module.exports = output;\r\n }\r\n\r\n // anonymous define\r\n if (!name) {\r\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\r\n }\r\n else {\r\n loader.registerDynamic(name, deps, false, execute);\r\n\r\n // if we don't have any other defines,\r\n // then let this be an anonymous define\r\n // this is just to support single modules of the form:\r\n // define('jquery')\r\n // still loading anonymously\r\n // because it is done widely enough to be useful\r\n // as soon as there is more than one define, this gets removed though\r\n if (lastNamedDefine) {\r\n lastNamedDefine = undefined;\r\n multipleNamedDefines = true;\r\n }\r\n else if (!multipleNamedDefines) {\r\n lastNamedDefine = [deps, execute];\r\n }\r\n }\r\n }\r\n define.amd = {};\r\n\r\n loader.amdDefine = define;\r\n loader.amdRequire = require;\r\n}\r\n\r\n// CJS\r\nvar windowOrigin;\r\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\r\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\r\n\r\nfunction stripOrigin(path) {\r\n if (path.substr(0, 8) === 'file:///')\r\n return path.substr(7 + !!isWindows);\r\n\r\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\r\n return path.substr(windowOrigin.length);\r\n\r\n return path;\r\n}\r\n\r\nexport function requireResolve (request, parentId) {\r\n return stripOrigin(this.normalizeSync(request, parentId));\r\n}\r\n\r\nexport function getPathVars (moduleId) {\r\n // remove any plugin syntax\r\n var pluginIndex = moduleId.lastIndexOf('!');\r\n var filename;\r\n if (pluginIndex !== -1)\r\n filename = moduleId.substr(0, pluginIndex);\r\n else\r\n filename = moduleId;\r\n\r\n var dirname = filename.split('/');\r\n dirname.pop();\r\n dirname = dirname.join('/');\r\n\r\n return {\r\n filename: stripOrigin(filename),\r\n dirname: stripOrigin(dirname)\r\n };\r\n}\r\n\r\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\r\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\r\n\r\n// used to support leading #!/usr/bin/env in scripts as supported in Node\r\nvar hashBangRegEx = /^\\#\\!.*/;\r\n\r\n// extract CJS dependencies from source text via regex static analysis\r\n// read require('x') statements not in comments or strings\r\nexport function getCJSDeps (source) {\r\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\r\n\r\n var deps = [];\r\n\r\n var match;\r\n\r\n // track string and comment locations for unminified source\r\n var stringLocations = [], commentLocations = [];\r\n\r\n function inLocation (locations, match) {\r\n for (var i = 0; i < locations.length; i++)\r\n if (locations[i][0] < match.index && locations[i][1] > match.index)\r\n return true;\r\n return false;\r\n }\r\n\r\n if (source.length / source.split('\\n').length < 200) {\r\n while (match = stringRegEx.exec(source))\r\n stringLocations.push([match.index, match.index + match[0].length]);\r\n\r\n // TODO: track template literals here before comments\r\n\r\n while (match = commentRegEx.exec(source)) {\r\n // only track comments not starting in strings\r\n if (!inLocation(stringLocations, match))\r\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\r\n }\r\n }\r\n\r\n while (match = cjsRequireRegEx.exec(source)) {\r\n // ensure we're not within a string or comment location\r\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\r\n var dep = match[1].substr(1, match[1].length - 2);\r\n // skip cases like require('\" + file + \"')\r\n if (dep.match(/\"|'/))\r\n continue;\r\n deps.push(dep);\r\n }\r\n }\r\n\r\n return deps;\r\n}\r\n\r\n// Global\r\n// bare minimum ignores\r\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\r\n 'mozAnimationStartTime', 'mozPaintCount', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\r\n\r\nvar globalSnapshot;\r\nexport function globalIterator (globalName) {\r\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\r\n return;\r\n try {\r\n var value = global[globalName];\r\n }\r\n catch (e) {\r\n ignoredGlobalProps.push(globalName);\r\n }\r\n this(globalName, value);\r\n}\r\n\r\nexport function getGlobalValue (exports) {\r\n if (typeof exports === 'string')\r\n return readMemberExpression(exports, global);\r\n\r\n if (!(exports instanceof Array))\r\n throw new Error('Global exports must be a string or array.');\r\n\r\n var globalValue = {};\r\n for (var i = 0; i < exports.length; i++)\r\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\r\n return globalValue;\r\n}\r\n\r\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\r\n // disable module detection\r\n var curDefine = global.define;\r\n\r\n global.define = undefined;\r\n\r\n // set globals\r\n var oldGlobals;\r\n if (globals) {\r\n oldGlobals = {};\r\n for (var g in globals) {\r\n oldGlobals[g] = global[g];\r\n global[g] = globals[g];\r\n }\r\n }\r\n\r\n // store a complete copy of the global object in order to detect changes\r\n if (!exports) {\r\n globalSnapshot = {};\r\n\r\n Object.keys(global).forEach(globalIterator, function (name, value) {\r\n globalSnapshot[name] = value;\r\n });\r\n }\r\n\r\n // return function to retrieve global\r\n return function () {\r\n var globalValue = exports ? getGlobalValue(exports) : {};\r\n\r\n var singleGlobal;\r\n var multipleExports = !!exports;\r\n\r\n if (!exports || encapsulate)\r\n Object.keys(global).forEach(globalIterator, function (name, value) {\r\n if (globalSnapshot[name] === value)\r\n return;\r\n if (value === undefined)\r\n return;\r\n\r\n // allow global encapsulation where globals are removed\r\n if (encapsulate)\r\n global[name] = undefined;\r\n\r\n if (!exports) {\r\n globalValue[name] = value;\r\n\r\n if (singleGlobal !== undefined) {\r\n if (!multipleExports && singleGlobal !== value)\r\n multipleExports = true;\r\n }\r\n else {\r\n singleGlobal = value;\r\n }\r\n }\r\n });\r\n\r\n globalValue = multipleExports ? globalValue : singleGlobal;\r\n\r\n // revert globals\r\n if (oldGlobals) {\r\n for (var g in oldGlobals)\r\n global[g] = oldGlobals[g];\r\n }\r\n global.define = curDefine;\r\n\r\n return globalValue;\r\n };\r\n}\r\n\r\n// AMD\r\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\r\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\r\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\r\nvar wsRegEx = /^\\s+|\\s+$/g;\r\n\r\nvar requireRegExs = {};\r\n\r\nfunction amdGetCJSDeps(source, requireIndex) {\r\n\r\n // remove comments\r\n source = source.replace(commentRegEx, '');\r\n\r\n // determine the require alias\r\n var params = source.match(fnBracketRegEx);\r\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\r\n\r\n // find or generate the regex for this requireAlias\r\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\r\n\r\n requireRegEx.lastIndex = 0;\r\n\r\n var deps = [];\r\n\r\n var match;\r\n while (match = requireRegEx.exec(source))\r\n deps.push(match[2] || match[3]);\r\n\r\n return deps;\r\n}\r\n\r\nfunction wrapEsModuleExecute (execute) {\r\n return function (require, exports, module) {\r\n execute(require, exports, module);\r\n exports = module.exports;\r\n if ((typeof exports === 'object' || typeof exports === 'function') && !('__esModule' in exports))\r\n Object.defineProperty(module.exports, '__esModule', {\r\n value: true\r\n });\r\n };\r\n}\r\n\r\n// generate anonymous define from singular named define\r\nvar multipleNamedDefines = false;\r\nvar lastNamedDefine;\r\nvar curMetaDeps;\r\nvar curEsModule = false;\r\nexport function clearLastDefine (metaDeps, esModule) {\r\n curMetaDeps = metaDeps;\r\n curEsModule = esModule;\r\n lastNamedDefine = undefined;\r\n multipleNamedDefines = false;\r\n}\r\nexport function registerLastDefine (loader) {\r\n if (lastNamedDefine)\r\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\r\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\r\n\r\n // bundles are an empty module\r\n else if (multipleNamedDefines)\r\n loader.registerDynamic([], false, noop);\r\n}\r\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\r\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript, checkInstantiateWasm } from './common.js';\r\nimport { evaluate } from './evaluate.js';\r\nimport fetch from './fetch.js';\r\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\r\n\r\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\r\n\r\n// include the node require since we're overriding it\r\nexport var nodeRequire;\r\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\r\n nodeRequire = require;\r\n\r\nfunction setMetaEsModule (metadata, moduleValue) {\r\n if (metadata.load.esModule && (typeof moduleValue === 'object' || typeof moduleValue === 'function') &&\r\n !('__esModule' in moduleValue))\r\n Object.defineProperty(moduleValue, '__esModule', {\r\n value: true\r\n });\r\n}\r\n\r\nexport function instantiate (key, processAnonRegister) {\r\n var loader = this;\r\n var config = this[CONFIG];\r\n // first do bundles and depCache\r\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\r\n .then(function () {\r\n if (processAnonRegister())\r\n return;\r\n\r\n var metadata = loader[METADATA][key];\r\n\r\n // node module loading\r\n if (key.substr(0, 6) === '@node/') {\r\n if (!loader._nodeRequire)\r\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\r\n loader.registerDynamic([], false, function () {\r\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\r\n });\r\n processAnonRegister();\r\n return;\r\n }\r\n\r\n if (metadata.load.scriptLoad ) {\r\n if (metadata.load.pluginKey || !supportsScriptLoad) {\r\n metadata.load.scriptLoad = false;\r\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\r\n }\r\n }\r\n else if (metadata.load.scriptLoad !== false && !metadata.load.pluginKey && supportsScriptLoad) {\r\n // auto script load AMD, global without deps\r\n if (!metadata.load.deps && !metadata.load.globals &&\r\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\r\n metadata.load.scriptLoad = true;\r\n }\r\n\r\n // fetch / translate / instantiate pipeline\r\n if (!metadata.load.scriptLoad)\r\n return initializePlugin(loader, key, metadata)\r\n .then(function () {\r\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\r\n })\r\n\r\n // just script loading\r\n return new Promise(function (resolve, reject) {\r\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\r\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\r\n\r\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\r\n if (!processAnonRegister()) {\r\n metadata.load.format = 'global';\r\n var globalValue = metadata.load.exports && getGlobalValue(metadata.load.exports);\r\n loader.registerDynamic([], false, function () {\r\n setMetaEsModule(metadata, globalValue);\r\n return globalValue;\r\n });\r\n processAnonRegister();\r\n }\r\n\r\n resolve();\r\n }, reject);\r\n });\r\n })\r\n .then(function (instantiated) {\r\n delete loader[METADATA][key];\r\n return instantiated;\r\n });\r\n};\r\n\r\nfunction initializePlugin (loader, key, metadata) {\r\n if (!metadata.pluginKey)\r\n return resolvedPromise;\r\n\r\n return loader.import(metadata.pluginKey).then(function (plugin) {\r\n metadata.pluginModule = plugin;\r\n metadata.pluginLoad = {\r\n name: key,\r\n address: metadata.pluginArgument,\r\n source: undefined,\r\n metadata: metadata.load\r\n };\r\n metadata.load.deps = metadata.load.deps || [];\r\n });\r\n}\r\n\r\nfunction loadBundlesAndDepCache (config, loader, key) {\r\n // load direct deps, in turn will pick up their trace trees\r\n var deps;\r\n if (isBrowser && (deps = config.depCache[key])) {\r\n for (var i = 0; i < deps.length; i++)\r\n loader.normalize(deps[i], key).then(preloadScript);\r\n }\r\n else {\r\n var matched = false;\r\n for (var b in config.bundles) {\r\n for (var i = 0; i < config.bundles[b].length; i++) {\r\n var curModule = config.bundles[b][i];\r\n\r\n if (curModule === key) {\r\n matched = true;\r\n break;\r\n }\r\n\r\n // wildcard in bundles includes / boundaries\r\n if (curModule.indexOf('*') !== -1) {\r\n var parts = curModule.split('*');\r\n if (parts.length !== 2) {\r\n config.bundles[b].splice(i--, 1);\r\n continue;\r\n }\r\n\r\n if (key.substr(0, parts[0].length) === parts[0] &&\r\n key.substr(key.length - parts[1].length, parts[1].length) === parts[1]) {\r\n matched = true;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (matched)\r\n return loader.import(b);\r\n }\r\n }\r\n}\r\n\r\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\r\n if (metadata.load.exports && !metadata.load.format)\r\n metadata.load.format = 'global';\r\n\r\n return resolvedPromise\r\n\r\n // locate\r\n .then(function () {\r\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\r\n return;\r\n\r\n return Promise.resolve(metadata.pluginModule.locate.call(loader, metadata.pluginLoad))\r\n .then(function (address) {\r\n if (address)\r\n metadata.pluginLoad.address = address;\r\n });\r\n })\r\n\r\n // fetch\r\n .then(function () {\r\n if (!metadata.pluginModule)\r\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\r\n\r\n wasm = false;\r\n\r\n if (!metadata.pluginModule.fetch)\r\n return fetch(metadata.pluginLoad.address, metadata.load.authorization, metadata.load.integrity, false);\r\n\r\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\r\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\r\n });\r\n })\r\n\r\n .then(function (fetched) {\r\n // fetch is already a utf-8 string if not doing wasm detection\r\n if (!wasm || typeof fetched === 'string')\r\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\r\n\r\n return checkInstantiateWasm(loader, fetched, processAnonRegister)\r\n .then(function (wasmInstantiated) {\r\n if (wasmInstantiated)\r\n return;\r\n\r\n // not wasm -> convert buffer into utf-8 string to execute as a module\r\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\r\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\r\n var stringSource = isBrowser ? new TextDecoder('utf-8').decode(new Uint8Array(fetched)) : fetched.toString();\r\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\r\n });\r\n });\r\n}\r\n\r\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\r\n return Promise.resolve(source)\r\n // translate\r\n .then(function (source) {\r\n if (metadata.load.format === 'detect')\r\n metadata.load.format = undefined;\r\n\r\n readMetaSyntax(source, metadata);\r\n\r\n if (!metadata.pluginModule)\r\n return source;\r\n\r\n metadata.pluginLoad.source = source;\r\n\r\n if (!metadata.pluginModule.translate)\r\n return source;\r\n\r\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\r\n .then(function (translated) {\r\n if (metadata.load.sourceMap) {\r\n if (typeof metadata.load.sourceMap !== 'object')\r\n throw new Error('metadata.load.sourceMap must be set to an object.');\r\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\r\n }\r\n\r\n if (typeof translated === 'string')\r\n return translated;\r\n else\r\n return metadata.pluginLoad.source;\r\n });\r\n })\r\n .then(function (source) {\r\n if (!metadata.load.format && source.substring(0, 8) === '\"bundle\"') {\r\n metadata.load.format = 'system';\r\n return source;\r\n }\r\n\r\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\r\n metadata.load.format = 'register';\r\n return source;\r\n }\r\n\r\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\r\n return source;\r\n }\r\n\r\n metadata.load.format = 'esm';\r\n return transpile(loader, source, key, metadata, processAnonRegister);\r\n })\r\n\r\n // instantiate\r\n .then(function (translated) {\r\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\r\n return translated;\r\n\r\n var calledInstantiate = false;\r\n metadata.pluginLoad.source = translated;\r\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\r\n translated = load.source;\r\n metadata.load = load.metadata;\r\n if (calledInstantiate)\r\n throw new Error('Instantiate must only be called once.');\r\n calledInstantiate = true;\r\n }))\r\n .then(function (result) {\r\n if (calledInstantiate)\r\n return translated;\r\n return protectedCreateNamespace(result);\r\n });\r\n })\r\n .then(function (source) {\r\n // plugin instantiate result case\r\n if (typeof source !== 'string')\r\n return source;\r\n\r\n if (!metadata.load.format)\r\n metadata.load.format = detectLegacyFormat(source);\r\n\r\n var registered = false;\r\n\r\n switch (metadata.load.format) {\r\n case 'esm':\r\n case 'register':\r\n case 'system':\r\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\r\n if (err)\r\n throw err;\r\n if (!processAnonRegister())\r\n return emptyModule;\r\n return;\r\n break;\r\n\r\n case 'json':\r\n // warn.call(config, '\"json\" module format is deprecated.');\r\n var parsed = JSON.parse(source);\r\n return loader.newModule({ default: parsed, __useDefault: parsed });\r\n\r\n case 'amd':\r\n var curDefine = global.define;\r\n global.define = loader.amdDefine;\r\n\r\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\r\n\r\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\r\n\r\n // if didn't register anonymously, use the last named define if only one\r\n registered = processAnonRegister();\r\n if (!registered) {\r\n registerLastDefine(loader);\r\n registered = processAnonRegister();\r\n }\r\n\r\n global.define = curDefine;\r\n\r\n if (err)\r\n throw err;\r\n break;\r\n\r\n case 'cjs':\r\n var metaDeps = metadata.load.deps;\r\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\r\n\r\n for (var g in metadata.load.globals)\r\n if (metadata.load.globals[g])\r\n deps.push(metadata.load.globals[g]);\r\n\r\n loader.registerDynamic(deps, true, function (require, exports, module) {\r\n require.resolve = function (key) {\r\n return requireResolve.call(loader, key, module.id);\r\n };\r\n // support module.paths ish\r\n module.paths = [];\r\n module.require = require;\r\n\r\n // ensure meta deps execute first\r\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\r\n for (var i = 0; i < metaDeps.length; i++)\r\n require(metaDeps[i]);\r\n\r\n var pathVars = getPathVars(module.id);\r\n var __cjsWrapper = {\r\n exports: exports,\r\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\r\n };\r\n\r\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\r\n\r\n // add metadata.globals to the wrapper arguments\r\n if (metadata.load.globals)\r\n for (var g in metadata.load.globals) {\r\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\r\n cjsWrapper += \", \" + g;\r\n }\r\n\r\n // disable AMD detection\r\n var define = global.define;\r\n global.define = undefined;\r\n global.__cjsWrapper = __cjsWrapper;\r\n\r\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\r\n\r\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\r\n if (err)\r\n throw err;\r\n\r\n setMetaEsModule(metadata, exports);\r\n\r\n global.__cjsWrapper = undefined;\r\n global.define = define;\r\n });\r\n registered = processAnonRegister();\r\n break;\r\n\r\n case 'global':\r\n var deps = metadata.load.deps || [];\r\n for (var g in metadata.load.globals) {\r\n var gl = metadata.load.globals[g];\r\n if (gl)\r\n deps.push(gl);\r\n }\r\n\r\n loader.registerDynamic(deps, false, function (require, exports, module) {\r\n var globals;\r\n if (metadata.load.globals) {\r\n globals = {};\r\n for (var g in metadata.load.globals)\r\n if (metadata.load.globals[g])\r\n globals[g] = require(metadata.load.globals[g]);\r\n }\r\n\r\n var exportName = metadata.load.exports;\r\n\r\n if (exportName)\r\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\r\n\r\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\r\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\r\n\r\n if (err)\r\n throw err;\r\n\r\n var output = retrieveGlobal();\r\n setMetaEsModule(metadata, output);\r\n return output;\r\n });\r\n registered = processAnonRegister();\r\n break;\r\n\r\n default:\r\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\r\n }\r\n\r\n if (!registered)\r\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\r\n });\r\n}\r\n\r\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\r\n\r\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\r\nexport var esmRegEx = /(^\\s*|[}\\);\\n]\\s*)(import\\s*(['\"]|(\\*\\s+as\\s+)?(?!type)([^\"'\\(\\)\\n; ]+)\\s*from\\s*['\"]|\\{)|export\\s+\\*\\s+from\\s+[\"']|export\\s*(\\{|default|function|class|var|const|let|async\\s+function))/;\r\n\r\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\r\nexport function detectRegisterFormat(source) {\r\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\r\n if (!leadingCommentAndMeta)\r\n return false;\r\n var codeStart = leadingCommentAndMeta[0].length;\r\n return source.startsWith('System.register', codeStart) || source.startsWith('SystemJS.register', codeStart);\r\n}\r\n\r\n// AMD Module Format Detection RegEx\r\n// define([.., .., ..], ...)\r\n// define(varName); || define(function(require, exports) {}); || define({})\r\nvar amdRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])define\\s*\\(\\s*(\"[^\"]+\"\\s*,\\s*|'[^']+'\\s*,\\s*)?\\s*(\\[(\\s*((\"[^\"]+\"|'[^']+')\\s*,|\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*(\\s*(\"[^\"]+\"|'[^']+')\\s*,?)?(\\s*(\\/\\/.*\\r?\\n|\\/\\*(.|\\s)*?\\*\\/))*\\s*\\]|function\\s*|{|[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*\\))/;\r\n\r\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\r\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\r\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\r\n\r\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\r\n\r\n// used to support leading #!/usr/bin/env in scripts as supported in Node\r\nvar hashBangRegEx = /^\\#\\!.*/;\r\n\r\nexport function detectLegacyFormat (source) {\r\n if (source.match(amdRegEx))\r\n return 'amd';\r\n\r\n cjsExportsRegEx.lastIndex = 0;\r\n cjsRequireRegEx.lastIndex = 0;\r\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\r\n return 'cjs';\r\n\r\n // global is the fallback format\r\n return 'global';\r\n}\r\n\r\nfunction sanitizeSourceMap (address, sourceMap) {\r\n var originalName = address.split('!')[0];\r\n\r\n // force set the filename of the original file\r\n if (!sourceMap.file || sourceMap.file == address)\r\n sourceMap.file = originalName + '!transpiled';\r\n\r\n // force set the sources list if only one source\r\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\r\n sourceMap.sources = [originalName];\r\n}\r\n\r\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\r\n if (!loader.transpiler)\r\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\r\n\r\n // deps support for es transpile\r\n if (metadata.load.deps) {\r\n var depsPrefix = '';\r\n for (var i = 0; i < metadata.load.deps.length; i++)\r\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\r\n source = depsPrefix + source;\r\n }\r\n\r\n // do transpilation\r\n return loader.import.call(loader, loader.transpiler)\r\n .then(function (transpiler) {\r\n transpiler = transpiler.__useDefault || transpiler;\r\n\r\n // translate hooks means this is a transpiler plugin instead of a raw implementation\r\n if (!transpiler.translate)\r\n throw new Error(loader.transpiler + ' is not a valid transpiler plugin.');\r\n\r\n // if transpiler is the same as the plugin loader, then don't run twice\r\n if (transpiler === metadata.pluginModule)\r\n return source;\r\n\r\n // convert the source map into an object for transpilation chaining\r\n if (typeof metadata.load.sourceMap === 'string')\r\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\r\n\r\n metadata.pluginLoad = metadata.pluginLoad || {\r\n name: key,\r\n address: key,\r\n source: source,\r\n metadata: metadata.load\r\n };\r\n metadata.load.deps = metadata.load.deps || [];\r\n\r\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\r\n .then(function (source) {\r\n // sanitize sourceMap if an object not a JSON string\r\n var sourceMap = metadata.load.sourceMap;\r\n if (sourceMap && typeof sourceMap === 'object')\r\n sanitizeSourceMap(key, sourceMap);\r\n\r\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\r\n metadata.load.format = 'register';\r\n\r\n return source;\r\n });\r\n }, function (err) {\r\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\r\n });\r\n}\r\n\r\n// detect any meta header syntax\r\n// only set if not already set\r\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\r\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\r\n\r\nfunction setMetaProperty(target, p, value) {\r\n var pParts = p.split('.');\r\n var curPart;\r\n while (pParts.length > 1) {\r\n curPart = pParts.shift();\r\n target = target[curPart] = target[curPart] || {};\r\n }\r\n curPart = pParts.shift();\r\n if (target[curPart] === undefined)\r\n target[curPart] = value;\r\n}\r\n\r\nfunction readMetaSyntax (source, metadata) {\r\n var meta = source.match(metaRegEx);\r\n if (!meta)\r\n return;\r\n\r\n var metaParts = meta[0].match(metaPartRegEx);\r\n\r\n for (var i = 0; i < metaParts.length; i++) {\r\n var curPart = metaParts[i];\r\n var len = curPart.length;\r\n\r\n var firstChar = curPart.substr(0, 1);\r\n if (curPart.substr(len - 1, 1) == ';')\r\n len--;\r\n\r\n if (firstChar != '\"' && firstChar != \"'\")\r\n continue;\r\n\r\n var metaString = curPart.substr(1, curPart.length - 3);\r\n var metaName = metaString.substr(0, metaString.indexOf(' '));\r\n\r\n if (metaName) {\r\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\r\n\r\n if (metaName === 'deps')\r\n metaName = 'deps[]';\r\n\r\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\r\n metaName = metaName.substr(0, metaName.length - 2);\r\n metadata.load[metaName] = metadata.load[metaName] || [];\r\n metadata.load[metaName].push(metaValue);\r\n }\r\n // \"use strict\" is not meta\r\n else if (metaName !== 'use') {\r\n setMetaProperty(metadata.load, metaName, metaValue);\r\n }\r\n }\r\n else {\r\n metadata.load[metaString] = true;\r\n }\r\n }\r\n}\r\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\r\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule, isModule } from './common.js';\r\n\r\nimport { getConfig, getConfigItem, setConfig } from './config.js';\r\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\r\nimport { instantiate, nodeRequire } from './instantiate.js';\r\nimport { setHelpers, setAmdHelper } from './format-helpers.js';\r\n\r\nexport default SystemJSLoader;\r\n\r\nvar scriptSrc;\r\n\r\n// Promise detection and error message\r\nif (typeof Promise === 'undefined')\r\n throw new Error('SystemJS needs a Promise polyfill.');\r\n\r\nif (typeof document !== 'undefined') {\r\n var scripts = document.getElementsByTagName('script');\r\n var curScript = scripts[scripts.length - 1];\r\n if (document.currentScript && (curScript.defer || curScript.async))\r\n curScript = document.currentScript;\r\n\r\n scriptSrc = curScript && curScript.src;\r\n}\r\n// worker\r\nelse if (typeof importScripts !== 'undefined') {\r\n try {\r\n throw new Error('_');\r\n }\r\n catch (e) {\r\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\r\n scriptSrc = url;\r\n });\r\n }\r\n}\r\n// node\r\nelse if (typeof __filename !== 'undefined') {\r\n scriptSrc = __filename;\r\n}\r\n\r\nfunction SystemJSLoader () {\r\n RegisterLoader.call(this);\r\n\r\n // NB deprecate\r\n this._loader = {};\r\n\r\n // internal metadata store\r\n this[METADATA] = {};\r\n\r\n // internal configuration\r\n this[CONFIG] = {\r\n baseURL: baseURI,\r\n paths: {},\r\n\r\n packageConfigPaths: [],\r\n packageConfigKeys: [],\r\n map: {},\r\n packages: {},\r\n depCache: {},\r\n meta: {},\r\n bundles: {},\r\n\r\n production: false,\r\n\r\n transpiler: undefined,\r\n loadedBundles: {},\r\n\r\n // global behaviour flags\r\n warnings: false,\r\n pluginFirst: false,\r\n\r\n // enable wasm loading and detection when supported\r\n wasm: false\r\n };\r\n\r\n // make the location of the system.js script accessible (if any)\r\n this.scriptSrc = scriptSrc;\r\n\r\n this._nodeRequire = nodeRequire;\r\n\r\n // support the empty module, as a concept\r\n this.registry.set('@empty', emptyModule);\r\n\r\n setProduction.call(this, false, false);\r\n\r\n // add module format helpers\r\n setHelpers(this);\r\n setAmdHelper(this);\r\n}\r\n\r\nexport var envModule;\r\nexport function setProduction (isProduction, isBuilder) {\r\n this[CONFIG].production = isProduction;\r\n this.registry.set('@system-env', envModule = this.newModule({\r\n browser: isBrowser,\r\n node: !!this._nodeRequire,\r\n production: !isBuilder && isProduction,\r\n dev: isBuilder || !isProduction,\r\n build: isBuilder,\r\n 'default': true\r\n }));\r\n}\r\n\r\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\r\n\r\nSystemJSLoader.prototype.constructor = SystemJSLoader;\r\n\r\n// NB deprecate normalize\r\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\r\n\r\nSystemJSLoader.prototype.load = function (key, parentKey) {\r\n warn.call(this[CONFIG], 'System.load is deprecated.');\r\n return this.import(key, parentKey);\r\n};\r\n\r\n// NB deprecate decanonicalize, normalizeSync\r\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\r\n\r\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\r\n\r\nSystemJSLoader.prototype.config = setConfig;\r\nSystemJSLoader.prototype.getConfig = getConfig;\r\n\r\nSystemJSLoader.prototype.global = global;\r\n\r\nSystemJSLoader.prototype.import = function () {\r\n return RegisterLoader.prototype.import.apply(this, arguments)\r\n .then(function (m) {\r\n return '__useDefault' in m ? m.__useDefault : m;\r\n });\r\n};\r\n\r\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\r\n\r\nvar hasProxy = typeof Proxy !== 'undefined';\r\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\r\n Object.defineProperty(SystemJSLoader.prototype, configName, {\r\n get: function () {\r\n var cfg = getConfigItem(this[CONFIG], configName);\r\n\r\n if (hasProxy && typeof cfg === 'object')\r\n cfg = new Proxy(cfg, {\r\n set: function (target, option) {\r\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\r\n }\r\n });\r\n\r\n //if (typeof cfg === 'object')\r\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\r\n return cfg;\r\n },\r\n set: function (name) {\r\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\r\n }\r\n });\r\n})(configNames[i]);\r\n\r\n/*\r\n * Backwards-compatible registry API, to be deprecated\r\n */\r\nfunction registryWarn(loader, method) {\r\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\r\n}\r\nSystemJSLoader.prototype.delete = function (key) {\r\n registryWarn(this, 'delete');\r\n return this.registry.delete(key);\r\n};\r\nSystemJSLoader.prototype.get = function (key) {\r\n registryWarn(this, 'get');\r\n return this.registry.get(key);\r\n};\r\nSystemJSLoader.prototype.has = function (key) {\r\n registryWarn(this, 'has');\r\n return this.registry.has(key);\r\n};\r\nSystemJSLoader.prototype.set = function (key, module) {\r\n registryWarn(this, 'set');\r\n return this.registry.set(key, module);\r\n};\r\nSystemJSLoader.prototype.newModule = function (bindings) {\r\n return new ModuleNamespace(bindings);\r\n};\r\nSystemJSLoader.prototype.isModule = isModule;\r\n\r\n// ensure System.register and System.registerDynamic decanonicalize\r\nSystemJSLoader.prototype.register = function (key, deps, declare) {\r\n if (typeof key === 'string')\r\n key = decanonicalize.call(this, this[CONFIG], key);\r\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\r\n};\r\n\r\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\r\n if (typeof key === 'string')\r\n key = decanonicalize.call(this, this[CONFIG], key);\r\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\r\n};\r\n","import { global, isBrowser, isWorker } from './common.js';\r\nimport SystemJSLoader from './systemjs-loader.js';\r\n\r\nSystemJSLoader.prototype.version = VERSION;\r\n\r\nvar System = new SystemJSLoader();\r\n\r\n// only set the global System on the global in browsers\r\nif (isBrowser || isWorker)\r\n global.SystemJS = global.System = System;\r\n\r\nif (typeof module !== 'undefined' && module.exports)\r\n module.exports = System;\r\n"]}