sequenceserver 2.0.0.rc8 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sequenceserver might be problematic. Click here for more details.

Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/bin/sequenceserver +22 -30
  3. data/lib/sequenceserver/api_errors.rb +5 -1
  4. data/lib/sequenceserver/blast/constants.rb +1 -1
  5. data/lib/sequenceserver/blast/hit.rb +5 -16
  6. data/lib/sequenceserver/blast/job.rb +9 -18
  7. data/lib/sequenceserver/blast/report.rb +5 -3
  8. data/lib/sequenceserver/config.rb +4 -1
  9. data/lib/sequenceserver/database.rb +69 -9
  10. data/lib/sequenceserver/job.rb +1 -1
  11. data/lib/sequenceserver/makeblastdb.rb +40 -45
  12. data/lib/sequenceserver/routes.rb +4 -0
  13. data/lib/sequenceserver/version.rb +1 -1
  14. data/lib/sequenceserver.rb +15 -11
  15. data/public/config.js +143 -142
  16. data/public/css/fonts.css +23 -22
  17. data/public/css/grapher.css +598 -594
  18. data/public/css/sequenceserver.css +86 -24
  19. data/public/css/sequenceserver.min.css +2 -2
  20. data/public/js/alignment_exporter.js +14 -14
  21. data/public/js/databases_tree.js +215 -0
  22. data/public/js/download_fasta.js +1 -1
  23. data/public/js/hit.js +6 -2
  24. data/public/js/hits_overview.js +1 -1
  25. data/public/js/length_distribution.js +5 -5
  26. data/public/js/query.js +4 -7
  27. data/public/js/report.js +12 -24
  28. data/public/js/search.js +21 -2
  29. data/public/js/sidebar.js +4 -4
  30. data/public/js/svgExporter.js +12 -12
  31. data/public/js/visualisation_helpers.js +4 -5
  32. data/public/sequenceserver-report.min.js +11 -11
  33. data/public/sequenceserver-search.min.js +15 -11
  34. data/public/vendor/github/vakata/jstree@3.3.8/LICENSE-MIT +22 -0
  35. data/public/vendor/github/vakata/jstree@3.3.8/README.md +663 -0
  36. data/public/vendor/github/vakata/jstree@3.3.8/bower.json +33 -0
  37. data/public/vendor/github/vakata/jstree@3.3.8/component.json +28 -0
  38. data/public/vendor/github/vakata/jstree@3.3.8/composer.json +46 -0
  39. data/public/vendor/github/vakata/jstree@3.3.8/demo/README.md +2 -0
  40. data/public/vendor/github/vakata/jstree@3.3.8/demo/basic/index.html +146 -0
  41. data/public/vendor/github/vakata/jstree@3.3.8/demo/basic/root.json +1 -0
  42. data/public/vendor/github/vakata/jstree@3.3.8/dist/jstree.js +8612 -0
  43. data/public/vendor/github/vakata/jstree@3.3.8/dist/jstree.min.js +6 -0
  44. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/32px.png +0 -0
  45. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/40px.png +0 -0
  46. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/style.css +1102 -0
  47. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/style.min.css +1 -0
  48. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default/throbber.gif +0 -0
  49. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/32px.png +0 -0
  50. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/40px.png +0 -0
  51. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/style.css +1146 -0
  52. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/style.min.css +1 -0
  53. data/public/vendor/github/vakata/jstree@3.3.8/dist/themes/default-dark/throbber.gif +0 -0
  54. data/public/vendor/github/vakata/jstree@3.3.8/gruntfile.js +242 -0
  55. data/public/vendor/github/vakata/jstree@3.3.8/jstree.jquery.json +28 -0
  56. data/public/vendor/github/vakata/jstree@3.3.8/package.json +58 -0
  57. data/public/vendor/github/vakata/jstree@3.3.8/src/intro.js +14 -0
  58. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.changed.js +69 -0
  59. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.checkbox.js +976 -0
  60. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.conditionalselect.js +38 -0
  61. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.contextmenu.js +661 -0
  62. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.dnd.js +669 -0
  63. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.js +4931 -0
  64. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.massload.js +137 -0
  65. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.search.js +421 -0
  66. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.sort.js +74 -0
  67. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.state.js +138 -0
  68. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.types.js +372 -0
  69. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.unique.js +164 -0
  70. data/public/vendor/github/vakata/jstree@3.3.8/src/jstree.wholerow.js +122 -0
  71. data/public/vendor/github/vakata/jstree@3.3.8/src/misc.js +656 -0
  72. data/public/vendor/github/vakata/jstree@3.3.8/src/outro.js +1 -0
  73. data/public/vendor/github/vakata/jstree@3.3.8/src/sample.js +93 -0
  74. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/base.less +93 -0
  75. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/32px.png +0 -0
  76. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/40px.png +0 -0
  77. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/style.css +1102 -0
  78. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/style.less +22 -0
  79. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default/throbber.gif +0 -0
  80. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/32px.png +0 -0
  81. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/40px.png +0 -0
  82. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/style.css +1146 -0
  83. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/style.less +50 -0
  84. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/default-dark/throbber.gif +0 -0
  85. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/main.less +77 -0
  86. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/mixins.less +104 -0
  87. data/public/vendor/github/vakata/jstree@3.3.8/src/themes/responsive.less +67 -0
  88. data/public/vendor/github/vakata/jstree@3.3.8/src/vakata-jstree.js +38 -0
  89. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/index.html +16 -0
  90. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/libs/qunit.css +244 -0
  91. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/libs/qunit.js +2212 -0
  92. data/public/vendor/github/vakata/jstree@3.3.8/test/unit/test.js +11 -0
  93. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/desktop/index.html +44 -0
  94. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/mobile/index.html +42 -0
  95. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/desktop/desktop.png +0 -0
  96. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/desktop/home.png +0 -0
  97. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/mobile/home.png +0 -0
  98. data/public/vendor/github/vakata/jstree@3.3.8/test/visual/screenshots/mobile/mobile.png +0 -0
  99. data/public/vendor/github/vakata/jstree@3.3.8.js +3 -0
  100. data/public/vendor/system-csp-production.js +3 -3
  101. data/public/vendor/system-csp-production.js.map +1 -1
  102. data/public/vendor/system-csp-production.src.js +146 -140
  103. data/public/vendor/system-polyfills.js.map +1 -1
  104. data/public/vendor/system-polyfills.src.js +1 -0
  105. data/public/vendor/system.js +3 -3
  106. data/public/vendor/system.js.map +1 -1
  107. data/public/vendor/system.src.js +4771 -2383
  108. data/views/_options.erb +21 -0
  109. data/views/layout.erb +17 -18
  110. metadata +102 -43
  111. data/bin/chromedriver +0 -0
  112. data/bin/geckodriver +0 -0
  113. data/public/shims/form-core.js +0 -3
  114. data/public/shims/form-validation.js +0 -3
  115. data/public/shims/plugins/jquery.ui.position.js +0 -13
  116. data/public/shims/styles/shim.css +0 -1
@@ -1,5 +1,5 @@
1
1
  /*
2
- * SystemJS v0.19.29
2
+ * SystemJS v0.19.46
3
3
  */
4
4
  (function() {
5
5
  function bootstrap() {// from https://gist.github.com/Yaffle/1088850
@@ -7,7 +7,7 @@ function bootstrap() {// from https://gist.github.com/Yaffle/1088850
7
7
  function URLPolyfill(url, baseURL) {
8
8
  if (typeof url != 'string')
9
9
  throw new TypeError('URL must be a string');
10
- var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
10
+ var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
11
11
  if (!m)
12
12
  throw new RangeError('Invalid URL format');
13
13
  var protocol = m[1] || "";
@@ -49,9 +49,8 @@ function URLPolyfill(url, baseURL) {
49
49
  protocol = base.protocol;
50
50
  }
51
51
 
52
- // convert windows file URLs to use /
53
- if (protocol == 'file:')
54
- pathname = pathname.replace(/\\/g, '/');
52
+ // convert URLs to use / always
53
+ pathname = pathname.replace(/\\/g, '/');
55
54
 
56
55
  this.origin = host ? protocol + (protocol !== "" || host !== "" ? "//" : "") + host : "";
57
56
  this.href = protocol + (protocol && host || protocol == "file:" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash;
@@ -66,7 +65,8 @@ function URLPolyfill(url, baseURL) {
66
65
  this.hash = hash;
67
66
  }
68
67
  global.URLPolyfill = URLPolyfill;
69
- })(typeof self != 'undefined' ? self : global);(function(__global) {
68
+ })(typeof self != 'undefined' ? self : global);
69
+ (function(__global) {
70
70
 
71
71
  var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined';
72
72
  var isBrowser = typeof window != 'undefined' && typeof document != 'undefined';
@@ -84,7 +84,7 @@ global.URLPolyfill = URLPolyfill;
84
84
  }
85
85
  return -1;
86
86
  };
87
-
87
+
88
88
  var defineProperty;
89
89
  (function () {
90
90
  try {
@@ -106,7 +106,7 @@ global.URLPolyfill = URLPolyfill;
106
106
  function addToError(err, msg) {
107
107
  // parse the stack removing loader code lines for simplification
108
108
  if (!err.originalErr) {
109
- var stack = (err.stack || err.message || err).toString().split('\n');
109
+ var stack = ((err.message || err) + (err.stack ? '\n' + err.stack : '')).toString().split('\n');
110
110
  var newStack = [];
111
111
  for (var i = 0; i < stack.length; i++) {
112
112
  if (typeof $__curScript == 'undefined' || stack[i].indexOf($__curScript.src) == -1)
@@ -121,14 +121,9 @@ global.URLPolyfill = URLPolyfill;
121
121
  newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, '');
122
122
 
123
123
  var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg);
124
-
125
- // Node needs stack adjustment for throw to show message
126
- if (!isBrowser)
127
- newErr.stack = newMsg;
128
- // Clearing the stack stops unnecessary loader lines showing
129
- else
130
- newErr.stack = null;
131
-
124
+
125
+ newErr.stack = newMsg;
126
+
132
127
  // track the original error
133
128
  newErr.originalErr = err.originalErr || err;
134
129
 
@@ -437,7 +432,7 @@ function logloads(loads) {
437
432
  .then(function(instantiateResult) {
438
433
  if (instantiateResult === undefined)
439
434
  throw new TypeError('Declarative modules unsupported in the polyfill.');
440
-
435
+
441
436
  if (typeof instantiateResult != 'object')
442
437
  throw new TypeError('Invalid instantiate return value');
443
438
 
@@ -484,8 +479,6 @@ function logloads(loads) {
484
479
  // console.log('LoadSucceeded ' + load.name);
485
480
  // snapshot(loader);
486
481
 
487
- console.assert(load.status == 'loading', 'is loading');
488
-
489
482
  load.status = 'loaded';
490
483
 
491
484
  var linkSets = load.linkSets.concat([]);
@@ -502,8 +495,6 @@ function logloads(loads) {
502
495
  for (var i = 0, l = linkSets.length; i < l; i++) {
503
496
  linkSetFailed(linkSets[i], load, exc);
504
497
  }
505
-
506
- console.assert(load.linkSets.length == 0, 'linkSets not removed');
507
498
  });
508
499
  }
509
500
 
@@ -556,7 +547,6 @@ function logloads(loads) {
556
547
  proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress));
557
548
 
558
549
  else {
559
- console.assert(step == 'translate', 'translate step');
560
550
  load.address = stepState.moduleAddress;
561
551
  proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource));
562
552
  }
@@ -644,9 +634,6 @@ function logloads(loads) {
644
634
  function updateLinkSetOnLoad(linkSet, load) {
645
635
  // console.log('update linkset on load ' + load.name);
646
636
  // snapshot(linkSet.loader);
647
-
648
- console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked');
649
-
650
637
  linkSet.loadingCount--;
651
638
 
652
639
  if (linkSet.loadingCount > 0)
@@ -679,8 +666,6 @@ function logloads(loads) {
679
666
  if (abrupt)
680
667
  return;
681
668
 
682
- console.assert(linkSet.loads.length == 0, 'loads cleared');
683
-
684
669
  linkSet.resolve(startingLoad);
685
670
  }
686
671
 
@@ -689,7 +674,7 @@ function logloads(loads) {
689
674
  var loader = linkSet.loader;
690
675
  var requests;
691
676
 
692
- checkError:
677
+ checkError:
693
678
  if (load) {
694
679
  if (linkSet.loads[0].name == load.name) {
695
680
  exc = addToError(exc, 'Error loading ' + load.name);
@@ -723,7 +708,6 @@ function logloads(loads) {
723
708
  loader.loaderObj.failed.push(load);
724
709
 
725
710
  var linkIndex = indexOf.call(load.linkSets, linkSet);
726
- console.assert(linkIndex != -1, 'link not present');
727
711
  load.linkSets.splice(linkIndex, 1);
728
712
  if (load.linkSets.length == 0) {
729
713
  var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load);
@@ -755,7 +739,6 @@ function logloads(loads) {
755
739
  }
756
740
  // if not anonymous, add to the module table
757
741
  if (load.name) {
758
- console.assert(!loader.modules[load.name] || loader.modules[load.name].module === load.module.module, 'load not in module table');
759
742
  loader.modules[load.name] = load.module;
760
743
  }
761
744
  var loadIndex = indexOf.call(loader.loads, load);
@@ -985,7 +968,6 @@ function logloads(loads) {
985
968
  })();
986
969
 
987
970
  var System;
988
-
989
971
  // SystemJS Loader Class and Extension helpers
990
972
  function SystemJSLoader() {
991
973
  Loader.call(this);
@@ -1029,7 +1011,7 @@ function urlResolve(name, parent) {
1029
1011
  // url resolution shortpaths
1030
1012
  if (name[0] == '.') {
1031
1013
  // dot-relative url normalization
1032
- if (name[1] == '/')
1014
+ if (name[1] == '/' && name[2] != '.')
1033
1015
  return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2);
1034
1016
  }
1035
1017
  else if (name[0] != '/' && name.indexOf(':') == -1) {
@@ -1062,7 +1044,7 @@ function applyPaths(loader, name) {
1062
1044
  if (p.indexOf('*') === -1) {
1063
1045
  if (name == p)
1064
1046
  return paths[p];
1065
-
1047
+
1066
1048
  // support trailing / in paths rules
1067
1049
  else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) {
1068
1050
  return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : '');
@@ -1216,7 +1198,7 @@ function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidPropertie
1216
1198
  loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]);
1217
1199
  }
1218
1200
  }
1219
- else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 &&
1201
+ else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 &&
1220
1202
  (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) {
1221
1203
  warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName);
1222
1204
  }
@@ -1238,7 +1220,7 @@ function setPkgConfig(loader, pkgName, cfg, prependConfig) {
1238
1220
  extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig);
1239
1221
  extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig);
1240
1222
  }
1241
-
1223
+
1242
1224
  // main object becomes main map
1243
1225
  if (typeof pkg.main == 'object') {
1244
1226
  pkg.map = pkg.map || {};
@@ -1254,6 +1236,15 @@ function warn(msg) {
1254
1236
  if (this.warnings && typeof console != 'undefined' && console.warn)
1255
1237
  console.warn(msg);
1256
1238
  }
1239
+
1240
+ function createInstantiate (load, result) {
1241
+ load.metadata.entry = createEntry();
1242
+ load.metadata.entry.execute = function() {
1243
+ return result;
1244
+ }
1245
+ load.metadata.entry.deps = [];
1246
+ load.metadata.format = 'defined';
1247
+ }
1257
1248
  var fetchTextFromURL;
1258
1249
  if (typeof XMLHttpRequest != 'undefined') {
1259
1250
  fetchTextFromURL = function(url, authorization, fulfill, reject) {
@@ -1407,18 +1398,19 @@ function prepareBaseURL(loader) {
1407
1398
  if (this._loader.baseURL !== this.baseURL) {
1408
1399
  if (this.baseURL[this.baseURL.length - 1] != '/')
1409
1400
  this.baseURL += '/';
1410
-
1401
+
1411
1402
  this._loader.baseURL = this.baseURL = new URL(this.baseURL, baseURIObj).href;
1412
1403
  }
1413
1404
  }
1414
1405
 
1415
1406
  var envModule;
1416
- function setProduction(isProduction) {
1407
+ function setProduction(isProduction, isBuilder) {
1417
1408
  this.set('@system-env', envModule = this.newModule({
1418
1409
  browser: isBrowser,
1419
1410
  node: !!this._nodeRequire,
1420
- production: isProduction,
1421
- dev: !isProduction,
1411
+ production: !isBuilder && isProduction,
1412
+ dev: isBuilder || !isProduction,
1413
+ build: isBuilder,
1422
1414
  'default': true
1423
1415
  }));
1424
1416
  }
@@ -1433,6 +1425,10 @@ hookConstructor(function(constructor) {
1433
1425
  // support map and paths
1434
1426
  this.map = {};
1435
1427
 
1428
+ // make the location of the system.js script accessible
1429
+ if (typeof $__curScript != 'undefined')
1430
+ this.scriptSrc = $__curScript.src;
1431
+
1436
1432
  // global behaviour flags
1437
1433
  this.warnings = false;
1438
1434
  this.defaultJSExtensions = false;
@@ -1447,7 +1443,7 @@ hookConstructor(function(constructor) {
1447
1443
  // support the empty module, as a concept
1448
1444
  this.set('@empty', this.newModule({}));
1449
1445
 
1450
- setProduction.call(this, false);
1446
+ setProduction.call(this, false, false);
1451
1447
  };
1452
1448
  });
1453
1449
 
@@ -1469,22 +1465,18 @@ if (typeof require != 'undefined' && typeof process != 'undefined' && !process.b
1469
1465
  a URL.
1470
1466
  */
1471
1467
 
1472
- function getNodeModule(name) {
1468
+ var parentModuleContext;
1469
+ function getNodeModule(name, baseURL) {
1473
1470
  if (!isPlain(name))
1474
1471
  throw new Error('Node module ' + name + ' can\'t be loaded as it is not a package require.');
1475
1472
 
1476
- var nodePath = this._nodeRequire('path');
1477
- // try to load from node_modules
1478
- var module;
1479
- try {
1480
- module = this._nodeRequire(nodePath.resolve(process.cwd(), 'node_modules', name));
1481
- }
1482
- catch(e) {
1483
- // fall back to direct require (in theory this is core modules only, which should really be filtered)
1484
- if (e.code == 'MODULE_NOT_FOUND')
1485
- module = this._nodeRequire(name);
1473
+ if (!parentModuleContext) {
1474
+ var Module = this._nodeRequire('module');
1475
+ var base = baseURL.substr(isWindows ? 8 : 7);
1476
+ parentModuleContext = new Module(base);
1477
+ parentModuleContext.paths = Module._nodeModulePaths(base);
1486
1478
  }
1487
- return module;
1479
+ return parentModuleContext.require(name);
1488
1480
  }
1489
1481
 
1490
1482
  function coreResolve(name, parentName) {
@@ -1508,11 +1500,15 @@ function coreResolve(name, parentName) {
1508
1500
 
1509
1501
  if (this.has(name))
1510
1502
  return name;
1503
+
1511
1504
  // dynamically load node-core modules when requiring `@node/fs` for example
1512
1505
  if (name.substr(0, 6) == '@node/') {
1513
1506
  if (!this._nodeRequire)
1514
1507
  throw new TypeError('Error loading ' + name + '. Can only load node core modules in Node.');
1515
- this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6)))));
1508
+ if (this.builder)
1509
+ this.set(name, this.newModule({}));
1510
+ else
1511
+ this.set(name, this.newModule(getESModule(getNodeModule.call(this, name.substr(6), this.baseURL))));
1516
1512
  return name;
1517
1513
  }
1518
1514
 
@@ -1557,7 +1553,7 @@ hook('fetch', function() {
1557
1553
 
1558
1554
  /*
1559
1555
  __useDefault
1560
-
1556
+
1561
1557
  When a module object looks like:
1562
1558
  newModule(
1563
1559
  __useDefault: true,
@@ -1663,8 +1659,6 @@ hook('instantiate', function(instantiate) {
1663
1659
  For easy normalization canonicalization with latest URL support.
1664
1660
 
1665
1661
  */
1666
- SystemJSLoader.prototype.env = 'dev';
1667
-
1668
1662
  function envSet(loader, cfg, envCallback) {
1669
1663
  if (envModule.browser && cfg.browserConfig)
1670
1664
  envCallback(cfg.browserConfig);
@@ -1672,6 +1666,8 @@ function envSet(loader, cfg, envCallback) {
1672
1666
  envCallback(cfg.nodeConfig);
1673
1667
  if (envModule.dev && cfg.devConfig)
1674
1668
  envCallback(cfg.devConfig);
1669
+ if (envModule.build && cfg.buildConfig)
1670
+ envCallback(cfg.buildConfig);
1675
1671
  if (envModule.production && cfg.productionConfig)
1676
1672
  envCallback(cfg.productionConfig);
1677
1673
  }
@@ -1680,9 +1676,9 @@ SystemJSLoader.prototype.getConfig = function(name) {
1680
1676
  var cfg = {};
1681
1677
  var loader = this;
1682
1678
  for (var p in loader) {
1683
- if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype)
1679
+ if (loader.hasOwnProperty && !loader.hasOwnProperty(p) || p in SystemJSLoader.prototype && p != 'transpiler')
1684
1680
  continue;
1685
- if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version'], p) == -1)
1681
+ if (indexOf.call(['_loader', 'amdDefine', 'amdRequire', 'defined', 'failed', 'version', 'loads'], p) == -1)
1686
1682
  cfg[p] = loader[p];
1687
1683
  }
1688
1684
  cfg.production = envModule.production;
@@ -1708,8 +1704,8 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1708
1704
  if (cfg.transpilerRuntime === false)
1709
1705
  loader._loader.loadedTranspilerRuntime = true;
1710
1706
 
1711
- if ('production' in cfg)
1712
- setProduction.call(loader, cfg.production);
1707
+ if ('production' in cfg || 'build' in cfg)
1708
+ setProduction.call(loader, !!cfg.production, !!(cfg.build || envModule && envModule.build));
1713
1709
 
1714
1710
  if (!isEnvConfig) {
1715
1711
  // if using nodeConfig / browserConfig / productionConfig, take baseURL from there
@@ -1747,7 +1743,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1747
1743
  if (this.warnings) {
1748
1744
  for (var p in loader.paths)
1749
1745
  if (p.indexOf('*') != -1)
1750
- warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for simpler trailing "/" folder paths.');
1746
+ warn.call(loader, 'Paths configuration "' + p + '" -> "' + loader.paths[p] + '" uses wildcards which are being deprecated for just leaving a trailing "/" to indicate folder paths.');
1751
1747
  }
1752
1748
  }
1753
1749
 
@@ -1760,14 +1756,11 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1760
1756
  loader.pluginFirst = cfg.pluginFirst;
1761
1757
 
1762
1758
  if (cfg.map) {
1763
- var objMaps = '';
1764
1759
  for (var p in cfg.map) {
1765
1760
  var v = cfg.map[p];
1766
1761
 
1767
1762
  // object map backwards-compat into packages configuration
1768
1763
  if (typeof v !== 'string') {
1769
- objMaps += (objMaps.length ? ', ' : '') + '"' + p + '"';
1770
-
1771
1764
  var defaultJSExtension = loader.defaultJSExtensions && p.substr(p.length - 3, 3) != '.js';
1772
1765
  var prop = loader.decanonicalize(p);
1773
1766
  if (defaultJSExtension && prop.substr(prop.length - 3, 3) == '.js')
@@ -1776,8 +1769,8 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1776
1769
  // if a package main, revert it
1777
1770
  var pkgMatch = '';
1778
1771
  for (var pkg in loader.packages) {
1779
- if (prop.substr(0, pkg.length) == pkg
1780
- && (!prop[pkg.length] || prop[pkg.length] == '/')
1772
+ if (prop.substr(0, pkg.length) == pkg
1773
+ && (!prop[pkg.length] || prop[pkg.length] == '/')
1781
1774
  && pkgMatch.split('/').length < pkg.split('/').length)
1782
1775
  pkgMatch = pkg;
1783
1776
  }
@@ -1791,8 +1784,6 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1791
1784
  loader.map[p] = v;
1792
1785
  }
1793
1786
  }
1794
- if (objMaps)
1795
- warn.call(loader, 'The map configuration for ' + objMaps + ' uses object submaps, which is deprecated in global map.\nUpdate this to use package contextual map with configs like SystemJS.config({ packages: { "' + p + '": { map: {...} } } }).');
1796
1787
  }
1797
1788
 
1798
1789
  if (cfg.packageConfigPaths) {
@@ -1838,8 +1829,8 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1838
1829
  for (var c in cfg) {
1839
1830
  var v = cfg[c];
1840
1831
 
1841
- if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths',
1842
- 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], c) != -1)
1832
+ if (indexOf.call(['baseURL', 'map', 'packages', 'bundles', 'paths', 'warnings', 'packageConfigPaths',
1833
+ 'loaderErrorStack', 'browserConfig', 'nodeConfig', 'devConfig', 'buildConfig', 'productionConfig'], c) != -1)
1843
1834
  continue;
1844
1835
 
1845
1836
  if (typeof v != 'object' || v instanceof Array) {
@@ -1877,7 +1868,8 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
1877
1868
  envSet(loader, cfg, function(cfg) {
1878
1869
  loader.config(cfg, true);
1879
1870
  });
1880
- };/*
1871
+ };
1872
+ /*
1881
1873
  * Package Configuration Extension
1882
1874
  *
1883
1875
  * Example:
@@ -2566,7 +2558,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
2566
2558
 
2567
2559
  // if nothing registered, then something went wrong
2568
2560
  if (!load.metadata.entry)
2569
- reject(new Error(load.address + ' did not call System.register or AMD define'));
2561
+ reject(new Error(load.address + ' did not call System.register or AMD define. If loading a global, ensure the meta format is set to global.'));
2570
2562
 
2571
2563
  resolve('');
2572
2564
  });
@@ -2681,7 +2673,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
2681
2673
  *
2682
2674
  *
2683
2675
  * The code here replicates the ES6 linking groups algorithm to ensure that
2684
- * circular ES6 compiled into System.register can work alongside circular AMD
2676
+ * circular ES6 compiled into System.register can work alongside circular AMD
2685
2677
  * and CommonJS, identically to the actual ES6 loader.
2686
2678
  *
2687
2679
  */
@@ -2691,7 +2683,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
2691
2683
  * Registry side table entries in loader.defined
2692
2684
  * Registry Entry Contains:
2693
2685
  * - name
2694
- * - deps
2686
+ * - deps
2695
2687
  * - declare for declarative modules
2696
2688
  * - execute for dynamic modules, different to declarative execute on module
2697
2689
  * - executingRequire indicates require drives execution for circularity of dynamic modules
@@ -2709,7 +2701,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) {
2709
2701
  * For dynamic we track the es module with:
2710
2702
  * - esModule actual es module value
2711
2703
  * - esmExports whether to extend the esModule with named exports
2712
- *
2704
+ *
2713
2705
  * Then for declarative only we track dynamic bindings with the 'module' records:
2714
2706
  * - name
2715
2707
  * - exports
@@ -2754,7 +2746,7 @@ function createEntry() {
2754
2746
  * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained
2755
2747
  *
2756
2748
  * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute)
2757
- * the true or false statement
2749
+ * the true or false statement
2758
2750
  *
2759
2751
  * this extension implements the linking algorithm for the two variations identical to the spec
2760
2752
  * allowing compiled ES6 circular references to work alongside AMD and CJS circular references.
@@ -2773,7 +2765,7 @@ function createEntry() {
2773
2765
  return this.registerDynamic.apply(this, arguments);
2774
2766
 
2775
2767
  var entry = createEntry();
2776
- // ideally wouldn't apply map config to bundle names but
2768
+ // ideally wouldn't apply map config to bundle names but
2777
2769
  // dependencies go through map regardless so we can't restrict
2778
2770
  // could reconsider in shift to new spec
2779
2771
  entry.name = name && (this.decanonicalize || this.normalize).call(this, name);
@@ -2859,17 +2851,17 @@ function createEntry() {
2859
2851
  for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) {
2860
2852
  var depName = entry.normalizedDeps[i];
2861
2853
  var depEntry = loader.defined[depName];
2862
-
2854
+
2863
2855
  // not in the registry means already linked / ES6
2864
2856
  if (!depEntry || depEntry.evaluated)
2865
2857
  continue;
2866
-
2858
+
2867
2859
  // now we know the entry is in our unlinked linkage group
2868
2860
  var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative);
2869
2861
 
2870
2862
  // the group index of an entry is always the maximum
2871
2863
  if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) {
2872
-
2864
+
2873
2865
  // if already in a group, remove from the old group
2874
2866
  if (depEntry.groupIndex !== null) {
2875
2867
  groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1);
@@ -2909,7 +2901,7 @@ function createEntry() {
2909
2901
  else
2910
2902
  linkDynamicModule(entry, loader);
2911
2903
  }
2912
- curGroupDeclarative = !curGroupDeclarative;
2904
+ curGroupDeclarative = !curGroupDeclarative;
2913
2905
  }
2914
2906
  }
2915
2907
 
@@ -2954,14 +2946,22 @@ function createEntry() {
2954
2946
  var importerModule = module.importers[i];
2955
2947
  if (!importerModule.locked) {
2956
2948
  var importerIndex = indexOf.call(importerModule.dependencies, module);
2957
- importerModule.setters[importerIndex](exports);
2949
+ var setter = importerModule.setters[importerIndex];
2950
+ if (setter)
2951
+ setter(exports);
2958
2952
  }
2959
2953
  }
2960
2954
 
2961
2955
  module.locked = false;
2962
2956
  return value;
2963
2957
  }, { id: entry.name });
2964
-
2958
+
2959
+ if (typeof declaration == 'function')
2960
+ declaration = { setters: [], execute: declaration };
2961
+
2962
+ // allowing undefined declaration was a mistake! To be deprecated.
2963
+ declaration = declaration || { setters: [], execute: function() {} };
2964
+
2965
2965
  module.setters = declaration.setters;
2966
2966
  module.execute = declaration.execute;
2967
2967
 
@@ -3004,7 +3004,7 @@ function createEntry() {
3004
3004
  else {
3005
3005
  module.dependencies.push(null);
3006
3006
  }
3007
-
3007
+
3008
3008
  // run setters for all entries with the matching dependency name
3009
3009
  var originalIndices = entry.originalIndices[i];
3010
3010
  for (var j = 0, len = originalIndices.length; j < len; ++j) {
@@ -3030,7 +3030,7 @@ function createEntry() {
3030
3030
  else {
3031
3031
  if (entry.declarative)
3032
3032
  ensureEvaluated(name, entry, [], loader);
3033
-
3033
+
3034
3034
  else if (!entry.evaluated)
3035
3035
  linkDynamicModule(entry, loader);
3036
3036
 
@@ -3039,7 +3039,7 @@ function createEntry() {
3039
3039
 
3040
3040
  if ((!entry || entry.declarative) && exports && exports.__useDefault)
3041
3041
  return exports['default'];
3042
-
3042
+
3043
3043
  return exports;
3044
3044
  }
3045
3045
 
@@ -3077,8 +3077,8 @@ function createEntry() {
3077
3077
 
3078
3078
  throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name);
3079
3079
  }, exports, module);
3080
-
3081
- if (output)
3080
+
3081
+ if (output !== undefined)
3082
3082
  module.exports = output;
3083
3083
 
3084
3084
  // create the esModule object, which allows ES6 named imports of dynamics
@@ -3092,7 +3092,7 @@ function createEntry() {
3092
3092
  entry.esModule = loader.newModule(getESModule(exports));
3093
3093
  // just use the 'default' export
3094
3094
  else
3095
- entry.esModule = loader.newModule({ 'default': exports });
3095
+ entry.esModule = loader.newModule({ 'default': exports, __useDefault: true });
3096
3096
  }
3097
3097
 
3098
3098
  /*
@@ -3101,7 +3101,7 @@ function createEntry() {
3101
3101
  * (unless one is a circular dependency already in the list of seen
3102
3102
  * modules, in which case we execute it)
3103
3103
  *
3104
- * Then we evaluate the module itself depth-first left to right
3104
+ * Then we evaluate the module itself depth-first left to right
3105
3105
  * execution to match ES6 modules
3106
3106
  */
3107
3107
  function ensureEvaluated(moduleName, entry, seen, loader) {
@@ -3147,7 +3147,7 @@ function createEntry() {
3147
3147
  }
3148
3148
 
3149
3149
  load.metadata.deps = load.metadata.deps || [];
3150
-
3150
+
3151
3151
  return fetch.call(this, load);
3152
3152
  };
3153
3153
  });
@@ -3158,7 +3158,7 @@ function createEntry() {
3158
3158
  load.metadata.deps = load.metadata.deps || [];
3159
3159
  return Promise.resolve(translate.apply(this, arguments)).then(function(source) {
3160
3160
  // run detection for register format
3161
- if (load.metadata.format == 'register' || !load.metadata.format && detectRegisterFormat(load.source))
3161
+ if (load.metadata.format == 'register' || load.metadata.format == 'system' || !load.metadata.format && detectRegisterFormat(load.source))
3162
3162
  load.metadata.format = 'register';
3163
3163
  return source;
3164
3164
  });
@@ -3176,7 +3176,7 @@ function createEntry() {
3176
3176
 
3177
3177
  entry.originalIndices = entry.normalizedDeps = [];
3178
3178
 
3179
- // recursively ensure that the module and all its
3179
+ // recursively ensure that the module and all its
3180
3180
  // dependencies are linked (with dependency group handling)
3181
3181
  link(normalized, entry, loader);
3182
3182
 
@@ -3227,9 +3227,9 @@ function createEntry() {
3227
3227
 
3228
3228
  // Contains System.register calls
3229
3229
  // (dont run bundles in the builder)
3230
- else if (!(loader.builder && load.metadata.bundle)
3230
+ else if (!(loader.builder && load.metadata.bundle)
3231
3231
  && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) {
3232
-
3232
+
3233
3233
  if (typeof __exec != 'undefined')
3234
3234
  __exec.call(loader, load);
3235
3235
 
@@ -3252,9 +3252,9 @@ function createEntry() {
3252
3252
 
3253
3253
  // place this module onto defined for circular references
3254
3254
  loader.defined[load.name] = entry;
3255
-
3255
+
3256
3256
  var grouped = group(entry.deps);
3257
-
3257
+
3258
3258
  entry.deps = grouped.names;
3259
3259
  entry.originalIndices = grouped.indices;
3260
3260
  entry.name = load.name;
@@ -3272,7 +3272,7 @@ function createEntry() {
3272
3272
  return {
3273
3273
  deps: entry.deps,
3274
3274
  execute: function() {
3275
- // recursively ensure that the module and all its
3275
+ // recursively ensure that the module and all its
3276
3276
  // dependencies are linked (with dependency group handling)
3277
3277
  link(load.name, entry, loader);
3278
3278
 
@@ -3318,7 +3318,7 @@ function getGlobalValue(exports) {
3318
3318
 
3319
3319
  hook('reduceRegister_', function(reduceRegister) {
3320
3320
  return function(load, register) {
3321
- if (register || !load.metadata.exports)
3321
+ if (register || (!load.metadata.exports && !(isWorker && load.metadata.format == 'global')))
3322
3322
  return reduceRegister.call(this, load, register);
3323
3323
 
3324
3324
  load.metadata.format = 'global';
@@ -3710,7 +3710,7 @@ hookConstructor(function(constructor) {
3710
3710
  if (curMeta) {
3711
3711
  if (!curMeta.entry && !curMeta.bundle)
3712
3712
  curMeta.entry = entry;
3713
- else if (curMeta.entry && curMeta.entry.name)
3713
+ else if (curMeta.entry && curMeta.entry.name && curMeta.entry.name != load.name)
3714
3714
  curMeta.entry = undefined;
3715
3715
 
3716
3716
  // note this is now a bundle
@@ -3795,13 +3795,13 @@ hookConstructor(function(constructor) {
3795
3795
  // if so, remove for backwards compat
3796
3796
  // this is strange and sucks, but will be deprecated
3797
3797
  function checkDefaultExtension(loader, arg) {
3798
- return loader.defaultJSExtensions && arg.substr(arg.length - 3, 3) != '.js';
3798
+ return loader.defaultJSExtensions && arg.substr(arg.length - 3, 3) != '.js';
3799
3799
  }
3800
3800
 
3801
3801
  function createNormalizeSync(normalizeSync) {
3802
3802
  return function(name, parentName, isPlugin) {
3803
3803
  var loader = this;
3804
-
3804
+
3805
3805
  var parsed = parsePlugin(loader, name);
3806
3806
  parentName = getParentName(this, parentName);
3807
3807
 
@@ -3814,7 +3814,7 @@ hookConstructor(function(constructor) {
3814
3814
  return combinePluginParts(loader, argumentName, pluginName, checkDefaultExtension(loader, parsed.argument));
3815
3815
  };
3816
3816
  }
3817
-
3817
+
3818
3818
  hook('decanonicalize', createNormalizeSync);
3819
3819
  hook('normalizeSync', createNormalizeSync);
3820
3820
 
@@ -3908,15 +3908,16 @@ hookConstructor(function(constructor) {
3908
3908
  hook('fetch', function(fetch) {
3909
3909
  return function(load) {
3910
3910
  var loader = this;
3911
- if (load.metadata.loaderModule && load.metadata.loaderModule.fetch && load.metadata.format != 'defined') {
3911
+ if (load.metadata.loaderModule && load.metadata.format != 'defined') {
3912
+ if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
3913
+ return '';
3912
3914
  load.metadata.scriptLoad = false;
3913
- return load.metadata.loaderModule.fetch.call(loader, load, function(load) {
3914
- return fetch.call(loader, load);
3915
- });
3916
- }
3917
- else {
3918
- return fetch.call(loader, load);
3915
+ if (load.metadata.loaderModule.fetch)
3916
+ return load.metadata.loaderModule.fetch.call(loader, load, function(load) {
3917
+ return fetch.call(loader, load);
3918
+ });
3919
3919
  }
3920
+ return fetch.call(loader, load);
3920
3921
  };
3921
3922
  });
3922
3923
 
@@ -3934,7 +3935,7 @@ hookConstructor(function(constructor) {
3934
3935
  throw new Error('load.metadata.sourceMap must be set to an object.');
3935
3936
 
3936
3937
  var originalName = load.address.split('!')[0];
3937
-
3938
+
3938
3939
  // force set the filename of the original file
3939
3940
  if (!sourceMap.file || sourceMap.file == load.address)
3940
3941
  sourceMap.file = originalName + '!transpiled';
@@ -3949,15 +3950,11 @@ hookConstructor(function(constructor) {
3949
3950
 
3950
3951
  if (typeof result == 'string')
3951
3952
  load.source = result;
3952
- else
3953
- warn.call(this, 'Plugin ' + load.metadata.loader + ' should return the source in translate, instead of setting load.source directly. This support will be deprecated.');
3954
3953
 
3955
3954
  return translate.apply(loader, args);
3956
3955
  });
3957
3956
  }
3958
- else {
3959
- return translate.apply(loader, args);
3960
- }
3957
+ return translate.apply(loader, args);
3961
3958
  };
3962
3959
  });
3963
3960
 
@@ -3966,30 +3963,35 @@ hookConstructor(function(constructor) {
3966
3963
  var loader = this;
3967
3964
  var calledInstantiate = false;
3968
3965
 
3969
- if (load.metadata.loaderModule && load.metadata.loaderModule.instantiate && !loader.builder && load.metadata.format != 'defined')
3970
- return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) {
3971
- if (calledInstantiate)
3972
- throw new Error('Instantiate must only be called once.');
3973
- calledInstantiate = true;
3974
- return instantiate.call(loader, load);
3975
- })).then(function(result) {
3976
- if (calledInstantiate)
3977
- return result;
3978
-
3979
- load.metadata.entry = createEntry();
3980
- load.metadata.entry.execute = function() {
3981
- return result;
3982
- }
3983
- load.metadata.entry.deps = load.metadata.deps;
3984
- load.metadata.format = 'defined';
3985
- return instantiate.call(loader, load);
3986
- });
3987
- else
3988
- return instantiate.call(loader, load);
3966
+ if (load.metadata.loaderModule && !loader.builder && load.metadata.format != 'defined') {
3967
+ if (load.metadata.loaderModule.instantiate)
3968
+ return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) {
3969
+ if (calledInstantiate)
3970
+ throw new Error('Instantiate must only be called once.');
3971
+ calledInstantiate = true;
3972
+ return instantiate.call(loader, load);
3973
+ })).then(function(result) {
3974
+ if (calledInstantiate)
3975
+ return result;
3976
+
3977
+ if (result !== undefined)
3978
+ createInstantiate(load, result);
3979
+ return instantiate.call(loader, load);
3980
+ });
3981
+ else if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function')
3982
+ return Promise.resolve((load.metadata.loaderModule.default || load.metadata.loaderModule).call(loader, load.address, load.name))
3983
+ .then(function (result) {
3984
+ if (result !== undefined)
3985
+ createInstantiate(load, result);
3986
+ return instantiate.call(loader, load);
3987
+ });
3988
+ }
3989
+ return instantiate.call(loader, load);
3989
3990
  };
3990
3991
  });
3991
3992
 
3992
- })();/*
3993
+ })();
3994
+ /*
3993
3995
  * Conditions Extension
3994
3996
  *
3995
3997
  * Allows a condition module to alter the resolution of an import via syntax:
@@ -4029,7 +4031,7 @@ hookConstructor(function(constructor) {
4029
4031
  *
4030
4032
  */
4031
4033
 
4032
- var sysConditions = ['browser', 'node', 'dev', 'production', 'default'];
4034
+ var sysConditions = ['browser', 'node', 'dev', 'build', 'production', 'default'];
4033
4035
 
4034
4036
  function parseCondition(condition) {
4035
4037
  var conditionExport, conditionModule, negation;
@@ -4478,7 +4480,7 @@ hook('fetch', function(fetch) {
4478
4480
  });System = new SystemJSLoader();
4479
4481
 
4480
4482
  __global.SystemJS = System;
4481
- System.version = '0.19.29 CSP';
4483
+ System.version = '0.19.46 CSP';
4482
4484
  if (typeof module == 'object' && module.exports && typeof exports == 'object')
4483
4485
  module.exports = System;
4484
4486
 
@@ -4493,6 +4495,10 @@ var doPolyfill = typeof Promise === 'undefined';
4493
4495
  if (typeof document !== 'undefined') {
4494
4496
  var scripts = document.getElementsByTagName('script');
4495
4497
  $__curScript = scripts[scripts.length - 1];
4498
+ if (document.currentScript && ($__curScript.defer || $__curScript.async))
4499
+ $__curScript = document.currentScript;
4500
+ if (!$__curScript.src)
4501
+ $__curScript = undefined;
4496
4502
  if (doPolyfill) {
4497
4503
  var curPath = $__curScript.src;
4498
4504
  var basePath = curPath.substr(0, curPath.lastIndexOf('/') + 1);
@@ -4526,4 +4532,4 @@ else {
4526
4532
  }
4527
4533
 
4528
4534
 
4529
- })();
4535
+ })();