Studying all day long)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

1 lines
54 KiB

{"version":3,"file":"system.min.js","sources":["../src/err-msg.js","../src/common.js","../src/system-core.js","../src/features/import-maps.js","../src/features/script-load.js","../src/features/fetch-load.js","../src/features/resolve.js","../src/features/depcache.js","../src/features/worker-load.js","../src/extras/global.js","../src/extras/module-types.js","../src/features/registry.js"],"sourcesContent":["export function errMsg(errCode, msg) {\n if (process.env.SYSTEM_PRODUCTION)\n return (msg || \"\") + \" (SystemJS https://git.io/JvFET#\" + errCode + \")\";\n else\n return (msg || \"\") + \" (SystemJS Error#\" + errCode + \" \" + \"https://git.io/JvFET#\" + errCode + \")\";\n}","import { errMsg } from './err-msg.js';\n\nexport var hasSymbol = typeof Symbol !== 'undefined';\nexport var hasSelf = typeof self !== 'undefined';\nexport var hasDocument = typeof document !== 'undefined';\n\nvar envGlobal = hasSelf ? self : global;\nexport { envGlobal as global };\n\n// Loader-scoped baseUrl and import map supported in Node.js only\nexport var BASE_URL = hasSymbol ? Symbol() : '_';\nexport var IMPORT_MAP = hasSymbol ? Symbol() : '#';\n\nexport var baseUrl;\n\nif (hasDocument) {\n var baseEl = document.querySelector('base[href]');\n if (baseEl)\n baseUrl = baseEl.href;\n}\n\nif (!baseUrl && typeof location !== 'undefined') {\n baseUrl = location.href.split('#')[0].split('?')[0];\n var lastSepIndex = baseUrl.lastIndexOf('/');\n if (lastSepIndex !== -1)\n baseUrl = baseUrl.slice(0, lastSepIndex + 1);\n}\n\nif (!process.env.SYSTEM_BROWSER && !baseUrl && typeof process !== 'undefined') {\n var cwd = process.cwd();\n // TODO: encoding edge cases\n baseUrl = 'file://' + (cwd[0] === '/' ? '' : '/') + cwd.replace(/\\\\/g, '/') + '/';\n}\n\nvar backslashRegEx = /\\\\/g;\nexport function resolveIfNotPlainOrUrl (relUrl, parentUrl) {\n if (relUrl.indexOf('\\\\') !== -1)\n relUrl = relUrl.replace(backslashRegEx, '/');\n // protocol-relative\n if (relUrl[0] === '/' && relUrl[1] === '/') {\n return parentUrl.slice(0, parentUrl.indexOf(':') + 1) + relUrl;\n }\n // relative-url\n else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||\n relUrl.length === 1 && (relUrl += '/')) ||\n relUrl[0] === '/') {\n var parentProtocol = parentUrl.slice(0, parentUrl.indexOf(':') + 1);\n // Disabled, but these cases will give inconsistent results for deep backtracking\n //if (parentUrl[parentProtocol.length] !== '/')\n // throw Error('Cannot resolve');\n // read pathname from parent URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n 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.slice(parentProtocol.length + 2);\n pathname = pathname.slice(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.slice(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.slice(parentProtocol.length + (parentUrl[parentProtocol.length] === '/'));\n }\n\n if (relUrl[0] === '/')\n return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;\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'\n var segmented = pathname.slice(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = -1;\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.slice(segmentIndex, i + 1));\n segmentIndex = -1;\n }\n }\n\n // new segment - check if it is relative\n else 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 }\n }\n // it is the start of a new segment\n else {\n segmentIndex = i;\n }\n }\n // finish reading out the last segment\n if (segmentIndex !== -1)\n output.push(segmented.slice(segmentIndex));\n return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join('');\n }\n}\n\n/*\n * Import maps implementation\n *\n * To make lookups fast we pre-resolve the entire import map\n * and then match based on backtracked hash lookups\n *\n */\n\nexport function resolveUrl (relUrl, parentUrl) {\n return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (relUrl.indexOf(':') !== -1 ? relUrl : resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));\n}\n\nfunction resolveAndComposePackages (packages, outPackages, baseUrl, parentMap, parentUrl) {\n for (var p in packages) {\n var resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;\n var rhs = packages[p];\n // package fallbacks not currently supported\n if (typeof rhs !== 'string')\n continue;\n var mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(rhs, baseUrl) || rhs, parentUrl);\n if (!mapped) {\n if (process.env.SYSTEM_PRODUCTION)\n targetWarning('W1', p, rhs);\n else\n targetWarning('W1', p, rhs, 'bare specifier did not resolve');\n }\n else\n outPackages[resolvedLhs] = mapped;\n }\n}\n\nexport function resolveAndComposeImportMap (json, baseUrl, outMap) {\n if (json.imports)\n resolveAndComposePackages(json.imports, outMap.imports, baseUrl, outMap, null);\n\n var u;\n for (u in json.scopes || {}) {\n var resolvedScope = resolveUrl(u, baseUrl);\n resolveAndComposePackages(json.scopes[u], outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}), baseUrl, outMap, resolvedScope);\n }\n\n for (u in json.depcache || {})\n outMap.depcache[resolveUrl(u, baseUrl)] = json.depcache[u];\n \n for (u in json.integrity || {})\n outMap.integrity[resolveUrl(u, baseUrl)] = json.integrity[u];\n}\n\nfunction getMatch (path, matchObj) {\n if (matchObj[path])\n return path;\n var sepIndex = path.length;\n do {\n var segment = path.slice(0, sepIndex + 1);\n if (segment in matchObj)\n return segment;\n } while ((sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1)\n}\n\nfunction applyPackages (id, packages) {\n var pkgName = getMatch(id, packages);\n if (pkgName) {\n var pkg = packages[pkgName];\n if (pkg === null) return;\n if (id.length > pkgName.length && pkg[pkg.length - 1] !== '/') {\n if (process.env.SYSTEM_PRODUCTION)\n targetWarning('W2', pkgName, pkg);\n else\n targetWarning('W2', pkgName, pkg, \"should have a trailing '/'\");\n }\n else\n return pkg + id.slice(pkgName.length);\n }\n}\n\nfunction targetWarning (code, match, target, msg) {\n console.warn(errMsg(code, process.env.SYSTEM_PRODUCTION ? [target, match].join(', ') : \"Package target \" + msg + \", resolving target '\" + target + \"' for \" + match));\n}\n\nexport function resolveImportMap (importMap, resolvedOrPlain, parentUrl) {\n var scopes = importMap.scopes;\n var scopeUrl = parentUrl && getMatch(parentUrl, scopes);\n while (scopeUrl) {\n var packageResolution = applyPackages(resolvedOrPlain, scopes[scopeUrl]);\n if (packageResolution)\n return packageResolution;\n scopeUrl = getMatch(scopeUrl.slice(0, scopeUrl.lastIndexOf('/')), scopes);\n }\n return applyPackages(resolvedOrPlain, importMap.imports) || resolvedOrPlain.indexOf(':') !== -1 && resolvedOrPlain;\n}\n","/*\n * SystemJS Core\n * \n * Provides\n * - System.import\n * - System.register support for\n * live bindings, function hoisting through circular references,\n * reexports, dynamic import, import.meta.url, top-level await\n * - System.getRegister to get the registration\n * - Symbol.toStringTag support in Module objects\n * - Hookable System.createContext to customize import.meta\n * - System.onload(err, id, deps) handler for tracing / hot-reloading\n * \n * Core comes with no System.prototype.resolve or\n * System.prototype.instantiate implementations\n */\nimport { global, hasSymbol } from './common.js';\nimport { errMsg } from './err-msg.js';\nexport { systemJSPrototype, REGISTRY }\n\nvar toStringTag = hasSymbol && Symbol.toStringTag;\nvar REGISTRY = hasSymbol ? Symbol() : '@';\n\nfunction SystemJS () {\n this[REGISTRY] = {};\n}\n\nvar systemJSPrototype = SystemJS.prototype;\n\nsystemJSPrototype.import = function (id, parentUrl) {\n var loader = this;\n return Promise.resolve(loader.prepareImport())\n .then(function() {\n return loader.resolve(id, parentUrl);\n })\n .then(function (id) {\n var load = getOrCreateLoad(loader, id);\n return load.C || topLevelLoad(loader, load);\n });\n};\n\n// Hookable createContext function -> allowing eg custom import meta\nsystemJSPrototype.createContext = function (parentId) {\n var loader = this;\n return {\n url: parentId,\n resolve: function (id, parentUrl) {\n return Promise.resolve(loader.resolve(id, parentUrl || parentId));\n }\n };\n};\n\n// onLoad(err, id, deps) provided for tracing / hot-reloading\nif (!process.env.SYSTEM_PRODUCTION)\n systemJSPrototype.onload = function () {};\nfunction loadToId (load) {\n return load.id;\n}\nfunction triggerOnload (loader, load, err, isErrSource) {\n loader.onload(err, load.id, load.d && load.d.map(loadToId), !!isErrSource);\n if (err)\n throw err;\n}\n\nvar lastRegister;\nsystemJSPrototype.register = function (deps, declare) {\n lastRegister = [deps, declare];\n};\n\n/*\n * getRegister provides the last anonymous System.register call\n */\nsystemJSPrototype.getRegister = function () {\n var _lastRegister = lastRegister;\n lastRegister = undefined;\n return _lastRegister;\n};\n\nexport function getOrCreateLoad (loader, id, firstParentUrl) {\n var load = loader[REGISTRY][id];\n if (load)\n return load;\n\n var importerSetters = [];\n var ns = Object.create(null);\n if (toStringTag)\n Object.defineProperty(ns, toStringTag, { value: 'Module' });\n \n var instantiatePromise = Promise.resolve()\n .then(function () {\n return loader.instantiate(id, firstParentUrl);\n })\n .then(function (registration) {\n if (!registration)\n throw Error(errMsg(2, process.env.SYSTEM_PRODUCTION ? id : 'Module ' + id + ' did not instantiate'));\n function _export (name, value) {\n // note if we have hoisted exports (including reexports)\n load.h = true;\n var changed = false;\n if (typeof name === 'string') {\n if (!(name in ns) || ns[name] !== value) {\n ns[name] = value;\n changed = true;\n }\n }\n else {\n for (var p in name) {\n var value = name[p];\n if (!(p in ns) || ns[p] !== value) {\n ns[p] = value;\n changed = true;\n }\n }\n\n if (name && name.__esModule) {\n ns.__esModule = name.__esModule;\n }\n }\n if (changed)\n for (var i = 0; i < importerSetters.length; i++) {\n var setter = importerSetters[i];\n if (setter) setter(ns);\n }\n return value;\n }\n var declared = registration[1](_export, registration[1].length === 2 ? {\n import: function (importId) {\n return loader.import(importId, id);\n },\n meta: loader.createContext(id)\n } : undefined);\n load.e = declared.execute || function () {};\n return [registration[0], declared.setters || []];\n }, function (err) {\n load.e = null;\n load.er = err;\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, err, true);\n throw err;\n });\n\n var linkPromise = instantiatePromise\n .then(function (instantiation) {\n return Promise.all(instantiation[0].map(function (dep, i) {\n var setter = instantiation[1][i];\n return Promise.resolve(loader.resolve(dep, id))\n .then(function (depId) {\n var depLoad = getOrCreateLoad(loader, depId, id);\n // depLoad.I may be undefined for already-evaluated\n return Promise.resolve(depLoad.I)\n .then(function () {\n if (setter) {\n depLoad.i.push(setter);\n // only run early setters when there are hoisted exports of that module\n // the timing works here as pending hoisted export calls will trigger through importerSetters\n if (depLoad.h || !depLoad.I)\n setter(depLoad.n);\n }\n return depLoad;\n });\n });\n }))\n .then(function (depLoads) {\n load.d = depLoads;\n });\n });\n if (!process.env.SYSTEM_BROWSER)\n linkPromise.catch(function () {});\n\n // Capital letter = a promise function\n return load = loader[REGISTRY][id] = {\n id: id,\n // importerSetters, the setters functions registered to this dependency\n // we retain this to add more later\n i: importerSetters,\n // module namespace object\n n: ns,\n\n // instantiate\n I: instantiatePromise,\n // link\n L: linkPromise,\n // whether it has hoisted exports\n h: false,\n\n // On instantiate completion we have populated:\n // dependency load records\n d: undefined,\n // execution function\n e: undefined,\n\n // On execution we have populated:\n // the execution error if any\n er: undefined,\n // in the case of TLA, the execution promise\n E: undefined,\n\n // On execution, L, I, E cleared\n\n // Promise for top-level completion\n C: undefined,\n\n // parent instantiator / executor\n p: undefined\n };\n}\n\nfunction instantiateAll (loader, load, parent, loaded) {\n if (!loaded[load.id]) {\n loaded[load.id] = true;\n // load.L may be undefined for already-instantiated\n return Promise.resolve(load.L)\n .then(function () {\n if (!load.p || load.p.e === null)\n load.p = parent;\n return Promise.all(load.d.map(function (dep) {\n return instantiateAll(loader, dep, parent, loaded);\n }));\n })\n .catch(function (err) {\n if (load.er)\n throw err;\n load.e = null;\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, err, false);\n throw err;\n });\n }\n}\n\nfunction topLevelLoad (loader, load) {\n return load.C = instantiateAll(loader, load, load, {})\n .then(function () {\n return postOrderExec(loader, load, {});\n })\n .then(function () {\n return load.n;\n });\n}\n\n// the closest we can get to call(undefined)\nvar nullContext = Object.freeze(Object.create(null));\n\n// returns a promise if and only if a top-level await subgraph\n// throws on sync errors\nfunction postOrderExec (loader, load, seen) {\n if (seen[load.id])\n return;\n seen[load.id] = true;\n\n if (!load.e) {\n if (load.er)\n throw load.er;\n if (load.E)\n return load.E;\n return;\n }\n\n // deps execute first, unless circular\n var depLoadPromises;\n load.d.forEach(function (depLoad) {\n try {\n var depLoadPromise = postOrderExec(loader, depLoad, seen);\n if (depLoadPromise) \n (depLoadPromises = depLoadPromises || []).push(depLoadPromise);\n }\n catch (err) {\n load.e = null;\n load.er = err;\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, err, false);\n throw err;\n }\n });\n if (depLoadPromises)\n return Promise.all(depLoadPromises).then(doExec);\n\n return doExec();\n\n function doExec () {\n try {\n var execPromise = load.e.call(nullContext);\n if (execPromise) {\n execPromise = execPromise.then(function () {\n load.C = load.n;\n load.E = null; // indicates completion\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, null, true);\n }, function (err) {\n load.er = err;\n load.E = null;\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, err, true);\n throw err;\n });\n return load.E = execPromise;\n }\n // (should be a promise, but a minify optimization to leave out Promise.resolve)\n load.C = load.n;\n load.L = load.I = undefined;\n }\n catch (err) {\n load.er = err;\n throw err;\n }\n finally {\n load.e = null;\n if (!process.env.SYSTEM_PRODUCTION) triggerOnload(loader, load, load.er, true);\n }\n }\n}\n\nglobal.System = new SystemJS();\n","/*\n * SystemJS browser attachments for script and import map processing\n */\nimport { baseUrl, resolveAndComposeImportMap, hasDocument, resolveUrl } from '../common.js';\nimport { systemJSPrototype } from '../system-core.js';\nimport { errMsg } from '../err-msg.js';\n\nvar importMapPromise = Promise.resolve();\nexport var importMap = { imports: {}, scopes: {}, depcache: {}, integrity: {} };\n\n// Scripts are processed immediately, on the first System.import, and on DOMReady.\n// Import map scripts are processed only once (by being marked) and in order for each phase.\n// This is to avoid using DOM mutation observers in core, although that would be an alternative.\nvar processFirst = hasDocument;\nsystemJSPrototype.prepareImport = function (doProcessScripts) {\n if (processFirst || doProcessScripts) {\n processScripts();\n processFirst = false;\n }\n return importMapPromise;\n};\nif (hasDocument) {\n processScripts();\n window.addEventListener('DOMContentLoaded', processScripts);\n}\n\nfunction processScripts () {\n [].forEach.call(document.querySelectorAll('script'), function (script) {\n if (script.sp) // sp marker = systemjs processed\n return;\n // TODO: deprecate systemjs-module in next major now that we have auto import\n if (script.type === 'systemjs-module') {\n script.sp = true;\n if (!script.src)\n return;\n System.import(script.src.slice(0, 7) === 'import:' ? script.src.slice(7) : resolveUrl(script.src, baseUrl)).catch(function (e) {\n // if there is a script load error, dispatch an \"error\" event\n // on the script tag.\n if (e.message.indexOf('https://git.io/JvFET#3') > -1) {\n var event = document.createEvent('Event');\n event.initEvent('error', false, false);\n script.dispatchEvent(event);\n }\n return Promise.reject(e);\n });\n }\n else if (script.type === 'systemjs-importmap') {\n script.sp = true;\n // The passThrough property is for letting the module types fetch implementation know that this is not a SystemJS module.\n var fetchPromise = script.src ? (System.fetch || fetch)(script.src, { integrity: script.integrity, passThrough: true }).then(function (res) {\n if (!res.ok)\n throw Error(process.env.SYSTEM_PRODUCTION ? res.status : 'Invalid status code: ' + res.status);\n return res.text();\n }).catch(function (err) {\n err.message = errMsg('W4', process.env.SYSTEM_PRODUCTION ? script.src : 'Error fetching systemjs-import map ' + script.src) + '\\n' + err.message;\n console.warn(err);\n if (typeof script.onerror === 'function') {\n script.onerror();\n }\n return '{}';\n }) : script.innerHTML;\n importMapPromise = importMapPromise.then(function () {\n return fetchPromise;\n }).then(function (text) {\n extendImportMap(importMap, text, script.src || baseUrl);\n });\n }\n });\n}\n\nfunction extendImportMap (importMap, newMapText, newMapUrl) {\n var newMap = {};\n try {\n newMap = JSON.parse(newMapText);\n } catch (err) {\n console.warn(Error((process.env.SYSTEM_PRODUCTION ? errMsg('W5') : errMsg('W5', \"systemjs-importmap contains invalid JSON\") + '\\n\\n' + newMapText + '\\n' )));\n }\n resolveAndComposeImportMap(newMap, newMapUrl, importMap);\n}\n","/*\n * Script instantiation loading\n */\nimport { hasDocument } from '../common.js';\nimport { systemJSPrototype } from '../system-core.js';\nimport { errMsg } from '../err-msg.js';\nimport { importMap } from './import-maps.js';\n\nif (hasDocument) {\n window.addEventListener('error', function (evt) {\n lastWindowErrorUrl = evt.filename;\n lastWindowError = evt.error;\n });\n var baseOrigin = location.origin;\n}\n\nsystemJSPrototype.createScript = function (url) {\n var script = document.createElement('script');\n script.async = true;\n // Only add cross origin for actual cross origin\n // this is because Safari triggers for all\n // - https://bugs.webkit.org/show_bug.cgi?id=171566\n if (url.indexOf(baseOrigin + '/'))\n script.crossOrigin = 'anonymous';\n var integrity = importMap.integrity[url];\n if (integrity)\n script.integrity = integrity;\n script.src = url;\n return script;\n};\n\n// Auto imports -> script tags can be inlined directly for load phase\nvar lastAutoImportUrl, lastAutoImportDeps, lastAutoImportTimeout;\nvar autoImportCandidates = {};\nvar systemRegister = systemJSPrototype.register;\nsystemJSPrototype.register = function (deps, declare) {\n if (hasDocument && document.readyState === 'loading' && typeof deps !== 'string') {\n var scripts = document.querySelectorAll('script[src]');\n var lastScript = scripts[scripts.length - 1];\n if (lastScript) {\n lastAutoImportUrl = lastScript.src;\n lastAutoImportDeps = deps;\n // if this is already a System load, then the instantiate has already begun\n // so this re-import has no consequence\n var loader = this;\n lastAutoImportTimeout = setTimeout(function () {\n autoImportCandidates[lastScript.src] = [deps, declare];\n loader.import(lastScript.src);\n });\n }\n }\n else {\n lastAutoImportDeps = undefined;\n }\n return systemRegister.call(this, deps, declare);\n};\n\nvar lastWindowErrorUrl, lastWindowError;\nsystemJSPrototype.instantiate = function (url, firstParentUrl) {\n var autoImportRegistration = autoImportCandidates[url];\n if (autoImportRegistration) {\n delete autoImportCandidates[url];\n return autoImportRegistration;\n }\n var loader = this;\n return Promise.resolve(systemJSPrototype.createScript(url)).then(function (script) {\n return new Promise(function (resolve, reject) {\n script.addEventListener('error', function () {\n reject(Error(errMsg(3, process.env.SYSTEM_PRODUCTION ? [url, firstParentUrl].join(', ') : 'Error loading ' + url + (firstParentUrl ? ' from ' + firstParentUrl : ''))));\n });\n script.addEventListener('load', function () {\n document.head.removeChild(script);\n // Note that if an error occurs that isn't caught by this if statement,\n // that getRegister will return null and a \"did not instantiate\" error will be thrown.\n if (lastWindowErrorUrl === url) {\n reject(lastWindowError);\n }\n else {\n var register = loader.getRegister(url);\n // Clear any auto import registration for dynamic import scripts during load\n if (register && register[0] === lastAutoImportDeps)\n clearTimeout(lastAutoImportTimeout);\n resolve(register);\n }\n });\n document.head.appendChild(script);\n });\n });\n};\n","import { errMsg } from '../err-msg.js';\nimport { importMap } from '../features/import-maps.js';\nimport { systemJSPrototype } from '../system-core.js';\n\n/*\n * Fetch loader, sets up shouldFetch and fetch hooks\n */\nsystemJSPrototype.shouldFetch = function () {\n return false;\n};\nif (typeof fetch !== 'undefined')\n systemJSPrototype.fetch = fetch;\n\nvar instantiate = systemJSPrototype.instantiate;\nvar jsContentTypeRegEx = /^(text|application)\\/(x-)?javascript(;|$)/;\nsystemJSPrototype.instantiate = function (url, parent) {\n var loader = this;\n if (!this.shouldFetch(url))\n return instantiate.apply(this, arguments);\n return this.fetch(url, {\n credentials: 'same-origin',\n integrity: importMap.integrity[url]\n })\n .then(function (res) {\n if (!res.ok)\n throw Error(errMsg(7, process.env.SYSTEM_PRODUCTION ? [res.status, res.statusText, url, parent].join(', ') : res.status + ' ' + res.statusText + ', loading ' + url + (parent ? ' from ' + parent : '')));\n var contentType = res.headers.get('content-type');\n if (!contentType || !jsContentTypeRegEx.test(contentType))\n throw Error(errMsg(4, process.env.SYSTEM_PRODUCTION ? contentType : 'Unknown Content-Type \"' + contentType + '\", loading ' + url + (parent ? ' from ' + parent : '')));\n return res.text().then(function (source) {\n if (source.indexOf('//# sourceURL=') < 0)\n source += '\\n//# sourceURL=' + url;\n (0, eval)(source);\n return loader.getRegister(url);\n });\n });\n};\n","import { BASE_URL, baseUrl, resolveImportMap, resolveIfNotPlainOrUrl, IMPORT_MAP } from '../common.js';\nimport { importMap } from './import-maps.js';\nimport { systemJSPrototype } from '../system-core.js';\nimport { errMsg } from '../err-msg.js';\n\nsystemJSPrototype.resolve = function (id, parentUrl) {\n parentUrl = parentUrl || !process.env.SYSTEM_BROWSER && this[BASE_URL] || baseUrl;\n return resolveImportMap((!process.env.SYSTEM_BROWSER && this[IMPORT_MAP] || importMap), resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);\n};\n\nfunction throwUnresolved (id, parentUrl) {\n throw Error(errMsg(8, process.env.SYSTEM_PRODUCTION ? [id, parentUrl].join(', ') : \"Unable to resolve bare specifier '\" + id + (parentUrl ? \"' from \" + parentUrl : \"'\")));\n}\n","import { IMPORT_MAP } from '../common.js';\nimport { systemJSPrototype, getOrCreateLoad } from '../system-core.js';\nimport { importMap } from './import-maps.js';\n\nvar systemInstantiate = systemJSPrototype.instantiate;\nsystemJSPrototype.instantiate = function (url, firstParentUrl) {\n var preloads = (!process.env.SYSTEM_BROWSER && this[IMPORT_MAP] || importMap).depcache[url];\n if (preloads) {\n for (var i = 0; i < preloads.length; i++)\n getOrCreateLoad(this, this.resolve(preloads[i], url), url);\n }\n return systemInstantiate.call(this, url, firstParentUrl);\n};","/*\n * Supports loading System.register in workers\n */\nimport { systemJSPrototype } from '../system-core';\nimport { hasSelf } from '../common';\n\nif (hasSelf && typeof importScripts === 'function')\n systemJSPrototype.instantiate = function (url) {\n var loader = this;\n return Promise.resolve().then(function () {\n importScripts(url);\n return loader.getRegister(url);\n });\n };\n","/*\n * SystemJS global script loading support\n * Extra for the s.js build only\n * (Included by default in system.js build)\n */\n(function (global) {\n var systemJSPrototype = global.System.constructor.prototype;\n\n // safari unpredictably lists some new globals first or second in object order\n var firstGlobalProp, secondGlobalProp, lastGlobalProp;\n function getGlobalProp (useFirstGlobalProp) {\n var cnt = 0;\n var foundLastProp, result;\n for (var p in global) {\n // do not check frames cause it could be removed during import\n if (shouldSkipProperty(p))\n continue;\n if (cnt === 0 && p !== firstGlobalProp || cnt === 1 && p !== secondGlobalProp)\n return p;\n if (foundLastProp) {\n lastGlobalProp = p;\n result = useFirstGlobalProp && result || p;\n }\n else {\n foundLastProp = p === lastGlobalProp;\n }\n cnt++;\n }\n return result;\n }\n\n function noteGlobalProps () {\n // alternatively Object.keys(global).pop()\n // but this may be faster (pending benchmarks)\n firstGlobalProp = secondGlobalProp = undefined;\n for (var p in global) {\n // do not check frames cause it could be removed during import\n if (shouldSkipProperty(p))\n continue;\n if (!firstGlobalProp)\n firstGlobalProp = p;\n else if (!secondGlobalProp)\n secondGlobalProp = p;\n lastGlobalProp = p;\n }\n return lastGlobalProp;\n }\n\n var impt = systemJSPrototype.import;\n systemJSPrototype.import = function (id, parentUrl) {\n noteGlobalProps();\n return impt.call(this, id, parentUrl);\n };\n\n var emptyInstantiation = [[], function () { return {} }];\n\n var getRegister = systemJSPrototype.getRegister;\n systemJSPrototype.getRegister = function () {\n var lastRegister = getRegister.call(this);\n if (lastRegister)\n return lastRegister;\n\n // no registration -> attempt a global detection as difference from snapshot\n // when multiple globals, we take the global value to be the last defined new global object property\n // for performance, this will not support multi-version / global collisions as previous SystemJS versions did\n // note in Edge, deleting and re-adding a global does not change its ordering\n var globalProp = getGlobalProp(this.firstGlobalProp);\n if (!globalProp)\n return emptyInstantiation;\n\n var globalExport;\n try {\n globalExport = global[globalProp];\n }\n catch (e) {\n return emptyInstantiation;\n }\n\n return [[], function (_export) {\n return {\n execute: function () {\n _export(globalExport);\n _export({ default: globalExport, __useDefault: true });\n }\n };\n }];\n };\n\n var isIE11 = typeof navigator !== 'undefined' && navigator.userAgent.indexOf('Trident') !== -1;\n\n function shouldSkipProperty(p) {\n return !global.hasOwnProperty(p)\n || !isNaN(p) && p < global.length\n || isIE11 && global[p] && typeof window !== 'undefined' && global[p].parent === window;\n }\n})(typeof self !== 'undefined' ? self : global);\n","import { resolveUrl } from '../common.js';\n\n/*\n * Loads JSON, CSS, Wasm module types based on file extension\n * filters and content type verifications\n */\n(function(global) {\n var systemJSPrototype = global.System.constructor.prototype;\n\n var moduleTypesRegEx = /^[^#?]+\\.(css|html|json|wasm)([?#].*)?$/;\n systemJSPrototype.shouldFetch = function (url) {\n return moduleTypesRegEx.test(url);\n };\n\n var jsonContentType = /^application\\/json(;|$)/;\n var cssContentType = /^text\\/css(;|$)/;\n var wasmContentType = /^application\\/wasm(;|$)/;\n\n var fetch = systemJSPrototype.fetch;\n systemJSPrototype.fetch = function (url, options) {\n return fetch(url, options)\n .then(function (res) {\n if (options.passThrough)\n return res;\n\n if (!res.ok)\n return res;\n var contentType = res.headers.get('content-type');\n if (jsonContentType.test(contentType))\n return res.json()\n .then(function (json) {\n return new Response(new Blob([\n 'System.register([],function(e){return{execute:function(){e(\"default\",' + JSON.stringify(json) + ')}}})'\n ], {\n type: 'application/javascript'\n }));\n });\n if (cssContentType.test(contentType))\n return res.text()\n .then(function (source) {\n source = source.replace(/url\\(\\s*(?:([\"'])((?:\\\\.|[^\\n\\\\\"'])+)\\1|((?:\\\\.|[^\\s,\"'()\\\\])+))\\s*\\)/g, function (match, quotes, relUrl1, relUrl2) {\n return 'url(' + quotes + resolveUrl(relUrl1 || relUrl2, url) + quotes + ')';\n });\n return new Response(new Blob([\n 'System.register([],function(e){return{execute:function(){var s=new CSSStyleSheet();s.replaceSync(' + JSON.stringify(source) + ');e(\"default\",s)}}})'\n ], {\n type: 'application/javascript'\n }));\n });\n if (wasmContentType.test(contentType))\n return (WebAssembly.compileStreaming ? WebAssembly.compileStreaming(res) : res.arrayBuffer().then(WebAssembly.compile))\n .then(function (module) {\n if (!global.System.wasmModules)\n global.System.wasmModules = Object.create(null);\n global.System.wasmModules[url] = module;\n // we can only set imports if supported (eg early Safari doesnt support)\n var deps = [];\n var setterSources = [];\n if (WebAssembly.Module.imports)\n WebAssembly.Module.imports(module).forEach(function (impt) {\n var key = JSON.stringify(impt.module);\n if (deps.indexOf(key) === -1) {\n deps.push(key);\n setterSources.push('function(m){i[' + key + ']=m}');\n }\n });\n return new Response(new Blob([\n 'System.register([' + deps.join(',') + '],function(e){var i={};return{setters:[' + setterSources.join(',') +\n '],execute:function(){return WebAssembly.instantiate(System.wasmModules[' + JSON.stringify(url) +\n '],i).then(function(m){e(m.exports)})}}})'\n ], {\n type: 'application/javascript'\n }));\n });\n return res;\n });\n };\n})(typeof self !== 'undefined' ? self : global);\n","import { systemJSPrototype, REGISTRY } from '../system-core.js';\nimport { baseUrl, resolveIfNotPlainOrUrl } from '../common.js';\nimport { errMsg } from '../err-msg.js';\n\nvar toStringTag = typeof Symbol !== 'undefined' && Symbol.toStringTag;\n\nsystemJSPrototype.get = function (id) {\n var load = this[REGISTRY][id];\n if (load && load.e === null && !load.E) {\n if (load.er)\n return null;\n return load.n;\n }\n};\n\nsystemJSPrototype.set = function (id, module) {\n if (!process.env.SYSTEM_PRODUCTION) {\n try {\n // No page-relative URLs allowed\n new URL(id);\n } catch (err) {\n console.warn(Error(errMsg('W3', '\"' + id + '\" is not a valid URL to set in the module registry')));\n }\n }\n var ns;\n if (toStringTag && module[toStringTag] === 'Module') {\n ns = module;\n }\n else {\n ns = Object.assign(Object.create(null), module);\n if (toStringTag)\n Object.defineProperty(ns, toStringTag, { value: 'Module' });\n }\n\n var done = Promise.resolve(ns);\n\n var load = this[REGISTRY][id] || (this[REGISTRY][id] = {\n id: id,\n i: [],\n h: false,\n d: [],\n e: null,\n er: undefined,\n E: undefined\n });\n\n if (load.e || load.E)\n return false;\n \n Object.assign(load, {\n n: ns,\n I: undefined,\n L: undefined,\n C: done\n });\n return ns;\n};\n\nsystemJSPrototype.has = function (id) {\n var load = this[REGISTRY][id];\n return !!load;\n};\n\n// Delete function provided for hot-reloading use cases\nsystemJSPrototype.delete = function (id) {\n var registry = this[REGISTRY];\n var load = registry[id];\n // in future we can support load.E case by failing load first\n // but that will require TLA callbacks to be implemented\n if (!load || (load.p && load.p.e !== null) || load.E)\n return false;\n\n var importerSetters = load.i;\n // remove from importerSetters\n // (release for gc)\n if (load.d)\n load.d.forEach(function (depLoad) {\n var importerIndex = depLoad.i.indexOf(load);\n if (importerIndex !== -1)\n depLoad.i.splice(importerIndex, 1);\n });\n delete registry[id];\n return function () {\n var load = registry[id];\n if (!load || !importerSetters || load.e !== null || load.E)\n return false;\n // add back the old setters\n importerSetters.forEach(function (setter) {\n load.i.push(setter);\n setter(load.n);\n });\n importerSetters = null;\n };\n};\n\nvar iterator = typeof Symbol !== 'undefined' && Symbol.iterator;\n\nsystemJSPrototype.entries = function () {\n var loader = this, keys = Object.keys(loader[REGISTRY]);\n var index = 0, ns, key;\n var result = {\n next: function () {\n while (\n (key = keys[index++]) !== undefined && \n (ns = loader.get(key)) === undefined\n );\n return {\n done: key === undefined,\n value: key !== undefined && [key, ns]\n };\n }\n };\n\n result[iterator] = function() { return this };\n\n return result;\n};\n"],"names":["errMsg","errCode","msg","resolveIfNotPlainOrUrl","relUrl","parentUrl","indexOf","replace","slice","length","pathname","parentProtocol","segmented","lastIndexOf","output","segmentIndex","i","push","pop","join","resolveUrl","resolveAndComposePackages","packages","outPackages","baseUrl","parentMap","p","resolvedLhs","rhs","mapped","resolveImportMap","targetWarning","getMatch","path","matchObj","sepIndex","segment","applyPackages","id","pkgName","pkg","code","match","target","console","warn","importMap","resolvedOrPlain","scopes","scopeUrl","packageResolution","imports","SystemJS","this","REGISTRY","loadToId","load","triggerOnload","loader","err","isErrSource","onload","d","map","getOrCreateLoad","firstParentUrl","importerSetters","ns","Object","create","toStringTag","defineProperty","value","instantiatePromise","Promise","resolve","then","instantiate","registration","Error","declared","name","h","changed","__esModule","setter","import","importId","meta","createContext","undefined","e","execute","setters","er","linkPromise","instantiation","all","dep","depId","depLoad","I","n","depLoads","L","E","C","processScripts","forEach","call","document","querySelectorAll","script","sp","type","src","System","catch","message","event","createEvent","initEvent","dispatchEvent","reject","fetchPromise","fetch","integrity","passThrough","res","ok","status","text","onerror","innerHTML","importMapPromise","newMapText","newMapUrl","newMap","JSON","parse","json","outMap","u","resolvedScope","depcache","resolveAndComposeImportMap","extendImportMap","hasSymbol","Symbol","hasSelf","self","hasDocument","envGlobal","global","baseEl","querySelector","href","location","lastSepIndex","split","lastRegister","systemJSPrototype","prototype","prepareImport","instantiateAll","parent","loaded","postOrderExec","seen","doExec","execPromise","nullContext","depLoadPromises","depLoadPromise","topLevelLoad","parentId","url","register","deps","declare","getRegister","_lastRegister","freeze","lastAutoImportDeps","lastAutoImportTimeout","processFirst","doProcessScripts","window","addEventListener","evt","lastWindowErrorUrl","filename","lastWindowError","error","baseOrigin","origin","createScript","createElement","async","crossOrigin","autoImportCandidates","systemRegister","readyState","scripts","lastScript","setTimeout","autoImportRegistration","head","removeChild","clearTimeout","appendChild","shouldFetch","jsContentTypeRegEx","credentials","statusText","contentType","headers","get","test","source","eval","apply","arguments","throwUnresolved","systemInstantiate","preloads","importScripts","shouldSkipProperty","hasOwnProperty","isNaN","isIE11","firstGlobalProp","secondGlobalProp","lastGlobalProp","constructor","impt","noteGlobalProps","emptyInstantiation","globalExport","globalProp","useFirstGlobalProp","foundLastProp","result","cnt","getGlobalProp","_export","default","__useDefault","navigator","userAgent","moduleTypesRegEx","jsonContentType","cssContentType","wasmContentType","options","Response","Blob","stringify","quotes","relUrl1","relUrl2","WebAssembly","compileStreaming","arrayBuffer","compile","module","wasmModules","setterSources","Module","key","set","URL","assign","done","has","delete","registry","importerIndex","splice","iterator","entries","keys","index","next"],"mappings":"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"}