├── .gitignore
├── README.md
├── app.html
├── dist-esm
├── components.js
├── main.js
└── render.js
├── dist-system
├── components.js
├── main.js
└── render.js
├── modules-bootstrap.js
├── node_modules
└── systemjs
│ └── dist
│ ├── system-production.js
│ ├── system-production.js.map
│ ├── system-production.src.js
│ ├── system-production.src.js.map
│ ├── system.js
│ ├── system.js.map
│ ├── system.src.js
│ └── system.src.js.map
├── package.json
└── src
├── components.js
├── main.js
└── render.js
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # <script type="module"> Isomorphic browser modules workflow
2 |
3 | This project was created as a follow-up to discussions around how to load ES modules
4 | in modern browsers, while providing a fallback for older browsers that only
5 | support scripts.
6 |
7 | The approach here is to use a `modules-bootstrap.js` that is first attempted to load
8 | as a module and second as a script.
9 |
10 | Custom attributes on the scripts can then be used to point to the correct actual
11 | main entry points to be loaded once we know which loading mechanism to use.
12 |
13 | ### Demo
14 |
15 | Clone the repo and open `app.html` here when running a web server.
16 |
17 | In the latest Safari Technology Preview release with ES modules support, it will use
18 | the ES modules code, while in older browsers it will fallback to SystemJS production and
19 | System.register module format loading.
20 |
21 | To change the code and run a new build use `npm install && npm run build`.
22 |
23 | ### Bootstrap Explained
24 |
25 | The file `app.html` uses the following HTML for this bootstrap:
26 |
27 | ```html
28 |
29 |
30 | ```
31 |
32 | When `
4 |
5 |
--------------------------------------------------------------------------------
/dist-esm/components.js:
--------------------------------------------------------------------------------
1 | export function homepageComponent (opts) {
2 | return `
${opts.message}
`;
3 | }
4 |
--------------------------------------------------------------------------------
/dist-esm/main.js:
--------------------------------------------------------------------------------
1 | import { homepageComponent } from './components.js';
2 | import { render } from './render.js';
3 |
4 | render(homepageComponent({
5 | message: `This application is rendered using
6 | ${self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts'}.`
7 | }));
8 |
--------------------------------------------------------------------------------
/dist-esm/render.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Eat your heart out React.
3 | */
4 | export function render (html) {
5 | document.body.innerHTML = html;
6 | }
7 |
--------------------------------------------------------------------------------
/dist-system/components.js:
--------------------------------------------------------------------------------
1 | System.register([], function (_export, _context) {
2 | "use strict";
3 |
4 | function homepageComponent(opts) {
5 | return `${ opts.message }
`;
6 | }
7 |
8 | _export("homepageComponent", homepageComponent);
9 |
10 | return {
11 | setters: [],
12 | execute: function () {}
13 | };
14 | });
--------------------------------------------------------------------------------
/dist-system/main.js:
--------------------------------------------------------------------------------
1 | System.register(['./components.js', './render.js'], function (_export, _context) {
2 | "use strict";
3 |
4 | var homepageComponent, render;
5 | return {
6 | setters: [function (_componentsJs) {
7 | homepageComponent = _componentsJs.homepageComponent;
8 | }, function (_renderJs) {
9 | render = _renderJs.render;
10 | }],
11 | execute: function () {
12 |
13 | render(homepageComponent({
14 | message: `This application is rendered using
15 | ${ self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts' }.`
16 | }));
17 | }
18 | };
19 | });
--------------------------------------------------------------------------------
/dist-system/render.js:
--------------------------------------------------------------------------------
1 | System.register([], function (_export, _context) {
2 | "use strict";
3 |
4 | /*
5 | * Eat your heart out React.
6 | */
7 | function render(html) {
8 | document.body.innerHTML = html;
9 | }
10 |
11 | _export("render", render);
12 |
13 | return {
14 | setters: [],
15 | execute: function () {}
16 | };
17 | });
--------------------------------------------------------------------------------
/modules-bootstrap.js:
--------------------------------------------------------------------------------
1 | /*
2 | * SystemJS Modules bootstrap
3 | * This file is designed to run as both a module, a script, a worker module, and a worker script
4 | *
5 | * For use with it should be loaded via:
6 | *
7 | *
8 | *
9 | *
10 | * Works by checking if we are in a modules environment or not (feature-detectable by this === undefined)
11 | * If in a modules environment, it dynamically loads the modules main, otherwise it loads SystemJS and
12 | * then System.import loads the system module format main.
13 | */
14 | (function (topLevelThis) {
15 |
16 | var isModule = topLevelThis === undefined;
17 | var global = self;
18 |
19 | // this is needed for modules since document.currentScript doesn't seem supported
20 | // implementation just returns the first
31 | // -> load the main.js
32 | if (isModule) {
33 | var module = document.createElement('script');
34 | module.type = 'module';
35 | module.src = getCurrentModule().getAttribute('main');
36 | document.head.appendChild(module);
37 | global.__supportsScriptTypeModule = true;
38 | }
39 | // running as a
40 | // -> load SystemJS and then System.import('main.js')
41 | else if (!global.__supportsScriptTypeModule) {
42 | var systemScript = document.createElement('script');
43 | systemScript.src = document.currentScript.getAttribute('systemjs') || 'system.js';
44 |
45 | var mainSrc = document.currentScript.getAttribute('main');
46 |
47 | systemScript.addEventListener('load', load, false);
48 | document.head.appendChild(systemScript);
49 |
50 | function load () {
51 | systemScript.removeEventListener('load', load, false);
52 | document.head.removeChild(systemScript);
53 |
54 | SystemJS.import(mainSrc);
55 | }
56 | }
57 | })(this);
58 |
--------------------------------------------------------------------------------
/node_modules/systemjs/dist/system-production.js:
--------------------------------------------------------------------------------
1 | /*
2 | * SystemJS v0.20.0-rc.1 Production
3 | */
4 | !function(){"use strict";function e(e){return K?Symbol():"@@"+e}function t(e,t){F||(t=t.replace(q?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=V&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return J?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){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)||1===e.length)||"/"===o){var s,a=!n||"/"!==t[n.length];if(a?(void 0===t&&r(e,t),s=t):"/"===t[n.length+1]?"file:"!==n?(s=t.substr(n.length+2),s=s.substr(s.indexOf("/")+1)):s=t.substr(8):s=t.substr(n.length+1),"/"===o){if(!a)return t.substr(0,t.length-s.length-1)+e;r(e,t)}for(var u=s.substr(0,s.lastIndexOf("/")+1)+e,c=[],l=void 0,f=0;f1&&h(e,r,i))})).then(function(t){if(void 0!==t){if(!(t instanceof c))throw new TypeError("Instantiate did not return a valid Module object.");return delete i.records[r.key],e.trace&&m(e,r,n),o[r.key]=t}var s=r.registration;if(r.registration=void 0,!s)throw new TypeError("Module instantiation did not call an anonymous or correctly named System.register.");return n.dependencies=s[0],r.importerSetters=[],n.moduleObj={},s[2]?(n.moduleObj.default={},n.moduleObj.__useDefault=!0,n.execute=s[1]):w(e,r,n,s[1]),n.dependencies.length||(n.linked=!0,e.trace&&m(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function y(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var s=o.records[r],a=n[r];if(a&&(!s||s.module&&a!==s.module))return a;(!s||!a&&s.module)&&(s=d(o,r,s&&s.registration));var u=s.linkRecord;return u?v(e,s,u,n,o):s})}function m(e,t,r){e.loads=e.loads||{},e.loads[t.key]={key:t.key,deps:r.dependencies,depMap:r.depMap||{}}}function g(e,t){if(("object"==typeof e||"function"==typeof e)&&e!==G)for(var r=Object.getOwnPropertyNames(e),n=0;nthis.len&&(this.match=e,this.len=r)}}function C(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(N,r),r.match}function _(){f.call(this),this[ie]={baseURL:W,paths:{},map:{},submap:{},bundles:{},depCache:{},wasm:!1},this.registry.set("@empty",oe)}function D(e,t){var r=this[ie];if(t){var o=C(r.submap,t),i=r.submap[o],s=i&&C(i,e);if(s){var a=i[s]+e.substr(s.length);return n(a,o)||a}}var u=r.map,s=C(u,e);if(s){var a=u[s]+e.substr(s.length);return n(a,o)||a}}function A(e){return fetch(e).then(function(e){if(e.ok)return e.arrayBuffer();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(function(e){var t=new Uint8Array(e);return 0===t[0]&&97===t[1]&&115===t[2]?WebAssembly.compile(t).then(function(e){var t=new WebAssembly.Instance(e,{});return new c(t.exports)}):new TextDecoder("utf-8").decode(t)})}function z(e,t){return new Promise(function(r,n){return T(e,"anonymous",void 0,function(){t(),r()},n)})}function B(e,t){var r=this[ie],n=r.wasm,o=r.bundles[e];if(o){var i=this,s=i.resolveSync(o,void 0);if(i.registry.has(s))return;return pe[s]||(pe[s]=z(s,t).then(function(){i.registry.has(s)||i.registry.set(s,i.newModule({})),delete pe[s]}))}var a=r.depCache[e];if(a)for(var u=n?fetch:I,c=0;c skip standard URL prefix, and treat entire parent as pathname
124 | if (parentUrl === undefined)
125 | throwResolveError(relUrl, parentUrl);
126 | pathname = parentUrl;
127 | }
128 | else if (parentUrl[parentProtocol.length + 1] === '/') {
129 | // resolving to a :// so we need to read out the auth and host
130 | if (parentProtocol !== 'file:') {
131 | pathname = parentUrl.substr(parentProtocol.length + 2);
132 | pathname = pathname.substr(pathname.indexOf('/') + 1);
133 | }
134 | else {
135 | pathname = parentUrl.substr(8);
136 | }
137 | }
138 | else {
139 | // resolving to :/ so pathname is the /... part
140 | pathname = parentUrl.substr(parentProtocol.length + 1);
141 | }
142 |
143 | if (firstChar === '/') {
144 | if (parentIsPlain)
145 | throwResolveError(relUrl, parentUrl);
146 | else
147 | return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;
148 | }
149 |
150 | // join together and split for removal of .. and . segments
151 | // looping the string instead of anything fancy for perf reasons
152 | // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain
153 | var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;
154 |
155 | var output = [];
156 | var segmentIndex = undefined;
157 |
158 | for (var i = 0; i < segmented.length; i++) {
159 | // busy reading a segment - only terminate on '/'
160 | if (segmentIndex !== undefined) {
161 | if (segmented[i] === '/') {
162 | output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));
163 | segmentIndex = undefined;
164 | }
165 | continue;
166 | }
167 |
168 | // new segment - check if it is relative
169 | if (segmented[i] === '.') {
170 | // ../ segment
171 | if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i === segmented.length - 2)) {
172 | output.pop();
173 | i += 2;
174 | }
175 | // ./ segment
176 | else if (segmented[i + 1] === '/' || i === segmented.length - 1) {
177 | i += 1;
178 | }
179 | else {
180 | // the start of a new segment as below
181 | segmentIndex = i;
182 | continue;
183 | }
184 |
185 | // this is the plain URI backtracking error (../, package:x -> error)
186 | if (parentIsPlain && output.length === 0)
187 | throwResolveError(relUrl, parentUrl);
188 |
189 | // trailing . or .. segment
190 | if (i === segmented.length)
191 | output.push('');
192 | continue;
193 | }
194 |
195 | // it is the start of a new segment
196 | segmentIndex = i;
197 | }
198 | // finish reading out the last segment
199 | if (segmentIndex !== undefined)
200 | output.push(segmented.substr(segmentIndex, segmented.length - segmentIndex));
201 |
202 | return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');
203 | }
204 |
205 | // sanitizes and verifies (by returning undefined if not a valid URL-like form)
206 | // Windows filepath compatibility is an added convenience here
207 | var protocolIndex = relUrl.indexOf(':');
208 | if (protocolIndex !== -1) {
209 | if (isNode) {
210 | // C:\x becomes file:///c:/x (we don't support C|\x)
211 | if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i))
212 | return 'file:///' + relUrl.replace(/\\/g, '/');
213 | }
214 | return relUrl;
215 | }
216 | }
217 |
218 | /*
219 | * Simple Array values shim
220 | */
221 | function arrayValues (arr) {
222 | if (arr.values)
223 | return arr.values();
224 |
225 | if (typeof Symbol === 'undefined' || !Symbol.iterator)
226 | throw new Error('Symbol.iterator not supported in this browser');
227 |
228 | var iterable = {};
229 | iterable[Symbol.iterator] = function () {
230 | var keys = Object.keys(arr);
231 | var keyIndex = 0;
232 | return {
233 | next: function () {
234 | if (keyIndex < keys.length)
235 | return {
236 | value: arr[keys[keyIndex++]],
237 | done: false
238 | };
239 | else
240 | return {
241 | value: undefined,
242 | done: true
243 | };
244 | }
245 | };
246 | };
247 | return iterable;
248 | }
249 |
250 | /*
251 | * 3. Reflect.Loader
252 | *
253 | * We skip the entire native internal pipeline, just providing the bare API
254 | */
255 | // 3.1.1
256 | function Loader () {
257 | this.registry = new Registry();
258 | }
259 | // 3.3.1
260 | Loader.prototype.constructor = Loader;
261 |
262 | function ensureInstantiated (module) {
263 | if (!(module instanceof ModuleNamespace))
264 | throw new TypeError('Module instantiation did not return a valid namespace object.');
265 | return module;
266 | }
267 |
268 | // 3.3.2
269 | Loader.prototype.import = function (key, parent) {
270 | if (typeof key !== 'string')
271 | throw new TypeError('Loader import method must be passed a module key string');
272 | // custom resolveInstantiate combined hook for better perf
273 | var loader = this;
274 | return resolvedPromise
275 | .then(function () {
276 | return loader[RESOLVE_INSTANTIATE](key, parent);
277 | })
278 | .then(ensureInstantiated)
279 | //.then(Module.evaluate)
280 | .catch(function (err) {
281 | throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
282 | });
283 | };
284 | // 3.3.3
285 | var RESOLVE = Loader.resolve = createSymbol('resolve');
286 |
287 | /*
288 | * Combined resolve / instantiate hook
289 | *
290 | * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described
291 | * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.
292 | *
293 | * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid
294 | * the need for double registry lookups as a performance optimization.
295 | */
296 | var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');
297 |
298 | // default resolveInstantiate is just to call resolve and then get from the registry
299 | // this provides compatibility for the resolveInstantiate optimization
300 | Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {
301 | var loader = this;
302 | return loader.resolve(key, parent)
303 | .then(function (resolved) {
304 | return loader.registry.get(resolved);
305 | });
306 | };
307 |
308 | function ensureResolution (resolvedKey) {
309 | if (resolvedKey === undefined)
310 | throw new RangeError('No resolution found.');
311 | return resolvedKey;
312 | }
313 |
314 | Loader.prototype.resolve = function (key, parent) {
315 | var loader = this;
316 | return resolvedPromise
317 | .then(function() {
318 | return loader[RESOLVE](key, parent);
319 | })
320 | .then(ensureResolution)
321 | .catch(function (err) {
322 | throw LoaderError__Check_error_message_for_loader_stack(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));
323 | });
324 | };
325 |
326 | // 3.3.4 (import without evaluate)
327 | // this is not documented because the use of deferred evaluation as in Module.evaluate is not
328 | // documented, as it is not considered a stable feature to be encouraged
329 | // Loader.prototype.load may well be deprecated if this stays disabled
330 | /* Loader.prototype.load = function (key, parent) {
331 | return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))
332 | .catch(function (err) {
333 | throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
334 | });
335 | }; */
336 |
337 | /*
338 | * 4. Registry
339 | *
340 | * Instead of structuring through a Map, just use a dictionary object
341 | * We throw for construction attempts so this doesn't affect the public API
342 | *
343 | * Registry has been adjusted to use Namespace objects over ModuleStatus objects
344 | * as part of simplifying loader API implementation
345 | */
346 | var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;
347 | var REGISTRY = createSymbol('registry');
348 | function Registry() {
349 | this[REGISTRY] = {};
350 | this._registry = 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.getOwnPropertyNames(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, clearing failed modules from registration cache synchronously
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 | this[REGISTER_INTERNAL] = {
501 | // last anonymous System.register call
502 | lastRegister: undefined,
503 | // in-flight es module load records
504 | records: {}
505 | };
506 |
507 | // tracing
508 | this.trace = false;
509 | }
510 |
511 | RegisterLoader$1.prototype = Object.create(Loader.prototype);
512 | RegisterLoader$1.prototype.constructor = RegisterLoader$1;
513 |
514 | var INSTANTIATE = RegisterLoader$1.instantiate = createSymbol('instantiate');
515 |
516 | // default normalize is the WhatWG style normalizer
517 | RegisterLoader$1.prototype[RegisterLoader$1.resolve = Loader.resolve] = function (key, parentKey) {
518 | return resolveIfNotPlain(key, parentKey || baseURI);
519 | };
520 |
521 | RegisterLoader$1.prototype[INSTANTIATE] = function (key, processAnonRegister) {};
522 |
523 | // once evaluated, the linkRecord is set to undefined leaving just the other load record properties
524 | // this allows tracking new binding listeners for es modules through importerSetters
525 | // for dynamic modules, the load record is removed entirely.
526 | function createLoadRecord (state, key, registration) {
527 | return state.records[key] = {
528 | key: key,
529 |
530 | // defined System.register cache
531 | registration: registration,
532 |
533 | // module namespace object
534 | module: undefined,
535 |
536 | // es-only
537 | // this sticks around so new module loads can listen to binding changes
538 | // for already-loaded modules by adding themselves to their importerSetters
539 | importerSetters: undefined,
540 |
541 | // in-flight linking record
542 | linkRecord: {
543 | // promise for instantiated
544 | instantiatePromise: undefined,
545 | dependencies: undefined,
546 | execute: undefined,
547 | // underlying module object bindings
548 | moduleObj: undefined,
549 |
550 | // es only, also indicates if es or not
551 | setters: undefined,
552 |
553 | // promise for instantiated dependencies (dependencyInstantiations populated)
554 | depsInstantiatePromise: undefined,
555 | // will be the array of dependency load record or a module namespace
556 | dependencyInstantiations: undefined,
557 |
558 | // indicates if the load and all its dependencies are instantiated and linked
559 | // but not yet executed
560 | // mostly just a performance shortpath to avoid rechecking the promises above
561 | linked: false,
562 |
563 | error: undefined
564 | // NB optimization and way of ensuring module objects in setters
565 | // indicates setters which should run pre-execution of that dependency
566 | // setters is then just for completely executed module objects
567 | // alternatively we just pass the partially filled module objects as
568 | // arguments into the execute function
569 | // hoisted: undefined
570 | }
571 | };
572 | }
573 |
574 | RegisterLoader$1.prototype[Loader.resolveInstantiate] = function (key, parentKey) {
575 | var loader = this;
576 | var state = this[REGISTER_INTERNAL];
577 | var registry = loader.registry[loader.registry._registry];
578 |
579 | return resolveInstantiate(loader, key, parentKey, registry, state)
580 | .then(function (instantiated) {
581 | if (instantiated instanceof ModuleNamespace)
582 | return instantiated;
583 |
584 | // if already beaten to linked, return
585 | if (instantiated.module)
586 | return instantiated.module;
587 |
588 | // resolveInstantiate always returns a load record with a link record and no module value
589 | if (instantiated.linkRecord.linked)
590 | return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);
591 |
592 | return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])
593 | .then(function () {
594 | return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);
595 | })
596 | .catch(function (err) {
597 | clearLoadErrors(loader, instantiated);
598 | throw err;
599 | });
600 | });
601 | };
602 |
603 | function resolveInstantiate (loader, key, parentKey, registry, state) {
604 | // normalization shortpath for already-normalized key
605 | // could add a plain name filter, but doesn't yet seem necessary for perf
606 | var module = registry[key];
607 | if (module)
608 | return Promise.resolve(module);
609 |
610 | var load = state.records[key];
611 |
612 | // already linked but not in main registry is ignored
613 | if (load && !load.module)
614 | return instantiate(loader, load, load.linkRecord, registry, state);
615 |
616 | return loader.resolve(key, parentKey)
617 | .then(function (resolvedKey) {
618 | // main loader registry always takes preference
619 | module = registry[resolvedKey];
620 | if (module)
621 | return module;
622 |
623 | load = state.records[resolvedKey];
624 |
625 | // already has a module value but not already in the registry (load.module)
626 | // means it was removed by registry.delete, so we should
627 | // disgard the current load record creating a new one over it
628 | // but keep any existing registration
629 | if (!load || load.module)
630 | load = createLoadRecord(state, resolvedKey, load && load.registration);
631 |
632 | var link = load.linkRecord;
633 | if (!link)
634 | return load;
635 |
636 | return instantiate(loader, load, link, registry, state);
637 | });
638 | }
639 |
640 | function createProcessAnonRegister (loader, load, state) {
641 | return function () {
642 | var lastRegister = state.lastRegister;
643 |
644 | if (!lastRegister)
645 | return !!load.registration;
646 |
647 | state.lastRegister = undefined;
648 | load.registration = lastRegister;
649 |
650 | return true;
651 | };
652 | }
653 |
654 | function instantiate (loader, load, link, registry, state) {
655 | return link.instantiatePromise || (link.instantiatePromise =
656 | // if there is already an existing registration, skip running instantiate
657 | (load.registration ? Promise.resolve() : Promise.resolve().then(function () {
658 | state.lastRegister = undefined;
659 | return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));
660 | }))
661 | .then(function (instantiation) {
662 | // direct module return from instantiate -> we're done
663 | if (instantiation !== undefined) {
664 | if (!(instantiation instanceof ModuleNamespace))
665 | throw new TypeError('Instantiate did not return a valid Module object.');
666 |
667 | delete state.records[load.key];
668 | if (loader.trace)
669 | traceLoad(loader, load, link);
670 | return registry[load.key] = instantiation;
671 | }
672 |
673 | // run the cached loader.register declaration if there is one
674 | var registration = load.registration;
675 | // clear to allow new registrations for future loads (combined with registry delete)
676 | load.registration = undefined;
677 | if (!registration)
678 | throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');
679 |
680 | link.dependencies = registration[0];
681 |
682 | load.importerSetters = [];
683 |
684 | link.moduleObj = {};
685 |
686 | // process System.registerDynamic declaration
687 | if (registration[2]) {
688 | link.moduleObj.default = {};
689 | link.moduleObj.__useDefault = true;
690 | link.execute = registration[1];
691 | }
692 |
693 | // process System.register declaration
694 | else {
695 | registerDeclarative(loader, load, link, registration[1]);
696 | }
697 |
698 | // shortpath to instantiateDeps
699 | if (!link.dependencies.length) {
700 | link.linked = true;
701 | if (loader.trace)
702 | traceLoad(loader, load, link);
703 | }
704 |
705 | return load;
706 | })
707 | .catch(function (err) {
708 | throw link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Instantiating ' + load.key);
709 | }));
710 | }
711 |
712 | // like resolveInstantiate, but returning load records for linking
713 | function resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {
714 | // normalization shortpaths for already-normalized key
715 | // DISABLED to prioritise consistent resolver calls
716 | // could add a plain name filter, but doesn't yet seem necessary for perf
717 | /* var load = state.records[key];
718 | var module = registry[key];
719 |
720 | if (module) {
721 | if (traceDepMap)
722 | traceDepMap[key] = key;
723 |
724 | // registry authority check in case module was deleted or replaced in main registry
725 | if (load && load.module && load.module === module)
726 | return load;
727 | else
728 | return module;
729 | }
730 |
731 | // already linked but not in main registry is ignored
732 | if (load && !load.module) {
733 | if (traceDepMap)
734 | traceDepMap[key] = key;
735 | return instantiate(loader, load, load.linkRecord, registry, state);
736 | } */
737 | return loader.resolve(key, parentKey)
738 | .then(function (resolvedKey) {
739 | if (traceDepMap)
740 | traceDepMap[key] = key;
741 |
742 | // normalization shortpaths for already-normalized key
743 | var load = state.records[resolvedKey];
744 | var module = registry[resolvedKey];
745 |
746 | // main loader registry always takes preference
747 | if (module && (!load || load.module && module !== load.module))
748 | return module;
749 |
750 | // already has a module value but not already in the registry (load.module)
751 | // means it was removed by registry.delete, so we should
752 | // disgard the current load record creating a new one over it
753 | // but keep any existing registration
754 | if (!load || !module && load.module)
755 | load = createLoadRecord(state, resolvedKey, load && load.registration);
756 |
757 | var link = load.linkRecord;
758 | if (!link)
759 | return load;
760 |
761 | return instantiate(loader, load, link, registry, state);
762 | });
763 | }
764 |
765 | function traceLoad (loader, load, link) {
766 | loader.loads = loader.loads || {};
767 | loader.loads[load.key] = {
768 | key: load.key,
769 | deps: link.dependencies,
770 | depMap: link.depMap || {}
771 | };
772 | }
773 |
774 | /*
775 | * Convert a CJS module.exports into a valid object for new Module:
776 | *
777 | * new Module(getEsModule(module.exports))
778 | *
779 | * Sets the default value to the module, while also reading off named exports carefully.
780 | */
781 |
782 | // NB re-evaluate if this will even exist, and if it should be restricted to valid identifiers only
783 | function copyNamedExports (exports, moduleObj) {
784 | if ((typeof exports === 'object' || typeof exports === 'function') && exports !== envGlobal) {
785 | var props = Object.getOwnPropertyNames(exports);
786 | for (var i = 0; i < props.length; i++)
787 | defineOrCopyProperty(moduleObj, exports, props[i]);
788 | }
789 | moduleObj.default = exports;
790 | }
791 |
792 | function defineOrCopyProperty (targetObj, sourceObj, propName) {
793 | // don't trigger getters/setters in environments that support them
794 | try {
795 | var d;
796 | if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) {
797 | // only copy data descriptors
798 | if (d.value)
799 | targetObj[propName] = d.value;
800 | }
801 | }
802 | catch (e) {
803 | // Object.getOwnPropertyDescriptor threw an exception -> not own property
804 | }
805 | }
806 |
807 | function registerDeclarative (loader, load, link, declare) {
808 | var moduleObj = link.moduleObj;
809 | var importerSetters = load.importerSetters;
810 |
811 | var locked = false;
812 |
813 | // closure especially not based on link to allow link record disposal
814 | var declared = declare.call(envGlobal, function (name, value) {
815 | // export setter propogation with locking to avoid cycles
816 | if (locked)
817 | return;
818 |
819 | if (typeof name == 'object') {
820 | for (var p in name)
821 | if (p !== '__useDefault')
822 | moduleObj[p] = name[p];
823 | }
824 | else {
825 | moduleObj[name] = value;
826 | }
827 |
828 | locked = true;
829 | for (var i = 0; i < importerSetters.length; i++)
830 | importerSetters[i](moduleObj);
831 | locked = false;
832 |
833 | return value;
834 | }, new ContextualLoader(loader, load.key));
835 |
836 | if (typeof declared !== 'function') {
837 | link.setters = declared.setters;
838 | link.execute = declared.execute;
839 | }
840 | else {
841 | link.setters = [];
842 | link.execute = declared;
843 | }
844 | }
845 |
846 | function instantiateDeps (loader, load, link, registry, state, seen) {
847 | return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()
848 | .then(function () {
849 | var depsInstantiatePromises = Array(link.dependencies.length);
850 |
851 | for (var i = 0; i < link.dependencies.length; i++)
852 | depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && (link.depMap = {}));
853 |
854 | return Promise.all(depsInstantiatePromises);
855 | })
856 | .then(function (dependencyInstantiations) {
857 | link.dependencyInstantiations = dependencyInstantiations;
858 |
859 | // run setters to set up bindings to instantiated dependencies
860 | if (link.setters) {
861 | for (var i = 0; i < dependencyInstantiations.length; i++) {
862 | var setter = link.setters[i];
863 | if (setter) {
864 | var instantiation = dependencyInstantiations[i];
865 |
866 | if (instantiation instanceof ModuleNamespace) {
867 | setter(instantiation);
868 | }
869 | else {
870 | setter(instantiation.module || instantiation.linkRecord.moduleObj);
871 | // this applies to both es and dynamic registrations
872 | if (instantiation.importerSetters)
873 | instantiation.importerSetters.push(setter);
874 | }
875 | }
876 | }
877 | }
878 | })))
879 | .then(function () {
880 | // now deeply instantiateDeps on each dependencyInstantiation that is a load record
881 | var deepDepsInstantiatePromises = [];
882 |
883 | for (var i = 0; i < link.dependencies.length; i++) {
884 | var depLoad = link.dependencyInstantiations[i];
885 | var depLink = depLoad.linkRecord;
886 |
887 | if (!depLink || depLink.linked)
888 | continue;
889 |
890 | if (seen.indexOf(depLoad) !== -1)
891 | continue;
892 | seen.push(depLoad);
893 |
894 | deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));
895 | }
896 |
897 | return Promise.all(deepDepsInstantiatePromises);
898 | })
899 | .then(function () {
900 | // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry
901 | // this can run multiple times, but so what
902 | link.linked = true;
903 | if (loader.trace)
904 | traceLoad(loader, load, link);
905 |
906 | return load;
907 | })
908 | .catch(function (err) {
909 | err = LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + load.key);
910 |
911 | // throw up the instantiateDeps stack
912 | // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below
913 | // this then ensures avoiding partially unloaded tree states
914 | link.error = link.error || err;
915 |
916 | throw err;
917 | });
918 | }
919 |
920 | // clears an errored load and all its errored dependencies from the loads registry
921 | function clearLoadErrors (loader, load) {
922 | var state = loader[REGISTER_INTERNAL];
923 |
924 | // clear from loads
925 | if (state.records[load.key] === load)
926 | delete state.records[load.key];
927 |
928 | var link = load.linkRecord;
929 |
930 | if (!link)
931 | return;
932 |
933 | if (link.dependencyInstantiations)
934 | link.dependencyInstantiations.forEach(function (depLoad, index) {
935 | if (!depLoad || depLoad instanceof ModuleNamespace)
936 | return;
937 |
938 | if (depLoad.linkRecord) {
939 | if (depLoad.linkRecord.error) {
940 | // provides a circular reference check
941 | if (state.records[depLoad.key] === depLoad)
942 | clearLoadErrors(loader, depLoad);
943 | }
944 |
945 | // unregister setters for es dependency load records that will remain
946 | if (link.setters && depLoad.importerSetters) {
947 | var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);
948 | depLoad.importerSetters.splice(setterIndex, 1);
949 | }
950 | }
951 | });
952 | }
953 |
954 | /*
955 | * System.register
956 | */
957 | RegisterLoader$1.prototype.register = function (key, deps, declare) {
958 | var state = this[REGISTER_INTERNAL];
959 |
960 | // anonymous modules get stored as lastAnon
961 | if (declare === undefined) {
962 | state.lastRegister = [key, deps, false];
963 | }
964 |
965 | // everything else registers into the register cache
966 | else {
967 | var load = state.records[key] || createLoadRecord(state, key, undefined);
968 | load.registration = [deps, declare, false];
969 | }
970 | };
971 |
972 | /*
973 | * System.registerDyanmic
974 | */
975 | RegisterLoader$1.prototype.registerDynamic = function (key, deps, execute) {
976 | var state = this[REGISTER_INTERNAL];
977 |
978 | // anonymous modules get stored as lastAnon
979 | if (typeof key !== 'string') {
980 | state.lastRegister = [key, typeof deps === 'boolean' ? dynamicExecuteCompat(key, deps, execute) : deps, true];
981 | }
982 |
983 | // everything else registers into the register cache
984 | else {
985 | var load = state.records[key] || createLoadRecord(state, key, undefined);
986 | load.registration = [deps, typeof execute === 'boolean' ? dynamicExecuteCompat(deps, execute, arguments[3]) : execute, true];
987 | }
988 | };
989 |
990 | function dynamicExecuteCompat (deps, executingRequire, execute) {
991 | return function (require, exports, module) {
992 | // evaluate deps first
993 | if (!executingRequire)
994 | for (var i = 0; i < deps.length; i++)
995 | require(deps[i]);
996 |
997 | // then run execution function
998 | // also provide backwards compat for no return value
999 | // previous 4 argument form of System.register had "this" as global value
1000 | module.exports = execute.apply(envGlobal, arguments) || module.exports;
1001 | };
1002 | }
1003 |
1004 | // ContextualLoader class
1005 | // backwards-compatible with previous System.register context argument by exposing .id
1006 | function ContextualLoader (loader, key) {
1007 | this.loader = loader;
1008 | this.key = this.id = key;
1009 | }
1010 | ContextualLoader.prototype.constructor = function () {
1011 | throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');
1012 | };
1013 | ContextualLoader.prototype.import = function (key) {
1014 | return this.loader.import(key, this.key);
1015 | };
1016 | ContextualLoader.prototype.resolve = function (key) {
1017 | return this.loader.resolve(key, this.key);
1018 | };
1019 | ContextualLoader.prototype.load = function (key) {
1020 | return this.loader.load(key, this.key);
1021 | };
1022 |
1023 | // this is the execution function bound to the Module namespace record
1024 | function ensureEvaluate (loader, load, link, registry, state, seen) {
1025 | if (load.module)
1026 | return load.module;
1027 |
1028 | if (link.error)
1029 | throw link.error;
1030 |
1031 | if (seen && seen.indexOf(load) !== -1)
1032 | return load.linkRecord.moduleObj;
1033 |
1034 | // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless
1035 | // for dynamic loads, we pass seen if also dynamic
1036 | var err = doEvaluate(loader, load, link, registry, state, load.setters ? [] : seen || []);
1037 | if (err) {
1038 | clearLoadErrors(loader, load);
1039 | throw err;
1040 | }
1041 |
1042 | return load.module;
1043 | }
1044 |
1045 | function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {
1046 | // we can only require from already-known dependencies
1047 | return function (name) {
1048 | for (var i = 0; i < dependencies.length; i++) {
1049 | if (dependencies[i] === name) {
1050 | var depLoad = dependencyInstantiations[i];
1051 | var module;
1052 |
1053 | if (depLoad instanceof ModuleNamespace)
1054 | module = depLoad;
1055 | else
1056 | module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);
1057 |
1058 | return module.__useDefault ? module.default : module;
1059 | }
1060 | }
1061 | throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);
1062 | };
1063 | }
1064 |
1065 | // ensures the given es load is evaluated
1066 | // returns the error if any
1067 | function doEvaluate (loader, load, link, registry, state, seen) {
1068 | seen.push(load);
1069 |
1070 | var err;
1071 |
1072 | // es modules evaluate dependencies first
1073 | // non es modules explicitly call moduleEvaluate through require
1074 | if (link.setters) {
1075 | var depLoad, depLink;
1076 | for (var i = 0; i < link.dependencies.length; i++) {
1077 | depLoad = link.dependencyInstantiations[i];
1078 |
1079 | if (depLoad instanceof ModuleNamespace)
1080 | continue;
1081 |
1082 | // custom Module returned from instantiate
1083 | depLink = depLoad.linkRecord;
1084 | if (depLink && seen.indexOf(depLoad) === -1) {
1085 | if (depLink.error)
1086 | err = depLink.error;
1087 | else
1088 | // dynamic / declarative boundaries clear the "seen" list
1089 | // we just let cross format circular throw as would happen in real implementations
1090 | err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);
1091 | }
1092 |
1093 | if (err)
1094 | return link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
1095 | }
1096 | }
1097 |
1098 | // link.execute won't exist for Module returns from instantiate on top-level load
1099 | if (link.execute) {
1100 | // ES System.register execute
1101 | // "this" is null in ES
1102 | if (link.setters) {
1103 | err = doExecute(link.execute, nullContext);
1104 | }
1105 | // System.registerDynamic execute
1106 | // "this" is "exports" in CJS
1107 | else {
1108 | var module = { id: load.key };
1109 | var moduleObj = link.moduleObj;
1110 | Object.defineProperty(module, 'exports', {
1111 | configurable: true,
1112 | set: function (exports) {
1113 | moduleObj.default = exports;
1114 | },
1115 | get: function () {
1116 | return moduleObj.default;
1117 | }
1118 | });
1119 | err = doExecute(link.execute, module.exports, [
1120 | makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen),
1121 | module.exports,
1122 | module
1123 | ]);
1124 |
1125 | // copy module.exports onto the module object
1126 | if (!err)
1127 | copyNamedExports(module.exports, moduleObj);
1128 | }
1129 | }
1130 |
1131 | if (err)
1132 | return link.error = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
1133 |
1134 | registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);
1135 |
1136 | // if not an esm module, run importer setters and clear them
1137 | // this allows dynamic modules to update themselves into es modules
1138 | // as soon as execution has completed
1139 | if (!link.setters) {
1140 | if (load.importerSetters)
1141 | for (var i = 0; i < load.importerSetters.length; i++)
1142 | load.importerSetters[i](load.module);
1143 | load.importerSetters = undefined;
1144 | }
1145 |
1146 | // dispose link record
1147 | load.linkRecord = undefined;
1148 | }
1149 |
1150 | // {} is the closest we can get to call(undefined)
1151 | var nullContext = {};
1152 | if (Object.freeze)
1153 | Object.freeze(nullContext);
1154 | function doExecute (execute, context, args) {
1155 | try {
1156 | execute.apply(context, args);
1157 | }
1158 | catch (e) {
1159 | return e;
1160 | }
1161 | }
1162 |
1163 | var emptyModule = new ModuleNamespace({});
1164 |
1165 |
1166 |
1167 | var CONFIG = createSymbol('loader-config');
1168 |
1169 | var PLAIN_RESOLVE = createSymbol('plain-resolve');
1170 | var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');
1171 |
1172 | var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';
1173 |
1174 |
1175 |
1176 | var parentModuleContext;
1177 |
1178 |
1179 | function extend (a, b) {
1180 | for (var p in b) {
1181 | if (!Object.hasOwnProperty.call(b, p))
1182 | continue;
1183 | a[p] = b[p];
1184 | }
1185 | return a;
1186 | }
1187 |
1188 | function prepend (a, b) {
1189 | for (var p in b) {
1190 | if (!Object.hasOwnProperty.call(b, p))
1191 | continue;
1192 | if (a[p] === undefined)
1193 | a[p] = b[p];
1194 | }
1195 | return a;
1196 | }
1197 |
1198 | // meta first-level extends where:
1199 | // array + array appends
1200 | // object + object extends
1201 | // other properties replace
1202 |
1203 |
1204 | var supportsPreload = isBrowser && (function () {
1205 | var relList = document.createElement('link').relList;
1206 | if (relList && relList.supports) {
1207 | try {
1208 | return relList.supports('preload');
1209 | }
1210 | catch (e) {}
1211 | }
1212 | return false;
1213 | })();
1214 |
1215 | function preloadScript (url) {
1216 | var link = document.createElement('link');
1217 | if (supportsPreload) {
1218 | link.rel = 'preload';
1219 | link.as = 'script';
1220 | }
1221 | else {
1222 | link.rel = 'prefetch';
1223 | }
1224 | link.href = url;
1225 | document.head.appendChild(link);
1226 | document.head.removeChild(link);
1227 | }
1228 |
1229 | function workerImport (src, resolve, reject) {
1230 | try {
1231 | importScripts(src);
1232 | }
1233 | catch (e) {
1234 | reject(e);
1235 | }
1236 | resolve();
1237 | }
1238 |
1239 | if (isBrowser) {
1240 | var loadingScripts = [];
1241 | var onerror = window.onerror;
1242 | window.onerror = function globalOnerror (msg, src) {
1243 | for (var i = 0; i < loadingScripts.length; i++) {
1244 | if (loadingScripts[i].src !== src)
1245 | continue;
1246 | loadingScripts[i].err(msg);
1247 | return;
1248 | }
1249 | onerror.apply(this, arguments);
1250 | };
1251 | }
1252 |
1253 | function scriptLoad (src, crossOrigin, integrity, resolve, reject) {
1254 | // percent encode just "#" for HTTP requests
1255 | src = src.replace(/#/g, '%23');
1256 |
1257 | // subresource integrity is not supported in web workers
1258 | if (isWorker)
1259 | return workerImport(src, resolve, reject);
1260 |
1261 | var script = document.createElement('script');
1262 | script.type = 'text/javascript';
1263 | script.charset = 'utf-8';
1264 | script.async = true;
1265 |
1266 | if (crossOrigin)
1267 | script.crossOrigin = crossOrigin;
1268 | if (integrity)
1269 | script.integrity = integrity;
1270 |
1271 | script.addEventListener('load', load, false);
1272 | script.addEventListener('error', error, false);
1273 |
1274 | script.src = src;
1275 | document.head.appendChild(script);
1276 |
1277 | function load () {
1278 | resolve();
1279 | cleanup();
1280 | }
1281 |
1282 | // note this does not catch execution errors
1283 | function error (err) {
1284 | cleanup();
1285 | reject(new Error('Fetching ' + src));
1286 | }
1287 |
1288 | function cleanup () {
1289 | for (var i = 0; i < loadingScripts.length; i++) {
1290 | if (loadingScripts[i].err === error) {
1291 | loadingScripts.splice(i, 1);
1292 | break;
1293 | }
1294 | }
1295 | script.removeEventListener('load', load, false);
1296 | script.removeEventListener('error', error, false);
1297 | document.head.removeChild(script);
1298 | }
1299 | }
1300 |
1301 |
1302 |
1303 | // separate out paths cache as a baseURL lock process
1304 | function applyPaths (baseURL, paths, key) {
1305 | var mapMatch = getMapMatch(paths, key);
1306 | if (mapMatch) {
1307 | var target = paths[mapMatch] + key.substr(mapMatch.length);
1308 |
1309 | var resolved = resolveIfNotPlain(target, baseURI);
1310 | if (resolved !== undefined)
1311 | return resolved;
1312 |
1313 | return baseURL + target;
1314 | }
1315 | else if (key.indexOf(':') !== -1) {
1316 | return key;
1317 | }
1318 | else {
1319 | return baseURL + key;
1320 | }
1321 | }
1322 |
1323 | function checkMap (p) {
1324 | var name = this.name;
1325 | // can add ':' here if we want paths to match the behaviour of map
1326 | if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {
1327 | var curLen = p.split('/').length;
1328 | if (curLen > this.len) {
1329 | this.match = p;
1330 | this.len = curLen;
1331 | }
1332 | }
1333 | }
1334 |
1335 | function getMapMatch (map, name) {
1336 | if (Object.hasOwnProperty.call(map, name))
1337 | return name;
1338 |
1339 | var bestMatch = {
1340 | name: name,
1341 | match: undefined,
1342 | len: 0
1343 | };
1344 |
1345 | Object.keys(map).forEach(checkMap, bestMatch);
1346 |
1347 | return bestMatch.match;
1348 | }
1349 |
1350 | // RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339
1351 |
1352 | function SystemJSProductionLoader$1 () {
1353 | RegisterLoader$1.call(this);
1354 |
1355 | // internal configuration
1356 | this[CONFIG] = {
1357 | baseURL: baseURI,
1358 | paths: {},
1359 | map: {},
1360 | submap: {},
1361 | bundles: {},
1362 | depCache: {},
1363 | wasm: false
1364 | };
1365 |
1366 | // support the empty module, as a concept
1367 | this.registry.set('@empty', emptyModule);
1368 | }
1369 |
1370 | SystemJSProductionLoader$1.plainResolve = PLAIN_RESOLVE;
1371 | SystemJSProductionLoader$1.plainResolveSync = PLAIN_RESOLVE_SYNC;
1372 |
1373 | var systemJSPrototype = SystemJSProductionLoader$1.prototype = Object.create(RegisterLoader$1.prototype);
1374 |
1375 | systemJSPrototype.constructor = SystemJSProductionLoader$1;
1376 |
1377 | systemJSPrototype[SystemJSProductionLoader$1.resolve = RegisterLoader$1.resolve] = function (key, parentKey) {
1378 | var resolved = resolveIfNotPlain(key, parentKey || baseURI);
1379 | if (resolved !== undefined)
1380 | return Promise.resolve(resolved);
1381 |
1382 | // plain resolution
1383 | var loader = this;
1384 | return resolvedPromise
1385 | .then(function () {
1386 | return loader[PLAIN_RESOLVE](key, parentKey);
1387 | })
1388 | .then(function (resolved) {
1389 | // then apply paths
1390 | // baseURL is fallback
1391 | var config = loader[CONFIG];
1392 | return applyPaths(config.baseURL, config.paths, resolved || key);
1393 | });
1394 | };
1395 |
1396 | systemJSPrototype.newModule = function (bindings) {
1397 | return new ModuleNamespace(bindings);
1398 | };
1399 |
1400 | systemJSPrototype.resolveSync = function (key, parentKey) {
1401 | var resolved = resolveIfNotPlain(key, parentKey || baseURI);
1402 | if (resolved !== undefined)
1403 | return resolved;
1404 |
1405 | // plain resolution
1406 | resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey);
1407 |
1408 | // then apply paths
1409 | var config = this[CONFIG];
1410 | return applyPaths(config.baseURL, config.paths, resolved || key);
1411 | };
1412 |
1413 | systemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;
1414 |
1415 | systemJSPrototype[SystemJSProductionLoader$1.instantiate = RegisterLoader$1.instantiate] = coreInstantiate;
1416 |
1417 | systemJSPrototype.config = function (cfg) {
1418 | var config = this[CONFIG];
1419 |
1420 | if (cfg.baseURL) {
1421 | config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);
1422 | if (config.baseURL[config.baseURL.length - 1] !== '/')
1423 | config.baseURL += '/';
1424 | }
1425 |
1426 | if (cfg.paths)
1427 | extend(config.paths, cfg.paths);
1428 |
1429 | if (cfg.map) {
1430 | var val = cfg.map;
1431 | for (var p in val) {
1432 | if (!Object.hasOwnProperty.call(val, p))
1433 | continue;
1434 |
1435 | var v = val[p];
1436 |
1437 | if (typeof v === 'string') {
1438 | config.map[p] = v;
1439 | }
1440 |
1441 | // object submap
1442 | else {
1443 | // normalize parent with URL and paths only
1444 | var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);
1445 | extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);
1446 | }
1447 | }
1448 | }
1449 |
1450 | for (var p in cfg) {
1451 | if (!Object.hasOwnProperty.call(cfg, p))
1452 | continue;
1453 |
1454 | var val = cfg[p];
1455 |
1456 | switch (p) {
1457 | case 'baseURL':
1458 | case 'paths':
1459 | case 'map':
1460 | break;
1461 |
1462 | case 'bundles':
1463 | for (var p in val) {
1464 | if (!Object.hasOwnProperty.call(val, p))
1465 | continue;
1466 | var v = val[p];
1467 | for (var i = 0; i < v.length; i++)
1468 | config.bundles[this.resolveSync(v[i], undefined)] = p;
1469 | }
1470 | break;
1471 |
1472 | case 'depCache':
1473 | for (var p in val) {
1474 | if (!Object.hasOwnProperty.call(val, p))
1475 | continue;
1476 | var resolvedParent = this.resolveSync(p, undefined);
1477 | config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);
1478 | }
1479 | break;
1480 |
1481 | case 'wasm':
1482 | config.wasm = typeof WebAssembly !== 'undefined' && !!val;
1483 | break;
1484 |
1485 | default:
1486 | throw new TypeError('The SystemJS production build does not support the "' + p + '" configuration option.');
1487 | }
1488 | }
1489 | };
1490 |
1491 | // getConfig configuration cloning
1492 | /* systemJSPrototype.getConfig = function (name) {
1493 | var config = this[CONFIG];
1494 |
1495 | var map = {};
1496 | extend(map, config.map);
1497 | for (var p in config.submap) {
1498 | if (!Object.hasOwnProperty.call(config.submap, p))
1499 | continue;
1500 | map[p] = extend({}, config.submap[p]);
1501 | }
1502 |
1503 | var depCache = {};
1504 | for (var p in config.depCache) {
1505 | if (!Object.hasOwnProperty.call(config.depCache, p))
1506 | continue;
1507 | depCache[p] = [].concat(config.depCache[p]);
1508 | }
1509 |
1510 | var bundles = {};
1511 | for (var p in config.bundles) {
1512 | if (!Object.hasOwnProperty.call(config.bundles, p))
1513 | continue;
1514 | (bundles[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);
1515 | }
1516 |
1517 | return {
1518 | baseURL: config.baseURL,
1519 | paths: extend({}, config.paths),
1520 | depCache: depCache,
1521 | bundles: cloneArrays(config.bundles),
1522 | map: map,
1523 | wasm: config.wasm
1524 | };
1525 | }; */
1526 |
1527 | // ensure System.register and System.registerDynamic decanonicalize
1528 | systemJSPrototype.register = function (key, deps, declare) {
1529 | if (typeof key === 'string')
1530 | key = this.resolveSync(key, undefined);
1531 | return RegisterLoader$1.prototype.register.call(this, key, deps, declare);
1532 | };
1533 |
1534 | systemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {
1535 | if (typeof key === 'string')
1536 | key = this.resolveSync(key, undefined);
1537 | return RegisterLoader$1.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);
1538 | };
1539 |
1540 | function plainResolve (key, parentKey) {
1541 | var config = this[CONFIG];
1542 |
1543 | // Apply contextual submap
1544 | if (parentKey) {
1545 | var parent = getMapMatch(config.submap, parentKey);
1546 | var submap = config.submap[parent];
1547 | var mapMatch = submap && getMapMatch(submap, key);
1548 |
1549 | if (mapMatch) {
1550 | var target = submap[mapMatch] + key.substr(mapMatch.length);
1551 | return resolveIfNotPlain(target, parent) || target;
1552 | }
1553 | }
1554 |
1555 | // Apply global map
1556 | var map = config.map;
1557 | var mapMatch = getMapMatch(map, key);
1558 |
1559 | if (mapMatch) {
1560 | var target = map[mapMatch] + key.substr(mapMatch.length);
1561 | return resolveIfNotPlain(target, parent) || target;
1562 | }
1563 | }
1564 |
1565 | function instantiateIfWasm (url) {
1566 | return fetch(url)
1567 | .then(function(res) {
1568 | if (res.ok)
1569 | return res.arrayBuffer();
1570 | else
1571 | throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);
1572 | })
1573 | .then(function (fetched) {
1574 | var bytes = new Uint8Array(fetched);
1575 | // detect by leading bytes
1576 | if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {
1577 | return WebAssembly.compile(bytes).then(function (m) {
1578 | /* TODO handle imports when `WebAssembly.Module.imports` is implemented
1579 | if (WebAssembly.Module.imports) {
1580 | var deps = [];
1581 | var setters = [];
1582 | var importObj = {};
1583 | WebAssembly.Module.imports(m).forEach(function (i) {
1584 | var key = i.module;
1585 | setters.push(function (m) {
1586 | importObj[key] = m;
1587 | });
1588 | if (deps.indexOf(key) === -1)
1589 | deps.push(key);
1590 | });
1591 | loader.register(deps, function (_export) {
1592 | return {
1593 | setters: setters,
1594 | execute: function () {
1595 | _export(new WebAssembly.Instance(m, importObj).exports);
1596 | }
1597 | };
1598 | });
1599 | }*/
1600 | // for now we just load WASM without dependencies
1601 | var wasmModule = new WebAssembly.Instance(m, {});
1602 | return new ModuleNamespace(wasmModule.exports);
1603 | });
1604 | }
1605 |
1606 | // not wasm -> convert buffer into utf-8 string to execute as a module
1607 | // TextDecoder compatibility matches WASM currently. Need to keep checking this.
1608 | // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder
1609 | return new TextDecoder('utf-8').decode(bytes);
1610 | });
1611 | }
1612 |
1613 | function doScriptLoad (url, processAnonRegister) {
1614 | return new Promise(function (resolve, reject) {
1615 | return scriptLoad(url, 'anonymous', undefined, function () {
1616 | processAnonRegister();
1617 | resolve();
1618 | }, reject);
1619 | });
1620 | }
1621 |
1622 | var loadedBundles = {};
1623 | function coreInstantiate (key, processAnonRegister) {
1624 | var config = this[CONFIG];
1625 |
1626 | var wasm = config.wasm;
1627 |
1628 | var bundle = config.bundles[key];
1629 | if (bundle) {
1630 | var loader = this;
1631 | var bundleUrl = loader.resolveSync(bundle, undefined);
1632 | if (loader.registry.has(bundleUrl))
1633 | return;
1634 | return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {
1635 | // bundle treated itself as an empty module
1636 | // this means we can reload bundles by deleting from the registry
1637 | if (!loader.registry.has(bundleUrl))
1638 | loader.registry.set(bundleUrl, loader.newModule({}));
1639 | delete loadedBundles[bundleUrl];
1640 | }));
1641 | }
1642 |
1643 | var depCache = config.depCache[key];
1644 | if (depCache) {
1645 | var preloadFn = wasm ? fetch : preloadScript;
1646 | for (var i = 0; i < depCache.length; i++)
1647 | this.resolve(depCache[i], key).then(preloadFn);
1648 | }
1649 |
1650 | if (wasm)
1651 | return instantiateIfWasm(key)
1652 | .then(function (sourceOrModule) {
1653 | if (typeof sourceOrModule !== 'string')
1654 | return sourceOrModule;
1655 |
1656 | (0, eval)(sourceOrModule + '\n//# sourceURL=' + key);
1657 | processAnonRegister();
1658 | });
1659 |
1660 | return doScriptLoad(key, processAnonRegister);
1661 | }
1662 |
1663 | SystemJSProductionLoader$1.prototype.version = "0.20.0-rc.1 Production";
1664 |
1665 | var System = new SystemJSProductionLoader$1();
1666 |
1667 | // only set the global System on the global in browsers
1668 | if (isBrowser || isWorker) {
1669 | envGlobal.SystemJS = System;
1670 |
1671 | // dont override an existing System global
1672 | if (!envGlobal.System) {
1673 | envGlobal.System = System;
1674 | }
1675 | // rather just extend or set a System.register on the existing System global
1676 | else {
1677 | var register = envGlobal.System.register;
1678 | envGlobal.System.register = function () {
1679 | if (register)
1680 | register.apply(this, arguments);
1681 | System.register.apply(this, arguments);
1682 | };
1683 | }
1684 | }
1685 |
1686 | if (typeof module !== 'undefined' && module.exports)
1687 | module.exports = System;
1688 |
1689 | }());
1690 | //# sourceMappingURL=system-production.src.js.map
1691 |
--------------------------------------------------------------------------------
/node_modules/systemjs/dist/system-production.src.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":null,"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\nexport var resolvedPromise = Promise.resolve();\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 baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 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 () {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\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.length === 1)\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 = undefined;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== undefined) {\n if (segmented[i] === '/') {\n output.push(segmented.substr(segmentIndex, i - segmentIndex + 1));\n segmentIndex = undefined;\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 === segmented.length - 2)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i === segmented.length - 1) {\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 // trailing . or .. segment\n if (i === segmented.length)\n output.push('');\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 !== undefined)\n output.push(segmented.substr(segmentIndex, segmented.length - 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, resolvedPromise } from './common.js';\n\nexport { Loader, ModuleNamespace }\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 this._registry = 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.getOwnPropertyNames(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 } 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, clearing failed modules from registration cache synchronously\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 this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n 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 // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\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 // indicates if the load and all its dependencies are instantiated and linked\n // but not yet executed\n // mostly just a performance shortpath to avoid rechecking the promises above\n linked: false,\n\n error: undefined\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 = loader.registry[loader.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 // if already beaten to linked, return\n if (instantiated.module)\n return instantiated.module;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n if (instantiated.linkRecord.linked)\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n\n return instantiateDeps(loader, instantiated, instantiated.linkRecord, registry, state, [instantiated])\n .then(function () {\n return ensureEvaluate(loader, instantiated, instantiated.linkRecord, registry, state, undefined);\n })\n .catch(function (err) {\n clearLoadErrors(loader, instantiated);\n throw err;\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 return instantiate(loader, load, load.linkRecord, registry, state);\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 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 = {};\n link.moduleObj.__useDefault = true;\n link.execute = registration[1];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n // shortpath to instantiateDeps\n if (!link.dependencies.length) {\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n }\n\n return load;\n })\n .catch(function (err) {\n throw link.error = 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] = key;\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 // 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 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 */\n\n// NB re-evaluate if this will even exist, and if it should be restricted to valid identifiers only\nfunction copyNamedExports (exports, moduleObj) {\n if ((typeof exports === 'object' || typeof exports === 'function') && exports !== global) {\n var props = Object.getOwnPropertyNames(exports);\n for (var i = 0; i < props.length; i++)\n defineOrCopyProperty(moduleObj, exports, props[i]);\n }\n moduleObj.default = exports;\n}\n\nfunction defineOrCopyProperty (targetObj, sourceObj, propName) {\n // don't trigger getters/setters in environments that support them\n try {\n var d;\n if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) {\n // only copy data descriptors\n if (d.value)\n targetObj[propName] = d.value;\n }\n }\n catch (e) {\n // Object.getOwnPropertyDescriptor threw an exception -> not own property\n }\n}\n\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var locked = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n // export setter propogation with locking to avoid cycles\n if (locked)\n return;\n\n if (typeof name == 'object') {\n for (var p in name)\n if (p !== '__useDefault')\n moduleObj[p] = name[p];\n }\n else {\n moduleObj[name] = value;\n }\n\n locked = true;\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n locked = false;\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n if (typeof declared !== 'function') {\n link.setters = declared.setters;\n link.execute = declared.execute;\n }\n else {\n link.setters = [];\n link.execute = declared;\n }\n}\n\nfunction instantiateDeps (loader, load, link, registry, state, seen) {\n return (link.depsInstantiatePromise || (link.depsInstantiatePromise = Promise.resolve()\n .then(function () {\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 = {}));\n\n return Promise.all(depsInstantiatePromises);\n })\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 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 .then(function () {\n // now deeply instantiateDeps on each dependencyInstantiation that is a load record\n var deepDepsInstantiatePromises = [];\n\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n var depLink = depLoad.linkRecord;\n\n if (!depLink || depLink.linked)\n continue;\n\n if (seen.indexOf(depLoad) !== -1)\n continue;\n seen.push(depLoad);\n\n deepDepsInstantiatePromises.push(instantiateDeps(loader, depLoad, depLoad.linkRecord, registry, state, seen));\n }\n\n return Promise.all(deepDepsInstantiatePromises);\n })\n .then(function () {\n // as soon as all dependencies instantiated, we are ready for evaluation so can add to the registry\n // this can run multiple times, but so what\n link.linked = true;\n if (loader.trace)\n traceLoad(loader, load, link);\n\n return load;\n })\n .catch(function (err) {\n err = addToError(err, 'Loading ' + load.key);\n\n // throw up the instantiateDeps stack\n // loads are then synchonously cleared at the top-level through the clearLoadErrors helper below\n // this then ensures avoiding partially unloaded tree states\n link.error = link.error || err;\n\n throw err;\n });\n}\n\n// clears an errored load and all its errored dependencies from the loads registry\nfunction clearLoadErrors (loader, load) {\n var state = loader[REGISTER_INTERNAL];\n\n // clear from loads\n if (state.records[load.key] === load)\n delete state.records[load.key];\n\n var link = load.linkRecord;\n\n if (!link)\n return;\n\n if (link.dependencyInstantiations)\n link.dependencyInstantiations.forEach(function (depLoad, index) {\n if (!depLoad || depLoad instanceof ModuleNamespace)\n return;\n\n if (depLoad.linkRecord) {\n if (depLoad.linkRecord.error) {\n // provides a circular reference check\n if (state.records[depLoad.key] === depLoad)\n clearLoadErrors(loader, depLoad);\n }\n\n // unregister setters for es dependency load records that will remain\n if (link.setters && depLoad.importerSetters) {\n var setterIndex = depLoad.importerSetters.indexOf(link.setters[index]);\n depLoad.importerSetters.splice(setterIndex, 1);\n }\n }\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, false];\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, false];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, typeof deps === 'boolean' ? dynamicExecuteCompat(key, deps, execute) : deps, true];\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, typeof execute === 'boolean' ? dynamicExecuteCompat(deps, execute, arguments[3]) : execute, true];\n }\n};\n\nfunction dynamicExecuteCompat (deps, executingRequire, execute) {\n return function (require, exports, module) {\n // evaluate deps first\n if (!executingRequire)\n for (var i = 0; i < deps.length; i++)\n require(deps[i]);\n\n // then run execution function\n // also provide backwards compat for no return value\n // previous 4 argument form of System.register had \"this\" as global value\n module.exports = execute.apply(global, arguments) || module.exports;\n };\n}\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n}\nContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};\nContextualLoader.prototype.import = function (key) {\n return this.loader.import(key, this.key);\n};\nContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};\nContextualLoader.prototype.load = function (key) {\n return this.loader.load(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 (link.error)\n throw link.error;\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, load.setters ? [] : seen || []);\n if (err) {\n clearLoadErrors(loader, load);\n throw err;\n }\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 module.__useDefault ? module.default : 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 (depLink.error)\n err = depLink.error;\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 return link.error = addToError(err, 'Evaluating ' + load.key);\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 = doExecute(link.execute, nullContext);\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 = exports;\n },\n get: function () {\n return moduleObj.default;\n }\n });\n err = doExecute(link.execute, module.exports, [\n makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen),\n module.exports,\n module\n ]);\n\n // copy module.exports onto the module object\n if (!err)\n copyNamedExports(module.exports, moduleObj);\n }\n }\n\n if (err)\n return link.error = 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 // dispose link record\n load.linkRecord = undefined;\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\nfunction doExecute (execute, context, args) {\n try {\n execute.apply(context, args);\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, resolvedPromise } 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, resolvedPromise }\n\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n if (typeof bindings !== 'object')\n throw new TypeError('Cannot create a module namespace from an object of type \"' + typeof bindings + '\".');\n return new ModuleNamespace(bindings);\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\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 = 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 = isBrowser && (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n try {\n return relList.supports('preload');\n }\n catch (e) {}\n }\n return false;\n})();\n\nexport function preloadScript (url) {\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n document.head.removeChild(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 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 } 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 // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\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);\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved || key);\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\n/* systemJSPrototype.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[config.bundles[p]] = bundles[config.bundles[p]] || []).push(p);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: cloneArrays(config.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, parent) || target;\n }\n}\n\nfunction instantiateIfWasm (url) {\n return fetch(url)\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 var bytes = new Uint8Array(fetched);\n // detect by leading bytes\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(bytes).then(function (m) {\n /* TODO handle imports when `WebAssembly.Module.imports` is implemented\n if (WebAssembly.Module.imports) {\n var deps = [];\n var setters = [];\n var importObj = {};\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 }*/\n // for now we just load WASM without dependencies\n var wasmModule = new WebAssembly.Instance(m, {});\n return new ModuleNamespace(wasmModule.exports);\n });\n }\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 return new TextDecoder('utf-8').decode(bytes);\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 return instantiateIfWasm(key)\n .then(function (sourceOrModule) {\n if (typeof sourceOrModule !== 'string')\n return sourceOrModule;\n\n (0, eval)(sourceOrModule + '\\n//# sourceURL=' + key);\n processAnonRegister();\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(this, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"],"names":["addToError","RegisterLoader","global","SystemJSProductionLoader"],"mappings":"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"}
--------------------------------------------------------------------------------
/node_modules/systemjs/dist/system.js:
--------------------------------------------------------------------------------
1 | /*
2 | * SystemJS v0.20.0-rc.1 Dev
3 | */
4 | !function(){"use strict";function e(e){return st?Symbol():"@@"+e}function t(e,t){rt||(t=t.replace(ot?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=lt&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return nt?r.stack=n+"\n "+o:r.stack=o,r.originalErr=e.originalErr||e,r}function r(){throw new RangeError('Unable to resolve "'+relUrl+'" to '+parentUrl)}function n(e,t){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)||1===e.length)||"/"===o){var a,s=!n||"/"!==t[n.length];if(s?(void 0===t&&r(e,t),a=t):"/"===t[n.length+1]?"file:"!==n?(a=t.substr(n.length+2),a=a.substr(a.indexOf("/")+1)):a=t.substr(8):a=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=void 0,f=0;f1&&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=!0,n.execute=a[1]):w(e,r,n,a[1]),n.dependencies.length||(n.linked=!0,e.trace&&v(e,r,n)),r}).catch(function(e){throw n.error=t(e,"Instantiating "+r.key)}))}function m(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=t);var a=o.records[r],s=n[r];if(s&&(!a||a.module&&s!==a.module))return s;(!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,depMap:r.depMap||{}}}function y(e,t){if(("object"==typeof e||"function"==typeof e)&&e!==it)for(var r=Object.getOwnPropertyNames(e),n=0;nthis.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(Ct)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.')):(jt=jt||require("fs"),e=ot?e.replace(/\//g,"\\").substr(8):e.substr(7),new Promise(function(t,r){jt.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[wt],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[kt][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),n)}return Q.call(this,e,t,void 0,!1)}function Y(e,t){var r=this[wt],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){var i=n(t,r||tt);if(i)return q(e.baseURL,e.paths,i);if(o){var a=N(e.map,t);if(a&&(t=e.map[a]+t.substr(a.length),i=n(t,tt)))return q(e.baseURL,e.paths,i)}return this.registry.has(t)?t:"@node/"===t.substr(0,6)?t:q(e.baseURL,e.paths,t)}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),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]=Oe());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 at.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 at}).then(function(o){if(o)return o;var s=Q.call(a,e,t,r,!0),u=de(e,s);if(n.packageKey=u&&u.packageKey||N(e.packages,s),!n.packageKey)return Promise.resolve(s);if(-1!==e.packageConfigKeys.indexOf(s))return n.packageKey=void 0,n.load=te(),n.load.format="json",Promise.resolve(s);n.packageConfig=e.packages[n.packageKey]||(e.packages[n.packageKey]=Oe());var l=u&&!n.packageConfig.configured;return(l?pe(a,e,u.configPath,n):at).then(function(){var t=s.substr(n.packageKey.length+1);return le(a,e,n.packageConfig,n.packageKey,t,n,i)})})}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}}function re(e,t,r){r.load=r.load||te();var n,o=0;for(var i in e.meta)if(n=i.indexOf("*"),-1!==n&&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){var 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.format=r.load.format||r.packageConfig.format)}}function ne(e,t){var r,n,o=e?t.indexOf("!"):t.lastIndexOf("!");return-1!==o?(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}):void 0}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){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 0}),!i&&e.meta&&ge(e.meta,r+"/"+n,function(e,t,r){return 0===r||e.lastIndexOf("*")!==e.length-1?i=!0:void 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(e,r,n,o,a),s!=="./"+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(e,r,n,o,a)}function se(e,t,r){return t.substr(0,e.length)===e&&r.length>e.length?!1:!0}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(this,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),u||(s="./"+ie(e,r,n,o,a),s!=="./"+o&&(u=N(r.map,s)))),(u?ce(e,t,r,n,u,s,i,a):at).then(function(t){return Promise.resolve(t?t:n+"/"+ie(e,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)}):at;var l=[],c=[];for(var f in u){var d=he(f);c.push({condition:d,map:u[f]}),l.push(e.import(d.module,n))}return Promise.all(l).then(function(e){for(var t=0;t1?"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 ke(e){if(e){if(-1!==vr.indexOf(e))return we(this[wt],e);throw new Error('"'+e+'" is not a valid configuration name. Must be one of '+vr.join(", ")+".")}for(var t={},r=0;r "+o.paths[a]+" is no longer supported as wildcards are deprecated."),delete o.paths[a])}if(e.defaultJSExtensions&&M.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)o.map[a]=Q.call(r,o,s,void 0,!1);else{var u=Q.call(r,o,a,void 0,!0),l=o.packages[u];l||(l=o.packages[u]=Oe(),l.defaultExtension=""),Se(l,{map:s},u,!1,o)}}if(e.packageConfigPaths){for(var c=[],f=0;ft.index)return!0;return!1}Pt.lastIndex=Zt.lastIndex=Xt.lastIndex=0;var r,n=[],o=[],i=[];if(e.length/e.split("\n").length<200){for(;r=Xt.exec(e);)o.push([r.index,r.index+r[0].length]);for(;r=Zt.exec(e);)t(o,r)||i.push([r.index+r[1].length,r.index+r[0].length-1])}for(;r=Pt.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===Yt.indexOf(e)){try{var t=it[e]}catch(t){Yt.push(e)}this(e,t)}}function Ke(e){if("string"==typeof e)return U(e,it);if(!(e instanceof Array))throw new Error("Global exports must be a string or array.");for(var t={},r=0;r1;)n=o.shift(),e=e[n]=e[n]||{};n=o.shift(),void 0===e[n]&&(e[n]=r)}function Ye(e,t){var r=e.match(dr);if(r)for(var n=r[0].match(pr),o=0;o${opts.message}`;
3 | }
4 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { homepageComponent } from './components.js';
2 | import { render } from './render.js';
3 |
4 | render(homepageComponent({
5 | message: `This application is rendered using
6 | ${self.__supportsScriptTypeModule ? 'ES modules' : ' System.register scripts'}.`
7 | }));
8 |
--------------------------------------------------------------------------------
/src/render.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Eat your heart out React.
3 | */
4 | export function render (html) {
5 | document.body.innerHTML = html;
6 | }
7 |
--------------------------------------------------------------------------------