wabur 0.4.0d1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +20 -66
- data/bin/wabur +48 -11
- data/export/assets/css/wab.css +2 -0
- data/export/assets/css/wab.css.map +7 -0
- data/export/assets/fonts/wabfont/README +18 -0
- data/export/assets/fonts/wabfont/fonts/WAB.eot +0 -0
- data/export/assets/fonts/wabfont/fonts/WAB.svg +25 -0
- data/export/assets/fonts/wabfont/fonts/WAB.ttf +0 -0
- data/export/assets/fonts/wabfont/fonts/WAB.woff +0 -0
- data/export/assets/fonts/wabfont/selection.json +460 -0
- data/export/assets/fonts/wabfont/style.css +74 -0
- data/export/assets/js/transpile.js +8 -0
- data/export/assets/js/ui.js +377 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers.js +558 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGenerator.js +112 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGeneratorDelegate.js +51 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncIterator.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncToGenerator.js +28 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/classCallCheck.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/createClass.js +17 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defaults.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defineEnumerableProperties.js +10 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/defineProperty.js +14 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/extends.js +13 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/get.js +24 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/inherits.js +15 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/instanceof.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireDefault.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireWildcard.js +16 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/jsx.js +42 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/newArrowCheck.js +5 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/objectDestructuringEmpty.js +3 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/objectWithoutProperties.js +11 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/possibleConstructorReturn.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/selfGlobal.js +1 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/set.js +21 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArray.js +37 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArrayLoose.js +17 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteral.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteralLoose.js +4 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalRef.js +7 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalUndefined.js +1 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/toArray.js +3 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/toConsumableArray.js +9 -0
- data/export/assets/js/vendor/plugin-babel/babel-helpers/typeof.js +5 -0
- data/export/assets/js/vendor/plugin-babel/plugin-babel.js +222 -0
- data/export/assets/js/vendor/plugin-babel/regenerator-runtime.js +685 -0
- data/export/assets/js/vendor/plugin-babel/systemjs-babel-browser.js +1 -0
- data/export/assets/js/vendor/plugin-babel/systemjs-babel-node.js +55086 -0
- data/export/assets/js/vendor/systemjs/system-production.js +4 -0
- data/export/assets/js/vendor/systemjs/system-production.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system-production.src.js +1711 -0
- data/export/assets/js/vendor/systemjs/system-production.src.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system.js +4 -0
- data/export/assets/js/vendor/systemjs/system.js.map +1 -0
- data/export/assets/js/vendor/systemjs/system.src.js +4000 -0
- data/export/assets/js/vendor/systemjs/system.src.js.map +1 -0
- data/export/assets/js/wab.js +109 -0
- data/export/index.html +41 -0
- data/lib/wab.rb +13 -0
- data/lib/wab/controller.rb +2 -2
- data/lib/wab/errors.rb +12 -0
- data/lib/wab/impl.rb +2 -0
- data/lib/wab/impl/configuration.rb +24 -6
- data/lib/wab/impl/export_proxy.rb +39 -0
- data/lib/wab/impl/exprs/regex.rb +1 -1
- data/lib/wab/impl/handler.rb +14 -14
- data/lib/wab/impl/init.rb +108 -0
- data/lib/wab/impl/model.rb +4 -3
- data/lib/wab/impl/shell.rb +14 -4
- data/lib/wab/impl/templates/opo-rub.conf.template +253 -0
- data/lib/wab/impl/templates/opo.conf.template +224 -0
- data/lib/wab/impl/templates/spawn.rb.template +42 -0
- data/lib/wab/impl/templates/ui_controller.rb.template +12 -0
- data/lib/wab/impl/templates/wabur.conf.template +40 -0
- data/lib/wab/ui.rb +19 -0
- data/lib/wab/ui/create.rb +26 -0
- data/lib/wab/ui/display.rb +34 -0
- data/lib/wab/ui/flow.rb +54 -0
- data/lib/wab/ui/list.rb +59 -0
- data/lib/wab/ui/multi_flow.rb +23 -0
- data/lib/wab/ui/rest_flow.rb +89 -0
- data/lib/wab/ui/update.rb +27 -0
- data/lib/wab/ui/view.rb +62 -0
- data/lib/wab/utils.rb +4 -4
- data/lib/wab/version.rb +1 -1
- data/pages/Architecture.md +104 -1
- data/test/test_configuration.rb +1 -1
- data/test/test_impl.rb +1 -0
- data/test/test_init.rb +33 -0
- metadata +94 -7
- data/pages/Plan.md +0 -27
@@ -0,0 +1,4 @@
|
|
1
|
+
/*
|
2
|
+
* SystemJS v0.20.19 Production
|
3
|
+
*/
|
4
|
+
!function(){"use strict";function e(e){return G?Symbol():"@@"+e}function t(e,t){z||(t=t.replace(F?/file:\/\/\//g:/file:\/\//g,""));var r,n=(e.message||e)+"\n "+t;r=Q&&e.fileName?new Error(n,e.fileName,e.lineNumber):new Error(n);var o=e.originalErr?e.originalErr.stack:e.stack;return r.stack=B?n+"\n "+o:o,r.originalErr=e.originalErr||e,r}function r(e,t){throw new RangeError('Unable to resolve "'+e+'" to '+t)}function n(e,t){e=e.trim();var n=t&&t.substr(0,t.indexOf(":")+1),o=e[0],i=e[1];if("/"===o&&"/"===i)return n||r(e,t),n+e;if("."===o&&("/"===i||"."===i&&("/"===e[2]||2===e.length&&(e+="/"))||1===e.length&&(e+="/"))||"/"===o){var s,a=!n||"/"!==t[n.length];if(a?(void 0===t&&r(e,t),s=t):s="/"===t[n.length+1]?"file:"!==n?(s=t.substr(n.length+2)).substr(s.indexOf("/")+1):t.substr(8):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=-1,f=0;f<u.length;f++)if(-1===l)if("."!==u[f])l=f;else{if("."!==u[f+1]||"/"!==u[f+2]&&f+2!==u.length){if("/"!==u[f+1]&&f+1!==u.length){l=f;continue}f+=1}else c.pop(),f+=2;a&&0===c.length&&r(e,t)}else"/"===u[f]&&(c.push(u.substring(l,f+1)),l=-1);return-1!==l&&c.push(u.substr(l)),t.substr(0,t.length-s.length)+c.join("")}return-1!==e.indexOf(":")?B&&":"===e[1]&&"\\"===e[2]&&e[0].match(/[a-z]/i)?"file:///"+e.replace(/\\/g,"/"):e:void 0}function o(e){if(e.values)return e.values();if("undefined"==typeof Symbol||!Symbol.iterator)throw new Error("Symbol.iterator not supported in this browser");var t={};return t[Symbol.iterator]=function(){var t=Object.keys(e),r=0;return{next:function(){return r<t.length?{value:e[t[r++]],done:!1}:{value:void 0,done:!0}}}},t}function i(){this.registry=new u}function s(e){if(!(e instanceof c))throw new TypeError("Module instantiation did not return a valid namespace object.");return e}function a(e){if(void 0===e)throw new RangeError("No resolution found.");return e}function u(){this[$]={}}function c(e){Object.defineProperty(this,ee,{value:e}),Object.keys(e).forEach(l,this)}function l(e){Object.defineProperty(this,e,{enumerable:!0,get:function(){return this[ee][e]}})}function f(){i.call(this);var e=this.registry.delete;this.registry.delete=function(r){var n=e.call(this,r);return t.hasOwnProperty(r)&&!t[r].linkRecord&&(delete t[r],n=!0),n};var t={};this[te]={lastRegister:void 0,records:t},this.trace=!1}function d(e,t,r){return e.records[t]={key:t,registration:r,module:void 0,importerSetters:void 0,loadError:void 0,evalError:void 0,linkRecord:{instantiatePromise:void 0,dependencies:void 0,execute:void 0,executingRequire:!1,moduleObj:void 0,setters:void 0,depsInstantiatePromise:void 0,dependencyInstantiations:void 0}}}function p(e,t,r,n,o){var i=n[t];if(i)return Promise.resolve(i);var s=o.records[t];return s&&!s.module?s.loadError?Promise.reject(s.loadError):v(e,s,s.linkRecord,n,o):e.resolve(t,r).then(function(t){if(i=n[t])return i;if((s=o.records[t])&&!s.module||(s=d(o,t,s&&s.registration)),s.loadError)return Promise.reject(s.loadError);var r=s.linkRecord;return r?v(e,s,r,n,o):s})}function h(e,t,r){return function(){var e=r.lastRegister;return e?(r.lastRegister=void 0,t.registration=e,!0):!!t.registration}}function v(e,r,n,o,i){return n.instantiatePromise||(n.instantiatePromise=(r.registration?Promise.resolve():Promise.resolve().then(function(){return i.lastRegister=void 0,e[re](r.key,e[re].length>1&&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={},n.executingRequire=s[1],n.execute=s[2]):g(e,r,n,s[1]),r}).catch(function(e){throw r.linkRecord=void 0,r.loadError=r.loadError||t(e,"Instantiating "+r.key)}))}function y(e,t,r,n,o,i){return e.resolve(t,r).then(function(r){i&&(i[t]=r);var s=o.records[r],a=n[r];if(a&&(!s||s.module&&a!==s.module))return a;if(s&&s.loadError)throw s.loadError;(!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,dynamicDeps:[],depMap:r.depMap||{}}}function g(e,t,r,n){var o=r.moduleObj,i=t.importerSetters,s=!1,a=n.call(J,function(e,t){if("object"==typeof e){var r=!1;for(var n in e)t=e[n],"__useDefault"===n||n in o&&o[n]===t||(r=!0,o[n]=t);if(!1===r)return t}else{if((s||e in o)&&o[e]===t)return t;o[e]=t}for(var a=0;a<i.length;a++)i[a](o);return t},new O(e,t.key));r.setters=a.setters,r.execute=a.execute,a.exports&&(r.moduleObj=o=a.exports,s=!0)}function b(e,r,n,o,i){if(n.depsInstantiatePromise)return n.depsInstantiatePromise;for(var s=Array(n.dependencies.length),a=0;a<n.dependencies.length;a++)s[a]=y(e,n.dependencies[a],r.key,o,i,e.trace&&n.depMap||(n.depMap={}));var u=Promise.all(s).then(function(e){if(n.dependencyInstantiations=e,n.setters)for(var t=0;t<e.length;t++){var o=n.setters[t];if(o){var i=e[t];if(i instanceof c)o(i);else{if(i.loadError)throw i.loadError;o(i.module||i.linkRecord.moduleObj),i.importerSetters&&i.importerSetters.push(o)}}}return r});return e.trace&&(u=u.then(function(){return m(e,r,n),r})),(u=u.catch(function(e){throw n.depsInstantiatePromise=void 0,t(e,"Loading "+r.key)})).catch(function(){}),n.depsInstantiatePromise=u}function w(e,t,r,n,o){return new Promise(function(r,i){function s(t){var r=t.linkRecord;r&&-1===u.indexOf(t)&&(u.push(t),l++,b(e,t,r,n,o).then(a,i))}function a(e){l--;var t=e.linkRecord;if(t)for(var n=0;n<t.dependencies.length;n++){var o=t.dependencyInstantiations[n];o instanceof c||s(o)}0===l&&r()}var u=[],l=0;s(t)})}function O(e,t){this.loader=e,this.key=this.id=t,this.meta={url:t}}function E(e,t,r,n,o,i){if(t.module)return t.module;if(t.evalError)throw t.evalError;if(i&&-1!==i.indexOf(t))return t.linkRecord.moduleObj;var s=R(e,t,r,n,o,r.setters?[]:i||[]);if(s)throw s;return t.module}function k(e,t,r,n,o,i,s){return function(a){for(var u=0;u<r.length;u++)if(r[u]===a){var l,f=n[u];return l=f instanceof c?f:E(e,f,f.linkRecord,o,i,s),"__useDefault"in l?l.__useDefault:l}throw new Error("Module "+a+" not declared as a System.registerDynamic dependency of "+t)}}function R(e,r,n,o,i,s){s.push(r);var a;if(n.setters)for(var u,l,f=0;f<n.dependencies.length;f++)if(!((u=n.dependencyInstantiations[f])instanceof c)&&((l=u.linkRecord)&&-1===s.indexOf(u)&&(a=u.evalError?u.evalError:R(e,u,l,o,i,l.setters?s:[])),a))return r.linkRecord=void 0,r.evalError=t(a,"Evaluating "+r.key),r.evalError;if(n.execute)if(n.setters)a=j(n.execute);else{var d={id:r.key},p=n.moduleObj;Object.defineProperty(d,"exports",{configurable:!0,set:function(e){p.default=p.__useDefault=e},get:function(){return p.__useDefault}});var h=k(e,r.key,n.dependencies,n.dependencyInstantiations,o,i,s);if(!n.executingRequire)for(f=0;f<n.dependencies.length;f++)h(n.dependencies[f]);a=S(n.execute,h,p.default,d),d.exports!==p.__useDefault&&(p.default=p.__useDefault=d.exports);var v=p.default;if(v&&v.__esModule)for(var y in v)Object.hasOwnProperty.call(v,y)&&(p[y]=v[y])}if(r.linkRecord=void 0,a)return r.evalError=t(a,"Evaluating "+r.key);if(o[r.key]=r.module=new c(n.moduleObj),!n.setters){if(r.importerSetters)for(f=0;f<r.importerSetters.length;f++)r.importerSetters[f](r.module);r.importerSetters=void 0}}function j(e){try{e.call(ne)}catch(e){return e}}function S(e,t,r,n){try{var o=e.call(J,t,r,n);void 0!==o&&(n.exports=o)}catch(e){return e}}function P(e){return void 0===oe&&(oe="undefined"!=typeof Symbol&&!!Symbol.toStringTag),e instanceof c||oe&&"[object Module]"==Object.prototype.toString.call(e)}function x(e,t,r){var n=new Uint8Array(t);return 0===n[0]&&97===n[1]&&115===n[2]?WebAssembly.compile(t).then(function(t){var n=[],o=[],i={};return WebAssembly.Module.imports&&WebAssembly.Module.imports(t).forEach(function(e){var t=e.module;o.push(function(e){i[t]=e}),-1===n.indexOf(t)&&n.push(t)}),e.register(n,function(e){return{setters:o,execute:function(){e(new WebAssembly.Instance(t,i).exports)}}}),r(),!0}):Promise.resolve(!1)}function L(e,t){for(var r in t)Object.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}function _(e){if(fe||de){var t=document.createElement("link");fe?(t.rel="preload",t.as="script"):t.rel="prefetch",t.href=e,document.head.appendChild(t)}else(new Image).src=e}function I(e,t,r){try{importScripts(e)}catch(e){r(e)}t()}function U(e,t,r,n,o){function i(){n(),a()}function s(t){a(),o(new Error("Fetching "+e))}function a(){for(var e=0;e<pe.length;e++)if(pe[e].err===s){pe.splice(e,1);break}u.removeEventListener("load",i,!1),u.removeEventListener("error",s,!1),document.head.removeChild(u)}if(e=e.replace(/#/g,"%23"),le)return I(e,n,o);var u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,t&&(u.crossOrigin=t),r&&(u.integrity=r),u.addEventListener("load",i,!1),u.addEventListener("error",s,!1),u.src=e,document.head.appendChild(u)}function D(e,t,r){var o=T(t,r);if(o){var i=t[o]+r.substr(o.length),s=n(i,q);return void 0!==s?s:e+i}return-1!==r.indexOf(":")?r:e+r}function M(e){var t=this.name;if(t.substr(0,e.length)===e&&(t.length===e.length||"/"===t[e.length]||"/"===e[e.length-1]||":"===e[e.length-1])){var r=e.split("/").length;r>this.len&&(this.match=e,this.len=r)}}function T(e,t){if(Object.hasOwnProperty.call(e,t))return t;var r={name:t,match:void 0,len:0};return Object.keys(e).forEach(M,r),r.match}function C(){f.call(this),this[ae]={baseURL:q,paths:{},map:{},submap:{},bundles:{},depCache:{},wasm:!1},this.registry.set("@empty",se)}function N(e,t){var r=this[ae];if(t){var o=T(r.submap,t),i=r.submap[o];if(a=i&&T(i,e))return n(u=i[a]+e.substr(a.length),o)||u}var s=r.map,a=T(s,e);if(a){var u=s[a]+e.substr(a.length);return n(u,t||r.baseURL)||u}}function A(e,t){return new Promise(function(r,n){return U(e,"anonymous",void 0,function(){t(),r()},n)})}function W(e,t){var r=this[ae],n=r.wasm,o=r.bundles[e];if(o){var i=(c=this).resolveSync(o,void 0);if(c.registry.has(i))return;return ye[i]||(ye[i]=A(i,t).then(function(){c.registry.has(i)||c.registry.set(i,c.newModule({})),delete ye[i]}))}var s=r.depCache[e];if(s)for(var a=n?fetch:_,u=0;u<s.length;u++)this.resolve(s[u],e).then(a);if(n){var c=this;return fetch(e).then(function(e){if(e.ok)return e.arrayBuffer();throw new Error("Fetch error: "+e.status+" "+e.statusText)}).then(function(r){return x(c,r,t).then(function(n){if(!n){var o=new TextDecoder("utf-8").decode(new Uint8Array(r));(0,eval)(o+"\n//# sourceURL="+e),t()}})})}return A(e,t)}var q,z="undefined"!=typeof window&&"undefined"!=typeof document,B="undefined"!=typeof process&&process.versions&&process.versions.node,F="undefined"!=typeof process&&"string"==typeof process.platform&&process.platform.match(/^win/),J="undefined"!=typeof self?self:global,G="undefined"!=typeof Symbol;if("undefined"!=typeof document&&document.getElementsByTagName){if(!(q=document.baseURI)){var H=document.getElementsByTagName("base");q=H[0]&&H[0].href||window.location.href}}else"undefined"!=typeof location&&(q=location.href);if(q){var K=(q=q.split("#")[0].split("?")[0]).lastIndexOf("/");-1!==K&&(q=q.substr(0,K+1))}else{if("undefined"==typeof process||!process.cwd)throw new TypeError("No environment baseURI");q="file://"+(F?"/":"")+process.cwd(),F&&(q=q.replace(/\\/g,"/"))}"/"!==q[q.length-1]&&(q+="/");var Q="_"==new Error(0,"_").fileName,V=Promise.resolve();i.prototype.constructor=i,i.prototype.import=function(e,r){if("string"!=typeof e)throw new TypeError("Loader import method must be passed a module key string");var n=this;return V.then(function(){return n[Y](e,r)}).then(s).catch(function(n){throw t(n,"Loading "+e+(r?" from "+r:""))})};var X=i.resolve=e("resolve"),Y=i.resolveInstantiate=e("resolveInstantiate");i.prototype[Y]=function(e,t){var r=this;return r.resolve(e,t).then(function(e){return r.registry.get(e)})},i.prototype.resolve=function(e,r){var n=this;return V.then(function(){return n[X](e,r)}).then(a).catch(function(n){throw t(n,"Resolving "+e+(r?" to "+r:""))})};var Z="undefined"!=typeof Symbol&&Symbol.iterator,$=e("registry");Z&&(u.prototype[Symbol.iterator]=function(){return this.entries()[Symbol.iterator]()},u.prototype.entries=function(){var e=this[$];return o(Object.keys(e).map(function(t){return[t,e[t]]}))}),u.prototype.keys=function(){return o(Object.keys(this[$]))},u.prototype.values=function(){var e=this[$];return o(Object.keys(e).map(function(t){return e[t]}))},u.prototype.get=function(e){return this[$][e]},u.prototype.set=function(e,t){if(!(t instanceof c))throw new Error("Registry must be set with an instance of Module Namespace");return this[$][e]=t,this},u.prototype.has=function(e){return Object.hasOwnProperty.call(this[$],e)},u.prototype.delete=function(e){return!!Object.hasOwnProperty.call(this[$],e)&&(delete this[$][e],!0)};var ee=e("baseObject");c.prototype=Object.create(null),"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(c.prototype,Symbol.toStringTag,{value:"Module"});var te=e("register-internal");f.prototype=Object.create(i.prototype),f.prototype.constructor=f;var re=f.instantiate=e("instantiate");f.prototype[f.resolve=i.resolve]=function(e,t){return n(e,t||q)},f.prototype[re]=function(e,t){},f.prototype[i.resolveInstantiate]=function(e,t){var r=this,n=this[te],o=this.registry[$];return p(r,e,t,o,n).then(function(e){if(e instanceof c)return e;var t=e.linkRecord;if(!t){if(e.module)return e.module;throw e.evalError}return w(r,e,t,o,n).then(function(){return E(r,e,t,o,n,void 0)})})},f.prototype.register=function(e,t,r){var n=this[te];void 0===r?n.lastRegister=[e,t,void 0]:(n.records[e]||d(n,e,void 0)).registration=[t,r,void 0]},f.prototype.registerDynamic=function(e,t,r,n){var o=this[te];"string"!=typeof e?o.lastRegister=[e,t,r]:(o.records[e]||d(o,e,void 0)).registration=[t,r,n]},O.prototype.import=function(e){return this.loader.trace&&this.loader.loads[this.key].dynamicDeps.push(e),this.loader.import(e,this.key)};var ne={};Object.freeze&&Object.freeze(ne);var oe,ie=Promise.resolve(),se=new c({}),ae=e("loader-config"),ue=e("plain-resolve"),ce=e("plain-resolve-sync"),le="undefined"==typeof window&&"undefined"!=typeof self&&"undefined"!=typeof importScripts,fe=!1,de=!1;if(z&&function(){var e=document.createElement("link").relList;if(e&&e.supports){de=!0;try{fe=e.supports("preload")}catch(e){}}}(),z){var pe=[],he=window.onerror;window.onerror=function(e,t){for(var r=0;r<pe.length;r++)if(pe[r].src===t)return void pe[r].err(e);he&&he.apply(this,arguments)}}C.plainResolve=ue,C.plainResolveSync=ce;var ve=C.prototype=Object.create(f.prototype);ve.constructor=C,ve[C.resolve=f.resolve]=function(e,t){var r=n(e,t||q);if(void 0!==r)return Promise.resolve(r);var o=this;return ie.then(function(){return o[ue](e,t)}).then(function(t){if(t=t||e,o.registry.has(t))return t;var r=o[ae];return D(r.baseURL,r.paths,t)})},ve.newModule=function(e){return new c(e)},ve.isModule=P,ve.resolveSync=function(e,t){var r=n(e,t||q);if(void 0!==r)return r;if(r=this[ce](e,t)||e,this.registry.has(r))return r;var o=this[ae];return D(o.baseURL,o.paths,r)},ve.import=function(){return f.prototype.import.apply(this,arguments).then(function(e){return"__useDefault"in e?e.__useDefault:e})},ve[ue]=ve[ce]=N,ve[C.instantiate=f.instantiate]=W,ve.config=function(e){var t=this[ae];if(e.baseURL&&(t.baseURL=n(e.baseURL,q)||n("./"+e.baseURL,q),"/"!==t.baseURL[t.baseURL.length-1]&&(t.baseURL+="/")),e.paths&&L(t.paths,e.paths),e.map){o=e.map;for(var r in o)if(Object.hasOwnProperty.call(o,r))if("string"==typeof(i=o[r]))t.map[r]=i;else{a=n(r,q)||D(t.baseURL,t.paths,r);L(t.submap[a]||(t.submap[a]={}),i)}}for(var r in e)if(Object.hasOwnProperty.call(e,r)){var o=e[r];switch(r){case"baseURL":case"paths":case"map":break;case"bundles":for(var r in o)if(Object.hasOwnProperty.call(o,r))for(var i=o[r],s=0;s<i.length;s++)t.bundles[this.resolveSync(i[s],void 0)]=r;break;case"depCache":for(var r in o)if(Object.hasOwnProperty.call(o,r)){var a=this.resolveSync(r,void 0);t.depCache[a]=(t.depCache[a]||[]).concat(o[r])}break;case"wasm":t.wasm="undefined"!=typeof WebAssembly&&!!o;break;default:throw new TypeError('The SystemJS production build does not support the "'+r+'" configuration option.')}}},ve.getConfig=function(e){var t=this[ae],r={};L(r,t.map);for(var n in t.submap)Object.hasOwnProperty.call(t.submap,n)&&(r[n]=L({},t.submap[n]));var o={};for(var n in t.depCache)Object.hasOwnProperty.call(t.depCache,n)&&(o[n]=[].concat(t.depCache[n]));var i={};for(var n in t.bundles)Object.hasOwnProperty.call(t.bundles,n)&&(i[n]=[].concat(t.bundles[n]));return{baseURL:t.baseURL,paths:L({},t.paths),depCache:o,bundles:i,map:r,wasm:t.wasm}},ve.register=function(e,t,r){return"string"==typeof e&&(e=this.resolveSync(e,void 0)),f.prototype.register.call(this,e,t,r)},ve.registerDynamic=function(e,t,r,n){return"string"==typeof e&&(e=this.resolveSync(e,void 0)),f.prototype.registerDynamic.call(this,e,t,r,n)};var ye={};C.prototype.version="0.20.19 Production";var me=new C;if(z||le)if(J.SystemJS=me,J.System){var ge=J.System.register;J.System.register=function(){ge&&ge.apply(this,arguments),me.register.apply(me,arguments)}}else J.System=me;"undefined"!=typeof module&&module.exports&&(module.exports=me)}();
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../node_modules/es-module-loader/core/common.js","../node_modules/es-module-loader/core/resolve.js","../node_modules/es-module-loader/core/loader-polyfill.js","../node_modules/es-module-loader/core/register-loader.js","../src/common.js","../src/systemjs-production-loader.js","../src/system-production.js"],"names":["createSymbol","name","hasSymbol","Symbol","LoaderError__Check_error_message_for_loader_stack","childErr","newMessage","isBrowser","replace","isWindows","err","message","errArgs","fileName","Error","lineNumber","stack","originalErr","isNode","throwResolveError","relUrl","parentUrl","RangeError","resolveIfNotPlain","trim","parentProtocol","substr","indexOf","firstChar","secondChar","length","pathname","parentIsPlain","undefined","segmented","lastIndexOf","output","segmentIndex","i","pop","push","substring","join","match","arrayValues","arr","values","iterator","iterable","keys","Object","keyIndex","next","value","done","Loader","this","registry","Registry","ensureInstantiated","module","ModuleNamespace","TypeError","ensureResolution","resolvedKey","REGISTRY","baseObject","defineProperty","BASE_OBJECT","forEach","extendNamespace","key","enumerable","get","RegisterLoader","call","registryDelete","delete","deleted","records","hasOwnProperty","linkRecord","REGISTER_INTERNAL","lastRegister","trace","createLoadRecord","state","registration","importerSetters","loadError","evalError","instantiatePromise","dependencies","execute","executingRequire","moduleObj","setters","depsInstantiatePromise","dependencyInstantiations","resolveInstantiate","loader","parentKey","Promise","resolve","load","reject","instantiate","then","link","createProcessAnonRegister","INSTANTIATE","instantiation","traceLoad","default","__useDefault","registerDeclarative","catch","addToError","resolveInstantiateDep","traceDepMap","loads","deps","dynamicDeps","depMap","declare","definedExports","declared","global","changed","p","ContextualLoader","exports","instantiateDeps","depsInstantiatePromises","Array","all","setter","deepInstantiateDeps","queueLoad","seen","loadCnt","processLoad","depLoad","id","meta","url","ensureEvaluate","doEvaluate","makeDynamicRequire","depLink","declarativeExecute","configurable","set","require","dynamicExecute","moduleDefault","__esModule","nullContext","e","isModule","m","hasStringTag","toStringTag","prototype","toString","checkInstantiateWasm","wasmBuffer","processAnonRegister","bytes","Uint8Array","WebAssembly","compile","importObj","Module","imports","register","_export","Instance","extend","a","b","preloadScript","supportsPreload","supportsPrefetch","document","createElement","rel","as","href","head","appendChild","Image","src","workerImport","importScripts","scriptLoad","crossOrigin","integrity","cleanup","error","loadingScripts","splice","script","removeEventListener","removeChild","isWorker","type","charset","async","addEventListener","applyPaths","baseURL","paths","mapMatch","getMapMatch","target","resolved","baseURI","checkMap","curLen","split","len","map","bestMatch","SystemJSProductionLoader","CONFIG","submap","bundles","depCache","wasm","emptyModule","plainResolve","config","parent","doScriptLoad","coreInstantiate","bundle","bundleUrl","resolveSync","has","loadedBundles","newModule","preloadFn","fetch","res","ok","arrayBuffer","status","statusText","fetched","wasmInstantiated","source","TextDecoder","decode","eval","window","process","versions","node","platform","envGlobal","self","getElementsByTagName","bases","location","slashIndex","cwd","resolvedPromise","constructor","import","RESOLVE_INSTANTIATE","RESOLVE","iteratorSupport","entries","namespace","create","instantiated","registerDynamic","freeze","PLAIN_RESOLVE","PLAIN_RESOLVE_SYNC","relList","supports","onerror","msg","apply","arguments","plainResolveSync","systemJSPrototype","bindings","cfg","val","v","resolvedParent","concat","getConfig","version","System","SystemJS"],"mappings":"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","sourcesContent":["/*\n * Environment\n */\nexport var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nexport var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;\nexport var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);\n\nvar envGlobal = typeof self !== 'undefined' ? self : global;\nexport { envGlobal as global }\n\n/*\n * Simple Symbol() shim\n */\nvar hasSymbol = typeof Symbol !== 'undefined';\nexport function createSymbol (name) {\n return hasSymbol ? Symbol() : '@@' + name;\n}\n\nexport function pathToFileUrl (filePath) {\n return 'file://' + (isWindows ? '/' : '') + (isWindows ? filePath.replace(/\\\\/g, '/') : filePath);\n}\n\nexport function fileUrlToPath (fileUrl) {\n if (fileUrl.substr(0, 7) !== 'file://')\n throw new RangeError(fileUrl + ' is not a valid file url');\n if (isWindows)\n return fileUrl.substr(8).replace(/\\\\/g, '/');\n else\n return fileUrl.substr(7);\n}\n\n/*\n * Environment baseURI\n */\nexport var baseURI;\n\n// environent baseURI detection\nif (typeof document != 'undefined' && document.getElementsByTagName) {\n baseURI = document.baseURI;\n\n if (!baseURI) {\n var bases = document.getElementsByTagName('base');\n baseURI = bases[0] && bases[0].href || window.location.href;\n }\n}\nelse if (typeof location != 'undefined') {\n baseURI = location.href;\n}\n\n// sanitize out the hash and querystring\nif (baseURI) {\n baseURI = baseURI.split('#')[0].split('?')[0];\n var slashIndex = baseURI.lastIndexOf('/');\n if (slashIndex !== -1)\n baseURI = baseURI.substr(0, slashIndex + 1);\n}\nelse if (typeof process !== 'undefined' && process.cwd) {\n baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();\n if (isWindows)\n baseURI = baseURI.replace(/\\\\/g, '/');\n}\nelse {\n throw new TypeError('No environment baseURI');\n}\n\n// ensure baseURI has trailing \"/\"\nif (baseURI[baseURI.length - 1] !== '/')\n baseURI += '/';\n\n/*\n * LoaderError with chaining for loader stacks\n */\nvar errArgs = new Error(0, '_').fileName == '_';\nfunction LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {\n // Convert file:/// URLs to paths in Node\n if (!isBrowser)\n newMessage = newMessage.replace(isWindows ? /file:\\/\\/\\//g : /file:\\/\\//g, '');\n\n var message = (childErr.message || childErr) + '\\n ' + newMessage;\n\n var err;\n if (errArgs && childErr.fileName)\n err = new Error(message, childErr.fileName, childErr.lineNumber);\n else\n err = new Error(message);\n\n\n var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;\n\n if (isNode)\n // node doesn't show the message otherwise\n err.stack = message + '\\n ' + stack;\n else\n err.stack = stack;\n\n err.originalErr = childErr.originalErr || childErr;\n\n return err;\n}\nexport { LoaderError__Check_error_message_for_loader_stack as addToError }\n","import { isNode } from './common.js';\n\n/*\n * Optimized URL normalization assuming a syntax-valid URL parent\n */\nfunction throwResolveError (relUrl, parentUrl) {\n throw new RangeError('Unable to resolve \"' + relUrl + '\" to ' + parentUrl);\n}\nexport function resolveIfNotPlain (relUrl, parentUrl) {\n relUrl = relUrl.trim();\n var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);\n\n var firstChar = relUrl[0];\n var secondChar = relUrl[1];\n\n // protocol-relative\n if (firstChar === '/' && secondChar === '/') {\n if (!parentProtocol)\n throwResolveError(relUrl, parentUrl);\n return parentProtocol + relUrl;\n }\n // relative-url\n else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||\n relUrl.length === 1 && (relUrl += '/')) ||\n firstChar === '/') {\n var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';\n\n // read pathname from parent if a URL\n // pathname taken to be part after leading \"/\"\n var pathname;\n if (parentIsPlain) {\n // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname\n if (parentUrl === undefined)\n throwResolveError(relUrl, parentUrl);\n pathname = parentUrl;\n }\n else if (parentUrl[parentProtocol.length + 1] === '/') {\n // resolving to a :// so we need to read out the auth and host\n if (parentProtocol !== 'file:') {\n pathname = parentUrl.substr(parentProtocol.length + 2);\n pathname = pathname.substr(pathname.indexOf('/') + 1);\n }\n else {\n pathname = parentUrl.substr(8);\n }\n }\n else {\n // resolving to :/ so pathname is the /... part\n pathname = parentUrl.substr(parentProtocol.length + 1);\n }\n\n if (firstChar === '/') {\n if (parentIsPlain)\n throwResolveError(relUrl, parentUrl);\n else\n return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;\n }\n\n // join together and split for removal of .. and . segments\n // looping the string instead of anything fancy for perf reasons\n // '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain\n var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;\n\n var output = [];\n var segmentIndex = -1;\n\n for (var i = 0; i < segmented.length; i++) {\n // busy reading a segment - only terminate on '/'\n if (segmentIndex !== -1) {\n if (segmented[i] === '/') {\n output.push(segmented.substring(segmentIndex, i + 1));\n segmentIndex = -1;\n }\n continue;\n }\n\n // new segment - check if it is relative\n if (segmented[i] === '.') {\n // ../ segment\n if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {\n output.pop();\n i += 2;\n }\n // ./ segment\n else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {\n i += 1;\n }\n else {\n // the start of a new segment as below\n segmentIndex = i;\n continue;\n }\n\n // this is the plain URI backtracking error (../, package:x -> error)\n if (parentIsPlain && output.length === 0)\n throwResolveError(relUrl, parentUrl);\n\n continue;\n }\n\n // it is the start of a new segment\n segmentIndex = i;\n }\n // finish reading out the last segment\n if (segmentIndex !== -1)\n output.push(segmented.substr(segmentIndex));\n\n return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');\n }\n\n // sanitizes and verifies (by returning undefined if not a valid URL-like form)\n // Windows filepath compatibility is an added convenience here\n var protocolIndex = relUrl.indexOf(':');\n if (protocolIndex !== -1) {\n if (isNode) {\n // C:\\x becomes file:///c:/x (we don't support C|\\x)\n if (relUrl[1] === ':' && relUrl[2] === '\\\\' && relUrl[0].match(/[a-z]/i))\n return 'file:///' + relUrl.replace(/\\\\/g, '/');\n }\n return relUrl;\n }\n}\n","import { addToError, createSymbol } from './common.js';\n\nexport { Loader, ModuleNamespace, REGISTRY }\n\nvar resolvedPromise = Promise.resolve();\n\n/*\n * Simple Array values shim\n */\nfunction arrayValues (arr) {\n if (arr.values)\n return arr.values();\n\n if (typeof Symbol === 'undefined' || !Symbol.iterator)\n throw new Error('Symbol.iterator not supported in this browser');\n\n var iterable = {};\n iterable[Symbol.iterator] = function () {\n var keys = Object.keys(arr);\n var keyIndex = 0;\n return {\n next: function () {\n if (keyIndex < keys.length)\n return {\n value: arr[keys[keyIndex++]],\n done: false\n };\n else\n return {\n value: undefined,\n done: true\n };\n }\n };\n };\n return iterable;\n}\n\n/*\n * 3. Reflect.Loader\n *\n * We skip the entire native internal pipeline, just providing the bare API\n */\n// 3.1.1\nfunction Loader () {\n this.registry = new Registry();\n}\n// 3.3.1\nLoader.prototype.constructor = Loader;\n\nfunction ensureInstantiated (module) {\n if (!(module instanceof ModuleNamespace))\n throw new TypeError('Module instantiation did not return a valid namespace object.');\n return module;\n}\n\n// 3.3.2\nLoader.prototype.import = function (key, parent) {\n if (typeof key !== 'string')\n throw new TypeError('Loader import method must be passed a module key string');\n // custom resolveInstantiate combined hook for better perf\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[RESOLVE_INSTANTIATE](key, parent);\n })\n .then(ensureInstantiated)\n //.then(Module.evaluate)\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n};\n// 3.3.3\nvar RESOLVE = Loader.resolve = createSymbol('resolve');\n\n/*\n * Combined resolve / instantiate hook\n *\n * Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described\n * in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.\n *\n * We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid\n * the need for double registry lookups as a performance optimization.\n */\nvar RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');\n\n// default resolveInstantiate is just to call resolve and then get from the registry\n// this provides compatibility for the resolveInstantiate optimization\nLoader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {\n var loader = this;\n return loader.resolve(key, parent)\n .then(function (resolved) {\n return loader.registry.get(resolved);\n });\n};\n\nfunction ensureResolution (resolvedKey) {\n if (resolvedKey === undefined)\n throw new RangeError('No resolution found.');\n return resolvedKey;\n}\n\nLoader.prototype.resolve = function (key, parent) {\n var loader = this;\n return resolvedPromise\n .then(function() {\n return loader[RESOLVE](key, parent);\n })\n .then(ensureResolution)\n .catch(function (err) {\n throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));\n });\n};\n\n// 3.3.4 (import without evaluate)\n// this is not documented because the use of deferred evaluation as in Module.evaluate is not\n// documented, as it is not considered a stable feature to be encouraged\n// Loader.prototype.load may well be deprecated if this stays disabled\n/* Loader.prototype.load = function (key, parent) {\n return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))\n .catch(function (err) {\n throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));\n });\n}; */\n\n/*\n * 4. Registry\n *\n * Instead of structuring through a Map, just use a dictionary object\n * We throw for construction attempts so this doesn't affect the public API\n *\n * Registry has been adjusted to use Namespace objects over ModuleStatus objects\n * as part of simplifying loader API implementation\n */\nvar iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;\nvar REGISTRY = createSymbol('registry');\nfunction Registry() {\n this[REGISTRY] = {};\n}\n// 4.4.1\nif (iteratorSupport) {\n // 4.4.2\n Registry.prototype[Symbol.iterator] = function () {\n return this.entries()[Symbol.iterator]();\n };\n\n // 4.4.3\n Registry.prototype.entries = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return [key, registry[key]];\n }));\n };\n}\n\n// 4.4.4\nRegistry.prototype.keys = function () {\n return arrayValues(Object.keys(this[REGISTRY]));\n};\n// 4.4.5\nRegistry.prototype.values = function () {\n var registry = this[REGISTRY];\n return arrayValues(Object.keys(registry).map(function (key) {\n return registry[key];\n }));\n};\n// 4.4.6\nRegistry.prototype.get = function (key) {\n return this[REGISTRY][key];\n};\n// 4.4.7\nRegistry.prototype.set = function (key, namespace) {\n if (!(namespace instanceof ModuleNamespace))\n throw new Error('Registry must be set with an instance of Module Namespace');\n this[REGISTRY][key] = namespace;\n return this;\n};\n// 4.4.8\nRegistry.prototype.has = function (key) {\n return Object.hasOwnProperty.call(this[REGISTRY], key);\n};\n// 4.4.9\nRegistry.prototype.delete = function (key) {\n if (Object.hasOwnProperty.call(this[REGISTRY], key)) {\n delete this[REGISTRY][key];\n return true;\n }\n return false;\n};\n\n/*\n * Simple ModuleNamespace Exotic object based on a baseObject\n * We export this for allowing a fast-path for module namespace creation over Module descriptors\n */\n// var EVALUATE = createSymbol('evaluate');\nvar BASE_OBJECT = createSymbol('baseObject');\n\n// 8.3.1 Reflect.Module\n/*\n * Best-effort simplified non-spec implementation based on\n * a baseObject referenced via getters.\n *\n * Allows:\n *\n * loader.registry.set('x', new Module({ default: 'x' }));\n *\n * Optional evaluation function provides experimental Module.evaluate\n * support for non-executed modules in registry.\n */\nfunction ModuleNamespace (baseObject/*, evaluate*/) {\n Object.defineProperty(this, BASE_OBJECT, {\n value: baseObject\n });\n\n // evaluate defers namespace population\n /* if (evaluate) {\n Object.defineProperty(this, EVALUATE, {\n value: evaluate,\n configurable: true,\n writable: true\n });\n }\n else { */\n Object.keys(baseObject).forEach(extendNamespace, this);\n //}\n};\n// 8.4.2\nModuleNamespace.prototype = Object.create(null);\n\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {\n value: 'Module'\n });\n\nfunction extendNamespace (key) {\n Object.defineProperty(this, key, {\n enumerable: true,\n get: function () {\n return this[BASE_OBJECT][key];\n }\n });\n}\n\n/* function doEvaluate (evaluate, context) {\n try {\n evaluate.call(context);\n }\n catch (e) {\n return e;\n }\n}\n\n// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable\nModule.evaluate = function (ns) {\n var evaluate = ns[EVALUATE];\n if (evaluate) {\n ns[EVALUATE] = undefined;\n var err = doEvaluate(evaluate);\n if (err) {\n // cache the error\n ns[EVALUATE] = function () {\n throw err;\n };\n throw err;\n }\n Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);\n }\n // make chainable\n return ns;\n}; */\n","import { Loader, ModuleNamespace, REGISTRY } from './loader-polyfill.js';\nimport { resolveIfNotPlain } from './resolve.js';\nimport { addToError, global, createSymbol, baseURI } from './common.js';\n\nexport default RegisterLoader;\n\n/*\n * Register Loader\n *\n * Builds directly on top of loader polyfill to provide:\n * - loader.register support\n * - hookable higher-level resolve\n * - instantiate hook returning a ModuleNamespace or undefined for es module loading\n * - loader error behaviour as in HTML and loader specs, caching load and eval errors separately\n * - build tracing support by providing a .trace=true and .loads object format\n */\n\nvar REGISTER_INTERNAL = createSymbol('register-internal');\n\nfunction RegisterLoader () {\n Loader.call(this);\n\n var registryDelete = this.registry.delete;\n this.registry.delete = function (key) {\n var deleted = registryDelete.call(this, key);\n\n // also delete from register registry if linked\n if (records.hasOwnProperty(key) && !records[key].linkRecord) {\n delete records[key];\n deleted = true;\n }\n\n return deleted;\n };\n\n var records = {};\n\n this[REGISTER_INTERNAL] = {\n // last anonymous System.register call\n lastRegister: undefined,\n // in-flight es module load records\n records: records\n };\n\n // tracing\n this.trace = false;\n}\n\nRegisterLoader.prototype = Object.create(Loader.prototype);\nRegisterLoader.prototype.constructor = RegisterLoader;\n\nvar INSTANTIATE = RegisterLoader.instantiate = createSymbol('instantiate');\n\n// default normalize is the WhatWG style normalizer\nRegisterLoader.prototype[RegisterLoader.resolve = Loader.resolve] = function (key, parentKey) {\n return resolveIfNotPlain(key, parentKey || baseURI);\n};\n\nRegisterLoader.prototype[INSTANTIATE] = function (key, processAnonRegister) {};\n\n// once evaluated, the linkRecord is set to undefined leaving just the other load record properties\n// this allows tracking new binding listeners for es modules through importerSetters\n// for dynamic modules, the load record is removed entirely.\nfunction createLoadRecord (state, key, registration) {\n return state.records[key] = {\n key: key,\n\n // defined System.register cache\n registration: registration,\n\n // module namespace object\n module: undefined,\n\n // es-only\n // this sticks around so new module loads can listen to binding changes\n // for already-loaded modules by adding themselves to their importerSetters\n importerSetters: undefined,\n\n loadError: undefined,\n evalError: undefined,\n\n // in-flight linking record\n linkRecord: {\n // promise for instantiated\n instantiatePromise: undefined,\n dependencies: undefined,\n execute: undefined,\n executingRequire: false,\n\n // underlying module object bindings\n moduleObj: undefined,\n\n // es only, also indicates if es or not\n setters: undefined,\n\n // promise for instantiated dependencies (dependencyInstantiations populated)\n depsInstantiatePromise: undefined,\n // will be the array of dependency load record or a module namespace\n dependencyInstantiations: undefined,\n\n // NB optimization and way of ensuring module objects in setters\n // indicates setters which should run pre-execution of that dependency\n // setters is then just for completely executed module objects\n // alternatively we just pass the partially filled module objects as\n // arguments into the execute function\n // hoisted: undefined\n }\n };\n}\n\nRegisterLoader.prototype[Loader.resolveInstantiate] = function (key, parentKey) {\n var loader = this;\n var state = this[REGISTER_INTERNAL];\n var registry = this.registry[REGISTRY];\n\n return resolveInstantiate(loader, key, parentKey, registry, state)\n .then(function (instantiated) {\n if (instantiated instanceof ModuleNamespace)\n return instantiated;\n\n // resolveInstantiate always returns a load record with a link record and no module value\n var link = instantiated.linkRecord;\n\n // if already beaten to done, return\n if (!link) {\n if (instantiated.module)\n return instantiated.module;\n throw instantiated.evalError;\n }\n\n return deepInstantiateDeps(loader, instantiated, link, registry, state)\n .then(function () {\n return ensureEvaluate(loader, instantiated, link, registry, state, undefined);\n });\n });\n};\n\nfunction resolveInstantiate (loader, key, parentKey, registry, state) {\n // normalization shortpath for already-normalized key\n // could add a plain name filter, but doesn't yet seem necessary for perf\n var module = registry[key];\n if (module)\n return Promise.resolve(module);\n\n var load = state.records[key];\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (load.loadError)\n return Promise.reject(load.loadError);\n return instantiate(loader, load, load.linkRecord, registry, state);\n }\n\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n // main loader registry always takes preference\n module = registry[resolvedKey];\n if (module)\n return module;\n\n load = state.records[resolvedKey];\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n if (load.loadError)\n return Promise.reject(load.loadError);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction createProcessAnonRegister (loader, load, state) {\n return function () {\n var lastRegister = state.lastRegister;\n\n if (!lastRegister)\n return !!load.registration;\n\n state.lastRegister = undefined;\n load.registration = lastRegister;\n\n return true;\n };\n}\n\nfunction instantiate (loader, load, link, registry, state) {\n return link.instantiatePromise || (link.instantiatePromise =\n // if there is already an existing registration, skip running instantiate\n (load.registration ? Promise.resolve() : Promise.resolve().then(function () {\n state.lastRegister = undefined;\n return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));\n }))\n .then(function (instantiation) {\n // direct module return from instantiate -> we're done\n if (instantiation !== undefined) {\n if (!(instantiation instanceof ModuleNamespace))\n throw new TypeError('Instantiate did not return a valid Module object.');\n\n delete state.records[load.key];\n if (loader.trace)\n traceLoad(loader, load, link);\n return registry[load.key] = instantiation;\n }\n\n // run the cached loader.register declaration if there is one\n var registration = load.registration;\n // clear to allow new registrations for future loads (combined with registry delete)\n load.registration = undefined;\n if (!registration)\n throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');\n\n link.dependencies = registration[0];\n\n load.importerSetters = [];\n\n link.moduleObj = {};\n\n // process System.registerDynamic declaration\n if (registration[2]) {\n link.moduleObj.default = link.moduleObj.__useDefault = {};\n link.executingRequire = registration[1];\n link.execute = registration[2];\n }\n\n // process System.register declaration\n else {\n registerDeclarative(loader, load, link, registration[1]);\n }\n\n return load;\n })\n .catch(function (err) {\n load.linkRecord = undefined;\n throw load.loadError = load.loadError || addToError(err, 'Instantiating ' + load.key);\n }));\n}\n\n// like resolveInstantiate, but returning load records for linking\nfunction resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {\n // normalization shortpaths for already-normalized key\n // DISABLED to prioritise consistent resolver calls\n // could add a plain name filter, but doesn't yet seem necessary for perf\n /* var load = state.records[key];\n var module = registry[key];\n\n if (module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n\n // registry authority check in case module was deleted or replaced in main registry\n if (load && load.module && load.module === module)\n return load;\n else\n return module;\n }\n\n // already linked but not in main registry is ignored\n if (load && !load.module) {\n if (traceDepMap)\n traceDepMap[key] = key;\n return instantiate(loader, load, load.linkRecord, registry, state);\n } */\n return loader.resolve(key, parentKey)\n .then(function (resolvedKey) {\n if (traceDepMap)\n traceDepMap[key] = resolvedKey;\n\n // normalization shortpaths for already-normalized key\n var load = state.records[resolvedKey];\n var module = registry[resolvedKey];\n\n // main loader registry always takes preference\n if (module && (!load || load.module && module !== load.module))\n return module;\n\n if (load && load.loadError)\n throw load.loadError;\n\n // already has a module value but not already in the registry (load.module)\n // means it was removed by registry.delete, so we should\n // disgard the current load record creating a new one over it\n // but keep any existing registration\n if (!load || !module && load.module)\n load = createLoadRecord(state, resolvedKey, load && load.registration);\n\n var link = load.linkRecord;\n if (!link)\n return load;\n\n return instantiate(loader, load, link, registry, state);\n });\n}\n\nfunction traceLoad (loader, load, link) {\n loader.loads = loader.loads || {};\n loader.loads[load.key] = {\n key: load.key,\n deps: link.dependencies,\n dynamicDeps: [],\n depMap: link.depMap || {}\n };\n}\n\n/*\n * Convert a CJS module.exports into a valid object for new Module:\n *\n * new Module(getEsModule(module.exports))\n *\n * Sets the default value to the module, while also reading off named exports carefully.\n */\nfunction registerDeclarative (loader, load, link, declare) {\n var moduleObj = link.moduleObj;\n var importerSetters = load.importerSetters;\n\n var definedExports = false;\n\n // closure especially not based on link to allow link record disposal\n var declared = declare.call(global, function (name, value) {\n if (typeof name === 'object') {\n var changed = false;\n for (var p in name) {\n value = name[p];\n if (p !== '__useDefault' && (!(p in moduleObj) || moduleObj[p] !== value)) {\n changed = true;\n moduleObj[p] = value;\n }\n }\n if (changed === false)\n return value;\n }\n else {\n if ((definedExports || name in moduleObj) && moduleObj[name] === value)\n return value;\n moduleObj[name] = value;\n }\n\n for (var i = 0; i < importerSetters.length; i++)\n importerSetters[i](moduleObj);\n\n return value;\n }, new ContextualLoader(loader, load.key));\n\n link.setters = declared.setters;\n link.execute = declared.execute;\n if (declared.exports) {\n link.moduleObj = moduleObj = declared.exports;\n definedExports = true;\n }\n}\n\nfunction instantiateDeps (loader, load, link, registry, state) {\n if (link.depsInstantiatePromise)\n return link.depsInstantiatePromise;\n\n var depsInstantiatePromises = Array(link.dependencies.length);\n\n for (var i = 0; i < link.dependencies.length; i++)\n depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && link.depMap || (link.depMap = {}));\n\n var depsInstantiatePromise = Promise.all(depsInstantiatePromises)\n .then(function (dependencyInstantiations) {\n link.dependencyInstantiations = dependencyInstantiations;\n\n // run setters to set up bindings to instantiated dependencies\n if (link.setters) {\n for (var i = 0; i < dependencyInstantiations.length; i++) {\n var setter = link.setters[i];\n if (setter) {\n var instantiation = dependencyInstantiations[i];\n\n if (instantiation instanceof ModuleNamespace) {\n setter(instantiation);\n }\n else {\n if (instantiation.loadError)\n throw instantiation.loadError;\n setter(instantiation.module || instantiation.linkRecord.moduleObj);\n // this applies to both es and dynamic registrations\n if (instantiation.importerSetters)\n instantiation.importerSetters.push(setter);\n }\n }\n }\n }\n\n return load;\n });\n\n if (loader.trace)\n depsInstantiatePromise = depsInstantiatePromise.then(function () {\n traceLoad(loader, load, link);\n return load;\n });\n\n depsInstantiatePromise = depsInstantiatePromise.catch(function (err) {\n // throw up the instantiateDeps stack\n link.depsInstantiatePromise = undefined;\n throw addToError(err, 'Loading ' + load.key);\n });\n\n depsInstantiatePromise.catch(function () {});\n\n return link.depsInstantiatePromise = depsInstantiatePromise;\n}\n\nfunction deepInstantiateDeps (loader, load, link, registry, state) {\n return new Promise(function (resolve, reject) {\n var seen = [];\n var loadCnt = 0;\n function queueLoad (load) {\n var link = load.linkRecord;\n if (!link)\n return;\n\n if (seen.indexOf(load) !== -1)\n return;\n seen.push(load);\n\n loadCnt++;\n instantiateDeps(loader, load, link, registry, state)\n .then(processLoad, reject);\n }\n function processLoad (load) {\n loadCnt--;\n var link = load.linkRecord;\n if (link) {\n for (var i = 0; i < link.dependencies.length; i++) {\n var depLoad = link.dependencyInstantiations[i];\n if (!(depLoad instanceof ModuleNamespace))\n queueLoad(depLoad);\n }\n }\n if (loadCnt === 0)\n resolve();\n }\n queueLoad(load);\n });\n}\n\n/*\n * System.register\n */\nRegisterLoader.prototype.register = function (key, deps, declare) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (declare === undefined) {\n state.lastRegister = [key, deps, undefined];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, declare, undefined];\n }\n};\n\n/*\n * System.registerDyanmic\n */\nRegisterLoader.prototype.registerDynamic = function (key, deps, executingRequire, execute) {\n var state = this[REGISTER_INTERNAL];\n\n // anonymous modules get stored as lastAnon\n if (typeof key !== 'string') {\n state.lastRegister = [key, deps, executingRequire];\n }\n\n // everything else registers into the register cache\n else {\n var load = state.records[key] || createLoadRecord(state, key, undefined);\n load.registration = [deps, executingRequire, execute];\n }\n};\n\n// ContextualLoader class\n// backwards-compatible with previous System.register context argument by exposing .id, .key\nfunction ContextualLoader (loader, key) {\n this.loader = loader;\n this.key = this.id = key;\n this.meta = {\n url: key\n // scriptElement: null\n };\n}\n/*ContextualLoader.prototype.constructor = function () {\n throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');\n};*/\nContextualLoader.prototype.import = function (key) {\n if (this.loader.trace)\n this.loader.loads[this.key].dynamicDeps.push(key);\n return this.loader.import(key, this.key);\n};\n/*ContextualLoader.prototype.resolve = function (key) {\n return this.loader.resolve(key, this.key);\n};*/\n\n// this is the execution function bound to the Module namespace record\nfunction ensureEvaluate (loader, load, link, registry, state, seen) {\n if (load.module)\n return load.module;\n\n if (load.evalError)\n throw load.evalError;\n\n if (seen && seen.indexOf(load) !== -1)\n return load.linkRecord.moduleObj;\n\n // for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless\n // for dynamic loads, we pass seen if also dynamic\n var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);\n if (err)\n throw err;\n\n return load.module;\n}\n\nfunction makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {\n // we can only require from already-known dependencies\n return function (name) {\n for (var i = 0; i < dependencies.length; i++) {\n if (dependencies[i] === name) {\n var depLoad = dependencyInstantiations[i];\n var module;\n\n if (depLoad instanceof ModuleNamespace)\n module = depLoad;\n else\n module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);\n\n return '__useDefault' in module ? module.__useDefault : module;\n }\n }\n throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);\n };\n}\n\n// ensures the given es load is evaluated\n// returns the error if any\nfunction doEvaluate (loader, load, link, registry, state, seen) {\n seen.push(load);\n\n var err;\n\n // es modules evaluate dependencies first\n // non es modules explicitly call moduleEvaluate through require\n if (link.setters) {\n var depLoad, depLink;\n for (var i = 0; i < link.dependencies.length; i++) {\n depLoad = link.dependencyInstantiations[i];\n\n if (depLoad instanceof ModuleNamespace)\n continue;\n\n // custom Module returned from instantiate\n depLink = depLoad.linkRecord;\n if (depLink && seen.indexOf(depLoad) === -1) {\n if (depLoad.evalError)\n err = depLoad.evalError;\n else\n // dynamic / declarative boundaries clear the \"seen\" list\n // we just let cross format circular throw as would happen in real implementations\n err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);\n }\n\n if (err) {\n load.linkRecord = undefined;\n load.evalError = addToError(err, 'Evaluating ' + load.key);\n return load.evalError;\n }\n }\n }\n\n // link.execute won't exist for Module returns from instantiate on top-level load\n if (link.execute) {\n // ES System.register execute\n // \"this\" is null in ES\n if (link.setters) {\n err = declarativeExecute(link.execute);\n }\n // System.registerDynamic execute\n // \"this\" is \"exports\" in CJS\n else {\n var module = { id: load.key };\n var moduleObj = link.moduleObj;\n Object.defineProperty(module, 'exports', {\n configurable: true,\n set: function (exports) {\n moduleObj.default = moduleObj.__useDefault = exports;\n },\n get: function () {\n return moduleObj.__useDefault;\n }\n });\n\n var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);\n\n // evaluate deps first\n if (!link.executingRequire)\n for (var i = 0; i < link.dependencies.length; i++)\n require(link.dependencies[i]);\n\n err = dynamicExecute(link.execute, require, moduleObj.default, module);\n\n // pick up defineProperty calls to module.exports when we can\n if (module.exports !== moduleObj.__useDefault)\n moduleObj.default = moduleObj.__useDefault = module.exports;\n\n var moduleDefault = moduleObj.default;\n\n // __esModule flag extension support via lifting\n if (moduleDefault && moduleDefault.__esModule) {\n for (var p in moduleDefault) {\n if (Object.hasOwnProperty.call(moduleDefault, p))\n moduleObj[p] = moduleDefault[p];\n }\n }\n }\n }\n\n // dispose link record\n load.linkRecord = undefined;\n\n if (err)\n return load.evalError = addToError(err, 'Evaluating ' + load.key);\n\n registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);\n\n // if not an esm module, run importer setters and clear them\n // this allows dynamic modules to update themselves into es modules\n // as soon as execution has completed\n if (!link.setters) {\n if (load.importerSetters)\n for (var i = 0; i < load.importerSetters.length; i++)\n load.importerSetters[i](load.module);\n load.importerSetters = undefined;\n }\n}\n\n// {} is the closest we can get to call(undefined)\nvar nullContext = {};\nif (Object.freeze)\n Object.freeze(nullContext);\n\nfunction declarativeExecute (execute) {\n try {\n execute.call(nullContext);\n }\n catch (e) {\n return e;\n }\n}\n\nfunction dynamicExecute (execute, require, exports, module) {\n try {\n var output = execute.call(global, require, exports, module);\n if (output !== undefined)\n module.exports = output;\n }\n catch (e) {\n return e;\n }\n}\n","import { resolveIfNotPlain } from 'es-module-loader/core/resolve.js';\nimport { baseURI, isBrowser, isWindows, addToError, global, createSymbol } from 'es-module-loader/core/common.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\n\nexport { baseURI, isBrowser, isWindows, addToError, global, resolveIfNotPlain, ModuleNamespace }\n\nexport var resolvedPromise = Promise.resolve();\nexport function noop () {};\n\nexport var emptyModule = new ModuleNamespace({});\n\nexport function protectedCreateNamespace (bindings) {\n if (bindings instanceof ModuleNamespace)\n return bindings;\n\n if (bindings && bindings.__esModule)\n return new ModuleNamespace(bindings);\n\n return new ModuleNamespace({ default: bindings, __useDefault: bindings });\n}\n\nvar hasStringTag;\nexport function isModule (m) {\n if (hasStringTag === undefined)\n hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;\n return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';\n}\n\nexport var CONFIG = createSymbol('loader-config');\nexport var METADATA = createSymbol('metadata');\nexport var PLAIN_RESOLVE = createSymbol('plain-resolve');\nexport var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');\n\nexport var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';\n\nexport function warn (msg, force) {\n if (force || this.warnings && typeof console !== 'undefined' && console.warn)\n console.warn(msg);\n}\n\nexport function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {\n var bytes = new Uint8Array(wasmBuffer);\n\n // detect by leading bytes\n // Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node\n if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {\n return WebAssembly.compile(wasmBuffer).then(function (m) {\n var deps = [];\n var setters = [];\n var importObj = {};\n\n // we can only set imports if supported (eg Safari doesnt support)\n if (WebAssembly.Module.imports)\n WebAssembly.Module.imports(m).forEach(function (i) {\n var key = i.module;\n setters.push(function (m) {\n importObj[key] = m;\n });\n if (deps.indexOf(key) === -1)\n deps.push(key);\n });\n loader.register(deps, function (_export) {\n return {\n setters: setters,\n execute: function () {\n _export(new WebAssembly.Instance(m, importObj).exports);\n }\n };\n });\n processAnonRegister();\n\n return true;\n });\n }\n\n return Promise.resolve(false);\n}\n\nvar parentModuleContext;\nexport function loadNodeModule (key, baseURL) {\n if (key[0] === '.')\n throw new Error('Node module ' + key + ' can\\'t be loaded as it is not a package require.');\n\n if (!parentModuleContext) {\n var Module = this._nodeRequire('module');\n var base = decodeURI(baseURL.substr(isWindows ? 8 : 7));\n parentModuleContext = new Module(base);\n parentModuleContext.paths = Module._nodeModulePaths(base);\n }\n return parentModuleContext.require(key);\n}\n\nexport function extend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n a[p] = b[p];\n }\n return a;\n}\n\nexport function prepend (a, b) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n if (a[p] === undefined)\n a[p] = b[p];\n }\n return a;\n}\n\n// meta first-level extends where:\n// array + array appends\n// object + object extends\n// other properties replace\nexport function extendMeta (a, b, _prepend) {\n for (var p in b) {\n if (!Object.hasOwnProperty.call(b, p))\n continue;\n var val = b[p];\n if (a[p] === undefined)\n a[p] = val;\n else if (val instanceof Array && a[p] instanceof Array)\n a[p] = [].concat(_prepend ? val : a[p]).concat(_prepend ? a[p] : val);\n else if (typeof val == 'object' && val !== null && typeof a[p] == 'object')\n a[p] = (_prepend ? prepend : extend)(extend({}, a[p]), val);\n else if (!_prepend)\n a[p] = val;\n }\n}\n\nvar supportsPreload = false, supportsPrefetch = false;\nif (isBrowser)\n (function () {\n var relList = document.createElement('link').relList;\n if (relList && relList.supports) {\n supportsPrefetch = true;\n try {\n supportsPreload = relList.supports('preload');\n }\n catch (e) {}\n }\n })();\n\nexport function preloadScript (url) {\n // fallback to old fashioned image technique which still works in safari\n if (!supportsPreload && !supportsPrefetch) {\n var preloadImage = new Image();\n preloadImage.src = url;\n return;\n }\n\n var link = document.createElement('link');\n if (supportsPreload) {\n link.rel = 'preload';\n link.as = 'script';\n }\n else {\n // this works for all except Safari (detected by relList.supports lacking)\n link.rel = 'prefetch';\n }\n link.href = url;\n document.head.appendChild(link);\n}\n\nfunction workerImport (src, resolve, reject) {\n try {\n importScripts(src);\n }\n catch (e) {\n reject(e);\n }\n resolve();\n}\n\nif (isBrowser) {\n var loadingScripts = [];\n var onerror = window.onerror;\n window.onerror = function globalOnerror (msg, src) {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].src !== src)\n continue;\n loadingScripts[i].err(msg);\n return;\n }\n if (onerror)\n onerror.apply(this, arguments);\n };\n}\n\nexport function scriptLoad (src, crossOrigin, integrity, resolve, reject) {\n // percent encode just \"#\" for HTTP requests\n src = src.replace(/#/g, '%23');\n\n // subresource integrity is not supported in web workers\n if (isWorker)\n return workerImport(src, resolve, reject);\n\n var script = document.createElement('script');\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.async = true;\n\n if (crossOrigin)\n script.crossOrigin = crossOrigin;\n if (integrity)\n script.integrity = integrity;\n\n script.addEventListener('load', load, false);\n script.addEventListener('error', error, false);\n\n script.src = src;\n document.head.appendChild(script);\n\n function load () {\n resolve();\n cleanup();\n }\n\n // note this does not catch execution errors\n function error (err) {\n cleanup();\n reject(new Error('Fetching ' + src));\n }\n\n function cleanup () {\n for (var i = 0; i < loadingScripts.length; i++) {\n if (loadingScripts[i].err === error) {\n loadingScripts.splice(i, 1);\n break;\n }\n }\n script.removeEventListener('load', load, false);\n script.removeEventListener('error', error, false);\n document.head.removeChild(script);\n }\n}\n\nexport function readMemberExpression (p, value) {\n var pParts = p.split('.');\n while (pParts.length)\n value = value[pParts.shift()];\n return value;\n}\n\n// separate out paths cache as a baseURL lock process\nexport function applyPaths (baseURL, paths, key) {\n var mapMatch = getMapMatch(paths, key);\n if (mapMatch) {\n var target = paths[mapMatch] + key.substr(mapMatch.length);\n\n var resolved = resolveIfNotPlain(target, baseURI);\n if (resolved !== undefined)\n return resolved;\n\n return baseURL + target;\n }\n else if (key.indexOf(':') !== -1) {\n return key;\n }\n else {\n return baseURL + key;\n }\n}\n\nfunction checkMap (p) {\n var name = this.name;\n // can add ':' here if we want paths to match the behaviour of map\n if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {\n var curLen = p.split('/').length;\n if (curLen > this.len) {\n this.match = p;\n this.len = curLen;\n }\n }\n}\n\nexport function getMapMatch (map, name) {\n if (Object.hasOwnProperty.call(map, name))\n return name;\n\n var bestMatch = {\n name: name,\n match: undefined,\n len: 0\n };\n\n Object.keys(map).forEach(checkMap, bestMatch);\n\n return bestMatch.match;\n}\n\n// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339\nexport var cjsRequireRegEx = /(?:^\\uFEFF?|[^$_a-zA-Z\\xA0-\\uFFFF.\"'])require\\s*\\(\\s*(\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\.[^'\\\\]*)*'|`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)\\s*\\)/g\n","import { ModuleNamespace } from 'es-module-loader/core/loader-polyfill.js';\nimport RegisterLoader from 'es-module-loader/core/register-loader.js';\nimport { global, baseURI, CONFIG, PLAIN_RESOLVE, PLAIN_RESOLVE_SYNC, resolveIfNotPlain, resolvedPromise,\n extend, emptyModule, applyPaths, scriptLoad, protectedCreateNamespace, getMapMatch, noop, preloadScript, isModule, isNode, checkInstantiateWasm } from './common.js';\n\nexport { ModuleNamespace }\n\nexport default SystemJSProductionLoader;\n\nfunction SystemJSProductionLoader () {\n RegisterLoader.call(this);\n\n // internal configuration\n this[CONFIG] = {\n baseURL: baseURI,\n paths: {},\n map: {},\n submap: {},\n bundles: {},\n depCache: {},\n wasm: false\n };\n\n // support the empty module, as a concept\n this.registry.set('@empty', emptyModule);\n}\n\nSystemJSProductionLoader.plainResolve = PLAIN_RESOLVE;\nSystemJSProductionLoader.plainResolveSync = PLAIN_RESOLVE_SYNC;\n\nvar systemJSPrototype = SystemJSProductionLoader.prototype = Object.create(RegisterLoader.prototype);\n\nsystemJSPrototype.constructor = SystemJSProductionLoader;\n\nsystemJSPrototype[SystemJSProductionLoader.resolve = RegisterLoader.resolve] = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return Promise.resolve(resolved);\n\n // plain resolution\n var loader = this;\n return resolvedPromise\n .then(function () {\n return loader[PLAIN_RESOLVE](key, parentKey);\n })\n .then(function (resolved) {\n resolved = resolved || key;\n // if in the registry then we are done\n if (loader.registry.has(resolved))\n return resolved;\n\n // then apply paths\n // baseURL is fallback\n var config = loader[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved);\n });\n};\n\nsystemJSPrototype.newModule = function (bindings) {\n return new ModuleNamespace(bindings);\n};\n\nsystemJSPrototype.isModule = isModule;\n\nsystemJSPrototype.resolveSync = function (key, parentKey) {\n var resolved = resolveIfNotPlain(key, parentKey || baseURI);\n if (resolved !== undefined)\n return resolved;\n\n // plain resolution\n resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey) || key;\n\n if (this.registry.has(resolved))\n return resolved;\n\n // then apply paths\n var config = this[CONFIG];\n return applyPaths(config.baseURL, config.paths, resolved);\n};\n\nsystemJSPrototype.import = function () {\n return RegisterLoader.prototype.import.apply(this, arguments)\n .then(function (m) {\n return '__useDefault' in m ? m.__useDefault : m;\n });\n};\n\nsystemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;\n\nsystemJSPrototype[SystemJSProductionLoader.instantiate = RegisterLoader.instantiate] = coreInstantiate;\n\nsystemJSPrototype.config = function (cfg) {\n var config = this[CONFIG];\n\n if (cfg.baseURL) {\n config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);\n if (config.baseURL[config.baseURL.length - 1] !== '/')\n config.baseURL += '/';\n }\n\n if (cfg.paths)\n extend(config.paths, cfg.paths);\n\n if (cfg.map) {\n var val = cfg.map;\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n\n var v = val[p];\n\n if (typeof v === 'string') {\n config.map[p] = v;\n }\n\n // object submap\n else {\n // normalize parent with URL and paths only\n var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);\n extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);\n }\n }\n }\n\n for (var p in cfg) {\n if (!Object.hasOwnProperty.call(cfg, p))\n continue;\n\n var val = cfg[p];\n\n switch (p) {\n case 'baseURL':\n case 'paths':\n case 'map':\n break;\n\n case 'bundles':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var v = val[p];\n for (var i = 0; i < v.length; i++)\n config.bundles[this.resolveSync(v[i], undefined)] = p;\n }\n break;\n\n case 'depCache':\n for (var p in val) {\n if (!Object.hasOwnProperty.call(val, p))\n continue;\n var resolvedParent = this.resolveSync(p, undefined);\n config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);\n }\n break;\n\n case 'wasm':\n config.wasm = typeof WebAssembly !== 'undefined' && !!val;\n break;\n\n default:\n throw new TypeError('The SystemJS production build does not support the \"' + p + '\" configuration option.');\n }\n }\n};\n\n// getConfig configuration cloning\nsystemJSPrototype.getConfig = function (name) {\n var config = this[CONFIG];\n\n var map = {};\n extend(map, config.map);\n for (var p in config.submap) {\n if (!Object.hasOwnProperty.call(config.submap, p))\n continue;\n map[p] = extend({}, config.submap[p]);\n }\n\n var depCache = {};\n for (var p in config.depCache) {\n if (!Object.hasOwnProperty.call(config.depCache, p))\n continue;\n depCache[p] = [].concat(config.depCache[p]);\n }\n\n var bundles = {};\n for (var p in config.bundles) {\n if (!Object.hasOwnProperty.call(config.bundles, p))\n continue;\n bundles[p] = [].concat(config.bundles[p]);\n }\n\n return {\n baseURL: config.baseURL,\n paths: extend({}, config.paths),\n depCache: depCache,\n bundles: bundles,\n map: map,\n wasm: config.wasm\n };\n};\n\n// ensure System.register and System.registerDynamic decanonicalize\nsystemJSPrototype.register = function (key, deps, declare) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.register.call(this, key, deps, declare);\n};\n\nsystemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {\n if (typeof key === 'string')\n key = this.resolveSync(key, undefined);\n return RegisterLoader.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);\n};\n\nfunction plainResolve (key, parentKey) {\n var config = this[CONFIG];\n\n // Apply contextual submap\n if (parentKey) {\n var parent = getMapMatch(config.submap, parentKey);\n var submap = config.submap[parent];\n var mapMatch = submap && getMapMatch(submap, key);\n\n if (mapMatch) {\n var target = submap[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parent) || target;\n }\n }\n\n // Apply global map\n var map = config.map;\n var mapMatch = getMapMatch(map, key);\n\n if (mapMatch) {\n var target = map[mapMatch] + key.substr(mapMatch.length);\n return resolveIfNotPlain(target, parentKey || config.baseURL) || target;\n }\n}\n\nfunction doScriptLoad (url, processAnonRegister) {\n return new Promise(function (resolve, reject) {\n return scriptLoad(url, 'anonymous', undefined, function () {\n processAnonRegister();\n resolve();\n }, reject);\n });\n}\n\nvar loadedBundles = {};\nfunction coreInstantiate (key, processAnonRegister) {\n var config = this[CONFIG];\n\n var wasm = config.wasm;\n\n var bundle = config.bundles[key];\n if (bundle) {\n var loader = this;\n var bundleUrl = loader.resolveSync(bundle, undefined);\n if (loader.registry.has(bundleUrl))\n return;\n return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {\n // bundle treated itself as an empty module\n // this means we can reload bundles by deleting from the registry\n if (!loader.registry.has(bundleUrl))\n loader.registry.set(bundleUrl, loader.newModule({}));\n delete loadedBundles[bundleUrl];\n }));\n }\n\n var depCache = config.depCache[key];\n if (depCache) {\n var preloadFn = wasm ? fetch : preloadScript;\n for (var i = 0; i < depCache.length; i++)\n this.resolve(depCache[i], key).then(preloadFn);\n }\n\n if (wasm) {\n var loader = this;\n return fetch(key)\n .then(function(res) {\n if (res.ok)\n return res.arrayBuffer();\n else\n throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);\n })\n .then(function (fetched) {\n return checkInstantiateWasm(loader, fetched, processAnonRegister)\n .then(function (wasmInstantiated) {\n if (wasmInstantiated)\n return;\n // not wasm -> convert buffer into utf-8 string to execute as a module\n // TextDecoder compatibility matches WASM currently. Need to keep checking this.\n // The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder\n var source = new TextDecoder('utf-8').decode(new Uint8Array(fetched));\n (0, eval)(source + '\\n//# sourceURL=' + key);\n processAnonRegister();\n });\n });\n }\n\n return doScriptLoad(key, processAnonRegister);\n}\n","import { global, isBrowser, isWorker } from './common.js';\nimport SystemJSProductionLoader from './systemjs-production-loader.js';\n\nSystemJSProductionLoader.prototype.version = VERSION;\n\nvar System = new SystemJSProductionLoader();\n\n// only set the global System on the global in browsers\nif (isBrowser || isWorker) {\n global.SystemJS = System;\n\n // dont override an existing System global\n if (!global.System) {\n global.System = System;\n }\n // rather just extend or set a System.register on the existing System global\n else {\n var register = global.System.register;\n global.System.register = function () {\n if (register)\n register.apply(this, arguments);\n System.register.apply(System, arguments);\n };\n }\n}\n\nif (typeof module !== 'undefined' && module.exports)\n module.exports = System;\n"]}
|
@@ -0,0 +1,1711 @@
|
|
1
|
+
/*
|
2
|
+
* SystemJS v0.20.19 Production
|
3
|
+
*/
|
4
|
+
(function () {
|
5
|
+
'use strict';
|
6
|
+
|
7
|
+
/*
|
8
|
+
* Environment
|
9
|
+
*/
|
10
|
+
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
11
|
+
var isNode = typeof process !== 'undefined' && process.versions && process.versions.node;
|
12
|
+
var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/);
|
13
|
+
|
14
|
+
var envGlobal = typeof self !== 'undefined' ? self : global;
|
15
|
+
/*
|
16
|
+
* Simple Symbol() shim
|
17
|
+
*/
|
18
|
+
var hasSymbol = typeof Symbol !== 'undefined';
|
19
|
+
function createSymbol (name) {
|
20
|
+
return hasSymbol ? Symbol() : '@@' + name;
|
21
|
+
}
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
/*
|
28
|
+
* Environment baseURI
|
29
|
+
*/
|
30
|
+
var baseURI;
|
31
|
+
|
32
|
+
// environent baseURI detection
|
33
|
+
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
34
|
+
baseURI = document.baseURI;
|
35
|
+
|
36
|
+
if (!baseURI) {
|
37
|
+
var bases = document.getElementsByTagName('base');
|
38
|
+
baseURI = bases[0] && bases[0].href || window.location.href;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
else if (typeof location != 'undefined') {
|
42
|
+
baseURI = location.href;
|
43
|
+
}
|
44
|
+
|
45
|
+
// sanitize out the hash and querystring
|
46
|
+
if (baseURI) {
|
47
|
+
baseURI = baseURI.split('#')[0].split('?')[0];
|
48
|
+
var slashIndex = baseURI.lastIndexOf('/');
|
49
|
+
if (slashIndex !== -1)
|
50
|
+
baseURI = baseURI.substr(0, slashIndex + 1);
|
51
|
+
}
|
52
|
+
else if (typeof process !== 'undefined' && process.cwd) {
|
53
|
+
baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd();
|
54
|
+
if (isWindows)
|
55
|
+
baseURI = baseURI.replace(/\\/g, '/');
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
throw new TypeError('No environment baseURI');
|
59
|
+
}
|
60
|
+
|
61
|
+
// ensure baseURI has trailing "/"
|
62
|
+
if (baseURI[baseURI.length - 1] !== '/')
|
63
|
+
baseURI += '/';
|
64
|
+
|
65
|
+
/*
|
66
|
+
* LoaderError with chaining for loader stacks
|
67
|
+
*/
|
68
|
+
var errArgs = new Error(0, '_').fileName == '_';
|
69
|
+
function LoaderError__Check_error_message_for_loader_stack (childErr, newMessage) {
|
70
|
+
// Convert file:/// URLs to paths in Node
|
71
|
+
if (!isBrowser)
|
72
|
+
newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
|
73
|
+
|
74
|
+
var message = (childErr.message || childErr) + '\n ' + newMessage;
|
75
|
+
|
76
|
+
var err;
|
77
|
+
if (errArgs && childErr.fileName)
|
78
|
+
err = new Error(message, childErr.fileName, childErr.lineNumber);
|
79
|
+
else
|
80
|
+
err = new Error(message);
|
81
|
+
|
82
|
+
|
83
|
+
var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack;
|
84
|
+
|
85
|
+
if (isNode)
|
86
|
+
// node doesn't show the message otherwise
|
87
|
+
err.stack = message + '\n ' + stack;
|
88
|
+
else
|
89
|
+
err.stack = stack;
|
90
|
+
|
91
|
+
err.originalErr = childErr.originalErr || childErr;
|
92
|
+
|
93
|
+
return err;
|
94
|
+
}
|
95
|
+
|
96
|
+
/*
|
97
|
+
* Optimized URL normalization assuming a syntax-valid URL parent
|
98
|
+
*/
|
99
|
+
function throwResolveError (relUrl, parentUrl) {
|
100
|
+
throw new RangeError('Unable to resolve "' + relUrl + '" to ' + parentUrl);
|
101
|
+
}
|
102
|
+
function resolveIfNotPlain (relUrl, parentUrl) {
|
103
|
+
relUrl = relUrl.trim();
|
104
|
+
var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1);
|
105
|
+
|
106
|
+
var firstChar = relUrl[0];
|
107
|
+
var secondChar = relUrl[1];
|
108
|
+
|
109
|
+
// protocol-relative
|
110
|
+
if (firstChar === '/' && secondChar === '/') {
|
111
|
+
if (!parentProtocol)
|
112
|
+
throwResolveError(relUrl, parentUrl);
|
113
|
+
return parentProtocol + relUrl;
|
114
|
+
}
|
115
|
+
// relative-url
|
116
|
+
else if (firstChar === '.' && (secondChar === '/' || secondChar === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
|
117
|
+
relUrl.length === 1 && (relUrl += '/')) ||
|
118
|
+
firstChar === '/') {
|
119
|
+
var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/';
|
120
|
+
|
121
|
+
// read pathname from parent if a URL
|
122
|
+
// pathname taken to be part after leading "/"
|
123
|
+
var pathname;
|
124
|
+
if (parentIsPlain) {
|
125
|
+
// resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname
|
126
|
+
if (parentUrl === undefined)
|
127
|
+
throwResolveError(relUrl, parentUrl);
|
128
|
+
pathname = parentUrl;
|
129
|
+
}
|
130
|
+
else if (parentUrl[parentProtocol.length + 1] === '/') {
|
131
|
+
// resolving to a :// so we need to read out the auth and host
|
132
|
+
if (parentProtocol !== 'file:') {
|
133
|
+
pathname = parentUrl.substr(parentProtocol.length + 2);
|
134
|
+
pathname = pathname.substr(pathname.indexOf('/') + 1);
|
135
|
+
}
|
136
|
+
else {
|
137
|
+
pathname = parentUrl.substr(8);
|
138
|
+
}
|
139
|
+
}
|
140
|
+
else {
|
141
|
+
// resolving to :/ so pathname is the /... part
|
142
|
+
pathname = parentUrl.substr(parentProtocol.length + 1);
|
143
|
+
}
|
144
|
+
|
145
|
+
if (firstChar === '/') {
|
146
|
+
if (parentIsPlain)
|
147
|
+
throwResolveError(relUrl, parentUrl);
|
148
|
+
else
|
149
|
+
return parentUrl.substr(0, parentUrl.length - pathname.length - 1) + relUrl;
|
150
|
+
}
|
151
|
+
|
152
|
+
// join together and split for removal of .. and . segments
|
153
|
+
// looping the string instead of anything fancy for perf reasons
|
154
|
+
// '../../../../../z' resolved to 'x/y' is just 'z' regardless of parentIsPlain
|
155
|
+
var segmented = pathname.substr(0, pathname.lastIndexOf('/') + 1) + relUrl;
|
156
|
+
|
157
|
+
var output = [];
|
158
|
+
var segmentIndex = -1;
|
159
|
+
|
160
|
+
for (var i = 0; i < segmented.length; i++) {
|
161
|
+
// busy reading a segment - only terminate on '/'
|
162
|
+
if (segmentIndex !== -1) {
|
163
|
+
if (segmented[i] === '/') {
|
164
|
+
output.push(segmented.substring(segmentIndex, i + 1));
|
165
|
+
segmentIndex = -1;
|
166
|
+
}
|
167
|
+
continue;
|
168
|
+
}
|
169
|
+
|
170
|
+
// new segment - check if it is relative
|
171
|
+
if (segmented[i] === '.') {
|
172
|
+
// ../ segment
|
173
|
+
if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
|
174
|
+
output.pop();
|
175
|
+
i += 2;
|
176
|
+
}
|
177
|
+
// ./ segment
|
178
|
+
else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
|
179
|
+
i += 1;
|
180
|
+
}
|
181
|
+
else {
|
182
|
+
// the start of a new segment as below
|
183
|
+
segmentIndex = i;
|
184
|
+
continue;
|
185
|
+
}
|
186
|
+
|
187
|
+
// this is the plain URI backtracking error (../, package:x -> error)
|
188
|
+
if (parentIsPlain && output.length === 0)
|
189
|
+
throwResolveError(relUrl, parentUrl);
|
190
|
+
|
191
|
+
continue;
|
192
|
+
}
|
193
|
+
|
194
|
+
// it is the start of a new segment
|
195
|
+
segmentIndex = i;
|
196
|
+
}
|
197
|
+
// finish reading out the last segment
|
198
|
+
if (segmentIndex !== -1)
|
199
|
+
output.push(segmented.substr(segmentIndex));
|
200
|
+
|
201
|
+
return parentUrl.substr(0, parentUrl.length - pathname.length) + output.join('');
|
202
|
+
}
|
203
|
+
|
204
|
+
// sanitizes and verifies (by returning undefined if not a valid URL-like form)
|
205
|
+
// Windows filepath compatibility is an added convenience here
|
206
|
+
var protocolIndex = relUrl.indexOf(':');
|
207
|
+
if (protocolIndex !== -1) {
|
208
|
+
if (isNode) {
|
209
|
+
// C:\x becomes file:///c:/x (we don't support C|\x)
|
210
|
+
if (relUrl[1] === ':' && relUrl[2] === '\\' && relUrl[0].match(/[a-z]/i))
|
211
|
+
return 'file:///' + relUrl.replace(/\\/g, '/');
|
212
|
+
}
|
213
|
+
return relUrl;
|
214
|
+
}
|
215
|
+
}
|
216
|
+
|
217
|
+
var resolvedPromise$1 = Promise.resolve();
|
218
|
+
|
219
|
+
/*
|
220
|
+
* Simple Array values shim
|
221
|
+
*/
|
222
|
+
function arrayValues (arr) {
|
223
|
+
if (arr.values)
|
224
|
+
return arr.values();
|
225
|
+
|
226
|
+
if (typeof Symbol === 'undefined' || !Symbol.iterator)
|
227
|
+
throw new Error('Symbol.iterator not supported in this browser');
|
228
|
+
|
229
|
+
var iterable = {};
|
230
|
+
iterable[Symbol.iterator] = function () {
|
231
|
+
var keys = Object.keys(arr);
|
232
|
+
var keyIndex = 0;
|
233
|
+
return {
|
234
|
+
next: function () {
|
235
|
+
if (keyIndex < keys.length)
|
236
|
+
return {
|
237
|
+
value: arr[keys[keyIndex++]],
|
238
|
+
done: false
|
239
|
+
};
|
240
|
+
else
|
241
|
+
return {
|
242
|
+
value: undefined,
|
243
|
+
done: true
|
244
|
+
};
|
245
|
+
}
|
246
|
+
};
|
247
|
+
};
|
248
|
+
return iterable;
|
249
|
+
}
|
250
|
+
|
251
|
+
/*
|
252
|
+
* 3. Reflect.Loader
|
253
|
+
*
|
254
|
+
* We skip the entire native internal pipeline, just providing the bare API
|
255
|
+
*/
|
256
|
+
// 3.1.1
|
257
|
+
function Loader () {
|
258
|
+
this.registry = new Registry();
|
259
|
+
}
|
260
|
+
// 3.3.1
|
261
|
+
Loader.prototype.constructor = Loader;
|
262
|
+
|
263
|
+
function ensureInstantiated (module) {
|
264
|
+
if (!(module instanceof ModuleNamespace))
|
265
|
+
throw new TypeError('Module instantiation did not return a valid namespace object.');
|
266
|
+
return module;
|
267
|
+
}
|
268
|
+
|
269
|
+
// 3.3.2
|
270
|
+
Loader.prototype.import = function (key, parent) {
|
271
|
+
if (typeof key !== 'string')
|
272
|
+
throw new TypeError('Loader import method must be passed a module key string');
|
273
|
+
// custom resolveInstantiate combined hook for better perf
|
274
|
+
var loader = this;
|
275
|
+
return resolvedPromise$1
|
276
|
+
.then(function () {
|
277
|
+
return loader[RESOLVE_INSTANTIATE](key, parent);
|
278
|
+
})
|
279
|
+
.then(ensureInstantiated)
|
280
|
+
//.then(Module.evaluate)
|
281
|
+
.catch(function (err) {
|
282
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
283
|
+
});
|
284
|
+
};
|
285
|
+
// 3.3.3
|
286
|
+
var RESOLVE = Loader.resolve = createSymbol('resolve');
|
287
|
+
|
288
|
+
/*
|
289
|
+
* Combined resolve / instantiate hook
|
290
|
+
*
|
291
|
+
* Not in current reduced spec, but necessary to separate RESOLVE from RESOLVE + INSTANTIATE as described
|
292
|
+
* in the spec notes of this repo to ensure that loader.resolve doesn't instantiate when not wanted.
|
293
|
+
*
|
294
|
+
* We implement RESOLVE_INSTANTIATE as a single hook instead of a separate INSTANTIATE in order to avoid
|
295
|
+
* the need for double registry lookups as a performance optimization.
|
296
|
+
*/
|
297
|
+
var RESOLVE_INSTANTIATE = Loader.resolveInstantiate = createSymbol('resolveInstantiate');
|
298
|
+
|
299
|
+
// default resolveInstantiate is just to call resolve and then get from the registry
|
300
|
+
// this provides compatibility for the resolveInstantiate optimization
|
301
|
+
Loader.prototype[RESOLVE_INSTANTIATE] = function (key, parent) {
|
302
|
+
var loader = this;
|
303
|
+
return loader.resolve(key, parent)
|
304
|
+
.then(function (resolved) {
|
305
|
+
return loader.registry.get(resolved);
|
306
|
+
});
|
307
|
+
};
|
308
|
+
|
309
|
+
function ensureResolution (resolvedKey) {
|
310
|
+
if (resolvedKey === undefined)
|
311
|
+
throw new RangeError('No resolution found.');
|
312
|
+
return resolvedKey;
|
313
|
+
}
|
314
|
+
|
315
|
+
Loader.prototype.resolve = function (key, parent) {
|
316
|
+
var loader = this;
|
317
|
+
return resolvedPromise$1
|
318
|
+
.then(function() {
|
319
|
+
return loader[RESOLVE](key, parent);
|
320
|
+
})
|
321
|
+
.then(ensureResolution)
|
322
|
+
.catch(function (err) {
|
323
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Resolving ' + key + (parent ? ' to ' + parent : ''));
|
324
|
+
});
|
325
|
+
};
|
326
|
+
|
327
|
+
// 3.3.4 (import without evaluate)
|
328
|
+
// this is not documented because the use of deferred evaluation as in Module.evaluate is not
|
329
|
+
// documented, as it is not considered a stable feature to be encouraged
|
330
|
+
// Loader.prototype.load may well be deprecated if this stays disabled
|
331
|
+
/* Loader.prototype.load = function (key, parent) {
|
332
|
+
return Promise.resolve(this[RESOLVE_INSTANTIATE](key, parent || this.key))
|
333
|
+
.catch(function (err) {
|
334
|
+
throw addToError(err, 'Loading ' + key + (parent ? ' from ' + parent : ''));
|
335
|
+
});
|
336
|
+
}; */
|
337
|
+
|
338
|
+
/*
|
339
|
+
* 4. Registry
|
340
|
+
*
|
341
|
+
* Instead of structuring through a Map, just use a dictionary object
|
342
|
+
* We throw for construction attempts so this doesn't affect the public API
|
343
|
+
*
|
344
|
+
* Registry has been adjusted to use Namespace objects over ModuleStatus objects
|
345
|
+
* as part of simplifying loader API implementation
|
346
|
+
*/
|
347
|
+
var iteratorSupport = typeof Symbol !== 'undefined' && Symbol.iterator;
|
348
|
+
var REGISTRY = createSymbol('registry');
|
349
|
+
function Registry() {
|
350
|
+
this[REGISTRY] = {};
|
351
|
+
}
|
352
|
+
// 4.4.1
|
353
|
+
if (iteratorSupport) {
|
354
|
+
// 4.4.2
|
355
|
+
Registry.prototype[Symbol.iterator] = function () {
|
356
|
+
return this.entries()[Symbol.iterator]();
|
357
|
+
};
|
358
|
+
|
359
|
+
// 4.4.3
|
360
|
+
Registry.prototype.entries = function () {
|
361
|
+
var registry = this[REGISTRY];
|
362
|
+
return arrayValues(Object.keys(registry).map(function (key) {
|
363
|
+
return [key, registry[key]];
|
364
|
+
}));
|
365
|
+
};
|
366
|
+
}
|
367
|
+
|
368
|
+
// 4.4.4
|
369
|
+
Registry.prototype.keys = function () {
|
370
|
+
return arrayValues(Object.keys(this[REGISTRY]));
|
371
|
+
};
|
372
|
+
// 4.4.5
|
373
|
+
Registry.prototype.values = function () {
|
374
|
+
var registry = this[REGISTRY];
|
375
|
+
return arrayValues(Object.keys(registry).map(function (key) {
|
376
|
+
return registry[key];
|
377
|
+
}));
|
378
|
+
};
|
379
|
+
// 4.4.6
|
380
|
+
Registry.prototype.get = function (key) {
|
381
|
+
return this[REGISTRY][key];
|
382
|
+
};
|
383
|
+
// 4.4.7
|
384
|
+
Registry.prototype.set = function (key, namespace) {
|
385
|
+
if (!(namespace instanceof ModuleNamespace))
|
386
|
+
throw new Error('Registry must be set with an instance of Module Namespace');
|
387
|
+
this[REGISTRY][key] = namespace;
|
388
|
+
return this;
|
389
|
+
};
|
390
|
+
// 4.4.8
|
391
|
+
Registry.prototype.has = function (key) {
|
392
|
+
return Object.hasOwnProperty.call(this[REGISTRY], key);
|
393
|
+
};
|
394
|
+
// 4.4.9
|
395
|
+
Registry.prototype.delete = function (key) {
|
396
|
+
if (Object.hasOwnProperty.call(this[REGISTRY], key)) {
|
397
|
+
delete this[REGISTRY][key];
|
398
|
+
return true;
|
399
|
+
}
|
400
|
+
return false;
|
401
|
+
};
|
402
|
+
|
403
|
+
/*
|
404
|
+
* Simple ModuleNamespace Exotic object based on a baseObject
|
405
|
+
* We export this for allowing a fast-path for module namespace creation over Module descriptors
|
406
|
+
*/
|
407
|
+
// var EVALUATE = createSymbol('evaluate');
|
408
|
+
var BASE_OBJECT = createSymbol('baseObject');
|
409
|
+
|
410
|
+
// 8.3.1 Reflect.Module
|
411
|
+
/*
|
412
|
+
* Best-effort simplified non-spec implementation based on
|
413
|
+
* a baseObject referenced via getters.
|
414
|
+
*
|
415
|
+
* Allows:
|
416
|
+
*
|
417
|
+
* loader.registry.set('x', new Module({ default: 'x' }));
|
418
|
+
*
|
419
|
+
* Optional evaluation function provides experimental Module.evaluate
|
420
|
+
* support for non-executed modules in registry.
|
421
|
+
*/
|
422
|
+
function ModuleNamespace (baseObject/*, evaluate*/) {
|
423
|
+
Object.defineProperty(this, BASE_OBJECT, {
|
424
|
+
value: baseObject
|
425
|
+
});
|
426
|
+
|
427
|
+
// evaluate defers namespace population
|
428
|
+
/* if (evaluate) {
|
429
|
+
Object.defineProperty(this, EVALUATE, {
|
430
|
+
value: evaluate,
|
431
|
+
configurable: true,
|
432
|
+
writable: true
|
433
|
+
});
|
434
|
+
}
|
435
|
+
else { */
|
436
|
+
Object.keys(baseObject).forEach(extendNamespace, this);
|
437
|
+
//}
|
438
|
+
}
|
439
|
+
// 8.4.2
|
440
|
+
ModuleNamespace.prototype = Object.create(null);
|
441
|
+
|
442
|
+
if (typeof Symbol !== 'undefined' && Symbol.toStringTag)
|
443
|
+
Object.defineProperty(ModuleNamespace.prototype, Symbol.toStringTag, {
|
444
|
+
value: 'Module'
|
445
|
+
});
|
446
|
+
|
447
|
+
function extendNamespace (key) {
|
448
|
+
Object.defineProperty(this, key, {
|
449
|
+
enumerable: true,
|
450
|
+
get: function () {
|
451
|
+
return this[BASE_OBJECT][key];
|
452
|
+
}
|
453
|
+
});
|
454
|
+
}
|
455
|
+
|
456
|
+
/* function doEvaluate (evaluate, context) {
|
457
|
+
try {
|
458
|
+
evaluate.call(context);
|
459
|
+
}
|
460
|
+
catch (e) {
|
461
|
+
return e;
|
462
|
+
}
|
463
|
+
}
|
464
|
+
|
465
|
+
// 8.4.1 Module.evaluate... not documented or used because this is potentially unstable
|
466
|
+
Module.evaluate = function (ns) {
|
467
|
+
var evaluate = ns[EVALUATE];
|
468
|
+
if (evaluate) {
|
469
|
+
ns[EVALUATE] = undefined;
|
470
|
+
var err = doEvaluate(evaluate);
|
471
|
+
if (err) {
|
472
|
+
// cache the error
|
473
|
+
ns[EVALUATE] = function () {
|
474
|
+
throw err;
|
475
|
+
};
|
476
|
+
throw err;
|
477
|
+
}
|
478
|
+
Object.keys(ns[BASE_OBJECT]).forEach(extendNamespace, ns);
|
479
|
+
}
|
480
|
+
// make chainable
|
481
|
+
return ns;
|
482
|
+
}; */
|
483
|
+
|
484
|
+
/*
|
485
|
+
* Register Loader
|
486
|
+
*
|
487
|
+
* Builds directly on top of loader polyfill to provide:
|
488
|
+
* - loader.register support
|
489
|
+
* - hookable higher-level resolve
|
490
|
+
* - instantiate hook returning a ModuleNamespace or undefined for es module loading
|
491
|
+
* - loader error behaviour as in HTML and loader specs, caching load and eval errors separately
|
492
|
+
* - build tracing support by providing a .trace=true and .loads object format
|
493
|
+
*/
|
494
|
+
|
495
|
+
var REGISTER_INTERNAL = createSymbol('register-internal');
|
496
|
+
|
497
|
+
function RegisterLoader$1 () {
|
498
|
+
Loader.call(this);
|
499
|
+
|
500
|
+
var registryDelete = this.registry.delete;
|
501
|
+
this.registry.delete = function (key) {
|
502
|
+
var deleted = registryDelete.call(this, key);
|
503
|
+
|
504
|
+
// also delete from register registry if linked
|
505
|
+
if (records.hasOwnProperty(key) && !records[key].linkRecord) {
|
506
|
+
delete records[key];
|
507
|
+
deleted = true;
|
508
|
+
}
|
509
|
+
|
510
|
+
return deleted;
|
511
|
+
};
|
512
|
+
|
513
|
+
var records = {};
|
514
|
+
|
515
|
+
this[REGISTER_INTERNAL] = {
|
516
|
+
// last anonymous System.register call
|
517
|
+
lastRegister: undefined,
|
518
|
+
// in-flight es module load records
|
519
|
+
records: records
|
520
|
+
};
|
521
|
+
|
522
|
+
// tracing
|
523
|
+
this.trace = false;
|
524
|
+
}
|
525
|
+
|
526
|
+
RegisterLoader$1.prototype = Object.create(Loader.prototype);
|
527
|
+
RegisterLoader$1.prototype.constructor = RegisterLoader$1;
|
528
|
+
|
529
|
+
var INSTANTIATE = RegisterLoader$1.instantiate = createSymbol('instantiate');
|
530
|
+
|
531
|
+
// default normalize is the WhatWG style normalizer
|
532
|
+
RegisterLoader$1.prototype[RegisterLoader$1.resolve = Loader.resolve] = function (key, parentKey) {
|
533
|
+
return resolveIfNotPlain(key, parentKey || baseURI);
|
534
|
+
};
|
535
|
+
|
536
|
+
RegisterLoader$1.prototype[INSTANTIATE] = function (key, processAnonRegister) {};
|
537
|
+
|
538
|
+
// once evaluated, the linkRecord is set to undefined leaving just the other load record properties
|
539
|
+
// this allows tracking new binding listeners for es modules through importerSetters
|
540
|
+
// for dynamic modules, the load record is removed entirely.
|
541
|
+
function createLoadRecord (state, key, registration) {
|
542
|
+
return state.records[key] = {
|
543
|
+
key: key,
|
544
|
+
|
545
|
+
// defined System.register cache
|
546
|
+
registration: registration,
|
547
|
+
|
548
|
+
// module namespace object
|
549
|
+
module: undefined,
|
550
|
+
|
551
|
+
// es-only
|
552
|
+
// this sticks around so new module loads can listen to binding changes
|
553
|
+
// for already-loaded modules by adding themselves to their importerSetters
|
554
|
+
importerSetters: undefined,
|
555
|
+
|
556
|
+
loadError: undefined,
|
557
|
+
evalError: undefined,
|
558
|
+
|
559
|
+
// in-flight linking record
|
560
|
+
linkRecord: {
|
561
|
+
// promise for instantiated
|
562
|
+
instantiatePromise: undefined,
|
563
|
+
dependencies: undefined,
|
564
|
+
execute: undefined,
|
565
|
+
executingRequire: false,
|
566
|
+
|
567
|
+
// underlying module object bindings
|
568
|
+
moduleObj: undefined,
|
569
|
+
|
570
|
+
// es only, also indicates if es or not
|
571
|
+
setters: undefined,
|
572
|
+
|
573
|
+
// promise for instantiated dependencies (dependencyInstantiations populated)
|
574
|
+
depsInstantiatePromise: undefined,
|
575
|
+
// will be the array of dependency load record or a module namespace
|
576
|
+
dependencyInstantiations: undefined,
|
577
|
+
|
578
|
+
// NB optimization and way of ensuring module objects in setters
|
579
|
+
// indicates setters which should run pre-execution of that dependency
|
580
|
+
// setters is then just for completely executed module objects
|
581
|
+
// alternatively we just pass the partially filled module objects as
|
582
|
+
// arguments into the execute function
|
583
|
+
// hoisted: undefined
|
584
|
+
}
|
585
|
+
};
|
586
|
+
}
|
587
|
+
|
588
|
+
RegisterLoader$1.prototype[Loader.resolveInstantiate] = function (key, parentKey) {
|
589
|
+
var loader = this;
|
590
|
+
var state = this[REGISTER_INTERNAL];
|
591
|
+
var registry = this.registry[REGISTRY];
|
592
|
+
|
593
|
+
return resolveInstantiate(loader, key, parentKey, registry, state)
|
594
|
+
.then(function (instantiated) {
|
595
|
+
if (instantiated instanceof ModuleNamespace)
|
596
|
+
return instantiated;
|
597
|
+
|
598
|
+
// resolveInstantiate always returns a load record with a link record and no module value
|
599
|
+
var link = instantiated.linkRecord;
|
600
|
+
|
601
|
+
// if already beaten to done, return
|
602
|
+
if (!link) {
|
603
|
+
if (instantiated.module)
|
604
|
+
return instantiated.module;
|
605
|
+
throw instantiated.evalError;
|
606
|
+
}
|
607
|
+
|
608
|
+
return deepInstantiateDeps(loader, instantiated, link, registry, state)
|
609
|
+
.then(function () {
|
610
|
+
return ensureEvaluate(loader, instantiated, link, registry, state, undefined);
|
611
|
+
});
|
612
|
+
});
|
613
|
+
};
|
614
|
+
|
615
|
+
function resolveInstantiate (loader, key, parentKey, registry, state) {
|
616
|
+
// normalization shortpath for already-normalized key
|
617
|
+
// could add a plain name filter, but doesn't yet seem necessary for perf
|
618
|
+
var module = registry[key];
|
619
|
+
if (module)
|
620
|
+
return Promise.resolve(module);
|
621
|
+
|
622
|
+
var load = state.records[key];
|
623
|
+
|
624
|
+
// already linked but not in main registry is ignored
|
625
|
+
if (load && !load.module) {
|
626
|
+
if (load.loadError)
|
627
|
+
return Promise.reject(load.loadError);
|
628
|
+
return instantiate(loader, load, load.linkRecord, registry, state);
|
629
|
+
}
|
630
|
+
|
631
|
+
return loader.resolve(key, parentKey)
|
632
|
+
.then(function (resolvedKey) {
|
633
|
+
// main loader registry always takes preference
|
634
|
+
module = registry[resolvedKey];
|
635
|
+
if (module)
|
636
|
+
return module;
|
637
|
+
|
638
|
+
load = state.records[resolvedKey];
|
639
|
+
|
640
|
+
// already has a module value but not already in the registry (load.module)
|
641
|
+
// means it was removed by registry.delete, so we should
|
642
|
+
// disgard the current load record creating a new one over it
|
643
|
+
// but keep any existing registration
|
644
|
+
if (!load || load.module)
|
645
|
+
load = createLoadRecord(state, resolvedKey, load && load.registration);
|
646
|
+
|
647
|
+
if (load.loadError)
|
648
|
+
return Promise.reject(load.loadError);
|
649
|
+
|
650
|
+
var link = load.linkRecord;
|
651
|
+
if (!link)
|
652
|
+
return load;
|
653
|
+
|
654
|
+
return instantiate(loader, load, link, registry, state);
|
655
|
+
});
|
656
|
+
}
|
657
|
+
|
658
|
+
function createProcessAnonRegister (loader, load, state) {
|
659
|
+
return function () {
|
660
|
+
var lastRegister = state.lastRegister;
|
661
|
+
|
662
|
+
if (!lastRegister)
|
663
|
+
return !!load.registration;
|
664
|
+
|
665
|
+
state.lastRegister = undefined;
|
666
|
+
load.registration = lastRegister;
|
667
|
+
|
668
|
+
return true;
|
669
|
+
};
|
670
|
+
}
|
671
|
+
|
672
|
+
function instantiate (loader, load, link, registry, state) {
|
673
|
+
return link.instantiatePromise || (link.instantiatePromise =
|
674
|
+
// if there is already an existing registration, skip running instantiate
|
675
|
+
(load.registration ? Promise.resolve() : Promise.resolve().then(function () {
|
676
|
+
state.lastRegister = undefined;
|
677
|
+
return loader[INSTANTIATE](load.key, loader[INSTANTIATE].length > 1 && createProcessAnonRegister(loader, load, state));
|
678
|
+
}))
|
679
|
+
.then(function (instantiation) {
|
680
|
+
// direct module return from instantiate -> we're done
|
681
|
+
if (instantiation !== undefined) {
|
682
|
+
if (!(instantiation instanceof ModuleNamespace))
|
683
|
+
throw new TypeError('Instantiate did not return a valid Module object.');
|
684
|
+
|
685
|
+
delete state.records[load.key];
|
686
|
+
if (loader.trace)
|
687
|
+
traceLoad(loader, load, link);
|
688
|
+
return registry[load.key] = instantiation;
|
689
|
+
}
|
690
|
+
|
691
|
+
// run the cached loader.register declaration if there is one
|
692
|
+
var registration = load.registration;
|
693
|
+
// clear to allow new registrations for future loads (combined with registry delete)
|
694
|
+
load.registration = undefined;
|
695
|
+
if (!registration)
|
696
|
+
throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register.');
|
697
|
+
|
698
|
+
link.dependencies = registration[0];
|
699
|
+
|
700
|
+
load.importerSetters = [];
|
701
|
+
|
702
|
+
link.moduleObj = {};
|
703
|
+
|
704
|
+
// process System.registerDynamic declaration
|
705
|
+
if (registration[2]) {
|
706
|
+
link.moduleObj.default = link.moduleObj.__useDefault = {};
|
707
|
+
link.executingRequire = registration[1];
|
708
|
+
link.execute = registration[2];
|
709
|
+
}
|
710
|
+
|
711
|
+
// process System.register declaration
|
712
|
+
else {
|
713
|
+
registerDeclarative(loader, load, link, registration[1]);
|
714
|
+
}
|
715
|
+
|
716
|
+
return load;
|
717
|
+
})
|
718
|
+
.catch(function (err) {
|
719
|
+
load.linkRecord = undefined;
|
720
|
+
throw load.loadError = load.loadError || LoaderError__Check_error_message_for_loader_stack(err, 'Instantiating ' + load.key);
|
721
|
+
}));
|
722
|
+
}
|
723
|
+
|
724
|
+
// like resolveInstantiate, but returning load records for linking
|
725
|
+
function resolveInstantiateDep (loader, key, parentKey, registry, state, traceDepMap) {
|
726
|
+
// normalization shortpaths for already-normalized key
|
727
|
+
// DISABLED to prioritise consistent resolver calls
|
728
|
+
// could add a plain name filter, but doesn't yet seem necessary for perf
|
729
|
+
/* var load = state.records[key];
|
730
|
+
var module = registry[key];
|
731
|
+
|
732
|
+
if (module) {
|
733
|
+
if (traceDepMap)
|
734
|
+
traceDepMap[key] = key;
|
735
|
+
|
736
|
+
// registry authority check in case module was deleted or replaced in main registry
|
737
|
+
if (load && load.module && load.module === module)
|
738
|
+
return load;
|
739
|
+
else
|
740
|
+
return module;
|
741
|
+
}
|
742
|
+
|
743
|
+
// already linked but not in main registry is ignored
|
744
|
+
if (load && !load.module) {
|
745
|
+
if (traceDepMap)
|
746
|
+
traceDepMap[key] = key;
|
747
|
+
return instantiate(loader, load, load.linkRecord, registry, state);
|
748
|
+
} */
|
749
|
+
return loader.resolve(key, parentKey)
|
750
|
+
.then(function (resolvedKey) {
|
751
|
+
if (traceDepMap)
|
752
|
+
traceDepMap[key] = resolvedKey;
|
753
|
+
|
754
|
+
// normalization shortpaths for already-normalized key
|
755
|
+
var load = state.records[resolvedKey];
|
756
|
+
var module = registry[resolvedKey];
|
757
|
+
|
758
|
+
// main loader registry always takes preference
|
759
|
+
if (module && (!load || load.module && module !== load.module))
|
760
|
+
return module;
|
761
|
+
|
762
|
+
if (load && load.loadError)
|
763
|
+
throw load.loadError;
|
764
|
+
|
765
|
+
// already has a module value but not already in the registry (load.module)
|
766
|
+
// means it was removed by registry.delete, so we should
|
767
|
+
// disgard the current load record creating a new one over it
|
768
|
+
// but keep any existing registration
|
769
|
+
if (!load || !module && load.module)
|
770
|
+
load = createLoadRecord(state, resolvedKey, load && load.registration);
|
771
|
+
|
772
|
+
var link = load.linkRecord;
|
773
|
+
if (!link)
|
774
|
+
return load;
|
775
|
+
|
776
|
+
return instantiate(loader, load, link, registry, state);
|
777
|
+
});
|
778
|
+
}
|
779
|
+
|
780
|
+
function traceLoad (loader, load, link) {
|
781
|
+
loader.loads = loader.loads || {};
|
782
|
+
loader.loads[load.key] = {
|
783
|
+
key: load.key,
|
784
|
+
deps: link.dependencies,
|
785
|
+
dynamicDeps: [],
|
786
|
+
depMap: link.depMap || {}
|
787
|
+
};
|
788
|
+
}
|
789
|
+
|
790
|
+
/*
|
791
|
+
* Convert a CJS module.exports into a valid object for new Module:
|
792
|
+
*
|
793
|
+
* new Module(getEsModule(module.exports))
|
794
|
+
*
|
795
|
+
* Sets the default value to the module, while also reading off named exports carefully.
|
796
|
+
*/
|
797
|
+
function registerDeclarative (loader, load, link, declare) {
|
798
|
+
var moduleObj = link.moduleObj;
|
799
|
+
var importerSetters = load.importerSetters;
|
800
|
+
|
801
|
+
var definedExports = false;
|
802
|
+
|
803
|
+
// closure especially not based on link to allow link record disposal
|
804
|
+
var declared = declare.call(envGlobal, function (name, value) {
|
805
|
+
if (typeof name === 'object') {
|
806
|
+
var changed = false;
|
807
|
+
for (var p in name) {
|
808
|
+
value = name[p];
|
809
|
+
if (p !== '__useDefault' && (!(p in moduleObj) || moduleObj[p] !== value)) {
|
810
|
+
changed = true;
|
811
|
+
moduleObj[p] = value;
|
812
|
+
}
|
813
|
+
}
|
814
|
+
if (changed === false)
|
815
|
+
return value;
|
816
|
+
}
|
817
|
+
else {
|
818
|
+
if ((definedExports || name in moduleObj) && moduleObj[name] === value)
|
819
|
+
return value;
|
820
|
+
moduleObj[name] = value;
|
821
|
+
}
|
822
|
+
|
823
|
+
for (var i = 0; i < importerSetters.length; i++)
|
824
|
+
importerSetters[i](moduleObj);
|
825
|
+
|
826
|
+
return value;
|
827
|
+
}, new ContextualLoader(loader, load.key));
|
828
|
+
|
829
|
+
link.setters = declared.setters;
|
830
|
+
link.execute = declared.execute;
|
831
|
+
if (declared.exports) {
|
832
|
+
link.moduleObj = moduleObj = declared.exports;
|
833
|
+
definedExports = true;
|
834
|
+
}
|
835
|
+
}
|
836
|
+
|
837
|
+
function instantiateDeps (loader, load, link, registry, state) {
|
838
|
+
if (link.depsInstantiatePromise)
|
839
|
+
return link.depsInstantiatePromise;
|
840
|
+
|
841
|
+
var depsInstantiatePromises = Array(link.dependencies.length);
|
842
|
+
|
843
|
+
for (var i = 0; i < link.dependencies.length; i++)
|
844
|
+
depsInstantiatePromises[i] = resolveInstantiateDep(loader, link.dependencies[i], load.key, registry, state, loader.trace && link.depMap || (link.depMap = {}));
|
845
|
+
|
846
|
+
var depsInstantiatePromise = Promise.all(depsInstantiatePromises)
|
847
|
+
.then(function (dependencyInstantiations) {
|
848
|
+
link.dependencyInstantiations = dependencyInstantiations;
|
849
|
+
|
850
|
+
// run setters to set up bindings to instantiated dependencies
|
851
|
+
if (link.setters) {
|
852
|
+
for (var i = 0; i < dependencyInstantiations.length; i++) {
|
853
|
+
var setter = link.setters[i];
|
854
|
+
if (setter) {
|
855
|
+
var instantiation = dependencyInstantiations[i];
|
856
|
+
|
857
|
+
if (instantiation instanceof ModuleNamespace) {
|
858
|
+
setter(instantiation);
|
859
|
+
}
|
860
|
+
else {
|
861
|
+
if (instantiation.loadError)
|
862
|
+
throw instantiation.loadError;
|
863
|
+
setter(instantiation.module || instantiation.linkRecord.moduleObj);
|
864
|
+
// this applies to both es and dynamic registrations
|
865
|
+
if (instantiation.importerSetters)
|
866
|
+
instantiation.importerSetters.push(setter);
|
867
|
+
}
|
868
|
+
}
|
869
|
+
}
|
870
|
+
}
|
871
|
+
|
872
|
+
return load;
|
873
|
+
});
|
874
|
+
|
875
|
+
if (loader.trace)
|
876
|
+
depsInstantiatePromise = depsInstantiatePromise.then(function () {
|
877
|
+
traceLoad(loader, load, link);
|
878
|
+
return load;
|
879
|
+
});
|
880
|
+
|
881
|
+
depsInstantiatePromise = depsInstantiatePromise.catch(function (err) {
|
882
|
+
// throw up the instantiateDeps stack
|
883
|
+
link.depsInstantiatePromise = undefined;
|
884
|
+
throw LoaderError__Check_error_message_for_loader_stack(err, 'Loading ' + load.key);
|
885
|
+
});
|
886
|
+
|
887
|
+
depsInstantiatePromise.catch(function () {});
|
888
|
+
|
889
|
+
return link.depsInstantiatePromise = depsInstantiatePromise;
|
890
|
+
}
|
891
|
+
|
892
|
+
function deepInstantiateDeps (loader, load, link, registry, state) {
|
893
|
+
return new Promise(function (resolve, reject) {
|
894
|
+
var seen = [];
|
895
|
+
var loadCnt = 0;
|
896
|
+
function queueLoad (load) {
|
897
|
+
var link = load.linkRecord;
|
898
|
+
if (!link)
|
899
|
+
return;
|
900
|
+
|
901
|
+
if (seen.indexOf(load) !== -1)
|
902
|
+
return;
|
903
|
+
seen.push(load);
|
904
|
+
|
905
|
+
loadCnt++;
|
906
|
+
instantiateDeps(loader, load, link, registry, state)
|
907
|
+
.then(processLoad, reject);
|
908
|
+
}
|
909
|
+
function processLoad (load) {
|
910
|
+
loadCnt--;
|
911
|
+
var link = load.linkRecord;
|
912
|
+
if (link) {
|
913
|
+
for (var i = 0; i < link.dependencies.length; i++) {
|
914
|
+
var depLoad = link.dependencyInstantiations[i];
|
915
|
+
if (!(depLoad instanceof ModuleNamespace))
|
916
|
+
queueLoad(depLoad);
|
917
|
+
}
|
918
|
+
}
|
919
|
+
if (loadCnt === 0)
|
920
|
+
resolve();
|
921
|
+
}
|
922
|
+
queueLoad(load);
|
923
|
+
});
|
924
|
+
}
|
925
|
+
|
926
|
+
/*
|
927
|
+
* System.register
|
928
|
+
*/
|
929
|
+
RegisterLoader$1.prototype.register = function (key, deps, declare) {
|
930
|
+
var state = this[REGISTER_INTERNAL];
|
931
|
+
|
932
|
+
// anonymous modules get stored as lastAnon
|
933
|
+
if (declare === undefined) {
|
934
|
+
state.lastRegister = [key, deps, undefined];
|
935
|
+
}
|
936
|
+
|
937
|
+
// everything else registers into the register cache
|
938
|
+
else {
|
939
|
+
var load = state.records[key] || createLoadRecord(state, key, undefined);
|
940
|
+
load.registration = [deps, declare, undefined];
|
941
|
+
}
|
942
|
+
};
|
943
|
+
|
944
|
+
/*
|
945
|
+
* System.registerDyanmic
|
946
|
+
*/
|
947
|
+
RegisterLoader$1.prototype.registerDynamic = function (key, deps, executingRequire, execute) {
|
948
|
+
var state = this[REGISTER_INTERNAL];
|
949
|
+
|
950
|
+
// anonymous modules get stored as lastAnon
|
951
|
+
if (typeof key !== 'string') {
|
952
|
+
state.lastRegister = [key, deps, executingRequire];
|
953
|
+
}
|
954
|
+
|
955
|
+
// everything else registers into the register cache
|
956
|
+
else {
|
957
|
+
var load = state.records[key] || createLoadRecord(state, key, undefined);
|
958
|
+
load.registration = [deps, executingRequire, execute];
|
959
|
+
}
|
960
|
+
};
|
961
|
+
|
962
|
+
// ContextualLoader class
|
963
|
+
// backwards-compatible with previous System.register context argument by exposing .id, .key
|
964
|
+
function ContextualLoader (loader, key) {
|
965
|
+
this.loader = loader;
|
966
|
+
this.key = this.id = key;
|
967
|
+
this.meta = {
|
968
|
+
url: key
|
969
|
+
// scriptElement: null
|
970
|
+
};
|
971
|
+
}
|
972
|
+
/*ContextualLoader.prototype.constructor = function () {
|
973
|
+
throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.');
|
974
|
+
};*/
|
975
|
+
ContextualLoader.prototype.import = function (key) {
|
976
|
+
if (this.loader.trace)
|
977
|
+
this.loader.loads[this.key].dynamicDeps.push(key);
|
978
|
+
return this.loader.import(key, this.key);
|
979
|
+
};
|
980
|
+
/*ContextualLoader.prototype.resolve = function (key) {
|
981
|
+
return this.loader.resolve(key, this.key);
|
982
|
+
};*/
|
983
|
+
|
984
|
+
// this is the execution function bound to the Module namespace record
|
985
|
+
function ensureEvaluate (loader, load, link, registry, state, seen) {
|
986
|
+
if (load.module)
|
987
|
+
return load.module;
|
988
|
+
|
989
|
+
if (load.evalError)
|
990
|
+
throw load.evalError;
|
991
|
+
|
992
|
+
if (seen && seen.indexOf(load) !== -1)
|
993
|
+
return load.linkRecord.moduleObj;
|
994
|
+
|
995
|
+
// for ES loads we always run ensureEvaluate on top-level, so empty seen is passed regardless
|
996
|
+
// for dynamic loads, we pass seen if also dynamic
|
997
|
+
var err = doEvaluate(loader, load, link, registry, state, link.setters ? [] : seen || []);
|
998
|
+
if (err)
|
999
|
+
throw err;
|
1000
|
+
|
1001
|
+
return load.module;
|
1002
|
+
}
|
1003
|
+
|
1004
|
+
function makeDynamicRequire (loader, key, dependencies, dependencyInstantiations, registry, state, seen) {
|
1005
|
+
// we can only require from already-known dependencies
|
1006
|
+
return function (name) {
|
1007
|
+
for (var i = 0; i < dependencies.length; i++) {
|
1008
|
+
if (dependencies[i] === name) {
|
1009
|
+
var depLoad = dependencyInstantiations[i];
|
1010
|
+
var module;
|
1011
|
+
|
1012
|
+
if (depLoad instanceof ModuleNamespace)
|
1013
|
+
module = depLoad;
|
1014
|
+
else
|
1015
|
+
module = ensureEvaluate(loader, depLoad, depLoad.linkRecord, registry, state, seen);
|
1016
|
+
|
1017
|
+
return '__useDefault' in module ? module.__useDefault : module;
|
1018
|
+
}
|
1019
|
+
}
|
1020
|
+
throw new Error('Module ' + name + ' not declared as a System.registerDynamic dependency of ' + key);
|
1021
|
+
};
|
1022
|
+
}
|
1023
|
+
|
1024
|
+
// ensures the given es load is evaluated
|
1025
|
+
// returns the error if any
|
1026
|
+
function doEvaluate (loader, load, link, registry, state, seen) {
|
1027
|
+
seen.push(load);
|
1028
|
+
|
1029
|
+
var err;
|
1030
|
+
|
1031
|
+
// es modules evaluate dependencies first
|
1032
|
+
// non es modules explicitly call moduleEvaluate through require
|
1033
|
+
if (link.setters) {
|
1034
|
+
var depLoad, depLink;
|
1035
|
+
for (var i = 0; i < link.dependencies.length; i++) {
|
1036
|
+
depLoad = link.dependencyInstantiations[i];
|
1037
|
+
|
1038
|
+
if (depLoad instanceof ModuleNamespace)
|
1039
|
+
continue;
|
1040
|
+
|
1041
|
+
// custom Module returned from instantiate
|
1042
|
+
depLink = depLoad.linkRecord;
|
1043
|
+
if (depLink && seen.indexOf(depLoad) === -1) {
|
1044
|
+
if (depLoad.evalError)
|
1045
|
+
err = depLoad.evalError;
|
1046
|
+
else
|
1047
|
+
// dynamic / declarative boundaries clear the "seen" list
|
1048
|
+
// we just let cross format circular throw as would happen in real implementations
|
1049
|
+
err = doEvaluate(loader, depLoad, depLink, registry, state, depLink.setters ? seen : []);
|
1050
|
+
}
|
1051
|
+
|
1052
|
+
if (err) {
|
1053
|
+
load.linkRecord = undefined;
|
1054
|
+
load.evalError = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
|
1055
|
+
return load.evalError;
|
1056
|
+
}
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
|
1060
|
+
// link.execute won't exist for Module returns from instantiate on top-level load
|
1061
|
+
if (link.execute) {
|
1062
|
+
// ES System.register execute
|
1063
|
+
// "this" is null in ES
|
1064
|
+
if (link.setters) {
|
1065
|
+
err = declarativeExecute(link.execute);
|
1066
|
+
}
|
1067
|
+
// System.registerDynamic execute
|
1068
|
+
// "this" is "exports" in CJS
|
1069
|
+
else {
|
1070
|
+
var module = { id: load.key };
|
1071
|
+
var moduleObj = link.moduleObj;
|
1072
|
+
Object.defineProperty(module, 'exports', {
|
1073
|
+
configurable: true,
|
1074
|
+
set: function (exports) {
|
1075
|
+
moduleObj.default = moduleObj.__useDefault = exports;
|
1076
|
+
},
|
1077
|
+
get: function () {
|
1078
|
+
return moduleObj.__useDefault;
|
1079
|
+
}
|
1080
|
+
});
|
1081
|
+
|
1082
|
+
var require = makeDynamicRequire(loader, load.key, link.dependencies, link.dependencyInstantiations, registry, state, seen);
|
1083
|
+
|
1084
|
+
// evaluate deps first
|
1085
|
+
if (!link.executingRequire)
|
1086
|
+
for (var i = 0; i < link.dependencies.length; i++)
|
1087
|
+
require(link.dependencies[i]);
|
1088
|
+
|
1089
|
+
err = dynamicExecute(link.execute, require, moduleObj.default, module);
|
1090
|
+
|
1091
|
+
// pick up defineProperty calls to module.exports when we can
|
1092
|
+
if (module.exports !== moduleObj.__useDefault)
|
1093
|
+
moduleObj.default = moduleObj.__useDefault = module.exports;
|
1094
|
+
|
1095
|
+
var moduleDefault = moduleObj.default;
|
1096
|
+
|
1097
|
+
// __esModule flag extension support via lifting
|
1098
|
+
if (moduleDefault && moduleDefault.__esModule) {
|
1099
|
+
for (var p in moduleDefault) {
|
1100
|
+
if (Object.hasOwnProperty.call(moduleDefault, p))
|
1101
|
+
moduleObj[p] = moduleDefault[p];
|
1102
|
+
}
|
1103
|
+
}
|
1104
|
+
}
|
1105
|
+
}
|
1106
|
+
|
1107
|
+
// dispose link record
|
1108
|
+
load.linkRecord = undefined;
|
1109
|
+
|
1110
|
+
if (err)
|
1111
|
+
return load.evalError = LoaderError__Check_error_message_for_loader_stack(err, 'Evaluating ' + load.key);
|
1112
|
+
|
1113
|
+
registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);
|
1114
|
+
|
1115
|
+
// if not an esm module, run importer setters and clear them
|
1116
|
+
// this allows dynamic modules to update themselves into es modules
|
1117
|
+
// as soon as execution has completed
|
1118
|
+
if (!link.setters) {
|
1119
|
+
if (load.importerSetters)
|
1120
|
+
for (var i = 0; i < load.importerSetters.length; i++)
|
1121
|
+
load.importerSetters[i](load.module);
|
1122
|
+
load.importerSetters = undefined;
|
1123
|
+
}
|
1124
|
+
}
|
1125
|
+
|
1126
|
+
// {} is the closest we can get to call(undefined)
|
1127
|
+
var nullContext = {};
|
1128
|
+
if (Object.freeze)
|
1129
|
+
Object.freeze(nullContext);
|
1130
|
+
|
1131
|
+
function declarativeExecute (execute) {
|
1132
|
+
try {
|
1133
|
+
execute.call(nullContext);
|
1134
|
+
}
|
1135
|
+
catch (e) {
|
1136
|
+
return e;
|
1137
|
+
}
|
1138
|
+
}
|
1139
|
+
|
1140
|
+
function dynamicExecute (execute, require, exports, module) {
|
1141
|
+
try {
|
1142
|
+
var output = execute.call(envGlobal, require, exports, module);
|
1143
|
+
if (output !== undefined)
|
1144
|
+
module.exports = output;
|
1145
|
+
}
|
1146
|
+
catch (e) {
|
1147
|
+
return e;
|
1148
|
+
}
|
1149
|
+
}
|
1150
|
+
|
1151
|
+
var resolvedPromise = Promise.resolve();
|
1152
|
+
|
1153
|
+
|
1154
|
+
var emptyModule = new ModuleNamespace({});
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
var hasStringTag;
|
1159
|
+
function isModule (m) {
|
1160
|
+
if (hasStringTag === undefined)
|
1161
|
+
hasStringTag = typeof Symbol !== 'undefined' && !!Symbol.toStringTag;
|
1162
|
+
return m instanceof ModuleNamespace || hasStringTag && Object.prototype.toString.call(m) == '[object Module]';
|
1163
|
+
}
|
1164
|
+
|
1165
|
+
var CONFIG = createSymbol('loader-config');
|
1166
|
+
|
1167
|
+
var PLAIN_RESOLVE = createSymbol('plain-resolve');
|
1168
|
+
var PLAIN_RESOLVE_SYNC = createSymbol('plain-resolve-sync');
|
1169
|
+
|
1170
|
+
var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined';
|
1171
|
+
|
1172
|
+
|
1173
|
+
|
1174
|
+
function checkInstantiateWasm (loader, wasmBuffer, processAnonRegister) {
|
1175
|
+
var bytes = new Uint8Array(wasmBuffer);
|
1176
|
+
|
1177
|
+
// detect by leading bytes
|
1178
|
+
// Can be (new Uint32Array(fetched))[0] === 0x6D736100 when working in Node
|
1179
|
+
if (bytes[0] === 0 && bytes[1] === 97 && bytes[2] === 115) {
|
1180
|
+
return WebAssembly.compile(wasmBuffer).then(function (m) {
|
1181
|
+
var deps = [];
|
1182
|
+
var setters = [];
|
1183
|
+
var importObj = {};
|
1184
|
+
|
1185
|
+
// we can only set imports if supported (eg Safari doesnt support)
|
1186
|
+
if (WebAssembly.Module.imports)
|
1187
|
+
WebAssembly.Module.imports(m).forEach(function (i) {
|
1188
|
+
var key = i.module;
|
1189
|
+
setters.push(function (m) {
|
1190
|
+
importObj[key] = m;
|
1191
|
+
});
|
1192
|
+
if (deps.indexOf(key) === -1)
|
1193
|
+
deps.push(key);
|
1194
|
+
});
|
1195
|
+
loader.register(deps, function (_export) {
|
1196
|
+
return {
|
1197
|
+
setters: setters,
|
1198
|
+
execute: function () {
|
1199
|
+
_export(new WebAssembly.Instance(m, importObj).exports);
|
1200
|
+
}
|
1201
|
+
};
|
1202
|
+
});
|
1203
|
+
processAnonRegister();
|
1204
|
+
|
1205
|
+
return true;
|
1206
|
+
});
|
1207
|
+
}
|
1208
|
+
|
1209
|
+
return Promise.resolve(false);
|
1210
|
+
}
|
1211
|
+
|
1212
|
+
|
1213
|
+
|
1214
|
+
function extend (a, b) {
|
1215
|
+
for (var p in b) {
|
1216
|
+
if (!Object.hasOwnProperty.call(b, p))
|
1217
|
+
continue;
|
1218
|
+
a[p] = b[p];
|
1219
|
+
}
|
1220
|
+
return a;
|
1221
|
+
}
|
1222
|
+
|
1223
|
+
|
1224
|
+
|
1225
|
+
// meta first-level extends where:
|
1226
|
+
// array + array appends
|
1227
|
+
// object + object extends
|
1228
|
+
// other properties replace
|
1229
|
+
|
1230
|
+
|
1231
|
+
var supportsPreload = false;
|
1232
|
+
var supportsPrefetch = false;
|
1233
|
+
if (isBrowser)
|
1234
|
+
(function () {
|
1235
|
+
var relList = document.createElement('link').relList;
|
1236
|
+
if (relList && relList.supports) {
|
1237
|
+
supportsPrefetch = true;
|
1238
|
+
try {
|
1239
|
+
supportsPreload = relList.supports('preload');
|
1240
|
+
}
|
1241
|
+
catch (e) {}
|
1242
|
+
}
|
1243
|
+
})();
|
1244
|
+
|
1245
|
+
function preloadScript (url) {
|
1246
|
+
// fallback to old fashioned image technique which still works in safari
|
1247
|
+
if (!supportsPreload && !supportsPrefetch) {
|
1248
|
+
var preloadImage = new Image();
|
1249
|
+
preloadImage.src = url;
|
1250
|
+
return;
|
1251
|
+
}
|
1252
|
+
|
1253
|
+
var link = document.createElement('link');
|
1254
|
+
if (supportsPreload) {
|
1255
|
+
link.rel = 'preload';
|
1256
|
+
link.as = 'script';
|
1257
|
+
}
|
1258
|
+
else {
|
1259
|
+
// this works for all except Safari (detected by relList.supports lacking)
|
1260
|
+
link.rel = 'prefetch';
|
1261
|
+
}
|
1262
|
+
link.href = url;
|
1263
|
+
document.head.appendChild(link);
|
1264
|
+
}
|
1265
|
+
|
1266
|
+
function workerImport (src, resolve, reject) {
|
1267
|
+
try {
|
1268
|
+
importScripts(src);
|
1269
|
+
}
|
1270
|
+
catch (e) {
|
1271
|
+
reject(e);
|
1272
|
+
}
|
1273
|
+
resolve();
|
1274
|
+
}
|
1275
|
+
|
1276
|
+
if (isBrowser) {
|
1277
|
+
var loadingScripts = [];
|
1278
|
+
var onerror = window.onerror;
|
1279
|
+
window.onerror = function globalOnerror (msg, src) {
|
1280
|
+
for (var i = 0; i < loadingScripts.length; i++) {
|
1281
|
+
if (loadingScripts[i].src !== src)
|
1282
|
+
continue;
|
1283
|
+
loadingScripts[i].err(msg);
|
1284
|
+
return;
|
1285
|
+
}
|
1286
|
+
if (onerror)
|
1287
|
+
onerror.apply(this, arguments);
|
1288
|
+
};
|
1289
|
+
}
|
1290
|
+
|
1291
|
+
function scriptLoad (src, crossOrigin, integrity, resolve, reject) {
|
1292
|
+
// percent encode just "#" for HTTP requests
|
1293
|
+
src = src.replace(/#/g, '%23');
|
1294
|
+
|
1295
|
+
// subresource integrity is not supported in web workers
|
1296
|
+
if (isWorker)
|
1297
|
+
return workerImport(src, resolve, reject);
|
1298
|
+
|
1299
|
+
var script = document.createElement('script');
|
1300
|
+
script.type = 'text/javascript';
|
1301
|
+
script.charset = 'utf-8';
|
1302
|
+
script.async = true;
|
1303
|
+
|
1304
|
+
if (crossOrigin)
|
1305
|
+
script.crossOrigin = crossOrigin;
|
1306
|
+
if (integrity)
|
1307
|
+
script.integrity = integrity;
|
1308
|
+
|
1309
|
+
script.addEventListener('load', load, false);
|
1310
|
+
script.addEventListener('error', error, false);
|
1311
|
+
|
1312
|
+
script.src = src;
|
1313
|
+
document.head.appendChild(script);
|
1314
|
+
|
1315
|
+
function load () {
|
1316
|
+
resolve();
|
1317
|
+
cleanup();
|
1318
|
+
}
|
1319
|
+
|
1320
|
+
// note this does not catch execution errors
|
1321
|
+
function error (err) {
|
1322
|
+
cleanup();
|
1323
|
+
reject(new Error('Fetching ' + src));
|
1324
|
+
}
|
1325
|
+
|
1326
|
+
function cleanup () {
|
1327
|
+
for (var i = 0; i < loadingScripts.length; i++) {
|
1328
|
+
if (loadingScripts[i].err === error) {
|
1329
|
+
loadingScripts.splice(i, 1);
|
1330
|
+
break;
|
1331
|
+
}
|
1332
|
+
}
|
1333
|
+
script.removeEventListener('load', load, false);
|
1334
|
+
script.removeEventListener('error', error, false);
|
1335
|
+
document.head.removeChild(script);
|
1336
|
+
}
|
1337
|
+
}
|
1338
|
+
|
1339
|
+
|
1340
|
+
|
1341
|
+
// separate out paths cache as a baseURL lock process
|
1342
|
+
function applyPaths (baseURL, paths, key) {
|
1343
|
+
var mapMatch = getMapMatch(paths, key);
|
1344
|
+
if (mapMatch) {
|
1345
|
+
var target = paths[mapMatch] + key.substr(mapMatch.length);
|
1346
|
+
|
1347
|
+
var resolved = resolveIfNotPlain(target, baseURI);
|
1348
|
+
if (resolved !== undefined)
|
1349
|
+
return resolved;
|
1350
|
+
|
1351
|
+
return baseURL + target;
|
1352
|
+
}
|
1353
|
+
else if (key.indexOf(':') !== -1) {
|
1354
|
+
return key;
|
1355
|
+
}
|
1356
|
+
else {
|
1357
|
+
return baseURL + key;
|
1358
|
+
}
|
1359
|
+
}
|
1360
|
+
|
1361
|
+
function checkMap (p) {
|
1362
|
+
var name = this.name;
|
1363
|
+
// can add ':' here if we want paths to match the behaviour of map
|
1364
|
+
if (name.substr(0, p.length) === p && (name.length === p.length || name[p.length] === '/' || p[p.length - 1] === '/' || p[p.length - 1] === ':')) {
|
1365
|
+
var curLen = p.split('/').length;
|
1366
|
+
if (curLen > this.len) {
|
1367
|
+
this.match = p;
|
1368
|
+
this.len = curLen;
|
1369
|
+
}
|
1370
|
+
}
|
1371
|
+
}
|
1372
|
+
|
1373
|
+
function getMapMatch (map, name) {
|
1374
|
+
if (Object.hasOwnProperty.call(map, name))
|
1375
|
+
return name;
|
1376
|
+
|
1377
|
+
var bestMatch = {
|
1378
|
+
name: name,
|
1379
|
+
match: undefined,
|
1380
|
+
len: 0
|
1381
|
+
};
|
1382
|
+
|
1383
|
+
Object.keys(map).forEach(checkMap, bestMatch);
|
1384
|
+
|
1385
|
+
return bestMatch.match;
|
1386
|
+
}
|
1387
|
+
|
1388
|
+
// RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339
|
1389
|
+
|
1390
|
+
function SystemJSProductionLoader$1 () {
|
1391
|
+
RegisterLoader$1.call(this);
|
1392
|
+
|
1393
|
+
// internal configuration
|
1394
|
+
this[CONFIG] = {
|
1395
|
+
baseURL: baseURI,
|
1396
|
+
paths: {},
|
1397
|
+
map: {},
|
1398
|
+
submap: {},
|
1399
|
+
bundles: {},
|
1400
|
+
depCache: {},
|
1401
|
+
wasm: false
|
1402
|
+
};
|
1403
|
+
|
1404
|
+
// support the empty module, as a concept
|
1405
|
+
this.registry.set('@empty', emptyModule);
|
1406
|
+
}
|
1407
|
+
|
1408
|
+
SystemJSProductionLoader$1.plainResolve = PLAIN_RESOLVE;
|
1409
|
+
SystemJSProductionLoader$1.plainResolveSync = PLAIN_RESOLVE_SYNC;
|
1410
|
+
|
1411
|
+
var systemJSPrototype = SystemJSProductionLoader$1.prototype = Object.create(RegisterLoader$1.prototype);
|
1412
|
+
|
1413
|
+
systemJSPrototype.constructor = SystemJSProductionLoader$1;
|
1414
|
+
|
1415
|
+
systemJSPrototype[SystemJSProductionLoader$1.resolve = RegisterLoader$1.resolve] = function (key, parentKey) {
|
1416
|
+
var resolved = resolveIfNotPlain(key, parentKey || baseURI);
|
1417
|
+
if (resolved !== undefined)
|
1418
|
+
return Promise.resolve(resolved);
|
1419
|
+
|
1420
|
+
// plain resolution
|
1421
|
+
var loader = this;
|
1422
|
+
return resolvedPromise
|
1423
|
+
.then(function () {
|
1424
|
+
return loader[PLAIN_RESOLVE](key, parentKey);
|
1425
|
+
})
|
1426
|
+
.then(function (resolved) {
|
1427
|
+
resolved = resolved || key;
|
1428
|
+
// if in the registry then we are done
|
1429
|
+
if (loader.registry.has(resolved))
|
1430
|
+
return resolved;
|
1431
|
+
|
1432
|
+
// then apply paths
|
1433
|
+
// baseURL is fallback
|
1434
|
+
var config = loader[CONFIG];
|
1435
|
+
return applyPaths(config.baseURL, config.paths, resolved);
|
1436
|
+
});
|
1437
|
+
};
|
1438
|
+
|
1439
|
+
systemJSPrototype.newModule = function (bindings) {
|
1440
|
+
return new ModuleNamespace(bindings);
|
1441
|
+
};
|
1442
|
+
|
1443
|
+
systemJSPrototype.isModule = isModule;
|
1444
|
+
|
1445
|
+
systemJSPrototype.resolveSync = function (key, parentKey) {
|
1446
|
+
var resolved = resolveIfNotPlain(key, parentKey || baseURI);
|
1447
|
+
if (resolved !== undefined)
|
1448
|
+
return resolved;
|
1449
|
+
|
1450
|
+
// plain resolution
|
1451
|
+
resolved = this[PLAIN_RESOLVE_SYNC](key, parentKey) || key;
|
1452
|
+
|
1453
|
+
if (this.registry.has(resolved))
|
1454
|
+
return resolved;
|
1455
|
+
|
1456
|
+
// then apply paths
|
1457
|
+
var config = this[CONFIG];
|
1458
|
+
return applyPaths(config.baseURL, config.paths, resolved);
|
1459
|
+
};
|
1460
|
+
|
1461
|
+
systemJSPrototype.import = function () {
|
1462
|
+
return RegisterLoader$1.prototype.import.apply(this, arguments)
|
1463
|
+
.then(function (m) {
|
1464
|
+
return '__useDefault' in m ? m.__useDefault : m;
|
1465
|
+
});
|
1466
|
+
};
|
1467
|
+
|
1468
|
+
systemJSPrototype[PLAIN_RESOLVE] = systemJSPrototype[PLAIN_RESOLVE_SYNC] = plainResolve;
|
1469
|
+
|
1470
|
+
systemJSPrototype[SystemJSProductionLoader$1.instantiate = RegisterLoader$1.instantiate] = coreInstantiate;
|
1471
|
+
|
1472
|
+
systemJSPrototype.config = function (cfg) {
|
1473
|
+
var config = this[CONFIG];
|
1474
|
+
|
1475
|
+
if (cfg.baseURL) {
|
1476
|
+
config.baseURL = resolveIfNotPlain(cfg.baseURL, baseURI) || resolveIfNotPlain('./' + cfg.baseURL, baseURI);
|
1477
|
+
if (config.baseURL[config.baseURL.length - 1] !== '/')
|
1478
|
+
config.baseURL += '/';
|
1479
|
+
}
|
1480
|
+
|
1481
|
+
if (cfg.paths)
|
1482
|
+
extend(config.paths, cfg.paths);
|
1483
|
+
|
1484
|
+
if (cfg.map) {
|
1485
|
+
var val = cfg.map;
|
1486
|
+
for (var p in val) {
|
1487
|
+
if (!Object.hasOwnProperty.call(val, p))
|
1488
|
+
continue;
|
1489
|
+
|
1490
|
+
var v = val[p];
|
1491
|
+
|
1492
|
+
if (typeof v === 'string') {
|
1493
|
+
config.map[p] = v;
|
1494
|
+
}
|
1495
|
+
|
1496
|
+
// object submap
|
1497
|
+
else {
|
1498
|
+
// normalize parent with URL and paths only
|
1499
|
+
var resolvedParent = resolveIfNotPlain(p, baseURI) || applyPaths(config.baseURL, config.paths, p);
|
1500
|
+
extend(config.submap[resolvedParent] || (config.submap[resolvedParent] = {}), v);
|
1501
|
+
}
|
1502
|
+
}
|
1503
|
+
}
|
1504
|
+
|
1505
|
+
for (var p in cfg) {
|
1506
|
+
if (!Object.hasOwnProperty.call(cfg, p))
|
1507
|
+
continue;
|
1508
|
+
|
1509
|
+
var val = cfg[p];
|
1510
|
+
|
1511
|
+
switch (p) {
|
1512
|
+
case 'baseURL':
|
1513
|
+
case 'paths':
|
1514
|
+
case 'map':
|
1515
|
+
break;
|
1516
|
+
|
1517
|
+
case 'bundles':
|
1518
|
+
for (var p in val) {
|
1519
|
+
if (!Object.hasOwnProperty.call(val, p))
|
1520
|
+
continue;
|
1521
|
+
var v = val[p];
|
1522
|
+
for (var i = 0; i < v.length; i++)
|
1523
|
+
config.bundles[this.resolveSync(v[i], undefined)] = p;
|
1524
|
+
}
|
1525
|
+
break;
|
1526
|
+
|
1527
|
+
case 'depCache':
|
1528
|
+
for (var p in val) {
|
1529
|
+
if (!Object.hasOwnProperty.call(val, p))
|
1530
|
+
continue;
|
1531
|
+
var resolvedParent = this.resolveSync(p, undefined);
|
1532
|
+
config.depCache[resolvedParent] = (config.depCache[resolvedParent] || []).concat(val[p]);
|
1533
|
+
}
|
1534
|
+
break;
|
1535
|
+
|
1536
|
+
case 'wasm':
|
1537
|
+
config.wasm = typeof WebAssembly !== 'undefined' && !!val;
|
1538
|
+
break;
|
1539
|
+
|
1540
|
+
default:
|
1541
|
+
throw new TypeError('The SystemJS production build does not support the "' + p + '" configuration option.');
|
1542
|
+
}
|
1543
|
+
}
|
1544
|
+
};
|
1545
|
+
|
1546
|
+
// getConfig configuration cloning
|
1547
|
+
systemJSPrototype.getConfig = function (name) {
|
1548
|
+
var config = this[CONFIG];
|
1549
|
+
|
1550
|
+
var map = {};
|
1551
|
+
extend(map, config.map);
|
1552
|
+
for (var p in config.submap) {
|
1553
|
+
if (!Object.hasOwnProperty.call(config.submap, p))
|
1554
|
+
continue;
|
1555
|
+
map[p] = extend({}, config.submap[p]);
|
1556
|
+
}
|
1557
|
+
|
1558
|
+
var depCache = {};
|
1559
|
+
for (var p in config.depCache) {
|
1560
|
+
if (!Object.hasOwnProperty.call(config.depCache, p))
|
1561
|
+
continue;
|
1562
|
+
depCache[p] = [].concat(config.depCache[p]);
|
1563
|
+
}
|
1564
|
+
|
1565
|
+
var bundles = {};
|
1566
|
+
for (var p in config.bundles) {
|
1567
|
+
if (!Object.hasOwnProperty.call(config.bundles, p))
|
1568
|
+
continue;
|
1569
|
+
bundles[p] = [].concat(config.bundles[p]);
|
1570
|
+
}
|
1571
|
+
|
1572
|
+
return {
|
1573
|
+
baseURL: config.baseURL,
|
1574
|
+
paths: extend({}, config.paths),
|
1575
|
+
depCache: depCache,
|
1576
|
+
bundles: bundles,
|
1577
|
+
map: map,
|
1578
|
+
wasm: config.wasm
|
1579
|
+
};
|
1580
|
+
};
|
1581
|
+
|
1582
|
+
// ensure System.register and System.registerDynamic decanonicalize
|
1583
|
+
systemJSPrototype.register = function (key, deps, declare) {
|
1584
|
+
if (typeof key === 'string')
|
1585
|
+
key = this.resolveSync(key, undefined);
|
1586
|
+
return RegisterLoader$1.prototype.register.call(this, key, deps, declare);
|
1587
|
+
};
|
1588
|
+
|
1589
|
+
systemJSPrototype.registerDynamic = function (key, deps, executingRequire, execute) {
|
1590
|
+
if (typeof key === 'string')
|
1591
|
+
key = this.resolveSync(key, undefined);
|
1592
|
+
return RegisterLoader$1.prototype.registerDynamic.call(this, key, deps, executingRequire, execute);
|
1593
|
+
};
|
1594
|
+
|
1595
|
+
function plainResolve (key, parentKey) {
|
1596
|
+
var config = this[CONFIG];
|
1597
|
+
|
1598
|
+
// Apply contextual submap
|
1599
|
+
if (parentKey) {
|
1600
|
+
var parent = getMapMatch(config.submap, parentKey);
|
1601
|
+
var submap = config.submap[parent];
|
1602
|
+
var mapMatch = submap && getMapMatch(submap, key);
|
1603
|
+
|
1604
|
+
if (mapMatch) {
|
1605
|
+
var target = submap[mapMatch] + key.substr(mapMatch.length);
|
1606
|
+
return resolveIfNotPlain(target, parent) || target;
|
1607
|
+
}
|
1608
|
+
}
|
1609
|
+
|
1610
|
+
// Apply global map
|
1611
|
+
var map = config.map;
|
1612
|
+
var mapMatch = getMapMatch(map, key);
|
1613
|
+
|
1614
|
+
if (mapMatch) {
|
1615
|
+
var target = map[mapMatch] + key.substr(mapMatch.length);
|
1616
|
+
return resolveIfNotPlain(target, parentKey || config.baseURL) || target;
|
1617
|
+
}
|
1618
|
+
}
|
1619
|
+
|
1620
|
+
function doScriptLoad (url, processAnonRegister) {
|
1621
|
+
return new Promise(function (resolve, reject) {
|
1622
|
+
return scriptLoad(url, 'anonymous', undefined, function () {
|
1623
|
+
processAnonRegister();
|
1624
|
+
resolve();
|
1625
|
+
}, reject);
|
1626
|
+
});
|
1627
|
+
}
|
1628
|
+
|
1629
|
+
var loadedBundles = {};
|
1630
|
+
function coreInstantiate (key, processAnonRegister) {
|
1631
|
+
var config = this[CONFIG];
|
1632
|
+
|
1633
|
+
var wasm = config.wasm;
|
1634
|
+
|
1635
|
+
var bundle = config.bundles[key];
|
1636
|
+
if (bundle) {
|
1637
|
+
var loader = this;
|
1638
|
+
var bundleUrl = loader.resolveSync(bundle, undefined);
|
1639
|
+
if (loader.registry.has(bundleUrl))
|
1640
|
+
return;
|
1641
|
+
return loadedBundles[bundleUrl] || (loadedBundles[bundleUrl] = doScriptLoad(bundleUrl, processAnonRegister).then(function () {
|
1642
|
+
// bundle treated itself as an empty module
|
1643
|
+
// this means we can reload bundles by deleting from the registry
|
1644
|
+
if (!loader.registry.has(bundleUrl))
|
1645
|
+
loader.registry.set(bundleUrl, loader.newModule({}));
|
1646
|
+
delete loadedBundles[bundleUrl];
|
1647
|
+
}));
|
1648
|
+
}
|
1649
|
+
|
1650
|
+
var depCache = config.depCache[key];
|
1651
|
+
if (depCache) {
|
1652
|
+
var preloadFn = wasm ? fetch : preloadScript;
|
1653
|
+
for (var i = 0; i < depCache.length; i++)
|
1654
|
+
this.resolve(depCache[i], key).then(preloadFn);
|
1655
|
+
}
|
1656
|
+
|
1657
|
+
if (wasm) {
|
1658
|
+
var loader = this;
|
1659
|
+
return fetch(key)
|
1660
|
+
.then(function(res) {
|
1661
|
+
if (res.ok)
|
1662
|
+
return res.arrayBuffer();
|
1663
|
+
else
|
1664
|
+
throw new Error('Fetch error: ' + res.status + ' ' + res.statusText);
|
1665
|
+
})
|
1666
|
+
.then(function (fetched) {
|
1667
|
+
return checkInstantiateWasm(loader, fetched, processAnonRegister)
|
1668
|
+
.then(function (wasmInstantiated) {
|
1669
|
+
if (wasmInstantiated)
|
1670
|
+
return;
|
1671
|
+
// not wasm -> convert buffer into utf-8 string to execute as a module
|
1672
|
+
// TextDecoder compatibility matches WASM currently. Need to keep checking this.
|
1673
|
+
// The TextDecoder interface is documented at http://encoding.spec.whatwg.org/#interface-textdecoder
|
1674
|
+
var source = new TextDecoder('utf-8').decode(new Uint8Array(fetched));
|
1675
|
+
(0, eval)(source + '\n//# sourceURL=' + key);
|
1676
|
+
processAnonRegister();
|
1677
|
+
});
|
1678
|
+
});
|
1679
|
+
}
|
1680
|
+
|
1681
|
+
return doScriptLoad(key, processAnonRegister);
|
1682
|
+
}
|
1683
|
+
|
1684
|
+
SystemJSProductionLoader$1.prototype.version = "0.20.19 Production";
|
1685
|
+
|
1686
|
+
var System = new SystemJSProductionLoader$1();
|
1687
|
+
|
1688
|
+
// only set the global System on the global in browsers
|
1689
|
+
if (isBrowser || isWorker) {
|
1690
|
+
envGlobal.SystemJS = System;
|
1691
|
+
|
1692
|
+
// dont override an existing System global
|
1693
|
+
if (!envGlobal.System) {
|
1694
|
+
envGlobal.System = System;
|
1695
|
+
}
|
1696
|
+
// rather just extend or set a System.register on the existing System global
|
1697
|
+
else {
|
1698
|
+
var register = envGlobal.System.register;
|
1699
|
+
envGlobal.System.register = function () {
|
1700
|
+
if (register)
|
1701
|
+
register.apply(this, arguments);
|
1702
|
+
System.register.apply(System, arguments);
|
1703
|
+
};
|
1704
|
+
}
|
1705
|
+
}
|
1706
|
+
|
1707
|
+
if (typeof module !== 'undefined' && module.exports)
|
1708
|
+
module.exports = System;
|
1709
|
+
|
1710
|
+
}());
|
1711
|
+
//# sourceMappingURL=system-production.src.js.map
|