wabur 0.4.0d1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +20 -66
  3. data/bin/wabur +48 -11
  4. data/export/assets/css/wab.css +2 -0
  5. data/export/assets/css/wab.css.map +7 -0
  6. data/export/assets/fonts/wabfont/README +18 -0
  7. data/export/assets/fonts/wabfont/fonts/WAB.eot +0 -0
  8. data/export/assets/fonts/wabfont/fonts/WAB.svg +25 -0
  9. data/export/assets/fonts/wabfont/fonts/WAB.ttf +0 -0
  10. data/export/assets/fonts/wabfont/fonts/WAB.woff +0 -0
  11. data/export/assets/fonts/wabfont/selection.json +460 -0
  12. data/export/assets/fonts/wabfont/style.css +74 -0
  13. data/export/assets/js/transpile.js +8 -0
  14. data/export/assets/js/ui.js +377 -0
  15. data/export/assets/js/vendor/plugin-babel/babel-helpers.js +558 -0
  16. data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGenerator.js +112 -0
  17. data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncGeneratorDelegate.js +51 -0
  18. data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncIterator.js +14 -0
  19. data/export/assets/js/vendor/plugin-babel/babel-helpers/asyncToGenerator.js +28 -0
  20. data/export/assets/js/vendor/plugin-babel/babel-helpers/classCallCheck.js +5 -0
  21. data/export/assets/js/vendor/plugin-babel/babel-helpers/createClass.js +17 -0
  22. data/export/assets/js/vendor/plugin-babel/babel-helpers/defaults.js +14 -0
  23. data/export/assets/js/vendor/plugin-babel/babel-helpers/defineEnumerableProperties.js +10 -0
  24. data/export/assets/js/vendor/plugin-babel/babel-helpers/defineProperty.js +14 -0
  25. data/export/assets/js/vendor/plugin-babel/babel-helpers/extends.js +13 -0
  26. data/export/assets/js/vendor/plugin-babel/babel-helpers/get.js +24 -0
  27. data/export/assets/js/vendor/plugin-babel/babel-helpers/inherits.js +15 -0
  28. data/export/assets/js/vendor/plugin-babel/babel-helpers/instanceof.js +7 -0
  29. data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireDefault.js +5 -0
  30. data/export/assets/js/vendor/plugin-babel/babel-helpers/interopRequireWildcard.js +16 -0
  31. data/export/assets/js/vendor/plugin-babel/babel-helpers/jsx.js +42 -0
  32. data/export/assets/js/vendor/plugin-babel/babel-helpers/newArrowCheck.js +5 -0
  33. data/export/assets/js/vendor/plugin-babel/babel-helpers/objectDestructuringEmpty.js +3 -0
  34. data/export/assets/js/vendor/plugin-babel/babel-helpers/objectWithoutProperties.js +11 -0
  35. data/export/assets/js/vendor/plugin-babel/babel-helpers/possibleConstructorReturn.js +7 -0
  36. data/export/assets/js/vendor/plugin-babel/babel-helpers/selfGlobal.js +1 -0
  37. data/export/assets/js/vendor/plugin-babel/babel-helpers/set.js +21 -0
  38. data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArray.js +37 -0
  39. data/export/assets/js/vendor/plugin-babel/babel-helpers/slicedToArrayLoose.js +17 -0
  40. data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteral.js +7 -0
  41. data/export/assets/js/vendor/plugin-babel/babel-helpers/taggedTemplateLiteralLoose.js +4 -0
  42. data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalRef.js +7 -0
  43. data/export/assets/js/vendor/plugin-babel/babel-helpers/temporalUndefined.js +1 -0
  44. data/export/assets/js/vendor/plugin-babel/babel-helpers/toArray.js +3 -0
  45. data/export/assets/js/vendor/plugin-babel/babel-helpers/toConsumableArray.js +9 -0
  46. data/export/assets/js/vendor/plugin-babel/babel-helpers/typeof.js +5 -0
  47. data/export/assets/js/vendor/plugin-babel/plugin-babel.js +222 -0
  48. data/export/assets/js/vendor/plugin-babel/regenerator-runtime.js +685 -0
  49. data/export/assets/js/vendor/plugin-babel/systemjs-babel-browser.js +1 -0
  50. data/export/assets/js/vendor/plugin-babel/systemjs-babel-node.js +55086 -0
  51. data/export/assets/js/vendor/systemjs/system-production.js +4 -0
  52. data/export/assets/js/vendor/systemjs/system-production.js.map +1 -0
  53. data/export/assets/js/vendor/systemjs/system-production.src.js +1711 -0
  54. data/export/assets/js/vendor/systemjs/system-production.src.js.map +1 -0
  55. data/export/assets/js/vendor/systemjs/system.js +4 -0
  56. data/export/assets/js/vendor/systemjs/system.js.map +1 -0
  57. data/export/assets/js/vendor/systemjs/system.src.js +4000 -0
  58. data/export/assets/js/vendor/systemjs/system.src.js.map +1 -0
  59. data/export/assets/js/wab.js +109 -0
  60. data/export/index.html +41 -0
  61. data/lib/wab.rb +13 -0
  62. data/lib/wab/controller.rb +2 -2
  63. data/lib/wab/errors.rb +12 -0
  64. data/lib/wab/impl.rb +2 -0
  65. data/lib/wab/impl/configuration.rb +24 -6
  66. data/lib/wab/impl/export_proxy.rb +39 -0
  67. data/lib/wab/impl/exprs/regex.rb +1 -1
  68. data/lib/wab/impl/handler.rb +14 -14
  69. data/lib/wab/impl/init.rb +108 -0
  70. data/lib/wab/impl/model.rb +4 -3
  71. data/lib/wab/impl/shell.rb +14 -4
  72. data/lib/wab/impl/templates/opo-rub.conf.template +253 -0
  73. data/lib/wab/impl/templates/opo.conf.template +224 -0
  74. data/lib/wab/impl/templates/spawn.rb.template +42 -0
  75. data/lib/wab/impl/templates/ui_controller.rb.template +12 -0
  76. data/lib/wab/impl/templates/wabur.conf.template +40 -0
  77. data/lib/wab/ui.rb +19 -0
  78. data/lib/wab/ui/create.rb +26 -0
  79. data/lib/wab/ui/display.rb +34 -0
  80. data/lib/wab/ui/flow.rb +54 -0
  81. data/lib/wab/ui/list.rb +59 -0
  82. data/lib/wab/ui/multi_flow.rb +23 -0
  83. data/lib/wab/ui/rest_flow.rb +89 -0
  84. data/lib/wab/ui/update.rb +27 -0
  85. data/lib/wab/ui/view.rb +62 -0
  86. data/lib/wab/utils.rb +4 -4
  87. data/lib/wab/version.rb +1 -1
  88. data/pages/Architecture.md +104 -1
  89. data/test/test_configuration.rb +1 -1
  90. data/test/test_impl.rb +1 -0
  91. data/test/test_init.rb +33 -0
  92. metadata +94 -7
  93. 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