@jsenv/core 24.4.5 → 24.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build_manifest.js +4 -4
- package/dist/compile_proxy/asset-manifest.json +1 -2
- package/dist/compile_proxy/{compile_proxy-e666f204.html → compile_proxy-1dfca609.html} +254 -218
- package/dist/redirector/asset-manifest.json +1 -2
- package/dist/redirector/{redirector-bee67b92.html → redirector-d1316407.html} +254 -218
- package/dist/toolbar/asset-manifest.json +1 -2
- package/dist/toolbar/{toolbar-6efd0558.html → toolbar-afb71355.html} +266 -221
- package/dist/toolbar/{toolbar.main-53e1ab2b.js.map → toolbar.main-feac7fa3.js.map} +4 -4
- package/dist/toolbar_injector/asset-manifest.json +1 -1
- package/dist/toolbar_injector/{toolbar_injector-fca82274.js → toolbar_injector-445d3ea0.js} +2 -2
- package/dist/toolbar_injector/{toolbar_injector-fca82274.js.map → toolbar_injector-445d3ea0.js.map} +4 -4
- package/package.json +3 -2
- package/readme.md +32 -36
- package/src/buildProject.js +2 -0
- package/src/internal/building/buildUsingRollup.js +16 -28
- package/src/internal/building/{bundleWorker.js → js/babel_plugin_inline_worker_imports.js} +25 -61
- package/src/internal/building/js/parseJsRessource.js +12 -13
- package/src/internal/building/js/transform_worker.js +55 -0
- package/src/internal/building/resolve_import_url_helper.js +2 -1
- package/src/internal/building/ressource_builder.js +59 -15
- package/src/internal/building/{createJsenvRollupPlugin.js → rollup_plugin_jsenv.js} +82 -9
- package/src/internal/building/url_loader.js +0 -2
- package/src/internal/compiling/createCompiledFileService.js +3 -3
- package/src/internal/dev_server/toolbar/toolbar.html +1 -1
- package/src/internal/dev_server/toolbar/toolbar.main.js +4 -0
- package/src/internal/dev_server/toolbar/util/dom.js +5 -0
- package/src/internal/executing/coverage_utils/v8_coverage_from_directory.js +9 -1
- package/src/internal/executing/createSummaryLog.js +4 -4
- package/src/internal/executing/executeConcurrently.js +1 -0
- package/src/internal/executing/executePlan.js +24 -10
- package/src/internal/executing/executionLogs.js +1 -1
- package/dist/compile_proxy/assets/s.js-fcba0e35.map +0 -246
- package/dist/redirector/assets/s.js-fcba0e35.map +0 -246
- package/dist/toolbar/assets/s.js-fcba0e35.map +0 -246
- package/src/internal/building/buildServiceWorker.js +0 -75
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* Minimal SystemJS Build
|
|
9
9
|
*/
|
|
10
10
|
(function () {
|
|
11
|
+
|
|
11
12
|
function errMsg(errCode, msg) {
|
|
12
13
|
return (msg || "") + " (SystemJS https://git.io/JvFET#" + errCode + ")";
|
|
13
14
|
}
|
|
@@ -15,58 +16,68 @@
|
|
|
15
16
|
var hasSymbol = typeof Symbol !== 'undefined';
|
|
16
17
|
var hasSelf = typeof self !== 'undefined';
|
|
17
18
|
var hasDocument = typeof document !== 'undefined';
|
|
19
|
+
|
|
18
20
|
var envGlobal = hasSelf ? self : global;
|
|
21
|
+
|
|
19
22
|
var baseUrl;
|
|
20
23
|
|
|
21
24
|
if (hasDocument) {
|
|
22
25
|
var baseEl = document.querySelector('base[href]');
|
|
23
|
-
if (baseEl)
|
|
26
|
+
if (baseEl)
|
|
27
|
+
baseUrl = baseEl.href;
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
if (!baseUrl && typeof location !== 'undefined') {
|
|
27
31
|
baseUrl = location.href.split('#')[0].split('?')[0];
|
|
28
32
|
var lastSepIndex = baseUrl.lastIndexOf('/');
|
|
29
|
-
if (lastSepIndex !== -1)
|
|
33
|
+
if (lastSepIndex !== -1)
|
|
34
|
+
baseUrl = baseUrl.slice(0, lastSepIndex + 1);
|
|
30
35
|
}
|
|
31
36
|
|
|
32
37
|
var backslashRegEx = /\\/g;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
38
|
+
function resolveIfNotPlainOrUrl (relUrl, parentUrl) {
|
|
39
|
+
if (relUrl.indexOf('\\') !== -1)
|
|
40
|
+
relUrl = relUrl.replace(backslashRegEx, '/');
|
|
41
|
+
// protocol-relative
|
|
37
42
|
if (relUrl[0] === '/' && relUrl[1] === '/') {
|
|
38
43
|
return parentUrl.slice(0, parentUrl.indexOf(':') + 1) + relUrl;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
}
|
|
45
|
+
// relative-url
|
|
46
|
+
else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && (relUrl[2] === '/' || relUrl.length === 2 && (relUrl += '/')) ||
|
|
47
|
+
relUrl.length === 1 && (relUrl += '/')) ||
|
|
48
|
+
relUrl[0] === '/') {
|
|
49
|
+
var parentProtocol = parentUrl.slice(0, parentUrl.indexOf(':') + 1);
|
|
50
|
+
// Disabled, but these cases will give inconsistent results for deep backtracking
|
|
42
51
|
//if (parentUrl[parentProtocol.length] !== '/')
|
|
43
52
|
// throw Error('Cannot resolve');
|
|
44
53
|
// read pathname from parent URL
|
|
45
54
|
// pathname taken to be part after leading "/"
|
|
46
|
-
|
|
47
55
|
var pathname;
|
|
48
|
-
|
|
49
56
|
if (parentUrl[parentProtocol.length + 1] === '/') {
|
|
50
57
|
// resolving to a :// so we need to read out the auth and host
|
|
51
58
|
if (parentProtocol !== 'file:') {
|
|
52
59
|
pathname = parentUrl.slice(parentProtocol.length + 2);
|
|
53
60
|
pathname = pathname.slice(pathname.indexOf('/') + 1);
|
|
54
|
-
}
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
55
63
|
pathname = parentUrl.slice(8);
|
|
56
64
|
}
|
|
57
|
-
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
58
67
|
// resolving to :/ so pathname is the /... part
|
|
59
68
|
pathname = parentUrl.slice(parentProtocol.length + (parentUrl[parentProtocol.length] === '/'));
|
|
60
69
|
}
|
|
61
70
|
|
|
62
|
-
if (relUrl[0] === '/')
|
|
71
|
+
if (relUrl[0] === '/')
|
|
72
|
+
return parentUrl.slice(0, parentUrl.length - pathname.length - 1) + relUrl;
|
|
73
|
+
|
|
74
|
+
// join together and split for removal of .. and . segments
|
|
63
75
|
// looping the string instead of anything fancy for perf reasons
|
|
64
76
|
// '../../../../../z' resolved to 'x/y' is just 'z'
|
|
65
|
-
|
|
66
77
|
var segmented = pathname.slice(0, pathname.lastIndexOf('/') + 1) + relUrl;
|
|
78
|
+
|
|
67
79
|
var output = [];
|
|
68
80
|
var segmentIndex = -1;
|
|
69
|
-
|
|
70
81
|
for (var i = 0; i < segmented.length; i++) {
|
|
71
82
|
// busy reading a segment - only terminate on '/'
|
|
72
83
|
if (segmentIndex !== -1) {
|
|
@@ -74,30 +85,36 @@
|
|
|
74
85
|
output.push(segmented.slice(segmentIndex, i + 1));
|
|
75
86
|
segmentIndex = -1;
|
|
76
87
|
}
|
|
77
|
-
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// new segment - check if it is relative
|
|
78
91
|
else if (segmented[i] === '.') {
|
|
79
92
|
// ../ segment
|
|
80
93
|
if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
|
|
81
94
|
output.pop();
|
|
82
95
|
i += 2;
|
|
83
|
-
}
|
|
96
|
+
}
|
|
97
|
+
// ./ segment
|
|
84
98
|
else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
|
|
85
99
|
i += 1;
|
|
86
|
-
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
87
102
|
// the start of a new segment as below
|
|
88
103
|
segmentIndex = i;
|
|
89
104
|
}
|
|
90
|
-
}
|
|
105
|
+
}
|
|
106
|
+
// it is the start of a new segment
|
|
91
107
|
else {
|
|
92
108
|
segmentIndex = i;
|
|
93
109
|
}
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
110
|
+
}
|
|
111
|
+
// finish reading out the last segment
|
|
112
|
+
if (segmentIndex !== -1)
|
|
113
|
+
output.push(segmented.slice(segmentIndex));
|
|
98
114
|
return parentUrl.slice(0, parentUrl.length - pathname.length) + output.join('');
|
|
99
115
|
}
|
|
100
116
|
}
|
|
117
|
+
|
|
101
118
|
/*
|
|
102
119
|
* Import maps implementation
|
|
103
120
|
*
|
|
@@ -106,78 +123,83 @@
|
|
|
106
123
|
*
|
|
107
124
|
*/
|
|
108
125
|
|
|
109
|
-
|
|
110
|
-
function resolveUrl(relUrl, parentUrl) {
|
|
126
|
+
function resolveUrl (relUrl, parentUrl) {
|
|
111
127
|
return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (relUrl.indexOf(':') !== -1 ? relUrl : resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));
|
|
112
128
|
}
|
|
113
129
|
|
|
114
|
-
function resolveAndComposePackages(packages, outPackages, baseUrl, parentMap, parentUrl) {
|
|
130
|
+
function resolveAndComposePackages (packages, outPackages, baseUrl, parentMap, parentUrl) {
|
|
115
131
|
for (var p in packages) {
|
|
116
132
|
var resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;
|
|
117
|
-
var rhs = packages[p];
|
|
118
|
-
|
|
119
|
-
if (typeof rhs !== 'string')
|
|
133
|
+
var rhs = packages[p];
|
|
134
|
+
// package fallbacks not currently supported
|
|
135
|
+
if (typeof rhs !== 'string')
|
|
136
|
+
continue;
|
|
120
137
|
var mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(rhs, baseUrl) || rhs, parentUrl);
|
|
121
|
-
|
|
122
138
|
if (!mapped) {
|
|
123
139
|
targetWarning('W1', p, rhs);
|
|
124
|
-
}
|
|
140
|
+
}
|
|
141
|
+
else
|
|
142
|
+
outPackages[resolvedLhs] = mapped;
|
|
125
143
|
}
|
|
126
144
|
}
|
|
127
145
|
|
|
128
|
-
function resolveAndComposeImportMap(json, baseUrl, outMap) {
|
|
129
|
-
if (json.imports)
|
|
130
|
-
|
|
146
|
+
function resolveAndComposeImportMap (json, baseUrl, outMap) {
|
|
147
|
+
if (json.imports)
|
|
148
|
+
resolveAndComposePackages(json.imports, outMap.imports, baseUrl, outMap, null);
|
|
131
149
|
|
|
150
|
+
var u;
|
|
132
151
|
for (u in json.scopes || {}) {
|
|
133
152
|
var resolvedScope = resolveUrl(u, baseUrl);
|
|
134
153
|
resolveAndComposePackages(json.scopes[u], outMap.scopes[resolvedScope] || (outMap.scopes[resolvedScope] = {}), baseUrl, outMap, resolvedScope);
|
|
135
154
|
}
|
|
136
155
|
|
|
137
|
-
for (u in json.depcache || {})
|
|
156
|
+
for (u in json.depcache || {})
|
|
157
|
+
outMap.depcache[resolveUrl(u, baseUrl)] = json.depcache[u];
|
|
138
158
|
|
|
139
|
-
for (u in json.integrity || {})
|
|
159
|
+
for (u in json.integrity || {})
|
|
160
|
+
outMap.integrity[resolveUrl(u, baseUrl)] = json.integrity[u];
|
|
140
161
|
}
|
|
141
162
|
|
|
142
|
-
function getMatch(path, matchObj) {
|
|
143
|
-
if (matchObj[path])
|
|
163
|
+
function getMatch (path, matchObj) {
|
|
164
|
+
if (matchObj[path])
|
|
165
|
+
return path;
|
|
144
166
|
var sepIndex = path.length;
|
|
145
|
-
|
|
146
167
|
do {
|
|
147
168
|
var segment = path.slice(0, sepIndex + 1);
|
|
148
|
-
if (segment in matchObj)
|
|
149
|
-
|
|
169
|
+
if (segment in matchObj)
|
|
170
|
+
return segment;
|
|
171
|
+
} while ((sepIndex = path.lastIndexOf('/', sepIndex - 1)) !== -1)
|
|
150
172
|
}
|
|
151
173
|
|
|
152
|
-
function applyPackages(id, packages) {
|
|
174
|
+
function applyPackages (id, packages) {
|
|
153
175
|
var pkgName = getMatch(id, packages);
|
|
154
|
-
|
|
155
176
|
if (pkgName) {
|
|
156
177
|
var pkg = packages[pkgName];
|
|
157
178
|
if (pkg === null) return;
|
|
158
|
-
|
|
159
179
|
if (id.length > pkgName.length && pkg[pkg.length - 1] !== '/') {
|
|
160
180
|
targetWarning('W2', pkgName, pkg);
|
|
161
|
-
}
|
|
181
|
+
}
|
|
182
|
+
else
|
|
183
|
+
return pkg + id.slice(pkgName.length);
|
|
162
184
|
}
|
|
163
185
|
}
|
|
164
186
|
|
|
165
|
-
function targetWarning(code, match, target, msg) {
|
|
166
|
-
console.warn(errMsg(code,
|
|
187
|
+
function targetWarning (code, match, target, msg) {
|
|
188
|
+
console.warn(errMsg(code, [target, match].join(', ') ));
|
|
167
189
|
}
|
|
168
190
|
|
|
169
|
-
function resolveImportMap(importMap, resolvedOrPlain, parentUrl) {
|
|
191
|
+
function resolveImportMap (importMap, resolvedOrPlain, parentUrl) {
|
|
170
192
|
var scopes = importMap.scopes;
|
|
171
193
|
var scopeUrl = parentUrl && getMatch(parentUrl, scopes);
|
|
172
|
-
|
|
173
194
|
while (scopeUrl) {
|
|
174
195
|
var packageResolution = applyPackages(resolvedOrPlain, scopes[scopeUrl]);
|
|
175
|
-
if (packageResolution)
|
|
196
|
+
if (packageResolution)
|
|
197
|
+
return packageResolution;
|
|
176
198
|
scopeUrl = getMatch(scopeUrl.slice(0, scopeUrl.lastIndexOf('/')), scopes);
|
|
177
199
|
}
|
|
178
|
-
|
|
179
200
|
return applyPackages(resolvedOrPlain, importMap.imports) || resolvedOrPlain.indexOf(':') !== -1 && resolvedOrPlain;
|
|
180
201
|
}
|
|
202
|
+
|
|
181
203
|
/*
|
|
182
204
|
* SystemJS Core
|
|
183
205
|
*
|
|
@@ -195,11 +217,10 @@
|
|
|
195
217
|
* System.prototype.instantiate implementations
|
|
196
218
|
*/
|
|
197
219
|
|
|
198
|
-
|
|
199
220
|
var toStringTag = hasSymbol && Symbol.toStringTag;
|
|
200
221
|
var REGISTRY = hasSymbol ? Symbol() : '@';
|
|
201
222
|
|
|
202
|
-
function SystemJS() {
|
|
223
|
+
function SystemJS () {
|
|
203
224
|
this[REGISTRY] = {};
|
|
204
225
|
}
|
|
205
226
|
|
|
@@ -207,15 +228,17 @@
|
|
|
207
228
|
|
|
208
229
|
systemJSPrototype.import = function (id, parentUrl) {
|
|
209
230
|
var loader = this;
|
|
210
|
-
return Promise.resolve(loader.prepareImport())
|
|
231
|
+
return Promise.resolve(loader.prepareImport())
|
|
232
|
+
.then(function() {
|
|
211
233
|
return loader.resolve(id, parentUrl);
|
|
212
|
-
})
|
|
234
|
+
})
|
|
235
|
+
.then(function (id) {
|
|
213
236
|
var load = getOrCreateLoad(loader, id);
|
|
214
237
|
return load.C || topLevelLoad(loader, load);
|
|
215
238
|
});
|
|
216
|
-
};
|
|
217
|
-
|
|
239
|
+
};
|
|
218
240
|
|
|
241
|
+
// Hookable createContext function -> allowing eg custom import meta
|
|
219
242
|
systemJSPrototype.createContext = function (parentId) {
|
|
220
243
|
var loader = this;
|
|
221
244
|
return {
|
|
@@ -225,59 +248,59 @@
|
|
|
225
248
|
}
|
|
226
249
|
};
|
|
227
250
|
};
|
|
228
|
-
|
|
229
|
-
function loadToId(load) {
|
|
251
|
+
function loadToId (load) {
|
|
230
252
|
return load.id;
|
|
231
253
|
}
|
|
232
|
-
|
|
233
|
-
function triggerOnload(loader, load, err, isErrSource) {
|
|
254
|
+
function triggerOnload (loader, load, err, isErrSource) {
|
|
234
255
|
loader.onload(err, load.id, load.d && load.d.map(loadToId), !!isErrSource);
|
|
235
|
-
if (err)
|
|
256
|
+
if (err)
|
|
257
|
+
throw err;
|
|
236
258
|
}
|
|
237
259
|
|
|
238
260
|
var lastRegister;
|
|
239
|
-
|
|
240
261
|
systemJSPrototype.register = function (deps, declare) {
|
|
241
262
|
lastRegister = [deps, declare];
|
|
242
263
|
};
|
|
264
|
+
|
|
243
265
|
/*
|
|
244
266
|
* getRegister provides the last anonymous System.register call
|
|
245
267
|
*/
|
|
246
|
-
|
|
247
|
-
|
|
248
268
|
systemJSPrototype.getRegister = function () {
|
|
249
269
|
var _lastRegister = lastRegister;
|
|
250
270
|
lastRegister = undefined;
|
|
251
271
|
return _lastRegister;
|
|
252
272
|
};
|
|
253
273
|
|
|
254
|
-
function getOrCreateLoad(loader, id, firstParentUrl) {
|
|
274
|
+
function getOrCreateLoad (loader, id, firstParentUrl) {
|
|
255
275
|
var load = loader[REGISTRY][id];
|
|
256
|
-
if (load)
|
|
276
|
+
if (load)
|
|
277
|
+
return load;
|
|
278
|
+
|
|
257
279
|
var importerSetters = [];
|
|
258
280
|
var ns = Object.create(null);
|
|
259
|
-
if (toStringTag)
|
|
260
|
-
value: 'Module'
|
|
261
|
-
});
|
|
262
|
-
var instantiatePromise = Promise.resolve().then(function () {
|
|
263
|
-
return loader.instantiate(id, firstParentUrl);
|
|
264
|
-
}).then(function (registration) {
|
|
265
|
-
if (!registration) throw Error(errMsg(2, id));
|
|
281
|
+
if (toStringTag)
|
|
282
|
+
Object.defineProperty(ns, toStringTag, { value: 'Module' });
|
|
266
283
|
|
|
267
|
-
|
|
284
|
+
var instantiatePromise = Promise.resolve()
|
|
285
|
+
.then(function () {
|
|
286
|
+
return loader.instantiate(id, firstParentUrl);
|
|
287
|
+
})
|
|
288
|
+
.then(function (registration) {
|
|
289
|
+
if (!registration)
|
|
290
|
+
throw Error(errMsg(2, id ));
|
|
291
|
+
function _export (name, value) {
|
|
268
292
|
// note if we have hoisted exports (including reexports)
|
|
269
293
|
load.h = true;
|
|
270
294
|
var changed = false;
|
|
271
|
-
|
|
272
295
|
if (typeof name === 'string') {
|
|
273
296
|
if (!(name in ns) || ns[name] !== value) {
|
|
274
297
|
ns[name] = value;
|
|
275
298
|
changed = true;
|
|
276
299
|
}
|
|
277
|
-
}
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
278
302
|
for (var p in name) {
|
|
279
303
|
var value = name[p];
|
|
280
|
-
|
|
281
304
|
if (!(p in ns) || ns[p] !== value) {
|
|
282
305
|
ns[p] = value;
|
|
283
306
|
changed = true;
|
|
@@ -288,51 +311,54 @@
|
|
|
288
311
|
ns.__esModule = name.__esModule;
|
|
289
312
|
}
|
|
290
313
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
314
|
+
if (changed)
|
|
315
|
+
for (var i = 0; i < importerSetters.length; i++) {
|
|
316
|
+
var setter = importerSetters[i];
|
|
317
|
+
if (setter) setter(ns);
|
|
318
|
+
}
|
|
296
319
|
return value;
|
|
297
320
|
}
|
|
298
|
-
|
|
299
321
|
var declared = registration[1](_export, registration[1].length === 2 ? {
|
|
300
322
|
import: function (importId) {
|
|
301
323
|
return loader.import(importId, id);
|
|
302
324
|
},
|
|
303
325
|
meta: loader.createContext(id)
|
|
304
326
|
} : undefined);
|
|
305
|
-
|
|
306
327
|
load.e = declared.execute || function () {};
|
|
307
|
-
|
|
308
328
|
return [registration[0], declared.setters || []];
|
|
309
329
|
}, function (err) {
|
|
310
330
|
load.e = null;
|
|
311
331
|
load.er = err;
|
|
312
332
|
throw err;
|
|
313
333
|
});
|
|
314
|
-
|
|
334
|
+
|
|
335
|
+
var linkPromise = instantiatePromise
|
|
336
|
+
.then(function (instantiation) {
|
|
315
337
|
return Promise.all(instantiation[0].map(function (dep, i) {
|
|
316
338
|
var setter = instantiation[1][i];
|
|
317
|
-
return Promise.resolve(loader.resolve(dep, id))
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
339
|
+
return Promise.resolve(loader.resolve(dep, id))
|
|
340
|
+
.then(function (depId) {
|
|
341
|
+
var depLoad = getOrCreateLoad(loader, depId, id);
|
|
342
|
+
// depLoad.I may be undefined for already-evaluated
|
|
343
|
+
return Promise.resolve(depLoad.I)
|
|
344
|
+
.then(function () {
|
|
321
345
|
if (setter) {
|
|
322
|
-
depLoad.i.push(setter);
|
|
346
|
+
depLoad.i.push(setter);
|
|
347
|
+
// only run early setters when there are hoisted exports of that module
|
|
323
348
|
// the timing works here as pending hoisted export calls will trigger through importerSetters
|
|
324
|
-
|
|
325
|
-
|
|
349
|
+
if (depLoad.h || !depLoad.I)
|
|
350
|
+
setter(depLoad.n);
|
|
326
351
|
}
|
|
327
|
-
|
|
328
352
|
return depLoad;
|
|
329
353
|
});
|
|
330
354
|
});
|
|
331
|
-
}))
|
|
355
|
+
}))
|
|
356
|
+
.then(function (depLoads) {
|
|
332
357
|
load.d = depLoads;
|
|
333
358
|
});
|
|
334
|
-
});
|
|
359
|
+
});
|
|
335
360
|
|
|
361
|
+
// Capital letter = a promise function
|
|
336
362
|
return load = loader[REGISTRY][id] = {
|
|
337
363
|
id: id,
|
|
338
364
|
// importerSetters, the setters functions registered to this dependency
|
|
@@ -340,93 +366,111 @@
|
|
|
340
366
|
i: importerSetters,
|
|
341
367
|
// module namespace object
|
|
342
368
|
n: ns,
|
|
369
|
+
|
|
343
370
|
// instantiate
|
|
344
371
|
I: instantiatePromise,
|
|
345
372
|
// link
|
|
346
373
|
L: linkPromise,
|
|
347
374
|
// whether it has hoisted exports
|
|
348
375
|
h: false,
|
|
376
|
+
|
|
349
377
|
// On instantiate completion we have populated:
|
|
350
378
|
// dependency load records
|
|
351
379
|
d: undefined,
|
|
352
380
|
// execution function
|
|
353
381
|
e: undefined,
|
|
382
|
+
|
|
354
383
|
// On execution we have populated:
|
|
355
384
|
// the execution error if any
|
|
356
385
|
er: undefined,
|
|
357
386
|
// in the case of TLA, the execution promise
|
|
358
387
|
E: undefined,
|
|
388
|
+
|
|
359
389
|
// On execution, L, I, E cleared
|
|
390
|
+
|
|
360
391
|
// Promise for top-level completion
|
|
361
392
|
C: undefined,
|
|
393
|
+
|
|
362
394
|
// parent instantiator / executor
|
|
363
395
|
p: undefined
|
|
364
396
|
};
|
|
365
397
|
}
|
|
366
398
|
|
|
367
|
-
function instantiateAll(loader, load, parent, loaded) {
|
|
399
|
+
function instantiateAll (loader, load, parent, loaded) {
|
|
368
400
|
if (!loaded[load.id]) {
|
|
369
|
-
loaded[load.id] = true;
|
|
370
|
-
|
|
371
|
-
return Promise.resolve(load.L)
|
|
372
|
-
|
|
401
|
+
loaded[load.id] = true;
|
|
402
|
+
// load.L may be undefined for already-instantiated
|
|
403
|
+
return Promise.resolve(load.L)
|
|
404
|
+
.then(function () {
|
|
405
|
+
if (!load.p || load.p.e === null)
|
|
406
|
+
load.p = parent;
|
|
373
407
|
return Promise.all(load.d.map(function (dep) {
|
|
374
408
|
return instantiateAll(loader, dep, parent, loaded);
|
|
375
409
|
}));
|
|
376
|
-
})
|
|
377
|
-
|
|
410
|
+
})
|
|
411
|
+
.catch(function (err) {
|
|
412
|
+
if (load.er)
|
|
413
|
+
throw err;
|
|
378
414
|
load.e = null;
|
|
379
415
|
throw err;
|
|
380
416
|
});
|
|
381
417
|
}
|
|
382
418
|
}
|
|
383
419
|
|
|
384
|
-
function topLevelLoad(loader, load) {
|
|
385
|
-
return load.C = instantiateAll(loader, load, load, {})
|
|
420
|
+
function topLevelLoad (loader, load) {
|
|
421
|
+
return load.C = instantiateAll(loader, load, load, {})
|
|
422
|
+
.then(function () {
|
|
386
423
|
return postOrderExec(loader, load, {});
|
|
387
|
-
})
|
|
424
|
+
})
|
|
425
|
+
.then(function () {
|
|
388
426
|
return load.n;
|
|
389
427
|
});
|
|
390
|
-
}
|
|
428
|
+
}
|
|
391
429
|
|
|
430
|
+
// the closest we can get to call(undefined)
|
|
431
|
+
var nullContext = Object.freeze(Object.create(null));
|
|
392
432
|
|
|
393
|
-
|
|
433
|
+
// returns a promise if and only if a top-level await subgraph
|
|
394
434
|
// throws on sync errors
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
435
|
+
function postOrderExec (loader, load, seen) {
|
|
436
|
+
if (seen[load.id])
|
|
437
|
+
return;
|
|
398
438
|
seen[load.id] = true;
|
|
399
439
|
|
|
400
440
|
if (!load.e) {
|
|
401
|
-
if (load.er)
|
|
402
|
-
|
|
441
|
+
if (load.er)
|
|
442
|
+
throw load.er;
|
|
443
|
+
if (load.E)
|
|
444
|
+
return load.E;
|
|
403
445
|
return;
|
|
404
|
-
}
|
|
405
|
-
|
|
446
|
+
}
|
|
406
447
|
|
|
448
|
+
// deps execute first, unless circular
|
|
407
449
|
var depLoadPromises;
|
|
408
450
|
load.d.forEach(function (depLoad) {
|
|
409
451
|
try {
|
|
410
452
|
var depLoadPromise = postOrderExec(loader, depLoad, seen);
|
|
411
|
-
if (depLoadPromise)
|
|
412
|
-
|
|
453
|
+
if (depLoadPromise)
|
|
454
|
+
(depLoadPromises = depLoadPromises || []).push(depLoadPromise);
|
|
455
|
+
}
|
|
456
|
+
catch (err) {
|
|
413
457
|
load.e = null;
|
|
414
458
|
load.er = err;
|
|
415
459
|
throw err;
|
|
416
460
|
}
|
|
417
461
|
});
|
|
418
|
-
if (depLoadPromises)
|
|
462
|
+
if (depLoadPromises)
|
|
463
|
+
return Promise.all(depLoadPromises).then(doExec);
|
|
464
|
+
|
|
419
465
|
return doExec();
|
|
420
466
|
|
|
421
|
-
function doExec() {
|
|
467
|
+
function doExec () {
|
|
422
468
|
try {
|
|
423
469
|
var execPromise = load.e.call(nullContext);
|
|
424
|
-
|
|
425
470
|
if (execPromise) {
|
|
426
471
|
execPromise = execPromise.then(function () {
|
|
427
472
|
load.C = load.n;
|
|
428
473
|
load.E = null; // indicates completion
|
|
429
|
-
|
|
430
474
|
if (!true) ;
|
|
431
475
|
}, function (err) {
|
|
432
476
|
load.er = err;
|
|
@@ -435,59 +479,55 @@
|
|
|
435
479
|
throw err;
|
|
436
480
|
});
|
|
437
481
|
return load.E = execPromise;
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
|
|
482
|
+
}
|
|
483
|
+
// (should be a promise, but a minify optimization to leave out Promise.resolve)
|
|
441
484
|
load.C = load.n;
|
|
442
485
|
load.L = load.I = undefined;
|
|
443
|
-
}
|
|
486
|
+
}
|
|
487
|
+
catch (err) {
|
|
444
488
|
load.er = err;
|
|
445
489
|
throw err;
|
|
446
|
-
}
|
|
490
|
+
}
|
|
491
|
+
finally {
|
|
447
492
|
load.e = null;
|
|
448
493
|
}
|
|
449
494
|
}
|
|
450
495
|
}
|
|
451
496
|
|
|
452
497
|
envGlobal.System = new SystemJS();
|
|
498
|
+
|
|
453
499
|
/*
|
|
454
500
|
* SystemJS browser attachments for script and import map processing
|
|
455
501
|
*/
|
|
456
502
|
|
|
457
503
|
var importMapPromise = Promise.resolve();
|
|
458
|
-
var importMap = {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
depcache: {},
|
|
462
|
-
integrity: {}
|
|
463
|
-
}; // Scripts are processed immediately, on the first System.import, and on DOMReady.
|
|
504
|
+
var importMap = { imports: {}, scopes: {}, depcache: {}, integrity: {} };
|
|
505
|
+
|
|
506
|
+
// Scripts are processed immediately, on the first System.import, and on DOMReady.
|
|
464
507
|
// Import map scripts are processed only once (by being marked) and in order for each phase.
|
|
465
508
|
// This is to avoid using DOM mutation observers in core, although that would be an alternative.
|
|
466
|
-
|
|
467
509
|
var processFirst = hasDocument;
|
|
468
|
-
|
|
469
510
|
systemJSPrototype.prepareImport = function (doProcessScripts) {
|
|
470
511
|
if (processFirst || doProcessScripts) {
|
|
471
512
|
processScripts();
|
|
472
513
|
processFirst = false;
|
|
473
514
|
}
|
|
474
|
-
|
|
475
515
|
return importMapPromise;
|
|
476
516
|
};
|
|
477
|
-
|
|
478
517
|
if (hasDocument) {
|
|
479
518
|
processScripts();
|
|
480
519
|
window.addEventListener('DOMContentLoaded', processScripts);
|
|
481
520
|
}
|
|
482
521
|
|
|
483
|
-
function processScripts() {
|
|
522
|
+
function processScripts () {
|
|
484
523
|
[].forEach.call(document.querySelectorAll('script'), function (script) {
|
|
485
524
|
if (script.sp) // sp marker = systemjs processed
|
|
486
|
-
return;
|
|
487
|
-
|
|
525
|
+
return;
|
|
526
|
+
// TODO: deprecate systemjs-module in next major now that we have auto import
|
|
488
527
|
if (script.type === 'systemjs-module') {
|
|
489
528
|
script.sp = true;
|
|
490
|
-
if (!script.src)
|
|
529
|
+
if (!script.src)
|
|
530
|
+
return;
|
|
491
531
|
System.import(script.src.slice(0, 7) === 'import:' ? script.src.slice(7) : resolveUrl(script.src, baseUrl)).catch(function (e) {
|
|
492
532
|
// if there is a script load error, dispatch an "error" event
|
|
493
533
|
// on the script tag.
|
|
@@ -496,24 +536,21 @@
|
|
|
496
536
|
event.initEvent('error', false, false);
|
|
497
537
|
script.dispatchEvent(event);
|
|
498
538
|
}
|
|
499
|
-
|
|
500
539
|
return Promise.reject(e);
|
|
501
540
|
});
|
|
502
|
-
}
|
|
541
|
+
}
|
|
542
|
+
else if (script.type === 'systemjs-importmap') {
|
|
503
543
|
script.sp = true;
|
|
504
|
-
var fetchPromise = script.src ? fetch(script.src, {
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
if (!res.ok) throw Error(res.status);
|
|
544
|
+
var fetchPromise = script.src ? fetch(script.src, { integrity: script.integrity }).then(function (res) {
|
|
545
|
+
if (!res.ok)
|
|
546
|
+
throw Error( res.status );
|
|
508
547
|
return res.text();
|
|
509
548
|
}).catch(function (err) {
|
|
510
|
-
err.message = errMsg('W4',
|
|
549
|
+
err.message = errMsg('W4', script.src ) + '\n' + err.message;
|
|
511
550
|
console.warn(err);
|
|
512
|
-
|
|
513
551
|
if (typeof script.onerror === 'function') {
|
|
514
|
-
|
|
552
|
+
script.onerror();
|
|
515
553
|
}
|
|
516
|
-
|
|
517
554
|
return '{}';
|
|
518
555
|
}) : script.innerHTML;
|
|
519
556
|
importMapPromise = importMapPromise.then(function () {
|
|
@@ -525,22 +562,20 @@
|
|
|
525
562
|
});
|
|
526
563
|
}
|
|
527
564
|
|
|
528
|
-
function extendImportMap(importMap, newMapText, newMapUrl) {
|
|
565
|
+
function extendImportMap (importMap, newMapText, newMapUrl) {
|
|
529
566
|
var newMap = {};
|
|
530
|
-
|
|
531
567
|
try {
|
|
532
568
|
newMap = JSON.parse(newMapText);
|
|
533
569
|
} catch (err) {
|
|
534
|
-
console.warn(Error(errMsg('W5')));
|
|
570
|
+
console.warn(Error(( errMsg('W5') )));
|
|
535
571
|
}
|
|
536
|
-
|
|
537
572
|
resolveAndComposeImportMap(newMap, newMapUrl, importMap);
|
|
538
573
|
}
|
|
574
|
+
|
|
539
575
|
/*
|
|
540
576
|
* Script instantiation loading
|
|
541
577
|
*/
|
|
542
578
|
|
|
543
|
-
|
|
544
579
|
if (hasDocument) {
|
|
545
580
|
window.addEventListener('error', function (evt) {
|
|
546
581
|
lastWindowErrorUrl = evt.filename;
|
|
@@ -551,79 +586,79 @@
|
|
|
551
586
|
|
|
552
587
|
systemJSPrototype.createScript = function (url) {
|
|
553
588
|
var script = document.createElement('script');
|
|
554
|
-
script.async = true;
|
|
589
|
+
script.async = true;
|
|
590
|
+
// Only add cross origin for actual cross origin
|
|
555
591
|
// this is because Safari triggers for all
|
|
556
592
|
// - https://bugs.webkit.org/show_bug.cgi?id=171566
|
|
557
|
-
|
|
558
|
-
|
|
593
|
+
if (url.indexOf(baseOrigin + '/'))
|
|
594
|
+
script.crossOrigin = 'anonymous';
|
|
559
595
|
var integrity = importMap.integrity[url];
|
|
560
|
-
if (integrity)
|
|
596
|
+
if (integrity)
|
|
597
|
+
script.integrity = integrity;
|
|
561
598
|
script.src = url;
|
|
562
599
|
return script;
|
|
563
|
-
};
|
|
564
|
-
|
|
600
|
+
};
|
|
565
601
|
|
|
602
|
+
// Auto imports -> script tags can be inlined directly for load phase
|
|
566
603
|
var lastAutoImportDeps, lastAutoImportTimeout;
|
|
567
604
|
var autoImportCandidates = {};
|
|
568
605
|
var systemRegister = systemJSPrototype.register;
|
|
569
606
|
var inlineScriptCount = 0;
|
|
570
|
-
|
|
571
607
|
systemJSPrototype.register = function (deps, declare, autoUrl) {
|
|
572
608
|
if (hasDocument && document.readyState === 'loading' && typeof deps !== 'string') {
|
|
573
609
|
var scripts = document.querySelectorAll('script[src]');
|
|
574
610
|
var lastScript = scripts[scripts.length - 1];
|
|
575
|
-
var lastAutoImportUrl
|
|
611
|
+
var lastAutoImportUrl
|
|
576
612
|
lastAutoImportDeps = deps;
|
|
577
|
-
|
|
578
613
|
if (lastScript && lastScript.src) {
|
|
579
614
|
lastAutoImportUrl = lastScript.src;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
615
|
+
}
|
|
616
|
+
else if (autoUrl) {
|
|
617
|
+
lastAutoImportUrl = autoUrl
|
|
618
|
+
}
|
|
619
|
+
else {
|
|
620
|
+
inlineScriptCount++
|
|
584
621
|
lastAutoImportUrl = document.location.href + "__inline_script__" + inlineScriptCount;
|
|
585
|
-
}
|
|
622
|
+
}
|
|
623
|
+
// if this is already a System load, then the instantiate has already begun
|
|
586
624
|
// so this re-import has no consequence
|
|
587
|
-
|
|
588
|
-
|
|
589
625
|
var loader = this;
|
|
590
626
|
lastAutoImportTimeout = setTimeout(function () {
|
|
591
627
|
autoImportCandidates[lastAutoImportUrl] = [deps, declare];
|
|
592
628
|
loader.import(lastAutoImportUrl);
|
|
593
629
|
});
|
|
594
|
-
}
|
|
630
|
+
}
|
|
631
|
+
else {
|
|
595
632
|
lastAutoImportDeps = undefined;
|
|
596
633
|
}
|
|
597
|
-
|
|
598
634
|
return systemRegister.call(this, deps, declare);
|
|
599
635
|
};
|
|
600
636
|
|
|
601
637
|
var lastWindowErrorUrl, lastWindowError;
|
|
602
|
-
|
|
603
638
|
systemJSPrototype.instantiate = function (url, firstParentUrl) {
|
|
604
639
|
var autoImportRegistration = autoImportCandidates[url];
|
|
605
|
-
|
|
606
640
|
if (autoImportRegistration) {
|
|
607
641
|
delete autoImportCandidates[url];
|
|
608
642
|
return autoImportRegistration;
|
|
609
643
|
}
|
|
610
|
-
|
|
611
644
|
var loader = this;
|
|
612
645
|
return Promise.resolve(systemJSPrototype.createScript(url)).then(function (script) {
|
|
613
646
|
return new Promise(function (resolve, reject) {
|
|
614
647
|
script.addEventListener('error', function () {
|
|
615
|
-
reject(Error(errMsg(3,
|
|
648
|
+
reject(Error(errMsg(3, [url, firstParentUrl].join(', ') )));
|
|
616
649
|
});
|
|
617
650
|
script.addEventListener('load', function () {
|
|
618
|
-
document.head.removeChild(script);
|
|
651
|
+
document.head.removeChild(script);
|
|
652
|
+
// Note that if an error occurs that isn't caught by this if statement,
|
|
619
653
|
// that getRegister will return null and a "did not instantiate" error will be thrown.
|
|
620
|
-
|
|
621
654
|
if (lastWindowErrorUrl === url) {
|
|
622
655
|
reject(lastWindowError);
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
656
|
+
}
|
|
657
|
+
else {
|
|
658
|
+
var register = loader.getRegister(url);
|
|
659
|
+
// Clear any auto import registration for dynamic import scripts during load
|
|
660
|
+
if (register && register[0] === lastAutoImportDeps)
|
|
661
|
+
clearTimeout(lastAutoImportTimeout);
|
|
627
662
|
resolve(register);
|
|
628
663
|
}
|
|
629
664
|
});
|
|
@@ -631,31 +666,35 @@
|
|
|
631
666
|
});
|
|
632
667
|
});
|
|
633
668
|
};
|
|
669
|
+
|
|
634
670
|
/*
|
|
635
671
|
* Fetch loader, sets up shouldFetch and fetch hooks
|
|
636
672
|
*/
|
|
637
|
-
|
|
638
|
-
|
|
639
673
|
systemJSPrototype.shouldFetch = function () {
|
|
640
674
|
return false;
|
|
641
675
|
};
|
|
676
|
+
if (typeof fetch !== 'undefined')
|
|
677
|
+
systemJSPrototype.fetch = fetch;
|
|
642
678
|
|
|
643
|
-
if (typeof fetch !== 'undefined') systemJSPrototype.fetch = fetch;
|
|
644
679
|
var instantiate = systemJSPrototype.instantiate;
|
|
645
680
|
var jsContentTypeRegEx = /^(text|application)\/(x-)?javascript(;|$)/;
|
|
646
|
-
|
|
647
681
|
systemJSPrototype.instantiate = function (url, parent) {
|
|
648
682
|
var loader = this;
|
|
649
|
-
if (!this.shouldFetch(url))
|
|
683
|
+
if (!this.shouldFetch(url))
|
|
684
|
+
return instantiate.apply(this, arguments);
|
|
650
685
|
return this.fetch(url, {
|
|
651
686
|
credentials: 'same-origin',
|
|
652
687
|
integrity: importMap.integrity[url]
|
|
653
|
-
})
|
|
654
|
-
|
|
688
|
+
})
|
|
689
|
+
.then(function (res) {
|
|
690
|
+
if (!res.ok)
|
|
691
|
+
throw Error(errMsg(7, [res.status, res.statusText, url, parent].join(', ') ));
|
|
655
692
|
var contentType = res.headers.get('content-type');
|
|
656
|
-
if (!contentType || !jsContentTypeRegEx.test(contentType))
|
|
693
|
+
if (!contentType || !jsContentTypeRegEx.test(contentType))
|
|
694
|
+
throw Error(errMsg(4, contentType ));
|
|
657
695
|
return res.text().then(function (source) {
|
|
658
|
-
if (source.indexOf('//# sourceURL=') < 0)
|
|
696
|
+
if (source.indexOf('//# sourceURL=') < 0)
|
|
697
|
+
source += '\n//# sourceURL=' + url;
|
|
659
698
|
(0, eval)(source);
|
|
660
699
|
return loader.getRegister(url);
|
|
661
700
|
});
|
|
@@ -663,44 +702,44 @@
|
|
|
663
702
|
};
|
|
664
703
|
|
|
665
704
|
systemJSPrototype.resolve = function (id, parentUrl) {
|
|
666
|
-
parentUrl = parentUrl || !true
|
|
667
|
-
return resolveImportMap(importMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);
|
|
705
|
+
parentUrl = parentUrl || !true || baseUrl;
|
|
706
|
+
return resolveImportMap(( importMap), resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);
|
|
668
707
|
};
|
|
669
708
|
|
|
670
|
-
function throwUnresolved(id, parentUrl) {
|
|
671
|
-
throw Error(errMsg(8,
|
|
709
|
+
function throwUnresolved (id, parentUrl) {
|
|
710
|
+
throw Error(errMsg(8, [id, parentUrl].join(', ') ));
|
|
672
711
|
}
|
|
673
712
|
|
|
674
713
|
var systemInstantiate = systemJSPrototype.instantiate;
|
|
675
|
-
|
|
676
714
|
systemJSPrototype.instantiate = function (url, firstParentUrl) {
|
|
677
|
-
var preloads = importMap.depcache[url];
|
|
678
|
-
|
|
715
|
+
var preloads = ( importMap).depcache[url];
|
|
679
716
|
if (preloads) {
|
|
680
|
-
for (var i = 0; i < preloads.length; i++)
|
|
717
|
+
for (var i = 0; i < preloads.length; i++)
|
|
718
|
+
getOrCreateLoad(this, this.resolve(preloads[i], url), url);
|
|
681
719
|
}
|
|
682
|
-
|
|
683
720
|
return systemInstantiate.call(this, url, firstParentUrl);
|
|
684
721
|
};
|
|
722
|
+
|
|
685
723
|
/*
|
|
686
724
|
* Supports loading System.register in workers
|
|
687
725
|
*/
|
|
688
726
|
|
|
727
|
+
if (hasSelf && typeof importScripts === 'function')
|
|
728
|
+
systemJSPrototype.instantiate = function (url) {
|
|
729
|
+
var loader = this;
|
|
730
|
+
return Promise.resolve().then(function () {
|
|
731
|
+
importScripts(url);
|
|
732
|
+
return loader.getRegister(url);
|
|
733
|
+
});
|
|
734
|
+
};
|
|
689
735
|
|
|
690
|
-
|
|
691
|
-
var loader = this;
|
|
692
|
-
return Promise.resolve().then(function () {
|
|
693
|
-
importScripts(url);
|
|
694
|
-
return loader.getRegister(url);
|
|
695
|
-
});
|
|
696
|
-
};
|
|
697
|
-
})();
|
|
736
|
+
}());
|
|
698
737
|
|
|
699
|
-
(function
|
|
738
|
+
(function(){
|
|
700
739
|
var envGlobal = typeof self !== 'undefined' ? self : global;
|
|
701
740
|
var System = envGlobal.System;
|
|
702
741
|
var register = System.register;
|
|
703
|
-
var registerRegistry = Object.create(null)
|
|
742
|
+
var registerRegistry = Object.create(null)
|
|
704
743
|
|
|
705
744
|
System.register = function (name, deps, declare) {
|
|
706
745
|
if (typeof name !== 'string') return register.apply(this, arguments);
|
|
@@ -709,11 +748,10 @@
|
|
|
709
748
|
var url = System.resolve(`./${name}`);
|
|
710
749
|
registerRegistry[url] = define;
|
|
711
750
|
return register.call(System, deps, declare, url);
|
|
712
|
-
})
|
|
751
|
+
})
|
|
713
752
|
};
|
|
714
753
|
|
|
715
754
|
var instantiate = System.instantiate;
|
|
716
|
-
|
|
717
755
|
System.instantiate = function (url, firstParentUrl) {
|
|
718
756
|
var result = registerRegistry[url];
|
|
719
757
|
|
|
@@ -726,15 +764,13 @@
|
|
|
726
764
|
};
|
|
727
765
|
|
|
728
766
|
var getRegister = System.getRegister;
|
|
729
|
-
|
|
730
767
|
System.getRegister = function (url) {
|
|
731
768
|
// Calling getRegister() because other extras need to know it was called so they can perform side effects
|
|
732
769
|
var register = getRegister.call(this, url);
|
|
733
770
|
var result = registerRegistry[url] || register;
|
|
734
771
|
return result;
|
|
735
772
|
};
|
|
736
|
-
}
|
|
737
|
-
//# sourceMappingURL=assets/s.js-fcba0e35.map</script>
|
|
773
|
+
}());</script>
|
|
738
774
|
</head>
|
|
739
775
|
|
|
740
776
|
<body>
|