wabur 0.4.0d1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -66
- data/bin/wabur +48 -11
- data/export/assets/css/wab.css +2 -0
- data/export/assets/css/wab.css.map +7 -0
- data/export/assets/fonts/wabfont/README +18 -0
- data/export/assets/fonts/wabfont/fonts/WAB.eot +0 -0
- data/export/assets/fonts/wabfont/fonts/WAB.svg +25 -0
- data/export/assets/fonts/wabfont/fonts/WAB.ttf +0 -0
- data/export/assets/fonts/wabfont/fonts/WAB.woff +0 -0
- data/export/assets/fonts/wabfont/selection.json +460 -0
- data/export/assets/fonts/wabfont/style.css +74 -0
- data/export/assets/js/transpile.js +8 -0
- data/export/assets/js/ui.js +377 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers.js +558 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGenerator.js +112 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGeneratorDelegate.js +51 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncIterator.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncToGenerator.js +28 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/classCallCheck.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/createClass.js +17 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defaults.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defineEnumerableProperties.js +10 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defineProperty.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/extends.js +13 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/get.js +24 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/inherits.js +15 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/instanceof.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireDefault.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireWildcard.js +16 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/jsx.js +42 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/newArrowCheck.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/objectDestructuringEmpty.js +3 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/objectWithoutProperties.js +11 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/possibleConstructorReturn.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/selfGlobal.js +1 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/set.js +21 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArray.js +37 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArrayLoose.js +17 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteral.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteralLoose.js +4 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalRef.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalUndefined.js +1 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/toArray.js +3 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/toConsumableArray.js +9 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/typeof.js +5 -0
- data/export/assets/js/vendor/plugin-babel/plugin-babel.js +222 -0
- data/export/assets/js/vendor/plugin-babel/regenerator-runtime.js +685 -0
- data/export/assets/js/vendor/plugin-babel/systemjs-babel-browser.js +1 -0
- data/export/assets/js/vendor/plugin-babel/systemjs-babel-node.js +55086 -0
- data/export/assets/js/vendor/systemjs/system-production.js +4 -0
- data/export/assets/js/vendor/systemjs/system-production.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system-production.src.js +1711 -0
- data/export/assets/js/vendor/systemjs/system-production.src.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system.js +4 -0
- data/export/assets/js/vendor/systemjs/system.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system.src.js +4000 -0
- data/export/assets/js/vendor/systemjs/system.src.js.map +1 -0
- data/export/assets/js/wab.js +109 -0
- data/export/index.html +41 -0
- data/lib/wab.rb +13 -0
- data/lib/wab/controller.rb +2 -2
- data/lib/wab/errors.rb +12 -0
- data/lib/wab/impl.rb +2 -0
- data/lib/wab/impl/configuration.rb +24 -6
- data/lib/wab/impl/export_proxy.rb +39 -0
- data/lib/wab/impl/exprs/regex.rb +1 -1
- data/lib/wab/impl/handler.rb +14 -14
- data/lib/wab/impl/init.rb +108 -0
- data/lib/wab/impl/model.rb +4 -3
- data/lib/wab/impl/shell.rb +14 -4
- data/lib/wab/impl/templates/opo-rub.conf.template +253 -0
- data/lib/wab/impl/templates/opo.conf.template +224 -0
- data/lib/wab/impl/templates/spawn.rb.template +42 -0
- data/lib/wab/impl/templates/ui_controller.rb.template +12 -0
- data/lib/wab/impl/templates/wabur.conf.template +40 -0
- data/lib/wab/ui.rb +19 -0
- data/lib/wab/ui/create.rb +26 -0
- data/lib/wab/ui/display.rb +34 -0
- data/lib/wab/ui/flow.rb +54 -0
- data/lib/wab/ui/list.rb +59 -0
- data/lib/wab/ui/multi_flow.rb +23 -0
- data/lib/wab/ui/rest_flow.rb +89 -0
- data/lib/wab/ui/update.rb +27 -0
- data/lib/wab/ui/view.rb +62 -0
- data/lib/wab/utils.rb +4 -4
- data/lib/wab/version.rb +1 -1
- data/pages/Architecture.md +104 -1
- data/test/test_configuration.rb +1 -1
- data/test/test_impl.rb +1 -0
- data/test/test_init.rb +33 -0
- metadata +94 -7
- data/pages/Plan.md +0 -27
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"system-production.js.map","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/systemjs-production-loader.js","../src/system-production.js"],"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';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: bindings });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nexport function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {\n var bytes = new Uint8Array(wasmBuffer);\n\n // detect by leading bytes\n // Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(wasmBuffer).then(function (m) {\n var deps = [];\n var setters = [];\n var importObj = {};\n\n // we can only set imports if supported (eg Safari doesnt support)\n if (WebAssembly.Module.imports)\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n processAnonRegister();\n\n return true;\n });\n }\n\n return Promise.resolve(false);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = decodeURI(baseURL.substr(isWindows ? 8 : 7));\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n if (onerror)\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)\\s*\\)/g\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript, isModule, isNode, checkInstantiateWasm } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n resolved = resolved || key;\n // if in the registry then we are done\n if (loader.registry.has(resolved))\n return resolved;\n\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.isModule = isModule;\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey) || key;\n\n if (this.registry.has(resolved))\n return resolved;\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return '__useDefault' in m ? m.__useDefault : m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\nsystemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n bundles[p] = [].concat(config.bundles[p]);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: bundles,\n map: map,\n wasm: config.wasm\n };\n};\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parentKey || config.baseURL) || target;\n }\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm) {\n var loader = this;\n return fetch(key)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n return checkInstantiateWasm(loader, fetched, processAnonRegister)\n .then(function (wasmInstantiated) {\n if (wasmInstantiated)\n return;\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var source = new TextDecoder('utf-8').decode(new Uint8Array(fetched));\n (0, eval)(source + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n });\n }\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(System, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["resolvedPromise","addToError","RegisterLoader","global","SystemJSProductionLoader"],"mappings":"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"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
/*
|
2
|
+
* SystemJS v0.20.19 Dev
|
3
|
+
*/
|
4
|
+
!function(){"use strict";function e(e){return ut?Symbol():"@@"+e}function t(e,t){ot||(t=t.replace(at?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=ft&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return r.stack=it?n+"\n "+o:o,r.originalErr=e.originalErr||e,r}function r(e,t){throw new RangeError('Unable to resolve "'+e+'" to '+t)}function n(e,t){e=e.trim();var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===o){var a,s=!n||"/"!==t[n.length];if(s?(void 0===t&&r(e,t),a=t):a="/"===t[n.length+1]?"file:"!==n?(a=t.substr(n.length+2)).substr(a.indexOf("/")+1):t.substr(8):t.substr(n.length+1),"/"===o){if(!s)return t.substr(0,t.length-a.length-1)+e;r(e,t)}for(var u=a.substr(0,a.lastIndexOf("/")+1)+e,l=[],c=-1,f=0;f<u.length;f++)if(-1===c)if("."!==u[f])c=f;else{if("."!==u[f+1]||"/"!==u[f+2]&&f+2!==u.length){if("/"!==u[f+1]&&f+1!==u.length){c=f;continue}f+=1}else l.pop(),f+=2;s&&0===l.length&&r(e,t)}else"/"===u[f]&&(l.push(u.substring(c,f+1)),c=-1);return-1!==c&&l.push(u.substr(c)),t.substr(0,t.length-a.length)+l.join("")}return-1!==e.indexOf(":")?it&&":"===e[1]&&"\\"===e[2]&&e[0].match(/[a-z]/i)?"file:///"+e.replace(/\\/g,"/"):e:void 0}function o(e){if(e.values)return e.values();if("undefined"==typeof Symbol||!Symbol.iterator)throw new Error("Symbol.iterator not supported in this browser");var t={};return t[Symbol.iterator]=function(){var t=Object.keys(e),r=0;return{next:function(){return r<t.length?{value:e[t[r++]],done:!1}:{value:void 0,done:!0}}}},t}function i(){this.registry=new u}function a(e){if(!(e instanceof l))throw new TypeError("Module instantiation did not return a valid namespace object.");return e}function s(e){if(void 0===e)throw new RangeError("No resolution found.");return e}function u(){this[mt]={}}function l(e){Object.defineProperty(this,vt,{value:e}),Object.keys(e).forEach(c,this)}function c(e){Object.defineProperty(this,e,{enumerable:!0,get:function(){return this[vt][e]}})}function f(){i.call(this);var e=this.registry.delete;this.registry.delete=function(r){var n=e.call(this,r);return t.hasOwnProperty(r)&&!t[r].linkRecord&&(delete t[r],n=!0),n};var t={};this[yt]={lastRegister:void 0,records:t},this.trace=!1}function d(e,t,r){return e.records[t]={key:t,registration:r,module:void 0,importerSetters:void 0,loadError:void 0,evalError:void 0,linkRecord:{instantiatePromise:void 0,dependencies:void 0,execute:void 0,executingRequire:!1,moduleObj:void 0,setters:void 0,depsInstantiatePromise:void 0,dependencyInstantiations:void 0}}}function p(e,t,r,n,o){var i=n[t];if(i)return Promise.resolve(i);var a=o.records[t];return a&&!a.module?a.loadError?Promise.reject(a.loadError):h(e,a,a.linkRecord,n,o):e.resolve(t,r).then(function(t){if(i=n[t])return i;if((a=o.records[t])&&!a.module||(a=d(o,t,a&&a.registration)),a.loadError)return Promise.reject(a.loadError);var r=a.linkRecord;return r?h(e,a,r,n,o):a})}function g(e,t,r){return function(){var e=r.lastRegister;return e?(r.lastRegister=void 0,t.registration=e,!0):!!t.registration}}function h(e,r,n,o,i){return n.instantiatePromise||(n.instantiatePromise=(r.registration?Promise.resolve():Promise.resolve().then(function(){return i.lastRegister=void 0,e[bt](r.key,e[bt].length>1&&g(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof l))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&v(e,r,n),o[r.key]=t}var a=r.registration;if(r.registration=void 0,!a)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=a[0],r.importerSetters=[],n.moduleObj={},a[2]?(n.moduleObj.default=n.moduleObj.__useDefault={},n.executingRequire=a[1],n.execute=a[2]):y(e,r,n,a[1]),r}).catch(function(e){throw r.linkRecord=void 0,r.loadError=r.loadError||t(e,"Instantiating "+r.key)}))}function m(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=r);var a=o.records[r],s=n[r];if(s&&(!a||a.module&&s!==a.module))return s;if(a&&a.loadError)throw a.loadError;(!a||!s&&a.module)&&(a=d(o,r,a&&a.registration));var u=a.linkRecord;return u?h(e,a,u,n,o):a})}function v(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,dynamicDeps:[],depMap:r.depMap||{}}}function y(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,a=!1,s=n.call(st,function(e,t){if("object"==typeof e){var r=!1;for(var n in e)t=e[n],"__useDefault"===n||n in o&&o[n]===t||(r=!0,o[n]=t);if(!1===r)return t}else{if((a||e in o)&&o[e]===t)return t;o[e]=t}for(var s=0;s<i.length;s++)i[s](o);return t},new x(e,t.key));r.setters=s.setters,r.execute=s.execute,s.exports&&(r.moduleObj=o=s.exports,a=!0)}function b(e,r,n,o,i){if(n.depsInstantiatePromise)return n.depsInstantiatePromise;for(var a=Array(n.dependencies.length),s=0;s<n.dependencies.length;s++)a[s]=m(e,n.dependencies[s],r.key,o,i,e.trace&&n.depMap||(n.depMap={}));var u=Promise.all(a).then(function(e){if(n.dependencyInstantiations=e,n.setters)for(var t=0;t<e.length;t++){var o=n.setters[t];if(o){var i=e[t];if(i instanceof l)o(i);else{if(i.loadError)throw i.loadError;o(i.module||i.linkRecord.moduleObj),i.importerSetters&&i.importerSetters.push(o)}}}return r});return e.trace&&(u=u.then(function(){return v(e,r,n),r})),(u=u.catch(function(e){throw n.depsInstantiatePromise=void 0,t(e,"Loading "+r.key)})).catch(function(){}),n.depsInstantiatePromise=u}function w(e,t,r,n,o){return new Promise(function(r,i){function a(t){var r=t.linkRecord;r&&-1===u.indexOf(t)&&(u.push(t),c++,b(e,t,r,n,o).then(s,i))}function s(e){c--;var t=e.linkRecord;if(t)for(var n=0;n<t.dependencies.length;n++){var o=t.dependencyInstantiations[n];o instanceof l||a(o)}0===c&&r()}var u=[],c=0;a(t)})}function x(e,t){this.loader=e,this.key=this.id=t,this.meta={url:t}}function k(e,t,r,n,o,i){if(t.module)return t.module;if(t.evalError)throw t.evalError;if(i&&-1!==i.indexOf(t))return t.linkRecord.moduleObj;var a=O(e,t,r,n,o,r.setters?[]:i||[]);if(a)throw a;return t.module}function E(e,t,r,n,o,i,a){return function(s){for(var u=0;u<r.length;u++)if(r[u]===s){var c,f=n[u];return c=f instanceof l?f:k(e,f,f.linkRecord,o,i,a),"__useDefault"in c?c.__useDefault:c}throw new Error("Module "+s+" not declared as a System.registerDynamic dependency of "+t)}}function O(e,r,n,o,i,a){a.push(r);var s;if(n.setters)for(var u,c,f=0;f<n.dependencies.length;f++)if(!((u=n.dependencyInstantiations[f])instanceof l)&&((c=u.linkRecord)&&-1===a.indexOf(u)&&(s=u.evalError?u.evalError:O(e,u,c,o,i,c.setters?a:[])),s))return r.linkRecord=void 0,r.evalError=t(s,"Evaluating "+r.key),r.evalError;if(n.execute)if(n.setters)s=S(n.execute);else{var d={id:r.key},p=n.moduleObj;Object.defineProperty(d,"exports",{configurable:!0,set:function(e){p.default=p.__useDefault=e},get:function(){return p.__useDefault}});var g=E(e,r.key,n.dependencies,n.dependencyInstantiations,o,i,a);if(!n.executingRequire)for(f=0;f<n.dependencies.length;f++)g(n.dependencies[f]);s=j(n.execute,g,p.default,d),d.exports!==p.__useDefault&&(p.default=p.__useDefault=d.exports);var h=p.default;if(h&&h.__esModule)for(var m in h)Object.hasOwnProperty.call(h,m)&&(p[m]=h[m])}if(r.linkRecord=void 0,s)return r.evalError=t(s,"Evaluating "+r.key);if(o[r.key]=r.module=new l(n.moduleObj),!n.setters){if(r.importerSetters)for(f=0;f<r.importerSetters.length;f++)r.importerSetters[f](r.module);r.importerSetters=void 0}}function S(e){try{e.call(wt)}catch(e){return e}}function j(e,t,r,n){try{var o=e.call(st,t,r,n);void 0!==o&&(n.exports=o)}catch(e){return e}}function _(){}function P(e){return e instanceof l?e:new l(e&&e.__esModule?e:{default:e,__useDefault:e})}function M(e){return void 0===xt&&(xt="undefined"!=typeof Symbol&&!!Symbol.toStringTag),e instanceof l||xt&&"[object Module]"==Object.prototype.toString.call(e)}function R(e,t){(t||this.warnings&&"undefined"!=typeof console&&console.warn)&&console.warn(e)}function C(e,t,r){var n=new Uint8Array(t);return 0===n[0]&&97===n[1]&&115===n[2]?WebAssembly.compile(t).then(function(t){var n=[],o=[],i={};return WebAssembly.Module.imports&&WebAssembly.Module.imports(t).forEach(function(e){var t=e.module;o.push(function(e){i[t]=e}),-1===n.indexOf(t)&&n.push(t)}),e.register(n,function(e){return{setters:o,execute:function(){e(new WebAssembly.Instance(t,i).exports)}}}),r(),!0}):Promise.resolve(!1)}function L(e,t){if("."===e[0])throw new Error("Node module "+e+" can't be loaded as it is not a package require.");if(!kt){var r=this._nodeRequire("module"),n=decodeURI(t.substr(at?8:7));(kt=new r(n)).paths=r._nodeModulePaths(n)}return kt.require(e)}function A(e,t){for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}function I(e,t){for(var r in t)Object.hasOwnProperty.call(t,r)&&void 0===e[r]&&(e[r]=t[r]);return e}function F(e,t,r){for(var n in t)if(Object.hasOwnProperty.call(t,n)){var o=t[n];void 0===e[n]?e[n]=o:o instanceof Array&&e[n]instanceof Array?e[n]=[].concat(r?o:e[n]).concat(r?e[n]:o):"object"==typeof o&&null!==o&&"object"==typeof e[n]?e[n]=(r?I:A)(A({},e[n]),o):r||(e[n]=o)}}function K(e){if(Pt||Mt){var t=document.createElement("link");Pt?(t.rel="preload",t.as="script"):t.rel="prefetch",t.href=e,document.head.appendChild(t)}else(new Image).src=e}function D(e,t,r){try{importScripts(e)}catch(e){r(e)}t()}function U(e,t,r,n,o){function i(){n(),s()}function a(t){s(),o(new Error("Fetching "+e))}function s(){for(var e=0;e<Rt.length;e++)if(Rt[e].err===a){Rt.splice(e,1);break}u.removeEventListener("load",i,!1),u.removeEventListener("error",a,!1),document.head.removeChild(u)}if(e=e.replace(/#/g,"%23"),_t)return D(e,n,o);var u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,t&&(u.crossOrigin=t),r&&(u.integrity=r),u.addEventListener("load",i,!1),u.addEventListener("error",a,!1),u.src=e,document.head.appendChild(u)}function q(e,t){for(var r=e.split(".");r.length;)t=t[r.shift()];return t}function T(e,t,r){var o=N(t,r);if(o){var i=t[o]+r.substr(o.length),a=n(i,nt);return void 0!==a?a:e+i}return-1!==r.indexOf(":")?r:e+r}function z(e){var t=this.name;if(t.substr(0,e.length)===e&&(t.length===e.length||"/"===t[e.length]||"/"===e[e.length-1]||":"===e[e.length-1])){var r=e.split("/").length;r>this.len&&(this.match=e,this.len=r)}}function N(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(z,r),r.match}function J(e,t,r,n){if("file:///"===e.substr(0,8)){if(Ft)return $(e,t,r,n);throw new Error("Unable to fetch file URLs in this environment.")}e=e.replace(/#/g,"%23");var o={headers:{Accept:"application/x-es-module, */*"}};return r&&(o.integrity=r),t&&("string"==typeof t&&(o.headers.Authorization=t),o.credentials="include"),fetch(e,o).then(function(e){if(e.ok)return n?e.arrayBuffer():e.text();throw new Error("Fetch error: "+e.status+" "+e.statusText)})}function $(e,t,r,n){return new Promise(function(r,o){function i(){r(n?s.response:s.responseText)}function a(){o(new Error("XHR error: "+(s.status?" ("+s.status+(s.statusText?" "+s.statusText:"")+")":"")+" loading "+e))}e=e.replace(/#/g,"%23");var s=new XMLHttpRequest;n&&(s.responseType="arraybuffer"),s.onreadystatechange=function(){4===s.readyState&&(0==s.status?s.response?i():(s.addEventListener("error",a),s.addEventListener("load",i)):200===s.status?i():a())},s.open("GET",e,!0),s.setRequestHeader&&(s.setRequestHeader("Accept","application/x-es-module, */*"),t&&("string"==typeof t&&s.setRequestHeader("Authorization",t),s.withCredentials=!0)),s.send(null)})}function B(e,t,r,n){return"file:///"!=e.substr(0,8)?Promise.reject(new Error('Unable to fetch "'+e+'". Only file URLs of the form file:/// supported running in Node.')):(Lt=Lt||require("fs"),e=at?e.replace(/\//g,"\\").substr(8):e.substr(7),new Promise(function(t,r){Lt.readFile(e,function(e,o){if(e)return r(e);if(n)t(o);else{var i=o+"";"\ufeff"===i[0]&&(i=i.substr(1)),t(i)}})}))}function W(){throw new Error("No fetch method is defined for this environment.")}function G(){return{pluginKey:void 0,pluginArgument:void 0,pluginModule:void 0,packageKey:void 0,packageConfig:void 0,load:void 0}}function H(e,t,r){var n=G();if(r){var o;t.pluginFirst?-1!==(o=r.lastIndexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(0,o)):-1!==(o=r.indexOf("!"))&&(n.pluginArgument=n.pluginKey=r.substr(o+1)),n.packageKey=N(t.packages,r),n.packageKey&&(n.packageConfig=t.packages[n.packageKey])}return n}function Z(e,t){var r=this[St],n=G(),o=H(this,r,t),i=this;return Promise.resolve().then(function(){var r=e.lastIndexOf("#?");if(-1===r)return Promise.resolve(e);var n=he.call(i,e.substr(r+2));return me.call(i,n,t,!0).then(function(t){return t?e.substr(0,r):"@empty"})}).then(function(e){var a=ne(r.pluginFirst,e);return a?(n.pluginKey=a.plugin,Promise.all([ee.call(i,r,a.argument,o&&o.pluginArgument||t,n,o,!0),i.resolve(a.plugin,t)]).then(function(e){if(n.pluginArgument=e[0],n.pluginKey=e[1],n.pluginArgument===n.pluginKey)throw new Error("Plugin "+n.pluginArgument+" cannot load itself, make sure it is excluded from any wildcard meta configuration via a custom loader: false rule.");return oe(r.pluginFirst,e[0],e[1])})):ee.call(i,r,e,o&&o.pluginArgument||t,n,o,!1)}).then(function(e){return ve.call(i,e,t,o)}).then(function(e){return re.call(i,r,e,n),n.pluginKey||!n.load.loader?e:i.resolve(n.load.loader,e).then(function(t){return n.pluginKey=t,n.pluginArgument=e,e})}).then(function(e){return i[jt][e]=n,e})}function X(e,t){var r=ne(e.pluginFirst,t);if(r){var n=X.call(this,e,r.plugin);return oe(e.pluginFirst,Q.call(this,e,r.argument,void 0,!1,!1),n)}return Q.call(this,e,t,void 0,!1,!1)}function Y(e,t){var r=this[St],n=G(),o=o||H(this,r,t),i=ne(r.pluginFirst,e);return i?(n.pluginKey=Y.call(this,i.plugin,t),oe(r.pluginFirst,V.call(this,r,i.argument,o.pluginArgument||t,n,o,!!n.pluginKey),n.pluginKey)):V.call(this,r,e,o.pluginArgument||t,n,o,!!n.pluginKey)}function Q(e,t,r,o,i){var a=n(t,r||nt);if(a)return T(e.baseURL,e.paths,a);if(o){var s=N(e.map,t);if(s&&(t=e.map[s]+t.substr(s.length),a=n(t,nt)))return T(e.baseURL,e.paths,a)}if(this.registry.has(t))return t;if("@node/"===t.substr(0,6))return t;var u=i&&"/"!==t[t.length-1],l=T(e.baseURL,e.paths,u?t+"/":t);return u?l.substr(0,l.length-1):l}function V(e,t,r,n,o,i){if(o&&o.packageConfig&&"."!==t[0]){var a=o.packageConfig.map,s=a&&N(a,t);if(s&&"string"==typeof a[s]){var u=ue(this,e,o.packageConfig,o.packageKey,s,t,n,i);if(u)return u}}var l=Q.call(this,e,t,r,!0,!0),c=de(e,l);if(n.packageKey=c&&c.packageKey||N(e.packages,l),!n.packageKey)return l;if(-1!==e.packageConfigKeys.indexOf(l))return n.packageKey=void 0,l;n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=Ee());var f=l.substr(n.packageKey.length+1);return ae(this,e,n.packageConfig,n.packageKey,f,n,i)}function ee(e,t,r,n,o,i){var a=this;return Et.then(function(){if(o&&o.packageConfig&&"./"!==t.substr(0,2)){var r=o.packageConfig.map,s=r&&N(r,t);if(s)return ce(a,e,o.packageConfig,o.packageKey,s,t,n,i)}return Et}).then(function(o){if(o)return o;var s=Q.call(a,e,t,r,!0,!0),u=de(e,s);return n.packageKey=u&&u.packageKey||N(e.packages,s),n.packageKey?-1!==e.packageConfigKeys.indexOf(s)?(n.packageKey=void 0,n.load=te(),n.load.format="json",n.load.loader="",Promise.resolve(s)):(n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=Ee()),(u&&!n.packageConfig.configured?pe(a,e,u.configPath,n):Et).then(function(){var t=s.substr(n.packageKey.length+1);return le(a,e,n.packageConfig,n.packageKey,t,n,i)})):Promise.resolve(s)})}function te(){return{extension:"",deps:void 0,format:void 0,loader:void 0,scriptLoad:void 0,globals:void 0,nonce:void 0,integrity:void 0,sourceMap:void 0,exports:void 0,encapsulateGlobal:!1,crossOrigin:void 0,cjsRequireDetection:!0,cjsDeferDepsExecute:!1,esModule:!1}}function re(e,t,r){r.load=r.load||te();var n,o=0;for(var i in e.meta)if(-1!==(n=i.indexOf("*"))&&i.substr(0,n)===t.substr(0,n)&&i.substr(n+1)===t.substr(t.length-i.length+n+1)){var a=i.split("/").length;a>o&&(o=a),F(r.load,e.meta[i],o!==a)}if(e.meta[t]&&F(r.load,e.meta[t],!1),r.packageKey){var s=t.substr(r.packageKey.length+1),u={};if(r.packageConfig.meta){o=0;ge(r.packageConfig.meta,s,function(e,t,r){r>o&&(o=r),F(u,t,r&&o>r)}),F(r.load,u,!1)}!r.packageConfig.format||r.pluginKey||r.load.loader||(r.load.format=r.load.format||r.packageConfig.format)}}function ne(e,t){var r,n,o=e?t.indexOf("!"):t.lastIndexOf("!");if(-1!==o)return e?(r=t.substr(o+1),n=t.substr(0,o)):(r=t.substr(0,o),n=t.substr(o+1)||r.substr(r.lastIndexOf(".")+1)),{argument:r,plugin:n}}function oe(e,t,r){return e?r+"!"+t:t+"!"+r}function ie(e,t,r,n,o){if(!n||!t.defaultExtension||"/"===n[n.length-1]||o)return n;var i=!1;if(t.meta&&ge(t.meta,n,function(e,t,r){if(0===r||e.lastIndexOf("*")!==e.length-1)return i=!0}),!i&&e.meta&&ge(e.meta,r+"/"+n,function(e,t,r){if(0===r||e.lastIndexOf("*")!==e.length-1)return i=!0}),i)return n;var a="."+t.defaultExtension;return n.substr(n.length-a.length)!==a?n+a:n}function ae(e,t,r,n,o,i,a){if(!o){if(!r.main)return n;o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}if(r.map){var s="./"+o,u=N(r.map,s);if(u||(s="./"+ie(t,r,n,o,a))!=="./"+o&&(u=N(r.map,s)),u){var l=ue(e,t,r,n,u,s,i,a);if(l)return l}}return n+"/"+ie(t,r,n,o,a)}function se(e,t,r){return!(t.substr(0,e.length)===e&&r.length>e.length)}function ue(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("object"==typeof u)throw new Error("Synchronous conditional normalization not supported sync normalizing "+o+" in "+n);if(se(o,u,i)&&"string"==typeof u)return V.call(e,t,u+i.substr(o.length),n+"/",a,a,s)}function le(e,t,r,n,o,i,a){if(!o){if(!r.main)return Promise.resolve(n);o="./"===r.main.substr(0,2)?r.main.substr(2):r.main}var s,u;return r.map&&(s="./"+o,(u=N(r.map,s))||(s="./"+ie(t,r,n,o,a))!=="./"+o&&(u=N(r.map,s))),(u?ce(e,t,r,n,u,s,i,a):Et).then(function(e){return e?Promise.resolve(e):Promise.resolve(n+"/"+ie(t,r,n,o,a))})}function ce(e,t,r,n,o,i,a,s){"/"===i[i.length-1]&&(i=i.substr(0,i.length-1));var u=r.map[o];if("string"==typeof u)return se(o,u,i)?ee.call(e,t,u+i.substr(o.length),n+"/",a,a,s).then(function(t){return ve.call(e,t,n+"/",a)}):Et;var l=[],c=[];for(var d in u){var p=he(d);c.push({condition:p,map:u[d]}),l.push(f.prototype.import.call(e,p.module,n))}return Promise.all(l).then(function(e){for(var t=0;t<c.length;t++){var r=c[t].condition,n=q(r.prop,"__useDefault"in e[t]?e[t].__useDefault:e[t]);if(!r.negate&&n||r.negate&&!n)return c[t].map}}).then(function(r){if(r)return se(o,r,i)?ee.call(e,t,r+i.substr(o.length),n+"/",a,a,s).then(function(t){return ve.call(e,t,n+"/",a)}):Et})}function fe(e){var t=e.lastIndexOf("*"),r=Math.max(t+1,e.lastIndexOf("/"));return{length:r,regEx:new RegExp("^("+e.substr(0,r).replace(/[.+?^${}()|[\]\\]/g,"\\$&").replace(/\*/g,"[^\\/]+")+")(\\/|$)"),wildcard:-1!==t}}function de(e,t){for(var r,n,o=!1,i=0;i<e.packageConfigPaths.length;i++){var a=e.packageConfigPaths[i],s=Dt[a]||(Dt[a]=fe(a));if(!(t.length<s.length)){var u=t.match(s.regEx);!u||r&&(o&&s.wildcard||!(r.length<u[1].length))||(r=u[1],o=!s.wildcard,n=r+a.substr(s.length))}}if(r)return{packageKey:r,configPath:n}}function pe(e,r,n,o,i){var a=e.pluginLoader||e;return-1===r.packageConfigKeys.indexOf(n)&&r.packageConfigKeys.push(n),a.import(n).then(function(e){Oe(o.packageConfig,e,o.packageKey,!0,r),o.packageConfig.configured=!0}).catch(function(e){throw t(e,"Unable to fetch package configuration file "+n)})}function ge(e,t,r){var n;for(var o in e){var i="./"===o.substr(0,2)?"./":"";if(i&&(o=o.substr(2)),-1!==(n=o.indexOf("*"))&&o.substr(0,n)===t.substr(0,n)&&o.substr(n+1)===t.substr(t.length-o.length+n+1)&&r(o,e[i+o],o.split("/").length))return}var a=e[t]&&Object.hasOwnProperty.call(e,t)?e[t]:e["./"+t];a&&r(a,a,0)}function he(e){var t,r,n,o=e.lastIndexOf("|");return-1!==o?(t=e.substr(o+1),r=e.substr(0,o),"~"===t[0]&&(n=!0,t=t.substr(1))):(n="~"===e[0],t="default",r=e.substr(n),-1!==Ut.indexOf(r)&&(t=r,r=null)),{module:r||"@system-env",prop:t,negate:n}}function me(e,t,r){return f.prototype.import.call(this,e.module,t).then(function(t){var n=q(e.prop,t);if(r&&"boolean"!=typeof n)throw new TypeError("Condition did not resolve to a boolean.");return e.negate?!n:n})}function ve(e,t,r){var n=e.match(qt);if(!n)return Promise.resolve(e);var o=he.call(this,n[0].substr(2,n[0].length-3));return me.call(this,o,t,!1).then(function(r){if("string"!=typeof r)throw new TypeError("The condition value for "+e+" doesn't resolve to a string.");if(-1!==r.indexOf("/"))throw new TypeError("Unabled to interpolate conditional "+e+(t?" in "+t:"")+"\n\tThe condition value "+r+' cannot contain a "/" separator.');return e.replace(qt,r)})}function ye(e,t,r){for(var n=0;n<Tt.length;n++){var o=Tt[n];t[o]&&Er[o.substr(0,o.length-6)]&&r(t[o])}}function be(e,t){var r={};for(var n in e){var o=e[n];t>1?o instanceof Array?r[n]=[].concat(o):"object"==typeof o?r[n]=be(o,t-1):"packageConfig"!==n&&(r[n]=o):r[n]=o}return r}function we(e,t){var r=e[t];return r instanceof Array?e[t].concat([]):"object"==typeof r?be(r,3):e[t]}function xe(e){if(e){if(-1!==Or.indexOf(e))return we(this[St],e);throw new Error('"'+e+'" is not a valid configuration name. Must be one of '+Or.join(", ")+".")}for(var t={},r=0;r<Or.length;r++){var n=Or[r],o=we(this[St],n);void 0!==o&&(t[n]=o)}return t}function ke(e,t){var r=this,o=this[St];if("warnings"in e&&(o.warnings=e.warnings),"wasm"in e&&(o.wasm="undefined"!=typeof WebAssembly&&e.wasm),("production"in e||"build"in e)&&tt.call(r,!!e.production,!!(e.build||Er&&Er.build)),!t){var i;ye(r,e,function(e){i=i||e.baseURL}),(i=i||e.baseURL)&&(o.baseURL=n(i,nt)||n("./"+i,nt),"/"!==o.baseURL[o.baseURL.length-1]&&(o.baseURL+="/")),e.paths&&A(o.paths,e.paths),ye(r,e,function(e){e.paths&&A(o.paths,e.paths)});for(var a in o.paths)-1!==o.paths[a].indexOf("*")&&(R.call(o,"Path config "+a+" -> "+o.paths[a]+" is no longer supported as wildcards are deprecated."),delete o.paths[a])}if(e.defaultJSExtensions&&R.call(o,"The defaultJSExtensions configuration option is deprecated.\n Use packages defaultExtension instead.",!0),"boolean"==typeof e.pluginFirst&&(o.pluginFirst=e.pluginFirst),e.map)for(var a in e.map){var s=e.map[a];if("string"==typeof s){var u=Q.call(r,o,s,void 0,!1,!1);"/"===u[u.length-1]&&":"!==a[a.length-1]&&"/"!==a[a.length-1]&&(u=u.substr(0,u.length-1)),o.map[a]=u}else{m=(m=Q.call(r,o,"/"!==a[a.length-1]?a+"/":a,void 0,!0,!0)).substr(0,m.length-1);var l=o.packages[m];l||((l=o.packages[m]=Ee()).defaultExtension=""),Oe(l,{map:s},m,!1,o)}}if(e.packageConfigPaths){for(var c=[],f=0;f<e.packageConfigPaths.length;f++){var d=e.packageConfigPaths[f],p=Math.max(d.lastIndexOf("*")+1,d.lastIndexOf("/")),g=Q.call(r,o,d.substr(0,p),void 0,!1,!1);c[f]=g+d.substr(p)}o.packageConfigPaths=c}if(e.bundles)for(var a in e.bundles){for(var h=[],f=0;f<e.bundles[a].length;f++)h.push(r.normalizeSync(e.bundles[a][f]));o.bundles[a]=h}if(e.packages)for(var a in e.packages){if(a.match(/^([^\/]+:)?\/\/$/))throw new TypeError('"'+a+'" is not a valid package name.');var m=Q.call(r,o,"/"!==a[a.length-1]?a+"/":a,void 0,!0,!0);m=m.substr(0,m.length-1),Oe(o.packages[m]=o.packages[m]||Ee(),e.packages[a],m,!1,o)}if(e.depCache)for(var a in e.depCache)o.depCache[r.normalizeSync(a)]=[].concat(e.depCache[a]);if(e.meta)for(var a in e.meta)if("*"===a[0])A(o.meta[a]=o.meta[a]||{},e.meta[a]);else{var v=Q.call(r,o,a,void 0,!0,!0);A(o.meta[v]=o.meta[v]||{},e.meta[a])}"transpiler"in e&&(o.transpiler=e.transpiler);for(var y in e)-1===Or.indexOf(y)&&-1===Tt.indexOf(y)&&(r[y]=e[y]);ye(r,e,function(e){r.config(e,!0)})}function Ee(){return{defaultExtension:void 0,main:void 0,format:void 0,meta:void 0,map:void 0,packageConfig:void 0,configured:!1}}function Oe(e,t,r,n,o){for(var i in t)"main"===i||"format"===i||"defaultExtension"===i||"configured"===i?n&&void 0!==e[i]||(e[i]=t[i]):"map"===i?(n?I:A)(e.map=e.map||{},t.map):"meta"===i?(n?I:A)(e.meta=e.meta||{},t.meta):Object.hasOwnProperty.call(t,i)&&R.call(o,'"'+i+'" is not a valid package configuration option in package '+r);return void 0===e.defaultExtension&&(e.defaultExtension="js"),void 0===e.main&&e.map&&e.map["."]?(e.main=e.map["."],delete e.map["."]):"object"==typeof e.main&&(e.map=e.map||{},e.map["./@main"]=e.main,e.main.default=e.main.default||"./",e.main="@main"),e}function Se(e){return zt?Wt+new Buffer(e).toString("base64"):"undefined"!=typeof btoa?Wt+btoa(unescape(encodeURIComponent(e))):""}function je(e,t,r,n){var o=e.lastIndexOf("\n");if(t){if("object"!=typeof t)throw new TypeError("load.metadata.sourceMap must be set to an object.");t=JSON.stringify(t)}return(n?"(function(System, SystemJS) {":"")+e+(n?"\n})(System, System);":"")+("\n//# sourceURL="!=e.substr(o,15)?"\n//# sourceURL="+r+(t?"!transpiled":""):"")+(t&&Se(t)||"")}function _e(e,t,r,n,o){Nt||(Nt=document.head||document.body||document.documentElement);var i=document.createElement("script");i.text=je(t,r,n,!1);var a,s=window.onerror;if(window.onerror=function(e){a=addToError(e,"Evaluating "+n),s&&s.apply(this,arguments)},Pe(e),o&&i.setAttribute("nonce",o),Nt.appendChild(i),Nt.removeChild(i),Me(),window.onerror=s,a)return a}function Pe(e){0==Gt++&&(Bt=st.System),st.System=st.SystemJS=e}function Me(){0==--Gt&&(st.System=st.SystemJS=Bt)}function Re(e,t,r,n,o,i,a){if(t){if(i&&Ht)return _e(e,t,r,n,i);try{Pe(e),!Jt&&e._nodeRequire&&(Jt=e._nodeRequire("vm"),$t=Jt.runInThisContext("typeof System !== 'undefined' && System")===e),$t?Jt.runInThisContext(je(t,r,n,!a),{filename:n+(r?"!transpiled":"")}):(0,eval)(je(t,r,n,!a)),Me()}catch(e){return Me(),e}}}function Ce(e){return"file:///"===e.substr(0,8)?e.substr(7+!!at):Zt&&e.substr(0,Zt.length)===Zt?e.substr(Zt.length):e}function Le(e,t){return Ce(this.normalizeSync(e,t))}function Ae(e){var t,r=e.lastIndexOf("!"),n=(t=-1!==r?e.substr(0,r):e).split("/");return n.pop(),n=n.join("/"),{filename:Ce(t),dirname:Ce(n)}}function Ie(e){function t(e,t){for(var r=0;r<e.length;r++)if(e[r][0]<t.index&&e[r][1]>t.index)return!0;return!1}It.lastIndex=tr.lastIndex=rr.lastIndex=0;var r,n=[],o=[],i=[];if(e.length/e.split("\n").length<200){for(;r=rr.exec(e);)o.push([r.index,r.index+r[0].length]);for(;r=tr.exec(e);)t(o,r)||i.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=It.exec(e);)if(!t(o,r)&&!t(i,r)){var a=r[1].substr(1,r[1].length-2);if(a.match(/"|'/))continue;n.push(a)}return n}function Fe(e){if(-1===nr.indexOf(e)){try{var t=st[e]}catch(t){nr.push(e)}this(e,t)}}function Ke(e){if("string"==typeof e)return q(e,st);if(!(e instanceof Array))throw new Error("Global exports must be a string or array.");for(var t={},r=0;r<e.length;r++)t[e[r].split(".").pop()]=q(e[r],st);return t}function De(e,t,r,n){var o=st.define;st.define=void 0;var i;if(r){i={};for(var a in r)i[a]=st[a],st[a]=r[a]}return t||(Yt={},Object.keys(st).forEach(Fe,function(e,t){Yt[e]=t})),function(){var e,r=t?Ke(t):{},a=!!t;if(t&&!n||Object.keys(st).forEach(Fe,function(o,i){Yt[o]!==i&&void 0!==i&&(n&&(st[o]=void 0),t||(r[o]=i,void 0!==e?a||e===i||(a=!0):e=i))}),r=a?r:e,i)for(var s in i)st[s]=i[s];return st.define=o,r}}function Ue(e,t){var r=((e=e.replace(tr,"")).match(ar)[1].split(",")[t]||"require").replace(sr,""),n=ur[r]||(ur[r]=new RegExp(or+r+ir,"g"));n.lastIndex=0;for(var o,i=[];o=n.exec(e);)i.push(o[2]||o[3]);return i}function qe(e){return function(t,r,n){e(t,r,n),"object"!=typeof(r=n.exports)&&"function"!=typeof r||"__esModule"in r||Object.defineProperty(n.exports,"__esModule",{value:!0})}}function Te(e,t){Vt=e,cr=t,Qt=void 0,lr=!1}function ze(e){Qt?e.registerDynamic(Vt?Qt[0].concat(Vt):Qt[0],!1,cr?qe(Qt[1]):Qt[1]):lr&&e.registerDynamic([],!1,_)}function Ne(e,t){!e.load.esModule||"object"!=typeof t&&"function"!=typeof t||"__esModule"in t||Object.defineProperty(t,"__esModule",{value:!0})}function Je(e,t){var r=this,n=this[St];return(Be(n,this,e)||Et).then(function(){if(!t()){var o=r[jt][e];if("@node/"===e.substr(0,6)){if(!r._nodeRequire)throw new TypeError("Error loading "+e+". Can only load node core modules in Node.");return r.registerDynamic([],!1,function(){return L.call(r,e.substr(6),r.baseURL)}),void t()}return o.load.scriptLoad?!o.load.pluginKey&&fr||(o.load.scriptLoad=!1,R.call(n,'scriptLoad not supported for "'+e+'"')):!1!==o.load.scriptLoad&&!o.load.pluginKey&&fr&&(o.load.deps||o.load.globals||!("system"===o.load.format||"register"===o.load.format||"global"===o.load.format&&o.load.exports)||(o.load.scriptLoad=!0)),o.load.scriptLoad?new Promise(function(n,i){if("amd"===o.load.format&&st.define!==r.amdDefine)throw new Error("Loading AMD with scriptLoad requires setting the global `"+pr+".define = SystemJS.amdDefine`");U(e,o.load.crossOrigin,o.load.integrity,function(){if(!t()){o.load.format="global";var e=o.load.exports&&Ke(o.load.exports);r.registerDynamic([],!1,function(){return Ne(o,e),e}),t()}n()},i)}):$e(r,e,o).then(function(){return We(r,e,o,t,n.wasm)})}}).then(function(t){return delete r[jt][e],t})}function $e(e,t,r){return r.pluginKey?e.import(r.pluginKey).then(function(e){r.pluginModule=e,r.pluginLoad={name:t,address:r.pluginArgument,source:void 0,metadata:r.load},r.load.deps=r.load.deps||[]}):Et}function Be(e,t,r){var n=e.depCache[r];if(n)for(a=0;a<n.length;a++)t.normalize(n[a],r).then(K);else{var o=!1;for(var i in e.bundles){for(var a=0;a<e.bundles[i].length;a++){var s=e.bundles[i][a];if(s===r){o=!0;break}if(-1!==s.indexOf("*")){var u=s.split("*");if(2!==u.length){e.bundles[i].splice(a--,1);continue}if(r.substr(0,u[0].length)===u[0]&&r.substr(r.length-u[1].length,u[1].length)===u[1]){o=!0;break}}}if(o)return t.import(i)}}}function We(e,t,r,n,o){return r.load.exports&&!r.load.format&&(r.load.format="global"),Et.then(function(){if(r.pluginModule&&r.pluginModule.locate)return Promise.resolve(r.pluginModule.locate.call(e,r.pluginLoad)).then(function(e){e&&(r.pluginLoad.address=e)})}).then(function(){return r.pluginModule?(o=!1,r.pluginModule.fetch?r.pluginModule.fetch.call(e,r.pluginLoad,function(e){return Kt(e.address,r.load.authorization,r.load.integrity,!1)}):Kt(r.pluginLoad.address,r.load.authorization,r.load.integrity,!1)):Kt(t,r.load.authorization,r.load.integrity,o)}).then(function(i){return o&&"string"!=typeof i?C(e,i,n).then(function(o){if(!o){var a=ot?new TextDecoder("utf-8").decode(new Uint8Array(i)):i.toString();return Ge(e,t,a,r,n)}}):Ge(e,t,i,r,n)})}function Ge(e,t,r,n,o){return Promise.resolve(r).then(function(t){return"detect"===n.load.format&&(n.load.format=void 0),Ve(t,n),n.pluginModule?(n.pluginLoad.source=t,n.pluginModule.translate?Promise.resolve(n.pluginModule.translate.call(e,n.pluginLoad,n.traceOpts)).then(function(e){if(n.load.sourceMap){if("object"!=typeof n.load.sourceMap)throw new Error("metadata.load.sourceMap must be set to an object.");Xe(n.pluginLoad.address,n.load.sourceMap)}return"string"==typeof e?e:n.pluginLoad.source}):t):t}).then(function(r){return n.load.format||'"bundle"'!==r.substring(0,8)?"register"===n.load.format||!n.load.format&&He(r)?(n.load.format="register",r):"esm"===n.load.format||!n.load.format&&r.match(gr)?(n.load.format="esm",Ye(e,r,t,n,o)):r:(n.load.format="system",r)}).then(function(t){if("string"!=typeof t||!n.pluginModule||!n.pluginModule.instantiate)return t;var r=!1;return n.pluginLoad.source=t,Promise.resolve(n.pluginModule.instantiate.call(e,n.pluginLoad,function(e){if(t=e.source,n.load=e.metadata,r)throw new Error("Instantiate must only be called once.");r=!0})).then(function(e){return r?t:P(e)})}).then(function(r){if("string"!=typeof r)return r;n.load.format||(n.load.format=Ze(r));var i=!1;switch(n.load.format){case"esm":case"register":case"system":if(u=Re(e,r,n.load.sourceMap,t,n.load.integrity,n.load.nonce,!1))throw u;if(!o())return Ot;return;case"json":var a=JSON.parse(r);return e.newModule({default:a,__useDefault:a});case"amd":var s=st.define;st.define=e.amdDefine,Te(n.load.deps,n.load.esModule);var u=Re(e,r,n.load.sourceMap,t,n.load.integrity,n.load.nonce,!1);if((i=o())||(ze(e),i=o()),st.define=s,u)throw u;break;case"cjs":var l=n.load.deps,c=(n.load.deps||[]).concat(n.load.cjsRequireDetection?Ie(r):[]);for(var f in n.load.globals)n.load.globals[f]&&c.push(n.load.globals[f]);e.registerDynamic(c,!0,function(o,i,a){if(o.resolve=function(t){return Le.call(e,t,a.id)},a.paths=[],a.require=o,!n.load.cjsDeferDepsExecute&&l)for(var s=0;s<l.length;s++)o(l[s]);var u=Ae(a.id),c={exports:i,args:[o,i,a,u.filename,u.dirname,st,st]},f="(function (require, exports, module, __filename, __dirname, global, GLOBAL";if(n.load.globals)for(var d in n.load.globals)c.args.push(o(n.load.globals[d])),f+=", "+d;var p=st.define;st.define=void 0,st.__cjsWrapper=c,r=f+") {"+r.replace(yr,"")+"\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);";var g=Re(e,r,n.load.sourceMap,t,n.load.integrity,n.load.nonce,!1);if(g)throw g;Ne(n,i),st.__cjsWrapper=void 0,st.define=p}),i=o();break;case"global":c=n.load.deps||[];for(var f in n.load.globals){var d=n.load.globals[f];d&&c.push(d)}e.registerDynamic(c,!1,function(o,i,a){var s;if(n.load.globals){s={};for(var u in n.load.globals)n.load.globals[u]&&(s[u]=o(n.load.globals[u]))}var l=n.load.exports;l&&(r+="\n"+pr+'["'+l+'"] = '+l+";");var c=De(a.id,l,s,n.load.encapsulateGlobal),f=Re(e,r,n.load.sourceMap,t,n.load.integrity,n.load.nonce,!0);if(f)throw f;var d=c();return Ne(n,d),d}),i=o();break;default:throw new TypeError('Unknown module format "'+n.load.format+'" for "'+t+'".'+("es6"===n.load.format?' Use "esm" instead here.':""))}if(!i)throw new Error("Module "+t+" detected as "+n.load.format+" but didn't execute correctly.")})}function He(e){var t=e.match(hr);return t&&"System.register"===e.substr(t[0].length,15)}function Ze(e){return e.match(mr)?"amd":(vr.lastIndex=0,It.lastIndex=0,It.exec(e)||vr.exec(e)?"cjs":"global")}function Xe(e,t){var r=e.split("!")[0];t.file&&t.file!=e||(t.file=r+"!transpiled"),(!t.sources||t.sources.length<=1&&(!t.sources[0]||t.sources[0]===e))&&(t.sources=[r])}function Ye(e,r,n,o,i){if(!e.transpiler)throw new TypeError("Unable to dynamically transpile ES module\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: 'transpiler-module' })`.");if(o.load.deps){for(var a="",s=0;s<o.load.deps.length;s++)a+='import "'+o.load.deps[s]+'"; ';r=a+r}return e.import.call(e,e.transpiler).then(function(t){if(!(t=t.__useDefault||t).translate)throw new Error(e.transpiler+" is not a valid transpiler plugin.");return t===o.pluginModule?r:("string"==typeof o.load.sourceMap&&(o.load.sourceMap=JSON.parse(o.load.sourceMap)),o.pluginLoad=o.pluginLoad||{name:n,address:n,source:r,metadata:o.load},o.load.deps=o.load.deps||[],Promise.resolve(t.translate.call(e,o.pluginLoad,o.traceOpts)).then(function(e){var t=o.load.sourceMap;return t&&"object"==typeof t&&Xe(n,t),"esm"===o.load.format&&He(e)&&(o.load.format="register"),e}))},function(e){throw t(e,"Unable to load transpiler to transpile "+n)})}function Qe(e,t,r){for(var n,o=t.split(".");o.length>1;)e=e[n=o.shift()]=e[n]||{};void 0===e[n=o.shift()]&&(e[n]=r)}function Ve(e,t){var r=e.match(br);if(r)for(var n=r[0].match(wr),o=0;o<n.length;o++){var i=n[o],a=i.length,s=i.substr(0,1);if(";"==i.substr(a-1,1)&&a--,'"'==s||"'"==s){var u=i.substr(1,i.length-3),l=u.substr(0,u.indexOf(" "));if(l){var c=u.substr(l.length+1,u.length-l.length-1);"deps"===l&&(l="deps[]"),"[]"===l.substr(l.length-2,2)?(l=l.substr(0,l.length-2),t.load[l]=t.load[l]||[],t.load[l].push(c)):"use"!==l&&Qe(t.load,l,c)}else t.load[u]=!0}}}function et(){f.call(this),this._loader={},this[jt]={},this[St]={baseURL:nt,paths:{},packageConfigPaths:[],packageConfigKeys:[],map:{},packages:{},depCache:{},meta:{},bundles:{},production:!1,transpiler:void 0,loadedBundles:{},warnings:!1,pluginFirst:!1,wasm:!1},this.scriptSrc=dr,this._nodeRequire=er,this.registry.set("@empty",Ot),tt.call(this,!1,!1),Xt(this)}function tt(e,t){this[St].production=e,this.registry.set("@system-env",Er=this.newModule({browser:ot,node:!!this._nodeRequire,production:!t&&e,dev:t||!e,build:t,default:!0}))}function rt(e,t){R.call(e[St],"SystemJS."+t+" is deprecated for SystemJS.registry."+t)}var nt,ot="undefined"!=typeof window&&"undefined"!=typeof document,it="undefined"!=typeof process&&process.versions&&process.versions.node,at="undefined"!=typeof process&&"string"==typeof process.platform&&process.platform.match(/^win/),st="undefined"!=typeof self?self:global,ut="undefined"!=typeof Symbol;if("undefined"!=typeof document&&document.getElementsByTagName){if(!(nt=document.baseURI)){var lt=document.getElementsByTagName("base");nt=lt[0]&<[0].href||window.location.href}}else"undefined"!=typeof location&&(nt=location.href);if(nt){var ct=(nt=nt.split("#")[0].split("?")[0]).lastIndexOf("/");-1!==ct&&(nt=nt.substr(0,ct+1))}else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");nt="file://"+(at?"/":"")+process.cwd(),at&&(nt=nt.replace(/\\/g,"/"))}"/"!==nt[nt.length-1]&&(nt+="/");var ft="_"==new Error(0,"_").fileName,dt=Promise.resolve();i.prototype.constructor=i,i.prototype.import=function(e,r){if("string"!=typeof e)throw new TypeError("Loader import method must be passed a module key string");var n=this;return dt.then(function(){return n[gt](e,r)}).then(a).catch(function(n){throw t(n,"Loading "+e+(r?" from "+r:""))})};var pt=i.resolve=e("resolve"),gt=i.resolveInstantiate=e("resolveInstantiate");i.prototype[gt]=function(e,t){var r=this;return r.resolve(e,t).then(function(e){return r.registry.get(e)})},i.prototype.resolve=function(e,r){var n=this;return dt.then(function(){return n[pt](e,r)}).then(s).catch(function(n){throw t(n,"Resolving "+e+(r?" to "+r:""))})};var ht="undefined"!=typeof Symbol&&Symbol.iterator,mt=e("registry");ht&&(u.prototype[Symbol.iterator]=function(){return this.entries()[Symbol.iterator]()},u.prototype.entries=function(){var e=this[mt];return o(Object.keys(e).map(function(t){return[t,e[t]]}))}),u.prototype.keys=function(){return o(Object.keys(this[mt]))},u.prototype.values=function(){var e=this[mt];return o(Object.keys(e).map(function(t){return e[t]}))},u.prototype.get=function(e){return this[mt][e]},u.prototype.set=function(e,t){if(!(t instanceof l))throw new Error("Registry must be set with an instance of Module Namespace");return this[mt][e]=t,this},u.prototype.has=function(e){return Object.hasOwnProperty.call(this[mt],e)},u.prototype.delete=function(e){return!!Object.hasOwnProperty.call(this[mt],e)&&(delete this[mt][e],!0)};var vt=e("baseObject");l.prototype=Object.create(null),"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(l.prototype,Symbol.toStringTag,{value:"Module"});var yt=e("register-internal");f.prototype=Object.create(i.prototype),f.prototype.constructor=f;var bt=f.instantiate=e("instantiate");f.prototype[f.resolve=i.resolve]=function(e,t){return n(e,t||nt)},f.prototype[bt]=function(e,t){},f.prototype[i.resolveInstantiate]=function(e,t){var r=this,n=this[yt],o=this.registry[mt];return p(r,e,t,o,n).then(function(e){if(e instanceof l)return e;var t=e.linkRecord;if(!t){if(e.module)return e.module;throw e.evalError}return w(r,e,t,o,n).then(function(){return k(r,e,t,o,n,void 0)})})},f.prototype.register=function(e,t,r){var n=this[yt];void 0===r?n.lastRegister=[e,t,void 0]:(n.records[e]||d(n,e,void 0)).registration=[t,r,void 0]},f.prototype.registerDynamic=function(e,t,r,n){var o=this[yt];"string"!=typeof e?o.lastRegister=[e,t,r]:(o.records[e]||d(o,e,void 0)).registration=[t,r,n]},x.prototype.import=function(e){return this.loader.trace&&this.loader.loads[this.key].dynamicDeps.push(e),this.loader.import(e,this.key)};var wt={};Object.freeze&&Object.freeze(wt);var xt,kt,Et=Promise.resolve(),Ot=new l({}),St=e("loader-config"),jt=e("metadata"),_t="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,Pt=!1,Mt=!1;if(ot&&function(){var e=document.createElement("link").relList;if(e&&e.supports){Mt=!0;try{Pt=e.supports("preload")}catch(e){}}}(),ot){var Rt=[],Ct=window.onerror;window.onerror=function(e,t){for(var r=0;r<Rt.length;r++)if(Rt[r].src===t)return void Rt[r].err(e);Ct&&Ct.apply(this,arguments)}}var Lt,At,It=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*'|`[^`\\]*(?:\\.[^`\\]*)*`)\s*\)/g,Ft="undefined"!=typeof XMLHttpRequest,Kt=At="undefined"!=typeof self&&void 0!==self.fetch?J:Ft?$:"undefined"!=typeof require&&"undefined"!=typeof process?B:W,Dt={},Ut=["browser","node","dev","build","production","default"],qt=/#\{[^\}]+\}/,Tt=["browserConfig","nodeConfig","devConfig","buildConfig","productionConfig"],zt="undefined"!=typeof Buffer;try{zt&&"YQ=="!==new Buffer("a").toString("base64")&&(zt=!1)}catch(e){zt=!1}var Nt,Jt,$t,Bt,Wt="\n//# sourceMappingURL=data:application/json;base64,",Gt=0,Ht=!1;ot&&"undefined"!=typeof document&&document.getElementsByTagName&&(window.chrome&&window.chrome.extension||navigator.userAgent.match(/^Node\.js/)||(Ht=!0));var Zt,Xt=function(e){function t(r,n,o,i){if("object"==typeof r&&!(r instanceof Array))return t.apply(null,Array.prototype.splice.call(arguments,1,arguments.length-1));if("string"==typeof r&&"function"==typeof n&&(r=[r]),!(r instanceof Array)){if("string"==typeof r){var a=e.decanonicalize(r,i),s=e.get(a);if(!s)throw new Error('Module not already loaded loading "'+r+'" as '+a+(i?' from "'+i+'".':"."));return"__useDefault"in s?s.__useDefault:s}throw new TypeError("Invalid require")}for(var u=[],l=0;l<r.length;l++)u.push(e.import(r[l],i));Promise.all(u).then(function(e){n&&n.apply(null,e)},o)}function r(r,n,o){function i(r,i,l){for(var c=[],f=0;f<n.length;f++)c.push(r(n[f]));if(l.uri=l.id,l.config=_,-1!==u&&c.splice(u,0,l),-1!==s&&c.splice(s,0,i),-1!==a){var d=function(n,o,i){return"string"==typeof n&&"function"!=typeof o?r(n):t.call(e,n,o,i,l.id)};d.toUrl=function(t){return e.normalizeSync(t,l.id)},c.splice(a,0,d)}var p=st.require;st.require=t;var g=o.apply(-1===s?st:i,c);st.require=p,void 0!==g&&(l.exports=g)}"string"!=typeof r&&(o=n,n=r,r=null),n instanceof Array||(o=n,n=["require","exports","module"].splice(0,o.length)),"function"!=typeof o&&(o=function(e){return function(){return e}}(o)),r||Vt&&(n=n.concat(Vt),Vt=void 0);var a,s,u;-1!==(a=n.indexOf("require"))&&(n.splice(a,1),r||(n=n.concat(Ue(o.toString(),a)))),-1!==(s=n.indexOf("exports"))&&n.splice(s,1),-1!==(u=n.indexOf("module"))&&n.splice(u,1),r?(e.registerDynamic(r,n,!1,i),Qt?(Qt=void 0,lr=!0):lr||(Qt=[n,i])):e.registerDynamic(n,!1,cr?qe(i):i)}e.set("@@cjs-helpers",e.newModule({requireResolve:Le.bind(e),getPathVars:Ae})),e.set("@@global-helpers",e.newModule({prepareGlobal:De})),r.amd={},e.amdDefine=r,e.amdRequire=t};"undefined"!=typeof window&&"undefined"!=typeof document&&window.location&&(Zt=location.protocol+"//"+location.hostname+(location.port?":"+location.port:""));var Yt,Qt,Vt,er,tr=/(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,rr=/("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g,nr=["_g","sessionStorage","localStorage","clipboardData","frames","frameElement","external","mozAnimationStartTime","webkitStorageInfo","webkitIndexedDB","mozInnerScreenY","mozInnerScreenX"],or="(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])",ir="\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)",ar=/\(([^\)]*)\)/,sr=/^\s+|\s+$/g,ur={},lr=!1,cr=!1,fr=(ot||_t)&&"undefined"!=typeof navigator&&navigator.userAgent&&!navigator.userAgent.match(/MSIE (9|10).0/);"undefined"==typeof require||"undefined"==typeof process||process.browser||(er=require);var dr,pr="undefined"!=typeof self?"self":"global",gr=/(^\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))/,hr=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/,mr=/(?:^\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]*\))/,vr=/(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/,yr=/^\#\!.*/,br=/^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/,wr=/\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;if("undefined"==typeof Promise)throw new Error("SystemJS needs a Promise polyfill.");if("undefined"!=typeof document){var xr=document.getElementsByTagName("script"),kr=xr[xr.length-1];document.currentScript&&(kr.defer||kr.async)&&(kr=document.currentScript),dr=kr&&kr.src}else if("undefined"!=typeof importScripts)try{throw new Error("_")}catch(e){e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/,function(e,t){dr=t})}else"undefined"!=typeof __filename&&(dr=__filename);var Er;et.prototype=Object.create(f.prototype),et.prototype.constructor=et,et.prototype[et.resolve=f.resolve]=et.prototype.normalize=Z,et.prototype.load=function(e,t){return R.call(this[St],"System.load is deprecated."),this.import(e,t)},et.prototype.decanonicalize=et.prototype.normalizeSync=et.prototype.resolveSync=Y,et.prototype[et.instantiate=f.instantiate]=Je,et.prototype.config=ke,et.prototype.getConfig=xe,et.prototype.global=st,et.prototype.import=function(){return f.prototype.import.apply(this,arguments).then(function(e){return"__useDefault"in e?e.__useDefault:e})};for(var Or=["baseURL","map","paths","packages","packageConfigPaths","depCache","meta","bundles","transpiler","warnings","pluginFirst","production","wasm"],Sr="undefined"!=typeof Proxy,jr=0;jr<Or.length;jr++)!function(e){Object.defineProperty(et.prototype,e,{get:function(){var t=we(this[St],e);return Sr&&"object"==typeof t&&(t=new Proxy(t,{set:function(t,r){throw new Error("Cannot set SystemJS."+e+'["'+r+'"] directly. Use SystemJS.config({ '+e+': { "'+r+'": ... } }) rather.')}})),t},set:function(t){throw new Error("Setting `SystemJS."+e+"` directly is no longer supported. Use `SystemJS.config({ "+e+": ... })`.")}})}(Or[jr]);et.prototype.delete=function(e){return rt(this,"delete"),this.registry.delete(e)},et.prototype.get=function(e){return rt(this,"get"),this.registry.get(e)},et.prototype.has=function(e){return rt(this,"has"),this.registry.has(e)},et.prototype.set=function(e,t){return rt(this,"set"),this.registry.set(e,t)},et.prototype.newModule=function(e){return new l(e)},et.prototype.isModule=M,et.prototype.register=function(e,t,r){return"string"==typeof e&&(e=X.call(this,this[St],e)),f.prototype.register.call(this,e,t,r)},et.prototype.registerDynamic=function(e,t,r,n){return"string"==typeof e&&(e=X.call(this,this[St],e)),f.prototype.registerDynamic.call(this,e,t,r,n)},et.prototype.version="0.20.19 Dev";var _r=new et;(ot||_t)&&(st.SystemJS=st.System=_r),"undefined"!=typeof module&&module.exports&&(module.exports=_r)}();
|
@@ -0,0 +1 @@
|
|
1
|
+
{"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":["createSymbol","name","hasSymbol","Symbol","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","isBrowser","replace","isWindows","err","message","errArgs","fileName","Error","lineNumber","stack","originalErr","isNode","throwResolveError","relUrl","parentUrl","RangeError","resolveIfNotPlain","trim","parentProtocol","substr","indexOf","firstChar","secondChar","length","pathname","parentIsPlain","undefined","segmented","lastIndexOf","output","segmentIndex","i","pop","push","substring","join","match","arrayValues","arr","values","iterator","iterable","keys","Object","keyIndex","next","value","done","Loader","this","registry","Registry","ensureInstantiated","module","ModuleNamespace","TypeError","ensureResolution","resolvedKey","REGISTRY","baseObject","defineProperty","BASE_OBJECT","forEach","extendNamespace","key","enumerable","get","RegisterLoader","call","registryDelete","delete","deleted","records","hasOwnProperty","linkRecord","REGISTER_INTERNAL","lastRegister","trace","createLoadRecord","state","registration","importerSetters","loadError","evalError","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","resolveInstantiate","loader","parentKey","Promise","resolve","load","reject","instantiate","then","link","createProcessAnonRegister","INSTANTIATE","instantiation","traceLoad","default","__useDefault","registerDeclarative","catch","addToError","resolveInstantiateDep","traceDepMap","loads","deps","dynamicDeps","depMap","declare","definedExports","declared","global","changed","p","ContextualLoader","exports","instantiateDeps","depsInstantiatePromises","Array","all","setter","deepInstantiateDeps","queueLoad","seen","loadCnt","processLoad","depLoad","id","meta","url","ensureEvaluate","doEvaluate","makeDynamicRequire","depLink","declarativeExecute","configurable","set","require","dynamicExecute","moduleDefault","__esModule","nullContext","e","noop","protectedCreateNamespace","bindings","isModule","m","hasStringTag","toStringTag","prototype","toString","warn","msg","force","warnings","console","checkInstantiateWasm","wasmBuffer","processAnonRegister","bytes","Uint8Array","WebAssembly","compile","importObj","Module","imports","register","_export","Instance","loadNodeModule","baseURL","parentModuleContext","_nodeRequire","base","decodeURI","paths","_nodeModulePaths","extend","a","b","prepend","extendMeta","_prepend","val","concat","preloadScript","supportsPreload","supportsPrefetch","document","createElement","rel","as","href","head","appendChild","Image","src","workerImport","importScripts","scriptLoad","crossOrigin","integrity","cleanup","error","loadingScripts","splice","script","removeEventListener","removeChild","isWorker","type","charset","async","addEventListener","readMemberExpression","pParts","split","shift","applyPaths","mapMatch","getMapMatch","target","resolved","baseURI","checkMap","curLen","len","map","bestMatch","fetchFetch","authorization","asBuffer","hasXhr","xhrFetch","opts","headers","Accept","credentials","fetch","res","ok","arrayBuffer","text","status","statusText","xhr","response","responseText","XMLHttpRequest","responseType","onreadystatechange","readyState","open","setRequestHeader","withCredentials","send","nodeFetch","fs","readFile","data","dataString","noFetch","createMetadata","pluginKey","pluginArgument","pluginModule","packageKey","packageConfig","getParentMetadata","config","parentMetadata","parentPluginIndex","pluginFirst","packages","normalize","CONFIG","metadata","booleanIndex","conditionObj","parseCondition","resolveCondition","conditionValue","parsed","parsePlugin","plugin","packageResolve","argument","normalized","combinePluginParts","interpolateConditional","setMeta","METADATA","decanonicalize","coreResolve","normalizeSync","packageResolveSync","doMap","packageName","relativeResolved","has","trailingSlash","skipExtensions","parentMap","parentMapMatch","mapped","doMapSync","pkgConfigMatch","getPackageConfigMatch","packageConfigKeys","createPackage","subPath","applyPackageConfigSync","resolvedPromise","createMeta","format","configured","loadPackageConfigPath","configPath","applyPackageConfig","extension","globals","nonce","sourceMap","encapsulateGlobal","cjsRequireDetection","cjsDeferDepsExecute","esModule","wildcardIndex","bestDepth","depth","getMetaMatches","metaPattern","matchMeta","matchDepth","argumentKey","pluginIndex","addDefaultExtension","pkg","pkgKey","defaultExtension","metaMatch","main","mapPath","validMapping","path","conditionPromises","conditions","c","condition","import","conditionValues","prop","negate","createPkgConfigPathObj","lastWildcard","Math","max","regEx","RegExp","wildcard","exactMatch","packageConfigPaths","packageConfigPath","pkgConfigPath","configLoader","pluginLoader","pkgConfig","setPkgConfig","pkgMeta","matchFn","dotRel","exactMeta","conditionExport","conditionModule","negation","conditionExportIndex","sysConditions","bool","conditionalMatch","interpolationRegEx","envSet","cfg","envCallback","envConfigNames","envConfig","envModule","cloneObj","obj","maxDepth","clone","getConfigItem","cfgItem","getConfig","configName","configNames","configItem","setConfig","isEnvConfig","wasm","setProduction","production","build","defaultJSExtensions","v","pkgName","packageLength","bundles","bundle","depCache","transpiler","prependConfig","inlineSourceMap","sourceMapString","hasBuffer","sourceMapPrefix","Buffer","btoa","unescape","encodeURIComponent","getSource","source","address","wrap","lastLineIndex","JSON","stringify","scriptExec","body","documentElement","onerror","window","_e","apply","arguments","preExec","setAttribute","postExec","callCounter","curSystem","System","SystemJS","evaluate","noWrap","supportsScriptExec","vm","useVm","runInThisContext","filename","eval","stripOrigin","windowOrigin","requireResolve","request","parentId","getPathVars","moduleId","dirname","getCJSDeps","inLocation","locations","index","cjsRequireRegEx","lastIndex","commentRegEx","stringRegEx","stringLocations","commentLocations","exec","dep","globalIterator","globalName","ignoredGlobalProps","getGlobalValue","globalValue","prepareGlobal","moduleName","encapsulate","curDefine","define","oldGlobals","g","globalSnapshot","singleGlobal","multipleExports","amdGetCJSDeps","requireIndex","requireAlias","fnBracketRegEx","wsRegEx","requireRegEx","requireRegExs","cjsRequirePre","cjsRequirePost","wrapEsModuleExecute","clearLastDefine","metaDeps","curMetaDeps","curEsModule","lastNamedDefine","multipleNamedDefines","registerLastDefine","registerDynamic","setMetaEsModule","moduleValue","loadBundlesAndDepCache","supportsScriptLoad","amdDefine","initializePlugin","runFetchPipeline","instantiated","pluginLoad","matched","curModule","parts","locate","fetched","wasmInstantiated","stringSource","TextDecoder","decode","translateAndInstantiate","readMetaSyntax","translate","traceOpts","translated","sanitizeSourceMap","detectRegisterFormat","esmRegEx","transpile","calledInstantiate","result","detectLegacyFormat","registered","emptyModule","parse","newModule","pathVars","__cjsWrapper","args","cjsWrapper","hashBangRegEx","gl","exportName","retrieveGlobal","leadingCommentAndMeta","leadingCommentAndMetaRegEx","amdRegEx","cjsExportsRegEx","originalName","file","sources","depsPrefix","setMetaProperty","curPart","metaRegEx","metaParts","metaPartRegEx","metaString","metaName","metaValue","SystemJSLoader","_loader","loadedBundles","scriptSrc","nodeRequire","formatHelpers","isProduction","isBuilder","browser","node","dev","registryWarn","method","process","versions","platform","envGlobal","self","getElementsByTagName","bases","location","slashIndex","cwd","constructor","parent","RESOLVE_INSTANTIATE","RESOLVE","iteratorSupport","entries","namespace","create","freeze","relList","supports","fetchFunction","fetch$1","chrome","navigator","userAgent","names","callback","errback","referer","dynamicRequires","modules","factory","req","depValues","uri","moduleIndex","exportsIndex","contextualRequire","toUrl","curRequire","bind","amd","amdRequire","protocol","hostname","port","scripts","curScript","currentScript","defer","__filename","resolveSync","hasProxy","Proxy","option","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';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: bindings });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nexport function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {\n var bytes = new Uint8Array(wasmBuffer);\n\n // detect by leading bytes\n // Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(wasmBuffer).then(function (m) {\n var deps = [];\n var setters = [];\n var importObj = {};\n\n // we can only set imports if supported (eg Safari doesnt support)\n if (WebAssembly.Module.imports)\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n processAnonRegister();\n\n return true;\n });\n }\n\n return Promise.resolve(false);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = decodeURI(baseURL.substr(isWindows ? 8 : 7));\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n if (onerror)\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)\\s*\\)/g\n","import { isWindows } from './common.js';\n\n/*\n * Source loading\n */\nfunction fetchFetch (url, authorization, integrity, asBuffer) {\n // fetch doesn't support file:/// urls\n if (url.substr(0, 8) === 'file:///') {\n if (hasXhr)\n return xhrFetch(url, authorization, integrity, asBuffer);\n else\n throw new Error('Unable to fetch file URLs in this environment.');\n }\n\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var opts = {\n // NB deprecate\n headers: { Accept: 'application/x-es-module, */*' }\n };\n\n if (integrity)\n opts.integrity = integrity;\n\n if (authorization) {\n if (typeof authorization == 'string')\n opts.headers['Authorization'] = authorization;\n opts.credentials = 'include';\n }\n\n return fetch(url, opts)\n .then(function(res) {\n if (res.ok)\n return asBuffer ? res.arrayBuffer() : res.text();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n });\n}\n\nfunction xhrFetch (url, authorization, integrity, asBuffer) {\n return new Promise(function (resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n url = url.replace(/#/g, '%23');\n\n var xhr = new XMLHttpRequest();\n if (asBuffer)\n xhr.responseType = 'arraybuffer';\n function load() {\n resolve(asBuffer ? xhr.response : xhr.responseText);\n }\n function error() {\n reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n // in Chrome on file:/// URLs, status is 0\n if (xhr.status == 0) {\n if (xhr.response) {\n load();\n }\n else {\n // when responseText is empty, wait for load or error event\n // to inform if it is a 404 or empty file\n xhr.addEventListener('error', error);\n xhr.addEventListener('load', load);\n }\n }\n else if (xhr.status === 200) {\n load();\n }\n else {\n error();\n }\n }\n };\n xhr.open(\"GET\", url, true);\n\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader('Accept', 'application/x-es-module, */*');\n // can set \"authorization: true\" to enable withCredentials only\n if (authorization) {\n if (typeof authorization == 'string')\n xhr.setRequestHeader('Authorization', authorization);\n xhr.withCredentials = true;\n }\n }\n\n xhr.send(null);\n });\n}\n\nvar fs;\nfunction nodeFetch (url, authorization, integrity, asBuffer) {\n if (url.substr(0, 8) != 'file:///')\n return Promise.reject(new Error('Unable to fetch \"' + url + '\". Only file URLs of the form file:/// supported running in Node.'));\n\n fs = fs || require('fs');\n if (isWindows)\n url = url.replace(/\\//g, '\\\\').substr(8);\n else\n url = url.substr(7);\n\n return new Promise(function (resolve, reject) {\n fs.readFile(url, function(err, data) {\n if (err) {\n return reject(err);\n }\n else {\n if (asBuffer) {\n resolve(data);\n }\n else {\n // Strip Byte Order Mark out if it's the leading char\n var dataString = data + '';\n if (dataString[0] === '\\ufeff')\n dataString = dataString.substr(1);\n\n resolve(dataString);\n }\n }\n });\n });\n}\n\nfunction noFetch () {\n throw new Error('No fetch method is defined for this environment.');\n}\n\nvar fetchFunction;\n\nvar hasXhr = typeof XMLHttpRequest !== 'undefined';\n\nif (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')\n fetchFunction = fetchFetch;\nelse if (hasXhr)\n fetchFunction = xhrFetch;\nelse if (typeof require !== 'undefined' && typeof process !== 'undefined')\n fetchFunction = nodeFetch;\nelse\n fetchFunction = noFetch;\n\nexport default fetchFunction;\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { getMapMatch, readMemberExpression, extendMeta, addToError, resolveIfNotPlain,\n baseURI, CONFIG, METADATA, applyPaths, resolvedPromise, getPackage } from './common.js';\nimport { setPkgConfig, createPackage } from './config.js';\nimport fetch from './fetch.js';\n\nexport function createMetadata () {\n return {\n pluginKey: undefined,\n pluginArgument: undefined,\n pluginModule: undefined,\n packageKey: undefined,\n packageConfig: undefined,\n load: undefined\n };\n}\n\nfunction getCoreParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n }\n\n return parentMetadata;\n}\n\nfunction getParentMetadata (loader, config, parentKey) {\n var parentMetadata = createMetadata();\n\n if (parentKey) {\n // detect parent plugin\n // we just need pluginKey to be truthy for package configurations\n // so we duplicate it as pluginArgument - although not correct its not used\n var parentPluginIndex;\n if (config.pluginFirst) {\n if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);\n }\n else {\n if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)\n parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);\n }\n\n // detect parent package\n parentMetadata.packageKey = getMapMatch(config.packages, parentKey);\n if (parentMetadata.packageKey)\n parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];\n }\n\n return parentMetadata;\n}\n\nexport function normalize (key, parentKey) {\n var config = this[CONFIG];\n\n var metadata = createMetadata();\n var parentMetadata = getParentMetadata(this, config, parentKey);\n\n var loader = this;\n\n return Promise.resolve()\n\n // boolean conditional\n .then(function () {\n // first we normalize the conditional\n var booleanIndex = key.lastIndexOf('#?');\n\n if (booleanIndex === -1)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.resolve(conditionObj.module, parentKey)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);\n });*/\n\n return resolveCondition.call(loader, conditionObj, parentKey, true)\n .then(function (conditionValue) {\n return conditionValue ? key.substr(0, booleanIndex) : '@empty';\n });\n })\n\n // plugin\n .then(function (key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n if (!parsed)\n return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);\n\n metadata.pluginKey = parsed.plugin;\n\n return Promise.all([\n packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),\n loader.resolve(parsed.plugin, parentKey)\n ])\n .then(function (normalized) {\n metadata.pluginArgument = normalized[0];\n metadata.pluginKey = normalized[1];\n\n // don't allow a plugin to load itself\n if (metadata.pluginArgument === metadata.pluginKey)\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.');\n\n return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);\n });\n })\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);\n })\n .then(function (normalized) {\n setMeta.call(loader, config, normalized, metadata);\n\n if (metadata.pluginKey || !metadata.load.loader)\n return normalized;\n\n // loader by configuration\n // normalizes to parent to support package loaders\n return loader.resolve(metadata.load.loader, normalized)\n .then(function (pluginKey) {\n metadata.pluginKey = pluginKey;\n metadata.pluginArgument = normalized;\n return normalized;\n });\n })\n .then(function (normalized) {\n loader[METADATA][normalized] = metadata;\n return normalized;\n });\n}\n\n// normalization function used for registry keys\n// just does coreResolve without map\nexport function decanonicalize (config, key) {\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n var pluginKey = decanonicalize.call(this, config, parsed.plugin);\n return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false, false), pluginKey);\n }\n\n return coreResolve.call(this, config, key, undefined, false, false);\n}\n\nexport function normalizeSync (key, parentKey) {\n var config = this[CONFIG];\n\n // normalizeSync is metadataless, so create metadata\n var metadata = createMetadata();\n var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);\n\n var parsed = parsePlugin(config.pluginFirst, key);\n\n // plugin\n if (parsed) {\n metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);\n return combinePluginParts(config.pluginFirst,\n packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),\n metadata.pluginKey);\n }\n\n return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);\n}\n\nexport function coreResolve (config, key, parentKey, doMap, packageName) {\n var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);\n\n // standard URL resolution\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n\n // plain keys not starting with './', 'x://' and '/' go through custom resolution\n if (doMap) {\n var mapMatch = getMapMatch(config.map, key);\n\n if (mapMatch) {\n key = config.map[mapMatch] + key.substr(mapMatch.length);\n\n relativeResolved = resolveIfNotPlain(key, baseURI);\n if (relativeResolved)\n return applyPaths(config.baseURL, config.paths, relativeResolved);\n }\n }\n\n if (this.registry.has(key))\n return key;\n\n if (key.substr(0, 6) === '@node/')\n return key;\n\n var trailingSlash = packageName && key[key.length - 1] !== '/';\n var resolved = applyPaths(config.baseURL, config.paths, trailingSlash ? key + '/' : key);\n if (trailingSlash)\n return resolved.substr(0, resolved.length - 1);\n return resolved;\n}\n\nfunction packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {\n var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n var normalized = coreResolve.call(this, config, key, parentKey, true, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return normalized;\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n return normalized;\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n}\n\nfunction packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {\n var loader = this;\n\n return resolvedPromise\n .then(function () {\n // ignore . since internal maps handled by standard package resolution\n if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {\n var parentMap = parentMetadata.packageConfig.map;\n var parentMapMatch = parentMap && getMapMatch(parentMap, key);\n\n if (parentMapMatch)\n return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);\n }\n\n return resolvedPromise;\n })\n .then(function (mapped) {\n if (mapped)\n return mapped;\n\n // apply map, core, paths, contextual package map\n var normalized = coreResolve.call(loader, config, key, parentKey, true, true);\n\n var pkgConfigMatch = getPackageConfigMatch(config, normalized);\n metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);\n\n if (!metadata.packageKey)\n return Promise.resolve(normalized);\n\n if (config.packageConfigKeys.indexOf(normalized) !== -1) {\n metadata.packageKey = undefined;\n metadata.load = createMeta();\n metadata.load.format = 'json';\n // ensure no loader\n metadata.load.loader = '';\n return Promise.resolve(normalized);\n }\n\n metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());\n\n // load configuration when it matches packageConfigPaths, not already configured, and not the config itself\n var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;\n\n return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)\n .then(function () {\n var subPath = normalized.substr(metadata.packageKey.length + 1);\n\n return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);\n });\n });\n}\n\nfunction createMeta () {\n return {\n extension: '',\n deps: undefined,\n format: undefined,\n loader: undefined,\n scriptLoad: undefined,\n globals: undefined,\n nonce: undefined,\n integrity: undefined,\n sourceMap: undefined,\n exports: undefined,\n encapsulateGlobal: false,\n crossOrigin: undefined,\n cjsRequireDetection: true,\n cjsDeferDepsExecute: false,\n esModule: false\n };\n}\n\nfunction setMeta (config, key, metadata) {\n metadata.load = metadata.load || createMeta();\n\n // apply wildcard metas\n var bestDepth = 0;\n var wildcardIndex;\n for (var module in config.meta) {\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {\n var depth = module.split('/').length;\n if (depth > bestDepth)\n bestDepth = depth;\n extendMeta(metadata.load, config.meta[module], bestDepth !== depth);\n }\n }\n\n // apply exact meta\n if (config.meta[key])\n extendMeta(metadata.load, config.meta[key], false);\n\n // apply package meta\n if (metadata.packageKey) {\n var subPath = key.substr(metadata.packageKey.length + 1);\n\n var meta = {};\n if (metadata.packageConfig.meta) {\n var bestDepth = 0;\n getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth > bestDepth)\n bestDepth = matchDepth;\n extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);\n });\n\n extendMeta(metadata.load, meta, false);\n }\n\n // format\n if (metadata.packageConfig.format && !metadata.pluginKey && !metadata.load.loader)\n metadata.load.format = metadata.load.format || metadata.packageConfig.format;\n }\n}\n\nfunction parsePlugin (pluginFirst, key) {\n var argumentKey;\n var pluginKey;\n\n var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');\n\n if (pluginIndex === -1)\n return;\n\n if (pluginFirst) {\n argumentKey = key.substr(pluginIndex + 1);\n pluginKey = key.substr(0, pluginIndex);\n }\n else {\n argumentKey = key.substr(0, pluginIndex);\n pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);\n }\n\n return {\n argument: argumentKey,\n plugin: pluginKey\n };\n}\n\n// put key back together after parts have been normalized\nfunction combinePluginParts (pluginFirst, argumentKey, pluginKey) {\n if (pluginFirst)\n return pluginKey + '!' + argumentKey;\n else\n return argumentKey + '!' + pluginKey;\n}\n\n/*\n * Package Configuration Extension\n *\n * Example:\n *\n * SystemJS.packages = {\n * jquery: {\n * main: 'index.js', // when not set, package key is requested directly\n * format: 'amd',\n * defaultExtension: 'ts', // defaults to 'js', can be set to false\n * modules: {\n * '*.ts': {\n * loader: 'typescript'\n * },\n * 'vendor/sizzle.js': {\n * format: 'global'\n * }\n * },\n * map: {\n * // map internal require('sizzle') to local require('./vendor/sizzle')\n * sizzle: './vendor/sizzle.js',\n * // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'\n * './vendor/another.js': './another/index.js',\n * // test.js / test -> lib/test.js\n * './test.js': './lib/test.js',\n *\n * // environment-specific map configurations\n * './index.js': {\n * '~browser': './index-node.js',\n * './custom-condition.js|~export': './index-custom.js'\n * }\n * },\n * // allows for setting package-prefixed depCache\n * // keys are normalized module keys relative to the package itself\n * depCache: {\n * // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js\n * './index.js': ['./test'],\n * './test.js': ['external-dep'],\n * 'external-dep/path.js': ['./another.js']\n * }\n * }\n * };\n *\n * Then:\n * import 'jquery' -> jquery/index.js\n * import 'jquery/submodule' -> jquery/submodule.js\n * import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript\n * import 'jquery/vendor/another' -> another/index.js\n *\n * Detailed Behaviours\n * - main can have a leading \"./\" can be added optionally\n * - map and defaultExtension are applied to the main\n * - defaultExtension adds the extension only if the exact extension is not present\n\n * - if a meta value is available for a module, map and defaultExtension are skipped\n * - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)\n * - condition module map is '@env' module in package or '@system-env' globally\n * - map targets support conditional interpolation ('./x': './x.#{|env}.js')\n * - internal package map targets cannot use boolean conditionals\n *\n * Package Configuration Loading\n *\n * Not all packages may already have their configuration present in the System config\n * For these cases, a list of packageConfigPaths can be provided, which when matched against\n * a request, will first request a \".json\" file by the package key to derive the package\n * configuration from. This allows dynamic loading of non-predetermined code, a key use\n * case in SystemJS.\n *\n * Example:\n *\n * SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];\n *\n * // will first request 'packages/new-package/package.json' for the package config\n * // before completing the package request to 'packages/new-package/path'\n * SystemJS.import('packages/new-package/path');\n *\n * // will first request 'packages/test/package.json' before the main\n * SystemJS.import('packages/test');\n *\n * When a package matches packageConfigPaths, it will always send a config request for\n * the package configuration.\n * The package key itself is taken to be the match up to and including the last wildcard\n * or trailing slash.\n * The most specific package config path will be used.\n * Any existing package configurations for the package will deeply merge with the\n * package config, with the existing package configurations taking preference.\n * To opt-out of the package configuration request for a package that matches\n * packageConfigPaths, use the { configured: true } package config option.\n *\n */\n\nfunction addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {\n // don't apply extensions to folders or if defaultExtension = false\n if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)\n return subPath;\n\n var metaMatch = false;\n\n // exact meta or meta with any content after the last wildcard skips extension\n if (pkg.meta)\n getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n // exact global meta or meta with any content after the last wildcard skips extension\n if (!metaMatch && config.meta)\n getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {\n if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)\n return metaMatch = true;\n });\n\n if (metaMatch)\n return subPath;\n\n // work out what the defaultExtension is and add if not there already\n var defaultExtension = '.' + pkg.defaultExtension;\n if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)\n return subPath + defaultExtension;\n else\n return subPath;\n}\n\nfunction applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n else\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return pkgKey;\n }\n\n // map config checking without then with extensions\n if (pkg.map) {\n var mapPath = './' + subPath;\n\n var mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n if (mapMatch) {\n var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);\n if (mapped)\n return mapped;\n }\n }\n\n // normal package resolution\n return pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\n}\n\nfunction validMapping (mapMatch, mapped, path) {\n // allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps\n // but only if the path is exactly ./x and not ./x/z\n if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)\n return false;\n\n return true;\n}\n\nfunction doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'object')\n throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);\n\n if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')\n return;\n\n return packageResolveSync.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);\n}\n\nfunction applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {\n // main\n if (!subPath) {\n if (pkg.main)\n subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;\n // also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')\n else\n // NB can add a default package main convention here\n // if it becomes internal to the package then it would no longer be an exit path\n return Promise.resolve(pkgKey);\n }\n\n // map config checking without then with extensions\n var mapPath, mapMatch;\n\n if (pkg.map) {\n mapPath = './' + subPath;\n mapMatch = getMapMatch(pkg.map, mapPath);\n\n // we then check map with the default extension adding\n if (!mapMatch) {\n mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);\n if (mapPath !== './' + subPath)\n mapMatch = getMapMatch(pkg.map, mapPath);\n }\n }\n\n return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)\n .then(function (mapped) {\n if (mapped)\n return Promise.resolve(mapped);\n\n // normal package resolution / fallback resolution for no conditional match\n return Promise.resolve(pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions));\n });\n}\n\nfunction doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {\n if (path[path.length - 1] === '/')\n path = path.substr(0, path.length - 1);\n\n var mapped = pkg.map[mapMatch];\n\n if (typeof mapped === 'string') {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // we use a special conditional syntax to allow the builder to handle conditional branch points further\n /*if (loader.builder)\n return Promise.resolve(pkgKey + '/#:' + path);*/\n\n // we load all conditions upfront\n var conditionPromises = [];\n var conditions = [];\n for (var e in mapped) {\n var c = parseCondition(e);\n conditions.push({\n condition: c,\n map: mapped[e]\n });\n conditionPromises.push(RegisterLoader.prototype.import.call(loader, c.module, pkgKey));\n }\n\n // map object -> conditional map\n return Promise.all(conditionPromises)\n .then(function (conditionValues) {\n // first map condition to match is used\n for (var i = 0; i < conditions.length; i++) {\n var c = conditions[i].condition;\n var value = readMemberExpression(c.prop, '__useDefault' in conditionValues[i] ? conditionValues[i].__useDefault : conditionValues[i]);\n if (!c.negate && value || c.negate && !value)\n return conditions[i].map;\n }\n })\n .then(function (mapped) {\n if (mapped) {\n if (!validMapping(mapMatch, mapped, path))\n return resolvedPromise;\n return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)\n .then(function (normalized) {\n return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);\n });\n }\n\n // no environment match -> fallback to original subPath by returning undefined\n });\n}\n\n// check if the given normalized key matches a packageConfigPath\n// if so, loads the config\nvar packageConfigPaths = {};\n\n// data object for quick checks against package paths\nfunction createPkgConfigPathObj (path) {\n var lastWildcard = path.lastIndexOf('*');\n var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));\n return {\n length: length,\n regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\\]\\\\]/g, '\\\\$&').replace(/\\*/g, '[^\\\\/]+') + ')(\\\\/|$)'),\n wildcard: lastWildcard !== -1\n };\n}\n\n// most specific match wins\nfunction getPackageConfigMatch (config, normalized) {\n var pkgKey, exactMatch = false, configPath;\n for (var i = 0; i < config.packageConfigPaths.length; i++) {\n var packageConfigPath = config.packageConfigPaths[i];\n var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));\n if (normalized.length < p.length)\n continue;\n var match = normalized.match(p.regEx);\n if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {\n pkgKey = match[1];\n exactMatch = !p.wildcard;\n configPath = pkgKey + packageConfigPath.substr(p.length);\n }\n }\n\n if (!pkgKey)\n return;\n\n return {\n packageKey: pkgKey,\n configPath: configPath\n };\n}\n\nfunction loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {\n var configLoader = loader.pluginLoader || loader;\n\n // ensure we note this is a package config file path\n // it will then be skipped from getting other normalizations itself to ensure idempotency\n if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)\n config.packageConfigKeys.push(pkgConfigPath);\n\n return configLoader.import(pkgConfigPath)\n .then(function (pkgConfig) {\n setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);\n metadata.packageConfig.configured = true;\n })\n .catch(function (err) {\n throw addToError(err, 'Unable to fetch package configuration file ' + pkgConfigPath);\n });\n}\n\nfunction getMetaMatches (pkgMeta, subPath, matchFn) {\n // wildcard meta\n var wildcardIndex;\n for (var module in pkgMeta) {\n // allow meta to start with ./ for flexibility\n var dotRel = module.substr(0, 2) === './' ? './' : '';\n if (dotRel)\n module = module.substr(2);\n\n wildcardIndex = module.indexOf('*');\n if (wildcardIndex === -1)\n continue;\n\n if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)\n && module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {\n // alow match function to return true for an exit path\n if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))\n return;\n }\n }\n // exact meta\n var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];\n if (exactMeta)\n matchFn(exactMeta, exactMeta, 0);\n}\n\n\n/*\n * Conditions Extension\n *\n * Allows a condition module to alter the resolution of an import via syntax:\n *\n * import $ from 'jquery/#{browser}';\n *\n * Will first load the module 'browser' via `SystemJS.import('browser')` and\n * take the default export of that module.\n * If the default export is not a string, an error is thrown.\n *\n * We then substitute the string into the require to get the conditional resolution\n * enabling environment-specific variations like:\n *\n * import $ from 'jquery/ie'\n * import $ from 'jquery/firefox'\n * import $ from 'jquery/chrome'\n * import $ from 'jquery/safari'\n *\n * It can be useful for a condition module to define multiple conditions.\n * This can be done via the `|` modifier to specify an export member expression:\n *\n * import 'jquery/#{./browser.js|grade.version}'\n *\n * Where the `grade` export `version` member in the `browser.js` module is substituted.\n *\n *\n * Boolean Conditionals\n *\n * For polyfill modules, that are used as imports but have no module value,\n * a binary conditional allows a module not to be loaded at all if not needed:\n *\n * import 'es5-shim#?./conditions.js|needs-es5shim'\n *\n * These conditions can also be negated via:\n *\n * import 'es5-shim#?./conditions.js|~es6'\n *\n */\n\nvar sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];\n\nfunction parseCondition (condition) {\n var conditionExport, conditionModule, negation;\n\n var negation;\n var conditionExportIndex = condition.lastIndexOf('|');\n if (conditionExportIndex !== -1) {\n conditionExport = condition.substr(conditionExportIndex + 1);\n conditionModule = condition.substr(0, conditionExportIndex);\n\n if (conditionExport[0] === '~') {\n negation = true;\n conditionExport = conditionExport.substr(1);\n }\n }\n else {\n negation = condition[0] === '~';\n conditionExport = 'default';\n conditionModule = condition.substr(negation);\n if (sysConditions.indexOf(conditionModule) !== -1) {\n conditionExport = conditionModule;\n conditionModule = null;\n }\n }\n\n return {\n module: conditionModule || '@system-env',\n prop: conditionExport,\n negate: negation\n };\n}\n\nfunction resolveCondition (conditionObj, parentKey, bool) {\n // import without __useDefault handling here\n return RegisterLoader.prototype.import.call(this, conditionObj.module, parentKey)\n .then(function (condition) {\n var m = readMemberExpression(conditionObj.prop, condition);\n\n if (bool && typeof m !== 'boolean')\n throw new TypeError('Condition did not resolve to a boolean.');\n\n return conditionObj.negate ? !m : m;\n });\n}\n\nvar interpolationRegEx = /#\\{[^\\}]+\\}/;\nfunction interpolateConditional (key, parentKey, parentMetadata) {\n // first we normalize the conditional\n var conditionalMatch = key.match(interpolationRegEx);\n\n if (!conditionalMatch)\n return Promise.resolve(key);\n\n var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));\n\n // in builds, return normalized conditional\n /*if (this.builder)\n return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)\n .then(function (conditionModule) {\n conditionObj.module = conditionModule;\n return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');\n });*/\n\n return resolveCondition.call(this, conditionObj, parentKey, false)\n .then(function (conditionValue) {\n if (typeof conditionValue !== 'string')\n throw new TypeError('The condition value for ' + key + ' doesn\\'t resolve to a string.');\n\n if (conditionValue.indexOf('/') !== -1)\n throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\\n\\tThe condition value ' + conditionValue + ' cannot contain a \"/\" separator.');\n\n return key.replace(interpolationRegEx, conditionValue);\n });\n}\n","import { envModule, setProduction, configNames } from './systemjs-loader.js';\nimport { extend, prepend, warn, resolveIfNotPlain, baseURI, CONFIG } from './common.js';\nimport { coreResolve } from './resolve.js';\n\n/*\n Extend config merging one deep only\n\n loader.config({\n some: 'random',\n config: 'here',\n deep: {\n config: { too: 'too' }\n }\n });\n\n <=>\n\n loader.some = 'random';\n loader.config = 'here'\n loader.deep = loader.deep || {};\n loader.deep.config = { too: 'too' };\n\n\n Normalizes meta and package configs allowing for:\n\n SystemJS.config({\n meta: {\n './index.js': {}\n }\n });\n\n To become\n\n SystemJS.meta['https://thissite.com/index.js'] = {};\n\n For easy normalization canonicalization with latest URL support.\n\n*/\nvar envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];\nfunction envSet(loader, cfg, envCallback) {\n for (var i = 0; i < envConfigNames.length; i++) {\n var envConfig = envConfigNames[i];\n if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])\n envCallback(cfg[envConfig]);\n }\n}\n\nfunction cloneObj (obj, maxDepth) {\n var clone = {};\n for (var p in obj) {\n var prop = obj[p];\n if (maxDepth > 1) {\n if (prop instanceof Array)\n clone[p] = [].concat(prop);\n else if (typeof prop === 'object')\n clone[p] = cloneObj(prop, maxDepth - 1);\n else if (p !== 'packageConfig')\n clone[p] = prop;\n }\n else {\n clone[p] = prop;\n }\n }\n return clone;\n}\n\nexport function getConfigItem (config, p) {\n var cfgItem = config[p];\n\n // getConfig must return an unmodifiable clone of the configuration\n if (cfgItem instanceof Array)\n return config[p].concat([]);\n else if (typeof cfgItem === 'object')\n return cloneObj(cfgItem, 3)\n else\n return config[p];\n}\n\nexport function getConfig (configName) {\n if (configName) {\n if (configNames.indexOf(configName) !== -1)\n return getConfigItem(this[CONFIG], configName);\n throw new Error('\"' + configName + '\" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');\n }\n\n var cfg = {};\n for (var i = 0; i < configNames.length; i++) {\n var p = configNames[i];\n var configItem = getConfigItem(this[CONFIG], p);\n if (configItem !== undefined)\n cfg[p] = configItem;\n }\n return cfg;\n}\n\nexport function setConfig (cfg, isEnvConfig) {\n var loader = this;\n var config = this[CONFIG];\n\n if ('warnings' in cfg)\n config.warnings = cfg.warnings;\n\n if ('wasm' in cfg)\n config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;\n\n if ('production' in cfg || 'build' in cfg)\n setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));\n\n if (!isEnvConfig) {\n // if using nodeConfig / browserConfig / productionConfig, take baseURL from there\n // these exceptions will be unnecessary when we can properly implement config queuings\n var baseURL;\n envSet(loader, cfg, function(cfg) {\n baseURL = baseURL || cfg.baseURL;\n });\n baseURL = baseURL || cfg.baseURL;\n\n // always configure baseURL first\n if (baseURL) {\n config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n envSet(loader, cfg, function(cfg) {\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n });\n\n for (var p in config.paths) {\n if (config.paths[p].indexOf('*') === -1)\n continue;\n warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');\n delete config.paths[p];\n }\n }\n\n if (cfg.defaultJSExtensions)\n warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\\n Use packages defaultExtension instead.', true);\n\n if (typeof cfg.pluginFirst === 'boolean')\n config.pluginFirst = cfg.pluginFirst;\n\n if (cfg.map) {\n for (var p in cfg.map) {\n var v = cfg.map[p];\n\n if (typeof v === 'string') {\n var mapped = coreResolve.call(loader, config, v, undefined, false, false);\n if (mapped[mapped.length -1] === '/' && p[p.length - 1] !== ':' && p[p.length - 1] !== '/')\n mapped = mapped.substr(0, mapped.length - 1);\n config.map[p] = mapped;\n }\n\n // object map\n else {\n var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n var pkg = config.packages[pkgName];\n if (!pkg) {\n pkg = config.packages[pkgName] = createPackage();\n // use '' instead of false to keep type consistent\n pkg.defaultExtension = '';\n }\n setPkgConfig(pkg, { map: v }, pkgName, false, config);\n }\n }\n }\n\n if (cfg.packageConfigPaths) {\n var packageConfigPaths = [];\n for (var i = 0; i < cfg.packageConfigPaths.length; i++) {\n var path = cfg.packageConfigPaths[i];\n var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));\n var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false, false);\n packageConfigPaths[i] = normalized + path.substr(packageLength);\n }\n config.packageConfigPaths = packageConfigPaths;\n }\n\n if (cfg.bundles) {\n for (var p in cfg.bundles) {\n var bundle = [];\n for (var i = 0; i < cfg.bundles[p].length; i++)\n bundle.push(loader.normalizeSync(cfg.bundles[p][i]));\n config.bundles[p] = bundle;\n }\n }\n\n if (cfg.packages) {\n for (var p in cfg.packages) {\n if (p.match(/^([^\\/]+:)?\\/\\/$/))\n throw new TypeError('\"' + p + '\" is not a valid package name.');\n\n var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);\n pkgName = pkgName.substr(0, pkgName.length - 1);\n\n setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);\n }\n }\n\n if (cfg.depCache) {\n for (var p in cfg.depCache)\n config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);\n }\n\n if (cfg.meta) {\n for (var p in cfg.meta) {\n // base wildcard stays base\n if (p[0] === '*') {\n extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);\n }\n else {\n var resolved = coreResolve.call(loader, config, p, undefined, true, true);\n extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);\n }\n }\n }\n\n if ('transpiler' in cfg)\n config.transpiler = cfg.transpiler;\n\n\n // copy any remaining non-standard configuration properties\n for (var c in cfg) {\n if (configNames.indexOf(c) !== -1)\n continue;\n if (envConfigNames.indexOf(c) !== -1)\n continue;\n\n // warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');\n loader[c] = cfg[c];\n }\n\n envSet(loader, cfg, function(cfg) {\n loader.config(cfg, true);\n });\n}\n\nexport function createPackage () {\n return {\n defaultExtension: undefined,\n main: undefined,\n format: undefined,\n meta: undefined,\n map: undefined,\n packageConfig: undefined,\n configured: false\n };\n}\n\n// deeply-merge (to first level) config with any existing package config\nexport function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {\n for (var prop in cfg) {\n if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {\n if (!prependConfig || pkg[prop] === undefined)\n pkg[prop] = cfg[prop];\n }\n else if (prop === 'map') {\n (prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);\n }\n else if (prop === 'meta') {\n (prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);\n }\n else if (Object.hasOwnProperty.call(cfg, prop)) {\n warn.call(config, '\"' + prop + '\" is not a valid package configuration option in package ' + pkgName);\n }\n }\n\n // default defaultExtension for packages only\n if (pkg.defaultExtension === undefined)\n pkg.defaultExtension = 'js';\n\n if (pkg.main === undefined && pkg.map && pkg.map['.']) {\n pkg.main = pkg.map['.'];\n delete pkg.map['.'];\n }\n // main object becomes main map\n else if (typeof pkg.main === 'object') {\n pkg.map = pkg.map || {};\n pkg.map['./@main'] = pkg.main;\n pkg.main['default'] = pkg.main['default'] || './';\n pkg.main = '@main';\n }\n\n return pkg;\n}\n","import { isBrowser, global } from './common.js';\n\nvar hasBuffer = typeof Buffer !== 'undefined';\ntry {\n if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')\n hasBuffer = false;\n}\ncatch (e) {\n hasBuffer = false;\n}\n\nvar sourceMapPrefix = '\\n//# sourceMapping' + 'URL=data:application/json;base64,';\nfunction inlineSourceMap (sourceMapString) {\n if (hasBuffer)\n return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');\n else if (typeof btoa !== 'undefined')\n return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));\n else\n return '';\n}\n\nfunction getSource(source, sourceMap, address, wrap) {\n var lastLineIndex = source.lastIndexOf('\\n');\n\n if (sourceMap) {\n if (typeof sourceMap != 'object')\n throw new TypeError('load.metadata.sourceMap must be set to an object.');\n\n sourceMap = JSON.stringify(sourceMap);\n }\n\n return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\\n})(System, System);' : '')\n // adds the sourceURL comment if not already present\n + (source.substr(lastLineIndex, 15) != '\\n//# sourceURL='\n ? '\\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')\n // add sourceMappingURL if load.metadata.sourceMap is set\n + (sourceMap && inlineSourceMap(sourceMap) || '');\n}\n\n// script execution via injecting a script tag into the page\n// this allows CSP nonce to be set for CSP environments\nvar head;\nfunction scriptExec(loader, source, sourceMap, address, nonce) {\n if (!head)\n head = document.head || document.body || document.documentElement;\n\n var script = document.createElement('script');\n script.text = getSource(source, sourceMap, address, false);\n var onerror = window.onerror;\n var e;\n window.onerror = function(_e) {\n e = addToError(_e, 'Evaluating ' + address);\n if (onerror)\n onerror.apply(this, arguments);\n }\n preExec(loader);\n\n if (nonce)\n script.setAttribute('nonce', nonce);\n\n head.appendChild(script);\n head.removeChild(script);\n postExec();\n window.onerror = onerror;\n if (e)\n return e;\n}\n\nvar vm;\nvar useVm;\n\nvar curSystem;\n\nvar callCounter = 0;\nfunction preExec (loader) {\n if (callCounter++ == 0)\n curSystem = global.System;\n global.System = global.SystemJS = loader;\n}\nfunction postExec () {\n if (--callCounter == 0)\n global.System = global.SystemJS = curSystem;\n}\n\nvar supportsScriptExec = false;\nif (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {\n if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\\.js/)))\n supportsScriptExec = true;\n}\n\nexport function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {\n if (!source)\n return;\n if (nonce && supportsScriptExec)\n return scriptExec(loader, source, sourceMap, address, nonce);\n try {\n preExec(loader);\n // global scoped eval for node (avoids require scope leak)\n if (!vm && loader._nodeRequire) {\n vm = loader._nodeRequire('vm');\n useVm = vm.runInThisContext(\"typeof System !== 'undefined' && System\") === loader;\n }\n if (useVm)\n vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });\n else\n (0, eval)(getSource(source, sourceMap, address, !noWrap));\n postExec();\n }\n catch (e) {\n postExec();\n return e;\n }\n}\n","\nimport { isWindows, global, readMemberExpression, cjsRequireRegEx, noop } from './common.js';\n\nexport default function (loader) {\n loader.set('@@cjs-helpers', loader.newModule({\n requireResolve: requireResolve.bind(loader),\n getPathVars: getPathVars\n }));\n\n loader.set('@@global-helpers', loader.newModule({\n prepareGlobal: prepareGlobal\n }));\n\n /*\n AMD-compatible require\n To copy RequireJS, set window.require = window.requirejs = loader.amdRequire\n */\n function require (names, callback, errback, referer) {\n // in amd, first arg can be a config object... we just ignore\n if (typeof names === 'object' && !(names instanceof Array))\n return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));\n\n // amd require\n if (typeof names === 'string' && typeof callback === 'function')\n names = [names];\n if (names instanceof Array) {\n var dynamicRequires = [];\n for (var i = 0; i < names.length; i++)\n dynamicRequires.push(loader.import(names[i], referer));\n Promise.all(dynamicRequires).then(function (modules) {\n if (callback)\n callback.apply(null, modules);\n }, errback);\n }\n\n // commonjs require\n else if (typeof names === 'string') {\n var normalized = loader.decanonicalize(names, referer);\n var module = loader.get(normalized);\n if (!module)\n throw new Error('Module not already loaded loading \"' + names + '\" as ' + normalized + (referer ? ' from \"' + referer + '\".' : '.'));\n return '__useDefault' in module ? module.__useDefault : module;\n }\n\n else\n throw new TypeError('Invalid require');\n }\n\n function define (name, deps, factory) {\n if (typeof name !== 'string') {\n factory = deps;\n deps = name;\n name = null;\n }\n\n if (!(deps instanceof Array)) {\n factory = deps;\n deps = ['require', 'exports', 'module'].splice(0, factory.length);\n }\n\n if (typeof factory !== 'function')\n factory = (function (factory) {\n return function() { return factory; }\n })(factory);\n\n if (!name) {\n if (curMetaDeps) {\n deps = deps.concat(curMetaDeps);\n curMetaDeps = undefined;\n }\n }\n\n // remove system dependencies\n var requireIndex, exportsIndex, moduleIndex;\n\n if ((requireIndex = deps.indexOf('require')) !== -1) {\n\n deps.splice(requireIndex, 1);\n\n // only trace cjs requires for non-named\n // named defines assume the trace has already been done\n if (!name)\n deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));\n }\n\n if ((exportsIndex = deps.indexOf('exports')) !== -1)\n deps.splice(exportsIndex, 1);\n\n if ((moduleIndex = deps.indexOf('module')) !== -1)\n deps.splice(moduleIndex, 1);\n\n function execute (req, exports, module) {\n var depValues = [];\n for (var i = 0; i < deps.length; i++)\n depValues.push(req(deps[i]));\n\n module.uri = module.id;\n\n module.config = noop;\n\n // add back in system dependencies\n if (moduleIndex !== -1)\n depValues.splice(moduleIndex, 0, module);\n\n if (exportsIndex !== -1)\n depValues.splice(exportsIndex, 0, exports);\n\n if (requireIndex !== -1) {\n var contextualRequire = function (names, callback, errback) {\n if (typeof names === 'string' && typeof callback !== 'function')\n return req(names);\n return require.call(loader, names, callback, errback, module.id);\n };\n contextualRequire.toUrl = function (name) {\n return loader.normalizeSync(name, module.id);\n };\n depValues.splice(requireIndex, 0, contextualRequire);\n }\n\n // set global require to AMD require\n var curRequire = global.require;\n global.require = require;\n\n var output = factory.apply(exportsIndex === -1 ? global : exports, depValues);\n\n global.require = curRequire;\n\n if (typeof output !== 'undefined')\n module.exports = output;\n }\n\n // anonymous define\n if (!name) {\n loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);\n }\n else {\n loader.registerDynamic(name, deps, false, execute);\n\n // if we don't have any other defines,\n // then let this be an anonymous define\n // this is just to support single modules of the form:\n // define('jquery')\n // still loading anonymously\n // because it is done widely enough to be useful\n // as soon as there is more than one define, this gets removed though\n if (lastNamedDefine) {\n lastNamedDefine = undefined;\n multipleNamedDefines = true;\n }\n else if (!multipleNamedDefines) {\n lastNamedDefine = [deps, execute];\n }\n }\n }\n define.amd = {};\n\n loader.amdDefine = define;\n loader.amdRequire = require;\n}\n\n// CJS\nvar windowOrigin;\nif (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)\n windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');\n\nfunction stripOrigin(path) {\n if (path.substr(0, 8) === 'file:///')\n return path.substr(7 + !!isWindows);\n\n if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)\n return path.substr(windowOrigin.length);\n\n return path;\n}\n\nexport function requireResolve (request, parentId) {\n return stripOrigin(this.normalizeSync(request, parentId));\n}\n\nexport function getPathVars (moduleId) {\n // remove any plugin syntax\n var pluginIndex = moduleId.lastIndexOf('!');\n var filename;\n if (pluginIndex !== -1)\n filename = moduleId.substr(0, pluginIndex);\n else\n filename = moduleId;\n\n var dirname = filename.split('/');\n dirname.pop();\n dirname = dirname.join('/');\n\n return {\n filename: stripOrigin(filename),\n dirname: stripOrigin(dirname)\n };\n}\n\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\n// extract CJS dependencies from source text via regex static analysis\n// read require('x') statements not in comments or strings\nexport function getCJSDeps (source) {\n cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n\n // track string and comment locations for unminified source\n var stringLocations = [], commentLocations = [];\n\n function inLocation (locations, match) {\n for (var i = 0; i < locations.length; i++)\n if (locations[i][0] < match.index && locations[i][1] > match.index)\n return true;\n return false;\n }\n\n if (source.length / source.split('\\n').length < 200) {\n while (match = stringRegEx.exec(source))\n stringLocations.push([match.index, match.index + match[0].length]);\n\n // TODO: track template literals here before comments\n\n while (match = commentRegEx.exec(source)) {\n // only track comments not starting in strings\n if (!inLocation(stringLocations, match))\n commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);\n }\n }\n\n while (match = cjsRequireRegEx.exec(source)) {\n // ensure we're not within a string or comment location\n if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {\n var dep = match[1].substr(1, match[1].length - 2);\n // skip cases like require('\" + file + \"')\n if (dep.match(/\"|'/))\n continue;\n deps.push(dep);\n }\n }\n\n return deps;\n}\n\n// Global\n// bare minimum ignores\nvar ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',\n 'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];\n\nvar globalSnapshot;\nfunction globalIterator (globalName) {\n if (ignoredGlobalProps.indexOf(globalName) !== -1)\n return;\n try {\n var value = global[globalName];\n }\n catch (e) {\n ignoredGlobalProps.push(globalName);\n }\n this(globalName, value);\n}\n\nexport function getGlobalValue (exports) {\n if (typeof exports === 'string')\n return readMemberExpression(exports, global);\n\n if (!(exports instanceof Array))\n throw new Error('Global exports must be a string or array.');\n\n var globalValue = {};\n for (var i = 0; i < exports.length; i++)\n globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], global);\n return globalValue;\n}\n\nexport function prepareGlobal (moduleName, exports, globals, encapsulate) {\n // disable module detection\n var curDefine = global.define;\n\n global.define = undefined;\n\n // set globals\n var oldGlobals;\n if (globals) {\n oldGlobals = {};\n for (var g in globals) {\n oldGlobals[g] = global[g];\n global[g] = globals[g];\n }\n }\n\n // store a complete copy of the global object in order to detect changes\n if (!exports) {\n globalSnapshot = {};\n\n Object.keys(global).forEach(globalIterator, function (name, value) {\n globalSnapshot[name] = value;\n });\n }\n\n // return function to retrieve global\n return function () {\n var globalValue = exports ? getGlobalValue(exports) : {};\n\n var singleGlobal;\n var multipleExports = !!exports;\n\n if (!exports || encapsulate)\n Object.keys(global).forEach(globalIterator, function (name, value) {\n if (globalSnapshot[name] === value)\n return;\n if (value === undefined)\n return;\n\n // allow global encapsulation where globals are removed\n if (encapsulate)\n global[name] = undefined;\n\n if (!exports) {\n globalValue[name] = value;\n\n if (singleGlobal !== undefined) {\n if (!multipleExports && singleGlobal !== value)\n multipleExports = true;\n }\n else {\n singleGlobal = value;\n }\n }\n });\n\n globalValue = multipleExports ? globalValue : singleGlobal;\n\n // revert globals\n if (oldGlobals) {\n for (var g in oldGlobals)\n global[g] = oldGlobals[g];\n }\n global.define = curDefine;\n\n return globalValue;\n };\n}\n\n// AMD\nvar cjsRequirePre = \"(?:^|[^$_a-zA-Z\\\\xA0-\\\\uFFFF.])\";\nvar cjsRequirePost = \"\\\\s*\\\\(\\\\s*(\\\"([^\\\"]+)\\\"|'([^']+)')\\\\s*\\\\)\";\nvar fnBracketRegEx = /\\(([^\\)]*)\\)/;\nvar wsRegEx = /^\\s+|\\s+$/g;\n\nvar requireRegExs = {};\n\nfunction amdGetCJSDeps(source, requireIndex) {\n\n // remove comments\n source = source.replace(commentRegEx, '');\n\n // determine the require alias\n var params = source.match(fnBracketRegEx);\n var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');\n\n // find or generate the regex for this requireAlias\n var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));\n\n requireRegEx.lastIndex = 0;\n\n var deps = [];\n\n var match;\n while (match = requireRegEx.exec(source))\n deps.push(match[2] || match[3]);\n\n return deps;\n}\n\nfunction wrapEsModuleExecute (execute) {\n return function (require, exports, module) {\n execute(require, exports, module);\n exports = module.exports;\n if ((typeof exports === 'object' || typeof exports === 'function') && !('__esModule' in exports))\n Object.defineProperty(module.exports, '__esModule', {\n value: true\n });\n };\n}\n\n// generate anonymous define from singular named define\nvar multipleNamedDefines = false;\nvar lastNamedDefine;\nvar curMetaDeps;\nvar curEsModule = false;\nexport function clearLastDefine (metaDeps, esModule) {\n curMetaDeps = metaDeps;\n curEsModule = esModule;\n lastNamedDefine = undefined;\n multipleNamedDefines = false;\n}\nexport function registerLastDefine (loader) {\n if (lastNamedDefine)\n loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],\n false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);\n\n // bundles are an empty module\n else if (multipleNamedDefines)\n loader.registerDynamic([], false, noop);\n}\n","import { scriptLoad, isBrowser, isWorker, global, cjsRequireRegEx, addToError, loadNodeModule,\n warn, CONFIG, METADATA, emptyModule, protectedCreateNamespace, resolvedPromise, preloadScript, checkInstantiateWasm } from './common.js';\nimport { evaluate } from './evaluate.js';\nimport fetch from './fetch.js';\nimport { getGlobalValue, getCJSDeps, requireResolve, getPathVars, prepareGlobal, clearLastDefine, registerLastDefine } from './format-helpers.js';\n\nvar supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);\n\n// include the node require since we're overriding it\nexport var nodeRequire;\nif (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)\n nodeRequire = require;\n\nfunction setMetaEsModule (metadata, moduleValue) {\n if (metadata.load.esModule && (typeof moduleValue === 'object' || typeof moduleValue === 'function') &&\n !('__esModule' in moduleValue))\n Object.defineProperty(moduleValue, '__esModule', {\n value: true\n });\n}\n\nexport function instantiate (key, processAnonRegister) {\n var loader = this;\n var config = this[CONFIG];\n // first do bundles and depCache\n return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)\n .then(function () {\n if (processAnonRegister())\n return;\n\n var metadata = loader[METADATA][key];\n\n // node module loading\n if (key.substr(0, 6) === '@node/') {\n if (!loader._nodeRequire)\n throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');\n loader.registerDynamic([], false, function () {\n return loadNodeModule.call(loader, key.substr(6), loader.baseURL);\n });\n processAnonRegister();\n return;\n }\n\n if (metadata.load.scriptLoad ) {\n if (metadata.load.pluginKey || !supportsScriptLoad) {\n metadata.load.scriptLoad = false;\n warn.call(config, 'scriptLoad not supported for \"' + key + '\"');\n }\n }\n else if (metadata.load.scriptLoad !== false && !metadata.load.pluginKey && supportsScriptLoad) {\n // auto script load AMD, global without deps\n if (!metadata.load.deps && !metadata.load.globals &&\n (metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))\n metadata.load.scriptLoad = true;\n }\n\n // fetch / translate / instantiate pipeline\n if (!metadata.load.scriptLoad)\n return initializePlugin(loader, key, metadata)\n .then(function () {\n return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);\n })\n\n // just script loading\n return new Promise(function (resolve, reject) {\n if (metadata.load.format === 'amd' && global.define !== loader.amdDefine)\n throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');\n\n scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {\n if (!processAnonRegister()) {\n metadata.load.format = 'global';\n var globalValue = metadata.load.exports && getGlobalValue(metadata.load.exports);\n loader.registerDynamic([], false, function () {\n setMetaEsModule(metadata, globalValue);\n return globalValue;\n });\n processAnonRegister();\n }\n\n resolve();\n }, reject);\n });\n })\n .then(function (instantiated) {\n delete loader[METADATA][key];\n return instantiated;\n });\n};\n\nfunction initializePlugin (loader, key, metadata) {\n if (!metadata.pluginKey)\n return resolvedPromise;\n\n return loader.import(metadata.pluginKey).then(function (plugin) {\n metadata.pluginModule = plugin;\n metadata.pluginLoad = {\n name: key,\n address: metadata.pluginArgument,\n source: undefined,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n });\n}\n\nfunction loadBundlesAndDepCache (config, loader, key) {\n // load direct deps, in turn will pick up their trace trees\n var deps = config.depCache[key];\n if (deps) {\n for (var i = 0; i < deps.length; i++)\n loader.normalize(deps[i], key).then(preloadScript);\n }\n else {\n var matched = false;\n for (var b in config.bundles) {\n for (var i = 0; i < config.bundles[b].length; i++) {\n var curModule = config.bundles[b][i];\n\n if (curModule === key) {\n matched = true;\n break;\n }\n\n // wildcard in bundles includes / boundaries\n if (curModule.indexOf('*') !== -1) {\n var parts = curModule.split('*');\n if (parts.length !== 2) {\n config.bundles[b].splice(i--, 1);\n continue;\n }\n\n if (key.substr(0, parts[0].length) === parts[0] &&\n key.substr(key.length - parts[1].length, parts[1].length) === parts[1]) {\n matched = true;\n break;\n }\n }\n }\n\n if (matched)\n return loader.import(b);\n }\n }\n}\n\nfunction runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {\n if (metadata.load.exports && !metadata.load.format)\n metadata.load.format = 'global';\n\n return resolvedPromise\n\n // locate\n .then(function () {\n if (!metadata.pluginModule || !metadata.pluginModule.locate)\n return;\n\n return Promise.resolve(metadata.pluginModule.locate.call(loader, metadata.pluginLoad))\n .then(function (address) {\n if (address)\n metadata.pluginLoad.address = address;\n });\n })\n\n // fetch\n .then(function () {\n if (!metadata.pluginModule)\n return fetch(key, metadata.load.authorization, metadata.load.integrity, wasm);\n\n wasm = false;\n\n if (!metadata.pluginModule.fetch)\n return fetch(metadata.pluginLoad.address, metadata.load.authorization, metadata.load.integrity, false);\n\n return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {\n return fetch(load.address, metadata.load.authorization, metadata.load.integrity, false);\n });\n })\n\n .then(function (fetched) {\n // fetch is already a utf-8 string if not doing wasm detection\n if (!wasm || typeof fetched === 'string')\n return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);\n\n return checkInstantiateWasm(loader, fetched, processAnonRegister)\n .then(function (wasmInstantiated) {\n if (wasmInstantiated)\n return;\n\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var stringSource = isBrowser ? new TextDecoder('utf-8').decode(new Uint8Array(fetched)) : fetched.toString();\n return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);\n });\n });\n}\n\nfunction translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {\n return Promise.resolve(source)\n // translate\n .then(function (source) {\n if (metadata.load.format === 'detect')\n metadata.load.format = undefined;\n\n readMetaSyntax(source, metadata);\n\n if (!metadata.pluginModule)\n return source;\n\n metadata.pluginLoad.source = source;\n\n if (!metadata.pluginModule.translate)\n return source;\n\n return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (translated) {\n if (metadata.load.sourceMap) {\n if (typeof metadata.load.sourceMap !== 'object')\n throw new Error('metadata.load.sourceMap must be set to an object.');\n sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);\n }\n\n if (typeof translated === 'string')\n return translated;\n else\n return metadata.pluginLoad.source;\n });\n })\n .then(function (source) {\n if (!metadata.load.format && source.substring(0, 8) === '\"bundle\"') {\n metadata.load.format = 'system';\n return source;\n }\n\n if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {\n metadata.load.format = 'register';\n return source;\n }\n\n if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {\n return source;\n }\n\n metadata.load.format = 'esm';\n return transpile(loader, source, key, metadata, processAnonRegister);\n })\n\n // instantiate\n .then(function (translated) {\n if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)\n return translated;\n\n var calledInstantiate = false;\n metadata.pluginLoad.source = translated;\n return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {\n translated = load.source;\n metadata.load = load.metadata;\n if (calledInstantiate)\n throw new Error('Instantiate must only be called once.');\n calledInstantiate = true;\n }))\n .then(function (result) {\n if (calledInstantiate)\n return translated;\n return protectedCreateNamespace(result);\n });\n })\n .then(function (source) {\n // plugin instantiate result case\n if (typeof source !== 'string')\n return source;\n\n if (!metadata.load.format)\n metadata.load.format = detectLegacyFormat(source);\n\n var registered = false;\n\n switch (metadata.load.format) {\n case 'esm':\n case 'register':\n case 'system':\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n if (!processAnonRegister())\n return emptyModule;\n return;\n break;\n\n case 'json':\n // warn.call(config, '\"json\" module format is deprecated.');\n var parsed = JSON.parse(source);\n return loader.newModule({ default: parsed, __useDefault: parsed });\n\n case 'amd':\n var curDefine = global.define;\n global.define = loader.amdDefine;\n\n clearLastDefine(metadata.load.deps, metadata.load.esModule);\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n\n // if didn't register anonymously, use the last named define if only one\n registered = processAnonRegister();\n if (!registered) {\n registerLastDefine(loader);\n registered = processAnonRegister();\n }\n\n global.define = curDefine;\n\n if (err)\n throw err;\n break;\n\n case 'cjs':\n var metaDeps = metadata.load.deps;\n var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);\n\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n deps.push(metadata.load.globals[g]);\n\n loader.registerDynamic(deps, true, function (require, exports, module) {\n require.resolve = function (key) {\n return requireResolve.call(loader, key, module.id);\n };\n // support module.paths ish\n module.paths = [];\n module.require = require;\n\n // ensure meta deps execute first\n if (!metadata.load.cjsDeferDepsExecute && metaDeps)\n for (var i = 0; i < metaDeps.length; i++)\n require(metaDeps[i]);\n\n var pathVars = getPathVars(module.id);\n var __cjsWrapper = {\n exports: exports,\n args: [require, exports, module, pathVars.filename, pathVars.dirname, global, global]\n };\n\n var cjsWrapper = \"(function (require, exports, module, __filename, __dirname, global, GLOBAL\";\n\n // add metadata.globals to the wrapper arguments\n if (metadata.load.globals)\n for (var g in metadata.load.globals) {\n __cjsWrapper.args.push(require(metadata.load.globals[g]));\n cjsWrapper += \", \" + g;\n }\n\n // disable AMD detection\n var define = global.define;\n global.define = undefined;\n global.__cjsWrapper = __cjsWrapper;\n\n source = cjsWrapper + \") {\" + source.replace(hashBangRegEx, '') + \"\\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);\";\n\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);\n if (err)\n throw err;\n\n setMetaEsModule(metadata, exports);\n\n global.__cjsWrapper = undefined;\n global.define = define;\n });\n registered = processAnonRegister();\n break;\n\n case 'global':\n var deps = metadata.load.deps || [];\n for (var g in metadata.load.globals) {\n var gl = metadata.load.globals[g];\n if (gl)\n deps.push(gl);\n }\n\n loader.registerDynamic(deps, false, function (require, exports, module) {\n var globals;\n if (metadata.load.globals) {\n globals = {};\n for (var g in metadata.load.globals)\n if (metadata.load.globals[g])\n globals[g] = require(metadata.load.globals[g]);\n }\n\n var exportName = metadata.load.exports;\n\n if (exportName)\n source += '\\n' + globalName + '[\"' + exportName + '\"] = ' + exportName + ';';\n\n var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);\n var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);\n\n if (err)\n throw err;\n\n var output = retrieveGlobal();\n setMetaEsModule(metadata, output);\n return output;\n });\n registered = processAnonRegister();\n break;\n\n default:\n throw new TypeError('Unknown module format \"' + metadata.load.format + '\" for \"' + key + '\".' + (metadata.load.format === 'es6' ? ' Use \"esm\" instead here.' : ''));\n }\n\n if (!registered)\n throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\\'t execute correctly.');\n });\n}\n\nvar globalName = typeof self != 'undefined' ? 'self' : 'global';\n\n// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case\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))/;\n\nvar leadingCommentAndMetaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)*\\s*/;\nexport function detectRegisterFormat(source) {\n var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);\n return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';\n}\n\n// AMD Module Format Detection RegEx\n// define([.., .., ..], ...)\n// define(varName); || define(function(require, exports) {}); || define({})\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]*\\))/;\n\n/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...\nvar cjsExportsRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.])(exports\\s*(\\[['\"]|\\.)|module(\\.exports|\\['exports'\\]|\\[\"exports\"\\])\\s*(\\[['\"]|[=,\\.]))/;\nvar commentRegEx = /(^|[^\\\\])(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg;\n\nvar stringRegEx = /(\"[^\"\\\\\\n\\r]*(\\\\.[^\"\\\\\\n\\r]*)*\"|'[^'\\\\\\n\\r]*(\\\\.[^'\\\\\\n\\r]*)*')/g;\n\n// used to support leading #!/usr/bin/env in scripts as supported in Node\nvar hashBangRegEx = /^\\#\\!.*/;\n\nexport function detectLegacyFormat (source) {\n if (source.match(amdRegEx))\n return 'amd';\n\n cjsExportsRegEx.lastIndex = 0;\n cjsRequireRegEx.lastIndex = 0;\n if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))\n return 'cjs';\n\n // global is the fallback format\n return 'global';\n}\n\nfunction sanitizeSourceMap (address, sourceMap) {\n var originalName = address.split('!')[0];\n\n // force set the filename of the original file\n if (!sourceMap.file || sourceMap.file == address)\n sourceMap.file = originalName + '!transpiled';\n\n // force set the sources list if only one source\n if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))\n sourceMap.sources = [originalName];\n}\n\nfunction transpile (loader, source, key, metadata, processAnonRegister) {\n if (!loader.transpiler)\n throw new TypeError('Unable to dynamically transpile ES module\\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \\'transpiler-module\\' })`.');\n\n // deps support for es transpile\n if (metadata.load.deps) {\n var depsPrefix = '';\n for (var i = 0; i < metadata.load.deps.length; i++)\n depsPrefix += 'import \"' + metadata.load.deps[i] + '\"; ';\n source = depsPrefix + source;\n }\n\n // do transpilation\n return loader.import.call(loader, loader.transpiler)\n .then(function (transpiler) {\n transpiler = transpiler.__useDefault || transpiler;\n\n // translate hooks means this is a transpiler plugin instead of a raw implementation\n if (!transpiler.translate)\n throw new Error(loader.transpiler + ' is not a valid transpiler plugin.');\n\n // if transpiler is the same as the plugin loader, then don't run twice\n if (transpiler === metadata.pluginModule)\n return source;\n\n // convert the source map into an object for transpilation chaining\n if (typeof metadata.load.sourceMap === 'string')\n metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);\n\n metadata.pluginLoad = metadata.pluginLoad || {\n name: key,\n address: key,\n source: source,\n metadata: metadata.load\n };\n metadata.load.deps = metadata.load.deps || [];\n\n return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))\n .then(function (source) {\n // sanitize sourceMap if an object not a JSON string\n var sourceMap = metadata.load.sourceMap;\n if (sourceMap && typeof sourceMap === 'object')\n sanitizeSourceMap(key, sourceMap);\n\n if (metadata.load.format === 'esm' && detectRegisterFormat(source))\n metadata.load.format = 'register';\n\n return source;\n });\n }, function (err) {\n throw addToError(err, 'Unable to load transpiler to transpile ' + key);\n });\n}\n\n// detect any meta header syntax\n// only set if not already set\nvar metaRegEx = /^(\\s*\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\s*\\/\\/[^\\n]*|\\s*\"[^\"]+\"\\s*;?|\\s*'[^']+'\\s*;?)+/;\nvar metaPartRegEx = /\\/\\*[^\\*]*(\\*(?!\\/)[^\\*]*)*\\*\\/|\\/\\/[^\\n]*|\"[^\"]+\"\\s*;?|'[^']+'\\s*;?/g;\n\nfunction setMetaProperty(target, p, value) {\n var pParts = p.split('.');\n var curPart;\n while (pParts.length > 1) {\n curPart = pParts.shift();\n target = target[curPart] = target[curPart] || {};\n }\n curPart = pParts.shift();\n if (target[curPart] === undefined)\n target[curPart] = value;\n}\n\nfunction readMetaSyntax (source, metadata) {\n var meta = source.match(metaRegEx);\n if (!meta)\n return;\n\n var metaParts = meta[0].match(metaPartRegEx);\n\n for (var i = 0; i < metaParts.length; i++) {\n var curPart = metaParts[i];\n var len = curPart.length;\n\n var firstChar = curPart.substr(0, 1);\n if (curPart.substr(len - 1, 1) == ';')\n len--;\n\n if (firstChar != '\"' && firstChar != \"'\")\n continue;\n\n var metaString = curPart.substr(1, curPart.length - 3);\n var metaName = metaString.substr(0, metaString.indexOf(' '));\n\n if (metaName) {\n var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);\n\n if (metaName === 'deps')\n metaName = 'deps[]';\n\n if (metaName.substr(metaName.length - 2, 2) === '[]') {\n metaName = metaName.substr(0, metaName.length - 2);\n metadata.load[metaName] = metadata.load[metaName] || [];\n metadata.load[metaName].push(metaValue);\n }\n // \"use strict\" is not meta\n else if (metaName !== 'use') {\n setMetaProperty(metadata.load, metaName, metaValue);\n }\n }\n else {\n metadata.load[metaString] = true;\n }\n }\n}\n","import RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { warn, isBrowser, global, baseURI, CONFIG, METADATA, ModuleNamespace, emptyModule, isModule } from './common.js';\n\nimport { getConfig, getConfigItem, setConfig } from './config.js';\nimport { decanonicalize, normalize, normalizeSync } from './resolve.js';\nimport { instantiate, nodeRequire } from './instantiate.js';\nimport formatHelpers from './format-helpers.js';\n\nexport default SystemJSLoader;\n\nvar scriptSrc;\n\n// Promise detection and error message\nif (typeof Promise === 'undefined')\n throw new Error('SystemJS needs a Promise polyfill.');\n\nif (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n var curScript = scripts[scripts.length - 1];\n if (document.currentScript && (curScript.defer || curScript.async))\n curScript = document.currentScript;\n\n scriptSrc = curScript && curScript.src;\n}\n// worker\nelse if (typeof importScripts !== 'undefined') {\n try {\n throw new Error('_');\n }\n catch (e) {\n e.stack.replace(/(?:at|@).*(http.+):[\\d]+:[\\d]+/, function(m, url) {\n scriptSrc = url;\n });\n }\n}\n// node\nelse if (typeof __filename !== 'undefined') {\n scriptSrc = __filename;\n}\n\nfunction SystemJSLoader () {\n RegisterLoader.call(this);\n\n // NB deprecate\n this._loader = {};\n\n // internal metadata store\n this[METADATA] = {};\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n\n packageConfigPaths: [],\n packageConfigKeys: [],\n map: {},\n packages: {},\n depCache: {},\n meta: {},\n bundles: {},\n\n production: false,\n\n transpiler: undefined,\n loadedBundles: {},\n\n // global behaviour flags\n warnings: false,\n pluginFirst: false,\n\n // enable wasm loading and detection when supported\n wasm: false\n };\n\n // make the location of the system.js script accessible (if any)\n this.scriptSrc = scriptSrc;\n\n this._nodeRequire = nodeRequire;\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n\n setProduction.call(this, false, false);\n\n // add module format helpers\n formatHelpers(this);\n}\n\nexport var envModule;\nexport function setProduction (isProduction, isBuilder) {\n this[CONFIG].production = isProduction;\n this.registry.set('@system-env', envModule = this.newModule({\n browser: isBrowser,\n node: !!this._nodeRequire,\n production: !isBuilder && isProduction,\n dev: isBuilder || !isProduction,\n build: isBuilder,\n 'default': true\n }));\n}\n\nSystemJSLoader.prototype = Object.create(RegisterLoader.prototype);\n\nSystemJSLoader.prototype.constructor = SystemJSLoader;\n\n// NB deprecate normalize\nSystemJSLoader.prototype[SystemJSLoader.resolve = RegisterLoader.resolve] = SystemJSLoader.prototype.normalize = normalize;\n\nSystemJSLoader.prototype.load = function (key, parentKey) {\n warn.call(this[CONFIG], 'System.load is deprecated.');\n return this.import(key, parentKey);\n};\n\n// NB deprecate decanonicalize, normalizeSync\nSystemJSLoader.prototype.decanonicalize = SystemJSLoader.prototype.normalizeSync = SystemJSLoader.prototype.resolveSync = normalizeSync;\n\nSystemJSLoader.prototype[SystemJSLoader.instantiate = RegisterLoader.instantiate] = instantiate;\n\nSystemJSLoader.prototype.config = setConfig;\nSystemJSLoader.prototype.getConfig = getConfig;\n\nSystemJSLoader.prototype.global = global;\n\nSystemJSLoader.prototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return '__useDefault' in m ? m.__useDefault : m;\n });\n};\n\nexport var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];\n\nvar hasProxy = typeof Proxy !== 'undefined';\nfor (var i = 0; i < configNames.length; i++) (function (configName) {\n Object.defineProperty(SystemJSLoader.prototype, configName, {\n get: function () {\n var cfg = getConfigItem(this[CONFIG], configName);\n\n if (hasProxy && typeof cfg === 'object')\n cfg = new Proxy(cfg, {\n set: function (target, option) {\n throw new Error('Cannot set SystemJS.' + configName + '[\"' + option + '\"] directly. Use SystemJS.config({ ' + configName + ': { \"' + option + '\": ... } }) rather.');\n }\n });\n\n //if (typeof cfg === 'object')\n // warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\\'' + configName + '\\')`');\n return cfg;\n },\n set: function (name) {\n throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');\n }\n });\n})(configNames[i]);\n\n/*\n * Backwards-compatible registry API, to be deprecated\n */\nfunction registryWarn(loader, method) {\n warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);\n}\nSystemJSLoader.prototype.delete = function (key) {\n registryWarn(this, 'delete');\n return this.registry.delete(key);\n};\nSystemJSLoader.prototype.get = function (key) {\n registryWarn(this, 'get');\n return this.registry.get(key);\n};\nSystemJSLoader.prototype.has = function (key) {\n registryWarn(this, 'has');\n return this.registry.has(key);\n};\nSystemJSLoader.prototype.set = function (key, module) {\n registryWarn(this, 'set');\n return this.registry.set(key, module);\n};\nSystemJSLoader.prototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\nSystemJSLoader.prototype.isModule = isModule;\n\n// ensure System.register and System.registerDynamic decanonicalize\nSystemJSLoader.prototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nSystemJSLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = decanonicalize.call(this, this[CONFIG], key);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSLoader from './systemjs-loader.js';\n\nSystemJSLoader.prototype.version = VERSION;\n\nvar System = new SystemJSLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker)\n global.SystemJS = global.System = System;\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]}
|
@@ -0,0 +1,4000 @@
|
|
1
|
+
/*
|
2
|
+
* SystemJS v0.20.19 Dev
|
3
|
+
*/
|
4
|
+
(function () {
|
5
|
+
'use strict';
|
6
|
+
|
7
|
+
/*
|
8
|
+
* Environment
|
9
|
+
*/
|
10
|
+
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
11
|
+
var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
12
|
+
var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);
|
13
|
+
|
14
|
+
var envGlobal = typeof self !== 'undefined' ? self : global;
|
15
|
+
/*
|
16
|
+
* Simple Symbol() shim
|
17
|
+
*/
|
18
|
+
var hasSymbol = typeof Symbol !== 'undefined';
|
19
|
+
function createSymbol (name) {
|
20
|
+
return hasSymbol ? Symbol() : '@@' + name;
|
21
|
+
}
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
/*
|
28
|
+
* Environment baseURI
|
29
|
+
*/
|
30
|
+
var baseURI;
|
31
|
+
|
32
|
+
// environent baseURI detection
|
33
|
+
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
34
|
+
baseURI = document.baseURI;
|
35
|
+
|
36
|
+
if (!baseURI) {
|
37
|
+
var bases = document.getElementsByTagName('base');
|
38
|
+
baseURI = bases[0] && bases[0].href || window.location.href;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
else if (typeof location != 'undefined') {
|
42
|
+
baseURI = location.href;
|
43
|
+
}
|
44
|
+
|
45
|
+
// sanitize out the hash and querystring
|
46
|
+
if (baseURI) {
|
47
|
+
baseURI = baseURI.split('#')[0].split('?')[0];
|
48
|
+
var slashIndex = baseURI.lastIndexOf('/');
|
49
|
+
if (slashIndex !== -1)
|
50
|
+
baseURI = baseURI.substr(0, slashIndex + 1);
|
51
|
+
}
|
52
|
+
else if (typeof process !== 'undefined' && process.cwd) {
|
53
|
+
baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();
|
54
|
+
if (isWindows)
|
55
|
+
baseURI = baseURI.replace(/\\/g, '/');
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
throw new TypeError('No environment baseURI');
|
59
|
+
}
|
60
|
+
|
61
|
+
// ensure baseURI has trailing "/"
|
62
|
+
if (baseURI[baseURI.length - 1] !== '/')
|
63
|
+
baseURI += '/';
|
64
|
+
|
65
|
+
/*
|
66
|
+
* LoaderError with chaining for loader stacks
|
67
|
+
*/
|
68
|
+
var errArgs = new Error(0, '_').fileName == '_';
|
69
|
+
function LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {
|
70
|
+
// Convert file:/// URLs to paths in Node
|
71
|
+
if (!isBrowser)
|
72
|
+
newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
|
73
|
+
|
74
|
+
var message = (childErr.message || childErr) + '\n ' + newMessage;
|
75
|
+
|
76
|
+
var err;
|
77
|
+
if (errArgs && childErr.fileName)
|
78
|
+
err = new Error(message, childErr.fileName, childErr.lineNumber);
|
79
|
+
else
|
80
|
+
err = new Error(message);
|
81
|
+
|
82
|
+
|
83
|
+
var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;
|
84
|
+
|
85
|
+
if (isNode)
|
86
|
+
// node doesn't show the message otherwise
|
87
|
+
err.stack = message + '\n ' + stack;
|
88
|
+
else
|
89
|
+
err.stack = stack;
|
90
|
+
|
91
|
+
err.originalErr = childErr.originalErr || childErr;
|
92
|
+
|
93
|
+
return err;
|
94
|
+
}
|
95
|
+
|
96
|
+
/*
|
97
|
+
* Optimized URL normalization assuming a syntax-valid URL parent
|
98
|
+
*/
|
99
|
+
function throwResolveError (relUrl, parentUrl) {
|
100
|
+
throw new RangeError('Unable to resolve "' + relUrl + '" to ' + parentUrl);
|
101
|
+
}
|
102
|
+
function resolveIfNotPlain (relUrl, parentUrl) {
|
103
|
+
relUrl = relUrl.trim();
|
104
|
+
var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);
|
105
|
+
|
106
|
+
var firstChar = relUrl[0];
|
107
|
+
var secondChar = relUrl[1];
|
108
|
+
|
109
|
+
// protocol-relative
|
110
|
+
if (firstChar === '/' && secondChar === '/') {
|
111
|
+
if (!parentProtocol)
|
112
|
+
throwResolveError(relUrl, parentUrl);
|
113
|
+
return parentProtocol + relUrl;
|
114
|
+
}
|
115
|
+
// relative-url
|
116
|
+
else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
|
117
|
+
relUrl.length === 1 && (relUrl += '/')) ||
|
118
|
+
firstChar === '/') {
|
119
|
+
var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';
|
120
|
+
|
121
|
+
// read pathname from parent if a URL
|
122
|
+
// pathname taken to be part after leading "/"
|
123
|
+
var pathname;
|
124
|
+
if (parentIsPlain) {
|
125
|
+
// resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname
|
126
|
+
if (parentUrl === undefined)
|
127
|
+
throwResolveError(relUrl, parentUrl);
|
128
|
+
pathname = parentUrl;
|
129
|
+
}
|
130
|
+
else if (parentUrl[parentProtocol.length + 1] === '/') {
|
131
|
+
// resolving to a :// so we need to read out the auth and host
|
132
|
+
if (parentProtocol !== 'file:') {
|
133
|
+
pathname = parentUrl.substr(parentProtocol.length + 2);
|
134
|
+
pathname = pathname.substr(pathname.indexOf('/') + 1);
|
135
|
+
}
|
136
|
+
else {
|
137
|
+
pathname = parentUrl.substr(8);
|
138
|
+
}
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
// resolving to :/ so pathname is the /... part
|
142
|
+
pathname = parentUrl.substr(parentProtocol.length + 1);
|
143
|
+
}
|
144
|
+
|
145
|
+
if (firstChar === '/') {
|
146
|
+
if (parentIsPlain)
|
147
|
+
throwResolveError(relUrl, parentUrl);
|
148
|
+
else
|
149
|
+
return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;
|
150
|
+
}
|
151
|
+
|
152
|
+
// join together and split for removal of .. and . segments
|
153
|
+
// looping the string instead of anything fancy for perf reasons
|
154
|
+
// '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain
|
155
|
+
var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;
|
156
|
+
|
157
|
+
var output = [];
|
158
|
+
var segmentIndex = -1;
|
159
|
+
|
160
|
+
for (var i = 0; i < segmented.length; i++) {
|
161
|
+
// busy reading a segment - only terminate on '/'
|
162
|
+
if (segmentIndex !== -1) {
|
163
|
+
if (segmented[i] === '/') {
|
164
|
+
output.push(segmented.substring(segmentIndex, i + 1));
|
165
|
+
segmentIndex = -1;
|
166
|
+
}
|
167
|
+
continue;
|
168
|
+
}
|
169
|
+
|
170
|
+
// new segment - check if it is relative
|
171
|
+
if (segmented[i] === '.') {
|
172
|
+
// ../ segment
|
173
|
+
if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
|
174
|
+
output.pop();
|
175
|
+
i += 2;
|
176
|
+
}
|
177
|
+
// ./ segment
|
178
|
+
else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
|
179
|
+
i += 1;
|
180
|
+
}
|
181
|
+
else {
|
182
|
+
// the start of a new segment as below
|
183
|
+
segmentIndex = i;
|
184
|
+
continue;
|
185
|
+
}
|
186
|
+
|
187
|
+
// this is the plain URI backtracking error (../, package:x -> error)
|
188
|
+
if (parentIsPlain && output.length === 0)
|
189
|
+
throwResolveError(relUrl, parentUrl);
|
190
|
+
|
191
|
+
continue;
|
192
|
+
}
|
193
|
+
|
194
|
+
// it is the start of a new segment
|
195
|
+
segmentIndex = i;
|
196
|
+
}
|
197
|
+
// finish reading out the last segment
|
198
|
+
if (segmentIndex !== -1)
|
199
|
+
output.push(segmented.substr(segmentIndex));
|
200
|
+
|
201
|
+
return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');
|
202
|
+
}
|
203
|
+
|
204
|
+
// sanitizes and verifies (by returning undefined if not a valid URL-like form)
|
205
|
+
// Windows filepath compatibility is an added convenience here
|
206
|
+
var protocolIndex = relUrl.indexOf(':');
|
207
|
+
if (protocolIndex !== -1) {
|
208
|
+
if (isNode) {
|
209
|
+
// C:\x becomes file:///c:/x (we don't support C|\x)
|
210
|
+
if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i))
|
211
|
+
return 'file:///' + relUrl.replace(/\\/g, '/');
|
212
|
+
}
|
213
|
+
return relUrl;
|
214
|
+
}
|
215
|
+
}
|
216
|
+
|
217
|
+
var resolvedPromise$1 = Promise.resolve();
|
218
|
+
|
219
|
+
/*
|
220
|
+
* Simple Array values shim
|
221
|
+
*/
|
222
|
+
function arrayValues (arr) {
|
223
|
+
if (arr.values)
|
224
|
+
return arr.values();
|
225
|
+
|
226
|
+
if (typeof Symbol === 'undefined' || !Symbol.iterator)
|
227
|
+
throw new Error('Symbol.iterator not supported in this browser');
|
228
|
+
|
229
|
+
var iterable = {};
|
230
|
+
iterable[Symbol.iterator] = function () {
|
231
|
+
var keys = Object.keys(arr);
|
232
|
+
var keyIndex = 0;
|
233
|
+
return {
|
234
|
+
next: function () {
|
235
|
+
if (keyIndex < keys.length)
|
236
|
+
return {
|
237
|
+
value: arr[keys[keyIndex++]],
|
238
|
+
done: false
|
239
|
+
};
|
240
|
+
else
|
241
|
+
return {
|
242
|
+
value: undefined,
|
243
|
+
done: true
|
244
|
+
};
|
245
|
+
}
|
246
|
+
};
|
247
|
+
};
|
248
|
+
return iterable;
|
249
|
+
}
|
250
|
+
|
251
|
+
/*
|
252
|
+
* 3. Reflect.Loader
|
253
|
+
*
|
254
|
+
* We skip the entire native internal pipeline, just providing the bare API
|
255
|
+
*/
|
256
|
+
// 3.1.1
|
257
|
+
function Loader () {
|
258
|
+
this.registry = new Registry();
|
259
|
+
}
|
260
|
+
// 3.3.1
|
261
|
+
Loader.prototype.constructor = Loader;
|
262
|
+
|
263
|
+
function ensureInstantiated (module) {
|
264
|
+
if (!(module instanceof ModuleNamespace))
|
265
|
+
throw new TypeError('Module instantiation did not return a valid namespace object.');
|
266
|
+
return module;
|
267
|
+
}
|
268
|
+
|
269
|
+
// 3.3.2
|
270
|
+
Loader.prototype.import = function (key, parent) {
|
271
|
+
if (typeof key !== 'string')
|
272
|
+
throw new TypeError('Loader import method must be passed a module key string');
|
273
|
+
// custom resolveInstantiate combined hook for better perf
|
274
|
+
var loader = this;
|
275
|
+
return resolvedPromise$1
|
276
|
+
.then(function () {
|
277
|
+
return loader[RESOLVE_INSTANTIATE](key, parent);
|
278
|
+
})
|
279
|
+
.then(ensureInstantiated)
|
280
|
+
//.then(Module.evaluate)
|
281
|
+
.catch(function (err) {
|
282
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
283
|
+
});
|
284
|
+
};
|
285
|
+
// 3.3.3
|
286
|
+
var RESOLVE = Loader.resolve = createSymbol('resolve');
|
287
|
+
|
288
|
+
/*
|
289
|
+
* Combined resolve / instantiate hook
|
290
|
+
*
|
291
|
+
* Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described
|
292
|
+
* in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.
|
293
|
+
*
|
294
|
+
* We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid
|
295
|
+
* the need for double registry lookups as a performance optimization.
|
296
|
+
*/
|
297
|
+
var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');
|
298
|
+
|
299
|
+
// default resolveInstantiate is just to call resolve and then get from the registry
|
300
|
+
// this provides compatibility for the resolveInstantiate optimization
|
301
|
+
Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {
|
302
|
+
var loader = this;
|
303
|
+
return loader.resolve(key, parent)
|
304
|
+
.then(function (resolved) {
|
305
|
+
return loader.registry.get(resolved);
|
306
|
+
});
|
307
|
+
};
|
308
|
+
|
309
|
+
function ensureResolution (resolvedKey) {
|
310
|
+
if (resolvedKey === undefined)
|
311
|
+
throw new RangeError('No resolution found.');
|
312
|
+
return resolvedKey;
|
313
|
+
}
|
314
|
+
|
315
|
+
Loader.prototype.resolve = function (key, parent) {
|
316
|
+
var loader = this;
|
317
|
+
return resolvedPromise$1
|
318
|
+
.then(function() {
|
319
|
+
return loader[RESOLVE](key, parent);
|
320
|
+
})
|
321
|
+
.then(ensureResolution)
|
322
|
+
.catch(function (err) {
|
323
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));
|
324
|
+
});
|
325
|
+
};
|
326
|
+
|
327
|
+
// 3.3.4 (import without evaluate)
|
328
|
+
// this is not documented because the use of deferred evaluation as in Module.evaluate is not
|
329
|
+
// documented, as it is not considered a stable feature to be encouraged
|
330
|
+
// Loader.prototype.load may well be deprecated if this stays disabled
|
331
|
+
/* Loader.prototype.load = function (key, parent) {
|
332
|
+
return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))
|
333
|
+
.catch(function (err) {
|
334
|
+
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
335
|
+
});
|
336
|
+
}; */
|
337
|
+
|
338
|
+
/*
|
339
|
+
* 4. Registry
|
340
|
+
*
|
341
|
+
* Instead of structuring through a Map, just use a dictionary object
|
342
|
+
* We throw for construction attempts so this doesn't affect the public API
|
343
|
+
*
|
344
|
+
* Registry has been adjusted to use Namespace objects over ModuleStatus objects
|
345
|
+
* as part of simplifying loader API implementation
|
346
|
+
*/
|
347
|
+
var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;
|
348
|
+
var REGISTRY = createSymbol('registry');
|
349
|
+
function Registry() {
|
350
|
+
this[REGISTRY] = {};
|
351
|
+
}
|
352
|
+
// 4.4.1
|
353
|
+
if (iteratorSupport) {
|
354
|
+
// 4.4.2
|
355
|
+
Registry.prototype[Symbol.iterator] = function () {
|
356
|
+
return this.entries()[Symbol.iterator]();
|
357
|
+
};
|
358
|
+
|
359
|
+
// 4.4.3
|
360
|
+
Registry.prototype.entries = function () {
|
361
|
+
var registry = this[REGISTRY];
|
362
|
+
return arrayValues(Object.keys(registry).map(function (key) {
|
363
|
+
return [key, registry[key]];
|
364
|
+
}));
|
365
|
+
};
|
366
|
+
}
|
367
|
+
|
368
|
+
// 4.4.4
|
369
|
+
Registry.prototype.keys = function () {
|
370
|
+
return arrayValues(Object.keys(this[REGISTRY]));
|
371
|
+
};
|
372
|
+
// 4.4.5
|
373
|
+
Registry.prototype.values = function () {
|
374
|
+
var registry = this[REGISTRY];
|
375
|
+
return arrayValues(Object.keys(registry).map(function (key) {
|
376
|
+
return registry[key];
|
377
|
+
}));
|
378
|
+
};
|
379
|
+
// 4.4.6
|
380
|
+
Registry.prototype.get = function (key) {
|
381
|
+
return this[REGISTRY][key];
|
382
|
+
};
|
383
|
+
// 4.4.7
|
384
|
+
Registry.prototype.set = function (key, namespace) {
|
385
|
+
if (!(namespace instanceof ModuleNamespace))
|
386
|
+
throw new Error('Registry must be set with an instance of Module Namespace');
|
387
|
+
this[REGISTRY][key] = namespace;
|
388
|
+
return this;
|
389
|
+
};
|
390
|
+
// 4.4.8
|
391
|
+
Registry.prototype.has = function (key) {
|
392
|
+
return Object.hasOwnProperty.call(this[REGISTRY], key);
|
393
|
+
};
|
394
|
+
// 4.4.9
|
395
|
+
Registry.prototype.delete = function (key) {
|
396
|
+
if (Object.hasOwnProperty.call(this[REGISTRY], key)) {
|
397
|
+
delete this[REGISTRY][key];
|
398
|
+
return true;
|
399
|
+
}
|
400
|
+
return false;
|
401
|
+
};
|
402
|
+
|
403
|
+
/*
|
404
|
+
* Simple ModuleNamespace Exotic object based on a baseObject
|
405
|
+
* We export this for allowing a fast-path for module namespace creation over Module descriptors
|
406
|
+
*/
|
407
|
+
// var EVALUATE = createSymbol('evaluate');
|
408
|
+
var BASE_OBJECT = createSymbol('baseObject');
|
409
|
+
|
410
|
+
// 8.3.1 Reflect.Module
|
411
|
+
/*
|
412
|
+
* Best-effort simplified non-spec implementation based on
|
413
|
+
* a baseObject referenced via getters.
|
414
|
+
*
|
415
|
+
* Allows:
|
416
|
+
*
|
417
|
+
* loader.registry.set('x', new Module({ default: 'x' }));
|
418
|
+
*
|
419
|
+
* Optional evaluation function provides experimental Module.evaluate
|
420
|
+
* support for non-executed modules in registry.
|
421
|
+
*/
|
422
|
+
function ModuleNamespace (baseObject/*, evaluate*/) {
|
423
|
+
Object.defineProperty(this, BASE_OBJECT, {
|
424
|
+
value: baseObject
|
425
|
+
});
|
426
|
+
|
427
|
+
// evaluate defers namespace population
|
428
|
+
/* if (evaluate) {
|
429
|
+
Object.defineProperty(this, EVALUATE, {
|
430
|
+
value: evaluate,
|
431
|
+
configurable: true,
|
432
|
+
writable: true
|
433
|
+
});
|
434
|
+
}
|
435
|
+
else { */
|
436
|
+
Object.keys(baseObject).forEach(extendNamespace, this);
|
437
|
+
//}
|
438
|
+
}
|
439
|
+
// 8.4.2
|
440
|
+
ModuleNamespace.prototype = Object.create(null);
|
441
|
+
|
442
|
+
if (typeof Symbol !== 'undefined' && Symbol.toStringTag)
|
443
|
+
Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {
|
444
|
+
value: 'Module'
|
445
|
+
});
|
446
|
+
|
447
|
+
function extendNamespace (key) {
|
448
|
+
Object.defineProperty(this, key, {
|
449
|
+
enumerable: true,
|
450
|
+
get: function () {
|
451
|
+
return this[BASE_OBJECT][key];
|
452
|
+
}
|
453
|
+
});
|
454
|
+
}
|
455
|
+
|
456
|
+
/* function doEvaluate (evaluate, context) {
|
457
|
+
try {
|
458
|
+
evaluate.call(context);
|
459
|
+
}
|
460
|
+
catch (e) {
|
461
|
+
return e;
|
462
|
+
}
|
463
|
+
}
|
464
|
+
|
465
|
+
// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable
|
466
|
+
Module.evaluate = function (ns) {
|
467
|
+
var evaluate = ns[EVALUATE];
|
468
|
+
if (evaluate) {
|
469
|
+
ns[EVALUATE] = undefined;
|
470
|
+
var err = doEvaluate(evaluate);
|
471
|
+
if (err) {
|
472
|
+
// cache the error
|
473
|
+
ns[EVALUATE] = function () {
|
474
|
+
throw err;
|
475
|
+
};
|
476
|
+
throw err;
|
477
|
+
}
|
478
|
+
Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);
|
479
|
+
}
|
480
|
+
// make chainable
|
481
|
+
return ns;
|
482
|
+
}; */
|
483
|
+
|
484
|
+
/*
|
485
|
+
* Register Loader
|
486
|
+
*
|
487
|
+
* Builds directly on top of loader polyfill to provide:
|
488
|
+
* - loader.register support
|
489
|
+
* - hookable higher-level resolve
|
490
|
+
* - instantiate hook returning a ModuleNamespace or undefined for es module loading
|
491
|
+
* - loader error behaviour as in HTML and loader specs, caching load and eval errors separately
|
492
|
+
* - build tracing support by providing a .trace=true and .loads object format
|
493
|
+
*/
|
494
|
+
|
495
|
+
var REGISTER_INTERNAL = createSymbol('register-internal');
|
496
|
+
|
497
|
+
function RegisterLoader$1 () {
|
498
|
+
Loader.call(this);
|
499
|
+
|
500
|
+
var registryDelete = this.registry.delete;
|
501
|
+
this.registry.delete = function (key) {
|
502
|
+
var deleted = registryDelete.call(this, key);
|
503
|
+
|
504
|
+
// also delete from register registry if linked
|
505
|
+
if (records.hasOwnProperty(key) && !records[key].linkRecord) {
|
506
|
+
delete records[key];
|
507
|
+
deleted = true;
|
508
|
+
}
|
509
|
+
|
510
|
+
return deleted;
|
511
|
+
};
|
512
|
+
|
513
|
+
var records = {};
|
514
|
+
|
515
|
+
this[REGISTER_INTERNAL] = {
|
516
|
+
// last anonymous System.register call
|
517
|
+
lastRegister: undefined,
|
518
|
+
// in-flight es module load records
|
519
|
+
records: records
|
520
|
+
};
|
521
|
+
|
522
|
+
// tracing
|
523
|
+
this.trace = false;
|
524
|
+
}
|
525
|
+
|
526
|
+
RegisterLoader$1.prototype = Object.create(Loader.prototype);
|
527
|
+
RegisterLoader$1.prototype.constructor = RegisterLoader$1;
|
528
|
+
|
529
|
+
var INSTANTIATE = RegisterLoader$1.instantiate = createSymbol('instantiate');
|
530
|
+
|
531
|
+
// default normalize is the WhatWG style normalizer
|
532
|
+
RegisterLoader$1.prototype[RegisterLoader$1.resolve = Loader.resolve] = function (key, parentKey) {
|
533
|
+
return resolveIfNotPlain(key, parentKey || baseURI);
|
534
|
+
};
|
535
|
+
|
536
|
+
RegisterLoader$1.prototype[INSTANTIATE] = function (key, processAnonRegister) {};
|
537
|
+
|
538
|
+
// once evaluated, the linkRecord is set to undefined leaving just the other load record properties
|
539
|
+
// this allows tracking new binding listeners for es modules through importerSetters
|
540
|
+
// for dynamic modules, the load record is removed entirely.
|
541
|
+
function createLoadRecord (state, key, registration) {
|
542
|
+
return state.records[key] = {
|
543
|
+
key: key,
|
544
|
+
|
545
|
+
// defined System.register cache
|
546
|
+
registration: registration,
|
547
|
+
|
548
|
+
// module namespace object
|
549
|
+
module: undefined,
|
550
|
+
|
551
|
+
// es-only
|
552
|
+
// this sticks around so new module loads can listen to binding changes
|
553
|
+
// for already-loaded modules by adding themselves to their importerSetters
|
554
|
+
importerSetters: undefined,
|
555
|
+
|
556
|
+
loadError: undefined,
|
557
|
+
evalError: undefined,
|
558
|
+
|
559
|
+
// in-flight linking record
|
560
|
+
linkRecord: {
|
561
|
+
// promise for instantiated
|
562
|
+
instantiatePromise: undefined,
|
563
|
+
dependencies: undefined,
|
564
|
+
execute: undefined,
|
565
|
+
executingRequire: false,
|
566
|
+
|
567
|
+
// underlying module object bindings
|
568
|
+
moduleObj: undefined,
|
569
|
+
|
570
|
+
// es only, also indicates if es or not
|
571
|
+
setters: undefined,
|
572
|
+
|
573
|
+
// promise for instantiated dependencies (dependencyInstantiations populated)
|
574
|
+
depsInstantiatePromise: undefined,
|
575
|
+
// will be the array of dependency load record or a module namespace
|
576
|
+
dependencyInstantiations: undefined,
|
577
|
+
|
578
|
+
// NB optimization and way of ensuring module objects in setters
|
579
|
+
// indicates setters which should run pre-execution of that dependency
|
580
|
+
// setters is then just for completely executed module objects
|
581
|
+
// alternatively we just pass the partially filled module objects as
|
582
|
+
// arguments into the execute function
|
583
|
+
// hoisted: undefined
|
584
|
+
}
|
585
|
+
};
|
586
|
+
}
|
587
|
+
|
588
|
+
RegisterLoader$1.prototype[Loader.resolveInstantiate] = function (key, parentKey) {
|
589
|
+
var loader = this;
|
590
|
+
var state = this[REGISTER_INTERNAL];
|
591
|
+
var registry = this.registry[REGISTRY];
|
592
|
+
|
593
|
+
return resolveInstantiate(loader, key, parentKey, registry, state)
|
594
|
+
.then(function (instantiated) {
|
595
|
+
if (instantiated instanceof ModuleNamespace)
|
596
|
+
return instantiated;
|
597
|
+
|
598
|
+
// resolveInstantiate always returns a load record with a link record and no module value
|
599
|
+
var link = instantiated.linkRecord;
|
600
|
+
|
601
|
+
// if already beaten to done, return
|
602
|
+
if (!link) {
|
603
|
+
if (instantiated.module)
|
604
|
+
return instantiated.module;
|
605
|
+
throw instantiated.evalError;
|
606
|
+
}
|
607
|
+
|
608
|
+
return deepInstantiateDeps(loader, instantiated, link, registry, state)
|
609
|
+
.then(function () {
|
610
|
+
return ensureEvaluate(loader, instantiated, link, registry, state, undefined);
|
611
|
+
});
|
612
|
+
});
|
613
|
+
};
|
614
|
+
|
615
|
+
function resolveInstantiate (loader, key, parentKey, registry, state) {
|
616
|
+
// normalization shortpath for already-normalized key
|
617
|
+
// could add a plain name filter, but doesn't yet seem necessary for perf
|
618
|
+
var module = registry[key];
|
619
|
+
if (module)
|
620
|
+
return Promise.resolve(module);
|
621
|
+
|
622
|
+
var load = state.records[key];
|
623
|
+
|
624
|
+
// already linked but not in main registry is ignored
|
625
|
+
if (load && !load.module) {
|
626
|
+
if (load.loadError)
|
627
|
+
return Promise.reject(load.loadError);
|
628
|
+
return instantiate(loader, load, load.linkRecord, registry, state);
|
629
|
+
}
|
630
|
+
|
631
|
+
return loader.resolve(key, parentKey)
|
632
|
+
.then(function (resolvedKey) {
|
633
|
+
// main loader registry always takes preference
|
634
|
+
module = registry[resolvedKey];
|
635
|
+
if (module)
|
636
|
+
return module;
|
637
|
+
|
638
|
+
load = state.records[resolvedKey];
|
639
|
+
|
640
|
+
// already has a module value but not already in the registry (load.module)
|
641
|
+
// means it was removed by registry.delete, so we should
|
642
|
+
// disgard the current load record creating a new one over it
|
643
|
+
// but keep any existing registration
|
644
|
+
if (!load || load.module)
|
645
|
+
load = createLoadRecord(state, resolvedKey, load && load.registration);
|
646
|
+
|
647
|
+
if (load.loadError)
|
648
|
+
return Promise.reject(load.loadError);
|
649
|
+
|
650
|
+
var link = load.linkRecord;
|
651
|
+
if (!link)
|
652
|
+
return load;
|
653
|
+
|
654
|
+
return instantiate(loader, load, link, registry, state);
|
655
|
+
});
|
656
|
+
}
|
657
|
+
|
658
|
+
function createProcessAnonRegister (loader, load, state) {
|
659
|
+
return function () {
|
660
|
+
var lastRegister = state.lastRegister;
|
661
|
+
|
662
|
+
if (!lastRegister)
|
663
|
+
return !!load.registration;
|
664
|
+
|
665
|
+
state.lastRegister = undefined;
|
666
|
+
load.registration = lastRegister;
|
667
|
+
|
668
|
+
return true;
|
669
|
+
};
|
670
|
+
}
|
671
|
+
|
672
|
+
function instantiate (loader, load, link, registry, state) {
|
673
|
+
return link.instantiatePromise || (link.instantiatePromise =
|
674
|
+
// if there is already an existing registration, skip running instantiate
|
675
|
+
(load.registration ? Promise.resolve() : Promise.resolve().then(function () {
|
676
|
+
state.lastRegister = undefined;
|
677
|
+
return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));
|
678
|
+
}))
|
679
|
+
.then(function (instantiation) {
|
680
|
+
// direct module return from instantiate -> we're done
|
681
|
+
if (instantiation !== undefined) {
|
682
|
+
if (!(instantiation instanceof ModuleNamespace))
|
683
|
+
throw new TypeError('Instantiate did not return a valid Module object.');
|
684
|
+
|
685
|
+
delete state.records[load.key];
|
686
|
+
if (loader.trace)
|
687
|
+
traceLoad(loader, load, link);
|
688
|
+
return registry[load.key] = instantiation;
|
689
|
+
}
|
690
|
+
|
691
|
+
// run the cached loader.register declaration if there is one
|
692
|
+
var registration = load.registration;
|
693
|
+
// clear to allow new registrations for future loads (combined with registry delete)
|
694
|
+
load.registration = undefined;
|
695
|
+
if (!registration)
|
696
|
+
throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');
|
697
|
+
|
698
|
+
link.dependencies = registration[0];
|
699
|
+
|
700
|
+
load.importerSetters = [];
|
701
|
+
|
702
|
+
link.moduleObj = {};
|
703
|
+
|
704
|
+
// process System.registerDynamic declaration
|
705
|
+
if (registration[2]) {
|
706
|
+
link.moduleObj.default = link.moduleObj.__useDefault = {};
|
707
|
+
link.executingRequire = registration[1];
|
708
|
+
link.execute = registration[2];
|
709
|
+
}
|
710
|
+
|
711
|
+
// process System.register declaration
|
712
|
+
else {
|
713
|
+
registerDeclarative(loader, load, link, registration[1]);
|
714
|
+
}
|
715
|
+
|
716
|
+
return load;
|
717
|
+
})
|
718
|
+
.catch(function (err) {
|
719
|
+
load.linkRecord = undefined;
|
720
|
+
throw load.loadError = load.loadError || LoaderError__Check_error_message_for_loader_stack(err, 'Instantiating ' + load.key);
|
721
|
+
}));
|
722
|
+
}
|
723
|
+
|
724
|
+
// like resolveInstantiate, but returning load records for linking
|
725
|
+
function resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {
|
726
|
+
// normalization shortpaths for already-normalized key
|
727
|
+
// DISABLED to prioritise consistent resolver calls
|
728
|
+
// could add a plain name filter, but doesn't yet seem necessary for perf
|
729
|
+
/* var load = state.records[key];
|
730
|
+
var module = registry[key];
|
731
|
+
|
732
|
+
if (module) {
|
733
|
+
if (traceDepMap)
|
734
|
+
traceDepMap[key] = key;
|
735
|
+
|
736
|
+
// registry authority check in case module was deleted or replaced in main registry
|
737
|
+
if (load && load.module && load.module === module)
|
738
|
+
return load;
|
739
|
+
else
|
740
|
+
return module;
|
741
|
+
}
|
742
|
+
|
743
|
+
// already linked but not in main registry is ignored
|
744
|
+
if (load && !load.module) {
|
745
|
+
if (traceDepMap)
|
746
|
+
traceDepMap[key] = key;
|
747
|
+
return instantiate(loader, load, load.linkRecord, registry, state);
|
748
|
+
} */
|
749
|
+
return loader.resolve(key, parentKey)
|
750
|
+
.then(function (resolvedKey) {
|
751
|
+
if (traceDepMap)
|
752
|
+
traceDepMap[key] = resolvedKey;
|
753
|
+
|
754
|
+
// normalization shortpaths for already-normalized key
|
755
|
+
var load = state.records[resolvedKey];
|
756
|
+
var module = registry[resolvedKey];
|
757
|
+
|
758
|
+
// main loader registry always takes preference
|
759
|
+
if (module && (!load || load.module && module !== load.module))
|
760
|
+
return module;
|
761
|
+
|
762
|
+
if (load && load.loadError)
|
763
|
+
throw load.loadError;
|
764
|
+
|
765
|
+
// already has a module value but not already in the registry (load.module)
|
766
|
+
// means it was removed by registry.delete, so we should
|
767
|
+
// disgard the current load record creating a new one over it
|
768
|
+
// but keep any existing registration
|
769
|
+
if (!load || !module && load.module)
|
770
|
+
load = createLoadRecord(state, resolvedKey, load && load.registration);
|
771
|
+
|
772
|
+
var link = load.linkRecord;
|
773
|
+
if (!link)
|
774
|
+
return load;
|
775
|
+
|
776
|
+
return instantiate(loader, load, link, registry, state);
|
777
|
+
});
|
778
|
+
}
|
779
|
+
|
780
|
+
function traceLoad (loader, load, link) {
|
781
|
+
loader.loads = loader.loads || {};
|
782
|
+
loader.loads[load.key] = {
|
783
|
+
key: load.key,
|
784
|
+
deps: link.dependencies,
|
785
|
+
dynamicDeps: [],
|
786
|
+
depMap: link.depMap || {}
|
787
|
+
};
|
788
|
+
}
|
789
|
+
|
790
|
+
/*
|
791
|
+
* Convert a CJS module.exports into a valid object for new Module:
|
792
|
+
*
|
793
|
+
* new Module(getEsModule(module.exports))
|
794
|
+
*
|
795
|
+
* Sets the default value to the module, while also reading off named exports carefully.
|
796
|
+
*/
|
797
|
+
function registerDeclarative (loader, load, link, declare) {
|
798
|
+
var moduleObj = link.moduleObj;
|
799
|
+
var importerSetters = load.importerSetters;
|
800
|
+
|
801
|
+
var definedExports = false;
|
802
|
+
|
803
|
+
// closure especially not based on link to allow link record disposal
|
804
|
+
var declared = declare.call(envGlobal, function (name, value) {
|
805
|
+
if (typeof name === 'object') {
|
806
|
+
var changed = false;
|
807
|
+
for (var p in name) {
|
808
|
+
value = name[p];
|
809
|
+
if (p !== '__useDefault' && (!(p in moduleObj) || moduleObj[p] !== value)) {
|
810
|
+
changed = true;
|
811
|
+
moduleObj[p] = value;
|
812
|
+
}
|
813
|
+
}
|
814
|
+
if (changed === false)
|
815
|
+
return value;
|
816
|
+
}
|
817
|
+
else {
|
818
|
+
if ((definedExports || name in moduleObj) && moduleObj[name] === value)
|
819
|
+
return value;
|
820
|
+
moduleObj[name] = value;
|
821
|
+
}
|
822
|
+
|
823
|
+
for (var i = 0; i < importerSetters.length; i++)
|
824
|
+
importerSetters[i](moduleObj);
|
825
|
+
|
826
|
+
return value;
|
827
|
+
}, new ContextualLoader(loader, load.key));
|
828
|
+
|
829
|
+
link.setters = declared.setters;
|
830
|
+
link.execute = declared.execute;
|
831
|
+
if (declared.exports) {
|
832
|
+
link.moduleObj = moduleObj = declared.exports;
|
833
|
+
definedExports = true;
|
834
|
+
}
|
835
|
+
}
|
836
|
+
|
837
|
+
function instantiateDeps (loader, load, link, registry, state) {
|
838
|
+
if (link.depsInstantiatePromise)
|
839
|
+
return link.depsInstantiatePromise;
|
840
|
+
|
841
|
+
var depsInstantiatePromises = Array(link.dependencies.length);
|
842
|
+
|
843
|
+
for (var i = 0; i < link.dependencies.length; i++)
|
844
|
+
depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && link.depMap || (link.depMap = {}));
|
845
|
+
|
846
|
+
var depsInstantiatePromise = Promise.all(depsInstantiatePromises)
|
847
|
+
.then(function (dependencyInstantiations) {
|
848
|
+
link.dependencyInstantiations = dependencyInstantiations;
|
849
|
+
|
850
|
+
// run setters to set up bindings to instantiated dependencies
|
851
|
+
if (link.setters) {
|
852
|
+
for (var i = 0; i < dependencyInstantiations.length; i++) {
|
853
|
+
var setter = link.setters[i];
|
854
|
+
if (setter) {
|
855
|
+
var instantiation = dependencyInstantiations[i];
|
856
|
+
|
857
|
+
if (instantiation instanceof ModuleNamespace) {
|
858
|
+
setter(instantiation);
|
859
|
+
}
|
860
|
+
else {
|
861
|
+
if (instantiation.loadError)
|
862
|
+
throw instantiation.loadError;
|
863
|
+
setter(instantiation.module || instantiation.linkRecord.moduleObj);
|
864
|
+
// this applies to both es and dynamic registrations
|
865
|
+
if (instantiation.importerSetters)
|
866
|
+
instantiation.importerSetters.push(setter);
|
867
|
+
}
|
868
|
+
}
|
869
|
+
}
|
870
|
+
}
|
871
|
+
|
872
|
+
return load;
|
873
|
+
});
|
874
|
+
|
875
|
+
if (loader.trace)
|
876
|
+
depsInstantiatePromise = depsInstantiatePromise.then(function () {
|
877
|
+
traceLoad(loader, load, link);
|
878
|
+
return load;
|
879
|
+
});
|
880
|
+
|
881
|
+
depsInstantiatePromise = depsInstantiatePromise.catch(function (err) {
|
882
|
+
// throw up the instantiateDeps stack
|
883
|
+
link.depsInstantiatePromise = undefined;
|
884
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + load.key);
|
885
|
+
});
|
886
|
+
|
887
|
+
depsInstantiatePromise.catch(function () {});
|
888
|
+
|
889
|
+
return link.depsInstantiatePromise = depsInstantiatePromise;
|
890
|
+
}
|
891
|
+
|
892
|
+
function deepInstantiateDeps (loader, load, link, registry, state) {
|
893
|
+
return new Promise(function (resolve, reject) {
|
894
|
+
var seen = [];
|
895
|
+
var loadCnt = 0;
|
896
|
+
function queueLoad (load) {
|
897
|
+
var link = load.linkRecord;
|
898
|
+
if (!link)
|
899
|
+
return;
|
900
|
+
|
901
|
+
if (seen.indexOf(load) !== -1)
|
902
|
+
return;
|
903
|
+
seen.push(load);
|
904
|
+
|
905
|
+
loadCnt++;
|
906
|
+
instantiateDeps(loader, load, link, registry, state)
|
907
|
+
.then(processLoad, reject);
|
908
|
+
}
|
909
|
+
function processLoad (load) {
|
910
|
+
loadCnt--;
|
911
|
+
var link = load.linkRecord;
|
912
|
+
if (link) {
|
913
|
+
for (var i = 0; i < link.dependencies.length; i++) {
|
914
|
+
var depLoad = link.dependencyInstantiations[i];
|
915
|
+
if (!(depLoad instanceof ModuleNamespace))
|
916
|
+
queueLoad(depLoad);
|
917
|
+
}
|
918
|
+
}
|
919
|
+
if (loadCnt === 0)
|
920
|
+
resolve();
|
921
|
+
}
|
922
|
+
queueLoad(load);
|
923
|
+
});
|
924
|
+
}
|
925
|
+
|
926
|
+
/*
|
927
|
+
* System.register
|
928
|
+
*/
|
929
|
+
RegisterLoader$1.prototype.register = function (key, deps, declare) {
|
930
|
+
var state = this[REGISTER_INTERNAL];
|
931
|
+
|
932
|
+
// anonymous modules get stored as lastAnon
|
933
|
+
if (declare === undefined) {
|
934
|
+
state.lastRegister = [key, deps, undefined];
|
935
|
+
}
|
936
|
+
|
937
|
+
// everything else registers into the register cache
|
938
|
+
else {
|
939
|
+
var load = state.records[key] || createLoadRecord(state, key, undefined);
|
940
|
+
load.registration = [deps, declare, undefined];
|
941
|
+
}
|
942
|
+
};
|
943
|
+
|
944
|
+
/*
|
945
|
+
* System.registerDyanmic
|
946
|
+
*/
|
947
|
+
RegisterLoader$1.prototype.registerDynamic = function (key, deps, executingRequire, execute) {
|
948
|
+
var state = this[REGISTER_INTERNAL];
|
949
|
+
|
950
|
+
// anonymous modules get stored as lastAnon
|
951
|
+
if (typeof key !== 'string') {
|
952
|
+
state.lastRegister = [key, deps, executingRequire];
|
953
|
+
}
|
954
|
+
|
955
|
+
// everything else registers into the register cache
|
956
|
+
else {
|
957
|
+
var load = state.records[key] || createLoadRecord(state, key, undefined);
|
958
|
+
load.registration = [deps, executingRequire, execute];
|
959
|
+
}
|
960
|
+
};
|
961
|
+
|
962
|
+
// ContextualLoader class
|
963
|
+
// backwards-compatible with previous System.register context argument by exposing .id, .key
|
964
|
+
function ContextualLoader (loader, key) {
|
965
|
+
this.loader = loader;
|
966
|
+
this.key = this.id = key;
|
967
|
+
this.meta = {
|
968
|
+
url: key
|
969
|
+
// scriptElement: null
|
970
|
+
};
|
971
|
+
}
|
972
|
+
/*ContextualLoader.prototype.constructor = function () {
|
973
|
+
throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');
|
974
|
+
};*/
|
975
|
+
ContextualLoader.prototype.import = function (key) {
|
976
|
+
if (this.loader.trace)
|
977
|
+
this.loader.loads[this.key].dynamicDeps.push(key);
|
978
|
+
return this.loader.import(key, this.key);
|
979
|
+
};
|
980
|
+
/*ContextualLoader.prototype.resolve = function (key) {
|
981
|
+
return this.loader.resolve(key, this.key);
|
982
|
+
};*/
|
983
|
+
|
984
|
+
// this is the execution function bound to the Module namespace record
|
985
|
+
function ensureEvaluate (loader, load, link, registry, state, seen) {
|
986
|
+
if (load.module)
|
987
|
+
return load.module;
|
988
|
+
|
989
|
+
if (load.evalError)
|
990
|
+
throw load.evalError;
|
991
|
+
|
992
|
+
if (seen && seen.indexOf(load) !== -1)
|
993
|
+
return load.linkRecord.moduleObj;
|
994
|
+
|
995
|
+
// for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless
|
996
|
+
// for dynamic loads, we pass seen if also dynamic
|
997
|
+
var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);
|
998
|
+
if (err)
|
999
|
+
throw err;
|
1000
|
+
|
1001
|
+
return load.module;
|
1002
|
+
}
|
1003
|
+
|
1004
|
+
function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {
|
1005
|
+
// we can only require from already-known dependencies
|
1006
|
+
return function (name) {
|
1007
|
+
for (var i = 0; i < dependencies.length; i++) {
|
1008
|
+
if (dependencies[i] === name) {
|
1009
|
+
var depLoad = dependencyInstantiations[i];
|
1010
|
+
var module;
|
1011
|
+
|
1012
|
+
if (depLoad instanceof ModuleNamespace)
|
1013
|
+
module = depLoad;
|
1014
|
+
else
|
1015
|
+
module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);
|
1016
|
+
|
1017
|
+
return '__useDefault' in module ? module.__useDefault : module;
|
1018
|
+
}
|
1019
|
+
}
|
1020
|
+
throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);
|
1021
|
+
};
|
1022
|
+
}
|
1023
|
+
|
1024
|
+
// ensures the given es load is evaluated
|
1025
|
+
// returns the error if any
|
1026
|
+
function doEvaluate (loader, load, link, registry, state, seen) {
|
1027
|
+
seen.push(load);
|
1028
|
+
|
1029
|
+
var err;
|
1030
|
+
|
1031
|
+
// es modules evaluate dependencies first
|
1032
|
+
// non es modules explicitly call moduleEvaluate through require
|
1033
|
+
if (link.setters) {
|
1034
|
+
var depLoad, depLink;
|
1035
|
+
for (var i = 0; i < link.dependencies.length; i++) {
|
1036
|
+
depLoad = link.dependencyInstantiations[i];
|
1037
|
+
|
1038
|
+
if (depLoad instanceof ModuleNamespace)
|
1039
|
+
continue;
|
1040
|
+
|
1041
|
+
// custom Module returned from instantiate
|
1042
|
+
depLink = depLoad.linkRecord;
|
1043
|
+
if (depLink && seen.indexOf(depLoad) === -1) {
|
1044
|
+
if (depLoad.evalError)
|
1045
|
+
err = depLoad.evalError;
|
1046
|
+
else
|
1047
|
+
// dynamic / declarative boundaries clear the "seen" list
|
1048
|
+
// we just let cross format circular throw as would happen in real implementations
|
1049
|
+
err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);
|
1050
|
+
}
|
1051
|
+
|
1052
|
+
if (err) {
|
1053
|
+
load.linkRecord = undefined;
|
1054
|
+
load.evalError = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
|
1055
|
+
return load.evalError;
|
1056
|
+
}
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
|
1060
|
+
// link.execute won't exist for Module returns from instantiate on top-level load
|
1061
|
+
if (link.execute) {
|
1062
|
+
// ES System.register execute
|
1063
|
+
// "this" is null in ES
|
1064
|
+
if (link.setters) {
|
1065
|
+
err = declarativeExecute(link.execute);
|
1066
|
+
}
|
1067
|
+
// System.registerDynamic execute
|
1068
|
+
// "this" is "exports" in CJS
|
1069
|
+
else {
|
1070
|
+
var module = { id: load.key };
|
1071
|
+
var moduleObj = link.moduleObj;
|
1072
|
+
Object.defineProperty(module, 'exports', {
|
1073
|
+
configurable: true,
|
1074
|
+
set: function (exports) {
|
1075
|
+
moduleObj.default = moduleObj.__useDefault = exports;
|
1076
|
+
},
|
1077
|
+
get: function () {
|
1078
|
+
return moduleObj.__useDefault;
|
1079
|
+
}
|
1080
|
+
});
|
1081
|
+
|
1082
|
+
var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);
|
1083
|
+
|
1084
|
+
// evaluate deps first
|
1085
|
+
if (!link.executingRequire)
|
1086
|
+
for (var i = 0; i < link.dependencies.length; i++)
|
1087
|
+
require(link.dependencies[i]);
|
1088
|
+
|
1089
|
+
err = dynamicExecute(link.execute, require, moduleObj.default, module);
|
1090
|
+
|
1091
|
+
// pick up defineProperty calls to module.exports when we can
|
1092
|
+
if (module.exports !== moduleObj.__useDefault)
|
1093
|
+
moduleObj.default = moduleObj.__useDefault = module.exports;
|
1094
|
+
|
1095
|
+
var moduleDefault = moduleObj.default;
|
1096
|
+
|
1097
|
+
// __esModule flag extension support via lifting
|
1098
|
+
if (moduleDefault && moduleDefault.__esModule) {
|
1099
|
+
for (var p in moduleDefault) {
|
1100
|
+
if (Object.hasOwnProperty.call(moduleDefault, p))
|
1101
|
+
moduleObj[p] = moduleDefault[p];
|
1102
|
+
}
|
1103
|
+
}
|
1104
|
+
}
|
1105
|
+
}
|
1106
|
+
|
1107
|
+
// dispose link record
|
1108
|
+
load.linkRecord = undefined;
|
1109
|
+
|
1110
|
+
if (err)
|
1111
|
+
return load.evalError = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
|
1112
|
+
|
1113
|
+
registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);
|
1114
|
+
|
1115
|
+
// if not an esm module, run importer setters and clear them
|
1116
|
+
// this allows dynamic modules to update themselves into es modules
|
1117
|
+
// as soon as execution has completed
|
1118
|
+
if (!link.setters) {
|
1119
|
+
if (load.importerSetters)
|
1120
|
+
for (var i = 0; i < load.importerSetters.length; i++)
|
1121
|
+
load.importerSetters[i](load.module);
|
1122
|
+
load.importerSetters = undefined;
|
1123
|
+
}
|
1124
|
+
}
|
1125
|
+
|
1126
|
+
// {} is the closest we can get to call(undefined)
|
1127
|
+
var nullContext = {};
|
1128
|
+
if (Object.freeze)
|
1129
|
+
Object.freeze(nullContext);
|
1130
|
+
|
1131
|
+
function declarativeExecute (execute) {
|
1132
|
+
try {
|
1133
|
+
execute.call(nullContext);
|
1134
|
+
}
|
1135
|
+
catch (e) {
|
1136
|
+
return e;
|
1137
|
+
}
|
1138
|
+
}
|
1139
|
+
|
1140
|
+
function dynamicExecute (execute, require, exports, module) {
|
1141
|
+
try {
|
1142
|
+
var output = execute.call(envGlobal, require, exports, module);
|
1143
|
+
if (output !== undefined)
|
1144
|
+
module.exports = output;
|
1145
|
+
}
|
1146
|
+
catch (e) {
|
1147
|
+
return e;
|
1148
|
+
}
|
1149
|
+
}
|
1150
|
+
|
1151
|
+
var resolvedPromise = Promise.resolve();
|
1152
|
+
function noop () {}
|
1153
|
+
|
1154
|
+
var emptyModule = new ModuleNamespace({});
|
1155
|
+
|
1156
|
+
function protectedCreateNamespace (bindings) {
|
1157
|
+
if (bindings instanceof ModuleNamespace)
|
1158
|
+
return bindings;
|
1159
|
+
|
1160
|
+
if (bindings && bindings.__esModule)
|
1161
|
+
return new ModuleNamespace(bindings);
|
1162
|
+
|
1163
|
+
return new ModuleNamespace({ default: bindings, __useDefault: bindings });
|
1164
|
+
}
|
1165
|
+
|
1166
|
+
var hasStringTag;
|
1167
|
+
function isModule (m) {
|
1168
|
+
if (hasStringTag === undefined)
|
1169
|
+
hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;
|
1170
|
+
return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';
|
1171
|
+
}
|
1172
|
+
|
1173
|
+
var CONFIG = createSymbol('loader-config');
|
1174
|
+
var METADATA = createSymbol('metadata');
|
1175
|
+
|
1176
|
+
|
1177
|
+
|
1178
|
+
var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';
|
1179
|
+
|
1180
|
+
function warn (msg, force) {
|
1181
|
+
if (force || this.warnings && typeof console !== 'undefined' && console.warn)
|
1182
|
+
console.warn(msg);
|
1183
|
+
}
|
1184
|
+
|
1185
|
+
function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {
|
1186
|
+
var bytes = new Uint8Array(wasmBuffer);
|
1187
|
+
|
1188
|
+
// detect by leading bytes
|
1189
|
+
// Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node
|
1190
|
+
if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {
|
1191
|
+
return WebAssembly.compile(wasmBuffer).then(function (m) {
|
1192
|
+
var deps = [];
|
1193
|
+
var setters = [];
|
1194
|
+
var importObj = {};
|
1195
|
+
|
1196
|
+
// we can only set imports if supported (eg Safari doesnt support)
|
1197
|
+
if (WebAssembly.Module.imports)
|
1198
|
+
WebAssembly.Module.imports(m).forEach(function (i) {
|
1199
|
+
var key = i.module;
|
1200
|
+
setters.push(function (m) {
|
1201
|
+
importObj[key] = m;
|
1202
|
+
});
|
1203
|
+
if (deps.indexOf(key) === -1)
|
1204
|
+
deps.push(key);
|
1205
|
+
});
|
1206
|
+
loader.register(deps, function (_export) {
|
1207
|
+
return {
|
1208
|
+
setters: setters,
|
1209
|
+
execute: function () {
|
1210
|
+
_export(new WebAssembly.Instance(m, importObj).exports);
|
1211
|
+
}
|
1212
|
+
};
|
1213
|
+
});
|
1214
|
+
processAnonRegister();
|
1215
|
+
|
1216
|
+
return true;
|
1217
|
+
});
|
1218
|
+
}
|
1219
|
+
|
1220
|
+
return Promise.resolve(false);
|
1221
|
+
}
|
1222
|
+
|
1223
|
+
var parentModuleContext;
|
1224
|
+
function loadNodeModule (key, baseURL) {
|
1225
|
+
if (key[0] === '.')
|
1226
|
+
throw new Error('Node module ' + key + ' can\'t be loaded as it is not a package require.');
|
1227
|
+
|
1228
|
+
if (!parentModuleContext) {
|
1229
|
+
var Module = this._nodeRequire('module');
|
1230
|
+
var base = decodeURI(baseURL.substr(isWindows ? 8 : 7));
|
1231
|
+
parentModuleContext = new Module(base);
|
1232
|
+
parentModuleContext.paths = Module._nodeModulePaths(base);
|
1233
|
+
}
|
1234
|
+
return parentModuleContext.require(key);
|
1235
|
+
}
|
1236
|
+
|
1237
|
+
function extend (a, b) {
|
1238
|
+
for (var p in b) {
|
1239
|
+
if (!Object.hasOwnProperty.call(b, p))
|
1240
|
+
continue;
|
1241
|
+
a[p] = b[p];
|
1242
|
+
}
|
1243
|
+
return a;
|
1244
|
+
}
|
1245
|
+
|
1246
|
+
function prepend (a, b) {
|
1247
|
+
for (var p in b) {
|
1248
|
+
if (!Object.hasOwnProperty.call(b, p))
|
1249
|
+
continue;
|
1250
|
+
if (a[p] === undefined)
|
1251
|
+
a[p] = b[p];
|
1252
|
+
}
|
1253
|
+
return a;
|
1254
|
+
}
|
1255
|
+
|
1256
|
+
// meta first-level extends where:
|
1257
|
+
// array + array appends
|
1258
|
+
// object + object extends
|
1259
|
+
// other properties replace
|
1260
|
+
function extendMeta (a, b, _prepend) {
|
1261
|
+
for (var p in b) {
|
1262
|
+
if (!Object.hasOwnProperty.call(b, p))
|
1263
|
+
continue;
|
1264
|
+
var val = b[p];
|
1265
|
+
if (a[p] === undefined)
|
1266
|
+
a[p] = val;
|
1267
|
+
else if (val instanceof Array && a[p] instanceof Array)
|
1268
|
+
a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);
|
1269
|
+
else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')
|
1270
|
+
a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);
|
1271
|
+
else if (!_prepend)
|
1272
|
+
a[p] = val;
|
1273
|
+
}
|
1274
|
+
}
|
1275
|
+
|
1276
|
+
var supportsPreload = false;
|
1277
|
+
var supportsPrefetch = false;
|
1278
|
+
if (isBrowser)
|
1279
|
+
(function () {
|
1280
|
+
var relList = document.createElement('link').relList;
|
1281
|
+
if (relList && relList.supports) {
|
1282
|
+
supportsPrefetch = true;
|
1283
|
+
try {
|
1284
|
+
supportsPreload = relList.supports('preload');
|
1285
|
+
}
|
1286
|
+
catch (e) {}
|
1287
|
+
}
|
1288
|
+
})();
|
1289
|
+
|
1290
|
+
function preloadScript (url) {
|
1291
|
+
// fallback to old fashioned image technique which still works in safari
|
1292
|
+
if (!supportsPreload && !supportsPrefetch) {
|
1293
|
+
var preloadImage = new Image();
|
1294
|
+
preloadImage.src = url;
|
1295
|
+
return;
|
1296
|
+
}
|
1297
|
+
|
1298
|
+
var link = document.createElement('link');
|
1299
|
+
if (supportsPreload) {
|
1300
|
+
link.rel = 'preload';
|
1301
|
+
link.as = 'script';
|
1302
|
+
}
|
1303
|
+
else {
|
1304
|
+
// this works for all except Safari (detected by relList.supports lacking)
|
1305
|
+
link.rel = 'prefetch';
|
1306
|
+
}
|
1307
|
+
link.href = url;
|
1308
|
+
document.head.appendChild(link);
|
1309
|
+
}
|
1310
|
+
|
1311
|
+
function workerImport (src, resolve, reject) {
|
1312
|
+
try {
|
1313
|
+
importScripts(src);
|
1314
|
+
}
|
1315
|
+
catch (e) {
|
1316
|
+
reject(e);
|
1317
|
+
}
|
1318
|
+
resolve();
|
1319
|
+
}
|
1320
|
+
|
1321
|
+
if (isBrowser) {
|
1322
|
+
var loadingScripts = [];
|
1323
|
+
var onerror = window.onerror;
|
1324
|
+
window.onerror = function globalOnerror (msg, src) {
|
1325
|
+
for (var i = 0; i < loadingScripts.length; i++) {
|
1326
|
+
if (loadingScripts[i].src !== src)
|
1327
|
+
continue;
|
1328
|
+
loadingScripts[i].err(msg);
|
1329
|
+
return;
|
1330
|
+
}
|
1331
|
+
if (onerror)
|
1332
|
+
onerror.apply(this, arguments);
|
1333
|
+
};
|
1334
|
+
}
|
1335
|
+
|
1336
|
+
function scriptLoad (src, crossOrigin, integrity, resolve, reject) {
|
1337
|
+
// percent encode just "#" for HTTP requests
|
1338
|
+
src = src.replace(/#/g, '%23');
|
1339
|
+
|
1340
|
+
// subresource integrity is not supported in web workers
|
1341
|
+
if (isWorker)
|
1342
|
+
return workerImport(src, resolve, reject);
|
1343
|
+
|
1344
|
+
var script = document.createElement('script');
|
1345
|
+
script.type = 'text/javascript';
|
1346
|
+
script.charset = 'utf-8';
|
1347
|
+
script.async = true;
|
1348
|
+
|
1349
|
+
if (crossOrigin)
|
1350
|
+
script.crossOrigin = crossOrigin;
|
1351
|
+
if (integrity)
|
1352
|
+
script.integrity = integrity;
|
1353
|
+
|
1354
|
+
script.addEventListener('load', load, false);
|
1355
|
+
script.addEventListener('error', error, false);
|
1356
|
+
|
1357
|
+
script.src = src;
|
1358
|
+
document.head.appendChild(script);
|
1359
|
+
|
1360
|
+
function load () {
|
1361
|
+
resolve();
|
1362
|
+
cleanup();
|
1363
|
+
}
|
1364
|
+
|
1365
|
+
// note this does not catch execution errors
|
1366
|
+
function error (err) {
|
1367
|
+
cleanup();
|
1368
|
+
reject(new Error('Fetching ' + src));
|
1369
|
+
}
|
1370
|
+
|
1371
|
+
function cleanup () {
|
1372
|
+
for (var i = 0; i < loadingScripts.length; i++) {
|
1373
|
+
if (loadingScripts[i].err === error) {
|
1374
|
+
loadingScripts.splice(i, 1);
|
1375
|
+
break;
|
1376
|
+
}
|
1377
|
+
}
|
1378
|
+
script.removeEventListener('load', load, false);
|
1379
|
+
script.removeEventListener('error', error, false);
|
1380
|
+
document.head.removeChild(script);
|
1381
|
+
}
|
1382
|
+
}
|
1383
|
+
|
1384
|
+
function readMemberExpression (p, value) {
|
1385
|
+
var pParts = p.split('.');
|
1386
|
+
while (pParts.length)
|
1387
|
+
value = value[pParts.shift()];
|
1388
|
+
return value;
|
1389
|
+
}
|
1390
|
+
|
1391
|
+
// separate out paths cache as a baseURL lock process
|
1392
|
+
function applyPaths (baseURL, paths, key) {
|
1393
|
+
var mapMatch = getMapMatch(paths, key);
|
1394
|
+
if (mapMatch) {
|
1395
|
+
var target = paths[mapMatch] + key.substr(mapMatch.length);
|
1396
|
+
|
1397
|
+
var resolved = resolveIfNotPlain(target, baseURI);
|
1398
|
+
if (resolved !== undefined)
|
1399
|
+
return resolved;
|
1400
|
+
|
1401
|
+
return baseURL + target;
|
1402
|
+
}
|
1403
|
+
else if (key.indexOf(':') !== -1) {
|
1404
|
+
return key;
|
1405
|
+
}
|
1406
|
+
else {
|
1407
|
+
return baseURL + key;
|
1408
|
+
}
|
1409
|
+
}
|
1410
|
+
|
1411
|
+
function checkMap (p) {
|
1412
|
+
var name = this.name;
|
1413
|
+
// can add ':' here if we want paths to match the behaviour of map
|
1414
|
+
if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {
|
1415
|
+
var curLen = p.split('/').length;
|
1416
|
+
if (curLen > this.len) {
|
1417
|
+
this.match = p;
|
1418
|
+
this.len = curLen;
|
1419
|
+
}
|
1420
|
+
}
|
1421
|
+
}
|
1422
|
+
|
1423
|
+
function getMapMatch (map, name) {
|
1424
|
+
if (Object.hasOwnProperty.call(map, name))
|
1425
|
+
return name;
|
1426
|
+
|
1427
|
+
var bestMatch = {
|
1428
|
+
name: name,
|
1429
|
+
match: undefined,
|
1430
|
+
len: 0
|
1431
|
+
};
|
1432
|
+
|
1433
|
+
Object.keys(map).forEach(checkMap, bestMatch);
|
1434
|
+
|
1435
|
+
return bestMatch.match;
|
1436
|
+
}
|
1437
|
+
|
1438
|
+
// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339
|
1439
|
+
var cjsRequireRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*'|`[^`\\]*(?:\\.[^`\\]*)*`)\s*\)/g;
|
1440
|
+
|
1441
|
+
/*
|
1442
|
+
* Source loading
|
1443
|
+
*/
|
1444
|
+
function fetchFetch (url, authorization, integrity, asBuffer) {
|
1445
|
+
// fetch doesn't support file:/// urls
|
1446
|
+
if (url.substr(0, 8) === 'file:///') {
|
1447
|
+
if (hasXhr)
|
1448
|
+
return xhrFetch(url, authorization, integrity, asBuffer);
|
1449
|
+
else
|
1450
|
+
throw new Error('Unable to fetch file URLs in this environment.');
|
1451
|
+
}
|
1452
|
+
|
1453
|
+
// percent encode just "#" for HTTP requests
|
1454
|
+
url = url.replace(/#/g, '%23');
|
1455
|
+
|
1456
|
+
var opts = {
|
1457
|
+
// NB deprecate
|
1458
|
+
headers: { Accept: 'application/x-es-module, */*' }
|
1459
|
+
};
|
1460
|
+
|
1461
|
+
if (integrity)
|
1462
|
+
opts.integrity = integrity;
|
1463
|
+
|
1464
|
+
if (authorization) {
|
1465
|
+
if (typeof authorization == 'string')
|
1466
|
+
opts.headers['Authorization'] = authorization;
|
1467
|
+
opts.credentials = 'include';
|
1468
|
+
}
|
1469
|
+
|
1470
|
+
return fetch(url, opts)
|
1471
|
+
.then(function(res) {
|
1472
|
+
if (res.ok)
|
1473
|
+
return asBuffer ? res.arrayBuffer() : res.text();
|
1474
|
+
else
|
1475
|
+
throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);
|
1476
|
+
});
|
1477
|
+
}
|
1478
|
+
|
1479
|
+
function xhrFetch (url, authorization, integrity, asBuffer) {
|
1480
|
+
return new Promise(function (resolve, reject) {
|
1481
|
+
// percent encode just "#" for HTTP requests
|
1482
|
+
url = url.replace(/#/g, '%23');
|
1483
|
+
|
1484
|
+
var xhr = new XMLHttpRequest();
|
1485
|
+
if (asBuffer)
|
1486
|
+
xhr.responseType = 'arraybuffer';
|
1487
|
+
function load() {
|
1488
|
+
resolve(asBuffer ? xhr.response : xhr.responseText);
|
1489
|
+
}
|
1490
|
+
function error() {
|
1491
|
+
reject(new Error('XHR error: ' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));
|
1492
|
+
}
|
1493
|
+
|
1494
|
+
xhr.onreadystatechange = function () {
|
1495
|
+
if (xhr.readyState === 4) {
|
1496
|
+
// in Chrome on file:/// URLs, status is 0
|
1497
|
+
if (xhr.status == 0) {
|
1498
|
+
if (xhr.response) {
|
1499
|
+
load();
|
1500
|
+
}
|
1501
|
+
else {
|
1502
|
+
// when responseText is empty, wait for load or error event
|
1503
|
+
// to inform if it is a 404 or empty file
|
1504
|
+
xhr.addEventListener('error', error);
|
1505
|
+
xhr.addEventListener('load', load);
|
1506
|
+
}
|
1507
|
+
}
|
1508
|
+
else if (xhr.status === 200) {
|
1509
|
+
load();
|
1510
|
+
}
|
1511
|
+
else {
|
1512
|
+
error();
|
1513
|
+
}
|
1514
|
+
}
|
1515
|
+
};
|
1516
|
+
xhr.open("GET", url, true);
|
1517
|
+
|
1518
|
+
if (xhr.setRequestHeader) {
|
1519
|
+
xhr.setRequestHeader('Accept', 'application/x-es-module, */*');
|
1520
|
+
// can set "authorization: true" to enable withCredentials only
|
1521
|
+
if (authorization) {
|
1522
|
+
if (typeof authorization == 'string')
|
1523
|
+
xhr.setRequestHeader('Authorization', authorization);
|
1524
|
+
xhr.withCredentials = true;
|
1525
|
+
}
|
1526
|
+
}
|
1527
|
+
|
1528
|
+
xhr.send(null);
|
1529
|
+
});
|
1530
|
+
}
|
1531
|
+
|
1532
|
+
var fs;
|
1533
|
+
function nodeFetch (url, authorization, integrity, asBuffer) {
|
1534
|
+
if (url.substr(0, 8) != 'file:///')
|
1535
|
+
return Promise.reject(new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// supported running in Node.'));
|
1536
|
+
|
1537
|
+
fs = fs || require('fs');
|
1538
|
+
if (isWindows)
|
1539
|
+
url = url.replace(/\//g, '\\').substr(8);
|
1540
|
+
else
|
1541
|
+
url = url.substr(7);
|
1542
|
+
|
1543
|
+
return new Promise(function (resolve, reject) {
|
1544
|
+
fs.readFile(url, function(err, data) {
|
1545
|
+
if (err) {
|
1546
|
+
return reject(err);
|
1547
|
+
}
|
1548
|
+
else {
|
1549
|
+
if (asBuffer) {
|
1550
|
+
resolve(data);
|
1551
|
+
}
|
1552
|
+
else {
|
1553
|
+
// Strip Byte Order Mark out if it's the leading char
|
1554
|
+
var dataString = data + '';
|
1555
|
+
if (dataString[0] === '\ufeff')
|
1556
|
+
dataString = dataString.substr(1);
|
1557
|
+
|
1558
|
+
resolve(dataString);
|
1559
|
+
}
|
1560
|
+
}
|
1561
|
+
});
|
1562
|
+
});
|
1563
|
+
}
|
1564
|
+
|
1565
|
+
function noFetch () {
|
1566
|
+
throw new Error('No fetch method is defined for this environment.');
|
1567
|
+
}
|
1568
|
+
|
1569
|
+
var fetchFunction;
|
1570
|
+
|
1571
|
+
var hasXhr = typeof XMLHttpRequest !== 'undefined';
|
1572
|
+
|
1573
|
+
if (typeof self !== 'undefined' && typeof self.fetch !== 'undefined')
|
1574
|
+
fetchFunction = fetchFetch;
|
1575
|
+
else if (hasXhr)
|
1576
|
+
fetchFunction = xhrFetch;
|
1577
|
+
else if (typeof require !== 'undefined' && typeof process !== 'undefined')
|
1578
|
+
fetchFunction = nodeFetch;
|
1579
|
+
else
|
1580
|
+
fetchFunction = noFetch;
|
1581
|
+
|
1582
|
+
var fetch$1 = fetchFunction;
|
1583
|
+
|
1584
|
+
function createMetadata () {
|
1585
|
+
return {
|
1586
|
+
pluginKey: undefined,
|
1587
|
+
pluginArgument: undefined,
|
1588
|
+
pluginModule: undefined,
|
1589
|
+
packageKey: undefined,
|
1590
|
+
packageConfig: undefined,
|
1591
|
+
load: undefined
|
1592
|
+
};
|
1593
|
+
}
|
1594
|
+
|
1595
|
+
function getParentMetadata (loader, config, parentKey) {
|
1596
|
+
var parentMetadata = createMetadata();
|
1597
|
+
|
1598
|
+
if (parentKey) {
|
1599
|
+
// detect parent plugin
|
1600
|
+
// we just need pluginKey to be truthy for package configurations
|
1601
|
+
// so we duplicate it as pluginArgument - although not correct its not used
|
1602
|
+
var parentPluginIndex;
|
1603
|
+
if (config.pluginFirst) {
|
1604
|
+
if ((parentPluginIndex = parentKey.lastIndexOf('!')) !== -1)
|
1605
|
+
parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(0, parentPluginIndex);
|
1606
|
+
}
|
1607
|
+
else {
|
1608
|
+
if ((parentPluginIndex = parentKey.indexOf('!')) !== -1)
|
1609
|
+
parentMetadata.pluginArgument = parentMetadata.pluginKey = parentKey.substr(parentPluginIndex + 1);
|
1610
|
+
}
|
1611
|
+
|
1612
|
+
// detect parent package
|
1613
|
+
parentMetadata.packageKey = getMapMatch(config.packages, parentKey);
|
1614
|
+
if (parentMetadata.packageKey)
|
1615
|
+
parentMetadata.packageConfig = config.packages[parentMetadata.packageKey];
|
1616
|
+
}
|
1617
|
+
|
1618
|
+
return parentMetadata;
|
1619
|
+
}
|
1620
|
+
|
1621
|
+
function normalize (key, parentKey) {
|
1622
|
+
var config = this[CONFIG];
|
1623
|
+
|
1624
|
+
var metadata = createMetadata();
|
1625
|
+
var parentMetadata = getParentMetadata(this, config, parentKey);
|
1626
|
+
|
1627
|
+
var loader = this;
|
1628
|
+
|
1629
|
+
return Promise.resolve()
|
1630
|
+
|
1631
|
+
// boolean conditional
|
1632
|
+
.then(function () {
|
1633
|
+
// first we normalize the conditional
|
1634
|
+
var booleanIndex = key.lastIndexOf('#?');
|
1635
|
+
|
1636
|
+
if (booleanIndex === -1)
|
1637
|
+
return Promise.resolve(key);
|
1638
|
+
|
1639
|
+
var conditionObj = parseCondition.call(loader, key.substr(booleanIndex + 2));
|
1640
|
+
|
1641
|
+
// in builds, return normalized conditional
|
1642
|
+
/*if (this.builder)
|
1643
|
+
return this.resolve(conditionObj.module, parentKey)
|
1644
|
+
.then(function (conditionModule) {
|
1645
|
+
conditionObj.module = conditionModule;
|
1646
|
+
return key.substr(0, booleanIndex) + '#?' + serializeCondition(conditionObj);
|
1647
|
+
});*/
|
1648
|
+
|
1649
|
+
return resolveCondition.call(loader, conditionObj, parentKey, true)
|
1650
|
+
.then(function (conditionValue) {
|
1651
|
+
return conditionValue ? key.substr(0, booleanIndex) : '@empty';
|
1652
|
+
});
|
1653
|
+
})
|
1654
|
+
|
1655
|
+
// plugin
|
1656
|
+
.then(function (key) {
|
1657
|
+
var parsed = parsePlugin(config.pluginFirst, key);
|
1658
|
+
|
1659
|
+
if (!parsed)
|
1660
|
+
return packageResolve.call(loader, config, key, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, false);
|
1661
|
+
|
1662
|
+
metadata.pluginKey = parsed.plugin;
|
1663
|
+
|
1664
|
+
return Promise.all([
|
1665
|
+
packageResolve.call(loader, config, parsed.argument, parentMetadata && parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, true),
|
1666
|
+
loader.resolve(parsed.plugin, parentKey)
|
1667
|
+
])
|
1668
|
+
.then(function (normalized) {
|
1669
|
+
metadata.pluginArgument = normalized[0];
|
1670
|
+
metadata.pluginKey = normalized[1];
|
1671
|
+
|
1672
|
+
// don't allow a plugin to load itself
|
1673
|
+
if (metadata.pluginArgument === metadata.pluginKey)
|
1674
|
+
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.');
|
1675
|
+
|
1676
|
+
return combinePluginParts(config.pluginFirst, normalized[0], normalized[1]);
|
1677
|
+
});
|
1678
|
+
})
|
1679
|
+
.then(function (normalized) {
|
1680
|
+
return interpolateConditional.call(loader, normalized, parentKey, parentMetadata);
|
1681
|
+
})
|
1682
|
+
.then(function (normalized) {
|
1683
|
+
setMeta.call(loader, config, normalized, metadata);
|
1684
|
+
|
1685
|
+
if (metadata.pluginKey || !metadata.load.loader)
|
1686
|
+
return normalized;
|
1687
|
+
|
1688
|
+
// loader by configuration
|
1689
|
+
// normalizes to parent to support package loaders
|
1690
|
+
return loader.resolve(metadata.load.loader, normalized)
|
1691
|
+
.then(function (pluginKey) {
|
1692
|
+
metadata.pluginKey = pluginKey;
|
1693
|
+
metadata.pluginArgument = normalized;
|
1694
|
+
return normalized;
|
1695
|
+
});
|
1696
|
+
})
|
1697
|
+
.then(function (normalized) {
|
1698
|
+
loader[METADATA][normalized] = metadata;
|
1699
|
+
return normalized;
|
1700
|
+
});
|
1701
|
+
}
|
1702
|
+
|
1703
|
+
// normalization function used for registry keys
|
1704
|
+
// just does coreResolve without map
|
1705
|
+
function decanonicalize (config, key) {
|
1706
|
+
var parsed = parsePlugin(config.pluginFirst, key);
|
1707
|
+
|
1708
|
+
// plugin
|
1709
|
+
if (parsed) {
|
1710
|
+
var pluginKey = decanonicalize.call(this, config, parsed.plugin);
|
1711
|
+
return combinePluginParts(config.pluginFirst, coreResolve.call(this, config, parsed.argument, undefined, false, false), pluginKey);
|
1712
|
+
}
|
1713
|
+
|
1714
|
+
return coreResolve.call(this, config, key, undefined, false, false);
|
1715
|
+
}
|
1716
|
+
|
1717
|
+
function normalizeSync (key, parentKey) {
|
1718
|
+
var config = this[CONFIG];
|
1719
|
+
|
1720
|
+
// normalizeSync is metadataless, so create metadata
|
1721
|
+
var metadata = createMetadata();
|
1722
|
+
var parentMetadata = parentMetadata || getParentMetadata(this, config, parentKey);
|
1723
|
+
|
1724
|
+
var parsed = parsePlugin(config.pluginFirst, key);
|
1725
|
+
|
1726
|
+
// plugin
|
1727
|
+
if (parsed) {
|
1728
|
+
metadata.pluginKey = normalizeSync.call(this, parsed.plugin, parentKey);
|
1729
|
+
return combinePluginParts(config.pluginFirst,
|
1730
|
+
packageResolveSync.call(this, config, parsed.argument, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey),
|
1731
|
+
metadata.pluginKey);
|
1732
|
+
}
|
1733
|
+
|
1734
|
+
return packageResolveSync.call(this, config, key, parentMetadata.pluginArgument || parentKey, metadata, parentMetadata, !!metadata.pluginKey);
|
1735
|
+
}
|
1736
|
+
|
1737
|
+
function coreResolve (config, key, parentKey, doMap, packageName) {
|
1738
|
+
var relativeResolved = resolveIfNotPlain(key, parentKey || baseURI);
|
1739
|
+
|
1740
|
+
// standard URL resolution
|
1741
|
+
if (relativeResolved)
|
1742
|
+
return applyPaths(config.baseURL, config.paths, relativeResolved);
|
1743
|
+
|
1744
|
+
// plain keys not starting with './', 'x://' and '/' go through custom resolution
|
1745
|
+
if (doMap) {
|
1746
|
+
var mapMatch = getMapMatch(config.map, key);
|
1747
|
+
|
1748
|
+
if (mapMatch) {
|
1749
|
+
key = config.map[mapMatch] + key.substr(mapMatch.length);
|
1750
|
+
|
1751
|
+
relativeResolved = resolveIfNotPlain(key, baseURI);
|
1752
|
+
if (relativeResolved)
|
1753
|
+
return applyPaths(config.baseURL, config.paths, relativeResolved);
|
1754
|
+
}
|
1755
|
+
}
|
1756
|
+
|
1757
|
+
if (this.registry.has(key))
|
1758
|
+
return key;
|
1759
|
+
|
1760
|
+
if (key.substr(0, 6) === '@node/')
|
1761
|
+
return key;
|
1762
|
+
|
1763
|
+
var trailingSlash = packageName && key[key.length - 1] !== '/';
|
1764
|
+
var resolved = applyPaths(config.baseURL, config.paths, trailingSlash ? key + '/' : key);
|
1765
|
+
if (trailingSlash)
|
1766
|
+
return resolved.substr(0, resolved.length - 1);
|
1767
|
+
return resolved;
|
1768
|
+
}
|
1769
|
+
|
1770
|
+
function packageResolveSync (config, key, parentKey, metadata, parentMetadata, skipExtensions) {
|
1771
|
+
// ignore . since internal maps handled by standard package resolution
|
1772
|
+
if (parentMetadata && parentMetadata.packageConfig && key[0] !== '.') {
|
1773
|
+
var parentMap = parentMetadata.packageConfig.map;
|
1774
|
+
var parentMapMatch = parentMap && getMapMatch(parentMap, key);
|
1775
|
+
|
1776
|
+
if (parentMapMatch && typeof parentMap[parentMapMatch] === 'string') {
|
1777
|
+
var mapped = doMapSync(this, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);
|
1778
|
+
if (mapped)
|
1779
|
+
return mapped;
|
1780
|
+
}
|
1781
|
+
}
|
1782
|
+
|
1783
|
+
var normalized = coreResolve.call(this, config, key, parentKey, true, true);
|
1784
|
+
|
1785
|
+
var pkgConfigMatch = getPackageConfigMatch(config, normalized);
|
1786
|
+
metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);
|
1787
|
+
|
1788
|
+
if (!metadata.packageKey)
|
1789
|
+
return normalized;
|
1790
|
+
|
1791
|
+
if (config.packageConfigKeys.indexOf(normalized) !== -1) {
|
1792
|
+
metadata.packageKey = undefined;
|
1793
|
+
return normalized;
|
1794
|
+
}
|
1795
|
+
|
1796
|
+
metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());
|
1797
|
+
|
1798
|
+
var subPath = normalized.substr(metadata.packageKey.length + 1);
|
1799
|
+
|
1800
|
+
return applyPackageConfigSync(this, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);
|
1801
|
+
}
|
1802
|
+
|
1803
|
+
function packageResolve (config, key, parentKey, metadata, parentMetadata, skipExtensions) {
|
1804
|
+
var loader = this;
|
1805
|
+
|
1806
|
+
return resolvedPromise
|
1807
|
+
.then(function () {
|
1808
|
+
// ignore . since internal maps handled by standard package resolution
|
1809
|
+
if (parentMetadata && parentMetadata.packageConfig && key.substr(0, 2) !== './') {
|
1810
|
+
var parentMap = parentMetadata.packageConfig.map;
|
1811
|
+
var parentMapMatch = parentMap && getMapMatch(parentMap, key);
|
1812
|
+
|
1813
|
+
if (parentMapMatch)
|
1814
|
+
return doMap(loader, config, parentMetadata.packageConfig, parentMetadata.packageKey, parentMapMatch, key, metadata, skipExtensions);
|
1815
|
+
}
|
1816
|
+
|
1817
|
+
return resolvedPromise;
|
1818
|
+
})
|
1819
|
+
.then(function (mapped) {
|
1820
|
+
if (mapped)
|
1821
|
+
return mapped;
|
1822
|
+
|
1823
|
+
// apply map, core, paths, contextual package map
|
1824
|
+
var normalized = coreResolve.call(loader, config, key, parentKey, true, true);
|
1825
|
+
|
1826
|
+
var pkgConfigMatch = getPackageConfigMatch(config, normalized);
|
1827
|
+
metadata.packageKey = pkgConfigMatch && pkgConfigMatch.packageKey || getMapMatch(config.packages, normalized);
|
1828
|
+
|
1829
|
+
if (!metadata.packageKey)
|
1830
|
+
return Promise.resolve(normalized);
|
1831
|
+
|
1832
|
+
if (config.packageConfigKeys.indexOf(normalized) !== -1) {
|
1833
|
+
metadata.packageKey = undefined;
|
1834
|
+
metadata.load = createMeta();
|
1835
|
+
metadata.load.format = 'json';
|
1836
|
+
// ensure no loader
|
1837
|
+
metadata.load.loader = '';
|
1838
|
+
return Promise.resolve(normalized);
|
1839
|
+
}
|
1840
|
+
|
1841
|
+
metadata.packageConfig = config.packages[metadata.packageKey] || (config.packages[metadata.packageKey] = createPackage());
|
1842
|
+
|
1843
|
+
// load configuration when it matches packageConfigPaths, not already configured, and not the config itself
|
1844
|
+
var loadConfig = pkgConfigMatch && !metadata.packageConfig.configured;
|
1845
|
+
|
1846
|
+
return (loadConfig ? loadPackageConfigPath(loader, config, pkgConfigMatch.configPath, metadata) : resolvedPromise)
|
1847
|
+
.then(function () {
|
1848
|
+
var subPath = normalized.substr(metadata.packageKey.length + 1);
|
1849
|
+
|
1850
|
+
return applyPackageConfig(loader, config, metadata.packageConfig, metadata.packageKey, subPath, metadata, skipExtensions);
|
1851
|
+
});
|
1852
|
+
});
|
1853
|
+
}
|
1854
|
+
|
1855
|
+
function createMeta () {
|
1856
|
+
return {
|
1857
|
+
extension: '',
|
1858
|
+
deps: undefined,
|
1859
|
+
format: undefined,
|
1860
|
+
loader: undefined,
|
1861
|
+
scriptLoad: undefined,
|
1862
|
+
globals: undefined,
|
1863
|
+
nonce: undefined,
|
1864
|
+
integrity: undefined,
|
1865
|
+
sourceMap: undefined,
|
1866
|
+
exports: undefined,
|
1867
|
+
encapsulateGlobal: false,
|
1868
|
+
crossOrigin: undefined,
|
1869
|
+
cjsRequireDetection: true,
|
1870
|
+
cjsDeferDepsExecute: false,
|
1871
|
+
esModule: false
|
1872
|
+
};
|
1873
|
+
}
|
1874
|
+
|
1875
|
+
function setMeta (config, key, metadata) {
|
1876
|
+
metadata.load = metadata.load || createMeta();
|
1877
|
+
|
1878
|
+
// apply wildcard metas
|
1879
|
+
var bestDepth = 0;
|
1880
|
+
var wildcardIndex;
|
1881
|
+
for (var module in config.meta) {
|
1882
|
+
wildcardIndex = module.indexOf('*');
|
1883
|
+
if (wildcardIndex === -1)
|
1884
|
+
continue;
|
1885
|
+
if (module.substr(0, wildcardIndex) === key.substr(0, wildcardIndex)
|
1886
|
+
&& module.substr(wildcardIndex + 1) === key.substr(key.length - module.length + wildcardIndex + 1)) {
|
1887
|
+
var depth = module.split('/').length;
|
1888
|
+
if (depth > bestDepth)
|
1889
|
+
bestDepth = depth;
|
1890
|
+
extendMeta(metadata.load, config.meta[module], bestDepth !== depth);
|
1891
|
+
}
|
1892
|
+
}
|
1893
|
+
|
1894
|
+
// apply exact meta
|
1895
|
+
if (config.meta[key])
|
1896
|
+
extendMeta(metadata.load, config.meta[key], false);
|
1897
|
+
|
1898
|
+
// apply package meta
|
1899
|
+
if (metadata.packageKey) {
|
1900
|
+
var subPath = key.substr(metadata.packageKey.length + 1);
|
1901
|
+
|
1902
|
+
var meta = {};
|
1903
|
+
if (metadata.packageConfig.meta) {
|
1904
|
+
var bestDepth = 0;
|
1905
|
+
getMetaMatches(metadata.packageConfig.meta, subPath, function (metaPattern, matchMeta, matchDepth) {
|
1906
|
+
if (matchDepth > bestDepth)
|
1907
|
+
bestDepth = matchDepth;
|
1908
|
+
extendMeta(meta, matchMeta, matchDepth && bestDepth > matchDepth);
|
1909
|
+
});
|
1910
|
+
|
1911
|
+
extendMeta(metadata.load, meta, false);
|
1912
|
+
}
|
1913
|
+
|
1914
|
+
// format
|
1915
|
+
if (metadata.packageConfig.format && !metadata.pluginKey && !metadata.load.loader)
|
1916
|
+
metadata.load.format = metadata.load.format || metadata.packageConfig.format;
|
1917
|
+
}
|
1918
|
+
}
|
1919
|
+
|
1920
|
+
function parsePlugin (pluginFirst, key) {
|
1921
|
+
var argumentKey;
|
1922
|
+
var pluginKey;
|
1923
|
+
|
1924
|
+
var pluginIndex = pluginFirst ? key.indexOf('!') : key.lastIndexOf('!');
|
1925
|
+
|
1926
|
+
if (pluginIndex === -1)
|
1927
|
+
return;
|
1928
|
+
|
1929
|
+
if (pluginFirst) {
|
1930
|
+
argumentKey = key.substr(pluginIndex + 1);
|
1931
|
+
pluginKey = key.substr(0, pluginIndex);
|
1932
|
+
}
|
1933
|
+
else {
|
1934
|
+
argumentKey = key.substr(0, pluginIndex);
|
1935
|
+
pluginKey = key.substr(pluginIndex + 1) || argumentKey.substr(argumentKey.lastIndexOf('.') + 1);
|
1936
|
+
}
|
1937
|
+
|
1938
|
+
return {
|
1939
|
+
argument: argumentKey,
|
1940
|
+
plugin: pluginKey
|
1941
|
+
};
|
1942
|
+
}
|
1943
|
+
|
1944
|
+
// put key back together after parts have been normalized
|
1945
|
+
function combinePluginParts (pluginFirst, argumentKey, pluginKey) {
|
1946
|
+
if (pluginFirst)
|
1947
|
+
return pluginKey + '!' + argumentKey;
|
1948
|
+
else
|
1949
|
+
return argumentKey + '!' + pluginKey;
|
1950
|
+
}
|
1951
|
+
|
1952
|
+
/*
|
1953
|
+
* Package Configuration Extension
|
1954
|
+
*
|
1955
|
+
* Example:
|
1956
|
+
*
|
1957
|
+
* SystemJS.packages = {
|
1958
|
+
* jquery: {
|
1959
|
+
* main: 'index.js', // when not set, package key is requested directly
|
1960
|
+
* format: 'amd',
|
1961
|
+
* defaultExtension: 'ts', // defaults to 'js', can be set to false
|
1962
|
+
* modules: {
|
1963
|
+
* '*.ts': {
|
1964
|
+
* loader: 'typescript'
|
1965
|
+
* },
|
1966
|
+
* 'vendor/sizzle.js': {
|
1967
|
+
* format: 'global'
|
1968
|
+
* }
|
1969
|
+
* },
|
1970
|
+
* map: {
|
1971
|
+
* // map internal require('sizzle') to local require('./vendor/sizzle')
|
1972
|
+
* sizzle: './vendor/sizzle.js',
|
1973
|
+
* // map any internal or external require of 'jquery/vendor/another' to 'another/index.js'
|
1974
|
+
* './vendor/another.js': './another/index.js',
|
1975
|
+
* // test.js / test -> lib/test.js
|
1976
|
+
* './test.js': './lib/test.js',
|
1977
|
+
*
|
1978
|
+
* // environment-specific map configurations
|
1979
|
+
* './index.js': {
|
1980
|
+
* '~browser': './index-node.js',
|
1981
|
+
* './custom-condition.js|~export': './index-custom.js'
|
1982
|
+
* }
|
1983
|
+
* },
|
1984
|
+
* // allows for setting package-prefixed depCache
|
1985
|
+
* // keys are normalized module keys relative to the package itself
|
1986
|
+
* depCache: {
|
1987
|
+
* // import 'package/index.js' loads in parallel package/lib/test.js,package/vendor/sizzle.js
|
1988
|
+
* './index.js': ['./test'],
|
1989
|
+
* './test.js': ['external-dep'],
|
1990
|
+
* 'external-dep/path.js': ['./another.js']
|
1991
|
+
* }
|
1992
|
+
* }
|
1993
|
+
* };
|
1994
|
+
*
|
1995
|
+
* Then:
|
1996
|
+
* import 'jquery' -> jquery/index.js
|
1997
|
+
* import 'jquery/submodule' -> jquery/submodule.js
|
1998
|
+
* import 'jquery/submodule.ts' -> jquery/submodule.ts loaded as typescript
|
1999
|
+
* import 'jquery/vendor/another' -> another/index.js
|
2000
|
+
*
|
2001
|
+
* Detailed Behaviours
|
2002
|
+
* - main can have a leading "./" can be added optionally
|
2003
|
+
* - map and defaultExtension are applied to the main
|
2004
|
+
* - defaultExtension adds the extension only if the exact extension is not present
|
2005
|
+
|
2006
|
+
* - if a meta value is available for a module, map and defaultExtension are skipped
|
2007
|
+
* - like global map, package map also applies to subpaths (sizzle/x, ./vendor/another/sub)
|
2008
|
+
* - condition module map is '@env' module in package or '@system-env' globally
|
2009
|
+
* - map targets support conditional interpolation ('./x': './x.#{|env}.js')
|
2010
|
+
* - internal package map targets cannot use boolean conditionals
|
2011
|
+
*
|
2012
|
+
* Package Configuration Loading
|
2013
|
+
*
|
2014
|
+
* Not all packages may already have their configuration present in the System config
|
2015
|
+
* For these cases, a list of packageConfigPaths can be provided, which when matched against
|
2016
|
+
* a request, will first request a ".json" file by the package key to derive the package
|
2017
|
+
* configuration from. This allows dynamic loading of non-predetermined code, a key use
|
2018
|
+
* case in SystemJS.
|
2019
|
+
*
|
2020
|
+
* Example:
|
2021
|
+
*
|
2022
|
+
* SystemJS.packageConfigPaths = ['packages/test/package.json', 'packages/*.json'];
|
2023
|
+
*
|
2024
|
+
* // will first request 'packages/new-package/package.json' for the package config
|
2025
|
+
* // before completing the package request to 'packages/new-package/path'
|
2026
|
+
* SystemJS.import('packages/new-package/path');
|
2027
|
+
*
|
2028
|
+
* // will first request 'packages/test/package.json' before the main
|
2029
|
+
* SystemJS.import('packages/test');
|
2030
|
+
*
|
2031
|
+
* When a package matches packageConfigPaths, it will always send a config request for
|
2032
|
+
* the package configuration.
|
2033
|
+
* The package key itself is taken to be the match up to and including the last wildcard
|
2034
|
+
* or trailing slash.
|
2035
|
+
* The most specific package config path will be used.
|
2036
|
+
* Any existing package configurations for the package will deeply merge with the
|
2037
|
+
* package config, with the existing package configurations taking preference.
|
2038
|
+
* To opt-out of the package configuration request for a package that matches
|
2039
|
+
* packageConfigPaths, use the { configured: true } package config option.
|
2040
|
+
*
|
2041
|
+
*/
|
2042
|
+
|
2043
|
+
function addDefaultExtension (config, pkg, pkgKey, subPath, skipExtensions) {
|
2044
|
+
// don't apply extensions to folders or if defaultExtension = false
|
2045
|
+
if (!subPath || !pkg.defaultExtension || subPath[subPath.length - 1] === '/' || skipExtensions)
|
2046
|
+
return subPath;
|
2047
|
+
|
2048
|
+
var metaMatch = false;
|
2049
|
+
|
2050
|
+
// exact meta or meta with any content after the last wildcard skips extension
|
2051
|
+
if (pkg.meta)
|
2052
|
+
getMetaMatches(pkg.meta, subPath, function (metaPattern, matchMeta, matchDepth) {
|
2053
|
+
if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)
|
2054
|
+
return metaMatch = true;
|
2055
|
+
});
|
2056
|
+
|
2057
|
+
// exact global meta or meta with any content after the last wildcard skips extension
|
2058
|
+
if (!metaMatch && config.meta)
|
2059
|
+
getMetaMatches(config.meta, pkgKey + '/' + subPath, function (metaPattern, matchMeta, matchDepth) {
|
2060
|
+
if (matchDepth === 0 || metaPattern.lastIndexOf('*') !== metaPattern.length - 1)
|
2061
|
+
return metaMatch = true;
|
2062
|
+
});
|
2063
|
+
|
2064
|
+
if (metaMatch)
|
2065
|
+
return subPath;
|
2066
|
+
|
2067
|
+
// work out what the defaultExtension is and add if not there already
|
2068
|
+
var defaultExtension = '.' + pkg.defaultExtension;
|
2069
|
+
if (subPath.substr(subPath.length - defaultExtension.length) !== defaultExtension)
|
2070
|
+
return subPath + defaultExtension;
|
2071
|
+
else
|
2072
|
+
return subPath;
|
2073
|
+
}
|
2074
|
+
|
2075
|
+
function applyPackageConfigSync (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {
|
2076
|
+
// main
|
2077
|
+
if (!subPath) {
|
2078
|
+
if (pkg.main)
|
2079
|
+
subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;
|
2080
|
+
else
|
2081
|
+
// also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')
|
2082
|
+
// NB can add a default package main convention here
|
2083
|
+
// if it becomes internal to the package then it would no longer be an exit path
|
2084
|
+
return pkgKey;
|
2085
|
+
}
|
2086
|
+
|
2087
|
+
// map config checking without then with extensions
|
2088
|
+
if (pkg.map) {
|
2089
|
+
var mapPath = './' + subPath;
|
2090
|
+
|
2091
|
+
var mapMatch = getMapMatch(pkg.map, mapPath);
|
2092
|
+
|
2093
|
+
// we then check map with the default extension adding
|
2094
|
+
if (!mapMatch) {
|
2095
|
+
mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);
|
2096
|
+
if (mapPath !== './' + subPath)
|
2097
|
+
mapMatch = getMapMatch(pkg.map, mapPath);
|
2098
|
+
}
|
2099
|
+
if (mapMatch) {
|
2100
|
+
var mapped = doMapSync(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions);
|
2101
|
+
if (mapped)
|
2102
|
+
return mapped;
|
2103
|
+
}
|
2104
|
+
}
|
2105
|
+
|
2106
|
+
// normal package resolution
|
2107
|
+
return pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);
|
2108
|
+
}
|
2109
|
+
|
2110
|
+
function validMapping (mapMatch, mapped, path) {
|
2111
|
+
// allow internal ./x -> ./x/y or ./x/ -> ./x/y recursive maps
|
2112
|
+
// but only if the path is exactly ./x and not ./x/z
|
2113
|
+
if (mapped.substr(0, mapMatch.length) === mapMatch && path.length > mapMatch.length)
|
2114
|
+
return false;
|
2115
|
+
|
2116
|
+
return true;
|
2117
|
+
}
|
2118
|
+
|
2119
|
+
function doMapSync (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {
|
2120
|
+
if (path[path.length - 1] === '/')
|
2121
|
+
path = path.substr(0, path.length - 1);
|
2122
|
+
var mapped = pkg.map[mapMatch];
|
2123
|
+
|
2124
|
+
if (typeof mapped === 'object')
|
2125
|
+
throw new Error('Synchronous conditional normalization not supported sync normalizing ' + mapMatch + ' in ' + pkgKey);
|
2126
|
+
|
2127
|
+
if (!validMapping(mapMatch, mapped, path) || typeof mapped !== 'string')
|
2128
|
+
return;
|
2129
|
+
|
2130
|
+
return packageResolveSync.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions);
|
2131
|
+
}
|
2132
|
+
|
2133
|
+
function applyPackageConfig (loader, config, pkg, pkgKey, subPath, metadata, skipExtensions) {
|
2134
|
+
// main
|
2135
|
+
if (!subPath) {
|
2136
|
+
if (pkg.main)
|
2137
|
+
subPath = pkg.main.substr(0, 2) === './' ? pkg.main.substr(2) : pkg.main;
|
2138
|
+
// also no submap if key is package itself (import 'pkg' -> 'path/to/pkg.js')
|
2139
|
+
else
|
2140
|
+
// NB can add a default package main convention here
|
2141
|
+
// if it becomes internal to the package then it would no longer be an exit path
|
2142
|
+
return Promise.resolve(pkgKey);
|
2143
|
+
}
|
2144
|
+
|
2145
|
+
// map config checking without then with extensions
|
2146
|
+
var mapPath, mapMatch;
|
2147
|
+
|
2148
|
+
if (pkg.map) {
|
2149
|
+
mapPath = './' + subPath;
|
2150
|
+
mapMatch = getMapMatch(pkg.map, mapPath);
|
2151
|
+
|
2152
|
+
// we then check map with the default extension adding
|
2153
|
+
if (!mapMatch) {
|
2154
|
+
mapPath = './' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions);
|
2155
|
+
if (mapPath !== './' + subPath)
|
2156
|
+
mapMatch = getMapMatch(pkg.map, mapPath);
|
2157
|
+
}
|
2158
|
+
}
|
2159
|
+
|
2160
|
+
return (mapMatch ? doMap(loader, config, pkg, pkgKey, mapMatch, mapPath, metadata, skipExtensions) : resolvedPromise)
|
2161
|
+
.then(function (mapped) {
|
2162
|
+
if (mapped)
|
2163
|
+
return Promise.resolve(mapped);
|
2164
|
+
|
2165
|
+
// normal package resolution / fallback resolution for no conditional match
|
2166
|
+
return Promise.resolve(pkgKey + '/' + addDefaultExtension(config, pkg, pkgKey, subPath, skipExtensions));
|
2167
|
+
});
|
2168
|
+
}
|
2169
|
+
|
2170
|
+
function doMap (loader, config, pkg, pkgKey, mapMatch, path, metadata, skipExtensions) {
|
2171
|
+
if (path[path.length - 1] === '/')
|
2172
|
+
path = path.substr(0, path.length - 1);
|
2173
|
+
|
2174
|
+
var mapped = pkg.map[mapMatch];
|
2175
|
+
|
2176
|
+
if (typeof mapped === 'string') {
|
2177
|
+
if (!validMapping(mapMatch, mapped, path))
|
2178
|
+
return resolvedPromise;
|
2179
|
+
return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)
|
2180
|
+
.then(function (normalized) {
|
2181
|
+
return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);
|
2182
|
+
});
|
2183
|
+
}
|
2184
|
+
|
2185
|
+
// we use a special conditional syntax to allow the builder to handle conditional branch points further
|
2186
|
+
/*if (loader.builder)
|
2187
|
+
return Promise.resolve(pkgKey + '/#:' + path);*/
|
2188
|
+
|
2189
|
+
// we load all conditions upfront
|
2190
|
+
var conditionPromises = [];
|
2191
|
+
var conditions = [];
|
2192
|
+
for (var e in mapped) {
|
2193
|
+
var c = parseCondition(e);
|
2194
|
+
conditions.push({
|
2195
|
+
condition: c,
|
2196
|
+
map: mapped[e]
|
2197
|
+
});
|
2198
|
+
conditionPromises.push(RegisterLoader$1.prototype.import.call(loader, c.module, pkgKey));
|
2199
|
+
}
|
2200
|
+
|
2201
|
+
// map object -> conditional map
|
2202
|
+
return Promise.all(conditionPromises)
|
2203
|
+
.then(function (conditionValues) {
|
2204
|
+
// first map condition to match is used
|
2205
|
+
for (var i = 0; i < conditions.length; i++) {
|
2206
|
+
var c = conditions[i].condition;
|
2207
|
+
var value = readMemberExpression(c.prop, '__useDefault' in conditionValues[i] ? conditionValues[i].__useDefault : conditionValues[i]);
|
2208
|
+
if (!c.negate && value || c.negate && !value)
|
2209
|
+
return conditions[i].map;
|
2210
|
+
}
|
2211
|
+
})
|
2212
|
+
.then(function (mapped) {
|
2213
|
+
if (mapped) {
|
2214
|
+
if (!validMapping(mapMatch, mapped, path))
|
2215
|
+
return resolvedPromise;
|
2216
|
+
return packageResolve.call(loader, config, mapped + path.substr(mapMatch.length), pkgKey + '/', metadata, metadata, skipExtensions)
|
2217
|
+
.then(function (normalized) {
|
2218
|
+
return interpolateConditional.call(loader, normalized, pkgKey + '/', metadata);
|
2219
|
+
});
|
2220
|
+
}
|
2221
|
+
|
2222
|
+
// no environment match -> fallback to original subPath by returning undefined
|
2223
|
+
});
|
2224
|
+
}
|
2225
|
+
|
2226
|
+
// check if the given normalized key matches a packageConfigPath
|
2227
|
+
// if so, loads the config
|
2228
|
+
var packageConfigPaths = {};
|
2229
|
+
|
2230
|
+
// data object for quick checks against package paths
|
2231
|
+
function createPkgConfigPathObj (path) {
|
2232
|
+
var lastWildcard = path.lastIndexOf('*');
|
2233
|
+
var length = Math.max(lastWildcard + 1, path.lastIndexOf('/'));
|
2234
|
+
return {
|
2235
|
+
length: length,
|
2236
|
+
regEx: new RegExp('^(' + path.substr(0, length).replace(/[.+?^${}()|[\]\\]/g, '\\$&').replace(/\*/g, '[^\\/]+') + ')(\\/|$)'),
|
2237
|
+
wildcard: lastWildcard !== -1
|
2238
|
+
};
|
2239
|
+
}
|
2240
|
+
|
2241
|
+
// most specific match wins
|
2242
|
+
function getPackageConfigMatch (config, normalized) {
|
2243
|
+
var pkgKey, exactMatch = false, configPath;
|
2244
|
+
for (var i = 0; i < config.packageConfigPaths.length; i++) {
|
2245
|
+
var packageConfigPath = config.packageConfigPaths[i];
|
2246
|
+
var p = packageConfigPaths[packageConfigPath] || (packageConfigPaths[packageConfigPath] = createPkgConfigPathObj(packageConfigPath));
|
2247
|
+
if (normalized.length < p.length)
|
2248
|
+
continue;
|
2249
|
+
var match = normalized.match(p.regEx);
|
2250
|
+
if (match && (!pkgKey || (!(exactMatch && p.wildcard) && pkgKey.length < match[1].length))) {
|
2251
|
+
pkgKey = match[1];
|
2252
|
+
exactMatch = !p.wildcard;
|
2253
|
+
configPath = pkgKey + packageConfigPath.substr(p.length);
|
2254
|
+
}
|
2255
|
+
}
|
2256
|
+
|
2257
|
+
if (!pkgKey)
|
2258
|
+
return;
|
2259
|
+
|
2260
|
+
return {
|
2261
|
+
packageKey: pkgKey,
|
2262
|
+
configPath: configPath
|
2263
|
+
};
|
2264
|
+
}
|
2265
|
+
|
2266
|
+
function loadPackageConfigPath (loader, config, pkgConfigPath, metadata, normalized) {
|
2267
|
+
var configLoader = loader.pluginLoader || loader;
|
2268
|
+
|
2269
|
+
// ensure we note this is a package config file path
|
2270
|
+
// it will then be skipped from getting other normalizations itself to ensure idempotency
|
2271
|
+
if (config.packageConfigKeys.indexOf(pkgConfigPath) === -1)
|
2272
|
+
config.packageConfigKeys.push(pkgConfigPath);
|
2273
|
+
|
2274
|
+
return configLoader.import(pkgConfigPath)
|
2275
|
+
.then(function (pkgConfig) {
|
2276
|
+
setPkgConfig(metadata.packageConfig, pkgConfig, metadata.packageKey, true, config);
|
2277
|
+
metadata.packageConfig.configured = true;
|
2278
|
+
})
|
2279
|
+
.catch(function (err) {
|
2280
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Unable to fetch package configuration file ' + pkgConfigPath);
|
2281
|
+
});
|
2282
|
+
}
|
2283
|
+
|
2284
|
+
function getMetaMatches (pkgMeta, subPath, matchFn) {
|
2285
|
+
// wildcard meta
|
2286
|
+
var wildcardIndex;
|
2287
|
+
for (var module in pkgMeta) {
|
2288
|
+
// allow meta to start with ./ for flexibility
|
2289
|
+
var dotRel = module.substr(0, 2) === './' ? './' : '';
|
2290
|
+
if (dotRel)
|
2291
|
+
module = module.substr(2);
|
2292
|
+
|
2293
|
+
wildcardIndex = module.indexOf('*');
|
2294
|
+
if (wildcardIndex === -1)
|
2295
|
+
continue;
|
2296
|
+
|
2297
|
+
if (module.substr(0, wildcardIndex) === subPath.substr(0, wildcardIndex)
|
2298
|
+
&& module.substr(wildcardIndex + 1) === subPath.substr(subPath.length - module.length + wildcardIndex + 1)) {
|
2299
|
+
// alow match function to return true for an exit path
|
2300
|
+
if (matchFn(module, pkgMeta[dotRel + module], module.split('/').length))
|
2301
|
+
return;
|
2302
|
+
}
|
2303
|
+
}
|
2304
|
+
// exact meta
|
2305
|
+
var exactMeta = pkgMeta[subPath] && Object.hasOwnProperty.call(pkgMeta, subPath) ? pkgMeta[subPath] : pkgMeta['./' + subPath];
|
2306
|
+
if (exactMeta)
|
2307
|
+
matchFn(exactMeta, exactMeta, 0);
|
2308
|
+
}
|
2309
|
+
|
2310
|
+
|
2311
|
+
/*
|
2312
|
+
* Conditions Extension
|
2313
|
+
*
|
2314
|
+
* Allows a condition module to alter the resolution of an import via syntax:
|
2315
|
+
*
|
2316
|
+
* import $ from 'jquery/#{browser}';
|
2317
|
+
*
|
2318
|
+
* Will first load the module 'browser' via `SystemJS.import('browser')` and
|
2319
|
+
* take the default export of that module.
|
2320
|
+
* If the default export is not a string, an error is thrown.
|
2321
|
+
*
|
2322
|
+
* We then substitute the string into the require to get the conditional resolution
|
2323
|
+
* enabling environment-specific variations like:
|
2324
|
+
*
|
2325
|
+
* import $ from 'jquery/ie'
|
2326
|
+
* import $ from 'jquery/firefox'
|
2327
|
+
* import $ from 'jquery/chrome'
|
2328
|
+
* import $ from 'jquery/safari'
|
2329
|
+
*
|
2330
|
+
* It can be useful for a condition module to define multiple conditions.
|
2331
|
+
* This can be done via the `|` modifier to specify an export member expression:
|
2332
|
+
*
|
2333
|
+
* import 'jquery/#{./browser.js|grade.version}'
|
2334
|
+
*
|
2335
|
+
* Where the `grade` export `version` member in the `browser.js` module is substituted.
|
2336
|
+
*
|
2337
|
+
*
|
2338
|
+
* Boolean Conditionals
|
2339
|
+
*
|
2340
|
+
* For polyfill modules, that are used as imports but have no module value,
|
2341
|
+
* a binary conditional allows a module not to be loaded at all if not needed:
|
2342
|
+
*
|
2343
|
+
* import 'es5-shim#?./conditions.js|needs-es5shim'
|
2344
|
+
*
|
2345
|
+
* These conditions can also be negated via:
|
2346
|
+
*
|
2347
|
+
* import 'es5-shim#?./conditions.js|~es6'
|
2348
|
+
*
|
2349
|
+
*/
|
2350
|
+
|
2351
|
+
var sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];
|
2352
|
+
|
2353
|
+
function parseCondition (condition) {
|
2354
|
+
var conditionExport, conditionModule, negation;
|
2355
|
+
|
2356
|
+
var negation;
|
2357
|
+
var conditionExportIndex = condition.lastIndexOf('|');
|
2358
|
+
if (conditionExportIndex !== -1) {
|
2359
|
+
conditionExport = condition.substr(conditionExportIndex + 1);
|
2360
|
+
conditionModule = condition.substr(0, conditionExportIndex);
|
2361
|
+
|
2362
|
+
if (conditionExport[0] === '~') {
|
2363
|
+
negation = true;
|
2364
|
+
conditionExport = conditionExport.substr(1);
|
2365
|
+
}
|
2366
|
+
}
|
2367
|
+
else {
|
2368
|
+
negation = condition[0] === '~';
|
2369
|
+
conditionExport = 'default';
|
2370
|
+
conditionModule = condition.substr(negation);
|
2371
|
+
if (sysConditions.indexOf(conditionModule) !== -1) {
|
2372
|
+
conditionExport = conditionModule;
|
2373
|
+
conditionModule = null;
|
2374
|
+
}
|
2375
|
+
}
|
2376
|
+
|
2377
|
+
return {
|
2378
|
+
module: conditionModule || '@system-env',
|
2379
|
+
prop: conditionExport,
|
2380
|
+
negate: negation
|
2381
|
+
};
|
2382
|
+
}
|
2383
|
+
|
2384
|
+
function resolveCondition (conditionObj, parentKey, bool) {
|
2385
|
+
// import without __useDefault handling here
|
2386
|
+
return RegisterLoader$1.prototype.import.call(this, conditionObj.module, parentKey)
|
2387
|
+
.then(function (condition) {
|
2388
|
+
var m = readMemberExpression(conditionObj.prop, condition);
|
2389
|
+
|
2390
|
+
if (bool && typeof m !== 'boolean')
|
2391
|
+
throw new TypeError('Condition did not resolve to a boolean.');
|
2392
|
+
|
2393
|
+
return conditionObj.negate ? !m : m;
|
2394
|
+
});
|
2395
|
+
}
|
2396
|
+
|
2397
|
+
var interpolationRegEx = /#\{[^\}]+\}/;
|
2398
|
+
function interpolateConditional (key, parentKey, parentMetadata) {
|
2399
|
+
// first we normalize the conditional
|
2400
|
+
var conditionalMatch = key.match(interpolationRegEx);
|
2401
|
+
|
2402
|
+
if (!conditionalMatch)
|
2403
|
+
return Promise.resolve(key);
|
2404
|
+
|
2405
|
+
var conditionObj = parseCondition.call(this, conditionalMatch[0].substr(2, conditionalMatch[0].length - 3));
|
2406
|
+
|
2407
|
+
// in builds, return normalized conditional
|
2408
|
+
/*if (this.builder)
|
2409
|
+
return this.normalize(conditionObj.module, parentKey, createMetadata(), parentMetadata)
|
2410
|
+
.then(function (conditionModule) {
|
2411
|
+
conditionObj.module = conditionModule;
|
2412
|
+
return key.replace(interpolationRegEx, '#{' + serializeCondition(conditionObj) + '}');
|
2413
|
+
});*/
|
2414
|
+
|
2415
|
+
return resolveCondition.call(this, conditionObj, parentKey, false)
|
2416
|
+
.then(function (conditionValue) {
|
2417
|
+
if (typeof conditionValue !== 'string')
|
2418
|
+
throw new TypeError('The condition value for ' + key + ' doesn\'t resolve to a string.');
|
2419
|
+
|
2420
|
+
if (conditionValue.indexOf('/') !== -1)
|
2421
|
+
throw new TypeError('Unabled to interpolate conditional ' + key + (parentKey ? ' in ' + parentKey : '') + '\n\tThe condition value ' + conditionValue + ' cannot contain a "/" separator.');
|
2422
|
+
|
2423
|
+
return key.replace(interpolationRegEx, conditionValue);
|
2424
|
+
});
|
2425
|
+
}
|
2426
|
+
|
2427
|
+
/*
|
2428
|
+
Extend config merging one deep only
|
2429
|
+
|
2430
|
+
loader.config({
|
2431
|
+
some: 'random',
|
2432
|
+
config: 'here',
|
2433
|
+
deep: {
|
2434
|
+
config: { too: 'too' }
|
2435
|
+
}
|
2436
|
+
});
|
2437
|
+
|
2438
|
+
<=>
|
2439
|
+
|
2440
|
+
loader.some = 'random';
|
2441
|
+
loader.config = 'here'
|
2442
|
+
loader.deep = loader.deep || {};
|
2443
|
+
loader.deep.config = { too: 'too' };
|
2444
|
+
|
2445
|
+
|
2446
|
+
Normalizes meta and package configs allowing for:
|
2447
|
+
|
2448
|
+
SystemJS.config({
|
2449
|
+
meta: {
|
2450
|
+
'./index.js': {}
|
2451
|
+
}
|
2452
|
+
});
|
2453
|
+
|
2454
|
+
To become
|
2455
|
+
|
2456
|
+
SystemJS.meta['https://thissite.com/index.js'] = {};
|
2457
|
+
|
2458
|
+
For easy normalization canonicalization with latest URL support.
|
2459
|
+
|
2460
|
+
*/
|
2461
|
+
var envConfigNames = ['browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'];
|
2462
|
+
function envSet(loader, cfg, envCallback) {
|
2463
|
+
for (var i = 0; i < envConfigNames.length; i++) {
|
2464
|
+
var envConfig = envConfigNames[i];
|
2465
|
+
if (cfg[envConfig] && envModule[envConfig.substr(0, envConfig.length - 6)])
|
2466
|
+
envCallback(cfg[envConfig]);
|
2467
|
+
}
|
2468
|
+
}
|
2469
|
+
|
2470
|
+
function cloneObj (obj, maxDepth) {
|
2471
|
+
var clone = {};
|
2472
|
+
for (var p in obj) {
|
2473
|
+
var prop = obj[p];
|
2474
|
+
if (maxDepth > 1) {
|
2475
|
+
if (prop instanceof Array)
|
2476
|
+
clone[p] = [].concat(prop);
|
2477
|
+
else if (typeof prop === 'object')
|
2478
|
+
clone[p] = cloneObj(prop, maxDepth - 1);
|
2479
|
+
else if (p !== 'packageConfig')
|
2480
|
+
clone[p] = prop;
|
2481
|
+
}
|
2482
|
+
else {
|
2483
|
+
clone[p] = prop;
|
2484
|
+
}
|
2485
|
+
}
|
2486
|
+
return clone;
|
2487
|
+
}
|
2488
|
+
|
2489
|
+
function getConfigItem (config, p) {
|
2490
|
+
var cfgItem = config[p];
|
2491
|
+
|
2492
|
+
// getConfig must return an unmodifiable clone of the configuration
|
2493
|
+
if (cfgItem instanceof Array)
|
2494
|
+
return config[p].concat([]);
|
2495
|
+
else if (typeof cfgItem === 'object')
|
2496
|
+
return cloneObj(cfgItem, 3)
|
2497
|
+
else
|
2498
|
+
return config[p];
|
2499
|
+
}
|
2500
|
+
|
2501
|
+
function getConfig (configName) {
|
2502
|
+
if (configName) {
|
2503
|
+
if (configNames.indexOf(configName) !== -1)
|
2504
|
+
return getConfigItem(this[CONFIG], configName);
|
2505
|
+
throw new Error('"' + configName + '" is not a valid configuration name. Must be one of ' + configNames.join(', ') + '.');
|
2506
|
+
}
|
2507
|
+
|
2508
|
+
var cfg = {};
|
2509
|
+
for (var i = 0; i < configNames.length; i++) {
|
2510
|
+
var p = configNames[i];
|
2511
|
+
var configItem = getConfigItem(this[CONFIG], p);
|
2512
|
+
if (configItem !== undefined)
|
2513
|
+
cfg[p] = configItem;
|
2514
|
+
}
|
2515
|
+
return cfg;
|
2516
|
+
}
|
2517
|
+
|
2518
|
+
function setConfig (cfg, isEnvConfig) {
|
2519
|
+
var loader = this;
|
2520
|
+
var config = this[CONFIG];
|
2521
|
+
|
2522
|
+
if ('warnings' in cfg)
|
2523
|
+
config.warnings = cfg.warnings;
|
2524
|
+
|
2525
|
+
if ('wasm' in cfg)
|
2526
|
+
config.wasm = typeof WebAssembly !== 'undefined' && cfg.wasm;
|
2527
|
+
|
2528
|
+
if ('production' in cfg || 'build' in cfg)
|
2529
|
+
setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));
|
2530
|
+
|
2531
|
+
if (!isEnvConfig) {
|
2532
|
+
// if using nodeConfig / browserConfig / productionConfig, take baseURL from there
|
2533
|
+
// these exceptions will be unnecessary when we can properly implement config queuings
|
2534
|
+
var baseURL;
|
2535
|
+
envSet(loader, cfg, function(cfg) {
|
2536
|
+
baseURL = baseURL || cfg.baseURL;
|
2537
|
+
});
|
2538
|
+
baseURL = baseURL || cfg.baseURL;
|
2539
|
+
|
2540
|
+
// always configure baseURL first
|
2541
|
+
if (baseURL) {
|
2542
|
+
config.baseURL = resolveIfNotPlain(baseURL, baseURI) || resolveIfNotPlain('./' + baseURL, baseURI);
|
2543
|
+
if (config.baseURL[config.baseURL.length - 1] !== '/')
|
2544
|
+
config.baseURL += '/';
|
2545
|
+
}
|
2546
|
+
|
2547
|
+
if (cfg.paths)
|
2548
|
+
extend(config.paths, cfg.paths);
|
2549
|
+
|
2550
|
+
envSet(loader, cfg, function(cfg) {
|
2551
|
+
if (cfg.paths)
|
2552
|
+
extend(config.paths, cfg.paths);
|
2553
|
+
});
|
2554
|
+
|
2555
|
+
for (var p in config.paths) {
|
2556
|
+
if (config.paths[p].indexOf('*') === -1)
|
2557
|
+
continue;
|
2558
|
+
warn.call(config, 'Path config ' + p + ' -> ' + config.paths[p] + ' is no longer supported as wildcards are deprecated.');
|
2559
|
+
delete config.paths[p];
|
2560
|
+
}
|
2561
|
+
}
|
2562
|
+
|
2563
|
+
if (cfg.defaultJSExtensions)
|
2564
|
+
warn.call(config, 'The defaultJSExtensions configuration option is deprecated.\n Use packages defaultExtension instead.', true);
|
2565
|
+
|
2566
|
+
if (typeof cfg.pluginFirst === 'boolean')
|
2567
|
+
config.pluginFirst = cfg.pluginFirst;
|
2568
|
+
|
2569
|
+
if (cfg.map) {
|
2570
|
+
for (var p in cfg.map) {
|
2571
|
+
var v = cfg.map[p];
|
2572
|
+
|
2573
|
+
if (typeof v === 'string') {
|
2574
|
+
var mapped = coreResolve.call(loader, config, v, undefined, false, false);
|
2575
|
+
if (mapped[mapped.length -1] === '/' && p[p.length - 1] !== ':' && p[p.length - 1] !== '/')
|
2576
|
+
mapped = mapped.substr(0, mapped.length - 1);
|
2577
|
+
config.map[p] = mapped;
|
2578
|
+
}
|
2579
|
+
|
2580
|
+
// object map
|
2581
|
+
else {
|
2582
|
+
var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);
|
2583
|
+
pkgName = pkgName.substr(0, pkgName.length - 1);
|
2584
|
+
|
2585
|
+
var pkg = config.packages[pkgName];
|
2586
|
+
if (!pkg) {
|
2587
|
+
pkg = config.packages[pkgName] = createPackage();
|
2588
|
+
// use '' instead of false to keep type consistent
|
2589
|
+
pkg.defaultExtension = '';
|
2590
|
+
}
|
2591
|
+
setPkgConfig(pkg, { map: v }, pkgName, false, config);
|
2592
|
+
}
|
2593
|
+
}
|
2594
|
+
}
|
2595
|
+
|
2596
|
+
if (cfg.packageConfigPaths) {
|
2597
|
+
var packageConfigPaths = [];
|
2598
|
+
for (var i = 0; i < cfg.packageConfigPaths.length; i++) {
|
2599
|
+
var path = cfg.packageConfigPaths[i];
|
2600
|
+
var packageLength = Math.max(path.lastIndexOf('*') + 1, path.lastIndexOf('/'));
|
2601
|
+
var normalized = coreResolve.call(loader, config, path.substr(0, packageLength), undefined, false, false);
|
2602
|
+
packageConfigPaths[i] = normalized + path.substr(packageLength);
|
2603
|
+
}
|
2604
|
+
config.packageConfigPaths = packageConfigPaths;
|
2605
|
+
}
|
2606
|
+
|
2607
|
+
if (cfg.bundles) {
|
2608
|
+
for (var p in cfg.bundles) {
|
2609
|
+
var bundle = [];
|
2610
|
+
for (var i = 0; i < cfg.bundles[p].length; i++)
|
2611
|
+
bundle.push(loader.normalizeSync(cfg.bundles[p][i]));
|
2612
|
+
config.bundles[p] = bundle;
|
2613
|
+
}
|
2614
|
+
}
|
2615
|
+
|
2616
|
+
if (cfg.packages) {
|
2617
|
+
for (var p in cfg.packages) {
|
2618
|
+
if (p.match(/^([^\/]+:)?\/\/$/))
|
2619
|
+
throw new TypeError('"' + p + '" is not a valid package name.');
|
2620
|
+
|
2621
|
+
var pkgName = coreResolve.call(loader, config, p[p.length - 1] !== '/' ? p + '/' : p, undefined, true, true);
|
2622
|
+
pkgName = pkgName.substr(0, pkgName.length - 1);
|
2623
|
+
|
2624
|
+
setPkgConfig(config.packages[pkgName] = config.packages[pkgName] || createPackage(), cfg.packages[p], pkgName, false, config);
|
2625
|
+
}
|
2626
|
+
}
|
2627
|
+
|
2628
|
+
if (cfg.depCache) {
|
2629
|
+
for (var p in cfg.depCache)
|
2630
|
+
config.depCache[loader.normalizeSync(p)] = [].concat(cfg.depCache[p]);
|
2631
|
+
}
|
2632
|
+
|
2633
|
+
if (cfg.meta) {
|
2634
|
+
for (var p in cfg.meta) {
|
2635
|
+
// base wildcard stays base
|
2636
|
+
if (p[0] === '*') {
|
2637
|
+
extend(config.meta[p] = config.meta[p] || {}, cfg.meta[p]);
|
2638
|
+
}
|
2639
|
+
else {
|
2640
|
+
var resolved = coreResolve.call(loader, config, p, undefined, true, true);
|
2641
|
+
extend(config.meta[resolved] = config.meta[resolved] || {}, cfg.meta[p]);
|
2642
|
+
}
|
2643
|
+
}
|
2644
|
+
}
|
2645
|
+
|
2646
|
+
if ('transpiler' in cfg)
|
2647
|
+
config.transpiler = cfg.transpiler;
|
2648
|
+
|
2649
|
+
|
2650
|
+
// copy any remaining non-standard configuration properties
|
2651
|
+
for (var c in cfg) {
|
2652
|
+
if (configNames.indexOf(c) !== -1)
|
2653
|
+
continue;
|
2654
|
+
if (envConfigNames.indexOf(c) !== -1)
|
2655
|
+
continue;
|
2656
|
+
|
2657
|
+
// warn.call(config, 'Setting custom config option `System.config({ ' + c + ': ... })` is deprecated. Avoid custom config options or set SystemJS.' + c + ' = ... directly.');
|
2658
|
+
loader[c] = cfg[c];
|
2659
|
+
}
|
2660
|
+
|
2661
|
+
envSet(loader, cfg, function(cfg) {
|
2662
|
+
loader.config(cfg, true);
|
2663
|
+
});
|
2664
|
+
}
|
2665
|
+
|
2666
|
+
function createPackage () {
|
2667
|
+
return {
|
2668
|
+
defaultExtension: undefined,
|
2669
|
+
main: undefined,
|
2670
|
+
format: undefined,
|
2671
|
+
meta: undefined,
|
2672
|
+
map: undefined,
|
2673
|
+
packageConfig: undefined,
|
2674
|
+
configured: false
|
2675
|
+
};
|
2676
|
+
}
|
2677
|
+
|
2678
|
+
// deeply-merge (to first level) config with any existing package config
|
2679
|
+
function setPkgConfig (pkg, cfg, pkgName, prependConfig, config) {
|
2680
|
+
for (var prop in cfg) {
|
2681
|
+
if (prop === 'main' || prop === 'format' || prop === 'defaultExtension' || prop === 'configured') {
|
2682
|
+
if (!prependConfig || pkg[prop] === undefined)
|
2683
|
+
pkg[prop] = cfg[prop];
|
2684
|
+
}
|
2685
|
+
else if (prop === 'map') {
|
2686
|
+
(prependConfig ? prepend : extend)(pkg.map = pkg.map || {}, cfg.map);
|
2687
|
+
}
|
2688
|
+
else if (prop === 'meta') {
|
2689
|
+
(prependConfig ? prepend : extend)(pkg.meta = pkg.meta || {}, cfg.meta);
|
2690
|
+
}
|
2691
|
+
else if (Object.hasOwnProperty.call(cfg, prop)) {
|
2692
|
+
warn.call(config, '"' + prop + '" is not a valid package configuration option in package ' + pkgName);
|
2693
|
+
}
|
2694
|
+
}
|
2695
|
+
|
2696
|
+
// default defaultExtension for packages only
|
2697
|
+
if (pkg.defaultExtension === undefined)
|
2698
|
+
pkg.defaultExtension = 'js';
|
2699
|
+
|
2700
|
+
if (pkg.main === undefined && pkg.map && pkg.map['.']) {
|
2701
|
+
pkg.main = pkg.map['.'];
|
2702
|
+
delete pkg.map['.'];
|
2703
|
+
}
|
2704
|
+
// main object becomes main map
|
2705
|
+
else if (typeof pkg.main === 'object') {
|
2706
|
+
pkg.map = pkg.map || {};
|
2707
|
+
pkg.map['./@main'] = pkg.main;
|
2708
|
+
pkg.main['default'] = pkg.main['default'] || './';
|
2709
|
+
pkg.main = '@main';
|
2710
|
+
}
|
2711
|
+
|
2712
|
+
return pkg;
|
2713
|
+
}
|
2714
|
+
|
2715
|
+
var hasBuffer = typeof Buffer !== 'undefined';
|
2716
|
+
try {
|
2717
|
+
if (hasBuffer && new Buffer('a').toString('base64') !== 'YQ==')
|
2718
|
+
hasBuffer = false;
|
2719
|
+
}
|
2720
|
+
catch (e) {
|
2721
|
+
hasBuffer = false;
|
2722
|
+
}
|
2723
|
+
|
2724
|
+
var sourceMapPrefix = '\n//# sourceMapping' + 'URL=data:application/json;base64,';
|
2725
|
+
function inlineSourceMap (sourceMapString) {
|
2726
|
+
if (hasBuffer)
|
2727
|
+
return sourceMapPrefix + new Buffer(sourceMapString).toString('base64');
|
2728
|
+
else if (typeof btoa !== 'undefined')
|
2729
|
+
return sourceMapPrefix + btoa(unescape(encodeURIComponent(sourceMapString)));
|
2730
|
+
else
|
2731
|
+
return '';
|
2732
|
+
}
|
2733
|
+
|
2734
|
+
function getSource(source, sourceMap, address, wrap) {
|
2735
|
+
var lastLineIndex = source.lastIndexOf('\n');
|
2736
|
+
|
2737
|
+
if (sourceMap) {
|
2738
|
+
if (typeof sourceMap != 'object')
|
2739
|
+
throw new TypeError('load.metadata.sourceMap must be set to an object.');
|
2740
|
+
|
2741
|
+
sourceMap = JSON.stringify(sourceMap);
|
2742
|
+
}
|
2743
|
+
|
2744
|
+
return (wrap ? '(function(System, SystemJS) {' : '') + source + (wrap ? '\n})(System, System);' : '')
|
2745
|
+
// adds the sourceURL comment if not already present
|
2746
|
+
+ (source.substr(lastLineIndex, 15) != '\n//# sourceURL='
|
2747
|
+
? '\n//# sourceURL=' + address + (sourceMap ? '!transpiled' : '') : '')
|
2748
|
+
// add sourceMappingURL if load.metadata.sourceMap is set
|
2749
|
+
+ (sourceMap && inlineSourceMap(sourceMap) || '');
|
2750
|
+
}
|
2751
|
+
|
2752
|
+
// script execution via injecting a script tag into the page
|
2753
|
+
// this allows CSP nonce to be set for CSP environments
|
2754
|
+
var head;
|
2755
|
+
function scriptExec(loader, source, sourceMap, address, nonce) {
|
2756
|
+
if (!head)
|
2757
|
+
head = document.head || document.body || document.documentElement;
|
2758
|
+
|
2759
|
+
var script = document.createElement('script');
|
2760
|
+
script.text = getSource(source, sourceMap, address, false);
|
2761
|
+
var onerror = window.onerror;
|
2762
|
+
var e;
|
2763
|
+
window.onerror = function(_e) {
|
2764
|
+
e = addToError(_e, 'Evaluating ' + address);
|
2765
|
+
if (onerror)
|
2766
|
+
onerror.apply(this, arguments);
|
2767
|
+
};
|
2768
|
+
preExec(loader);
|
2769
|
+
|
2770
|
+
if (nonce)
|
2771
|
+
script.setAttribute('nonce', nonce);
|
2772
|
+
|
2773
|
+
head.appendChild(script);
|
2774
|
+
head.removeChild(script);
|
2775
|
+
postExec();
|
2776
|
+
window.onerror = onerror;
|
2777
|
+
if (e)
|
2778
|
+
return e;
|
2779
|
+
}
|
2780
|
+
|
2781
|
+
var vm;
|
2782
|
+
var useVm;
|
2783
|
+
|
2784
|
+
var curSystem;
|
2785
|
+
|
2786
|
+
var callCounter = 0;
|
2787
|
+
function preExec (loader) {
|
2788
|
+
if (callCounter++ == 0)
|
2789
|
+
curSystem = envGlobal.System;
|
2790
|
+
envGlobal.System = envGlobal.SystemJS = loader;
|
2791
|
+
}
|
2792
|
+
function postExec () {
|
2793
|
+
if (--callCounter == 0)
|
2794
|
+
envGlobal.System = envGlobal.SystemJS = curSystem;
|
2795
|
+
}
|
2796
|
+
|
2797
|
+
var supportsScriptExec = false;
|
2798
|
+
if (isBrowser && typeof document != 'undefined' && document.getElementsByTagName) {
|
2799
|
+
if (!(window.chrome && window.chrome.extension || navigator.userAgent.match(/^Node\.js/)))
|
2800
|
+
supportsScriptExec = true;
|
2801
|
+
}
|
2802
|
+
|
2803
|
+
function evaluate (loader, source, sourceMap, address, integrity, nonce, noWrap) {
|
2804
|
+
if (!source)
|
2805
|
+
return;
|
2806
|
+
if (nonce && supportsScriptExec)
|
2807
|
+
return scriptExec(loader, source, sourceMap, address, nonce);
|
2808
|
+
try {
|
2809
|
+
preExec(loader);
|
2810
|
+
// global scoped eval for node (avoids require scope leak)
|
2811
|
+
if (!vm && loader._nodeRequire) {
|
2812
|
+
vm = loader._nodeRequire('vm');
|
2813
|
+
useVm = vm.runInThisContext("typeof System !== 'undefined' && System") === loader;
|
2814
|
+
}
|
2815
|
+
if (useVm)
|
2816
|
+
vm.runInThisContext(getSource(source, sourceMap, address, !noWrap), { filename: address + (sourceMap ? '!transpiled' : '') });
|
2817
|
+
else
|
2818
|
+
(0, eval)(getSource(source, sourceMap, address, !noWrap));
|
2819
|
+
postExec();
|
2820
|
+
}
|
2821
|
+
catch (e) {
|
2822
|
+
postExec();
|
2823
|
+
return e;
|
2824
|
+
}
|
2825
|
+
}
|
2826
|
+
|
2827
|
+
var formatHelpers = function (loader) {
|
2828
|
+
loader.set('@@cjs-helpers', loader.newModule({
|
2829
|
+
requireResolve: requireResolve.bind(loader),
|
2830
|
+
getPathVars: getPathVars
|
2831
|
+
}));
|
2832
|
+
|
2833
|
+
loader.set('@@global-helpers', loader.newModule({
|
2834
|
+
prepareGlobal: prepareGlobal
|
2835
|
+
}));
|
2836
|
+
|
2837
|
+
/*
|
2838
|
+
AMD-compatible require
|
2839
|
+
To copy RequireJS, set window.require = window.requirejs = loader.amdRequire
|
2840
|
+
*/
|
2841
|
+
function require (names, callback, errback, referer) {
|
2842
|
+
// in amd, first arg can be a config object... we just ignore
|
2843
|
+
if (typeof names === 'object' && !(names instanceof Array))
|
2844
|
+
return require.apply(null, Array.prototype.splice.call(arguments, 1, arguments.length - 1));
|
2845
|
+
|
2846
|
+
// amd require
|
2847
|
+
if (typeof names === 'string' && typeof callback === 'function')
|
2848
|
+
names = [names];
|
2849
|
+
if (names instanceof Array) {
|
2850
|
+
var dynamicRequires = [];
|
2851
|
+
for (var i = 0; i < names.length; i++)
|
2852
|
+
dynamicRequires.push(loader.import(names[i], referer));
|
2853
|
+
Promise.all(dynamicRequires).then(function (modules) {
|
2854
|
+
if (callback)
|
2855
|
+
callback.apply(null, modules);
|
2856
|
+
}, errback);
|
2857
|
+
}
|
2858
|
+
|
2859
|
+
// commonjs require
|
2860
|
+
else if (typeof names === 'string') {
|
2861
|
+
var normalized = loader.decanonicalize(names, referer);
|
2862
|
+
var module = loader.get(normalized);
|
2863
|
+
if (!module)
|
2864
|
+
throw new Error('Module not already loaded loading "' + names + '" as ' + normalized + (referer ? ' from "' + referer + '".' : '.'));
|
2865
|
+
return '__useDefault' in module ? module.__useDefault : module;
|
2866
|
+
}
|
2867
|
+
|
2868
|
+
else
|
2869
|
+
throw new TypeError('Invalid require');
|
2870
|
+
}
|
2871
|
+
|
2872
|
+
function define (name, deps, factory) {
|
2873
|
+
if (typeof name !== 'string') {
|
2874
|
+
factory = deps;
|
2875
|
+
deps = name;
|
2876
|
+
name = null;
|
2877
|
+
}
|
2878
|
+
|
2879
|
+
if (!(deps instanceof Array)) {
|
2880
|
+
factory = deps;
|
2881
|
+
deps = ['require', 'exports', 'module'].splice(0, factory.length);
|
2882
|
+
}
|
2883
|
+
|
2884
|
+
if (typeof factory !== 'function')
|
2885
|
+
factory = (function (factory) {
|
2886
|
+
return function() { return factory; }
|
2887
|
+
})(factory);
|
2888
|
+
|
2889
|
+
if (!name) {
|
2890
|
+
if (curMetaDeps) {
|
2891
|
+
deps = deps.concat(curMetaDeps);
|
2892
|
+
curMetaDeps = undefined;
|
2893
|
+
}
|
2894
|
+
}
|
2895
|
+
|
2896
|
+
// remove system dependencies
|
2897
|
+
var requireIndex, exportsIndex, moduleIndex;
|
2898
|
+
|
2899
|
+
if ((requireIndex = deps.indexOf('require')) !== -1) {
|
2900
|
+
|
2901
|
+
deps.splice(requireIndex, 1);
|
2902
|
+
|
2903
|
+
// only trace cjs requires for non-named
|
2904
|
+
// named defines assume the trace has already been done
|
2905
|
+
if (!name)
|
2906
|
+
deps = deps.concat(amdGetCJSDeps(factory.toString(), requireIndex));
|
2907
|
+
}
|
2908
|
+
|
2909
|
+
if ((exportsIndex = deps.indexOf('exports')) !== -1)
|
2910
|
+
deps.splice(exportsIndex, 1);
|
2911
|
+
|
2912
|
+
if ((moduleIndex = deps.indexOf('module')) !== -1)
|
2913
|
+
deps.splice(moduleIndex, 1);
|
2914
|
+
|
2915
|
+
function execute (req, exports, module) {
|
2916
|
+
var depValues = [];
|
2917
|
+
for (var i = 0; i < deps.length; i++)
|
2918
|
+
depValues.push(req(deps[i]));
|
2919
|
+
|
2920
|
+
module.uri = module.id;
|
2921
|
+
|
2922
|
+
module.config = noop;
|
2923
|
+
|
2924
|
+
// add back in system dependencies
|
2925
|
+
if (moduleIndex !== -1)
|
2926
|
+
depValues.splice(moduleIndex, 0, module);
|
2927
|
+
|
2928
|
+
if (exportsIndex !== -1)
|
2929
|
+
depValues.splice(exportsIndex, 0, exports);
|
2930
|
+
|
2931
|
+
if (requireIndex !== -1) {
|
2932
|
+
var contextualRequire = function (names, callback, errback) {
|
2933
|
+
if (typeof names === 'string' && typeof callback !== 'function')
|
2934
|
+
return req(names);
|
2935
|
+
return require.call(loader, names, callback, errback, module.id);
|
2936
|
+
};
|
2937
|
+
contextualRequire.toUrl = function (name) {
|
2938
|
+
return loader.normalizeSync(name, module.id);
|
2939
|
+
};
|
2940
|
+
depValues.splice(requireIndex, 0, contextualRequire);
|
2941
|
+
}
|
2942
|
+
|
2943
|
+
// set global require to AMD require
|
2944
|
+
var curRequire = envGlobal.require;
|
2945
|
+
envGlobal.require = require;
|
2946
|
+
|
2947
|
+
var output = factory.apply(exportsIndex === -1 ? envGlobal : exports, depValues);
|
2948
|
+
|
2949
|
+
envGlobal.require = curRequire;
|
2950
|
+
|
2951
|
+
if (typeof output !== 'undefined')
|
2952
|
+
module.exports = output;
|
2953
|
+
}
|
2954
|
+
|
2955
|
+
// anonymous define
|
2956
|
+
if (!name) {
|
2957
|
+
loader.registerDynamic(deps, false, curEsModule ? wrapEsModuleExecute(execute) : execute);
|
2958
|
+
}
|
2959
|
+
else {
|
2960
|
+
loader.registerDynamic(name, deps, false, execute);
|
2961
|
+
|
2962
|
+
// if we don't have any other defines,
|
2963
|
+
// then let this be an anonymous define
|
2964
|
+
// this is just to support single modules of the form:
|
2965
|
+
// define('jquery')
|
2966
|
+
// still loading anonymously
|
2967
|
+
// because it is done widely enough to be useful
|
2968
|
+
// as soon as there is more than one define, this gets removed though
|
2969
|
+
if (lastNamedDefine) {
|
2970
|
+
lastNamedDefine = undefined;
|
2971
|
+
multipleNamedDefines = true;
|
2972
|
+
}
|
2973
|
+
else if (!multipleNamedDefines) {
|
2974
|
+
lastNamedDefine = [deps, execute];
|
2975
|
+
}
|
2976
|
+
}
|
2977
|
+
}
|
2978
|
+
define.amd = {};
|
2979
|
+
|
2980
|
+
loader.amdDefine = define;
|
2981
|
+
loader.amdRequire = require;
|
2982
|
+
};
|
2983
|
+
|
2984
|
+
// CJS
|
2985
|
+
var windowOrigin;
|
2986
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined' && window.location)
|
2987
|
+
windowOrigin = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');
|
2988
|
+
|
2989
|
+
function stripOrigin(path) {
|
2990
|
+
if (path.substr(0, 8) === 'file:///')
|
2991
|
+
return path.substr(7 + !!isWindows);
|
2992
|
+
|
2993
|
+
if (windowOrigin && path.substr(0, windowOrigin.length) === windowOrigin)
|
2994
|
+
return path.substr(windowOrigin.length);
|
2995
|
+
|
2996
|
+
return path;
|
2997
|
+
}
|
2998
|
+
|
2999
|
+
function requireResolve (request, parentId) {
|
3000
|
+
return stripOrigin(this.normalizeSync(request, parentId));
|
3001
|
+
}
|
3002
|
+
|
3003
|
+
function getPathVars (moduleId) {
|
3004
|
+
// remove any plugin syntax
|
3005
|
+
var pluginIndex = moduleId.lastIndexOf('!');
|
3006
|
+
var filename;
|
3007
|
+
if (pluginIndex !== -1)
|
3008
|
+
filename = moduleId.substr(0, pluginIndex);
|
3009
|
+
else
|
3010
|
+
filename = moduleId;
|
3011
|
+
|
3012
|
+
var dirname = filename.split('/');
|
3013
|
+
dirname.pop();
|
3014
|
+
dirname = dirname.join('/');
|
3015
|
+
|
3016
|
+
return {
|
3017
|
+
filename: stripOrigin(filename),
|
3018
|
+
dirname: stripOrigin(dirname)
|
3019
|
+
};
|
3020
|
+
}
|
3021
|
+
|
3022
|
+
var commentRegEx$1 = /(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg;
|
3023
|
+
var stringRegEx$1 = /("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g;
|
3024
|
+
|
3025
|
+
// extract CJS dependencies from source text via regex static analysis
|
3026
|
+
// read require('x') statements not in comments or strings
|
3027
|
+
function getCJSDeps (source) {
|
3028
|
+
cjsRequireRegEx.lastIndex = commentRegEx$1.lastIndex = stringRegEx$1.lastIndex = 0;
|
3029
|
+
|
3030
|
+
var deps = [];
|
3031
|
+
|
3032
|
+
var match;
|
3033
|
+
|
3034
|
+
// track string and comment locations for unminified source
|
3035
|
+
var stringLocations = [], commentLocations = [];
|
3036
|
+
|
3037
|
+
function inLocation (locations, match) {
|
3038
|
+
for (var i = 0; i < locations.length; i++)
|
3039
|
+
if (locations[i][0] < match.index && locations[i][1] > match.index)
|
3040
|
+
return true;
|
3041
|
+
return false;
|
3042
|
+
}
|
3043
|
+
|
3044
|
+
if (source.length / source.split('\n').length < 200) {
|
3045
|
+
while (match = stringRegEx$1.exec(source))
|
3046
|
+
stringLocations.push([match.index, match.index + match[0].length]);
|
3047
|
+
|
3048
|
+
// TODO: track template literals here before comments
|
3049
|
+
|
3050
|
+
while (match = commentRegEx$1.exec(source)) {
|
3051
|
+
// only track comments not starting in strings
|
3052
|
+
if (!inLocation(stringLocations, match))
|
3053
|
+
commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]);
|
3054
|
+
}
|
3055
|
+
}
|
3056
|
+
|
3057
|
+
while (match = cjsRequireRegEx.exec(source)) {
|
3058
|
+
// ensure we're not within a string or comment location
|
3059
|
+
if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) {
|
3060
|
+
var dep = match[1].substr(1, match[1].length - 2);
|
3061
|
+
// skip cases like require('" + file + "')
|
3062
|
+
if (dep.match(/"|'/))
|
3063
|
+
continue;
|
3064
|
+
deps.push(dep);
|
3065
|
+
}
|
3066
|
+
}
|
3067
|
+
|
3068
|
+
return deps;
|
3069
|
+
}
|
3070
|
+
|
3071
|
+
// Global
|
3072
|
+
// bare minimum ignores
|
3073
|
+
var ignoredGlobalProps = ['_g', 'sessionStorage', 'localStorage', 'clipboardData', 'frames', 'frameElement', 'external',
|
3074
|
+
'mozAnimationStartTime', 'webkitStorageInfo', 'webkitIndexedDB', 'mozInnerScreenY', 'mozInnerScreenX'];
|
3075
|
+
|
3076
|
+
var globalSnapshot;
|
3077
|
+
function globalIterator (globalName) {
|
3078
|
+
if (ignoredGlobalProps.indexOf(globalName) !== -1)
|
3079
|
+
return;
|
3080
|
+
try {
|
3081
|
+
var value = envGlobal[globalName];
|
3082
|
+
}
|
3083
|
+
catch (e) {
|
3084
|
+
ignoredGlobalProps.push(globalName);
|
3085
|
+
}
|
3086
|
+
this(globalName, value);
|
3087
|
+
}
|
3088
|
+
|
3089
|
+
function getGlobalValue (exports) {
|
3090
|
+
if (typeof exports === 'string')
|
3091
|
+
return readMemberExpression(exports, envGlobal);
|
3092
|
+
|
3093
|
+
if (!(exports instanceof Array))
|
3094
|
+
throw new Error('Global exports must be a string or array.');
|
3095
|
+
|
3096
|
+
var globalValue = {};
|
3097
|
+
for (var i = 0; i < exports.length; i++)
|
3098
|
+
globalValue[exports[i].split('.').pop()] = readMemberExpression(exports[i], envGlobal);
|
3099
|
+
return globalValue;
|
3100
|
+
}
|
3101
|
+
|
3102
|
+
function prepareGlobal (moduleName, exports, globals, encapsulate) {
|
3103
|
+
// disable module detection
|
3104
|
+
var curDefine = envGlobal.define;
|
3105
|
+
|
3106
|
+
envGlobal.define = undefined;
|
3107
|
+
|
3108
|
+
// set globals
|
3109
|
+
var oldGlobals;
|
3110
|
+
if (globals) {
|
3111
|
+
oldGlobals = {};
|
3112
|
+
for (var g in globals) {
|
3113
|
+
oldGlobals[g] = envGlobal[g];
|
3114
|
+
envGlobal[g] = globals[g];
|
3115
|
+
}
|
3116
|
+
}
|
3117
|
+
|
3118
|
+
// store a complete copy of the global object in order to detect changes
|
3119
|
+
if (!exports) {
|
3120
|
+
globalSnapshot = {};
|
3121
|
+
|
3122
|
+
Object.keys(envGlobal).forEach(globalIterator, function (name, value) {
|
3123
|
+
globalSnapshot[name] = value;
|
3124
|
+
});
|
3125
|
+
}
|
3126
|
+
|
3127
|
+
// return function to retrieve global
|
3128
|
+
return function () {
|
3129
|
+
var globalValue = exports ? getGlobalValue(exports) : {};
|
3130
|
+
|
3131
|
+
var singleGlobal;
|
3132
|
+
var multipleExports = !!exports;
|
3133
|
+
|
3134
|
+
if (!exports || encapsulate)
|
3135
|
+
Object.keys(envGlobal).forEach(globalIterator, function (name, value) {
|
3136
|
+
if (globalSnapshot[name] === value)
|
3137
|
+
return;
|
3138
|
+
if (value === undefined)
|
3139
|
+
return;
|
3140
|
+
|
3141
|
+
// allow global encapsulation where globals are removed
|
3142
|
+
if (encapsulate)
|
3143
|
+
envGlobal[name] = undefined;
|
3144
|
+
|
3145
|
+
if (!exports) {
|
3146
|
+
globalValue[name] = value;
|
3147
|
+
|
3148
|
+
if (singleGlobal !== undefined) {
|
3149
|
+
if (!multipleExports && singleGlobal !== value)
|
3150
|
+
multipleExports = true;
|
3151
|
+
}
|
3152
|
+
else {
|
3153
|
+
singleGlobal = value;
|
3154
|
+
}
|
3155
|
+
}
|
3156
|
+
});
|
3157
|
+
|
3158
|
+
globalValue = multipleExports ? globalValue : singleGlobal;
|
3159
|
+
|
3160
|
+
// revert globals
|
3161
|
+
if (oldGlobals) {
|
3162
|
+
for (var g in oldGlobals)
|
3163
|
+
envGlobal[g] = oldGlobals[g];
|
3164
|
+
}
|
3165
|
+
envGlobal.define = curDefine;
|
3166
|
+
|
3167
|
+
return globalValue;
|
3168
|
+
};
|
3169
|
+
}
|
3170
|
+
|
3171
|
+
// AMD
|
3172
|
+
var cjsRequirePre = "(?:^|[^$_a-zA-Z\\xA0-\\uFFFF.])";
|
3173
|
+
var cjsRequirePost = "\\s*\\(\\s*(\"([^\"]+)\"|'([^']+)')\\s*\\)";
|
3174
|
+
var fnBracketRegEx = /\(([^\)]*)\)/;
|
3175
|
+
var wsRegEx = /^\s+|\s+$/g;
|
3176
|
+
|
3177
|
+
var requireRegExs = {};
|
3178
|
+
|
3179
|
+
function amdGetCJSDeps(source, requireIndex) {
|
3180
|
+
|
3181
|
+
// remove comments
|
3182
|
+
source = source.replace(commentRegEx$1, '');
|
3183
|
+
|
3184
|
+
// determine the require alias
|
3185
|
+
var params = source.match(fnBracketRegEx);
|
3186
|
+
var requireAlias = (params[1].split(',')[requireIndex] || 'require').replace(wsRegEx, '');
|
3187
|
+
|
3188
|
+
// find or generate the regex for this requireAlias
|
3189
|
+
var requireRegEx = requireRegExs[requireAlias] || (requireRegExs[requireAlias] = new RegExp(cjsRequirePre + requireAlias + cjsRequirePost, 'g'));
|
3190
|
+
|
3191
|
+
requireRegEx.lastIndex = 0;
|
3192
|
+
|
3193
|
+
var deps = [];
|
3194
|
+
|
3195
|
+
var match;
|
3196
|
+
while (match = requireRegEx.exec(source))
|
3197
|
+
deps.push(match[2] || match[3]);
|
3198
|
+
|
3199
|
+
return deps;
|
3200
|
+
}
|
3201
|
+
|
3202
|
+
function wrapEsModuleExecute (execute) {
|
3203
|
+
return function (require, exports, module) {
|
3204
|
+
execute(require, exports, module);
|
3205
|
+
exports = module.exports;
|
3206
|
+
if ((typeof exports === 'object' || typeof exports === 'function') && !('__esModule' in exports))
|
3207
|
+
Object.defineProperty(module.exports, '__esModule', {
|
3208
|
+
value: true
|
3209
|
+
});
|
3210
|
+
};
|
3211
|
+
}
|
3212
|
+
|
3213
|
+
// generate anonymous define from singular named define
|
3214
|
+
var multipleNamedDefines = false;
|
3215
|
+
var lastNamedDefine;
|
3216
|
+
var curMetaDeps;
|
3217
|
+
var curEsModule = false;
|
3218
|
+
function clearLastDefine (metaDeps, esModule) {
|
3219
|
+
curMetaDeps = metaDeps;
|
3220
|
+
curEsModule = esModule;
|
3221
|
+
lastNamedDefine = undefined;
|
3222
|
+
multipleNamedDefines = false;
|
3223
|
+
}
|
3224
|
+
function registerLastDefine (loader) {
|
3225
|
+
if (lastNamedDefine)
|
3226
|
+
loader.registerDynamic(curMetaDeps ? lastNamedDefine[0].concat(curMetaDeps) : lastNamedDefine[0],
|
3227
|
+
false, curEsModule ? wrapEsModuleExecute(lastNamedDefine[1]) : lastNamedDefine[1]);
|
3228
|
+
|
3229
|
+
// bundles are an empty module
|
3230
|
+
else if (multipleNamedDefines)
|
3231
|
+
loader.registerDynamic([], false, noop);
|
3232
|
+
}
|
3233
|
+
|
3234
|
+
var supportsScriptLoad = (isBrowser || isWorker) && typeof navigator !== 'undefined' && navigator.userAgent && !navigator.userAgent.match(/MSIE (9|10).0/);
|
3235
|
+
|
3236
|
+
// include the node require since we're overriding it
|
3237
|
+
var nodeRequire;
|
3238
|
+
if (typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser)
|
3239
|
+
nodeRequire = require;
|
3240
|
+
|
3241
|
+
function setMetaEsModule (metadata, moduleValue) {
|
3242
|
+
if (metadata.load.esModule && (typeof moduleValue === 'object' || typeof moduleValue === 'function') &&
|
3243
|
+
!('__esModule' in moduleValue))
|
3244
|
+
Object.defineProperty(moduleValue, '__esModule', {
|
3245
|
+
value: true
|
3246
|
+
});
|
3247
|
+
}
|
3248
|
+
|
3249
|
+
function instantiate$1 (key, processAnonRegister) {
|
3250
|
+
var loader = this;
|
3251
|
+
var config = this[CONFIG];
|
3252
|
+
// first do bundles and depCache
|
3253
|
+
return (loadBundlesAndDepCache(config, this, key) || resolvedPromise)
|
3254
|
+
.then(function () {
|
3255
|
+
if (processAnonRegister())
|
3256
|
+
return;
|
3257
|
+
|
3258
|
+
var metadata = loader[METADATA][key];
|
3259
|
+
|
3260
|
+
// node module loading
|
3261
|
+
if (key.substr(0, 6) === '@node/') {
|
3262
|
+
if (!loader._nodeRequire)
|
3263
|
+
throw new TypeError('Error loading ' + key + '. Can only load node core modules in Node.');
|
3264
|
+
loader.registerDynamic([], false, function () {
|
3265
|
+
return loadNodeModule.call(loader, key.substr(6), loader.baseURL);
|
3266
|
+
});
|
3267
|
+
processAnonRegister();
|
3268
|
+
return;
|
3269
|
+
}
|
3270
|
+
|
3271
|
+
if (metadata.load.scriptLoad ) {
|
3272
|
+
if (metadata.load.pluginKey || !supportsScriptLoad) {
|
3273
|
+
metadata.load.scriptLoad = false;
|
3274
|
+
warn.call(config, 'scriptLoad not supported for "' + key + '"');
|
3275
|
+
}
|
3276
|
+
}
|
3277
|
+
else if (metadata.load.scriptLoad !== false && !metadata.load.pluginKey && supportsScriptLoad) {
|
3278
|
+
// auto script load AMD, global without deps
|
3279
|
+
if (!metadata.load.deps && !metadata.load.globals &&
|
3280
|
+
(metadata.load.format === 'system' || metadata.load.format === 'register' || metadata.load.format === 'global' && metadata.load.exports))
|
3281
|
+
metadata.load.scriptLoad = true;
|
3282
|
+
}
|
3283
|
+
|
3284
|
+
// fetch / translate / instantiate pipeline
|
3285
|
+
if (!metadata.load.scriptLoad)
|
3286
|
+
return initializePlugin(loader, key, metadata)
|
3287
|
+
.then(function () {
|
3288
|
+
return runFetchPipeline(loader, key, metadata, processAnonRegister, config.wasm);
|
3289
|
+
})
|
3290
|
+
|
3291
|
+
// just script loading
|
3292
|
+
return new Promise(function (resolve, reject) {
|
3293
|
+
if (metadata.load.format === 'amd' && envGlobal.define !== loader.amdDefine)
|
3294
|
+
throw new Error('Loading AMD with scriptLoad requires setting the global `' + globalName + '.define = SystemJS.amdDefine`');
|
3295
|
+
|
3296
|
+
scriptLoad(key, metadata.load.crossOrigin, metadata.load.integrity, function () {
|
3297
|
+
if (!processAnonRegister()) {
|
3298
|
+
metadata.load.format = 'global';
|
3299
|
+
var globalValue = metadata.load.exports && getGlobalValue(metadata.load.exports);
|
3300
|
+
loader.registerDynamic([], false, function () {
|
3301
|
+
setMetaEsModule(metadata, globalValue);
|
3302
|
+
return globalValue;
|
3303
|
+
});
|
3304
|
+
processAnonRegister();
|
3305
|
+
}
|
3306
|
+
|
3307
|
+
resolve();
|
3308
|
+
}, reject);
|
3309
|
+
});
|
3310
|
+
})
|
3311
|
+
.then(function (instantiated) {
|
3312
|
+
delete loader[METADATA][key];
|
3313
|
+
return instantiated;
|
3314
|
+
});
|
3315
|
+
}
|
3316
|
+
|
3317
|
+
function initializePlugin (loader, key, metadata) {
|
3318
|
+
if (!metadata.pluginKey)
|
3319
|
+
return resolvedPromise;
|
3320
|
+
|
3321
|
+
return loader.import(metadata.pluginKey).then(function (plugin) {
|
3322
|
+
metadata.pluginModule = plugin;
|
3323
|
+
metadata.pluginLoad = {
|
3324
|
+
name: key,
|
3325
|
+
address: metadata.pluginArgument,
|
3326
|
+
source: undefined,
|
3327
|
+
metadata: metadata.load
|
3328
|
+
};
|
3329
|
+
metadata.load.deps = metadata.load.deps || [];
|
3330
|
+
});
|
3331
|
+
}
|
3332
|
+
|
3333
|
+
function loadBundlesAndDepCache (config, loader, key) {
|
3334
|
+
// load direct deps, in turn will pick up their trace trees
|
3335
|
+
var deps = config.depCache[key];
|
3336
|
+
if (deps) {
|
3337
|
+
for (var i = 0; i < deps.length; i++)
|
3338
|
+
loader.normalize(deps[i], key).then(preloadScript);
|
3339
|
+
}
|
3340
|
+
else {
|
3341
|
+
var matched = false;
|
3342
|
+
for (var b in config.bundles) {
|
3343
|
+
for (var i = 0; i < config.bundles[b].length; i++) {
|
3344
|
+
var curModule = config.bundles[b][i];
|
3345
|
+
|
3346
|
+
if (curModule === key) {
|
3347
|
+
matched = true;
|
3348
|
+
break;
|
3349
|
+
}
|
3350
|
+
|
3351
|
+
// wildcard in bundles includes / boundaries
|
3352
|
+
if (curModule.indexOf('*') !== -1) {
|
3353
|
+
var parts = curModule.split('*');
|
3354
|
+
if (parts.length !== 2) {
|
3355
|
+
config.bundles[b].splice(i--, 1);
|
3356
|
+
continue;
|
3357
|
+
}
|
3358
|
+
|
3359
|
+
if (key.substr(0, parts[0].length) === parts[0] &&
|
3360
|
+
key.substr(key.length - parts[1].length, parts[1].length) === parts[1]) {
|
3361
|
+
matched = true;
|
3362
|
+
break;
|
3363
|
+
}
|
3364
|
+
}
|
3365
|
+
}
|
3366
|
+
|
3367
|
+
if (matched)
|
3368
|
+
return loader.import(b);
|
3369
|
+
}
|
3370
|
+
}
|
3371
|
+
}
|
3372
|
+
|
3373
|
+
function runFetchPipeline (loader, key, metadata, processAnonRegister, wasm) {
|
3374
|
+
if (metadata.load.exports && !metadata.load.format)
|
3375
|
+
metadata.load.format = 'global';
|
3376
|
+
|
3377
|
+
return resolvedPromise
|
3378
|
+
|
3379
|
+
// locate
|
3380
|
+
.then(function () {
|
3381
|
+
if (!metadata.pluginModule || !metadata.pluginModule.locate)
|
3382
|
+
return;
|
3383
|
+
|
3384
|
+
return Promise.resolve(metadata.pluginModule.locate.call(loader, metadata.pluginLoad))
|
3385
|
+
.then(function (address) {
|
3386
|
+
if (address)
|
3387
|
+
metadata.pluginLoad.address = address;
|
3388
|
+
});
|
3389
|
+
})
|
3390
|
+
|
3391
|
+
// fetch
|
3392
|
+
.then(function () {
|
3393
|
+
if (!metadata.pluginModule)
|
3394
|
+
return fetch$1(key, metadata.load.authorization, metadata.load.integrity, wasm);
|
3395
|
+
|
3396
|
+
wasm = false;
|
3397
|
+
|
3398
|
+
if (!metadata.pluginModule.fetch)
|
3399
|
+
return fetch$1(metadata.pluginLoad.address, metadata.load.authorization, metadata.load.integrity, false);
|
3400
|
+
|
3401
|
+
return metadata.pluginModule.fetch.call(loader, metadata.pluginLoad, function (load) {
|
3402
|
+
return fetch$1(load.address, metadata.load.authorization, metadata.load.integrity, false);
|
3403
|
+
});
|
3404
|
+
})
|
3405
|
+
|
3406
|
+
.then(function (fetched) {
|
3407
|
+
// fetch is already a utf-8 string if not doing wasm detection
|
3408
|
+
if (!wasm || typeof fetched === 'string')
|
3409
|
+
return translateAndInstantiate(loader, key, fetched, metadata, processAnonRegister);
|
3410
|
+
|
3411
|
+
return checkInstantiateWasm(loader, fetched, processAnonRegister)
|
3412
|
+
.then(function (wasmInstantiated) {
|
3413
|
+
if (wasmInstantiated)
|
3414
|
+
return;
|
3415
|
+
|
3416
|
+
// not wasm -> convert buffer into utf-8 string to execute as a module
|
3417
|
+
// TextDecoder compatibility matches WASM currently. Need to keep checking this.
|
3418
|
+
// The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder
|
3419
|
+
var stringSource = isBrowser ? new TextDecoder('utf-8').decode(new Uint8Array(fetched)) : fetched.toString();
|
3420
|
+
return translateAndInstantiate(loader, key, stringSource, metadata, processAnonRegister);
|
3421
|
+
});
|
3422
|
+
});
|
3423
|
+
}
|
3424
|
+
|
3425
|
+
function translateAndInstantiate (loader, key, source, metadata, processAnonRegister) {
|
3426
|
+
return Promise.resolve(source)
|
3427
|
+
// translate
|
3428
|
+
.then(function (source) {
|
3429
|
+
if (metadata.load.format === 'detect')
|
3430
|
+
metadata.load.format = undefined;
|
3431
|
+
|
3432
|
+
readMetaSyntax(source, metadata);
|
3433
|
+
|
3434
|
+
if (!metadata.pluginModule)
|
3435
|
+
return source;
|
3436
|
+
|
3437
|
+
metadata.pluginLoad.source = source;
|
3438
|
+
|
3439
|
+
if (!metadata.pluginModule.translate)
|
3440
|
+
return source;
|
3441
|
+
|
3442
|
+
return Promise.resolve(metadata.pluginModule.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))
|
3443
|
+
.then(function (translated) {
|
3444
|
+
if (metadata.load.sourceMap) {
|
3445
|
+
if (typeof metadata.load.sourceMap !== 'object')
|
3446
|
+
throw new Error('metadata.load.sourceMap must be set to an object.');
|
3447
|
+
sanitizeSourceMap(metadata.pluginLoad.address, metadata.load.sourceMap);
|
3448
|
+
}
|
3449
|
+
|
3450
|
+
if (typeof translated === 'string')
|
3451
|
+
return translated;
|
3452
|
+
else
|
3453
|
+
return metadata.pluginLoad.source;
|
3454
|
+
});
|
3455
|
+
})
|
3456
|
+
.then(function (source) {
|
3457
|
+
if (!metadata.load.format && source.substring(0, 8) === '"bundle"') {
|
3458
|
+
metadata.load.format = 'system';
|
3459
|
+
return source;
|
3460
|
+
}
|
3461
|
+
|
3462
|
+
if (metadata.load.format === 'register' || !metadata.load.format && detectRegisterFormat(source)) {
|
3463
|
+
metadata.load.format = 'register';
|
3464
|
+
return source;
|
3465
|
+
}
|
3466
|
+
|
3467
|
+
if (metadata.load.format !== 'esm' && (metadata.load.format || !source.match(esmRegEx))) {
|
3468
|
+
return source;
|
3469
|
+
}
|
3470
|
+
|
3471
|
+
metadata.load.format = 'esm';
|
3472
|
+
return transpile(loader, source, key, metadata, processAnonRegister);
|
3473
|
+
})
|
3474
|
+
|
3475
|
+
// instantiate
|
3476
|
+
.then(function (translated) {
|
3477
|
+
if (typeof translated !== 'string' || !metadata.pluginModule || !metadata.pluginModule.instantiate)
|
3478
|
+
return translated;
|
3479
|
+
|
3480
|
+
var calledInstantiate = false;
|
3481
|
+
metadata.pluginLoad.source = translated;
|
3482
|
+
return Promise.resolve(metadata.pluginModule.instantiate.call(loader, metadata.pluginLoad, function (load) {
|
3483
|
+
translated = load.source;
|
3484
|
+
metadata.load = load.metadata;
|
3485
|
+
if (calledInstantiate)
|
3486
|
+
throw new Error('Instantiate must only be called once.');
|
3487
|
+
calledInstantiate = true;
|
3488
|
+
}))
|
3489
|
+
.then(function (result) {
|
3490
|
+
if (calledInstantiate)
|
3491
|
+
return translated;
|
3492
|
+
return protectedCreateNamespace(result);
|
3493
|
+
});
|
3494
|
+
})
|
3495
|
+
.then(function (source) {
|
3496
|
+
// plugin instantiate result case
|
3497
|
+
if (typeof source !== 'string')
|
3498
|
+
return source;
|
3499
|
+
|
3500
|
+
if (!metadata.load.format)
|
3501
|
+
metadata.load.format = detectLegacyFormat(source);
|
3502
|
+
|
3503
|
+
var registered = false;
|
3504
|
+
|
3505
|
+
switch (metadata.load.format) {
|
3506
|
+
case 'esm':
|
3507
|
+
case 'register':
|
3508
|
+
case 'system':
|
3509
|
+
var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);
|
3510
|
+
if (err)
|
3511
|
+
throw err;
|
3512
|
+
if (!processAnonRegister())
|
3513
|
+
return emptyModule;
|
3514
|
+
return;
|
3515
|
+
break;
|
3516
|
+
|
3517
|
+
case 'json':
|
3518
|
+
// warn.call(config, '"json" module format is deprecated.');
|
3519
|
+
var parsed = JSON.parse(source);
|
3520
|
+
return loader.newModule({ default: parsed, __useDefault: parsed });
|
3521
|
+
|
3522
|
+
case 'amd':
|
3523
|
+
var curDefine = envGlobal.define;
|
3524
|
+
envGlobal.define = loader.amdDefine;
|
3525
|
+
|
3526
|
+
clearLastDefine(metadata.load.deps, metadata.load.esModule);
|
3527
|
+
|
3528
|
+
var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);
|
3529
|
+
|
3530
|
+
// if didn't register anonymously, use the last named define if only one
|
3531
|
+
registered = processAnonRegister();
|
3532
|
+
if (!registered) {
|
3533
|
+
registerLastDefine(loader);
|
3534
|
+
registered = processAnonRegister();
|
3535
|
+
}
|
3536
|
+
|
3537
|
+
envGlobal.define = curDefine;
|
3538
|
+
|
3539
|
+
if (err)
|
3540
|
+
throw err;
|
3541
|
+
break;
|
3542
|
+
|
3543
|
+
case 'cjs':
|
3544
|
+
var metaDeps = metadata.load.deps;
|
3545
|
+
var deps = (metadata.load.deps || []).concat(metadata.load.cjsRequireDetection ? getCJSDeps(source) : []);
|
3546
|
+
|
3547
|
+
for (var g in metadata.load.globals)
|
3548
|
+
if (metadata.load.globals[g])
|
3549
|
+
deps.push(metadata.load.globals[g]);
|
3550
|
+
|
3551
|
+
loader.registerDynamic(deps, true, function (require, exports, module) {
|
3552
|
+
require.resolve = function (key) {
|
3553
|
+
return requireResolve.call(loader, key, module.id);
|
3554
|
+
};
|
3555
|
+
// support module.paths ish
|
3556
|
+
module.paths = [];
|
3557
|
+
module.require = require;
|
3558
|
+
|
3559
|
+
// ensure meta deps execute first
|
3560
|
+
if (!metadata.load.cjsDeferDepsExecute && metaDeps)
|
3561
|
+
for (var i = 0; i < metaDeps.length; i++)
|
3562
|
+
require(metaDeps[i]);
|
3563
|
+
|
3564
|
+
var pathVars = getPathVars(module.id);
|
3565
|
+
var __cjsWrapper = {
|
3566
|
+
exports: exports,
|
3567
|
+
args: [require, exports, module, pathVars.filename, pathVars.dirname, envGlobal, envGlobal]
|
3568
|
+
};
|
3569
|
+
|
3570
|
+
var cjsWrapper = "(function (require, exports, module, __filename, __dirname, global, GLOBAL";
|
3571
|
+
|
3572
|
+
// add metadata.globals to the wrapper arguments
|
3573
|
+
if (metadata.load.globals)
|
3574
|
+
for (var g in metadata.load.globals) {
|
3575
|
+
__cjsWrapper.args.push(require(metadata.load.globals[g]));
|
3576
|
+
cjsWrapper += ", " + g;
|
3577
|
+
}
|
3578
|
+
|
3579
|
+
// disable AMD detection
|
3580
|
+
var define = envGlobal.define;
|
3581
|
+
envGlobal.define = undefined;
|
3582
|
+
envGlobal.__cjsWrapper = __cjsWrapper;
|
3583
|
+
|
3584
|
+
source = cjsWrapper + ") {" + source.replace(hashBangRegEx, '') + "\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);";
|
3585
|
+
|
3586
|
+
var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, false);
|
3587
|
+
if (err)
|
3588
|
+
throw err;
|
3589
|
+
|
3590
|
+
setMetaEsModule(metadata, exports);
|
3591
|
+
|
3592
|
+
envGlobal.__cjsWrapper = undefined;
|
3593
|
+
envGlobal.define = define;
|
3594
|
+
});
|
3595
|
+
registered = processAnonRegister();
|
3596
|
+
break;
|
3597
|
+
|
3598
|
+
case 'global':
|
3599
|
+
var deps = metadata.load.deps || [];
|
3600
|
+
for (var g in metadata.load.globals) {
|
3601
|
+
var gl = metadata.load.globals[g];
|
3602
|
+
if (gl)
|
3603
|
+
deps.push(gl);
|
3604
|
+
}
|
3605
|
+
|
3606
|
+
loader.registerDynamic(deps, false, function (require, exports, module) {
|
3607
|
+
var globals;
|
3608
|
+
if (metadata.load.globals) {
|
3609
|
+
globals = {};
|
3610
|
+
for (var g in metadata.load.globals)
|
3611
|
+
if (metadata.load.globals[g])
|
3612
|
+
globals[g] = require(metadata.load.globals[g]);
|
3613
|
+
}
|
3614
|
+
|
3615
|
+
var exportName = metadata.load.exports;
|
3616
|
+
|
3617
|
+
if (exportName)
|
3618
|
+
source += '\n' + globalName + '["' + exportName + '"] = ' + exportName + ';';
|
3619
|
+
|
3620
|
+
var retrieveGlobal = prepareGlobal(module.id, exportName, globals, metadata.load.encapsulateGlobal);
|
3621
|
+
var err = evaluate(loader, source, metadata.load.sourceMap, key, metadata.load.integrity, metadata.load.nonce, true);
|
3622
|
+
|
3623
|
+
if (err)
|
3624
|
+
throw err;
|
3625
|
+
|
3626
|
+
var output = retrieveGlobal();
|
3627
|
+
setMetaEsModule(metadata, output);
|
3628
|
+
return output;
|
3629
|
+
});
|
3630
|
+
registered = processAnonRegister();
|
3631
|
+
break;
|
3632
|
+
|
3633
|
+
default:
|
3634
|
+
throw new TypeError('Unknown module format "' + metadata.load.format + '" for "' + key + '".' + (metadata.load.format === 'es6' ? ' Use "esm" instead here.' : ''));
|
3635
|
+
}
|
3636
|
+
|
3637
|
+
if (!registered)
|
3638
|
+
throw new Error('Module ' + key + ' detected as ' + metadata.load.format + ' but didn\'t execute correctly.');
|
3639
|
+
});
|
3640
|
+
}
|
3641
|
+
|
3642
|
+
var globalName = typeof self != 'undefined' ? 'self' : 'global';
|
3643
|
+
|
3644
|
+
// good enough ES6 module detection regex - format detections not designed to be accurate, but to handle the 99% use case
|
3645
|
+
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))/;
|
3646
|
+
|
3647
|
+
var leadingCommentAndMetaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)*\s*/;
|
3648
|
+
function detectRegisterFormat(source) {
|
3649
|
+
var leadingCommentAndMeta = source.match(leadingCommentAndMetaRegEx);
|
3650
|
+
return leadingCommentAndMeta && source.substr(leadingCommentAndMeta[0].length, 15) === 'System.register';
|
3651
|
+
}
|
3652
|
+
|
3653
|
+
// AMD Module Format Detection RegEx
|
3654
|
+
// define([.., .., ..], ...)
|
3655
|
+
// define(varName); || define(function(require, exports) {}); || define({})
|
3656
|
+
var 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]*\))/;
|
3657
|
+
|
3658
|
+
/// require('...') || exports[''] = ... || exports.asd = ... || module.exports = ...
|
3659
|
+
var cjsExportsRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/;
|
3660
|
+
// used to support leading #!/usr/bin/env in scripts as supported in Node
|
3661
|
+
var hashBangRegEx = /^\#\!.*/;
|
3662
|
+
|
3663
|
+
function detectLegacyFormat (source) {
|
3664
|
+
if (source.match(amdRegEx))
|
3665
|
+
return 'amd';
|
3666
|
+
|
3667
|
+
cjsExportsRegEx.lastIndex = 0;
|
3668
|
+
cjsRequireRegEx.lastIndex = 0;
|
3669
|
+
if (cjsRequireRegEx.exec(source) || cjsExportsRegEx.exec(source))
|
3670
|
+
return 'cjs';
|
3671
|
+
|
3672
|
+
// global is the fallback format
|
3673
|
+
return 'global';
|
3674
|
+
}
|
3675
|
+
|
3676
|
+
function sanitizeSourceMap (address, sourceMap) {
|
3677
|
+
var originalName = address.split('!')[0];
|
3678
|
+
|
3679
|
+
// force set the filename of the original file
|
3680
|
+
if (!sourceMap.file || sourceMap.file == address)
|
3681
|
+
sourceMap.file = originalName + '!transpiled';
|
3682
|
+
|
3683
|
+
// force set the sources list if only one source
|
3684
|
+
if (!sourceMap.sources || sourceMap.sources.length <= 1 && (!sourceMap.sources[0] || sourceMap.sources[0] === address))
|
3685
|
+
sourceMap.sources = [originalName];
|
3686
|
+
}
|
3687
|
+
|
3688
|
+
function transpile (loader, source, key, metadata, processAnonRegister) {
|
3689
|
+
if (!loader.transpiler)
|
3690
|
+
throw new TypeError('Unable to dynamically transpile ES module\n A loader plugin needs to be configured via `SystemJS.config({ transpiler: \'transpiler-module\' })`.');
|
3691
|
+
|
3692
|
+
// deps support for es transpile
|
3693
|
+
if (metadata.load.deps) {
|
3694
|
+
var depsPrefix = '';
|
3695
|
+
for (var i = 0; i < metadata.load.deps.length; i++)
|
3696
|
+
depsPrefix += 'import "' + metadata.load.deps[i] + '"; ';
|
3697
|
+
source = depsPrefix + source;
|
3698
|
+
}
|
3699
|
+
|
3700
|
+
// do transpilation
|
3701
|
+
return loader.import.call(loader, loader.transpiler)
|
3702
|
+
.then(function (transpiler) {
|
3703
|
+
transpiler = transpiler.__useDefault || transpiler;
|
3704
|
+
|
3705
|
+
// translate hooks means this is a transpiler plugin instead of a raw implementation
|
3706
|
+
if (!transpiler.translate)
|
3707
|
+
throw new Error(loader.transpiler + ' is not a valid transpiler plugin.');
|
3708
|
+
|
3709
|
+
// if transpiler is the same as the plugin loader, then don't run twice
|
3710
|
+
if (transpiler === metadata.pluginModule)
|
3711
|
+
return source;
|
3712
|
+
|
3713
|
+
// convert the source map into an object for transpilation chaining
|
3714
|
+
if (typeof metadata.load.sourceMap === 'string')
|
3715
|
+
metadata.load.sourceMap = JSON.parse(metadata.load.sourceMap);
|
3716
|
+
|
3717
|
+
metadata.pluginLoad = metadata.pluginLoad || {
|
3718
|
+
name: key,
|
3719
|
+
address: key,
|
3720
|
+
source: source,
|
3721
|
+
metadata: metadata.load
|
3722
|
+
};
|
3723
|
+
metadata.load.deps = metadata.load.deps || [];
|
3724
|
+
|
3725
|
+
return Promise.resolve(transpiler.translate.call(loader, metadata.pluginLoad, metadata.traceOpts))
|
3726
|
+
.then(function (source) {
|
3727
|
+
// sanitize sourceMap if an object not a JSON string
|
3728
|
+
var sourceMap = metadata.load.sourceMap;
|
3729
|
+
if (sourceMap && typeof sourceMap === 'object')
|
3730
|
+
sanitizeSourceMap(key, sourceMap);
|
3731
|
+
|
3732
|
+
if (metadata.load.format === 'esm' && detectRegisterFormat(source))
|
3733
|
+
metadata.load.format = 'register';
|
3734
|
+
|
3735
|
+
return source;
|
3736
|
+
});
|
3737
|
+
}, function (err) {
|
3738
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Unable to load transpiler to transpile ' + key);
|
3739
|
+
});
|
3740
|
+
}
|
3741
|
+
|
3742
|
+
// detect any meta header syntax
|
3743
|
+
// only set if not already set
|
3744
|
+
var metaRegEx = /^(\s*\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\s*\/\/[^\n]*|\s*"[^"]+"\s*;?|\s*'[^']+'\s*;?)+/;
|
3745
|
+
var metaPartRegEx = /\/\*[^\*]*(\*(?!\/)[^\*]*)*\*\/|\/\/[^\n]*|"[^"]+"\s*;?|'[^']+'\s*;?/g;
|
3746
|
+
|
3747
|
+
function setMetaProperty(target, p, value) {
|
3748
|
+
var pParts = p.split('.');
|
3749
|
+
var curPart;
|
3750
|
+
while (pParts.length > 1) {
|
3751
|
+
curPart = pParts.shift();
|
3752
|
+
target = target[curPart] = target[curPart] || {};
|
3753
|
+
}
|
3754
|
+
curPart = pParts.shift();
|
3755
|
+
if (target[curPart] === undefined)
|
3756
|
+
target[curPart] = value;
|
3757
|
+
}
|
3758
|
+
|
3759
|
+
function readMetaSyntax (source, metadata) {
|
3760
|
+
var meta = source.match(metaRegEx);
|
3761
|
+
if (!meta)
|
3762
|
+
return;
|
3763
|
+
|
3764
|
+
var metaParts = meta[0].match(metaPartRegEx);
|
3765
|
+
|
3766
|
+
for (var i = 0; i < metaParts.length; i++) {
|
3767
|
+
var curPart = metaParts[i];
|
3768
|
+
var len = curPart.length;
|
3769
|
+
|
3770
|
+
var firstChar = curPart.substr(0, 1);
|
3771
|
+
if (curPart.substr(len - 1, 1) == ';')
|
3772
|
+
len--;
|
3773
|
+
|
3774
|
+
if (firstChar != '"' && firstChar != "'")
|
3775
|
+
continue;
|
3776
|
+
|
3777
|
+
var metaString = curPart.substr(1, curPart.length - 3);
|
3778
|
+
var metaName = metaString.substr(0, metaString.indexOf(' '));
|
3779
|
+
|
3780
|
+
if (metaName) {
|
3781
|
+
var metaValue = metaString.substr(metaName.length + 1, metaString.length - metaName.length - 1);
|
3782
|
+
|
3783
|
+
if (metaName === 'deps')
|
3784
|
+
metaName = 'deps[]';
|
3785
|
+
|
3786
|
+
if (metaName.substr(metaName.length - 2, 2) === '[]') {
|
3787
|
+
metaName = metaName.substr(0, metaName.length - 2);
|
3788
|
+
metadata.load[metaName] = metadata.load[metaName] || [];
|
3789
|
+
metadata.load[metaName].push(metaValue);
|
3790
|
+
}
|
3791
|
+
// "use strict" is not meta
|
3792
|
+
else if (metaName !== 'use') {
|
3793
|
+
setMetaProperty(metadata.load, metaName, metaValue);
|
3794
|
+
}
|
3795
|
+
}
|
3796
|
+
else {
|
3797
|
+
metadata.load[metaString] = true;
|
3798
|
+
}
|
3799
|
+
}
|
3800
|
+
}
|
3801
|
+
|
3802
|
+
var scriptSrc;
|
3803
|
+
|
3804
|
+
// Promise detection and error message
|
3805
|
+
if (typeof Promise === 'undefined')
|
3806
|
+
throw new Error('SystemJS needs a Promise polyfill.');
|
3807
|
+
|
3808
|
+
if (typeof document !== 'undefined') {
|
3809
|
+
var scripts = document.getElementsByTagName('script');
|
3810
|
+
var curScript = scripts[scripts.length - 1];
|
3811
|
+
if (document.currentScript && (curScript.defer || curScript.async))
|
3812
|
+
curScript = document.currentScript;
|
3813
|
+
|
3814
|
+
scriptSrc = curScript && curScript.src;
|
3815
|
+
}
|
3816
|
+
// worker
|
3817
|
+
else if (typeof importScripts !== 'undefined') {
|
3818
|
+
try {
|
3819
|
+
throw new Error('_');
|
3820
|
+
}
|
3821
|
+
catch (e) {
|
3822
|
+
e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) {
|
3823
|
+
scriptSrc = url;
|
3824
|
+
});
|
3825
|
+
}
|
3826
|
+
}
|
3827
|
+
// node
|
3828
|
+
else if (typeof __filename !== 'undefined') {
|
3829
|
+
scriptSrc = __filename;
|
3830
|
+
}
|
3831
|
+
|
3832
|
+
function SystemJSLoader$1 () {
|
3833
|
+
RegisterLoader$1.call(this);
|
3834
|
+
|
3835
|
+
// NB deprecate
|
3836
|
+
this._loader = {};
|
3837
|
+
|
3838
|
+
// internal metadata store
|
3839
|
+
this[METADATA] = {};
|
3840
|
+
|
3841
|
+
// internal configuration
|
3842
|
+
this[CONFIG] = {
|
3843
|
+
baseURL: baseURI,
|
3844
|
+
paths: {},
|
3845
|
+
|
3846
|
+
packageConfigPaths: [],
|
3847
|
+
packageConfigKeys: [],
|
3848
|
+
map: {},
|
3849
|
+
packages: {},
|
3850
|
+
depCache: {},
|
3851
|
+
meta: {},
|
3852
|
+
bundles: {},
|
3853
|
+
|
3854
|
+
production: false,
|
3855
|
+
|
3856
|
+
transpiler: undefined,
|
3857
|
+
loadedBundles: {},
|
3858
|
+
|
3859
|
+
// global behaviour flags
|
3860
|
+
warnings: false,
|
3861
|
+
pluginFirst: false,
|
3862
|
+
|
3863
|
+
// enable wasm loading and detection when supported
|
3864
|
+
wasm: false
|
3865
|
+
};
|
3866
|
+
|
3867
|
+
// make the location of the system.js script accessible (if any)
|
3868
|
+
this.scriptSrc = scriptSrc;
|
3869
|
+
|
3870
|
+
this._nodeRequire = nodeRequire;
|
3871
|
+
|
3872
|
+
// support the empty module, as a concept
|
3873
|
+
this.registry.set('@empty', emptyModule);
|
3874
|
+
|
3875
|
+
setProduction.call(this, false, false);
|
3876
|
+
|
3877
|
+
// add module format helpers
|
3878
|
+
formatHelpers(this);
|
3879
|
+
}
|
3880
|
+
|
3881
|
+
var envModule;
|
3882
|
+
function setProduction (isProduction, isBuilder) {
|
3883
|
+
this[CONFIG].production = isProduction;
|
3884
|
+
this.registry.set('@system-env', envModule = this.newModule({
|
3885
|
+
browser: isBrowser,
|
3886
|
+
node: !!this._nodeRequire,
|
3887
|
+
production: !isBuilder && isProduction,
|
3888
|
+
dev: isBuilder || !isProduction,
|
3889
|
+
build: isBuilder,
|
3890
|
+
'default': true
|
3891
|
+
}));
|
3892
|
+
}
|
3893
|
+
|
3894
|
+
SystemJSLoader$1.prototype = Object.create(RegisterLoader$1.prototype);
|
3895
|
+
|
3896
|
+
SystemJSLoader$1.prototype.constructor = SystemJSLoader$1;
|
3897
|
+
|
3898
|
+
// NB deprecate normalize
|
3899
|
+
SystemJSLoader$1.prototype[SystemJSLoader$1.resolve = RegisterLoader$1.resolve] = SystemJSLoader$1.prototype.normalize = normalize;
|
3900
|
+
|
3901
|
+
SystemJSLoader$1.prototype.load = function (key, parentKey) {
|
3902
|
+
warn.call(this[CONFIG], 'System.load is deprecated.');
|
3903
|
+
return this.import(key, parentKey);
|
3904
|
+
};
|
3905
|
+
|
3906
|
+
// NB deprecate decanonicalize, normalizeSync
|
3907
|
+
SystemJSLoader$1.prototype.decanonicalize = SystemJSLoader$1.prototype.normalizeSync = SystemJSLoader$1.prototype.resolveSync = normalizeSync;
|
3908
|
+
|
3909
|
+
SystemJSLoader$1.prototype[SystemJSLoader$1.instantiate = RegisterLoader$1.instantiate] = instantiate$1;
|
3910
|
+
|
3911
|
+
SystemJSLoader$1.prototype.config = setConfig;
|
3912
|
+
SystemJSLoader$1.prototype.getConfig = getConfig;
|
3913
|
+
|
3914
|
+
SystemJSLoader$1.prototype.global = envGlobal;
|
3915
|
+
|
3916
|
+
SystemJSLoader$1.prototype.import = function () {
|
3917
|
+
return RegisterLoader$1.prototype.import.apply(this, arguments)
|
3918
|
+
.then(function (m) {
|
3919
|
+
return '__useDefault' in m ? m.__useDefault : m;
|
3920
|
+
});
|
3921
|
+
};
|
3922
|
+
|
3923
|
+
var configNames = ['baseURL', 'map', 'paths', 'packages', 'packageConfigPaths', 'depCache', 'meta', 'bundles', 'transpiler', 'warnings', 'pluginFirst', 'production', 'wasm'];
|
3924
|
+
|
3925
|
+
var hasProxy = typeof Proxy !== 'undefined';
|
3926
|
+
for (var i = 0; i < configNames.length; i++) (function (configName) {
|
3927
|
+
Object.defineProperty(SystemJSLoader$1.prototype, configName, {
|
3928
|
+
get: function () {
|
3929
|
+
var cfg = getConfigItem(this[CONFIG], configName);
|
3930
|
+
|
3931
|
+
if (hasProxy && typeof cfg === 'object')
|
3932
|
+
cfg = new Proxy(cfg, {
|
3933
|
+
set: function (target, option) {
|
3934
|
+
throw new Error('Cannot set SystemJS.' + configName + '["' + option + '"] directly. Use SystemJS.config({ ' + configName + ': { "' + option + '": ... } }) rather.');
|
3935
|
+
}
|
3936
|
+
});
|
3937
|
+
|
3938
|
+
//if (typeof cfg === 'object')
|
3939
|
+
// warn.call(this[CONFIG], 'Referencing `SystemJS.' + configName + '` is deprecated. Use the config getter `SystemJS.getConfig(\'' + configName + '\')`');
|
3940
|
+
return cfg;
|
3941
|
+
},
|
3942
|
+
set: function (name) {
|
3943
|
+
throw new Error('Setting `SystemJS.' + configName + '` directly is no longer supported. Use `SystemJS.config({ ' + configName + ': ... })`.');
|
3944
|
+
}
|
3945
|
+
});
|
3946
|
+
})(configNames[i]);
|
3947
|
+
|
3948
|
+
/*
|
3949
|
+
* Backwards-compatible registry API, to be deprecated
|
3950
|
+
*/
|
3951
|
+
function registryWarn(loader, method) {
|
3952
|
+
warn.call(loader[CONFIG], 'SystemJS.' + method + ' is deprecated for SystemJS.registry.' + method);
|
3953
|
+
}
|
3954
|
+
SystemJSLoader$1.prototype.delete = function (key) {
|
3955
|
+
registryWarn(this, 'delete');
|
3956
|
+
return this.registry.delete(key);
|
3957
|
+
};
|
3958
|
+
SystemJSLoader$1.prototype.get = function (key) {
|
3959
|
+
registryWarn(this, 'get');
|
3960
|
+
return this.registry.get(key);
|
3961
|
+
};
|
3962
|
+
SystemJSLoader$1.prototype.has = function (key) {
|
3963
|
+
registryWarn(this, 'has');
|
3964
|
+
return this.registry.has(key);
|
3965
|
+
};
|
3966
|
+
SystemJSLoader$1.prototype.set = function (key, module) {
|
3967
|
+
registryWarn(this, 'set');
|
3968
|
+
return this.registry.set(key, module);
|
3969
|
+
};
|
3970
|
+
SystemJSLoader$1.prototype.newModule = function (bindings) {
|
3971
|
+
return new ModuleNamespace(bindings);
|
3972
|
+
};
|
3973
|
+
SystemJSLoader$1.prototype.isModule = isModule;
|
3974
|
+
|
3975
|
+
// ensure System.register and System.registerDynamic decanonicalize
|
3976
|
+
SystemJSLoader$1.prototype.register = function (key, deps, declare) {
|
3977
|
+
if (typeof key === 'string')
|
3978
|
+
key = decanonicalize.call(this, this[CONFIG], key);
|
3979
|
+
return RegisterLoader$1.prototype.register.call(this, key, deps, declare);
|
3980
|
+
};
|
3981
|
+
|
3982
|
+
SystemJSLoader$1.prototype.registerDynamic = function (key, deps, executingRequire, execute) {
|
3983
|
+
if (typeof key === 'string')
|
3984
|
+
key = decanonicalize.call(this, this[CONFIG], key);
|
3985
|
+
return RegisterLoader$1.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);
|
3986
|
+
};
|
3987
|
+
|
3988
|
+
SystemJSLoader$1.prototype.version = "0.20.19 Dev";
|
3989
|
+
|
3990
|
+
var System = new SystemJSLoader$1();
|
3991
|
+
|
3992
|
+
// only set the global System on the global in browsers
|
3993
|
+
if (isBrowser || isWorker)
|
3994
|
+
envGlobal.SystemJS = envGlobal.System = System;
|
3995
|
+
|
3996
|
+
if (typeof module !== 'undefined' && module.exports)
|
3997
|
+
module.exports = System;
|
3998
|
+
|
3999
|
+
}());
|
4000
|
+
//# sourceMappingURL=system.src.js.map
|