es-module-shims 2.4.1 → 2.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.
@@ -1,285 +1,280 @@
1
- /** ES Module Shims @version 2.4.1 */
2
- (function (exports) {
3
-
4
- let invalidate;
5
- const hotReload$1 = url => invalidate(new URL(url, baseUrl).href);
6
- const initHotReload = () => {
7
- let _importHook = importHook,
8
- _resolveHook = resolveHook,
9
- _metaHook = metaHook;
10
-
11
- let defaultResolve;
12
- let hotResolveHook = (id, parent, _defaultResolve) => {
13
- if (!defaultResolve) defaultResolve = _defaultResolve;
14
- const originalParent = stripVersion(parent);
15
- const url = stripVersion(defaultResolve(id, originalParent));
16
- const parents = getHotState(url).p;
17
- if (!parents.includes(originalParent)) parents.push(originalParent);
18
- return toVersioned(url);
19
- };
20
- const hotImportHook = (url, _, __, source, sourceType) => {
21
- const hotState = getHotState(url);
22
- hotState.e = typeof source === 'string' ? source : true;
23
- hotState.t = sourceType;
24
- };
25
- const hotMetaHook = (metaObj, url) => {
26
- metaObj.hot = new Hot(url);
27
- };
28
-
29
- const Hot = class Hot {
30
- constructor(url) {
31
- this.data = getHotState((this.url = stripVersion(url))).d;
32
- }
33
- accept(deps, cb) {
34
- if (typeof deps === 'function') {
35
- cb = deps;
36
- deps = null;
37
- }
38
- const hotState = getHotState(this.url);
39
- if (!hotState.A) return;
40
- (hotState.a = hotState.a || []).push([
41
- typeof deps === 'string' ? defaultResolve(deps, this.url)
42
- : deps ? deps.map(d => defaultResolve(d, this.url))
43
- : null,
44
- cb
45
- ]);
46
- }
47
- dispose(cb) {
48
- getHotState(this.url).u = cb;
49
- }
50
- invalidate() {
51
- const hotState = getHotState(this.url);
52
- hotState.a = null;
53
- hotState.A = true;
54
- const seen = [this.url];
55
- for (const p of hotState.p) invalidate(p, this.url, seen);
56
- }
57
- };
58
-
59
- const versionedRegEx = /\?v=\d+$/;
60
- const stripVersion = url => {
61
- const versionMatch = url.match(versionedRegEx);
62
- return versionMatch ? url.slice(0, -versionMatch[0].length) : url;
63
- };
64
-
65
- const toVersioned = url => {
66
- const v = getHotState(url).v;
67
- return url + (v ? '?v=' + v : '');
68
- };
69
-
70
- let hotRegistry = {},
71
- curInvalidationRoots = new Set(),
72
- curInvalidationInterval;
73
- const getHotState = url =>
74
- hotRegistry[url] ||
75
- (hotRegistry[url] = {
76
- // version
77
- v: 0,
78
- // accept list ([deps, cb] pairs)
79
- a: null,
80
- // accepting acceptors
81
- A: true,
82
- // unload callback
83
- u: null,
84
- // entry point or inline script source
85
- e: false,
86
- // hot data
87
- d: {},
88
- // parents
89
- p: [],
90
- // source type
91
- t: undefined
92
- });
1
+ /** ES Module Shims @version 2.5.1 */
2
+ (function () {
93
3
 
94
- invalidate = (url, fromUrl, seen = []) => {
95
- if (!seen.includes(url)) {
96
- seen.push(url);
97
- console.info(`es-module-shims: hot reload ${url}`);
98
- const hotState = hotRegistry[url];
99
- if (hotState) {
100
- hotState.A = false;
101
- if (
102
- hotState.a &&
103
- hotState.a.some(([d]) => d && (typeof d === 'string' ? d === fromUrl : d.includes(fromUrl)))
104
- ) {
105
- curInvalidationRoots.add(fromUrl);
106
- } else {
107
- if (hotState.e || hotState.a) curInvalidationRoots.add(url);
108
- hotState.v++;
109
- if (!hotState.a) for (const parent of hotState.p) invalidate(parent, url, seen);
110
- }
111
- }
112
- }
113
- if (!curInvalidationInterval)
114
- curInvalidationInterval = setTimeout(() => {
115
- curInvalidationInterval = null;
116
- const earlyRoots = new Set();
117
- for (const root of curInvalidationRoots) {
118
- const hotState = hotRegistry[root];
119
- topLevelLoad(
120
- toVersioned(root),
121
- baseUrl,
122
- defaultFetchOpts,
123
- typeof hotState.e === 'string' ? hotState.e : undefined,
124
- false,
125
- undefined,
126
- hotState.t
127
- ).then(m => {
128
- if (hotState.a) {
129
- hotState.a.every(([d, c]) => d === null && !earlyRoots.has(c) && c(m));
130
- // unload should be the latest unload handler from the just loaded module
131
- if (hotState.u) {
132
- hotState.u(hotState.d);
133
- hotState.u = null;
134
- }
135
- }
136
- for (const parent of hotState.p) {
137
- const hotState = hotRegistry[parent];
138
- if (hotState && hotState.a)
139
- hotState.a.every(async ([d, c]) => {
140
- return (
141
- d &&
142
- !earlyRoots.has(c) &&
143
- (typeof d === 'string' ?
144
- d === root && c(m)
145
- : c(await Promise.all(d.map(d => (earlyRoots.push(c), importShim(toVersioned(d)))))))
146
- );
147
- });
148
- }
149
- }, throwError);
150
- }
151
- curInvalidationRoots = new Set();
152
- }, hotReloadInterval);
153
- };
154
-
155
- return [
156
- _importHook ? chain(_importHook, hotImportHook) : hotImportHook,
157
- _resolveHook ?
158
- (id, parent, defaultResolve) =>
159
- hotResolveHook(id, parent, (id, parent) => _resolveHook(id, parent, defaultResolve))
160
- : hotResolveHook,
161
- _metaHook ? chain(_metaHook, hotMetaHook) : hotMetaHook
162
- ];
163
- };
164
-
165
- const hasDocument = typeof document !== 'undefined';
166
-
167
- const noop = () => {};
168
-
169
- const chain = (a, b) =>
170
- function () {
171
- a.apply(this, arguments);
172
- b.apply(this, arguments);
4
+ let invalidate;
5
+ const hotReload$1 = url => invalidate(new URL(url, baseUrl).href);
6
+ const initHotReload = () => {
7
+ let _importHook = importHook,
8
+ _resolveHook = resolveHook,
9
+ _metaHook = metaHook;
10
+
11
+ let defaultResolve;
12
+ let hotResolveHook = (id, parent, _defaultResolve) => {
13
+ if (!defaultResolve) defaultResolve = _defaultResolve;
14
+ const originalParent = stripVersion(parent);
15
+ const url = stripVersion(defaultResolve(id, originalParent));
16
+ const hotState = getHotState(url);
17
+ const parents = hotState.p;
18
+ if (!parents.includes(originalParent)) parents.push(originalParent);
19
+ return toVersioned(url, hotState);
20
+ };
21
+ const hotImportHook = (url, _, __, source, sourceType) => {
22
+ const hotState = getHotState(url);
23
+ hotState.e = typeof source === 'string' ? source : true;
24
+ hotState.t = sourceType;
25
+ };
26
+ const hotMetaHook = (metaObj, url) => {
27
+ metaObj.hot = new Hot(url);
173
28
  };
174
29
 
175
- const dynamicImport = (u, errUrl) => import(u);
176
-
177
- const defineValue = (obj, prop, value) =>
178
- Object.defineProperty(obj, prop, { writable: false, configurable: false, value });
179
-
180
- const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
181
-
182
- const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
183
- Object.assign(esmsInitOptions, self.esmsInitOptions || {});
184
-
185
- const version = "2.4.1";
186
-
187
- const r$1 = esmsInitOptions.version;
188
- if (self.importShim || (r$1 && r$1 !== version)) {
189
- console.info(
190
- `es-module-shims: skipping initialization as ${r$1 ? `configured for ${r$1}` : 'another instance has already registered'}`
191
- );
192
- return;
193
- }
194
-
195
- // shim mode is determined on initialization, no late shim mode
196
- const shimMode =
197
- esmsInitOptions.shimMode ||
198
- (hasDocument &&
199
- document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]')
200
- .length > 0);
201
-
202
- let importHook,
203
- resolveHook,
204
- fetchHook = fetch,
205
- metaHook,
206
- tsTransform =
207
- esmsInitOptions.tsTransform ||
208
- (hasDocument && document.currentScript && document.currentScript.src.replace(/(\.\w+)?\.js$/, '-typescript.js')) ||
209
- './es-module-shims-typescript.js';
210
-
211
- const defaultFetchOpts = { credentials: 'same-origin' };
212
-
213
- const {
214
- revokeBlobURLs,
215
- noLoadEventRetriggers,
216
- enforceIntegrity,
217
- hotReload,
218
- hotReloadInterval = 100,
219
- nativePassthrough = !hotReload
220
- } = esmsInitOptions;
221
-
222
- const globalHook = name => (typeof name === 'string' ? self[name] : name);
223
-
224
- if (esmsInitOptions.onimport) importHook = globalHook(esmsInitOptions.onimport);
225
- if (esmsInitOptions.resolve) resolveHook = globalHook(esmsInitOptions.resolve);
226
- if (esmsInitOptions.fetch) fetchHook = globalHook(esmsInitOptions.fetch);
227
- if (esmsInitOptions.meta) metaHook = globalHook(esmsInitOptions.meta);
228
-
229
- if (hotReload) [importHook, resolveHook, metaHook] = initHotReload();
230
-
231
- const mapOverrides = esmsInitOptions.mapOverrides;
232
-
233
- let nonce = esmsInitOptions.nonce;
234
- if (!nonce && hasDocument) {
235
- const nonceElement = document.querySelector('script[nonce]');
236
- if (nonceElement) nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
237
- }
238
-
239
- const onerror = globalHook(esmsInitOptions.onerror || console.error.bind(console));
240
-
241
- const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
242
- const enableAll = esmsInitOptions.polyfillEnable === 'all' || enable.includes('all');
243
- const wasmInstancePhaseEnabled =
244
- enable.includes('wasm-modules') || enable.includes('wasm-module-instances') || enableAll;
245
- const wasmSourcePhaseEnabled =
246
- enable.includes('wasm-modules') || enable.includes('wasm-module-sources') || enableAll;
247
- const deferPhaseEnabled = enable.includes('import-defer') || enableAll;
30
+ const Hot = class Hot {
31
+ constructor(url) {
32
+ this.data = getHotState((this.url = stripVersion(url))).d;
33
+ }
34
+ accept(deps, cb) {
35
+ if (typeof deps === 'function') {
36
+ cb = deps;
37
+ deps = null;
38
+ }
39
+ const hotState = getHotState(this.url);
40
+ if (!hotState.A) return;
41
+ (hotState.a = hotState.a || []).push([
42
+ typeof deps === 'string' ? defaultResolve(deps, this.url)
43
+ : deps ? deps.map(d => defaultResolve(d, this.url))
44
+ : null,
45
+ cb
46
+ ]);
47
+ }
48
+ dispose(cb) {
49
+ getHotState(this.url).u = cb;
50
+ }
51
+ invalidate() {
52
+ const hotState = getHotState(this.url);
53
+ hotState.a = null;
54
+ hotState.A = true;
55
+ const seen = [this.url];
56
+ for (const p of hotState.p) invalidate(p, this.url, seen);
57
+ }
58
+ };
248
59
 
249
- const onpolyfill =
250
- esmsInitOptions.onpolyfill ?
251
- globalHook(esmsInitOptions.onpolyfill)
252
- : () => {
253
- console.log(`%c^^ Module error above is polyfilled and can be ignored ^^`, 'font-weight:900;color:#391');
254
- };
60
+ const versionedRegEx = /\?v=\d+$/;
61
+ const stripVersion = url => {
62
+ const versionMatch = url.match(versionedRegEx);
63
+ return versionMatch ? url.slice(0, -versionMatch[0].length) : url;
64
+ };
255
65
 
256
- const baseUrl =
257
- hasDocument ?
258
- document.baseURI
259
- : `${location.protocol}//${location.host}${
260
- location.pathname.includes('/') ?
261
- location.pathname.slice(0, location.pathname.lastIndexOf('/') + 1)
262
- : location.pathname
263
- }`;
66
+ const toVersioned = (url, hotState) => {
67
+ const { v } = hotState;
68
+ return url + (v ? '?v=' + v : '');
69
+ };
264
70
 
265
- const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], { type }));
266
- let { skip } = esmsInitOptions;
267
- if (Array.isArray(skip)) {
268
- const l = skip.map(s => new URL(s, baseUrl).href);
269
- skip = s => l.some(i => (i[i.length - 1] === '/' && s.startsWith(i)) || s === i);
270
- } else if (typeof skip === 'string') {
271
- const r = new RegExp(skip);
272
- skip = s => r.test(s);
273
- } else if (skip instanceof RegExp) {
274
- skip = s => skip.test(s);
275
- }
71
+ let hotRegistry = {},
72
+ curInvalidationRoots = new Set(),
73
+ curInvalidationInterval;
74
+ const getHotState = url =>
75
+ hotRegistry[url] ||
76
+ (hotRegistry[url] = {
77
+ // version
78
+ v: 0,
79
+ // accept list ([deps, cb] pairs)
80
+ a: null,
81
+ // accepting acceptors
82
+ A: true,
83
+ // unload callback
84
+ u: null,
85
+ // entry point or inline script source
86
+ e: false,
87
+ // hot data
88
+ d: {},
89
+ // parents
90
+ p: [],
91
+ // source type
92
+ t: undefined
93
+ });
276
94
 
277
- const dispatchError = error => self.dispatchEvent(Object.assign(new Event('error'), { error }));
95
+ invalidate = (url, fromUrl, seen = []) => {
96
+ const hotState = hotRegistry[url];
97
+ if (!hotState || seen.includes(url)) return false;
98
+ seen.push(url);
99
+ console.info(`es-module-shims: hot reload ${url}`);
100
+ hotState.A = false;
101
+ if (
102
+ fromUrl &&
103
+ hotState.a &&
104
+ hotState.a.some(([d]) => d && (typeof d === 'string' ? d === fromUrl : d.includes(fromUrl)))
105
+ ) {
106
+ curInvalidationRoots.add(fromUrl);
107
+ } else {
108
+ if (hotState.e || hotState.a) curInvalidationRoots.add(url);
109
+ hotState.v++;
110
+ if (!hotState.a) for (const parent of hotState.p) invalidate(parent, url, seen);
111
+ }
112
+ if (!curInvalidationInterval) curInvalidationInterval = setTimeout(handleInvalidations, hotReloadInterval);
113
+ return true;
114
+ };
278
115
 
279
- const throwError = err => {
280
- (self.reportError || dispatchError)(err), void onerror(err);
281
- };
116
+ const handleInvalidations = () => {
117
+ curInvalidationInterval = null;
118
+ const earlyRoots = new Set();
119
+ for (const root of curInvalidationRoots) {
120
+ const hotState = hotRegistry[root];
121
+ topLevelLoad(
122
+ toVersioned(root, hotState),
123
+ baseUrl,
124
+ defaultFetchOpts,
125
+ typeof hotState.e === 'string' ? hotState.e : undefined,
126
+ false,
127
+ undefined,
128
+ hotState.t
129
+ ).then(m => {
130
+ if (hotState.a) {
131
+ hotState.a.every(([d, c]) => d === null && !earlyRoots.has(c) && c(m));
132
+ // unload should be the latest unload handler from the just loaded module
133
+ if (hotState.u) {
134
+ hotState.u(hotState.d);
135
+ hotState.u = null;
136
+ }
137
+ }
138
+ for (const parent of hotState.p) {
139
+ const hotState = hotRegistry[parent];
140
+ if (hotState && hotState.a)
141
+ hotState.a.every(async ([d, c]) => {
142
+ return (
143
+ d &&
144
+ !earlyRoots.has(c) &&
145
+ (typeof d === 'string' ?
146
+ d === root && c(m)
147
+ : c(await Promise.all(d.map(d => (earlyRoots.push(c), importShim(toVersioned(d, getHotState(d))))))))
148
+ );
149
+ });
150
+ }
151
+ }, throwError);
152
+ }
153
+ curInvalidationRoots = new Set();
154
+ };
282
155
 
156
+ return [
157
+ _importHook ? chain(_importHook, hotImportHook) : hotImportHook,
158
+ _resolveHook ?
159
+ (id, parent, defaultResolve) =>
160
+ hotResolveHook(id, parent, (id, parent) => _resolveHook(id, parent, defaultResolve))
161
+ : hotResolveHook,
162
+ _metaHook ? chain(_metaHook, hotMetaHook) : hotMetaHook
163
+ ];
164
+ };
165
+
166
+ const hasDocument = typeof document !== 'undefined';
167
+
168
+ const noop = () => {};
169
+
170
+ const dynamicImport = (u, errUrl) => import(u);
171
+
172
+ const defineValue = (obj, prop, value) =>
173
+ Object.defineProperty(obj, prop, { writable: false, configurable: false, value });
174
+
175
+ const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
176
+
177
+ const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
178
+ Object.assign(esmsInitOptions, self.esmsInitOptions || {});
179
+
180
+ const version = "2.5.1";
181
+
182
+ const r$1 = esmsInitOptions.version;
183
+ if (self.importShim || (r$1 && r$1 !== version)) {
184
+ console.info(
185
+ `es-module-shims: skipping initialization as ${r$1 ? `configured for ${r$1}` : 'another instance has already registered'}`
186
+ );
187
+ return;
188
+ }
189
+
190
+ // shim mode is determined on initialization, no late shim mode
191
+ const shimMode =
192
+ esmsInitOptions.shimMode ||
193
+ (hasDocument &&
194
+ document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]')
195
+ .length > 0);
196
+
197
+ let importHook,
198
+ resolveHook,
199
+ fetchHook = fetch,
200
+ metaHook,
201
+ tsTransform =
202
+ esmsInitOptions.tsTransform ||
203
+ (hasDocument && document.currentScript && document.currentScript.src.replace(/(\.\w+)?\.js$/, '-typescript.js')) ||
204
+ './es-module-shims-typescript.js';
205
+
206
+ const defaultFetchOpts = { credentials: 'same-origin' };
207
+
208
+ const {
209
+ revokeBlobURLs,
210
+ noLoadEventRetriggers,
211
+ enforceIntegrity,
212
+ hotReload,
213
+ hotReloadInterval = 100,
214
+ nativePassthrough = !hotReload
215
+ } = esmsInitOptions;
216
+
217
+ const globalHook = name => (typeof name === 'string' ? self[name] : name);
218
+
219
+ if (esmsInitOptions.onimport) importHook = globalHook(esmsInitOptions.onimport);
220
+ if (esmsInitOptions.resolve) resolveHook = globalHook(esmsInitOptions.resolve);
221
+ if (esmsInitOptions.fetch) fetchHook = globalHook(esmsInitOptions.fetch);
222
+ if (esmsInitOptions.meta) metaHook = globalHook(esmsInitOptions.meta);
223
+
224
+ if (hotReload) [importHook, resolveHook, metaHook] = initHotReload();
225
+
226
+ const mapOverrides = esmsInitOptions.mapOverrides;
227
+
228
+ let nonce = esmsInitOptions.nonce;
229
+ if (!nonce && hasDocument) {
230
+ const nonceElement = document.querySelector('script[nonce]');
231
+ if (nonceElement) nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
232
+ }
233
+
234
+ const onerror = globalHook(esmsInitOptions.onerror || console.error.bind(console));
235
+
236
+ const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
237
+ const enableAll = esmsInitOptions.polyfillEnable === 'all' || enable.includes('all');
238
+ const wasmInstancePhaseEnabled =
239
+ enable.includes('wasm-modules') || enable.includes('wasm-module-instances') || enableAll;
240
+ const wasmSourcePhaseEnabled =
241
+ enable.includes('wasm-modules') || enable.includes('wasm-module-sources') || enableAll;
242
+ const deferPhaseEnabled = enable.includes('import-defer') || enableAll;
243
+
244
+ const onpolyfill =
245
+ esmsInitOptions.onpolyfill ?
246
+ globalHook(esmsInitOptions.onpolyfill)
247
+ : () => {
248
+ console.log(`%c^^ Module error above is polyfilled and can be ignored ^^`, 'font-weight:900;color:#391');
249
+ };
250
+
251
+ const baseUrl =
252
+ hasDocument ?
253
+ document.baseURI
254
+ : `${location.protocol}//${location.host}${
255
+ location.pathname.includes('/') ?
256
+ location.pathname.slice(0, location.pathname.lastIndexOf('/') + 1)
257
+ : location.pathname
258
+ }`;
259
+
260
+ const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], { type }));
261
+ let { skip } = esmsInitOptions;
262
+ if (Array.isArray(skip)) {
263
+ const l = skip.map(s => new URL(s, baseUrl).href);
264
+ skip = s => l.some(i => (i[i.length - 1] === '/' && s.startsWith(i)) || s === i);
265
+ } else if (typeof skip === 'string') {
266
+ const r = new RegExp(skip);
267
+ skip = s => r.test(s);
268
+ } else if (skip instanceof RegExp) {
269
+ skip = s => skip.test(s);
270
+ }
271
+
272
+ const dispatchError = error => self.dispatchEvent(Object.assign(new Event('error'), { error }));
273
+
274
+ const throwError = err => {
275
+ (self.reportError || dispatchError)(err), void onerror(err);
276
+ };
277
+
283
278
  const fromParent = parent => (parent ? ` imported from ${parent}` : '');
284
279
 
285
280
  const backslashRegEx = /\\/g;
@@ -476,994 +471,998 @@
476
471
  }
477
472
  };
478
473
 
479
- // support browsers without dynamic import support (eg Firefox 6x)
480
- let supportsJsonType = false;
481
- let supportsCssType = false;
482
-
483
- const supports = hasDocument && HTMLScriptElement.supports;
484
-
485
- let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
486
- let supportsWasmInstancePhase = false;
487
- let supportsWasmSourcePhase = false;
488
- let supportsMultipleImportMaps = false;
489
-
490
- const wasmBytes = [0, 97, 115, 109, 1, 0, 0, 0];
491
-
492
- let featureDetectionPromise = (async function () {
493
- if (!hasDocument)
494
- return Promise.all([
495
- import(createBlob(`import"${createBlob('{}', 'text/json')}"with{type:"json"}`)).then(
496
- () => (
497
- (supportsJsonType = true),
498
- import(createBlob(`import"${createBlob('', 'text/css')}"with{type:"css"}`)).then(
499
- () => (supportsCssType = true),
500
- noop
501
- )
502
- ),
503
- noop
504
- ),
505
- wasmInstancePhaseEnabled &&
506
- import(createBlob(`import"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
507
- () => (supportsWasmInstancePhase = true),
508
- noop
509
- ),
510
- wasmSourcePhaseEnabled &&
511
- import(createBlob(`import source x from"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
512
- () => (supportsWasmSourcePhase = true),
513
- noop
514
- )
515
- ]);
516
-
517
- const msgTag = `s${version}`;
518
- return new Promise(resolve => {
519
- const iframe = document.createElement('iframe');
520
- iframe.style.display = 'none';
521
- iframe.setAttribute('nonce', nonce);
522
- function cb({ data }) {
523
- const isFeatureDetectionMessage = Array.isArray(data) && data[0] === msgTag;
524
- if (!isFeatureDetectionMessage) return;
525
- [
526
- ,
527
- supportsImportMaps,
528
- supportsMultipleImportMaps,
529
- supportsJsonType,
530
- supportsCssType,
531
- supportsWasmSourcePhase,
532
- supportsWasmInstancePhase
533
- ] = data;
534
- resolve();
535
- document.head.removeChild(iframe);
536
- window.removeEventListener('message', cb, false);
537
- }
538
- window.addEventListener('message', cb, false);
539
-
540
- // Feature checking with careful avoidance of unnecessary work - all gated on initial import map supports check. CSS gates on JSON feature check, Wasm instance phase gates on wasm source phase check.
541
- const importMapTest = `<script nonce=${nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));c=u=>import(u).then(()=>true,()=>false);i=innerText=>document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${nonce}",innerText}));i(\`{"imports":{"x":"\${b('')}"}}\`);i(\`{"imports":{"y":"\${b('')}"}}\`);cm=${
542
- supportsImportMaps ? `c(b(\`import"\${b('{}','text/json')}"with{type:"json"}\`))` : 'false'
543
- };sp=${
544
- supportsImportMaps && wasmSourcePhaseEnabled ?
545
- `c(b(\`import source x from "\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`))`
546
- : 'false'
547
- };Promise.all([${supportsImportMaps ? 'true' : "c('x')"},${supportsImportMaps ? "c('y')" : false},cm,${
548
- supportsImportMaps ? `cm.then(s=>s?c(b(\`import"\${b('','text/css')\}"with{type:"css"}\`)):false)` : 'false'
549
- },sp,${
550
- supportsImportMaps && wasmInstancePhaseEnabled ?
551
- `${wasmSourcePhaseEnabled ? 'sp.then(s=>s?' : ''}c(b(\`import"\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`))${wasmSourcePhaseEnabled ? ':false)' : ''}`
552
- : 'false'
553
- }]).then(a=>parent.postMessage(['${msgTag}'].concat(a),'*'))<${''}/script>`;
554
-
555
- // Safari will call onload eagerly on head injection, but we don't want the Wechat
556
- // path to trigger before setting srcdoc, therefore we track the timing
557
- let readyForOnload = false,
558
- onloadCalledWhileNotReady = false;
559
- function doOnload() {
560
- if (!readyForOnload) {
561
- onloadCalledWhileNotReady = true;
562
- return;
563
- }
564
- // WeChat browser doesn't support setting srcdoc scripts
565
- // But iframe sandboxes don't support contentDocument so we do this as a fallback
566
- const doc = iframe.contentDocument;
567
- if (doc && doc.head.childNodes.length === 0) {
568
- const s = doc.createElement('script');
569
- if (nonce) s.setAttribute('nonce', nonce);
570
- s.innerHTML = importMapTest.slice(15 + (nonce ? nonce.length : 0), -9);
571
- doc.head.appendChild(s);
572
- }
573
- }
574
-
575
- iframe.onload = doOnload;
576
- // WeChat browser requires append before setting srcdoc
577
- document.head.appendChild(iframe);
578
-
579
- // setting srcdoc is not supported in React native webviews on iOS
580
- // setting src to a blob URL results in a navigation event in webviews
581
- // document.write gives usability warnings
582
- readyForOnload = true;
583
- if ('srcdoc' in iframe) iframe.srcdoc = importMapTest;
584
- else iframe.contentDocument.write(importMapTest);
585
- // retrigger onload for Safari only if necessary
586
- if (onloadCalledWhileNotReady) doOnload();
587
- });
588
- })();
589
-
590
- featureDetectionPromise = featureDetectionPromise.then(() => {
591
- console.info(
592
- `es-module-shims: detected native support - module types: (${[...(supportsJsonType ? ['json'] : []), ...(supportsCssType ? ['css'] : []), ...(supportsWasmInstancePhase ? ['wasm'] : [])].join(', ')}), ${supportsWasmSourcePhase ? 'source phase' : 'no source phase'}, ${supportsMultipleImportMaps ? '' : 'no '}multiple import maps, ${supportsImportMaps ? '' : 'no '}import maps`
593
- );
474
+ // support browsers without dynamic import support (eg Firefox 6x)
475
+ let supportsJsonType = false;
476
+ let supportsCssType = false;
477
+
478
+ const supports = hasDocument && HTMLScriptElement.supports;
479
+
480
+ let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
481
+ let supportsWasmInstancePhase = false;
482
+ let supportsWasmSourcePhase = false;
483
+ let supportsMultipleImportMaps = false;
484
+
485
+ const wasmBytes = [0, 97, 115, 109, 1, 0, 0, 0];
486
+
487
+ let featureDetectionPromise = (async function () {
488
+ if (!hasDocument)
489
+ return Promise.all([
490
+ import(createBlob(`import"${createBlob('{}', 'text/json')}"with{type:"json"}`)).then(
491
+ () => (
492
+ (supportsJsonType = true),
493
+ import(createBlob(`import"${createBlob('', 'text/css')}"with{type:"css"}`)).then(
494
+ () => (supportsCssType = true),
495
+ noop
496
+ )
497
+ ),
498
+ noop
499
+ ),
500
+ wasmInstancePhaseEnabled &&
501
+ import(createBlob(`import"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
502
+ () => (supportsWasmInstancePhase = true),
503
+ noop
504
+ ),
505
+ wasmSourcePhaseEnabled &&
506
+ import(createBlob(`import source x from"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
507
+ () => (supportsWasmSourcePhase = true),
508
+ noop
509
+ )
510
+ ]);
511
+
512
+ const msgTag = `s${version}`;
513
+ return new Promise(resolve => {
514
+ const iframe = document.createElement('iframe');
515
+ iframe.style.display = 'none';
516
+ iframe.setAttribute('nonce', nonce);
517
+ function cb({ data }) {
518
+ const isFeatureDetectionMessage = Array.isArray(data) && data[0] === msgTag;
519
+ if (!isFeatureDetectionMessage) return;
520
+ [
521
+ ,
522
+ supportsImportMaps,
523
+ supportsMultipleImportMaps,
524
+ supportsJsonType,
525
+ supportsCssType,
526
+ supportsWasmSourcePhase,
527
+ supportsWasmInstancePhase
528
+ ] = data;
529
+ resolve();
530
+ document.head.removeChild(iframe);
531
+ window.removeEventListener('message', cb, false);
532
+ }
533
+ window.addEventListener('message', cb, false);
534
+
535
+ // Feature checking with careful avoidance of unnecessary work - all gated on initial import map supports check. CSS gates on JSON feature check, Wasm instance phase gates on wasm source phase check.
536
+ const importMapTest = `<script nonce=${nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));c=u=>import(u).then(()=>true,()=>false);i=innerText=>document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${nonce}",innerText}));i(\`{"imports":{"x":"\${b('')}"}}\`);i(\`{"imports":{"y":"\${b('')}"}}\`);cm=${
537
+ supportsImportMaps ? `c(b(\`import"\${b('{}','text/json')}"with{type:"json"}\`))` : 'false'
538
+ };sp=${
539
+ supportsImportMaps && wasmSourcePhaseEnabled ?
540
+ `c(b(\`import source x from "\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`))`
541
+ : 'false'
542
+ };Promise.all([${supportsImportMaps ? 'true' : "c('x')"},${supportsImportMaps ? "c('y')" : false},cm,${
543
+ supportsImportMaps ? `cm.then(s=>s?c(b(\`import"\${b('','text/css')\}"with{type:"css"}\`)):false)` : 'false'
544
+ },sp,${
545
+ supportsImportMaps && wasmInstancePhaseEnabled ?
546
+ `${wasmSourcePhaseEnabled ? 'sp.then(s=>s?' : ''}c(b(\`import"\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`))${wasmSourcePhaseEnabled ? ':false)' : ''}`
547
+ : 'false'
548
+ }]).then(a=>parent.postMessage(['${msgTag}'].concat(a),'*'))<${''}/script>`;
549
+
550
+ // Safari will call onload eagerly on head injection, but we don't want the Wechat
551
+ // path to trigger before setting srcdoc, therefore we track the timing
552
+ let readyForOnload = false,
553
+ onloadCalledWhileNotReady = false;
554
+ function doOnload() {
555
+ if (!readyForOnload) {
556
+ onloadCalledWhileNotReady = true;
557
+ return;
558
+ }
559
+ // WeChat browser doesn't support setting srcdoc scripts
560
+ // But iframe sandboxes don't support contentDocument so we do this as a fallback
561
+ const doc = iframe.contentDocument;
562
+ if (doc && doc.head.childNodes.length === 0) {
563
+ const s = doc.createElement('script');
564
+ if (nonce) s.setAttribute('nonce', nonce);
565
+ s.innerHTML = importMapTest.slice(15 + (nonce ? nonce.length : 0), -9);
566
+ doc.head.appendChild(s);
567
+ }
568
+ }
569
+
570
+ iframe.onload = doOnload;
571
+ // WeChat browser requires append before setting srcdoc
572
+ document.head.appendChild(iframe);
573
+
574
+ // setting srcdoc is not supported in React native webviews on iOS
575
+ // setting src to a blob URL results in a navigation event in webviews
576
+ // document.write gives usability warnings
577
+ readyForOnload = true;
578
+ if ('srcdoc' in iframe) iframe.srcdoc = importMapTest;
579
+ else iframe.contentDocument.write(importMapTest);
580
+ // retrigger onload for Safari only if necessary
581
+ if (onloadCalledWhileNotReady) doOnload();
582
+ });
583
+ })();
584
+
585
+ featureDetectionPromise = featureDetectionPromise.then(() => {
586
+ console.info(
587
+ `es-module-shims: detected native support - module types: (${[...(supportsJsonType ? ['json'] : []), ...(supportsCssType ? ['css'] : []), ...(supportsWasmInstancePhase ? ['wasm'] : [])].join(', ')}), ${supportsWasmSourcePhase ? 'source phase' : 'no source phase'}, ${supportsMultipleImportMaps ? '' : 'no '}multiple import maps, ${supportsImportMaps ? '' : 'no '}import maps`
588
+ );
594
589
  });
595
590
 
596
591
  /* es-module-lexer 1.7.0 */
597
592
  let e,a,r,i=2<<19;const s=1===new Uint8Array(new Uint16Array([1]).buffer)[0]?function(e,a){const r=e.length;let i=0;for(;i<r;)a[i]=e.charCodeAt(i++);}:function(e,a){const r=e.length;let i=0;for(;i<r;){const r=e.charCodeAt(i);a[i++]=(255&r)<<8|r>>>8;}},f="xportmportlassforetaourceeferromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileifcatcfinallels";let t,c$1,n;function parse(k,l="@"){t=k,c$1=l;const u=2*t.length+(2<<18);if(u>i||!e){for(;u>i;)i*=2;a=new ArrayBuffer(i),s(f,new Uint16Array(a,16,114)),e=function(e,a,r){"use asm";var i=new e.Int8Array(r),s=new e.Int16Array(r),f=new e.Int32Array(r),t=new e.Uint8Array(r),c=new e.Uint16Array(r),n=1040;function b(){var e=0,a=0,r=0,t=0,c=0,b=0,u=0;u=n;n=n+10240|0;i[812]=1;i[811]=0;s[403]=0;s[404]=0;f[71]=f[2];i[813]=0;f[70]=0;i[810]=0;f[72]=u+2048;f[73]=u;i[814]=0;e=(f[3]|0)+-2|0;f[74]=e;a=e+(f[68]<<1)|0;f[75]=a;e:while(1){r=e+2|0;f[74]=r;if(e>>>0>=a>>>0){t=18;break}a:do{switch(s[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((s[404]|0)==0?H(r)|0:0)?(m(e+4|0,16,10)|0)==0:0)?(k(),(i[812]|0)==0):0){t=9;break e}else t=17;break}case 105:{if(H(r)|0?(m(e+4|0,26,10)|0)==0:0){l();t=17;}else t=17;break}case 59:{t=17;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{t=16;break e}}default:{t=16;break e}}}while(0);if((t|0)==17){t=0;f[71]=f[74];}e=f[74]|0;a=f[75]|0;}if((t|0)==9){e=f[74]|0;f[71]=e;t=19;}else if((t|0)==16){i[812]=0;f[74]=e;t=19;}else if((t|0)==18)if(!(i[810]|0)){e=r;t=19;}else e=0;do{if((t|0)==19){e:while(1){a=e+2|0;f[74]=a;if(e>>>0>=(f[75]|0)>>>0){t=92;break}a:do{switch(s[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((s[404]|0)==0?H(a)|0:0)?(m(e+4|0,16,10)|0)==0:0){k();t=91;}else t=91;break}case 105:{if(H(a)|0?(m(e+4|0,26,10)|0)==0:0){l();t=91;}else t=91;break}case 99:{if((H(a)|0?(m(e+4|0,36,8)|0)==0:0)?V(s[e+12>>1]|0)|0:0){i[814]=1;t=91;}else t=91;break}case 40:{r=f[72]|0;e=s[404]|0;t=e&65535;f[r+(t<<3)>>2]=1;a=f[71]|0;s[404]=e+1<<16>>16;f[r+(t<<3)+4>>2]=a;t=91;break}case 41:{a=s[404]|0;if(!(a<<16>>16)){t=36;break e}r=a+-1<<16>>16;s[404]=r;t=s[403]|0;a=t&65535;if(t<<16>>16!=0?(f[(f[72]|0)+((r&65535)<<3)>>2]|0)==5:0){a=f[(f[73]|0)+(a+-1<<2)>>2]|0;r=a+4|0;if(!(f[r>>2]|0))f[r>>2]=(f[71]|0)+2;f[a+12>>2]=e+4;s[403]=t+-1<<16>>16;t=91;}else t=91;break}case 123:{t=f[71]|0;r=f[65]|0;e=t;do{if((s[t>>1]|0)==41&(r|0)!=0?(f[r+4>>2]|0)==(t|0):0){a=f[66]|0;f[65]=a;if(!a){f[61]=0;break}else {f[a+32>>2]=0;break}}}while(0);r=f[72]|0;a=s[404]|0;t=a&65535;f[r+(t<<3)>>2]=(i[814]|0)==0?2:6;s[404]=a+1<<16>>16;f[r+(t<<3)+4>>2]=e;i[814]=0;t=91;break}case 125:{e=s[404]|0;if(!(e<<16>>16)){t=49;break e}r=f[72]|0;t=e+-1<<16>>16;s[404]=t;if((f[r+((t&65535)<<3)>>2]|0)==4){h();t=91;}else t=91;break}case 39:{v(39);t=91;break}case 34:{v(34);t=91;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{e=f[71]|0;a=s[e>>1]|0;r:do{if(!(U(a)|0))if(a<<16>>16==41){r=s[404]|0;if(!(D(f[(f[72]|0)+((r&65535)<<3)+4>>2]|0)|0))t=65;}else t=64;else switch(a<<16>>16){case 46:if(((s[e+-2>>1]|0)+-48&65535)<10){t=64;break r}else break r;case 43:if((s[e+-2>>1]|0)==43){t=64;break r}else break r;case 45:if((s[e+-2>>1]|0)==45){t=64;break r}else break r;default:break r}}while(0);if((t|0)==64){r=s[404]|0;t=65;}r:do{if((t|0)==65){t=0;if(r<<16>>16!=0?(c=f[72]|0,b=(r&65535)+-1|0,a<<16>>16==102?(f[c+(b<<3)>>2]|0)==1:0):0){if((s[e+-2>>1]|0)==111?$(f[c+(b<<3)+4>>2]|0,44,3)|0:0)break}else t=69;if((t|0)==69?(0,a<<16>>16==125):0){t=f[72]|0;r=r&65535;if(p(f[t+(r<<3)+4>>2]|0)|0)break;if((f[t+(r<<3)>>2]|0)==6)break}if(!(o(e)|0)){switch(a<<16>>16){case 0:break r;case 47:{if(i[813]|0)break r;break}default:{}}t=f[67]|0;if((t|0?e>>>0>=(f[t>>2]|0)>>>0:0)?e>>>0<=(f[t+4>>2]|0)>>>0:0){g();i[813]=0;t=91;break a}r=f[3]|0;do{if(e>>>0<=r>>>0)break;e=e+-2|0;f[71]=e;a=s[e>>1]|0;}while(!(E(a)|0));if(F(a)|0){do{if(e>>>0<=r>>>0)break;e=e+-2|0;f[71]=e;}while(F(s[e>>1]|0)|0);if(j(e)|0){g();i[813]=0;t=91;break a}}i[813]=1;t=91;break a}}}while(0);g();i[813]=0;t=91;break a}}case 96:{r=f[72]|0;a=s[404]|0;t=a&65535;f[r+(t<<3)+4>>2]=f[71];s[404]=a+1<<16>>16;f[r+(t<<3)>>2]=3;h();t=91;break}default:t=91;}}while(0);if((t|0)==91){t=0;f[71]=f[74];}e=f[74]|0;}if((t|0)==36){T();e=0;break}else if((t|0)==49){T();e=0;break}else if((t|0)==92){e=(i[810]|0)==0?(s[403]|s[404])<<16>>16==0:0;break}}}while(0);n=u;return e|0}function k(){var e=0,a=0,r=0,t=0,c=0,n=0,b=0,k=0,l=0,o=0,h=0,d=0,C=0,g=0;k=f[74]|0;l=f[67]|0;g=k+12|0;f[74]=g;r=w(1)|0;e=f[74]|0;if(!((e|0)==(g|0)?!(I(r)|0):0))C=3;e:do{if((C|0)==3){a:do{switch(r<<16>>16){case 123:{f[74]=e+2;e=w(1)|0;a=f[74]|0;while(1){if(W(e)|0){v(e);e=(f[74]|0)+2|0;f[74]=e;}else {q(e)|0;e=f[74]|0;}w(1)|0;e=A(a,e)|0;if(e<<16>>16==44){f[74]=(f[74]|0)+2;e=w(1)|0;}if(e<<16>>16==125){C=15;break}g=a;a=f[74]|0;if((a|0)==(g|0)){C=12;break}if(a>>>0>(f[75]|0)>>>0){C=14;break}}if((C|0)==12){T();break e}else if((C|0)==14){T();break e}else if((C|0)==15){i[811]=1;f[74]=(f[74]|0)+2;break a}break}case 42:{f[74]=e+2;w(1)|0;g=f[74]|0;A(g,g)|0;break}default:{i[812]=0;switch(r<<16>>16){case 100:{k=e+14|0;f[74]=k;switch((w(1)|0)<<16>>16){case 97:{a=f[74]|0;if((m(a+2|0,80,8)|0)==0?(c=a+10|0,F(s[c>>1]|0)|0):0){f[74]=c;w(0)|0;C=22;}break}case 102:{C=22;break}case 99:{a=f[74]|0;if(((m(a+2|0,36,8)|0)==0?(t=a+10|0,g=s[t>>1]|0,V(g)|0|g<<16>>16==123):0)?(f[74]=t,n=w(1)|0,n<<16>>16!=123):0){d=n;C=31;}break}default:{}}r:do{if((C|0)==22?(b=f[74]|0,(m(b+2|0,88,14)|0)==0):0){r=b+16|0;a=s[r>>1]|0;if(!(V(a)|0))switch(a<<16>>16){case 40:case 42:break;default:break r}f[74]=r;a=w(1)|0;if(a<<16>>16==42){f[74]=(f[74]|0)+2;a=w(1)|0;}if(a<<16>>16!=40){d=a;C=31;}}}while(0);if((C|0)==31?(o=f[74]|0,q(d)|0,h=f[74]|0,h>>>0>o>>>0):0){O(e,k,o,h);f[74]=(f[74]|0)+-2;break e}O(e,k,0,0);f[74]=e+12;break e}case 97:{f[74]=e+10;w(0)|0;e=f[74]|0;C=35;break}case 102:{C=35;break}case 99:{if((m(e+2|0,36,8)|0)==0?(a=e+10|0,E(s[a>>1]|0)|0):0){f[74]=a;g=w(1)|0;C=f[74]|0;q(g)|0;g=f[74]|0;O(C,g,C,g);f[74]=(f[74]|0)+-2;break e}e=e+4|0;f[74]=e;break}case 108:case 118:break;default:break e}if((C|0)==35){f[74]=e+16;e=w(1)|0;if(e<<16>>16==42){f[74]=(f[74]|0)+2;e=w(1)|0;}C=f[74]|0;q(e)|0;g=f[74]|0;O(C,g,C,g);f[74]=(f[74]|0)+-2;break e}f[74]=e+6;i[812]=0;r=w(1)|0;e=f[74]|0;r=(q(r)|0|32)<<16>>16==123;t=f[74]|0;if(r){f[74]=t+2;g=w(1)|0;e=f[74]|0;q(g)|0;}r:while(1){a=f[74]|0;if((a|0)==(e|0))break;O(e,a,e,a);a=w(1)|0;if(r)switch(a<<16>>16){case 93:case 125:break e;default:{}}e=f[74]|0;if(a<<16>>16!=44){C=51;break}f[74]=e+2;a=w(1)|0;e=f[74]|0;switch(a<<16>>16){case 91:case 123:{C=51;break r}default:{}}q(a)|0;}if((C|0)==51)f[74]=e+-2;if(!r)break e;f[74]=t+-2;break e}}}while(0);g=(w(1)|0)<<16>>16==102;e=f[74]|0;if(g?(m(e+2|0,74,6)|0)==0:0){f[74]=e+8;u(k,w(1)|0,0);e=(l|0)==0?248:l+16|0;while(1){e=f[e>>2]|0;if(!e)break e;f[e+12>>2]=0;f[e+8>>2]=0;e=e+16|0;}}f[74]=e+-2;}}while(0);return}function l(){var e=0,a=0,r=0,t=0,c=0,n=0,b=0;b=f[74]|0;c=b+12|0;f[74]=c;e=w(1)|0;t=f[74]|0;e:do{if(e<<16>>16!=46){if(!(e<<16>>16==115&t>>>0>c>>>0)){if(!(e<<16>>16==100&t>>>0>(b+10|0)>>>0)){t=0;n=28;break}if(m(t+2|0,66,8)|0){a=t;e=100;t=0;n=59;break}e=t+10|0;if(!(V(s[e>>1]|0)|0)){a=t;e=100;t=0;n=59;break}f[74]=e;e=w(1)|0;if(e<<16>>16==42){e=42;t=2;n=61;break}f[74]=t;t=0;n=28;break}if((m(t+2|0,56,10)|0)==0?(r=t+12|0,V(s[r>>1]|0)|0):0){f[74]=r;e=w(1)|0;a=f[74]|0;if((a|0)!=(r|0)){if(e<<16>>16!=102){t=1;n=28;break}if(m(a+2|0,74,6)|0){e=102;t=1;n=59;break}if(!(E(s[a+8>>1]|0)|0)){e=102;t=1;n=59;break}}f[74]=t;t=0;n=28;}else {a=t;e=115;t=0;n=59;}}else {f[74]=t+2;switch((w(1)|0)<<16>>16){case 109:{e=f[74]|0;if(m(e+2|0,50,6)|0)break e;a=f[71]|0;if(!(G(a)|0)?(s[a>>1]|0)==46:0)break e;d(b,b,e+8|0,2);break e}case 115:{e=f[74]|0;if(m(e+2|0,56,10)|0)break e;a=f[71]|0;if(!(G(a)|0)?(s[a>>1]|0)==46:0)break e;f[74]=e+12;e=w(1)|0;t=1;n=28;break e}case 100:{e=f[74]|0;if(m(e+2|0,66,8)|0)break e;a=f[71]|0;if(!(G(a)|0)?(s[a>>1]|0)==46:0)break e;f[74]=e+10;e=w(1)|0;t=2;n=28;break e}default:break e}}}while(0);e:do{if((n|0)==28){if(e<<16>>16==40){r=f[72]|0;a=s[404]|0;c=a&65535;f[r+(c<<3)>>2]=5;e=f[74]|0;s[404]=a+1<<16>>16;f[r+(c<<3)+4>>2]=e;if((s[f[71]>>1]|0)==46)break;f[74]=e+2;a=w(1)|0;d(b,f[74]|0,0,e);if(!t)e=f[65]|0;else {e=f[65]|0;f[e+28>>2]=(t|0)==1?5:7;}c=f[73]|0;b=s[403]|0;s[403]=b+1<<16>>16;f[c+((b&65535)<<2)>>2]=e;switch(a<<16>>16){case 39:{v(39);break}case 34:{v(34);break}default:{f[74]=(f[74]|0)+-2;break e}}e=(f[74]|0)+2|0;f[74]=e;switch((w(1)|0)<<16>>16){case 44:{f[74]=(f[74]|0)+2;w(1)|0;c=f[65]|0;f[c+4>>2]=e;b=f[74]|0;f[c+16>>2]=b;i[c+24>>0]=1;f[74]=b+-2;break e}case 41:{s[404]=(s[404]|0)+-1<<16>>16;b=f[65]|0;f[b+4>>2]=e;f[b+12>>2]=(f[74]|0)+2;i[b+24>>0]=1;s[403]=(s[403]|0)+-1<<16>>16;break e}default:{f[74]=(f[74]|0)+-2;break e}}}if(!((t|0)==0&e<<16>>16==123)){switch(e<<16>>16){case 42:case 39:case 34:{n=61;break e}default:{}}a=f[74]|0;n=59;break}e=f[74]|0;if(s[404]|0){f[74]=e+-2;break}while(1){if(e>>>0>=(f[75]|0)>>>0)break;e=w(1)|0;if(!(W(e)|0)){if(e<<16>>16==125){n=49;break}}else v(e);e=(f[74]|0)+2|0;f[74]=e;}if((n|0)==49)f[74]=(f[74]|0)+2;c=(w(1)|0)<<16>>16==102;e=f[74]|0;if(c?m(e+2|0,74,6)|0:0){T();break}f[74]=e+8;e=w(1)|0;if(W(e)|0){u(b,e,0);break}else {T();break}}}while(0);if((n|0)==59)if((a|0)==(c|0))f[74]=b+10;else n=61;do{if((n|0)==61){if(!((e<<16>>16==42|(t|0)!=2)&(s[404]|0)==0)){f[74]=(f[74]|0)+-2;break}e=f[75]|0;a=f[74]|0;while(1){if(a>>>0>=e>>>0){n=68;break}r=s[a>>1]|0;if(W(r)|0){n=66;break}n=a+2|0;f[74]=n;a=n;}if((n|0)==66){u(b,r,t);break}else if((n|0)==68){T();break}}}while(0);return}function u(e,a,r){e=e|0;a=a|0;r=r|0;var i=0,t=0;i=(f[74]|0)+2|0;switch(a<<16>>16){case 39:{v(39);t=5;break}case 34:{v(34);t=5;break}default:T();}do{if((t|0)==5){d(e,i,f[74]|0,1);if((r|0)>0)f[(f[65]|0)+28>>2]=(r|0)==1?4:6;f[74]=(f[74]|0)+2;a=w(0)|0;r=a<<16>>16==97;if(r){i=f[74]|0;if(m(i+2|0,102,10)|0)t=13;}else {i=f[74]|0;if(!(((a<<16>>16==119?(s[i+2>>1]|0)==105:0)?(s[i+4>>1]|0)==116:0)?(s[i+6>>1]|0)==104:0))t=13;}if((t|0)==13){f[74]=i+-2;break}f[74]=i+((r?6:4)<<1);if((w(1)|0)<<16>>16!=123){f[74]=i;break}r=f[74]|0;a=r;e:while(1){f[74]=a+2;a=w(1)|0;switch(a<<16>>16){case 39:{v(39);f[74]=(f[74]|0)+2;a=w(1)|0;break}case 34:{v(34);f[74]=(f[74]|0)+2;a=w(1)|0;break}default:a=q(a)|0;}if(a<<16>>16!=58){t=22;break}f[74]=(f[74]|0)+2;switch((w(1)|0)<<16>>16){case 39:{v(39);break}case 34:{v(34);break}default:{t=26;break e}}f[74]=(f[74]|0)+2;switch((w(1)|0)<<16>>16){case 125:{t=31;break e}case 44:break;default:{t=30;break e}}f[74]=(f[74]|0)+2;if((w(1)|0)<<16>>16==125){t=31;break}a=f[74]|0;}if((t|0)==22){f[74]=i;break}else if((t|0)==26){f[74]=i;break}else if((t|0)==30){f[74]=i;break}else if((t|0)==31){t=f[65]|0;f[t+16>>2]=r;f[t+12>>2]=(f[74]|0)+2;break}}}while(0);return}function o(e){e=e|0;e:do{switch(s[e>>1]|0){case 100:switch(s[e+-2>>1]|0){case 105:{e=$(e+-4|0,112,2)|0;break e}case 108:{e=$(e+-4|0,116,3)|0;break e}default:{e=0;break e}}case 101:switch(s[e+-2>>1]|0){case 115:switch(s[e+-4>>1]|0){case 108:{e=B(e+-6|0,101)|0;break e}case 97:{e=B(e+-6|0,99)|0;break e}default:{e=0;break e}}case 116:{e=$(e+-4|0,122,4)|0;break e}case 117:{e=$(e+-4|0,130,6)|0;break e}default:{e=0;break e}}case 102:{if((s[e+-2>>1]|0)==111?(s[e+-4>>1]|0)==101:0)switch(s[e+-6>>1]|0){case 99:{e=$(e+-8|0,142,6)|0;break e}case 112:{e=$(e+-8|0,154,2)|0;break e}default:{e=0;break e}}else e=0;break}case 107:{e=$(e+-2|0,158,4)|0;break}case 110:{e=e+-2|0;if(B(e,105)|0)e=1;else e=$(e,166,5)|0;break}case 111:{e=B(e+-2|0,100)|0;break}case 114:{e=$(e+-2|0,176,7)|0;break}case 116:{e=$(e+-2|0,190,4)|0;break}case 119:switch(s[e+-2>>1]|0){case 101:{e=B(e+-4|0,110)|0;break e}case 111:{e=$(e+-4|0,198,3)|0;break e}default:{e=0;break e}}default:e=0;}}while(0);return e|0}function h(){var e=0,a=0,r=0,i=0;a=f[75]|0;r=f[74]|0;e:while(1){e=r+2|0;if(r>>>0>=a>>>0){a=10;break}switch(s[e>>1]|0){case 96:{a=7;break e}case 36:{if((s[r+4>>1]|0)==123){a=6;break e}break}case 92:{e=r+4|0;break}default:{}}r=e;}if((a|0)==6){e=r+4|0;f[74]=e;a=f[72]|0;i=s[404]|0;r=i&65535;f[a+(r<<3)>>2]=4;s[404]=i+1<<16>>16;f[a+(r<<3)+4>>2]=e;}else if((a|0)==7){f[74]=e;r=f[72]|0;i=(s[404]|0)+-1<<16>>16;s[404]=i;if((f[r+((i&65535)<<3)>>2]|0)!=3)T();}else if((a|0)==10){f[74]=e;T();}return}function w(e){e=e|0;var a=0,r=0,i=0;r=f[74]|0;e:do{a=s[r>>1]|0;a:do{if(a<<16>>16!=47)if(e)if(V(a)|0)break;else break e;else if(F(a)|0)break;else break e;else switch(s[r+2>>1]|0){case 47:{P();break a}case 42:{y(e);break a}default:{a=47;break e}}}while(0);i=f[74]|0;r=i+2|0;f[74]=r;}while(i>>>0<(f[75]|0)>>>0);return a|0}function d(e,a,r,s){e=e|0;a=a|0;r=r|0;s=s|0;var t=0,c=0;c=f[69]|0;f[69]=c+36;t=f[65]|0;f[((t|0)==0?244:t+32|0)>>2]=c;f[66]=t;f[65]=c;f[c+8>>2]=e;if(2==(s|0)){e=3;t=r;}else {t=1==(s|0);e=t?1:2;t=t?r+2|0:0;}f[c+12>>2]=t;f[c+28>>2]=e;f[c>>2]=a;f[c+4>>2]=r;f[c+16>>2]=0;f[c+20>>2]=s;a=1==(s|0);i[c+24>>0]=a&1;f[c+32>>2]=0;if(a|2==(s|0))i[811]=1;return}function v(e){e=e|0;var a=0,r=0,i=0,t=0;t=f[75]|0;a=f[74]|0;while(1){i=a+2|0;if(a>>>0>=t>>>0){a=9;break}r=s[i>>1]|0;if(r<<16>>16==e<<16>>16){a=10;break}if(r<<16>>16==92){r=a+4|0;if((s[r>>1]|0)==13){a=a+6|0;a=(s[a>>1]|0)==10?a:r;}else a=r;}else if(Z(r)|0){a=9;break}else a=i;}if((a|0)==9){f[74]=i;T();}else if((a|0)==10)f[74]=i;return}function A(e,a){e=e|0;a=a|0;var r=0,i=0,t=0,c=0;r=f[74]|0;i=s[r>>1]|0;c=(e|0)==(a|0);t=c?0:e;c=c?0:a;if(i<<16>>16==97){f[74]=r+4;r=w(1)|0;e=f[74]|0;if(W(r)|0){v(r);a=(f[74]|0)+2|0;f[74]=a;}else {q(r)|0;a=f[74]|0;}i=w(1)|0;r=f[74]|0;}if((r|0)!=(e|0))O(e,a,t,c);return i|0}function C(){var e=0,a=0,r=0;r=f[75]|0;a=f[74]|0;e:while(1){e=a+2|0;if(a>>>0>=r>>>0){a=6;break}switch(s[e>>1]|0){case 13:case 10:{a=6;break e}case 93:{a=7;break e}case 92:{e=a+4|0;break}default:{}}a=e;}if((a|0)==6){f[74]=e;T();e=0;}else if((a|0)==7){f[74]=e;e=93;}return e|0}function g(){var e=0,a=0,r=0;e:while(1){e=f[74]|0;a=e+2|0;f[74]=a;if(e>>>0>=(f[75]|0)>>>0){r=7;break}switch(s[a>>1]|0){case 13:case 10:{r=7;break e}case 47:break e;case 91:{C()|0;break}case 92:{f[74]=e+4;break}default:{}}}if((r|0)==7)T();return}function p(e){e=e|0;switch(s[e>>1]|0){case 62:{e=(s[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=$(e+-2|0,218,4)|0;break}case 121:{e=$(e+-2|0,226,6)|0;break}case 101:{e=$(e+-2|0,238,3)|0;break}default:e=0;}return e|0}function y(e){e=e|0;var a=0,r=0,i=0,t=0,c=0;t=(f[74]|0)+2|0;f[74]=t;r=f[75]|0;while(1){a=t+2|0;if(t>>>0>=r>>>0)break;i=s[a>>1]|0;if(!e?Z(i)|0:0)break;if(i<<16>>16==42?(s[t+4>>1]|0)==47:0){c=8;break}t=a;}if((c|0)==8){f[74]=a;a=t+4|0;}f[74]=a;return}function m(e,a,r){e=e|0;a=a|0;r=r|0;var s=0,f=0;e:do{if(!r)e=0;else {while(1){s=i[e>>0]|0;f=i[a>>0]|0;if(s<<24>>24!=f<<24>>24)break;r=r+-1|0;if(!r){e=0;break e}else {e=e+1|0;a=a+1|0;}}e=(s&255)-(f&255)|0;}}while(0);return e|0}function I(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else {switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:{}}e=(e+-123&65535)<4;}}}while(0);return e|0}function U(e){e=e|0;e:do{switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:{}}return e<<16>>16!=125&(e+-123&65535)<4|0}}}while(0);return 1}function x(e){e=e|0;var a=0;a=s[e>>1]|0;e:do{if((a+-9&65535)>=5){switch(a<<16>>16){case 160:case 32:{a=1;break e}default:{}}if(I(a)|0)return a<<16>>16!=46|(G(e)|0)|0;else a=0;}else a=1;}while(0);return a|0}function S(e){e=e|0;var a=0,r=0,i=0,t=0;r=n;n=n+16|0;i=r;f[i>>2]=0;f[68]=e;a=f[3]|0;t=a+(e<<1)|0;e=t+2|0;s[t>>1]=0;f[i>>2]=e;f[69]=e;f[61]=0;f[65]=0;f[63]=0;f[62]=0;f[67]=0;f[64]=0;n=r;return a|0}function O(e,a,r,s){e=e|0;a=a|0;r=r|0;s=s|0;var t=0,c=0;t=f[69]|0;f[69]=t+20;c=f[67]|0;f[((c|0)==0?248:c+16|0)>>2]=t;f[67]=t;f[t>>2]=e;f[t+4>>2]=a;f[t+8>>2]=r;f[t+12>>2]=s;f[t+16>>2]=0;i[811]=1;return}function $(e,a,r){e=e|0;a=a|0;r=r|0;var i=0,s=0;i=e+(0-r<<1)|0;s=i+2|0;e=f[3]|0;if(s>>>0>=e>>>0?(m(s,a,r<<1)|0)==0:0)if((s|0)==(e|0))e=1;else e=x(i)|0;else e=0;return e|0}function j(e){e=e|0;switch(s[e>>1]|0){case 107:{e=$(e+-2|0,158,4)|0;break}case 101:{if((s[e+-2>>1]|0)==117)e=$(e+-4|0,130,6)|0;else e=0;break}default:e=0;}return e|0}function B(e,a){e=e|0;a=a|0;var r=0;r=f[3]|0;if(r>>>0<=e>>>0?(s[e>>1]|0)==a<<16>>16:0)if((r|0)==(e|0))r=1;else r=E(s[e+-2>>1]|0)|0;else r=0;return r|0}function E(e){e=e|0;e:do{if((e+-9&65535)<5)e=1;else {switch(e<<16>>16){case 32:case 160:{e=1;break e}default:{}}e=e<<16>>16!=46&(I(e)|0);}}while(0);return e|0}function P(){var e=0,a=0,r=0;e=f[75]|0;r=f[74]|0;e:while(1){a=r+2|0;if(r>>>0>=e>>>0)break;switch(s[a>>1]|0){case 13:case 10:break e;default:r=a;}}f[74]=a;return}function q(e){e=e|0;while(1){if(V(e)|0)break;if(I(e)|0)break;e=(f[74]|0)+2|0;f[74]=e;e=s[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function z(){var e=0;e=f[(f[63]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(f[3]|0)>>1;}return e|0}function D(e){e=e|0;if(!($(e,204,5)|0)?!($(e,44,3)|0):0)e=$(e,214,2)|0;else e=1;return e|0}function F(e){e=e|0;switch(e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0;}return e|0}function G(e){e=e|0;if((s[e>>1]|0)==46?(s[e+-2>>1]|0)==46:0)e=(s[e+-4>>1]|0)==46;else e=0;return e|0}function H(e){e=e|0;if((f[3]|0)==(e|0))e=1;else e=x(e+-2|0)|0;return e|0}function J(){var e=0;e=f[(f[64]|0)+12>>2]|0;if(!e)e=-1;else e=e-(f[3]|0)>>1;return e|0}function K(){var e=0;e=f[(f[63]|0)+12>>2]|0;if(!e)e=-1;else e=e-(f[3]|0)>>1;return e|0}function L(){var e=0;e=f[(f[64]|0)+8>>2]|0;if(!e)e=-1;else e=e-(f[3]|0)>>1;return e|0}function M(){var e=0;e=f[(f[63]|0)+16>>2]|0;if(!e)e=-1;else e=e-(f[3]|0)>>1;return e|0}function N(){var e=0;e=f[(f[63]|0)+4>>2]|0;if(!e)e=-1;else e=e-(f[3]|0)>>1;return e|0}function Q(){var e=0;e=f[63]|0;e=f[((e|0)==0?244:e+32|0)>>2]|0;f[63]=e;return (e|0)!=0|0}function R(){var e=0;e=f[64]|0;e=f[((e|0)==0?248:e+16|0)>>2]|0;f[64]=e;return (e|0)!=0|0}function T(){i[810]=1;f[70]=(f[74]|0)-(f[3]|0)>>1;f[74]=(f[75]|0)+2;return}function V(e){e=e|0;return (e|128)<<16>>16==160|(e+-9&65535)<5|0}function W(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function X(){return (f[(f[63]|0)+8>>2]|0)-(f[3]|0)>>1|0}function Y(){return (f[(f[64]|0)+4>>2]|0)-(f[3]|0)>>1|0}function Z(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function _(){return (f[f[63]>>2]|0)-(f[3]|0)>>1|0}function ee(){return (f[f[64]>>2]|0)-(f[3]|0)>>1|0}function ae(){return t[(f[63]|0)+24>>0]|0|0}function re(e){e=e|0;f[3]=e;return}function ie(){return f[(f[63]|0)+28>>2]|0}function se(){return (i[811]|0)!=0|0}function fe(){return (i[812]|0)!=0|0}function te(){return f[70]|0}function ce(e){e=e|0;n=e+992+15&-16;return 992}return {su:ce,ai:M,e:te,ee:Y,ele:J,els:L,es:ee,f:fe,id:z,ie:N,ip:ae,is:_,it:ie,ms:se,p:b,re:R,ri:Q,sa:S,se:K,ses:re,ss:X}}("undefined"!=typeof self?self:global,{},a),r=e.su(i-(2<<17));}const h=t.length+1;e.ses(r),e.sa(h-1),s(t,new Uint16Array(a,r,h)),e.p()||(n=e.e(),o());const w=[],d=[];for(;e.ri();){const a=e.is(),r=e.ie(),i=e.ai(),s=e.id(),f=e.ss(),c=e.se(),n=e.it();let k;e.ip()&&(k=b(-1===s?a:a+1,t.charCodeAt(-1===s?a-1:a))),w.push({t:n,n:k,s:a,e:r,ss:f,se:c,d:s,a:i});}for(;e.re();){const a=e.es(),r=e.ee(),i=e.els(),s=e.ele(),f=t.charCodeAt(a),c=i>=0?t.charCodeAt(i):-1;d.push({s:a,e:r,ls:i,le:s,n:34===f||39===f?b(a+1,f):t.slice(a,r),ln:i<0?void 0:34===c||39===c?b(i+1,c):t.slice(i,s)});}return [w,d,!!e.f(),!!e.ms()]}function b(e,a){n=e;let r="",i=n;for(;;){n>=t.length&&o();const e=t.charCodeAt(n);if(e===a)break;92===e?(r+=t.slice(i,n),r+=k(),i=n):(8232===e||8233===e||u(e)&&o(),++n);}return r+=t.slice(i,n++),r}function k(){let e=t.charCodeAt(++n);switch(++n,e){case 110:return "\n";case 114:return "\r";case 120:return String.fromCharCode(l(2));case 117:return function(){const e=t.charCodeAt(n);let a;123===e?(++n,a=l(t.indexOf("}",n)-n),++n,a>1114111&&o()):a=l(4);return a<=65535?String.fromCharCode(a):(a-=65536,String.fromCharCode(55296+(a>>10),56320+(1023&a)))}();case 116:return "\t";case 98:return "\b";case 118:return "\v";case 102:return "\f";case 13:10===t.charCodeAt(n)&&++n;case 10:return "";case 56:case 57:o();default:if(e>=48&&e<=55){let a=t.substr(n-1,3).match(/^[0-7]+/)[0],r=parseInt(a,8);return r>255&&(a=a.slice(0,-1),r=parseInt(a,8)),n+=a.length-1,e=t.charCodeAt(n),"0"===a&&56!==e&&57!==e||o(),String.fromCharCode(r)}return u(e)?"":String.fromCharCode(e)}}function l(e){const a=n;let r=0,i=0;for(let a=0;a<e;++a,++n){let e,s=t.charCodeAt(n);if(95!==s){if(s>=97)e=s-97+10;else if(s>=65)e=s-65+10;else {if(!(s>=48&&s<=57))break;e=s-48;}if(e>=16)break;i=s,r=16*r+e;}else 95!==i&&0!==a||o(),i=s;}return 95!==i&&n-a===e||o(),r}function u(e){return 13===e||10===e}function o(){throw Object.assign(Error(`Parse error ${c$1}:${t.slice(0,n).split("\n").length}:${n-t.lastIndexOf("\n",n-1)}`),{idx:n})}
598
593
 
599
- const _resolve = (id, parentUrl = baseUrl) => {
600
- const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl) || asURL(id);
601
- const firstResolved = firstImportMap && resolveImportMap(firstImportMap, urlResolved || id, parentUrl);
602
- const composedResolved =
603
- composedImportMap === firstImportMap ? firstResolved : (
604
- resolveImportMap(composedImportMap, urlResolved || id, parentUrl)
605
- );
606
- const resolved = composedResolved || firstResolved || throwUnresolved(id, parentUrl);
607
- // needsShim, shouldShim per load record to set on parent
608
- let n = false,
609
- N = false;
610
- if (!supportsImportMaps) {
611
- // bare specifier -> needs shim
612
- if (!urlResolved) n = true;
613
- // url mapping -> should shim
614
- else if (urlResolved !== resolved) N = true;
615
- } else if (!supportsMultipleImportMaps) {
616
- // bare specifier and not resolved by first import map -> needs shim
617
- if (!urlResolved && !firstResolved) n = true;
618
- // resolution doesn't match first import map -> should shim
619
- if (firstResolved && resolved !== firstResolved) N = true;
620
- }
621
- return { r: resolved, n, N };
622
- };
623
-
624
- const resolve = (id, parentUrl) => {
625
- if (!resolveHook) return _resolve(id, parentUrl);
626
- const result = resolveHook(id, parentUrl, defaultResolve);
627
-
628
- return result ? { r: result, n: true, N: true } : _resolve(id, parentUrl);
629
- };
630
-
631
- // import()
632
- async function importShim$1(id, opts, parentUrl) {
633
- if (typeof opts === 'string') {
634
- parentUrl = opts;
635
- opts = undefined;
636
- }
637
- await initPromise; // needed for shim check
638
- console.info(`es-module-shims: importShim("${id}"${opts ? ', ' + JSON.stringify(opts) : ''})`);
639
- if (shimMode || !baselinePassthrough) {
640
- if (hasDocument) processScriptsAndPreloads();
641
- legacyAcceptingImportMaps = false;
642
- }
643
- let sourceType = undefined;
644
- if (typeof opts === 'object') {
645
- if (opts.lang === 'ts') sourceType = 'ts';
646
- if (typeof opts.with === 'object' && typeof opts.with.type === 'string') {
647
- sourceType = opts.with.type;
648
- }
649
- }
650
- return topLevelLoad(id, parentUrl || baseUrl, defaultFetchOpts, undefined, undefined, undefined, sourceType);
651
- }
652
-
653
- // import.source()
654
- // (opts not currently supported as no use cases yet)
655
- if (shimMode || wasmSourcePhaseEnabled)
656
- importShim$1.source = async (id, opts, parentUrl) => {
657
- if (typeof opts === 'string') {
658
- parentUrl = opts;
659
- opts = undefined;
660
- }
661
- await initPromise; // needed for shim check
662
- console.info(`es-module-shims: importShim.source("${id}"${opts ? ', ' + JSON.stringify(opts) : ''})`);
663
- if (shimMode || !baselinePassthrough) {
664
- if (hasDocument) processScriptsAndPreloads();
665
- legacyAcceptingImportMaps = false;
666
- }
667
- await importMapPromise;
668
- const url = resolve(id, parentUrl || baseUrl).r;
669
- const load = getOrCreateLoad(url, defaultFetchOpts, undefined, undefined);
670
- if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
671
- onpolyfill();
672
- firstPolyfillLoad = false;
673
- }
674
- await load.f;
675
- return importShim$1._s[load.r];
676
- };
677
-
678
- // import.defer() is just a proxy for import(), since we can't actually defer
679
- if (shimMode || deferPhaseEnabled) importShim$1.defer = importShim$1;
680
-
681
- if (hotReload) importShim$1.hotReload = hotReload$1;
682
-
683
- const defaultResolve = (id, parentUrl) => {
684
- return (
685
- resolveImportMap(composedImportMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) ||
686
- throwUnresolved(id, parentUrl)
687
- );
688
- };
689
-
690
- const throwUnresolved = (id, parentUrl) => {
691
- throw Error(`Unable to resolve specifier '${id}'${fromParent(parentUrl)}`);
692
- };
693
-
694
- const metaResolve = function (id, parentUrl = this.url) {
695
- return resolve(id, `${parentUrl}`).r;
696
- };
697
-
698
- importShim$1.resolve = (id, parentUrl) => resolve(id, parentUrl).r;
699
- importShim$1.getImportMap = () => JSON.parse(JSON.stringify(composedImportMap));
700
- importShim$1.addImportMap = importMapIn => {
701
- if (!shimMode) throw new Error('Unsupported in polyfill mode.');
702
- composedImportMap = resolveAndComposeImportMap(importMapIn, baseUrl, composedImportMap);
703
- };
704
- importShim$1.version = version;
705
-
706
- const registry = (importShim$1._r = {});
707
- // Wasm caches
708
- const sourceCache = (importShim$1._s = {});
709
- (importShim$1._i = new WeakMap());
710
-
711
- // Ensure this version is the only version
712
- defineValue(self, 'importShim', Object.freeze(importShim$1));
713
- const shimModeOptions = { ...esmsInitOptions, shimMode: true };
714
- if (optionsScript) optionsScript.innerHTML = JSON.stringify(shimModeOptions);
715
- self.esmsInitOptions = shimModeOptions;
716
-
717
- const loadAll = async (load, seen) => {
718
- seen[load.u] = 1;
719
- await load.L;
720
- await Promise.all(
721
- load.d.map(({ l: dep, s: sourcePhase }) => {
722
- if (dep.b || seen[dep.u]) return;
723
- if (sourcePhase) return dep.f;
724
- return loadAll(dep, seen);
725
- })
726
- );
727
- };
728
-
729
- let importMapSrc = false;
730
- let multipleImportMaps = false;
731
- let firstImportMap = null;
732
- // To support polyfilling multiple import maps, we separately track the composed import map from the first import map
733
- let composedImportMap = { imports: {}, scopes: {}, integrity: {} };
734
- let baselinePassthrough;
735
-
736
- const initPromise = featureDetectionPromise.then(() => {
737
- baselinePassthrough =
738
- esmsInitOptions.polyfillEnable !== true &&
739
- supportsImportMaps &&
740
- supportsJsonType &&
741
- supportsCssType &&
742
- (!wasmInstancePhaseEnabled || supportsWasmInstancePhase) &&
743
- (!wasmSourcePhaseEnabled || supportsWasmSourcePhase) &&
744
- !deferPhaseEnabled &&
745
- (!multipleImportMaps || supportsMultipleImportMaps) &&
746
- !importMapSrc;
747
- if (!shimMode && typeof WebAssembly !== 'undefined') {
748
- if (wasmSourcePhaseEnabled && !Object.getPrototypeOf(WebAssembly.Module).name) {
749
- const s = Symbol();
750
- const brand = m => defineValue(m, s, 'WebAssembly.Module');
751
- class AbstractModuleSource {
752
- get [Symbol.toStringTag]() {
753
- if (this[s]) return this[s];
754
- throw new TypeError('Not an AbstractModuleSource');
755
- }
756
- }
757
- const { Module: wasmModule, compile: wasmCompile, compileStreaming: wasmCompileStreaming } = WebAssembly;
758
- WebAssembly.Module = Object.setPrototypeOf(
759
- Object.assign(function Module(...args) {
760
- return brand(new wasmModule(...args));
761
- }, wasmModule),
762
- AbstractModuleSource
763
- );
764
- WebAssembly.Module.prototype = Object.setPrototypeOf(wasmModule.prototype, AbstractModuleSource.prototype);
765
- WebAssembly.compile = function compile(...args) {
766
- return wasmCompile(...args).then(brand);
767
- };
768
- WebAssembly.compileStreaming = function compileStreaming(...args) {
769
- return wasmCompileStreaming(...args).then(brand);
770
- };
771
- }
772
- }
773
- if (hasDocument) {
774
- if (!supportsImportMaps) {
775
- const supports = HTMLScriptElement.supports || (type => type === 'classic' || type === 'module');
776
- HTMLScriptElement.supports = type => type === 'importmap' || supports(type);
777
- }
778
- if (shimMode || !baselinePassthrough) {
779
- attachMutationObserver();
780
- if (document.readyState === 'complete') {
781
- readyStateCompleteCheck();
782
- } else {
783
- document.addEventListener('readystatechange', readyListener);
784
- }
785
- }
786
- processScriptsAndPreloads();
787
- }
788
- return undefined;
789
- });
790
-
791
- const attachMutationObserver = () => {
792
- const observer = new MutationObserver(mutations => {
793
- for (const mutation of mutations) {
794
- if (mutation.type !== 'childList') continue;
795
- for (const node of mutation.addedNodes) {
796
- if (node.tagName === 'SCRIPT') {
797
- if (node.type === (shimMode ? 'module-shim' : 'module') && !node.ep) processScript(node, true);
798
- if (node.type === (shimMode ? 'importmap-shim' : 'importmap') && !node.ep) processImportMap(node, true);
799
- } else if (
800
- node.tagName === 'LINK' &&
801
- node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload') &&
802
- !node.ep
803
- ) {
804
- processPreload(node);
805
- }
806
- }
807
- }
808
- });
809
- observer.observe(document, { childList: true });
810
- observer.observe(document.head, { childList: true });
811
- processScriptsAndPreloads();
812
- };
813
-
814
- let importMapPromise = initPromise;
815
- let firstPolyfillLoad = true;
816
- let legacyAcceptingImportMaps = true;
817
-
818
- const topLevelLoad = async (
819
- url,
820
- parentUrl,
821
- fetchOpts,
822
- source,
823
- nativelyLoaded,
824
- lastStaticLoadPromise,
825
- sourceType
826
- ) => {
827
- await initPromise;
828
- await importMapPromise;
829
- url = (await resolve(url, parentUrl)).r;
830
-
831
- // we mock import('./x.css', { with: { type: 'css' }}) support via an inline static reexport
832
- // because we can't syntactically pass through to dynamic import with a second argument
833
- if (sourceType === 'css' || sourceType === 'json') {
834
- source = `export{default}from'${url}'with{type:"${sourceType}"}`;
835
- url += '?entry';
836
- }
837
-
838
- if (importHook) await importHook(url, typeof fetchOpts !== 'string' ? fetchOpts : {}, parentUrl, source, sourceType);
839
- // early analysis opt-out - no need to even fetch if we have feature support
840
- if (!shimMode && baselinePassthrough && nativePassthrough && sourceType !== 'ts') {
841
- console.info(`es-module-shims: early exit for ${url} due to baseline modules support`);
842
- // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
843
- if (nativelyLoaded) return null;
844
- await lastStaticLoadPromise;
845
- return dynamicImport(source ? createBlob(source) : url);
846
- }
847
- const load = getOrCreateLoad(url, fetchOpts, undefined, source);
848
- linkLoad(load, fetchOpts);
849
- const seen = {};
850
- await loadAll(load, seen);
851
- resolveDeps(load, seen);
852
- await lastStaticLoadPromise;
853
- if (!shimMode && !load.n) {
854
- if (nativelyLoaded) {
855
- console.info(
856
- `es-module-shims: early exit after graph analysis of ${url} - graph ran natively without needing polyfill`
857
- );
858
- return;
859
- }
860
- if (source) {
861
- return await dynamicImport(createBlob(source));
862
- }
863
- }
864
- if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
865
- onpolyfill();
866
- firstPolyfillLoad = false;
867
- }
868
- const module = await (shimMode || load.n || load.N || !nativePassthrough || (!nativelyLoaded && source) ?
869
- dynamicImport(load.b, load.u)
870
- : import(load.u));
871
- // if the top-level load is a shell, run its update function
872
- if (load.s) (await dynamicImport(load.s, load.u)).u$_(module);
873
- if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
874
- return module;
875
- };
876
-
877
- const revokeObjectURLs = registryKeys => {
878
- let curIdx = 0;
879
- const handler = self.requestIdleCallback || self.requestAnimationFrame;
880
- handler(cleanup);
881
- function cleanup() {
882
- for (const key of registryKeys.slice(curIdx, (curIdx += 100))) {
883
- const load = registry[key];
884
- if (load && load.b && load.b !== load.u) URL.revokeObjectURL(load.b);
885
- }
886
- if (curIdx < registryKeys.length) handler(cleanup);
887
- }
888
- };
889
-
890
- const urlJsString = url => `'${url.replace(/'/g, "\\'")}'`;
891
-
892
- let resolvedSource, lastIndex;
893
- const pushStringTo = (load, originalIndex, dynamicImportEndStack) => {
894
- while (dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
895
- const dynamicImportEnd = dynamicImportEndStack.pop();
896
- resolvedSource += `${load.S.slice(lastIndex, dynamicImportEnd)}, ${urlJsString(load.r)}`;
897
- lastIndex = dynamicImportEnd;
898
- }
899
- resolvedSource += load.S.slice(lastIndex, originalIndex);
900
- lastIndex = originalIndex;
901
- };
902
-
903
- const pushSourceURL = (load, commentPrefix, commentStart, dynamicImportEndStack) => {
904
- const urlStart = commentStart + commentPrefix.length;
905
- const commentEnd = load.S.indexOf('\n', urlStart);
906
- const urlEnd = commentEnd !== -1 ? commentEnd : load.S.length;
907
- let sourceUrl = load.S.slice(urlStart, urlEnd);
908
- try {
909
- sourceUrl = new URL(sourceUrl, load.r).href;
910
- } catch {}
911
- pushStringTo(load, urlStart, dynamicImportEndStack);
912
- resolvedSource += sourceUrl;
913
- lastIndex = urlEnd;
914
- };
915
-
916
- const resolveDeps = (load, seen) => {
917
- if (load.b || !seen[load.u]) return;
918
- seen[load.u] = 0;
919
-
920
- for (const { l: dep, s: sourcePhase } of load.d) {
921
- if (!sourcePhase) resolveDeps(dep, seen);
922
- }
923
-
924
- if (!load.n) load.n = load.d.some(dep => dep.l.n);
925
- if (!load.N) load.N = load.d.some(dep => dep.l.N);
926
-
927
- // use native loader whenever possible (n = needs shim) via executable subgraph passthrough
928
- // so long as the module doesn't use dynamic import or unsupported URL mappings (N = should shim)
929
- if (nativePassthrough && !shimMode && !load.n && !load.N) {
930
- load.b = load.u;
931
- load.S = undefined;
932
- return;
933
- }
934
-
935
- console.info(`es-module-shims: polyfilling ${load.u}`);
936
-
937
- const [imports, exports] = load.a;
938
-
939
- // "execution"
940
- let source = load.S,
941
- depIndex = 0,
942
- dynamicImportEndStack = [];
943
-
944
- // once all deps have loaded we can inline the dependency resolution blobs
945
- // and define this blob
946
- (resolvedSource = ''), (lastIndex = 0);
947
-
948
- for (const { s: start, e: end, ss: statementStart, se: statementEnd, d: dynamicImportIndex, t, a } of imports) {
949
- // source phase
950
- if (t === 4) {
951
- let { l: depLoad } = load.d[depIndex++];
952
- pushStringTo(load, statementStart, dynamicImportEndStack);
953
- resolvedSource += `${source.slice(statementStart, start - 1).replace('source', '')}/*${source.slice(start - 1, end + 1)}*/'${createBlob(`export default importShim._s[${urlJsString(depLoad.r)}]`)}'`;
954
- lastIndex = end + 1;
955
- }
956
- // dependency source replacements
957
- else if (dynamicImportIndex === -1) {
958
- let keepAssertion = false;
959
- if (a > 0 && !shimMode) {
960
- const assertion = source.slice(a, statementEnd - 1);
961
- // strip assertions only when unsupported in polyfill mode
962
- keepAssertion =
963
- nativePassthrough &&
964
- ((supportsJsonType && assertion.includes('json')) || (supportsCssType && assertion.includes('css')));
965
- }
966
-
967
- // defer phase stripping
968
- if (t === 6) {
969
- pushStringTo(load, statementStart, dynamicImportEndStack);
970
- resolvedSource += source.slice(statementStart, start - 1).replace('defer', '');
971
- lastIndex = start;
972
- }
973
- let { l: depLoad } = load.d[depIndex++],
974
- blobUrl = depLoad.b,
975
- cycleShell = !blobUrl;
976
- if (cycleShell) {
977
- // circular shell creation
978
- if (!(blobUrl = depLoad.s)) {
979
- blobUrl = depLoad.s = createBlob(
980
- `export function u$_(m){${depLoad.a[1]
981
- .map(({ s, e }, i) => {
982
- const q = depLoad.S[s] === '"' || depLoad.S[s] === "'";
983
- return `e$_${i}=m${q ? `[` : '.'}${depLoad.S.slice(s, e)}${q ? `]` : ''}`;
984
- })
985
- .join(',')}}${
986
- depLoad.a[1].length ? `let ${depLoad.a[1].map((_, i) => `e$_${i}`).join(',')};` : ''
987
- }export {${depLoad.a[1]
988
- .map(({ s, e }, i) => `e$_${i} as ${depLoad.S.slice(s, e)}`)
989
- .join(',')}}\n//# sourceURL=${depLoad.r}?cycle`
990
- );
991
- }
992
- }
993
-
994
- pushStringTo(load, start - 1, dynamicImportEndStack);
995
- resolvedSource += `/*${source.slice(start - 1, end + 1)}*/'${blobUrl}'`;
996
-
997
- // circular shell execution
998
- if (!cycleShell && depLoad.s) {
999
- resolvedSource += `;import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
1000
- depLoad.s = undefined;
1001
- }
1002
- lastIndex = keepAssertion ? end + 1 : statementEnd;
1003
- }
1004
- // import.meta
1005
- else if (dynamicImportIndex === -2) {
1006
- load.m = { url: load.r, resolve: metaResolve };
1007
- if (metaHook) metaHook(load.m, load.u);
1008
- pushStringTo(load, start, dynamicImportEndStack);
1009
- resolvedSource += `importShim._r[${urlJsString(load.u)}].m`;
1010
- lastIndex = statementEnd;
1011
- }
1012
- // dynamic import
1013
- else {
1014
- pushStringTo(load, statementStart + 6, dynamicImportEndStack);
1015
- resolvedSource += `Shim${t === 5 ? '.source' : ''}(`;
1016
- dynamicImportEndStack.push(statementEnd - 1);
1017
- lastIndex = start;
1018
- }
1019
- }
1020
-
1021
- // support progressive cycle binding updates (try statement avoids tdz errors)
1022
- if (load.s && (imports.length === 0 || imports[imports.length - 1].d === -1))
1023
- resolvedSource += `\n;import{u$_}from'${load.s}';try{u$_({${exports
1024
- .filter(e => e.ln)
1025
- .map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`)
1026
- .join(',')}})}catch(_){};\n`;
1027
-
1028
- let sourceURLCommentStart = source.lastIndexOf(sourceURLCommentPrefix);
1029
- let sourceMapURLCommentStart = source.lastIndexOf(sourceMapURLCommentPrefix);
1030
-
1031
- // ignore sourceMap comments before already spliced code
1032
- if (sourceURLCommentStart < lastIndex) sourceURLCommentStart = -1;
1033
- if (sourceMapURLCommentStart < lastIndex) sourceMapURLCommentStart = -1;
1034
-
1035
- // sourceURL first / only
1036
- if (
1037
- sourceURLCommentStart !== -1 &&
1038
- (sourceMapURLCommentStart === -1 || sourceMapURLCommentStart > sourceURLCommentStart)
1039
- ) {
1040
- pushSourceURL(load, sourceURLCommentPrefix, sourceURLCommentStart, dynamicImportEndStack);
1041
- }
1042
- // sourceMappingURL
1043
- if (sourceMapURLCommentStart !== -1) {
1044
- pushSourceURL(load, sourceMapURLCommentPrefix, sourceMapURLCommentStart, dynamicImportEndStack);
1045
- // sourceURL last
1046
- if (sourceURLCommentStart !== -1 && sourceURLCommentStart > sourceMapURLCommentStart)
1047
- pushSourceURL(load, sourceURLCommentPrefix, sourceURLCommentStart, dynamicImportEndStack);
1048
- }
1049
-
1050
- pushStringTo(load, source.length, dynamicImportEndStack);
1051
-
1052
- if (sourceURLCommentStart === -1) resolvedSource += sourceURLCommentPrefix + load.r;
1053
-
1054
- load.b = createBlob(resolvedSource);
1055
- load.S = resolvedSource = undefined;
1056
- };
1057
-
1058
- const sourceURLCommentPrefix = '\n//# sourceURL=';
1059
- const sourceMapURLCommentPrefix = '\n//# sourceMappingURL=';
1060
-
1061
- const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
1062
- const wasmContentType = /^application\/wasm(;|$)/;
1063
- const jsonContentType = /^(text|application)\/json(;|$)/;
1064
- const cssContentType = /^(text|application)\/css(;|$)/;
1065
- const tsContentType = /^application\/typescript(;|$)|/;
1066
-
1067
- const cssUrlRegEx = /url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
1068
-
1069
- // restrict in-flight fetches to a pool of 100
1070
- let p = [];
1071
- let c = 0;
1072
- const pushFetchPool = () => {
1073
- if (++c > 100) return new Promise(r => p.push(r));
1074
- };
1075
- const popFetchPool = () => {
1076
- c--;
1077
- if (p.length) p.shift()();
1078
- };
1079
-
1080
- const doFetch = async (url, fetchOpts, parent) => {
1081
- if (enforceIntegrity && !fetchOpts.integrity) throw Error(`No integrity for ${url}${fromParent(parent)}.`);
1082
- const poolQueue = pushFetchPool();
1083
- if (poolQueue) await poolQueue;
1084
- try {
1085
- var res = await fetchHook(url, fetchOpts);
1086
- } catch (e) {
1087
- e.message = `Unable to fetch ${url}${fromParent(parent)} - see network log for details.\n` + e.message;
1088
- throw e;
1089
- } finally {
1090
- popFetchPool();
1091
- }
1092
-
1093
- if (!res.ok) {
1094
- const error = new TypeError(`${res.status} ${res.statusText} ${res.url}${fromParent(parent)}`);
1095
- error.response = res;
1096
- throw error;
1097
- }
1098
- return res;
1099
- };
1100
-
1101
- let esmsTsTransform;
1102
- const initTs = async () => {
1103
- const m = await import(tsTransform);
1104
- if (!esmsTsTransform) esmsTsTransform = m.transform;
1105
- };
1106
-
1107
- const hotPrefix = 'var h=import.meta.hot,';
1108
- const fetchModule = async (url, fetchOpts, parent) => {
1109
- const mapIntegrity = composedImportMap.integrity[url];
1110
- const res = await doFetch(
1111
- url,
1112
- mapIntegrity && !fetchOpts.integrity ? { ...fetchOpts, integrity: mapIntegrity } : fetchOpts,
1113
- parent
1114
- );
1115
- const r = res.url;
1116
- const contentType = res.headers.get('content-type');
1117
- if (jsContentType.test(contentType)) return { r, s: await res.text(), t: 'js' };
1118
- else if (wasmContentType.test(contentType)) {
1119
- const wasmModule = await (sourceCache[r] || (sourceCache[r] = WebAssembly.compileStreaming(res)));
1120
- const exports = WebAssembly.Module.exports(wasmModule);
1121
- sourceCache[r] = wasmModule;
1122
- const rStr = urlJsString(r);
1123
- let s = `import*as $_ns from${rStr};`,
1124
- i = 0,
1125
- obj = '';
1126
- for (const { module, kind } of WebAssembly.Module.imports(wasmModule)) {
1127
- const specifier = urlJsString(module);
1128
- s += `import*as impt${i} from${specifier};\n`;
1129
- obj += `${specifier}:${kind === 'global' ? `importShim._i.get(impt${i})||impt${i++}` : `impt${i++}`},`;
1130
- }
1131
- s += `${hotPrefix}i=await WebAssembly.instantiate(importShim._s[${rStr}],{${obj}});importShim._i.set($_ns,i);`;
1132
- obj = '';
1133
- for (const { name, kind } of exports) {
1134
- s += `export let ${name}=i.exports['${name}'];`;
1135
- if (kind === 'global') s += `try{${name}=${name}.value}catch{${name}=undefined}`;
1136
- obj += `${name},`;
1137
- }
1138
- s += `if(h)h.accept(m=>({${obj}}=m))`;
1139
- return { r, s, t: 'wasm' };
1140
- } else if (jsonContentType.test(contentType))
1141
- return { r, s: `${hotPrefix}j=${await res.text()};export{j as default};if(h)h.accept(m=>j=m.default)`, t: 'json' };
1142
- else if (cssContentType.test(contentType)) {
1143
- return {
1144
- r,
1145
- s: `${hotPrefix}s=h&&h.data.s||new CSSStyleSheet();s.replaceSync(${JSON.stringify(
1146
- (await res.text()).replace(
1147
- cssUrlRegEx,
1148
- (_match, quotes = '', relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`
1149
- )
1150
- )});if(h){h.data.s=s;h.accept(()=>{})}export default s`,
1151
- t: 'css'
1152
- };
1153
- } else if (tsContentType.test(contentType) || url.endsWith('.ts') || url.endsWith('.mts')) {
1154
- const source = await res.text();
1155
- if (!esmsTsTransform) await initTs();
1156
- const transformed = esmsTsTransform(source, url);
1157
- // even if the TypeScript is valid JavaScript, unless it was a top-level inline source, it wasn't served with
1158
- // a valid JS MIME here, so we must still polyfill it
1159
- return { r, s: transformed === undefined ? source : transformed, t: 'ts' };
1160
- } else
1161
- throw Error(
1162
- `Unsupported Content-Type "${contentType}" loading ${url}${fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`
1163
- );
1164
- };
1165
-
1166
- const isUnsupportedType = type => {
1167
- if (type === 'wasm' && !wasmInstancePhaseEnabled && !wasmSourcePhaseEnabled) throw featErr(`wasm-modules`);
1168
- return (
1169
- (type === 'css' && !supportsCssType) ||
1170
- (type === 'json' && !supportsJsonType) ||
1171
- (type === 'wasm' && !supportsWasmInstancePhase && !supportsWasmSourcePhase) ||
1172
- type === 'ts'
1173
- );
1174
- };
1175
-
1176
- const getOrCreateLoad = (url, fetchOpts, parent, source) => {
1177
- if (source && registry[url]) {
1178
- let i = 0;
1179
- while (registry[url + '#' + ++i]);
1180
- url += '#' + i;
1181
- }
1182
- let load = registry[url];
1183
- if (load) return load;
1184
- registry[url] = load = {
1185
- // url
1186
- u: url,
1187
- // response url
1188
- r: source ? url : undefined,
1189
- // fetchPromise
1190
- f: undefined,
1191
- // source
1192
- S: source,
1193
- // linkPromise
1194
- L: undefined,
1195
- // analysis
1196
- a: undefined,
1197
- // deps
1198
- d: undefined,
1199
- // blobUrl
1200
- b: undefined,
1201
- // shellUrl
1202
- s: undefined,
1203
- // needsShim: does it fail execution in the current native loader?
1204
- n: false,
1205
- // shouldShim: does it need to be loaded by the polyfill loader?
1206
- N: false,
1207
- // type
1208
- t: null,
1209
- // meta
1210
- m: null
1211
- };
1212
- load.f = (async () => {
1213
- if (load.S === undefined) {
1214
- // preload fetch options override fetch options (race)
1215
- ({ r: load.r, s: load.S, t: load.t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
1216
- if (!load.n && load.t !== 'js' && !shimMode && isUnsupportedType(load.t)) {
1217
- load.n = true;
1218
- }
1219
- }
1220
- try {
1221
- load.a = parse(load.S, load.u);
1222
- } catch (e) {
1223
- throwError(e);
1224
- load.a = [[], [], false];
1225
- }
1226
- return load;
1227
- })();
1228
- return load;
1229
- };
1230
-
1231
- const featErr = feat =>
1232
- Error(
1233
- `${feat} feature must be enabled via <script type="esms-options">{ "polyfillEnable": ["${feat}"] }<${''}/script>`
1234
- );
1235
-
1236
- const linkLoad = (load, fetchOpts) => {
1237
- if (load.L) return;
1238
- load.L = load.f.then(async () => {
1239
- let childFetchOpts = fetchOpts;
1240
- load.d = load.a[0]
1241
- .map(({ n, d, t, a, se }) => {
1242
- const phaseImport = t >= 4;
1243
- const sourcePhase = phaseImport && t < 6;
1244
- if (phaseImport) {
1245
- if (!shimMode && (sourcePhase ? !wasmSourcePhaseEnabled : !deferPhaseEnabled))
1246
- throw featErr(sourcePhase ? 'wasm-module-sources' : 'import-defer');
1247
- if (!sourcePhase || !supportsWasmSourcePhase) load.n = true;
1248
- }
1249
- let source = undefined;
1250
- if (a > 0 && !shimMode && nativePassthrough) {
1251
- const assertion = load.S.slice(a, se - 1);
1252
- // no need to fetch JSON/CSS if supported, since it's a leaf node, we'll just strip the assertion syntax
1253
- if (assertion.includes('json')) {
1254
- if (supportsJsonType) source = '';
1255
- else load.n = true;
1256
- } else if (assertion.includes('css')) {
1257
- if (supportsCssType) source = '';
1258
- else load.n = true;
1259
- }
1260
- }
1261
- if (d !== -1 || !n) return;
1262
- const resolved = resolve(n, load.r || load.u);
1263
- if (resolved.n) load.n = true;
1264
- if (d >= 0 || resolved.N) load.N = true;
1265
- if (d !== -1) return;
1266
- if (skip && skip(resolved.r) && !sourcePhase) return { l: { b: resolved.r }, s: false };
1267
- if (childFetchOpts.integrity) childFetchOpts = { ...childFetchOpts, integrity: undefined };
1268
- const child = { l: getOrCreateLoad(resolved.r, childFetchOpts, load.r, source), s: sourcePhase };
1269
- // assertion case -> inline the CSS / JSON URL directly
1270
- if (source === '') child.l.b = child.l.u;
1271
- if (!child.s) linkLoad(child.l, fetchOpts);
1272
- // load, sourcePhase
1273
- return child;
1274
- })
1275
- .filter(l => l);
1276
- });
1277
- };
1278
-
1279
- const processScriptsAndPreloads = () => {
1280
- for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]')) {
1281
- if (!link.ep) processPreload(link);
1282
- }
1283
- for (const script of document.querySelectorAll('script[type]')) {
1284
- if (script.type === 'importmap' + (shimMode ? '-shim' : '')) {
1285
- if (!script.ep) processImportMap(script);
1286
- } else if (script.type === 'module' + (shimMode ? '-shim' : '')) {
1287
- legacyAcceptingImportMaps = false;
1288
- if (!script.ep) processScript(script);
1289
- }
1290
- }
1291
- };
1292
-
1293
- const getFetchOpts = script => {
1294
- const fetchOpts = {};
1295
- if (script.integrity) fetchOpts.integrity = script.integrity;
1296
- if (script.referrerPolicy) fetchOpts.referrerPolicy = script.referrerPolicy;
1297
- if (script.fetchPriority) fetchOpts.priority = script.fetchPriority;
1298
- if (script.crossOrigin === 'use-credentials') fetchOpts.credentials = 'include';
1299
- else if (script.crossOrigin === 'anonymous') fetchOpts.credentials = 'omit';
1300
- else fetchOpts.credentials = 'same-origin';
1301
- return fetchOpts;
1302
- };
1303
-
1304
- let lastStaticLoadPromise = Promise.resolve();
1305
-
1306
- let domContentLoaded = false;
1307
- let domContentLoadedCnt = 1;
1308
- const domContentLoadedCheck = m => {
1309
- if (m === undefined) {
1310
- if (domContentLoaded) return;
1311
- domContentLoaded = true;
1312
- domContentLoadedCnt--;
1313
- }
1314
- if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1315
- console.info(`es-module-shims: DOMContentLoaded refire`);
1316
- document.removeEventListener('DOMContentLoaded', domContentLoadedEvent);
1317
- document.dispatchEvent(new Event('DOMContentLoaded'));
1318
- }
1319
- };
1320
- let loadCnt = 1;
1321
- const loadCheck = () => {
1322
- if (--loadCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1323
- console.info(`es-module-shims: load refire`);
1324
- window.removeEventListener('load', loadEvent);
1325
- window.dispatchEvent(new Event('load'));
1326
- }
1327
- };
1328
-
1329
- const domContentLoadedEvent = async () => {
1330
- await initPromise;
1331
- domContentLoadedCheck();
1332
- };
1333
- const loadEvent = async () => {
1334
- await initPromise;
1335
- domContentLoadedCheck();
1336
- loadCheck();
1337
- };
1338
-
1339
- // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement
1340
- if (hasDocument) {
1341
- document.addEventListener('DOMContentLoaded', domContentLoadedEvent);
1342
- window.addEventListener('load', loadEvent);
1343
- }
1344
-
1345
- const readyListener = async () => {
1346
- await initPromise;
1347
- processScriptsAndPreloads();
1348
- if (document.readyState === 'complete') {
1349
- readyStateCompleteCheck();
1350
- }
1351
- };
1352
-
1353
- let readyStateCompleteCnt = 1;
1354
- const readyStateCompleteCheck = () => {
1355
- if (--readyStateCompleteCnt === 0) {
1356
- domContentLoadedCheck();
1357
- if (!noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1358
- console.info(`es-module-shims: readystatechange complete refire`);
1359
- document.removeEventListener('readystatechange', readyListener);
1360
- document.dispatchEvent(new Event('readystatechange'));
1361
- }
1362
- }
1363
- };
1364
-
1365
- const hasNext = script => script.nextSibling || (script.parentNode && hasNext(script.parentNode));
1366
- const epCheck = (script, ready) =>
1367
- script.ep ||
1368
- (!ready && ((!script.src && !script.innerHTML) || !hasNext(script))) ||
1369
- script.getAttribute('noshim') !== null ||
1370
- !(script.ep = true);
1371
-
1372
- const processImportMap = (script, ready = readyStateCompleteCnt > 0) => {
1373
- if (epCheck(script, ready)) return;
1374
- console.info(`es-module-shims: reading import map`);
1375
- // we dont currently support external import maps in polyfill mode to match native
1376
- if (script.src) {
1377
- if (!shimMode) return;
1378
- importMapSrc = true;
1379
- }
1380
- importMapPromise = importMapPromise
1381
- .then(async () => {
1382
- composedImportMap = resolveAndComposeImportMap(
1383
- script.src ? await (await doFetch(script.src, getFetchOpts(script))).json() : JSON.parse(script.innerHTML),
1384
- script.src || baseUrl,
1385
- composedImportMap
1386
- );
1387
- })
1388
- .catch(e => {
1389
- if (e instanceof SyntaxError)
1390
- e = new Error(`Unable to parse import map ${e.message} in: ${script.src || script.innerHTML}`);
1391
- throwError(e);
1392
- });
1393
- if (!firstImportMap && legacyAcceptingImportMaps) importMapPromise.then(() => (firstImportMap = composedImportMap));
1394
- if (!legacyAcceptingImportMaps && !multipleImportMaps) {
1395
- multipleImportMaps = true;
1396
- if (!shimMode && baselinePassthrough && !supportsMultipleImportMaps) {
1397
- console.info(`es-module-shims: disabling baseline passthrough due to multiple import maps`);
1398
- baselinePassthrough = false;
1399
- if (hasDocument) attachMutationObserver();
1400
- }
1401
- }
1402
- legacyAcceptingImportMaps = false;
1403
- };
1404
-
1405
- const processScript = (script, ready = readyStateCompleteCnt > 0) => {
1406
- if (epCheck(script, ready)) return;
1407
- console.info(`es-module-shims: checking script ${script.src || '<inline>'}`);
1408
- // does this load block readystate complete
1409
- const isBlockingReadyScript = script.getAttribute('async') === null && readyStateCompleteCnt > 0;
1410
- // does this load block DOMContentLoaded
1411
- const isDomContentLoadedScript = domContentLoadedCnt > 0;
1412
- const isLoadScript = loadCnt > 0;
1413
- if (isLoadScript) loadCnt++;
1414
- if (isBlockingReadyScript) readyStateCompleteCnt++;
1415
- if (isDomContentLoadedScript) domContentLoadedCnt++;
1416
- let loadPromise;
1417
- const ts = script.lang === 'ts';
1418
- if (ts && !script.src) {
1419
- loadPromise = Promise.resolve(esmsTsTransform || initTs())
1420
- .then(() => {
1421
- const transformed = esmsTsTransform(script.innerHTML, baseUrl);
1422
- if (transformed !== undefined) {
1423
- onpolyfill();
1424
- firstPolyfillLoad = false;
1425
- }
1426
- return topLevelLoad(
1427
- script.src || baseUrl,
1428
- baseUrl,
1429
- getFetchOpts(script),
1430
- transformed === undefined ? script.innerHTML : transformed,
1431
- !shimMode && transformed === undefined,
1432
- isBlockingReadyScript && lastStaticLoadPromise,
1433
- 'ts'
1434
- );
1435
- })
1436
- .catch(throwError);
1437
- } else {
1438
- loadPromise = topLevelLoad(
1439
- script.src || baseUrl,
1440
- baseUrl,
1441
- getFetchOpts(script),
1442
- !script.src ? script.innerHTML : undefined,
1443
- !shimMode,
1444
- isBlockingReadyScript && lastStaticLoadPromise,
1445
- ts ? 'ts' : undefined
1446
- ).catch(throwError);
1447
- }
1448
- if (!noLoadEventRetriggers) loadPromise.then(() => script.dispatchEvent(new Event('load')));
1449
- if (isBlockingReadyScript && !ts) {
1450
- lastStaticLoadPromise = loadPromise.then(readyStateCompleteCheck);
1451
- }
1452
- if (isDomContentLoadedScript) loadPromise.then(domContentLoadedCheck);
1453
- if (isLoadScript) loadPromise.then(loadCheck);
1454
- };
1455
-
1456
- const fetchCache = {};
1457
- const processPreload = link => {
1458
- link.ep = true;
1459
- if (fetchCache[link.href]) return;
1460
- fetchCache[link.href] = fetchModule(link.href, getFetchOpts(link));
594
+ const _resolve = (id, parentUrl = baseUrl) => {
595
+ const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl) || asURL(id);
596
+ const firstResolved = firstImportMap && resolveImportMap(firstImportMap, urlResolved || id, parentUrl);
597
+ const composedResolved =
598
+ composedImportMap === firstImportMap ? firstResolved : (
599
+ resolveImportMap(composedImportMap, urlResolved || id, parentUrl)
600
+ );
601
+ const resolved = composedResolved || firstResolved || throwUnresolved(id, parentUrl);
602
+ // needsShim, shouldShim per load record to set on parent
603
+ let n = false,
604
+ N = false;
605
+ if (!supportsImportMaps) {
606
+ // bare specifier -> needs shim
607
+ if (!urlResolved) n = true;
608
+ // url mapping -> should shim
609
+ else if (urlResolved !== resolved) N = true;
610
+ } else if (!supportsMultipleImportMaps) {
611
+ // bare specifier and not resolved by first import map -> needs shim
612
+ if (!urlResolved && !firstResolved) n = true;
613
+ // resolution doesn't match first import map -> should shim
614
+ if (firstResolved && resolved !== firstResolved) N = true;
615
+ }
616
+ return { r: resolved, n, N };
1461
617
  };
1462
618
 
1463
- exports.topLevelLoad = topLevelLoad;
619
+ const resolve = (id, parentUrl) => {
620
+ if (!resolveHook) return _resolve(id, parentUrl);
621
+ const result = resolveHook(id, parentUrl, defaultResolve);
622
+
623
+ return result ? { r: result, n: true, N: true } : _resolve(id, parentUrl);
624
+ };
625
+
626
+ // import()
627
+ async function importShim$1(id, opts, parentUrl) {
628
+ if (typeof opts === 'string') {
629
+ parentUrl = opts;
630
+ opts = undefined;
631
+ }
632
+ await initPromise; // needed for shim check
633
+ console.info(`es-module-shims: importShim("${id}"${opts ? ', ' + JSON.stringify(opts) : ''})`);
634
+ if (shimMode || !baselinePassthrough) {
635
+ if (hasDocument) processScriptsAndPreloads();
636
+ legacyAcceptingImportMaps = false;
637
+ }
638
+ let sourceType = undefined;
639
+ if (typeof opts === 'object') {
640
+ if (opts.lang === 'ts') sourceType = 'ts';
641
+ if (typeof opts.with === 'object' && typeof opts.with.type === 'string') {
642
+ sourceType = opts.with.type;
643
+ }
644
+ }
645
+ return topLevelLoad(id, parentUrl || baseUrl, defaultFetchOpts, undefined, undefined, undefined, sourceType);
646
+ }
647
+
648
+ // import.source()
649
+ // (opts not currently supported as no use cases yet)
650
+ if (shimMode || wasmSourcePhaseEnabled)
651
+ importShim$1.source = async (id, opts, parentUrl) => {
652
+ if (typeof opts === 'string') {
653
+ parentUrl = opts;
654
+ opts = undefined;
655
+ }
656
+ await initPromise; // needed for shim check
657
+ console.info(`es-module-shims: importShim.source("${id}"${opts ? ', ' + JSON.stringify(opts) : ''})`);
658
+ if (shimMode || !baselinePassthrough) {
659
+ if (hasDocument) processScriptsAndPreloads();
660
+ legacyAcceptingImportMaps = false;
661
+ }
662
+ await importMapPromise;
663
+ const url = resolve(id, parentUrl || baseUrl).r;
664
+ const load = getOrCreateLoad(url, defaultFetchOpts, undefined, undefined);
665
+ if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
666
+ onpolyfill();
667
+ firstPolyfillLoad = false;
668
+ }
669
+ await load.f;
670
+ return importShim$1._s[load.r];
671
+ };
672
+
673
+ // import.defer() is just a proxy for import(), since we can't actually defer
674
+ if (shimMode || deferPhaseEnabled) importShim$1.defer = importShim$1;
675
+
676
+ if (hotReload) importShim$1.hotReload = hotReload$1;
677
+
678
+ const defaultResolve = (id, parentUrl) => {
679
+ return (
680
+ resolveImportMap(composedImportMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) ||
681
+ throwUnresolved(id, parentUrl)
682
+ );
683
+ };
684
+
685
+ const throwUnresolved = (id, parentUrl) => {
686
+ throw Error(`Unable to resolve specifier '${id}'${fromParent(parentUrl)}`);
687
+ };
688
+
689
+ const metaResolve = function (id, parentUrl = this.url) {
690
+ return resolve(id, `${parentUrl}`).r;
691
+ };
692
+
693
+ importShim$1.resolve = (id, parentUrl) => resolve(id, parentUrl).r;
694
+ importShim$1.getImportMap = () => JSON.parse(JSON.stringify(composedImportMap));
695
+ importShim$1.addImportMap = importMapIn => {
696
+ if (!shimMode) throw new Error('Unsupported in polyfill mode.');
697
+ composedImportMap = resolveAndComposeImportMap(importMapIn, baseUrl, composedImportMap);
698
+ };
699
+ importShim$1.version = version;
700
+
701
+ const registry = (importShim$1._r = {});
702
+ // Wasm caches
703
+ const sourceCache = (importShim$1._s = {});
704
+ (importShim$1._i = new WeakMap());
705
+
706
+ // Ensure this version is the only version
707
+ defineValue(self, 'importShim', Object.freeze(importShim$1));
708
+ const shimModeOptions = { ...esmsInitOptions, shimMode: true };
709
+ if (optionsScript) optionsScript.innerHTML = JSON.stringify(shimModeOptions);
710
+ self.esmsInitOptions = shimModeOptions;
711
+
712
+ const loadAll = async (load, seen) => {
713
+ seen[load.u] = 1;
714
+ await load.L;
715
+ await Promise.all(
716
+ load.d.map(({ l: dep, s: sourcePhase }) => {
717
+ if (dep.b || seen[dep.u]) return;
718
+ if (sourcePhase) return dep.f;
719
+ return loadAll(dep, seen);
720
+ })
721
+ );
722
+ };
723
+
724
+ let importMapSrc = false;
725
+ let multipleImportMaps = false;
726
+ let firstImportMap = null;
727
+ // To support polyfilling multiple import maps, we separately track the composed import map from the first import map
728
+ let composedImportMap = { imports: {}, scopes: {}, integrity: {} };
729
+ let baselinePassthrough;
730
+
731
+ const initPromise = featureDetectionPromise.then(() => {
732
+ baselinePassthrough =
733
+ esmsInitOptions.polyfillEnable !== true &&
734
+ supportsImportMaps &&
735
+ supportsJsonType &&
736
+ supportsCssType &&
737
+ (!wasmInstancePhaseEnabled || supportsWasmInstancePhase) &&
738
+ (!wasmSourcePhaseEnabled || supportsWasmSourcePhase) &&
739
+ !deferPhaseEnabled &&
740
+ (!multipleImportMaps || supportsMultipleImportMaps) &&
741
+ !importMapSrc;
742
+ if (!shimMode && typeof WebAssembly !== 'undefined') {
743
+ if (wasmSourcePhaseEnabled && !Object.getPrototypeOf(WebAssembly.Module).name) {
744
+ const s = Symbol();
745
+ const brand = m => defineValue(m, s, 'WebAssembly.Module');
746
+ class AbstractModuleSource {
747
+ get [Symbol.toStringTag]() {
748
+ if (this[s]) return this[s];
749
+ throw new TypeError('Not an AbstractModuleSource');
750
+ }
751
+ }
752
+ const { Module: wasmModule, compile: wasmCompile, compileStreaming: wasmCompileStreaming } = WebAssembly;
753
+ WebAssembly.Module = Object.setPrototypeOf(
754
+ Object.assign(function Module(...args) {
755
+ return brand(new wasmModule(...args));
756
+ }, wasmModule),
757
+ AbstractModuleSource
758
+ );
759
+ WebAssembly.Module.prototype = Object.setPrototypeOf(wasmModule.prototype, AbstractModuleSource.prototype);
760
+ WebAssembly.compile = function compile(...args) {
761
+ return wasmCompile(...args).then(brand);
762
+ };
763
+ WebAssembly.compileStreaming = function compileStreaming(...args) {
764
+ return wasmCompileStreaming(...args).then(brand);
765
+ };
766
+ }
767
+ }
768
+ if (hasDocument) {
769
+ if (!supportsImportMaps) {
770
+ const supports = HTMLScriptElement.supports || (type => type === 'classic' || type === 'module');
771
+ HTMLScriptElement.supports = type => type === 'importmap' || supports(type);
772
+ }
773
+ if (shimMode || !baselinePassthrough) {
774
+ attachMutationObserver();
775
+ if (document.readyState === 'complete') {
776
+ readyStateCompleteCheck();
777
+ } else {
778
+ document.addEventListener('readystatechange', readyListener);
779
+ }
780
+ }
781
+ processScriptsAndPreloads();
782
+ }
783
+ return undefined;
784
+ });
785
+
786
+ const attachMutationObserver = () => {
787
+ const observer = new MutationObserver(mutations => {
788
+ for (const mutation of mutations) {
789
+ if (mutation.type !== 'childList') continue;
790
+ for (const node of mutation.addedNodes) {
791
+ if (node.tagName === 'SCRIPT') {
792
+ if (node.type === (shimMode ? 'module-shim' : 'module') && !node.ep) processScript(node, true);
793
+ if (node.type === (shimMode ? 'importmap-shim' : 'importmap') && !node.ep) processImportMap(node, true);
794
+ } else if (
795
+ node.tagName === 'LINK' &&
796
+ node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload') &&
797
+ !node.ep
798
+ ) {
799
+ processPreload(node);
800
+ }
801
+ }
802
+ }
803
+ });
804
+ observer.observe(document, { childList: true });
805
+ observer.observe(document.head, { childList: true });
806
+ processScriptsAndPreloads();
807
+ };
808
+
809
+ let importMapPromise = initPromise;
810
+ let firstPolyfillLoad = true;
811
+ let legacyAcceptingImportMaps = true;
812
+
813
+ const topLevelLoad = async (
814
+ url,
815
+ parentUrl,
816
+ fetchOpts,
817
+ source,
818
+ nativelyLoaded,
819
+ lastStaticLoadPromise,
820
+ sourceType
821
+ ) => {
822
+ await initPromise;
823
+ await importMapPromise;
824
+ url = (await resolve(url, parentUrl)).r;
825
+
826
+ // we mock import('./x.css', { with: { type: 'css' }}) support via an inline static reexport
827
+ // because we can't syntactically pass through to dynamic import with a second argument
828
+ if (sourceType === 'css' || sourceType === 'json') {
829
+ // Direct reexport for hot reloading skipped due to Firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1965620
830
+ source = `import m from'${url}'with{type:"${sourceType}"};export default m;`;
831
+ url += '?entry';
832
+ }
833
+
834
+ if (importHook) await importHook(url, typeof fetchOpts !== 'string' ? fetchOpts : {}, parentUrl, source, sourceType);
835
+ // early analysis opt-out - no need to even fetch if we have feature support
836
+ if (!shimMode && baselinePassthrough && nativePassthrough && sourceType !== 'ts') {
837
+ console.info(`es-module-shims: early exit for ${url} due to baseline modules support`);
838
+ // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
839
+ if (nativelyLoaded) return null;
840
+ await lastStaticLoadPromise;
841
+ return dynamicImport(source ? createBlob(source) : url);
842
+ }
843
+ const load = getOrCreateLoad(url, fetchOpts, undefined, source);
844
+ linkLoad(load, fetchOpts);
845
+ const seen = {};
846
+ await loadAll(load, seen);
847
+ resolveDeps(load, seen);
848
+ await lastStaticLoadPromise;
849
+ if (!shimMode && !load.n) {
850
+ if (nativelyLoaded) {
851
+ console.info(
852
+ `es-module-shims: early exit after graph analysis of ${url} - graph ran natively without needing polyfill`
853
+ );
854
+ return;
855
+ }
856
+ if (source) {
857
+ return await dynamicImport(createBlob(source));
858
+ }
859
+ }
860
+ if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
861
+ onpolyfill();
862
+ firstPolyfillLoad = false;
863
+ }
864
+ const module = await (shimMode || load.n || load.N || !nativePassthrough || (!nativelyLoaded && source) ?
865
+ dynamicImport(load.b, load.u)
866
+ : import(load.u));
867
+ // if the top-level load is a shell, run its update function
868
+ if (load.s) (await dynamicImport(load.s, load.u)).u$_(module);
869
+ if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
870
+ return module;
871
+ };
872
+
873
+ const revokeObjectURLs = registryKeys => {
874
+ let curIdx = 0;
875
+ const handler = self.requestIdleCallback || self.requestAnimationFrame;
876
+ handler(cleanup);
877
+ function cleanup() {
878
+ for (const key of registryKeys.slice(curIdx, (curIdx += 100))) {
879
+ const load = registry[key];
880
+ if (load && load.b && load.b !== load.u) URL.revokeObjectURL(load.b);
881
+ }
882
+ if (curIdx < registryKeys.length) handler(cleanup);
883
+ }
884
+ };
885
+
886
+ const urlJsString = url => `'${url.replace(/'/g, "\\'")}'`;
887
+
888
+ let resolvedSource, lastIndex;
889
+ const pushStringTo = (load, originalIndex, dynamicImportEndStack) => {
890
+ while (dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
891
+ const dynamicImportEnd = dynamicImportEndStack.pop();
892
+ resolvedSource += `${load.S.slice(lastIndex, dynamicImportEnd)}, ${urlJsString(load.r)}`;
893
+ lastIndex = dynamicImportEnd;
894
+ }
895
+ resolvedSource += load.S.slice(lastIndex, originalIndex);
896
+ lastIndex = originalIndex;
897
+ };
898
+
899
+ const pushSourceURL = (load, commentPrefix, commentStart, dynamicImportEndStack) => {
900
+ const urlStart = commentStart + commentPrefix.length;
901
+ const commentEnd = load.S.indexOf('\n', urlStart);
902
+ const urlEnd = commentEnd !== -1 ? commentEnd : load.S.length;
903
+ let sourceUrl = load.S.slice(urlStart, urlEnd);
904
+ try {
905
+ sourceUrl = new URL(sourceUrl, load.r).href;
906
+ } catch {}
907
+ pushStringTo(load, urlStart, dynamicImportEndStack);
908
+ resolvedSource += sourceUrl;
909
+ lastIndex = urlEnd;
910
+ };
911
+
912
+ const resolveDeps = (load, seen) => {
913
+ if (load.b || !seen[load.u]) return;
914
+ seen[load.u] = 0;
915
+
916
+ for (const { l: dep, s: sourcePhase } of load.d) {
917
+ if (!sourcePhase) resolveDeps(dep, seen);
918
+ }
919
+
920
+ if (!load.n) load.n = load.d.some(dep => dep.l.n);
921
+ if (!load.N) load.N = load.d.some(dep => dep.l.N);
922
+
923
+ // use native loader whenever possible (n = needs shim) via executable subgraph passthrough
924
+ // so long as the module doesn't use dynamic import or unsupported URL mappings (N = should shim)
925
+ if (nativePassthrough && !shimMode && !load.n && !load.N) {
926
+ load.b = load.u;
927
+ load.S = undefined;
928
+ return;
929
+ }
930
+
931
+ console.info(`es-module-shims: polyfilling ${load.u}`);
932
+
933
+ const [imports, exports] = load.a;
1464
934
 
1465
- Object.defineProperty(exports, '__esModule', { value: true });
935
+ // "execution"
936
+ let source = load.S,
937
+ depIndex = 0,
938
+ dynamicImportEndStack = [];
1466
939
 
1467
- return exports;
940
+ // once all deps have loaded we can inline the dependency resolution blobs
941
+ // and define this blob
942
+ (resolvedSource = ''), (lastIndex = 0);
943
+
944
+ for (const { s: start, e: end, ss: statementStart, se: statementEnd, d: dynamicImportIndex, t, a } of imports) {
945
+ // source phase
946
+ if (t === 4) {
947
+ let { l: depLoad } = load.d[depIndex++];
948
+ pushStringTo(load, statementStart, dynamicImportEndStack);
949
+ resolvedSource += `${source.slice(statementStart, start - 1).replace('source', '')}/*${source.slice(start - 1, end + 1)}*/'${createBlob(`export default importShim._s[${urlJsString(depLoad.r)}]`)}'`;
950
+ lastIndex = end + 1;
951
+ }
952
+ // dependency source replacements
953
+ else if (dynamicImportIndex === -1) {
954
+ let keepAssertion = false;
955
+ if (a > 0 && !shimMode) {
956
+ const assertion = source.slice(a, statementEnd - 1);
957
+ // strip assertions only when unsupported in polyfill mode
958
+ keepAssertion =
959
+ nativePassthrough &&
960
+ ((supportsJsonType && assertion.includes('json')) || (supportsCssType && assertion.includes('css')));
961
+ }
962
+
963
+ // defer phase stripping
964
+ if (t === 6) {
965
+ pushStringTo(load, statementStart, dynamicImportEndStack);
966
+ resolvedSource += source.slice(statementStart, start - 1).replace('defer', '');
967
+ lastIndex = start;
968
+ }
969
+ let { l: depLoad } = load.d[depIndex++],
970
+ blobUrl = depLoad.b,
971
+ cycleShell = !blobUrl;
972
+ if (cycleShell) {
973
+ // circular shell creation
974
+ if (!(blobUrl = depLoad.s)) {
975
+ blobUrl = depLoad.s = createBlob(
976
+ `export function u$_(m){${depLoad.a[1]
977
+ .map(({ s, e }, i) => {
978
+ const q = depLoad.S[s] === '"' || depLoad.S[s] === "'";
979
+ return `e$_${i}=m${q ? `[` : '.'}${depLoad.S.slice(s, e)}${q ? `]` : ''}`;
980
+ })
981
+ .join(',')}}${
982
+ depLoad.a[1].length ? `let ${depLoad.a[1].map((_, i) => `e$_${i}`).join(',')};` : ''
983
+ }export {${depLoad.a[1]
984
+ .map(({ s, e }, i) => `e$_${i} as ${depLoad.S.slice(s, e)}`)
985
+ .join(',')}}\n//# sourceURL=${depLoad.r}?cycle`
986
+ );
987
+ }
988
+ }
989
+
990
+ pushStringTo(load, start - 1, dynamicImportEndStack);
991
+ resolvedSource += `/*${source.slice(start - 1, end + 1)}*/'${blobUrl}'`;
992
+
993
+ // circular shell execution
994
+ if (!cycleShell && depLoad.s) {
995
+ resolvedSource += `;import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
996
+ depLoad.s = undefined;
997
+ }
998
+ lastIndex = keepAssertion ? end + 1 : statementEnd;
999
+ }
1000
+ // import.meta
1001
+ else if (dynamicImportIndex === -2) {
1002
+ load.m = { url: load.r, resolve: metaResolve };
1003
+ if (metaHook) metaHook(load.m, load.u);
1004
+ pushStringTo(load, start, dynamicImportEndStack);
1005
+ resolvedSource += `importShim._r[${urlJsString(load.u)}].m`;
1006
+ lastIndex = statementEnd;
1007
+ }
1008
+ // dynamic import
1009
+ else {
1010
+ pushStringTo(load, statementStart + 6, dynamicImportEndStack);
1011
+ resolvedSource += `Shim${t === 5 ? '.source' : ''}(`;
1012
+ dynamicImportEndStack.push(statementEnd - 1);
1013
+ lastIndex = start;
1014
+ }
1015
+ }
1016
+
1017
+ // support progressive cycle binding updates (try statement avoids tdz errors)
1018
+ if (load.s && (imports.length === 0 || imports[imports.length - 1].d === -1))
1019
+ resolvedSource += `\n;import{u$_}from'${load.s}';try{u$_({${exports
1020
+ .filter(e => e.ln)
1021
+ .map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`)
1022
+ .join(',')}})}catch(_){};\n`;
1023
+
1024
+ let sourceURLCommentStart = source.lastIndexOf(sourceURLCommentPrefix);
1025
+ let sourceMapURLCommentStart = source.lastIndexOf(sourceMapURLCommentPrefix);
1026
+
1027
+ // ignore sourceMap comments before already spliced code
1028
+ if (sourceURLCommentStart < lastIndex) sourceURLCommentStart = -1;
1029
+ if (sourceMapURLCommentStart < lastIndex) sourceMapURLCommentStart = -1;
1030
+
1031
+ // sourceURL first / only
1032
+ if (
1033
+ sourceURLCommentStart !== -1 &&
1034
+ (sourceMapURLCommentStart === -1 || sourceMapURLCommentStart > sourceURLCommentStart)
1035
+ ) {
1036
+ pushSourceURL(load, sourceURLCommentPrefix, sourceURLCommentStart, dynamicImportEndStack);
1037
+ }
1038
+ // sourceMappingURL
1039
+ if (sourceMapURLCommentStart !== -1) {
1040
+ pushSourceURL(load, sourceMapURLCommentPrefix, sourceMapURLCommentStart, dynamicImportEndStack);
1041
+ // sourceURL last
1042
+ if (sourceURLCommentStart !== -1 && sourceURLCommentStart > sourceMapURLCommentStart)
1043
+ pushSourceURL(load, sourceURLCommentPrefix, sourceURLCommentStart, dynamicImportEndStack);
1044
+ }
1045
+
1046
+ pushStringTo(load, source.length, dynamicImportEndStack);
1047
+
1048
+ if (sourceURLCommentStart === -1) resolvedSource += sourceURLCommentPrefix + load.r;
1049
+
1050
+ load.b = createBlob(resolvedSource);
1051
+ load.S = resolvedSource = undefined;
1052
+ };
1053
+
1054
+ const sourceURLCommentPrefix = '\n//# sourceURL=';
1055
+ const sourceMapURLCommentPrefix = '\n//# sourceMappingURL=';
1056
+
1057
+ const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
1058
+ const wasmContentType = /^application\/wasm(;|$)/;
1059
+ const jsonContentType = /^(text|application)\/json(;|$)/;
1060
+ const cssContentType = /^(text|application)\/css(;|$)/;
1061
+ const tsContentType = /^application\/typescript(;|$)|/;
1062
+
1063
+ const cssUrlRegEx = /url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
1064
+
1065
+ // restrict in-flight fetches to a pool of 100
1066
+ let p = [];
1067
+ let c = 0;
1068
+ const pushFetchPool = () => {
1069
+ if (++c > 100) return new Promise(r => p.push(r));
1070
+ };
1071
+ const popFetchPool = () => {
1072
+ c--;
1073
+ if (p.length) p.shift()();
1074
+ };
1075
+
1076
+ const doFetch = async (url, fetchOpts, parent) => {
1077
+ if (enforceIntegrity && !fetchOpts.integrity) throw Error(`No integrity for ${url}${fromParent(parent)}.`);
1078
+ const poolQueue = pushFetchPool();
1079
+ if (poolQueue) await poolQueue;
1080
+ try {
1081
+ var res = await fetchHook(url, fetchOpts);
1082
+ } catch (e) {
1083
+ e.message = `Unable to fetch ${url}${fromParent(parent)} - see network log for details.\n` + e.message;
1084
+ throw e;
1085
+ } finally {
1086
+ popFetchPool();
1087
+ }
1088
+
1089
+ if (!res.ok) {
1090
+ const error = new TypeError(`${res.status} ${res.statusText} ${res.url}${fromParent(parent)}`);
1091
+ error.response = res;
1092
+ throw error;
1093
+ }
1094
+ return res;
1095
+ };
1096
+
1097
+ let esmsTsTransform;
1098
+ const initTs = async () => {
1099
+ const m = await import(tsTransform);
1100
+ if (!esmsTsTransform) esmsTsTransform = m.transform;
1101
+ };
1102
+
1103
+ const hotPrefix = 'var h=import.meta.hot,';
1104
+ const fetchModule = async (url, fetchOpts, parent) => {
1105
+ const mapIntegrity = composedImportMap.integrity[url];
1106
+ const res = await doFetch(
1107
+ url,
1108
+ mapIntegrity && !fetchOpts.integrity ? { ...fetchOpts, integrity: mapIntegrity } : fetchOpts,
1109
+ parent
1110
+ );
1111
+ const r = res.url;
1112
+ const contentType = res.headers.get('content-type');
1113
+ if (jsContentType.test(contentType)) return { r, s: await res.text(), t: 'js' };
1114
+ else if (wasmContentType.test(contentType)) {
1115
+ const wasmModule = await (sourceCache[r] || (sourceCache[r] = WebAssembly.compileStreaming(res)));
1116
+ const exports = WebAssembly.Module.exports(wasmModule);
1117
+ sourceCache[r] = wasmModule;
1118
+ const rStr = urlJsString(r);
1119
+ let s = `import*as $_ns from${rStr};`,
1120
+ i = 0,
1121
+ obj = '';
1122
+ for (const { module, kind } of WebAssembly.Module.imports(wasmModule)) {
1123
+ const specifier = urlJsString(module);
1124
+ s += `import*as impt${i} from${specifier};\n`;
1125
+ obj += `${specifier}:${kind === 'global' ? `importShim._i.get(impt${i})||impt${i++}` : `impt${i++}`},`;
1126
+ }
1127
+ s += `${hotPrefix}i=await WebAssembly.instantiate(importShim._s[${rStr}],{${obj}});importShim._i.set($_ns,i);`;
1128
+ obj = '';
1129
+ for (const { name, kind } of exports) {
1130
+ s += `export let ${name}=i.exports['${name}'];`;
1131
+ if (kind === 'global') s += `try{${name}=${name}.value}catch{${name}=undefined}`;
1132
+ obj += `${name},`;
1133
+ }
1134
+ s += `if(h)h.accept(m=>({${obj}}=m))`;
1135
+ return { r, s, t: 'wasm' };
1136
+ } else if (jsonContentType.test(contentType))
1137
+ return {
1138
+ r,
1139
+ s: `${hotPrefix}j=${await res.text()};export{j as default};if(h)h.accept(m=>j=m.default)`,
1140
+ t: 'json'
1141
+ };
1142
+ else if (cssContentType.test(contentType)) {
1143
+ return {
1144
+ r,
1145
+ s: `${hotPrefix}s=h&&h.data.s||new CSSStyleSheet();s.replaceSync(${JSON.stringify(
1146
+ (await res.text()).replace(
1147
+ cssUrlRegEx,
1148
+ (_match, quotes = '', relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`
1149
+ )
1150
+ )});if(h){h.data.s=s;h.accept(()=>{})}export default s`,
1151
+ t: 'css'
1152
+ };
1153
+ } else if (tsContentType.test(contentType) || url.endsWith('.ts') || url.endsWith('.mts')) {
1154
+ const source = await res.text();
1155
+ if (!esmsTsTransform) await initTs();
1156
+ console.info(`es-module-shims: Compiling TypeScript file ${url}`);
1157
+ const transformed = esmsTsTransform(source, url);
1158
+ // even if the TypeScript is valid JavaScript, unless it was a top-level inline source, it wasn't served with
1159
+ // a valid JS MIME here, so we must still polyfill it
1160
+ return { r, s: transformed === undefined ? source : transformed, t: 'ts' };
1161
+ } else
1162
+ throw Error(
1163
+ `Unsupported Content-Type "${contentType}" loading ${url}${fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`
1164
+ );
1165
+ };
1166
+
1167
+ const isUnsupportedType = type => {
1168
+ if (type === 'wasm' && !wasmInstancePhaseEnabled && !wasmSourcePhaseEnabled) throw featErr(`wasm-modules`);
1169
+ return (
1170
+ (type === 'css' && !supportsCssType) ||
1171
+ (type === 'json' && !supportsJsonType) ||
1172
+ (type === 'wasm' && !supportsWasmInstancePhase && !supportsWasmSourcePhase) ||
1173
+ type === 'ts'
1174
+ );
1175
+ };
1176
+
1177
+ const getOrCreateLoad = (url, fetchOpts, parent, source) => {
1178
+ if (source && registry[url]) {
1179
+ let i = 0;
1180
+ while (registry[url + '#' + ++i]);
1181
+ url += '#' + i;
1182
+ }
1183
+ let load = registry[url];
1184
+ if (load) return load;
1185
+ registry[url] = load = {
1186
+ // url
1187
+ u: url,
1188
+ // response url
1189
+ r: source ? url : undefined,
1190
+ // fetchPromise
1191
+ f: undefined,
1192
+ // source
1193
+ S: source,
1194
+ // linkPromise
1195
+ L: undefined,
1196
+ // analysis
1197
+ a: undefined,
1198
+ // deps
1199
+ d: undefined,
1200
+ // blobUrl
1201
+ b: undefined,
1202
+ // shellUrl
1203
+ s: undefined,
1204
+ // needsShim: does it fail execution in the current native loader?
1205
+ n: false,
1206
+ // shouldShim: does it need to be loaded by the polyfill loader?
1207
+ N: false,
1208
+ // type
1209
+ t: null,
1210
+ // meta
1211
+ m: null
1212
+ };
1213
+ load.f = (async () => {
1214
+ if (load.S === undefined) {
1215
+ // preload fetch options override fetch options (race)
1216
+ ({ r: load.r, s: load.S, t: load.t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
1217
+ if (!load.n && load.t !== 'js' && !shimMode && isUnsupportedType(load.t)) {
1218
+ load.n = true;
1219
+ }
1220
+ }
1221
+ try {
1222
+ load.a = parse(load.S, load.u);
1223
+ } catch (e) {
1224
+ throwError(e);
1225
+ load.a = [[], [], false];
1226
+ }
1227
+ return load;
1228
+ })();
1229
+ return load;
1230
+ };
1231
+
1232
+ const featErr = feat =>
1233
+ Error(
1234
+ `${feat} feature must be enabled via <script type="esms-options">{ "polyfillEnable": ["${feat}"] }<${''}/script>`
1235
+ );
1236
+
1237
+ const linkLoad = (load, fetchOpts) => {
1238
+ if (load.L) return;
1239
+ load.L = load.f.then(async () => {
1240
+ let childFetchOpts = fetchOpts;
1241
+ load.d = load.a[0]
1242
+ .map(({ n, d, t, a, se }) => {
1243
+ const phaseImport = t >= 4;
1244
+ const sourcePhase = phaseImport && t < 6;
1245
+ if (phaseImport) {
1246
+ if (!shimMode && (sourcePhase ? !wasmSourcePhaseEnabled : !deferPhaseEnabled))
1247
+ throw featErr(sourcePhase ? 'wasm-module-sources' : 'import-defer');
1248
+ if (!sourcePhase || !supportsWasmSourcePhase) load.n = true;
1249
+ }
1250
+ let source = undefined;
1251
+ if (a > 0 && !shimMode && nativePassthrough) {
1252
+ const assertion = load.S.slice(a, se - 1);
1253
+ // no need to fetch JSON/CSS if supported, since it's a leaf node, we'll just strip the assertion syntax
1254
+ if (assertion.includes('json')) {
1255
+ if (supportsJsonType) source = '';
1256
+ else load.n = true;
1257
+ } else if (assertion.includes('css')) {
1258
+ if (supportsCssType) source = '';
1259
+ else load.n = true;
1260
+ }
1261
+ }
1262
+ if (d !== -1 || !n) return;
1263
+ const resolved = resolve(n, load.r || load.u);
1264
+ if (resolved.n) load.n = true;
1265
+ if (d >= 0 || resolved.N) load.N = true;
1266
+ if (d !== -1) return;
1267
+ if (skip && skip(resolved.r) && !sourcePhase) return { l: { b: resolved.r }, s: false };
1268
+ if (childFetchOpts.integrity) childFetchOpts = { ...childFetchOpts, integrity: undefined };
1269
+ const child = { l: getOrCreateLoad(resolved.r, childFetchOpts, load.r, source), s: sourcePhase };
1270
+ // assertion case -> inline the CSS / JSON URL directly
1271
+ if (source === '') child.l.b = child.l.u;
1272
+ if (!child.s) linkLoad(child.l, fetchOpts);
1273
+ // load, sourcePhase
1274
+ return child;
1275
+ })
1276
+ .filter(l => l);
1277
+ });
1278
+ };
1279
+
1280
+ const processScriptsAndPreloads = () => {
1281
+ for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]')) {
1282
+ if (!link.ep) processPreload(link);
1283
+ }
1284
+ for (const script of document.querySelectorAll('script[type]')) {
1285
+ if (script.type === 'importmap' + (shimMode ? '-shim' : '')) {
1286
+ if (!script.ep) processImportMap(script);
1287
+ } else if (script.type === 'module' + (shimMode ? '-shim' : '')) {
1288
+ legacyAcceptingImportMaps = false;
1289
+ if (!script.ep) processScript(script);
1290
+ }
1291
+ }
1292
+ };
1293
+
1294
+ const getFetchOpts = script => {
1295
+ const fetchOpts = {};
1296
+ if (script.integrity) fetchOpts.integrity = script.integrity;
1297
+ if (script.referrerPolicy) fetchOpts.referrerPolicy = script.referrerPolicy;
1298
+ if (script.fetchPriority) fetchOpts.priority = script.fetchPriority;
1299
+ if (script.crossOrigin === 'use-credentials') fetchOpts.credentials = 'include';
1300
+ else if (script.crossOrigin === 'anonymous') fetchOpts.credentials = 'omit';
1301
+ else fetchOpts.credentials = 'same-origin';
1302
+ return fetchOpts;
1303
+ };
1304
+
1305
+ let lastStaticLoadPromise = Promise.resolve();
1306
+
1307
+ let domContentLoaded = false;
1308
+ let domContentLoadedCnt = 1;
1309
+ const domContentLoadedCheck = m => {
1310
+ if (m === undefined) {
1311
+ if (domContentLoaded) return;
1312
+ domContentLoaded = true;
1313
+ domContentLoadedCnt--;
1314
+ }
1315
+ if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1316
+ console.info(`es-module-shims: DOMContentLoaded refire`);
1317
+ document.removeEventListener('DOMContentLoaded', domContentLoadedEvent);
1318
+ document.dispatchEvent(new Event('DOMContentLoaded'));
1319
+ }
1320
+ };
1321
+ let loadCnt = 1;
1322
+ const loadCheck = () => {
1323
+ if (--loadCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1324
+ console.info(`es-module-shims: load refire`);
1325
+ window.removeEventListener('load', loadEvent);
1326
+ window.dispatchEvent(new Event('load'));
1327
+ }
1328
+ };
1329
+
1330
+ const domContentLoadedEvent = async () => {
1331
+ await initPromise;
1332
+ domContentLoadedCheck();
1333
+ };
1334
+ const loadEvent = async () => {
1335
+ await initPromise;
1336
+ domContentLoadedCheck();
1337
+ loadCheck();
1338
+ };
1339
+
1340
+ // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement
1341
+ if (hasDocument) {
1342
+ document.addEventListener('DOMContentLoaded', domContentLoadedEvent);
1343
+ window.addEventListener('load', loadEvent);
1344
+ }
1345
+
1346
+ const readyListener = async () => {
1347
+ await initPromise;
1348
+ processScriptsAndPreloads();
1349
+ if (document.readyState === 'complete') {
1350
+ readyStateCompleteCheck();
1351
+ }
1352
+ };
1353
+
1354
+ let readyStateCompleteCnt = 1;
1355
+ const readyStateCompleteCheck = () => {
1356
+ if (--readyStateCompleteCnt === 0) {
1357
+ domContentLoadedCheck();
1358
+ if (!noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
1359
+ console.info(`es-module-shims: readystatechange complete refire`);
1360
+ document.removeEventListener('readystatechange', readyListener);
1361
+ document.dispatchEvent(new Event('readystatechange'));
1362
+ }
1363
+ }
1364
+ };
1365
+
1366
+ const hasNext = script => script.nextSibling || (script.parentNode && hasNext(script.parentNode));
1367
+ const epCheck = (script, ready) =>
1368
+ script.ep ||
1369
+ (!ready && ((!script.src && !script.innerHTML) || !hasNext(script))) ||
1370
+ script.getAttribute('noshim') !== null ||
1371
+ !(script.ep = true);
1372
+
1373
+ const processImportMap = (script, ready = readyStateCompleteCnt > 0) => {
1374
+ if (epCheck(script, ready)) return;
1375
+ console.info(`es-module-shims: reading import map`);
1376
+ // we dont currently support external import maps in polyfill mode to match native
1377
+ if (script.src) {
1378
+ if (!shimMode) return;
1379
+ importMapSrc = true;
1380
+ }
1381
+ importMapPromise = importMapPromise
1382
+ .then(async () => {
1383
+ composedImportMap = resolveAndComposeImportMap(
1384
+ script.src ? await (await doFetch(script.src, getFetchOpts(script))).json() : JSON.parse(script.innerHTML),
1385
+ script.src || baseUrl,
1386
+ composedImportMap
1387
+ );
1388
+ })
1389
+ .catch(e => {
1390
+ if (e instanceof SyntaxError)
1391
+ e = new Error(`Unable to parse import map ${e.message} in: ${script.src || script.innerHTML}`);
1392
+ throwError(e);
1393
+ });
1394
+ if (!firstImportMap && legacyAcceptingImportMaps) importMapPromise.then(() => (firstImportMap = composedImportMap));
1395
+ if (!legacyAcceptingImportMaps && !multipleImportMaps) {
1396
+ multipleImportMaps = true;
1397
+ if (!shimMode && baselinePassthrough && !supportsMultipleImportMaps) {
1398
+ console.info(`es-module-shims: disabling baseline passthrough due to multiple import maps`);
1399
+ baselinePassthrough = false;
1400
+ if (hasDocument) attachMutationObserver();
1401
+ }
1402
+ }
1403
+ legacyAcceptingImportMaps = false;
1404
+ };
1405
+
1406
+ const processScript = (script, ready = readyStateCompleteCnt > 0) => {
1407
+ if (epCheck(script, ready)) return;
1408
+ console.info(`es-module-shims: checking script ${script.src || '<inline>'}`);
1409
+ // does this load block readystate complete
1410
+ const isBlockingReadyScript = script.getAttribute('async') === null && readyStateCompleteCnt > 0;
1411
+ // does this load block DOMContentLoaded
1412
+ const isDomContentLoadedScript = domContentLoadedCnt > 0;
1413
+ const isLoadScript = loadCnt > 0;
1414
+ if (isLoadScript) loadCnt++;
1415
+ if (isBlockingReadyScript) readyStateCompleteCnt++;
1416
+ if (isDomContentLoadedScript) domContentLoadedCnt++;
1417
+ let loadPromise;
1418
+ const ts = script.lang === 'ts';
1419
+ if (ts && !script.src) {
1420
+ loadPromise = Promise.resolve(esmsTsTransform || initTs())
1421
+ .then(() => {
1422
+ console.info(`es-module-shims: Compiling TypeScript module script`, script);
1423
+ const transformed = esmsTsTransform(script.innerHTML, baseUrl);
1424
+ if (transformed !== undefined) {
1425
+ onpolyfill();
1426
+ firstPolyfillLoad = false;
1427
+ }
1428
+ return topLevelLoad(
1429
+ script.src || baseUrl,
1430
+ baseUrl,
1431
+ getFetchOpts(script),
1432
+ transformed === undefined ? script.innerHTML : transformed,
1433
+ !shimMode && transformed === undefined,
1434
+ isBlockingReadyScript && lastStaticLoadPromise,
1435
+ 'ts'
1436
+ );
1437
+ })
1438
+ .catch(throwError);
1439
+ } else {
1440
+ loadPromise = topLevelLoad(
1441
+ script.src || baseUrl,
1442
+ baseUrl,
1443
+ getFetchOpts(script),
1444
+ !script.src ? script.innerHTML : undefined,
1445
+ !shimMode,
1446
+ isBlockingReadyScript && lastStaticLoadPromise,
1447
+ ts ? 'ts' : undefined
1448
+ ).catch(throwError);
1449
+ }
1450
+ if (!noLoadEventRetriggers) loadPromise.then(() => script.dispatchEvent(new Event('load')));
1451
+ if (isBlockingReadyScript && !ts) {
1452
+ lastStaticLoadPromise = loadPromise.then(readyStateCompleteCheck);
1453
+ }
1454
+ if (isDomContentLoadedScript) loadPromise.then(domContentLoadedCheck);
1455
+ if (isLoadScript) loadPromise.then(loadCheck);
1456
+ };
1457
+
1458
+ const fetchCache = {};
1459
+ const processPreload = link => {
1460
+ link.ep = true;
1461
+ initPromise.then(() => {
1462
+ if (baselinePassthrough && !shimMode) return;
1463
+ if (fetchCache[link.href]) return;
1464
+ fetchCache[link.href] = fetchModule(link.href, getFetchOpts(link));
1465
+ });
1466
+ };
1468
1467
 
1469
- })({});
1468
+ })();