importmap-rails 1.0.2 → 1.2.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,43 +1,121 @@
1
- /* ES Module Shims 1.4.1 */
1
+ /* ES Module Shims 1.7.2 */
2
2
  (function () {
3
3
 
4
- const uaMatch = navigator.userAgent.match(/(Edge|Safari)\/\d+\.\d+/);
5
- const edge = uaMatch && uaMatch[1] === 'Edge';
6
- const safari = uaMatch && uaMatch[1] === 'Safari';
4
+ const hasWindow = typeof window !== 'undefined';
5
+ const hasDocument = typeof document !== 'undefined';
7
6
 
8
- let baseUrl;
7
+ const noop = () => {};
8
+
9
+ const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
10
+
11
+ const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
12
+ Object.assign(esmsInitOptions, self.esmsInitOptions || {});
13
+
14
+ let shimMode = hasDocument ? !!esmsInitOptions.shimMode : true;
15
+
16
+ const importHook = globalHook(shimMode && esmsInitOptions.onimport);
17
+ const resolveHook = globalHook(shimMode && esmsInitOptions.resolve);
18
+ let fetchHook = esmsInitOptions.fetch ? globalHook(esmsInitOptions.fetch) : fetch;
19
+ const metaHook = esmsInitOptions.meta ? globalHook(shimMode && esmsInitOptions.meta) : noop;
20
+
21
+ const mapOverrides = esmsInitOptions.mapOverrides;
9
22
 
10
- function createBlob (source, type = 'text/javascript') {
11
- return URL.createObjectURL(new Blob([source], { type }));
23
+ let nonce = esmsInitOptions.nonce;
24
+ if (!nonce && hasDocument) {
25
+ const nonceElement = document.querySelector('script[nonce]');
26
+ if (nonceElement)
27
+ nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
12
28
  }
13
29
 
14
- const noop = () => {};
30
+ const onerror = globalHook(esmsInitOptions.onerror || noop);
31
+ const onpolyfill = esmsInitOptions.onpolyfill ? globalHook(esmsInitOptions.onpolyfill) : () => {
32
+ console.log('%c^^ Module TypeError above is polyfilled and can be ignored ^^', 'font-weight:900;color:#391');
33
+ };
34
+
35
+ const { revokeBlobURLs, noLoadEventRetriggers, enforceIntegrity } = esmsInitOptions;
36
+
37
+ function globalHook (name) {
38
+ return typeof name === 'string' ? self[name] : name;
39
+ }
40
+
41
+ const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
42
+ const cssModulesEnabled = enable.includes('css-modules');
43
+ const jsonModulesEnabled = enable.includes('json-modules');
44
+
45
+ const edge = !navigator.userAgentData && !!navigator.userAgent.match(/Edge\/\d+\.\d+/);
46
+
47
+ const baseUrl = hasDocument
48
+ ? document.baseURI
49
+ : `${location.protocol}//${location.host}${location.pathname.includes('/')
50
+ ? location.pathname.slice(0, location.pathname.lastIndexOf('/') + 1)
51
+ : location.pathname}`;
52
+
53
+ const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], { type }));
54
+ let { skip } = esmsInitOptions;
55
+ if (Array.isArray(skip)) {
56
+ const l = skip.map(s => new URL(s, baseUrl).href);
57
+ skip = s => l.some(i => i[i.length - 1] === '/' && s.startsWith(i) || s === i);
58
+ }
59
+ else if (typeof skip === 'string') {
60
+ const r = new RegExp(skip);
61
+ skip = s => r.test(s);
62
+ }
15
63
 
16
- const baseEl = document.querySelector('base[href]');
17
- if (baseEl)
18
- baseUrl = baseEl.href;
64
+ const eoop = err => setTimeout(() => { throw err });
19
65
 
20
- if (!baseUrl && typeof location !== 'undefined') {
21
- baseUrl = location.href.split('#')[0].split('?')[0];
22
- const lastSepIndex = baseUrl.lastIndexOf('/');
23
- if (lastSepIndex !== -1)
24
- baseUrl = baseUrl.slice(0, lastSepIndex + 1);
66
+ const throwError = err => { (self.reportError || hasWindow && window.safari && console.error || eoop)(err), void onerror(err); };
67
+
68
+ function fromParent (parent) {
69
+ return parent ? ` imported from ${parent}` : '';
25
70
  }
26
71
 
72
+ let importMapSrcOrLazy = false;
73
+
74
+ function setImportMapSrcOrLazy () {
75
+ importMapSrcOrLazy = true;
76
+ }
77
+
78
+ // shim mode is determined on initialization, no late shim mode
79
+ if (!shimMode) {
80
+ if (document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]').length) {
81
+ shimMode = true;
82
+ }
83
+ else {
84
+ let seenScript = false;
85
+ for (const script of document.querySelectorAll('script[type=module],script[type=importmap]')) {
86
+ if (!seenScript) {
87
+ if (script.type === 'module' && !script.ep)
88
+ seenScript = true;
89
+ }
90
+ else if (script.type === 'importmap' && seenScript) {
91
+ importMapSrcOrLazy = true;
92
+ break;
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ const backslashRegEx = /\\/g;
99
+
27
100
  function isURL (url) {
101
+ if (url.indexOf(':') === -1) return false;
28
102
  try {
29
103
  new URL(url);
30
104
  return true;
31
105
  }
32
- catch {
106
+ catch (_) {
33
107
  return false;
34
108
  }
35
109
  }
36
110
 
37
- const backslashRegEx = /\\/g;
111
+ function resolveUrl (relUrl, parentUrl) {
112
+ return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (isURL(relUrl) ? relUrl : resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));
113
+ }
114
+
38
115
  function resolveIfNotPlainOrUrl (relUrl, parentUrl) {
39
- // strip off any trailing query params or hashes
40
- parentUrl = parentUrl && parentUrl.split('#')[0].split('?')[0];
116
+ const hIdx = parentUrl.indexOf('#'), qIdx = parentUrl.indexOf('?');
117
+ if (hIdx + qIdx > -2)
118
+ parentUrl = parentUrl.slice(0, hIdx === -1 ? qIdx : qIdx === -1 || qIdx > hIdx ? hIdx : qIdx);
41
119
  if (relUrl.indexOf('\\') !== -1)
42
120
  relUrl = relUrl.replace(backslashRegEx, '/');
43
121
  // protocol-relative
@@ -87,28 +165,25 @@
87
165
  output.push(segmented.slice(segmentIndex, i + 1));
88
166
  segmentIndex = -1;
89
167
  }
168
+ continue;
90
169
  }
91
-
92
170
  // new segment - check if it is relative
93
171
  else if (segmented[i] === '.') {
94
172
  // ../ segment
95
173
  if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) {
96
174
  output.pop();
97
175
  i += 2;
176
+ continue;
98
177
  }
99
178
  // ./ segment
100
179
  else if (segmented[i + 1] === '/' || i + 1 === segmented.length) {
101
180
  i += 1;
102
- }
103
- else {
104
- // the start of a new segment as below
105
- segmentIndex = i;
181
+ continue;
106
182
  }
107
183
  }
108
184
  // it is the start of a new segment
109
- else {
110
- segmentIndex = i;
111
- }
185
+ while (segmented[i] === '/') i++;
186
+ segmentIndex = i;
112
187
  }
113
188
  // finish reading out the last segment
114
189
  if (segmentIndex !== -1)
@@ -117,35 +192,6 @@
117
192
  }
118
193
  }
119
194
 
120
- /*
121
- * Import maps implementation
122
- *
123
- * To make lookups fast we pre-resolve the entire import map
124
- * and then match based on backtracked hash lookups
125
- *
126
- */
127
- function resolveUrl (relUrl, parentUrl) {
128
- return resolveIfNotPlainOrUrl(relUrl, parentUrl) || (relUrl.indexOf(':') !== -1 ? relUrl : resolveIfNotPlainOrUrl('./' + relUrl, parentUrl));
129
- }
130
-
131
- function resolveAndComposePackages (packages, outPackages, baseUrl, parentMap) {
132
- for (let p in packages) {
133
- const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;
134
- if (outPackages[resolvedLhs]) {
135
- throw Error(`Rejected map override "${resolvedLhs}" from ${outPackages[resolvedLhs]} to ${packages[resolvedLhs]}.`);
136
- }
137
- let target = packages[p];
138
- if (typeof target !== 'string')
139
- continue;
140
- const mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(target, baseUrl) || target, baseUrl);
141
- if (mapped) {
142
- outPackages[resolvedLhs] = mapped;
143
- continue;
144
- }
145
- console.warn(`Mapping "${p}" -> "${packages[p]}" does not resolve`);
146
- }
147
- }
148
-
149
195
  function resolveAndComposeImportMap (json, baseUrl, parentMap) {
150
196
  const outMap = { imports: Object.assign({}, parentMap.imports), scopes: Object.assign({}, parentMap.scopes) };
151
197
 
@@ -181,6 +227,7 @@
181
227
  }
182
228
  }
183
229
 
230
+
184
231
  function resolveImportMap (importMap, resolvedOrPlain, parentUrl) {
185
232
  let scopeUrl = parentUrl && getMatch(parentUrl, importMap.scopes);
186
233
  while (scopeUrl) {
@@ -190,133 +237,227 @@
190
237
  scopeUrl = getMatch(scopeUrl.slice(0, scopeUrl.lastIndexOf('/')), importMap.scopes);
191
238
  }
192
239
  return applyPackages(resolvedOrPlain, importMap.imports) || resolvedOrPlain.indexOf(':') !== -1 && resolvedOrPlain;
193
- }
194
-
195
- const optionsScript = document.querySelector('script[type=esms-options]');
196
-
197
- const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : self.esmsInitOptions ? self.esmsInitOptions : {};
198
-
199
- let shimMode = !!esmsInitOptions.shimMode;
200
- const resolveHook = globalHook(shimMode && esmsInitOptions.resolve);
201
-
202
- const skip = esmsInitOptions.skip ? new RegExp(esmsInitOptions.skip) : null;
203
-
204
- let nonce = esmsInitOptions.nonce;
205
-
206
- if (!nonce) {
207
- const nonceElement = document.querySelector('script[nonce]');
208
- if (nonceElement)
209
- nonce = nonceElement.nonce || nonceElement.getAttribute('nonce');
210
- }
211
-
212
- const onerror = globalHook(esmsInitOptions.onerror || noop);
213
- const onpolyfill = esmsInitOptions.onpolyfill ? globalHook(esmsInitOptions.onpolyfill) : () => console.info(`OK: "Uncaught TypeError" module failure has been polyfilled`);
214
-
215
- const { revokeBlobURLs, noLoadEventRetriggers, enforceIntegrity } = esmsInitOptions;
216
-
217
- const fetchHook = esmsInitOptions.fetch ? globalHook(esmsInitOptions.fetch) : fetch;
218
-
219
- function globalHook (name) {
220
- return typeof name === 'string' ? self[name] : name;
221
240
  }
222
241
 
223
- const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
224
- const cssModulesEnabled = enable.includes('css-modules');
225
- const jsonModulesEnabled = enable.includes('json-modules');
226
-
227
- function setShimMode () {
228
- shimMode = true;
242
+ function resolveAndComposePackages (packages, outPackages, baseUrl, parentMap) {
243
+ for (let p in packages) {
244
+ const resolvedLhs = resolveIfNotPlainOrUrl(p, baseUrl) || p;
245
+ if ((!shimMode || !mapOverrides) && outPackages[resolvedLhs] && (outPackages[resolvedLhs] !== packages[resolvedLhs])) {
246
+ throw Error(`Rejected map override "${resolvedLhs}" from ${outPackages[resolvedLhs]} to ${packages[resolvedLhs]}.`);
247
+ }
248
+ let target = packages[p];
249
+ if (typeof target !== 'string')
250
+ continue;
251
+ const mapped = resolveImportMap(parentMap, resolveIfNotPlainOrUrl(target, baseUrl) || target, baseUrl);
252
+ if (mapped) {
253
+ outPackages[resolvedLhs] = mapped;
254
+ continue;
255
+ }
256
+ console.warn(`Mapping "${p}" -> "${packages[p]}" does not resolve`);
257
+ }
229
258
  }
230
259
 
231
- let err;
232
- window.addEventListener('error', _err => err = _err);
233
- function dynamicImportScript (url, { errUrl = url } = {}) {
234
- err = undefined;
235
- const src = createBlob(`import*as m from'${url}';self._esmsi=m`);
236
- const s = Object.assign(document.createElement('script'), { type: 'module', src });
260
+ let dynamicImport = !hasDocument && (0, eval)('u=>import(u)');
261
+
262
+ let supportsDynamicImport;
263
+
264
+ const dynamicImportCheck = hasDocument && new Promise(resolve => {
265
+ const s = Object.assign(document.createElement('script'), {
266
+ src: createBlob('self._d=u=>import(u)'),
267
+ ep: true
268
+ });
237
269
  s.setAttribute('nonce', nonce);
238
- s.setAttribute('noshim', '');
239
- const p = new Promise((resolve, reject) => {
240
- // Safari is unique in supporting module script error events
241
- s.addEventListener('error', cb);
242
- s.addEventListener('load', cb);
243
-
244
- function cb (_err) {
245
- document.head.removeChild(s);
246
- if (self._esmsi) {
247
- resolve(self._esmsi, baseUrl);
248
- self._esmsi = undefined;
249
- }
250
- else {
251
- reject(!(_err instanceof Event) && _err || err && err.error || new Error(`Error loading or executing the graph of ${errUrl} (check the console for ${src}).`));
270
+ s.addEventListener('load', () => {
271
+ if (!(supportsDynamicImport = !!(dynamicImport = self._d))) {
272
+ let err;
273
+ window.addEventListener('error', _err => err = _err);
274
+ dynamicImport = (url, opts) => new Promise((resolve, reject) => {
275
+ const s = Object.assign(document.createElement('script'), {
276
+ type: 'module',
277
+ src: createBlob(`import*as m from'${url}';self._esmsi=m`)
278
+ });
252
279
  err = undefined;
253
- }
280
+ s.ep = true;
281
+ if (nonce)
282
+ s.setAttribute('nonce', nonce);
283
+ // Safari is unique in supporting module script error events
284
+ s.addEventListener('error', cb);
285
+ s.addEventListener('load', cb);
286
+ function cb (_err) {
287
+ document.head.removeChild(s);
288
+ if (self._esmsi) {
289
+ resolve(self._esmsi, baseUrl);
290
+ self._esmsi = undefined;
291
+ }
292
+ else {
293
+ reject(!(_err instanceof Event) && _err || err && err.error || new Error(`Error loading ${opts && opts.errUrl || url} (${s.src}).`));
294
+ err = undefined;
295
+ }
296
+ }
297
+ document.head.appendChild(s);
298
+ });
254
299
  }
300
+ document.head.removeChild(s);
301
+ delete self._d;
302
+ resolve();
255
303
  });
256
304
  document.head.appendChild(s);
257
- return p;
258
- }
259
-
260
- let dynamicImport = dynamicImportScript;
261
-
262
- const supportsDynamicImportCheck = dynamicImportScript(createBlob('export default u=>import(u)')).then(_dynamicImport => {
263
- if (_dynamicImport)
264
- dynamicImport = _dynamicImport.default;
265
- return !!_dynamicImport;
266
- }, noop);
305
+ });
267
306
 
268
307
  // support browsers without dynamic import support (eg Firefox 6x)
269
308
  let supportsJsonAssertions = false;
270
309
  let supportsCssAssertions = false;
271
310
 
272
- let supportsImportMeta = false;
273
- let supportsImportMaps = false;
311
+ const supports = hasDocument && HTMLScriptElement.supports;
312
+
313
+ let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
314
+ let supportsImportMeta = supportsDynamicImport;
274
315
 
275
- let supportsDynamicImport = false;
316
+ const importMetaCheck = 'import.meta';
317
+ const cssModulesCheck = `import"x"assert{type:"css"}`;
318
+ const jsonModulesCheck = `import"x"assert{type:"json"}`;
276
319
 
277
- const featureDetectionPromise = Promise.resolve(supportsDynamicImportCheck).then(_supportsDynamicImport => {
278
- if (!_supportsDynamicImport)
320
+ let featureDetectionPromise = Promise.resolve(dynamicImportCheck).then(() => {
321
+ if (!supportsDynamicImport)
279
322
  return;
280
- supportsDynamicImport = true;
281
-
282
- return Promise.all([
283
- dynamicImport(createBlob('import.meta')).then(() => supportsImportMeta = true, noop),
284
- cssModulesEnabled && dynamicImport(createBlob('import"data:text/css,{}"assert{type:"css"}')).then(() => supportsCssAssertions = true, noop),
285
- jsonModulesEnabled && dynamicImport(createBlob('import"data:text/json,{}"assert{type:"json"}')).then(() => supportsJsonAssertions = true, noop),
286
- new Promise(resolve => {
287
- self._$s = v => {
288
- document.head.removeChild(iframe);
289
- if (v) supportsImportMaps = true;
290
- delete self._$s;
291
- resolve();
292
- };
293
- const iframe = document.createElement('iframe');
294
- iframe.style.display = 'none';
295
- document.head.appendChild(iframe);
296
- iframe.src = createBlob(`<script type=importmap nonce="${nonce}">{"imports":{"x":"data:text/javascript,"}}<${''}/script><script nonce="${nonce}">import('x').then(()=>1,()=>0).then(v=>parent._$s(v))<${''}/script>`, 'text/html');
297
- })
298
- ]);
323
+
324
+ if (!hasDocument)
325
+ return Promise.all([
326
+ supportsImportMaps || dynamicImport(createBlob(importMetaCheck)).then(() => supportsImportMeta = true, noop),
327
+ cssModulesEnabled && dynamicImport(createBlob(cssModulesCheck.replace('x', createBlob('', 'text/css')))).then(() => supportsCssAssertions = true, noop),
328
+ jsonModulesEnabled && dynamicImport(createBlob(jsonModulescheck.replace('x', createBlob('{}', 'text/json')))).then(() => supportsJsonAssertions = true, noop),
329
+ ]);
330
+
331
+ return new Promise(resolve => {
332
+ const iframe = document.createElement('iframe');
333
+ iframe.style.display = 'none';
334
+ iframe.setAttribute('nonce', nonce);
335
+ function cb ({ data }) {
336
+ const isFeatureDetectionMessage = Array.isArray(data) && data[0] === 'esms';
337
+ if (!isFeatureDetectionMessage) {
338
+ return;
339
+ }
340
+ supportsImportMaps = data[1];
341
+ supportsImportMeta = data[2];
342
+ supportsCssAssertions = data[3];
343
+ supportsJsonAssertions = data[4];
344
+ resolve();
345
+ document.head.removeChild(iframe);
346
+ window.removeEventListener('message', cb, false);
347
+ }
348
+ window.addEventListener('message', cb, false);
349
+
350
+ const importMapTest = `<script nonce=${nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${nonce}",innerText:\`{"imports":{"x":"\${b('')}"}}\`}));Promise.all([${
351
+ supportsImportMaps ? 'true,true' : `'x',b('${importMetaCheck}')`}, ${cssModulesEnabled ? `b('${cssModulesCheck}'.replace('x',b('','text/css')))` : 'false'}, ${
352
+ jsonModulesEnabled ? `b('${jsonModulesCheck}'.replace('x',b('{}','text/json')))` : 'false'}].map(x =>typeof x==='string'?import(x).then(x =>!!x,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<${''}/script>`;
353
+
354
+ // Safari will call onload eagerly on head injection, but we don't want the Wechat
355
+ // path to trigger before setting srcdoc, therefore we track the timing
356
+ let readyForOnload = false, onloadCalledWhileNotReady = false;
357
+ function doOnload () {
358
+ if (!readyForOnload) {
359
+ onloadCalledWhileNotReady = true;
360
+ return;
361
+ }
362
+ // WeChat browser doesn't support setting srcdoc scripts
363
+ // But iframe sandboxes don't support contentDocument so we do this as a fallback
364
+ const doc = iframe.contentDocument;
365
+ if (doc && doc.head.childNodes.length === 0) {
366
+ const s = doc.createElement('script');
367
+ if (nonce)
368
+ s.setAttribute('nonce', nonce);
369
+ s.innerHTML = importMapTest.slice(15 + (nonce ? nonce.length : 0), -9);
370
+ doc.head.appendChild(s);
371
+ }
372
+ }
373
+
374
+ iframe.onload = doOnload;
375
+ // WeChat browser requires append before setting srcdoc
376
+ document.head.appendChild(iframe);
377
+
378
+ // setting srcdoc is not supported in React native webviews on iOS
379
+ // setting src to a blob URL results in a navigation event in webviews
380
+ // document.write gives usability warnings
381
+ readyForOnload = true;
382
+ if ('srcdoc' in iframe)
383
+ iframe.srcdoc = importMapTest;
384
+ else
385
+ iframe.contentDocument.write(importMapTest);
386
+ // retrigger onload for Safari only if necessary
387
+ if (onloadCalledWhileNotReady) doOnload();
388
+ });
299
389
  });
300
390
 
301
- let e,r,a,i=4194304;const s=1===new Uint8Array(new Uint16Array([1]).buffer)[0];let t,f,c$1;function parse(k,l="@"){if(t=k,f=l,t.length>i||!e){for(;t.length>i;)i*=2;r=new ArrayBuffer(4*i),e=function(e,r,a){"use asm";var i=new e.Int8Array(a),s=new e.Int16Array(a),t=new e.Int32Array(a),f=new e.Uint8Array(a),c=new e.Uint16Array(a),n=816;function b(e){e=e|0;var r=0,a=0,f=0,b=0,l=0;l=n;n=n+14336|0;b=l;i[589]=1;s[291]=0;s[292]=0;s[293]=-1;t[15]=t[2];i[590]=0;t[14]=0;i[588]=0;t[16]=l+10240;t[17]=l+2048;i[591]=0;e=(t[3]|0)+-2|0;t[18]=e;r=e+(t[12]<<1)|0;t[19]=r;e:while(1){a=e+2|0;t[18]=a;if(e>>>0>=r>>>0){f=18;break}r:do{switch(s[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if((((s[292]|0)==0?R(a)|0:0)?B(e+4|0,120,112,111,114,116)|0:0)?(u(),(i[589]|0)==0):0){f=9;break e}else f=17;break}case 105:{if(R(a)|0?B(e+4|0,109,112,111,114,116)|0:0){k();f=17;}else f=17;break}case 59:{f=17;break}case 47:switch(s[e+4>>1]|0){case 47:{G();break r}case 42:{p(1);break r}default:{f=16;break e}}default:{f=16;break e}}}while(0);if((f|0)==17){f=0;t[15]=t[18];}e=t[18]|0;r=t[19]|0;}if((f|0)==9){e=t[18]|0;t[15]=e;f=19;}else if((f|0)==16){i[589]=0;t[18]=e;f=19;}else if((f|0)==18)if(!(i[588]|0)){e=a;f=19;}else e=0;do{if((f|0)==19){e:while(1){r=e+2|0;t[18]=r;a=r;if(e>>>0>=(t[19]|0)>>>0){f=75;break}r:do{switch(s[r>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(((s[292]|0)==0?R(r)|0:0)?B(e+4|0,120,112,111,114,116)|0:0){u();f=74;}else f=74;break}case 105:{if(R(r)|0?B(e+4|0,109,112,111,114,116)|0:0){k();f=74;}else f=74;break}case 99:{if((R(r)|0?z(e+4|0,108,97,115,115)|0:0)?Z(s[e+12>>1]|0)|0:0){i[591]=1;f=74;}else f=74;break}case 40:{r=t[15]|0;a=t[17]|0;f=s[292]|0;s[292]=f+1<<16>>16;t[a+((f&65535)<<2)>>2]=r;f=74;break}case 41:{e=s[292]|0;if(!(e<<16>>16)){f=36;break e}f=e+-1<<16>>16;s[292]=f;e=t[11]|0;if((e|0)!=0?(t[e+20>>2]|0)==(t[(t[17]|0)+((f&65535)<<2)>>2]|0):0){r=e+4|0;if(!(t[r>>2]|0))t[r>>2]=a;t[e+12>>2]=a;t[11]=0;f=74;}else f=74;break}case 123:{f=t[15]|0;a=t[8]|0;e=f;do{if((s[f>>1]|0)==41&(a|0)!=0?(t[a+4>>2]|0)==(f|0):0){r=t[9]|0;t[8]=r;if(!r){t[4]=0;break}else {t[r+28>>2]=0;break}}}while(0);r=s[292]|0;f=r&65535;i[b+f>>0]=i[591]|0;i[591]=0;a=t[17]|0;s[292]=r+1<<16>>16;t[a+(f<<2)>>2]=e;f=74;break}case 125:{e=s[292]|0;if(!(e<<16>>16)){f=49;break e}a=e+-1<<16>>16;s[292]=a;r=s[293]|0;if(e<<16>>16!=r<<16>>16)if(r<<16>>16!=-1&(a&65535)<(r&65535)){f=53;break e}else {f=74;break r}else {a=t[16]|0;f=(s[291]|0)+-1<<16>>16;s[291]=f;s[293]=s[a+((f&65535)<<1)>>1]|0;h();f=74;break r}}case 39:{d(39);f=74;break}case 34:{d(34);f=74;break}case 47:switch(s[e+4>>1]|0){case 47:{G();break r}case 42:{p(1);break r}default:{r=t[15]|0;a=s[r>>1]|0;a:do{if(!(x(a)|0)){switch(a<<16>>16){case 41:if(L(t[(t[17]|0)+(c[292]<<2)>>2]|0)|0){f=71;break a}else {f=68;break a}case 125:break;default:{f=68;break a}}e=c[292]|0;if(!(y(t[(t[17]|0)+(e<<2)>>2]|0)|0)?(i[b+e>>0]|0)==0:0)f=68;else f=71;}else switch(a<<16>>16){case 46:if(((s[r+-2>>1]|0)+-48&65535)<10){f=68;break a}else {f=71;break a}case 43:if((s[r+-2>>1]|0)==43){f=68;break a}else {f=71;break a}case 45:if((s[r+-2>>1]|0)==45){f=68;break a}else {f=71;break a}default:{f=71;break a}}}while(0);a:do{if((f|0)==68){f=0;if(!(o(r)|0)){switch(a<<16>>16){case 0:{f=71;break a}case 47:break;default:{e=1;break a}}if(!(i[590]|0))e=1;else f=71;}else f=71;}}while(0);if((f|0)==71){I();e=0;}i[590]=e;f=74;break r}}case 96:{h();f=74;break}default:f=74;}}while(0);if((f|0)==74){f=0;t[15]=t[18];}e=t[18]|0;}if((f|0)==36){Y();e=0;break}else if((f|0)==49){Y();e=0;break}else if((f|0)==53){Y();e=0;break}else if((f|0)==75){e=(s[293]|0)==-1&(s[292]|0)==0&(i[588]|0)==0;break}}}while(0);n=l;return e|0}function u(){var e=0,r=0,a=0,f=0,c=0,n=0;c=t[18]|0;n=c+12|0;t[18]=n;r=w(1)|0;e=t[18]|0;if(!((e|0)==(n|0)?!(S(r)|0):0))f=3;e:do{if((f|0)==3){r:do{switch(r<<16>>16){case 100:{J(e,e+14|0);break e}case 97:{t[18]=e+10;w(1)|0;e=t[18]|0;f=6;break}case 102:{f=6;break}case 99:{if(z(e+2|0,108,97,115,115)|0?(a=e+10|0,F(s[a>>1]|0)|0):0){t[18]=a;c=w(1)|0;n=t[18]|0;H(c)|0;J(n,t[18]|0);t[18]=(t[18]|0)+-2;break e}e=e+4|0;t[18]=e;f=13;break}case 108:case 118:{f=13;break}case 123:{t[18]=e+2;e=w(1)|0;a=t[18]|0;while(1){if(_(e)|0){d(e);e=(t[18]|0)+2|0;t[18]=e;}else {H(e)|0;e=t[18]|0;}w(1)|0;e=g(a,e)|0;if(e<<16>>16==44){t[18]=(t[18]|0)+2;e=w(1)|0;}r=a;a=t[18]|0;if(e<<16>>16==125){f=32;break}if((a|0)==(r|0)){f=29;break}if(a>>>0>(t[19]|0)>>>0){f=31;break}}if((f|0)==29){Y();break e}else if((f|0)==31){Y();break e}else if((f|0)==32){t[18]=a+2;f=34;break r}break}case 42:{t[18]=e+2;w(1)|0;f=t[18]|0;g(f,f)|0;f=34;break}default:{}}}while(0);if((f|0)==6){t[18]=e+16;e=w(1)|0;if(e<<16>>16==42){t[18]=(t[18]|0)+2;e=w(1)|0;}n=t[18]|0;H(e)|0;J(n,t[18]|0);t[18]=(t[18]|0)+-2;break}else if((f|0)==13){e=e+4|0;t[18]=e;i[589]=0;r:while(1){t[18]=e+2;n=w(1)|0;e=t[18]|0;switch((H(n)|0)<<16>>16){case 91:case 123:{f=15;break r}default:{}}r=t[18]|0;if((r|0)==(e|0))break e;J(e,r);switch((w(1)|0)<<16>>16){case 61:{f=19;break r}case 44:break;default:{f=20;break r}}e=t[18]|0;}if((f|0)==15){t[18]=(t[18]|0)+-2;break}else if((f|0)==19){t[18]=(t[18]|0)+-2;break}else if((f|0)==20){t[18]=(t[18]|0)+-2;break}}else if((f|0)==34)r=w(1)|0;e=t[18]|0;if(r<<16>>16==102?K(e+2|0,114,111,109)|0:0){t[18]=e+8;l(c,w(1)|0);break}t[18]=e+-2;}}while(0);return}function k(){var e=0,r=0,a=0,f=0,c=0;c=t[18]|0;r=c+12|0;t[18]=r;e:do{switch((w(1)|0)<<16>>16){case 40:{r=t[17]|0;a=s[292]|0;s[292]=a+1<<16>>16;t[r+((a&65535)<<2)>>2]=c;if((s[t[15]>>1]|0)!=46){v(c,(t[18]|0)+2|0,0,c);t[11]=t[8];t[18]=(t[18]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{t[18]=(t[18]|0)+-2;break e}}t[18]=(t[18]|0)+2;switch((w(1)|0)<<16>>16){case 44:{c=t[18]|0;t[(t[8]|0)+4>>2]=c;t[18]=c+2;w(1)|0;c=t[18]|0;a=t[8]|0;t[a+16>>2]=c;i[a+24>>0]=1;t[18]=c+-2;break e}case 41:{s[292]=(s[292]|0)+-1<<16>>16;a=t[18]|0;c=t[8]|0;t[c+4>>2]=a;t[c+12>>2]=a;i[c+24>>0]=1;break e}default:{t[18]=(t[18]|0)+-2;break e}}}break}case 46:{t[18]=(t[18]|0)+2;if(((w(1)|0)<<16>>16==109?(e=t[18]|0,K(e+2|0,101,116,97)|0):0)?(s[t[15]>>1]|0)!=46:0)v(c,c,e+8|0,2);break}case 42:case 39:case 34:{f=16;break}case 123:{e=t[18]|0;if(s[292]|0){t[18]=e+-2;break e}while(1){if(e>>>0>=(t[19]|0)>>>0)break;e=w(1)|0;if(!(_(e)|0)){if(e<<16>>16==125){f=31;break}}else d(e);e=(t[18]|0)+2|0;t[18]=e;}if((f|0)==31)t[18]=(t[18]|0)+2;w(1)|0;e=t[18]|0;if(!(z(e,102,114,111,109)|0)){Y();break e}t[18]=e+8;e=w(1)|0;if(_(e)|0){l(c,e);break e}else {Y();break e}}default:if((t[18]|0)!=(r|0))f=16;}}while(0);do{if((f|0)==16){if(s[292]|0){t[18]=(t[18]|0)+-2;break}e=t[19]|0;r=t[18]|0;while(1){if(r>>>0>=e>>>0){f=23;break}a=s[r>>1]|0;if(_(a)|0){f=21;break}f=r+2|0;t[18]=f;r=f;}if((f|0)==21){l(c,a);break}else if((f|0)==23){Y();break}}}while(0);return}function l(e,r){e=e|0;r=r|0;var a=0,i=0;a=(t[18]|0)+2|0;switch(r<<16>>16){case 39:{d(39);i=5;break}case 34:{d(34);i=5;break}default:Y();}do{if((i|0)==5){v(e,a,t[18]|0,1);t[18]=(t[18]|0)+2;i=(w(0)|0)<<16>>16==97;r=t[18]|0;if(i?B(r+2|0,115,115,101,114,116)|0:0){t[18]=r+12;if((w(1)|0)<<16>>16!=123){t[18]=r;break}e=t[18]|0;a=e;e:while(1){t[18]=a+2;a=w(1)|0;switch(a<<16>>16){case 39:{d(39);t[18]=(t[18]|0)+2;a=w(1)|0;break}case 34:{d(34);t[18]=(t[18]|0)+2;a=w(1)|0;break}default:a=H(a)|0;}if(a<<16>>16!=58){i=16;break}t[18]=(t[18]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{i=20;break e}}t[18]=(t[18]|0)+2;switch((w(1)|0)<<16>>16){case 125:{i=25;break e}case 44:break;default:{i=24;break e}}t[18]=(t[18]|0)+2;if((w(1)|0)<<16>>16==125){i=25;break}a=t[18]|0;}if((i|0)==16){t[18]=r;break}else if((i|0)==20){t[18]=r;break}else if((i|0)==24){t[18]=r;break}else if((i|0)==25){i=t[8]|0;t[i+16>>2]=e;t[i+12>>2]=(t[18]|0)+2;break}}t[18]=r+-2;}}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=q(e+-4|0,118,111)|0;break e}case 108:{e=P(e+-4|0,121,105,101)|0;break e}default:{e=0;break e}}case 101:{switch(s[e+-2>>1]|0){case 115:break;case 116:{e=E(e+-4|0,100,101,108,101)|0;break e}default:{e=0;break e}}switch(s[e+-4>>1]|0){case 108:{e=D(e+-6|0,101)|0;break e}case 97:{e=D(e+-6|0,99)|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=O(e+-8|0,105,110,115,116,97,110)|0;break e}case 112:{e=q(e+-8|0,116,121)|0;break e}default:{e=0;break e}}else e=0;break}case 110:{e=e+-2|0;if(D(e,105)|0)e=1;else e=$(e,114,101,116,117,114)|0;break}case 111:{e=D(e+-2|0,100)|0;break}case 114:{e=m(e+-2|0,100,101,98,117,103,103,101)|0;break}case 116:{e=E(e+-2|0,97,119,97,105)|0;break}case 119:switch(s[e+-2>>1]|0){case 101:{e=D(e+-4|0,110)|0;break e}case 111:{e=P(e+-4|0,116,104,114)|0;break e}default:{e=0;break e}}default:e=0;}}while(0);return e|0}function h(){var e=0,r=0,a=0;r=t[19]|0;a=t[18]|0;e:while(1){e=a+2|0;if(a>>>0>=r>>>0){r=8;break}switch(s[e>>1]|0){case 96:{r=9;break e}case 36:{if((s[a+4>>1]|0)==123){r=6;break e}break}case 92:{e=a+4|0;break}default:{}}a=e;}if((r|0)==6){t[18]=a+4;e=s[293]|0;r=t[16]|0;a=s[291]|0;s[291]=a+1<<16>>16;s[r+((a&65535)<<1)>>1]=e;a=(s[292]|0)+1<<16>>16;s[292]=a;s[293]=a;}else if((r|0)==8){t[18]=e;Y();}else if((r|0)==9)t[18]=e;return}function w(e){e=e|0;var r=0,a=0,i=0;a=t[18]|0;e:do{r=s[a>>1]|0;r:do{if(r<<16>>16!=47)if(e)if(Z(r)|0)break;else break e;else if(Q(r)|0)break;else break e;else switch(s[a+2>>1]|0){case 47:{G();break r}case 42:{p(e);break r}default:{r=47;break e}}}while(0);i=t[18]|0;a=i+2|0;t[18]=a;}while(i>>>0<(t[19]|0)>>>0);return r|0}function d(e){e=e|0;var r=0,a=0,i=0,f=0;f=t[19]|0;r=t[18]|0;while(1){i=r+2|0;if(r>>>0>=f>>>0){r=9;break}a=s[i>>1]|0;if(a<<16>>16==e<<16>>16){r=10;break}if(a<<16>>16==92){a=r+4|0;if((s[a>>1]|0)==13){r=r+6|0;r=(s[r>>1]|0)==10?r:a;}else r=a;}else if(ae(a)|0){r=9;break}else r=i;}if((r|0)==9){t[18]=i;Y();}else if((r|0)==10)t[18]=i;return}function v(e,r,a,s){e=e|0;r=r|0;a=a|0;s=s|0;var f=0,c=0;f=t[13]|0;t[13]=f+32;c=t[8]|0;t[((c|0)==0?16:c+28|0)>>2]=f;t[9]=c;t[8]=f;t[f+8>>2]=e;do{if(2!=(s|0))if(1==(s|0)){t[f+12>>2]=a+2;break}else {t[f+12>>2]=t[3];break}else t[f+12>>2]=a;}while(0);t[f>>2]=r;t[f+4>>2]=a;t[f+16>>2]=0;t[f+20>>2]=s;i[f+24>>0]=1==(s|0)&1;t[f+28>>2]=0;return}function A(){var e=0,r=0,a=0;a=t[19]|0;r=t[18]|0;e:while(1){e=r+2|0;if(r>>>0>=a>>>0){r=6;break}switch(s[e>>1]|0){case 13:case 10:{r=6;break e}case 93:{r=7;break e}case 92:{e=r+4|0;break}default:{}}r=e;}if((r|0)==6){t[18]=e;Y();e=0;}else if((r|0)==7){t[18]=e;e=93;}return e|0}function C(e,r,a,i,t,f,c,n){e=e|0;r=r|0;a=a|0;i=i|0;t=t|0;f=f|0;c=c|0;n=n|0;if((((((s[e+12>>1]|0)==n<<16>>16?(s[e+10>>1]|0)==c<<16>>16:0)?(s[e+8>>1]|0)==f<<16>>16:0)?(s[e+6>>1]|0)==t<<16>>16:0)?(s[e+4>>1]|0)==i<<16>>16:0)?(s[e+2>>1]|0)==a<<16>>16:0)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function y(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(e+-2|0,99,97,116,99)|0;break}case 121:{e=O(e+-2|0,102,105,110,97,108,108)|0;break}case 101:{e=P(e+-2|0,101,108,115)|0;break}default:e=0;}return e|0}function g(e,r){e=e|0;r=r|0;var a=0,i=0;a=t[18]|0;i=s[a>>1]|0;if(i<<16>>16==97){t[18]=a+4;a=w(1)|0;e=t[18]|0;if(_(a)|0){d(a);r=(t[18]|0)+2|0;t[18]=r;}else {H(a)|0;r=t[18]|0;}i=w(1)|0;a=t[18]|0;}if((a|0)!=(e|0))J(e,r);return i|0}function I(){var e=0,r=0,a=0;e:while(1){e=t[18]|0;r=e+2|0;t[18]=r;if(e>>>0>=(t[19]|0)>>>0){a=7;break}switch(s[r>>1]|0){case 13:case 10:{a=7;break e}case 47:break e;case 91:{A()|0;break}case 92:{t[18]=e+4;break}default:{}}}if((a|0)==7)Y();return}function p(e){e=e|0;var r=0,a=0,i=0,f=0,c=0;f=(t[18]|0)+2|0;t[18]=f;a=t[19]|0;while(1){r=f+2|0;if(f>>>0>=a>>>0)break;i=s[r>>1]|0;if(!e?ae(i)|0:0)break;if(i<<16>>16==42?(s[f+4>>1]|0)==47:0){c=8;break}f=r;}if((c|0)==8){t[18]=r;r=f+4|0;}t[18]=r;return}function U(e,r,a,i,t,f,c){e=e|0;r=r|0;a=a|0;i=i|0;t=t|0;f=f|0;c=c|0;if(((((s[e+10>>1]|0)==c<<16>>16?(s[e+8>>1]|0)==f<<16>>16:0)?(s[e+6>>1]|0)==t<<16>>16:0)?(s[e+4>>1]|0)==i<<16>>16:0)?(s[e+2>>1]|0)==a<<16>>16:0)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function m(e,r,a,i,f,c,n,b){e=e|0;r=r|0;a=a|0;i=i|0;f=f|0;c=c|0;n=n|0;b=b|0;var u=0,k=0;k=e+-12|0;u=t[3]|0;if(k>>>0>=u>>>0?C(k,r,a,i,f,c,n,b)|0:0)if((k|0)==(u|0))u=1;else u=F(s[e+-14>>1]|0)|0;else u=0;return u|0}function S(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 x(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 O(e,r,a,i,f,c,n){e=e|0;r=r|0;a=a|0;i=i|0;f=f|0;c=c|0;n=n|0;var b=0,u=0;u=e+-10|0;b=t[3]|0;if(u>>>0>=b>>>0?U(u,r,a,i,f,c,n)|0:0)if((u|0)==(b|0))b=1;else b=F(s[e+-12>>1]|0)|0;else b=0;return b|0}function $(e,r,a,i,f,c){e=e|0;r=r|0;a=a|0;i=i|0;f=f|0;c=c|0;var n=0,b=0;b=e+-8|0;n=t[3]|0;if(b>>>0>=n>>>0?B(b,r,a,i,f,c)|0:0)if((b|0)==(n|0))n=1;else n=F(s[e+-10>>1]|0)|0;else n=0;return n|0}function j(e){e=e|0;var r=0,a=0,i=0,f=0;a=n;n=n+16|0;i=a;t[i>>2]=0;t[12]=e;r=t[3]|0;f=r+(e<<1)|0;e=f+2|0;s[f>>1]=0;t[i>>2]=e;t[13]=e;t[4]=0;t[8]=0;t[6]=0;t[5]=0;t[10]=0;t[7]=0;n=a;return r|0}function B(e,r,a,i,t,f){e=e|0;r=r|0;a=a|0;i=i|0;t=t|0;f=f|0;if((((s[e+8>>1]|0)==f<<16>>16?(s[e+6>>1]|0)==t<<16>>16:0)?(s[e+4>>1]|0)==i<<16>>16:0)?(s[e+2>>1]|0)==a<<16>>16:0)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function E(e,r,a,i,f){e=e|0;r=r|0;a=a|0;i=i|0;f=f|0;var c=0,n=0;n=e+-6|0;c=t[3]|0;if(n>>>0>=c>>>0?z(n,r,a,i,f)|0:0)if((n|0)==(c|0))c=1;else c=F(s[e+-8>>1]|0)|0;else c=0;return c|0}function P(e,r,a,i){e=e|0;r=r|0;a=a|0;i=i|0;var f=0,c=0;c=e+-4|0;f=t[3]|0;if(c>>>0>=f>>>0?K(c,r,a,i)|0:0)if((c|0)==(f|0))f=1;else f=F(s[e+-6>>1]|0)|0;else f=0;return f|0}function q(e,r,a){e=e|0;r=r|0;a=a|0;var i=0,f=0;f=e+-2|0;i=t[3]|0;if(f>>>0>=i>>>0?N(f,r,a)|0:0)if((f|0)==(i|0))i=1;else i=F(s[e+-4>>1]|0)|0;else i=0;return i|0}function z(e,r,a,i,t){e=e|0;r=r|0;a=a|0;i=i|0;t=t|0;if(((s[e+6>>1]|0)==t<<16>>16?(s[e+4>>1]|0)==i<<16>>16:0)?(s[e+2>>1]|0)==a<<16>>16:0)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function D(e,r){e=e|0;r=r|0;var a=0;a=t[3]|0;if(a>>>0<=e>>>0?(s[e>>1]|0)==r<<16>>16:0)if((a|0)==(e|0))a=1;else a=F(s[e+-2>>1]|0)|0;else a=0;return a|0}function F(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&(S(e)|0);}}while(0);return e|0}function G(){var e=0,r=0,a=0;e=t[19]|0;a=t[18]|0;e:while(1){r=a+2|0;if(a>>>0>=e>>>0)break;switch(s[r>>1]|0){case 13:case 10:break e;default:a=r;}}t[18]=r;return}function H(e){e=e|0;while(1){if(Z(e)|0)break;if(S(e)|0)break;e=(t[18]|0)+2|0;t[18]=e;e=s[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function J(e,r){e=e|0;r=r|0;var a=0,i=0;a=t[13]|0;t[13]=a+12;i=t[10]|0;t[((i|0)==0?20:i+8|0)>>2]=a;t[10]=a;t[a>>2]=e;t[a+4>>2]=r;t[a+8>>2]=0;return}function K(e,r,a,i){e=e|0;r=r|0;a=a|0;i=i|0;if((s[e+4>>1]|0)==i<<16>>16?(s[e+2>>1]|0)==a<<16>>16:0)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function L(e){e=e|0;if(!($(e,119,104,105,108,101)|0)?!(P(e,102,111,114)|0):0)e=q(e,105,102)|0;else e=1;return e|0}function M(){var e=0;e=t[(t[6]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(t[3]|0)>>1;}return e|0}function N(e,r,a){e=e|0;r=r|0;a=a|0;if((s[e+2>>1]|0)==a<<16>>16)r=(s[e>>1]|0)==r<<16>>16;else r=0;return r|0}function Q(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 R(e){e=e|0;if((t[3]|0)==(e|0))e=1;else e=F(s[e+-2>>1]|0)|0;return e|0}function T(){var e=0;e=t[(t[6]|0)+16>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function V(){var e=0;e=t[6]|0;e=t[((e|0)==0?16:e+28|0)>>2]|0;t[6]=e;return (e|0)!=0|0}function W(){var e=0;e=t[7]|0;e=t[((e|0)==0?20:e+8|0)>>2]|0;t[7]=e;return (e|0)!=0|0}function X(e){e=e|0;var r=0;r=n;n=n+e|0;n=n+15&-16;return r|0}function Y(){i[588]=1;t[14]=(t[18]|0)-(t[3]|0)>>1;t[18]=(t[19]|0)+2;return}function Z(e){e=e|0;return (e|128)<<16>>16==160|(e+-9&65535)<5|0}function _(e){e=e|0;return e<<16>>16==39|e<<16>>16==34|0}function ee(){return (t[(t[6]|0)+12>>2]|0)-(t[3]|0)>>1|0}function re(){return (t[(t[6]|0)+8>>2]|0)-(t[3]|0)>>1|0}function ae(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function ie(){return (t[(t[6]|0)+4>>2]|0)-(t[3]|0)>>1|0}function se(){return (t[(t[7]|0)+4>>2]|0)-(t[3]|0)>>1|0}function te(){return (t[t[6]>>2]|0)-(t[3]|0)>>1|0}function fe(){return (t[t[7]>>2]|0)-(t[3]|0)>>1|0}function ce(){return f[(t[6]|0)+24>>0]|0|0}function ne(e){e=e|0;t[3]=e;return}function be(){return (i[589]|0)!=0|0}function ue(){return t[14]|0}return {ai:T,e:ue,ee:se,es:fe,f:be,id:M,ie:ie,ip:ce,is:te,p:b,re:W,ri:V,sa:j,se:ee,ses:ne,ss:re,sta:X}}({Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array},{},r),a=e.sta(2*i);}const o=t.length+1;e.ses(a),e.sa(o-1),(s?b:n)(t,new Uint16Array(r,a,o)),e.p()||(c$1=e.e(),h());const w=[],d=[];for(;e.ri();){const r=e.is(),a=e.ie(),i=e.ai(),s=e.id(),f=e.ss(),c=e.se();let n;e.ip()&&(n=u(-1===s?r:r+1,t.charCodeAt(-1===s?r-1:r))),w.push({n:n,s:r,e:a,ss:f,se:c,d:s,a:i});}for(;e.re();){const r=e.es(),a=t.charCodeAt(r);d.push(34===a||39===a?u(r+1,a):t.slice(e.es(),e.ee()));}return [w,d,!!e.f()]}function n(e,r){const a=e.length;let i=0;for(;i<a;){const a=e.charCodeAt(i);r[i++]=(255&a)<<8|a>>>8;}}function b(e,r){const a=e.length;let i=0;for(;i<a;)r[i]=e.charCodeAt(i++);}function u(e,r){c$1=e;let a="",i=c$1;for(;;){c$1>=t.length&&h();const e=t.charCodeAt(c$1);if(e===r)break;92===e?(a+=t.slice(i,c$1),a+=k(),i=c$1):(8232===e||8233===e||o(e)&&h(),++c$1);}return a+=t.slice(i,c$1++),a}function k(){let e=t.charCodeAt(++c$1);switch(++c$1,e){case 110:return "\n";case 114:return "\r";case 120:return String.fromCharCode(l(2));case 117:return function(){let e;123===t.charCodeAt(c$1)?(++c$1,e=l(t.indexOf("}",c$1)-c$1),++c$1,e>1114111&&h()):e=l(4);return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}();case 116:return "\t";case 98:return "\b";case 118:return "\v";case 102:return "\f";case 13:10===t.charCodeAt(c$1)&&++c$1;case 10:return "";case 56:case 57:h();default:if(e>=48&&e<=55){let r=t.substr(c$1-1,3).match(/^[0-7]+/)[0],a=parseInt(r,8);return a>255&&(r=r.slice(0,-1),a=parseInt(r,8)),c$1+=r.length-1,e=t.charCodeAt(c$1),"0"===r&&56!==e&&57!==e||h(),String.fromCharCode(a)}return o(e)?"":String.fromCharCode(e)}}function l(e){const r=c$1;let a=0,i=0;for(let r=0;r<e;++r,++c$1){let e,s=t.charCodeAt(c$1);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,a=16*a+e;}else 95!==i&&0!==r||h(),i=s;}return 95!==i&&c$1-r===e||h(),a}function o(e){return 13===e||10===e}function h(){throw Object.assign(new Error(`Parse error ${f}:${t.slice(0,c$1).split("\n").length}:${c$1-t.lastIndexOf("\n",c$1-1)}`),{idx:c$1})}
391
+ /* es-module-lexer 1.2.1 */
392
+ 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;}},t="xportmportlassetaromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileforifcatcfinallels";let c$1,f,n;function parse(l,k="@"){c$1=l,f=k;const u=2*c$1.length+(2<<18);if(u>i||!e){for(;u>i;)i*=2;a=new ArrayBuffer(i),s(t,new Uint16Array(a,16,105)),e=function(e,a,r){"use asm";var i=new e.Int8Array(r),s=new e.Int16Array(r),t=new e.Int32Array(r),c=new e.Uint8Array(r),f=new e.Uint16Array(r),n=1024;function b(){var e=0,a=0,r=0,c=0,b=0,u=0,w=0;w=n;n=n+10240|0;i[795]=1;s[395]=0;s[396]=0;t[67]=t[2];i[796]=0;t[66]=0;i[794]=0;t[68]=w+2048;t[69]=w;i[797]=0;e=(t[3]|0)+-2|0;t[70]=e;a=e+(t[64]<<1)|0;t[71]=a;e:while(1){r=e+2|0;t[70]=r;if(e>>>0>=a>>>0){b=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[396]|0)==0?H(r)|0:0)?(m(e+4|0,16,10)|0)==0:0)?(l(),(i[795]|0)==0):0){b=9;break e}else b=17;break}case 105:{if(H(r)|0?(m(e+4|0,26,10)|0)==0:0){k();b=17;}else b=17;break}case 59:{b=17;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{b=16;break e}}default:{b=16;break e}}}while(0);if((b|0)==17){b=0;t[67]=t[70];}e=t[70]|0;a=t[71]|0;}if((b|0)==9){e=t[70]|0;t[67]=e;b=19;}else if((b|0)==16){i[795]=0;t[70]=e;b=19;}else if((b|0)==18)if(!(i[794]|0)){e=r;b=19;}else e=0;do{if((b|0)==19){e:while(1){a=e+2|0;t[70]=a;c=a;if(e>>>0>=(t[71]|0)>>>0){b=82;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[396]|0)==0?H(a)|0:0)?(m(e+4|0,16,10)|0)==0:0){l();b=81;}else b=81;break}case 105:{if(H(a)|0?(m(e+4|0,26,10)|0)==0:0){k();b=81;}else b=81;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[797]=1;b=81;}else b=81;break}case 40:{c=t[68]|0;a=s[396]|0;b=a&65535;t[c+(b<<3)>>2]=1;r=t[67]|0;s[396]=a+1<<16>>16;t[c+(b<<3)+4>>2]=r;b=81;break}case 41:{a=s[396]|0;if(!(a<<16>>16)){b=36;break e}a=a+-1<<16>>16;s[396]=a;r=s[395]|0;if(r<<16>>16!=0?(u=t[(t[69]|0)+((r&65535)+-1<<2)>>2]|0,(t[u+20>>2]|0)==(t[(t[68]|0)+((a&65535)<<3)+4>>2]|0)):0){a=u+4|0;if(!(t[a>>2]|0))t[a>>2]=c;t[u+12>>2]=e+4;s[395]=r+-1<<16>>16;b=81;}else b=81;break}case 123:{b=t[67]|0;c=t[61]|0;e=b;do{if((s[b>>1]|0)==41&(c|0)!=0?(t[c+4>>2]|0)==(b|0):0){a=t[62]|0;t[61]=a;if(!a){t[57]=0;break}else {t[a+28>>2]=0;break}}}while(0);c=t[68]|0;r=s[396]|0;b=r&65535;t[c+(b<<3)>>2]=(i[797]|0)==0?2:6;s[396]=r+1<<16>>16;t[c+(b<<3)+4>>2]=e;i[797]=0;b=81;break}case 125:{e=s[396]|0;if(!(e<<16>>16)){b=49;break e}c=t[68]|0;b=e+-1<<16>>16;s[396]=b;if((t[c+((b&65535)<<3)>>2]|0)==4){h();b=81;}else b=81;break}case 39:{d(39);b=81;break}case 34:{d(34);b=81;break}case 47:switch(s[e+4>>1]|0){case 47:{P();break a}case 42:{y(1);break a}default:{e=t[67]|0;c=s[e>>1]|0;r:do{if(!(U(c)|0)){switch(c<<16>>16){case 41:if(D(t[(t[68]|0)+(f[396]<<3)+4>>2]|0)|0){b=69;break r}else {b=66;break r}case 125:break;default:{b=66;break r}}a=t[68]|0;r=f[396]|0;if(!(p(t[a+(r<<3)+4>>2]|0)|0)?(t[a+(r<<3)>>2]|0)!=6:0)b=66;else b=69;}else switch(c<<16>>16){case 46:if(((s[e+-2>>1]|0)+-48&65535)<10){b=66;break r}else {b=69;break r}case 43:if((s[e+-2>>1]|0)==43){b=66;break r}else {b=69;break r}case 45:if((s[e+-2>>1]|0)==45){b=66;break r}else {b=69;break r}default:{b=69;break r}}}while(0);r:do{if((b|0)==66){b=0;if(!(o(e)|0)){switch(c<<16>>16){case 0:{b=69;break r}case 47:{if(i[796]|0){b=69;break r}break}default:{}}r=t[3]|0;a=c;do{if(e>>>0<=r>>>0)break;e=e+-2|0;t[67]=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;t[67]=e;}while(F(s[e>>1]|0)|0);if(j(e)|0){g();i[796]=0;b=81;break a}else e=1;}else e=1;}else b=69;}}while(0);if((b|0)==69){g();e=0;}i[796]=e;b=81;break a}}case 96:{c=t[68]|0;r=s[396]|0;b=r&65535;t[c+(b<<3)+4>>2]=t[67];s[396]=r+1<<16>>16;t[c+(b<<3)>>2]=3;h();b=81;break}default:b=81;}}while(0);if((b|0)==81){b=0;t[67]=t[70];}e=t[70]|0;}if((b|0)==36){T();e=0;break}else if((b|0)==49){T();e=0;break}else if((b|0)==82){e=(i[794]|0)==0?(s[395]|s[396])<<16>>16==0:0;break}}}while(0);n=w;return e|0}function l(){var e=0,a=0,r=0,c=0,f=0,n=0,b=0,l=0,k=0,o=0,h=0,A=0,C=0,g=0;l=t[70]|0;k=t[63]|0;g=l+12|0;t[70]=g;r=w(1)|0;e=t[70]|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:{t[70]=e+2;e=w(1)|0;r=t[70]|0;while(1){if(W(e)|0){d(e);e=(t[70]|0)+2|0;t[70]=e;}else {q(e)|0;e=t[70]|0;}w(1)|0;e=v(r,e)|0;if(e<<16>>16==44){t[70]=(t[70]|0)+2;e=w(1)|0;}a=r;r=t[70]|0;if(e<<16>>16==125){C=15;break}if((r|0)==(a|0)){C=12;break}if(r>>>0>(t[71]|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){t[70]=r+2;break a}break}case 42:{t[70]=e+2;w(1)|0;g=t[70]|0;v(g,g)|0;break}default:{i[795]=0;switch(r<<16>>16){case 100:{l=e+14|0;t[70]=l;switch((w(1)|0)<<16>>16){case 97:{a=t[70]|0;if((m(a+2|0,56,8)|0)==0?(f=a+10|0,F(s[f>>1]|0)|0):0){t[70]=f;w(0)|0;C=22;}break}case 102:{C=22;break}case 99:{a=t[70]|0;if(((m(a+2|0,36,8)|0)==0?(c=a+10|0,g=s[c>>1]|0,V(g)|0|g<<16>>16==123):0)?(t[70]=c,n=w(1)|0,n<<16>>16!=123):0){A=n;C=31;}break}default:{}}r:do{if((C|0)==22?(b=t[70]|0,(m(b+2|0,64,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}t[70]=r;a=w(1)|0;if(a<<16>>16==42){t[70]=(t[70]|0)+2;a=w(1)|0;}if(a<<16>>16!=40){A=a;C=31;}}}while(0);if((C|0)==31?(o=t[70]|0,q(A)|0,h=t[70]|0,h>>>0>o>>>0):0){$(e,l,o,h);t[70]=(t[70]|0)+-2;break e}$(e,l,0,0);t[70]=e+12;break e}case 97:{t[70]=e+10;w(0)|0;e=t[70]|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){t[70]=a;g=w(1)|0;C=t[70]|0;q(g)|0;g=t[70]|0;$(C,g,C,g);t[70]=(t[70]|0)+-2;break e}e=e+4|0;t[70]=e;break}case 108:case 118:break;default:break e}if((C|0)==35){t[70]=e+16;e=w(1)|0;if(e<<16>>16==42){t[70]=(t[70]|0)+2;e=w(1)|0;}C=t[70]|0;q(e)|0;g=t[70]|0;$(C,g,C,g);t[70]=(t[70]|0)+-2;break e}e=e+4|0;t[70]=e;i[795]=0;r:while(1){t[70]=e+2;g=w(1)|0;e=t[70]|0;switch((q(g)|0)<<16>>16){case 91:case 123:break r;default:{}}a=t[70]|0;if((a|0)==(e|0))break e;$(e,a,e,a);if((w(1)|0)<<16>>16!=44)break;e=t[70]|0;}t[70]=(t[70]|0)+-2;break e}}}while(0);g=(w(1)|0)<<16>>16==102;e=t[70]|0;if(g?(m(e+2|0,50,6)|0)==0:0){t[70]=e+8;u(l,w(1)|0);e=(k|0)==0?232:k+16|0;while(1){e=t[e>>2]|0;if(!e)break e;t[e+12>>2]=0;t[e+8>>2]=0;e=e+16|0;}}t[70]=e+-2;}}while(0);return}function k(){var e=0,a=0,r=0,c=0,f=0,n=0;f=t[70]|0;e=f+12|0;t[70]=e;e:do{switch((w(1)|0)<<16>>16){case 40:{a=t[68]|0;n=s[396]|0;r=n&65535;t[a+(r<<3)>>2]=5;e=t[70]|0;s[396]=n+1<<16>>16;t[a+(r<<3)+4>>2]=e;if((s[t[67]>>1]|0)!=46){t[70]=e+2;n=w(1)|0;A(f,t[70]|0,0,e);a=t[61]|0;r=t[69]|0;f=s[395]|0;s[395]=f+1<<16>>16;t[r+((f&65535)<<2)>>2]=a;switch(n<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{t[70]=(t[70]|0)+-2;break e}}e=(t[70]|0)+2|0;t[70]=e;switch((w(1)|0)<<16>>16){case 44:{t[70]=(t[70]|0)+2;w(1)|0;f=t[61]|0;t[f+4>>2]=e;n=t[70]|0;t[f+16>>2]=n;i[f+24>>0]=1;t[70]=n+-2;break e}case 41:{s[396]=(s[396]|0)+-1<<16>>16;n=t[61]|0;t[n+4>>2]=e;t[n+12>>2]=(t[70]|0)+2;i[n+24>>0]=1;s[395]=(s[395]|0)+-1<<16>>16;break e}default:{t[70]=(t[70]|0)+-2;break e}}}break}case 46:{t[70]=(t[70]|0)+2;if((w(1)|0)<<16>>16==109?(a=t[70]|0,(m(a+2|0,44,6)|0)==0):0){e=t[67]|0;if(!(G(e)|0)?(s[e>>1]|0)==46:0)break e;A(f,f,a+8|0,2);}break}case 42:case 39:case 34:{c=18;break}case 123:{e=t[70]|0;if(s[396]|0){t[70]=e+-2;break e}while(1){if(e>>>0>=(t[71]|0)>>>0)break;e=w(1)|0;if(!(W(e)|0)){if(e<<16>>16==125){c=33;break}}else d(e);e=(t[70]|0)+2|0;t[70]=e;}if((c|0)==33)t[70]=(t[70]|0)+2;n=(w(1)|0)<<16>>16==102;e=t[70]|0;if(n?m(e+2|0,50,6)|0:0){T();break e}t[70]=e+8;e=w(1)|0;if(W(e)|0){u(f,e);break e}else {T();break e}}default:if((t[70]|0)==(e|0))t[70]=f+10;else c=18;}}while(0);do{if((c|0)==18){if(s[396]|0){t[70]=(t[70]|0)+-2;break}e=t[71]|0;a=t[70]|0;while(1){if(a>>>0>=e>>>0){c=25;break}r=s[a>>1]|0;if(W(r)|0){c=23;break}n=a+2|0;t[70]=n;a=n;}if((c|0)==23){u(f,r);break}else if((c|0)==25){T();break}}}while(0);return}function u(e,a){e=e|0;a=a|0;var r=0,i=0;r=(t[70]|0)+2|0;switch(a<<16>>16){case 39:{d(39);i=5;break}case 34:{d(34);i=5;break}default:T();}do{if((i|0)==5){A(e,r,t[70]|0,1);t[70]=(t[70]|0)+2;a=w(0)|0;e=a<<16>>16==97;if(e){r=t[70]|0;if(m(r+2|0,78,10)|0)i=11;}else {r=t[70]|0;if(!(((a<<16>>16==119?(s[r+2>>1]|0)==105:0)?(s[r+4>>1]|0)==116:0)?(s[r+6>>1]|0)==104:0))i=11;}if((i|0)==11){t[70]=r+-2;break}t[70]=r+((e?6:4)<<1);if((w(1)|0)<<16>>16!=123){t[70]=r;break}e=t[70]|0;a=e;e:while(1){t[70]=a+2;a=w(1)|0;switch(a<<16>>16){case 39:{d(39);t[70]=(t[70]|0)+2;a=w(1)|0;break}case 34:{d(34);t[70]=(t[70]|0)+2;a=w(1)|0;break}default:a=q(a)|0;}if(a<<16>>16!=58){i=20;break}t[70]=(t[70]|0)+2;switch((w(1)|0)<<16>>16){case 39:{d(39);break}case 34:{d(34);break}default:{i=24;break e}}t[70]=(t[70]|0)+2;switch((w(1)|0)<<16>>16){case 125:{i=29;break e}case 44:break;default:{i=28;break e}}t[70]=(t[70]|0)+2;if((w(1)|0)<<16>>16==125){i=29;break}a=t[70]|0;}if((i|0)==20){t[70]=r;break}else if((i|0)==24){t[70]=r;break}else if((i|0)==28){t[70]=r;break}else if((i|0)==29){i=t[61]|0;t[i+16>>2]=e;t[i+12>>2]=(t[70]|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=O(e+-4|0,88,2)|0;break e}case 108:{e=O(e+-4|0,92,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=O(e+-4|0,98,4)|0;break e}case 117:{e=O(e+-4|0,106,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=O(e+-8|0,118,6)|0;break e}case 112:{e=O(e+-8|0,130,2)|0;break e}default:{e=0;break e}}else e=0;break}case 107:{e=O(e+-2|0,134,4)|0;break}case 110:{e=e+-2|0;if(B(e,105)|0)e=1;else e=O(e,142,5)|0;break}case 111:{e=B(e+-2|0,100)|0;break}case 114:{e=O(e+-2|0,152,7)|0;break}case 116:{e=O(e+-2|0,166,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=O(e+-4|0,174,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=t[71]|0;r=t[70]|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;t[70]=e;a=t[68]|0;i=s[396]|0;r=i&65535;t[a+(r<<3)>>2]=4;s[396]=i+1<<16>>16;t[a+(r<<3)+4>>2]=e;}else if((a|0)==7){t[70]=e;r=t[68]|0;i=(s[396]|0)+-1<<16>>16;s[396]=i;if((t[r+((i&65535)<<3)>>2]|0)!=3)T();}else if((a|0)==10){t[70]=e;T();}return}function w(e){e=e|0;var a=0,r=0,i=0;r=t[70]|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=t[70]|0;r=i+2|0;t[70]=r;}while(i>>>0<(t[71]|0)>>>0);return a|0}function d(e){e=e|0;var a=0,r=0,i=0,c=0;c=t[71]|0;a=t[70]|0;while(1){i=a+2|0;if(a>>>0>=c>>>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){t[70]=i;T();}else if((a|0)==10)t[70]=i;return}function v(e,a){e=e|0;a=a|0;var r=0,i=0,c=0,f=0;r=t[70]|0;i=s[r>>1]|0;f=(e|0)==(a|0);c=f?0:e;f=f?0:a;if(i<<16>>16==97){t[70]=r+4;r=w(1)|0;e=t[70]|0;if(W(r)|0){d(r);a=(t[70]|0)+2|0;t[70]=a;}else {q(r)|0;a=t[70]|0;}i=w(1)|0;r=t[70]|0;}if((r|0)!=(e|0))$(e,a,c,f);return i|0}function A(e,a,r,s){e=e|0;a=a|0;r=r|0;s=s|0;var c=0,f=0;c=t[65]|0;t[65]=c+32;f=t[61]|0;t[((f|0)==0?228:f+28|0)>>2]=c;t[62]=f;t[61]=c;t[c+8>>2]=e;if(2==(s|0))e=r;else e=1==(s|0)?r+2|0:0;t[c+12>>2]=e;t[c>>2]=a;t[c+4>>2]=r;t[c+16>>2]=0;t[c+20>>2]=s;i[c+24>>0]=1==(s|0)&1;t[c+28>>2]=0;return}function C(){var e=0,a=0,r=0;r=t[71]|0;a=t[70]|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){t[70]=e;T();e=0;}else if((a|0)==7){t[70]=e;e=93;}return e|0}function g(){var e=0,a=0,r=0;e:while(1){e=t[70]|0;a=e+2|0;t[70]=a;if(e>>>0>=(t[71]|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:{t[70]=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=O(e+-2|0,200,4)|0;break}case 121:{e=O(e+-2|0,208,6)|0;break}case 101:{e=O(e+-2|0,220,3)|0;break}default:e=0;}return e|0}function y(e){e=e|0;var a=0,r=0,i=0,c=0,f=0;c=(t[70]|0)+2|0;t[70]=c;r=t[71]|0;while(1){a=c+2|0;if(c>>>0>=r>>>0)break;i=s[a>>1]|0;if(!e?Z(i)|0:0)break;if(i<<16>>16==42?(s[c+4>>1]|0)==47:0){f=8;break}c=a;}if((f|0)==8){t[70]=a;a=c+4|0;}t[70]=a;return}function m(e,a,r){e=e|0;a=a|0;r=r|0;var s=0,t=0;e:do{if(!r)e=0;else {while(1){s=i[e>>0]|0;t=i[a>>0]|0;if(s<<24>>24!=t<<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)-(t&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,c=0;r=n;n=n+16|0;i=r;t[i>>2]=0;t[64]=e;a=t[3]|0;c=a+(e<<1)|0;e=c+2|0;s[c>>1]=0;t[i>>2]=e;t[65]=e;t[57]=0;t[61]=0;t[59]=0;t[58]=0;t[63]=0;t[60]=0;n=r;return a|0}function O(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=t[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 $(e,a,r,i){e=e|0;a=a|0;r=r|0;i=i|0;var s=0,c=0;s=t[65]|0;t[65]=s+20;c=t[63]|0;t[((c|0)==0?232:c+16|0)>>2]=s;t[63]=s;t[s>>2]=e;t[s+4>>2]=a;t[s+8>>2]=r;t[s+12>>2]=i;t[s+16>>2]=0;return}function j(e){e=e|0;switch(s[e>>1]|0){case 107:{e=O(e+-2|0,134,4)|0;break}case 101:{if((s[e+-2>>1]|0)==117)e=O(e+-4|0,106,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=t[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=t[71]|0;r=t[70]|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;}}t[70]=a;return}function q(e){e=e|0;while(1){if(V(e)|0)break;if(I(e)|0)break;e=(t[70]|0)+2|0;t[70]=e;e=s[e>>1]|0;if(!(e<<16>>16)){e=0;break}}return e|0}function z(){var e=0;e=t[(t[59]|0)+20>>2]|0;switch(e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(t[3]|0)>>1;}return e|0}function D(e){e=e|0;if(!(O(e,180,5)|0)?!(O(e,190,3)|0):0)e=O(e,196,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((t[3]|0)==(e|0))e=1;else e=x(e+-2|0)|0;return e|0}function J(){var e=0;e=t[(t[60]|0)+12>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function K(){var e=0;e=t[(t[59]|0)+12>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function L(){var e=0;e=t[(t[60]|0)+8>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function M(){var e=0;e=t[(t[59]|0)+16>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function N(){var e=0;e=t[(t[59]|0)+4>>2]|0;if(!e)e=-1;else e=e-(t[3]|0)>>1;return e|0}function Q(){var e=0;e=t[59]|0;e=t[((e|0)==0?228:e+28|0)>>2]|0;t[59]=e;return (e|0)!=0|0}function R(){var e=0;e=t[60]|0;e=t[((e|0)==0?232:e+16|0)>>2]|0;t[60]=e;return (e|0)!=0|0}function T(){i[794]=1;t[66]=(t[70]|0)-(t[3]|0)>>1;t[70]=(t[71]|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 (t[(t[59]|0)+8>>2]|0)-(t[3]|0)>>1|0}function Y(){return (t[(t[60]|0)+4>>2]|0)-(t[3]|0)>>1|0}function Z(e){e=e|0;return e<<16>>16==13|e<<16>>16==10|0}function _(){return (t[t[59]>>2]|0)-(t[3]|0)>>1|0}function ee(){return (t[t[60]>>2]|0)-(t[3]|0)>>1|0}function ae(){return c[(t[59]|0)+24>>0]|0|0}function re(e){e=e|0;t[3]=e;return}function ie(){return (i[795]|0)!=0|0}function se(){return t[66]|0}function te(e){e=e|0;n=e+992+15&-16;return 992}return {su:te,ai:M,e:se,ee:Y,ele:J,els:L,es:ee,f:ie,id:z,ie:N,ip:ae,is:_,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=c$1.length+1;e.ses(r),e.sa(h-1),s(c$1,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(),t=e.ss(),f=e.se();let n;e.ip()&&(n=b(-1===s?a:a+1,c$1.charCodeAt(-1===s?a-1:a))),w.push({n:n,s:a,e:r,ss:t,se:f,d:s,a:i});}for(;e.re();){const a=e.es(),r=e.ee(),i=e.els(),s=e.ele(),t=c$1.charCodeAt(a),f=i>=0?c$1.charCodeAt(i):-1;d.push({s:a,e:r,ls:i,le:s,n:34===t||39===t?b(a+1,t):c$1.slice(a,r),ln:i<0?void 0:34===f||39===f?b(i+1,f):c$1.slice(i,s)});}return [w,d,!!e.f()]}function b(e,a){n=e;let r="",i=n;for(;;){n>=c$1.length&&o();const e=c$1.charCodeAt(n);if(e===a)break;92===e?(r+=c$1.slice(i,n),r+=l(),i=n):(8232===e||8233===e||u(e)&&o(),++n);}return r+=c$1.slice(i,n++),r}function l(){let e=c$1.charCodeAt(++n);switch(++n,e){case 110:return "\n";case 114:return "\r";case 120:return String.fromCharCode(k(2));case 117:return function(){const e=c$1.charCodeAt(n);let a;123===e?(++n,a=k(c$1.indexOf("}",n)-n),++n,a>1114111&&o()):a=k(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===c$1.charCodeAt(n)&&++n;case 10:return "";case 56:case 57:o();default:if(e>=48&&e<=55){let a=c$1.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=c$1.charCodeAt(n),"0"===a&&56!==e&&57!==e||o(),String.fromCharCode(r)}return u(e)?"":String.fromCharCode(e)}}function k(e){const a=n;let r=0,i=0;for(let a=0;a<e;++a,++n){let e,s=c$1.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 ${f}:${c$1.slice(0,n).split("\n").length}:${n-c$1.lastIndexOf("\n",n-1)}`),{idx:n})}
302
393
 
303
- async function defaultResolve (id, parentUrl) {
304
- return resolveImportMap(importMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl);
305
- }
306
-
307
394
  async function _resolve (id, parentUrl) {
308
395
  const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl);
309
396
  return {
310
- r: resolveImportMap(importMap, urlResolved || id, parentUrl),
397
+ r: resolveImportMap(importMap, urlResolved || id, parentUrl) || throwUnresolved(id, parentUrl),
311
398
  // b = bare specifier
312
399
  b: !urlResolved && !isURL(id)
313
400
  };
314
401
  }
315
402
 
316
- const resolve = resolveHook ? async (id, parentUrl) => ({ r: await resolveHook(id, parentUrl, defaultResolve), b: false }) : _resolve;
403
+ const resolve = resolveHook ? async (id, parentUrl) => {
404
+ let result = resolveHook(id, parentUrl, defaultResolve);
405
+ // will be deprecated in next major
406
+ if (result && result.then)
407
+ result = await result;
408
+ return result ? { r: result, b: !resolveIfNotPlainOrUrl(id, parentUrl) && !isURL(id) } : _resolve(id, parentUrl);
409
+ } : _resolve;
410
+
411
+ // importShim('mod');
412
+ // importShim('mod', { opts });
413
+ // importShim('mod', { opts }, parentUrl);
414
+ // importShim('mod', parentUrl);
415
+ async function importShim (id, ...args) {
416
+ // parentUrl if present will be the last argument
417
+ let parentUrl = args[args.length - 1];
418
+ if (typeof parentUrl !== 'string')
419
+ parentUrl = baseUrl;
420
+ // needed for shim check
421
+ await initPromise;
422
+ if (importHook) await importHook(id, typeof args[1] !== 'string' ? args[1] : {}, parentUrl);
423
+ if (acceptingImportMaps || shimMode || !baselinePassthrough) {
424
+ if (hasDocument)
425
+ processScriptsAndPreloads(true);
426
+ if (!shimMode)
427
+ acceptingImportMaps = false;
428
+ }
429
+ await importMapPromise;
430
+ return topLevelLoad((await resolve(id, parentUrl)).r, { credentials: 'same-origin' });
431
+ }
432
+
433
+ self.importShim = importShim;
434
+
435
+ function defaultResolve (id, parentUrl) {
436
+ return resolveImportMap(importMap, resolveIfNotPlainOrUrl(id, parentUrl) || id, parentUrl) || throwUnresolved(id, parentUrl);
437
+ }
438
+
439
+ function throwUnresolved (id, parentUrl) {
440
+ throw Error(`Unable to resolve specifier '${id}'${fromParent(parentUrl)}`);
441
+ }
317
442
 
318
- let id = 0;
319
- const registry = {};
443
+ const resolveSync = (id, parentUrl = baseUrl) => {
444
+ parentUrl = `${parentUrl}`;
445
+ const result = resolveHook && resolveHook(id, parentUrl, defaultResolve);
446
+ return result && !result.then ? result : defaultResolve(id, parentUrl);
447
+ };
448
+
449
+ function metaResolve (id, parentUrl = this.url) {
450
+ return resolveSync(id, parentUrl);
451
+ }
452
+
453
+ importShim.resolve = resolveSync;
454
+ importShim.getImportMap = () => JSON.parse(JSON.stringify(importMap));
455
+ importShim.addImportMap = importMapIn => {
456
+ if (!shimMode) throw new Error('Unsupported in polyfill mode.');
457
+ importMap = resolveAndComposeImportMap(importMapIn, baseUrl, importMap);
458
+ };
459
+
460
+ const registry = importShim._r = {};
320
461
 
321
462
  async function loadAll (load, seen) {
322
463
  if (load.b || seen[load.u])
@@ -329,50 +470,50 @@
329
470
  }
330
471
 
331
472
  let importMap = { imports: {}, scopes: {} };
332
- let importMapSrcOrLazy = false;
333
473
  let baselinePassthrough;
334
474
 
335
475
  const initPromise = featureDetectionPromise.then(() => {
336
- // shim mode is determined on initialization, no late shim mode
337
- if (!shimMode) {
338
- if (document.querySelectorAll('script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]').length) {
339
- setShimMode();
476
+ baselinePassthrough = esmsInitOptions.polyfillEnable !== true && supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && !importMapSrcOrLazy;
477
+ if (hasDocument) {
478
+ if (!supportsImportMaps) {
479
+ const supports = HTMLScriptElement.supports || (type => type === 'classic' || type === 'module');
480
+ HTMLScriptElement.supports = type => type === 'importmap' || supports(type);
340
481
  }
341
- else {
342
- let seenScript = false;
343
- for (const script of document.querySelectorAll('script[type=module],script[type=importmap]')) {
344
- if (!seenScript) {
345
- if (script.type === 'module')
346
- seenScript = true;
347
- }
348
- else if (script.type === 'importmap') {
349
- importMapSrcOrLazy = true;
350
- break;
482
+ if (shimMode || !baselinePassthrough) {
483
+ new MutationObserver(mutations => {
484
+ for (const mutation of mutations) {
485
+ if (mutation.type !== 'childList') continue;
486
+ for (const node of mutation.addedNodes) {
487
+ if (node.tagName === 'SCRIPT') {
488
+ if (node.type === (shimMode ? 'module-shim' : 'module'))
489
+ processScript(node, true);
490
+ if (node.type === (shimMode ? 'importmap-shim' : 'importmap'))
491
+ processImportMap(node, true);
492
+ }
493
+ else if (node.tagName === 'LINK' && node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload')) {
494
+ processPreload(node);
495
+ }
496
+ }
351
497
  }
498
+ }).observe(document, {childList: true, subtree: true});
499
+ processScriptsAndPreloads();
500
+ if (document.readyState === 'complete') {
501
+ readyStateCompleteCheck();
352
502
  }
353
- }
354
- }
355
- baselinePassthrough = supportsDynamicImport && supportsImportMeta && supportsImportMaps && (!jsonModulesEnabled || supportsJsonAssertions) && (!cssModulesEnabled || supportsCssAssertions) && !importMapSrcOrLazy && !false;
356
- if (shimMode || !baselinePassthrough) {
357
- new MutationObserver(mutations => {
358
- for (const mutation of mutations) {
359
- if (mutation.type !== 'childList') continue;
360
- for (const node of mutation.addedNodes) {
361
- if (node.tagName === 'SCRIPT') {
362
- if (node.type === (shimMode ? 'module-shim' : 'module'))
363
- processScript(node);
364
- if (node.type === (shimMode ? 'importmap-shim' : 'importmap'))
365
- processImportMap(node);
503
+ else {
504
+ async function readyListener() {
505
+ await initPromise;
506
+ processScriptsAndPreloads();
507
+ if (document.readyState === 'complete') {
508
+ readyStateCompleteCheck();
509
+ document.removeEventListener('readystatechange', readyListener);
366
510
  }
367
- else if (node.tagName === 'LINK' && node.rel === (shimMode ? 'modulepreload-shim' : 'modulepreload'))
368
- processPreload(node);
369
511
  }
512
+ document.addEventListener('readystatechange', readyListener);
370
513
  }
371
- }).observe(document, { childList: true, subtree: true });
372
- processImportMaps();
373
- processScriptsAndPreloads();
374
- return undefined;
514
+ }
375
515
  }
516
+ return undefined;
376
517
  });
377
518
  let importMapPromise = initPromise;
378
519
  let firstPolyfillLoad = true;
@@ -381,7 +522,9 @@
381
522
  async function topLevelLoad (url, fetchOpts, source, nativelyLoaded, lastStaticLoadPromise) {
382
523
  if (!shimMode)
383
524
  acceptingImportMaps = false;
525
+ await initPromise;
384
526
  await importMapPromise;
527
+ if (importHook) await importHook(url, typeof fetchOpts !== 'string' ? fetchOpts : {}, '');
385
528
  // early analysis opt-out - no need to even fetch if we have feature support
386
529
  if (!shimMode && baselinePassthrough) {
387
530
  // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
@@ -390,16 +533,16 @@
390
533
  await lastStaticLoadPromise;
391
534
  return dynamicImport(source ? createBlob(source) : url, { errUrl: url || source });
392
535
  }
393
- const load = getOrCreateLoad(url, fetchOpts, source);
536
+ const load = getOrCreateLoad(url, fetchOpts, null, source);
394
537
  const seen = {};
395
538
  await loadAll(load, seen);
396
539
  lastLoad = undefined;
397
540
  resolveDeps(load, seen);
398
541
  await lastStaticLoadPromise;
399
- if (source && !shimMode && !load.n && !false) {
400
- const module = await dynamicImport(createBlob(source), { errUrl: source });
542
+ if (source && !shimMode && !load.n) {
543
+ if (nativelyLoaded) return;
401
544
  if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
402
- return module;
545
+ return await dynamicImport(createBlob(source), { errUrl: source });
403
546
  }
404
547
  if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
405
548
  onpolyfill();
@@ -432,32 +575,6 @@
432
575
  }
433
576
  }
434
577
 
435
- async function importShim (id, parentUrl = baseUrl, _assertion) {
436
- // needed for shim check
437
- await initPromise;
438
- if (acceptingImportMaps || shimMode || !baselinePassthrough) {
439
- processImportMaps();
440
- if (!shimMode)
441
- acceptingImportMaps = false;
442
- }
443
- await importMapPromise;
444
- return topLevelLoad((await resolve(id, parentUrl)).r || throwUnresolved(id, parentUrl), { credentials: 'same-origin' });
445
- }
446
-
447
- self.importShim = importShim;
448
-
449
- if (shimMode) {
450
- importShim.getImportMap = () => JSON.parse(JSON.stringify(importMap));
451
- }
452
-
453
- const meta = {};
454
-
455
- async function importMetaResolve (id, parentUrl = this.url) {
456
- return (await resolve(id, `${parentUrl}`)).r || throwUnresolved(id, parentUrl);
457
- }
458
-
459
- self._esmsm = meta;
460
-
461
578
  function urlJsString (url) {
462
579
  return `'${url.replace(/'/g, "\\'")}'`;
463
580
  }
@@ -471,7 +588,7 @@
471
588
  for (const dep of load.d)
472
589
  resolveDeps(dep, seen);
473
590
 
474
- const [imports] = load.a;
591
+ const [imports, exports] = load.a;
475
592
 
476
593
  // "execution"
477
594
  const source = load.S;
@@ -485,53 +602,70 @@
485
602
  else {
486
603
  // once all deps have loaded we can inline the dependency resolution blobs
487
604
  // and define this blob
488
- let lastIndex = 0, depIndex = 0;
489
- for (const { s: start, se: end, d: dynamicImportIndex } of imports) {
605
+ let lastIndex = 0, depIndex = 0, dynamicImportEndStack = [];
606
+ function pushStringTo (originalIndex) {
607
+ while (dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
608
+ const dynamicImportEnd = dynamicImportEndStack.pop();
609
+ resolvedSource += `${source.slice(lastIndex, dynamicImportEnd)}, ${urlJsString(load.r)}`;
610
+ lastIndex = dynamicImportEnd;
611
+ }
612
+ resolvedSource += source.slice(lastIndex, originalIndex);
613
+ lastIndex = originalIndex;
614
+ }
615
+ for (const { s: start, ss: statementStart, se: statementEnd, d: dynamicImportIndex } of imports) {
490
616
  // dependency source replacements
491
617
  if (dynamicImportIndex === -1) {
492
- const depLoad = load.d[depIndex++];
493
- let blobUrl = depLoad.b;
494
- if (!blobUrl) {
618
+ let depLoad = load.d[depIndex++], blobUrl = depLoad.b, cycleShell = !blobUrl;
619
+ if (cycleShell) {
495
620
  // circular shell creation
496
621
  if (!(blobUrl = depLoad.s)) {
497
622
  blobUrl = depLoad.s = createBlob(`export function u$_(m){${
498
- depLoad.a[1].map(
499
- name => name === 'default' ? `$_default=m.default` : `${name}=m.${name}`
500
- ).join(',')
623
+ depLoad.a[1].map(({ s, e }, i) => {
624
+ const q = depLoad.S[s] === '"' || depLoad.S[s] === "'";
625
+ return `e$_${i}=m${q ? `[` : '.'}${depLoad.S.slice(s, e)}${q ? `]` : ''}`;
626
+ }).join(',')
501
627
  }}${
502
- depLoad.a[1].map(name =>
503
- name === 'default' ? `let $_default;export{$_default as default}` : `export let ${name}`
504
- ).join(';')
505
- }\n//# sourceURL=${depLoad.r}?cycle`);
628
+ depLoad.a[1].length ? `let ${depLoad.a[1].map((_, i) => `e$_${i}`).join(',')};` : ''
629
+ }export {${
630
+ depLoad.a[1].map(({ s, e }, i) => `e$_${i} as ${depLoad.S.slice(s, e)}`).join(',')
631
+ }}\n//# sourceURL=${depLoad.r}?cycle`);
506
632
  }
507
633
  }
634
+
635
+ pushStringTo(start - 1);
636
+ resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/${urlJsString(blobUrl)}`;
637
+
508
638
  // circular shell execution
509
- else if (depLoad.s) {
510
- resolvedSource += `${source.slice(lastIndex, start - 1)}/*${source.slice(start - 1, end)}*/${urlJsString(blobUrl)};import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
511
- lastIndex = end;
639
+ if (!cycleShell && depLoad.s) {
640
+ resolvedSource += `;import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
512
641
  depLoad.s = undefined;
513
- continue;
514
642
  }
515
- resolvedSource += `${source.slice(lastIndex, start - 1)}/*${source.slice(start - 1, end)}*/${urlJsString(blobUrl)}`;
516
- lastIndex = end;
643
+ lastIndex = statementEnd;
517
644
  }
518
645
  // import.meta
519
646
  else if (dynamicImportIndex === -2) {
520
- meta[load.r] = { url: load.r, resolve: importMetaResolve };
521
- resolvedSource += `${source.slice(lastIndex, start)}self._esmsm[${urlJsString(load.r)}]`;
522
- lastIndex = end;
647
+ load.m = { url: load.r, resolve: metaResolve };
648
+ metaHook(load.m, load.u);
649
+ pushStringTo(start);
650
+ resolvedSource += `importShim._r[${urlJsString(load.u)}].m`;
651
+ lastIndex = statementEnd;
523
652
  }
524
653
  // dynamic import
525
654
  else {
526
- resolvedSource += `${source.slice(lastIndex, dynamicImportIndex + 6)}Shim(${source.slice(start, end)}, ${load.r && urlJsString(load.r)}`;
527
- lastIndex = end;
655
+ pushStringTo(statementStart + 6);
656
+ resolvedSource += `Shim(`;
657
+ dynamicImportEndStack.push(statementEnd - 1);
658
+ lastIndex = start;
528
659
  }
529
660
  }
530
661
 
531
- resolvedSource += source.slice(lastIndex);
662
+ // support progressive cycle binding updates (try statement avoids tdz errors)
663
+ if (load.s)
664
+ resolvedSource += `\n;import{u$_}from'${load.s}';try{u$_({${exports.filter(e => e.ln).map(({ s, e, ln }) => `${source.slice(s, e)}:${ln}`).join(',')}})}catch(_){};\n`;
665
+
666
+ pushStringTo(source.length);
532
667
  }
533
668
 
534
- // ; and // trailer support added for Ruby 7 source maps compatibility
535
669
  let hasSourceURL = false;
536
670
  resolvedSource = resolvedSource.replace(sourceMapURLRegEx, (match, isMapping, url) => (hasSourceURL = !isMapping, match.replace(url, () => new URL(url, load.r))));
537
671
  if (!hasSourceURL)
@@ -541,6 +675,8 @@
541
675
  load.S = undefined;
542
676
  }
543
677
 
678
+ // ; and // trailer support added for Ruby on Rails 7 source maps compatibility
679
+ // https://github.com/guybedford/es-module-shims/issues/228
544
680
  const sourceMapURLRegEx = /\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;
545
681
 
546
682
  const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
@@ -562,42 +698,52 @@
562
698
  p.shift()();
563
699
  }
564
700
 
565
- async function doFetch (url, fetchOpts) {
701
+ async function doFetch (url, fetchOpts, parent) {
566
702
  if (enforceIntegrity && !fetchOpts.integrity)
567
- throw Error(`No integrity for ${url}`);
703
+ throw Error(`No integrity for ${url}${fromParent(parent)}.`);
568
704
  const poolQueue = pushFetchPool();
569
705
  if (poolQueue) await poolQueue;
570
706
  try {
571
707
  var res = await fetchHook(url, fetchOpts);
572
708
  }
709
+ catch (e) {
710
+ e.message = `Unable to fetch ${url}${fromParent(parent)} - see network log for details.\n` + e.message;
711
+ throw e;
712
+ }
573
713
  finally {
574
714
  popFetchPool();
575
715
  }
576
716
  if (!res.ok)
577
- throw Error(`${res.status} ${res.statusText} ${res.url}`);
717
+ throw Error(`${res.status} ${res.statusText} ${res.url}${fromParent(parent)}`);
718
+ return res;
719
+ }
720
+
721
+ async function fetchModule (url, fetchOpts, parent) {
722
+ const res = await doFetch(url, fetchOpts, parent);
578
723
  const contentType = res.headers.get('content-type');
579
724
  if (jsContentType.test(contentType))
580
725
  return { r: res.url, s: await res.text(), t: 'js' };
581
726
  else if (jsonContentType.test(contentType))
582
727
  return { r: res.url, s: `export default ${await res.text()}`, t: 'json' };
583
- else if (cssContentType.test(contentType))
728
+ else if (cssContentType.test(contentType)) {
584
729
  return { r: res.url, s: `var s=new CSSStyleSheet();s.replaceSync(${
585
- JSON.stringify((await res.text()).replace(cssUrlRegEx, (_match, quotes, relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`))
586
- });export default s;`, t: 'css' };
730
+ JSON.stringify((await res.text()).replace(cssUrlRegEx, (_match, quotes = '', relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`))
731
+ });export default s;`, t: 'css' };
732
+ }
587
733
  else
588
- throw Error(`Unsupported Content-Type "${contentType}"`);
734
+ throw Error(`Unsupported Content-Type "${contentType}" loading ${url}${fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`);
589
735
  }
590
736
 
591
- function getOrCreateLoad (url, fetchOpts, source) {
737
+ function getOrCreateLoad (url, fetchOpts, parent, source) {
592
738
  let load = registry[url];
593
- if (load)
739
+ if (load && !source)
594
740
  return load;
595
741
 
596
- load = registry[url] = {
742
+ load = {
597
743
  // url
598
744
  u: url,
599
745
  // response url
600
- r: undefined,
746
+ r: source ? url : undefined,
601
747
  // fetchPromise
602
748
  f: undefined,
603
749
  // source
@@ -615,14 +761,22 @@
615
761
  // needsShim
616
762
  n: false,
617
763
  // type
618
- t: null
764
+ t: null,
765
+ // meta
766
+ m: null
619
767
  };
768
+ if (registry[url]) {
769
+ let i = 0;
770
+ while (registry[load.u + ++i]);
771
+ load.u += i;
772
+ }
773
+ registry[load.u] = load;
620
774
 
621
775
  load.f = (async () => {
622
776
  if (!source) {
623
777
  // preload fetch options override fetch options (race)
624
778
  let t;
625
- ({ r: load.r, s: source, t } = await (fetchCache[url] || doFetch(url, fetchOpts)));
779
+ ({ r: load.r, s: source, t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
626
780
  if (t && !shimMode) {
627
781
  if (t === 'css' && !cssModulesEnabled || t === 'json' && !jsonModulesEnabled)
628
782
  throw Error(`${t}-modules require <script type="esms-options">{ "polyfillEnable": ["${t}-modules"] }<${''}/script>`);
@@ -634,8 +788,8 @@
634
788
  load.a = parse(source, load.u);
635
789
  }
636
790
  catch (e) {
637
- console.warn(e);
638
- load.a = [[], []];
791
+ throwError(e);
792
+ load.a = [[], [], false];
639
793
  }
640
794
  load.S = source;
641
795
  return load;
@@ -644,46 +798,43 @@
644
798
  load.L = load.f.then(async () => {
645
799
  let childFetchOpts = fetchOpts;
646
800
  load.d = (await Promise.all(load.a[0].map(async ({ n, d }) => {
647
- if (d >= 0 && !supportsDynamicImport || d === 2 && !supportsImportMeta)
801
+ if (d >= 0 && !supportsDynamicImport || d === -2 && !supportsImportMeta)
648
802
  load.n = true;
649
- if (!n) return;
803
+ if (d !== -1 || !n) return;
650
804
  const { r, b } = await resolve(n, load.r || load.u);
651
805
  if (b && (!supportsImportMaps || importMapSrcOrLazy))
652
806
  load.n = true;
653
807
  if (d !== -1) return;
654
- if (!r)
655
- throwUnresolved(n, load.r || load.u);
656
- if (skip && skip.test(r)) return { b: r };
808
+ if (skip && skip(r)) return { b: r };
657
809
  if (childFetchOpts.integrity)
658
810
  childFetchOpts = Object.assign({}, childFetchOpts, { integrity: undefined });
659
- return getOrCreateLoad(r, childFetchOpts).f;
811
+ return getOrCreateLoad(r, childFetchOpts, load.r).f;
660
812
  }))).filter(l => l);
661
813
  });
662
814
 
663
815
  return load;
664
816
  }
665
817
 
666
- function processScriptsAndPreloads () {
667
- for (const script of document.querySelectorAll(shimMode ? 'script[type=module-shim]' : 'script[type=module]'))
668
- processScript(script);
669
- for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]'))
670
- processPreload(link);
671
- }
672
-
673
- function processImportMaps () {
674
- for (const script of document.querySelectorAll(shimMode ? 'script[type="importmap-shim"]' : 'script[type="importmap"]'))
818
+ function processScriptsAndPreloads (mapsOnly = false) {
819
+ if (!mapsOnly)
820
+ for (const link of document.querySelectorAll(shimMode ? 'link[rel=modulepreload-shim]' : 'link[rel=modulepreload]'))
821
+ processPreload(link);
822
+ for (const script of document.querySelectorAll(shimMode ? 'script[type=importmap-shim]' : 'script[type=importmap]'))
675
823
  processImportMap(script);
824
+ if (!mapsOnly)
825
+ for (const script of document.querySelectorAll(shimMode ? 'script[type=module-shim]' : 'script[type=module]'))
826
+ processScript(script);
676
827
  }
677
828
 
678
829
  function getFetchOpts (script) {
679
830
  const fetchOpts = {};
680
831
  if (script.integrity)
681
832
  fetchOpts.integrity = script.integrity;
682
- if (script.referrerpolicy)
683
- fetchOpts.referrerPolicy = script.referrerpolicy;
684
- if (script.crossorigin === 'use-credentials')
833
+ if (script.referrerPolicy)
834
+ fetchOpts.referrerPolicy = script.referrerPolicy;
835
+ if (script.crossOrigin === 'use-credentials')
685
836
  fetchOpts.credentials = 'include';
686
- else if (script.crossorigin === 'anonymous')
837
+ else if (script.crossOrigin === 'anonymous')
687
838
  fetchOpts.credentials = 'omit';
688
839
  else
689
840
  fetchOpts.credentials = 'same-origin';
@@ -694,85 +845,70 @@
694
845
 
695
846
  let domContentLoadedCnt = 1;
696
847
  function domContentLoadedCheck () {
697
- if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers)
848
+ if (--domContentLoadedCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
698
849
  document.dispatchEvent(new Event('DOMContentLoaded'));
699
- }
700
- // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement
701
- document.addEventListener('DOMContentLoaded', async () => {
702
- await initPromise;
703
- domContentLoadedCheck();
704
- if (shimMode || !baselinePassthrough) {
705
- processImportMaps();
706
- processScriptsAndPreloads();
707
850
  }
708
- });
709
-
710
- let readyStateCompleteCnt = 1;
711
- if (document.readyState === 'complete') {
712
- readyStateCompleteCheck();
713
851
  }
714
- else {
715
- document.addEventListener('readystatechange', async () => {
716
- processImportMaps();
852
+ // this should always trigger because we assume es-module-shims is itself a domcontentloaded requirement
853
+ if (hasDocument) {
854
+ document.addEventListener('DOMContentLoaded', async () => {
717
855
  await initPromise;
718
- readyStateCompleteCheck();
856
+ domContentLoadedCheck();
719
857
  });
720
858
  }
859
+
860
+ let readyStateCompleteCnt = 1;
721
861
  function readyStateCompleteCheck () {
722
- if (--readyStateCompleteCnt === 0 && !noLoadEventRetriggers)
862
+ if (--readyStateCompleteCnt === 0 && !noLoadEventRetriggers && (shimMode || !baselinePassthrough)) {
723
863
  document.dispatchEvent(new Event('readystatechange'));
864
+ }
724
865
  }
725
866
 
726
- function processImportMap (script) {
727
- if (script.ep) // ep marker = script processed
728
- return;
729
- // empty inline scripts sometimes show before domready
730
- if (!script.src && !script.innerHTML)
731
- return;
732
- script.ep = true;
867
+ const hasNext = script => script.nextSibling || script.parentNode && hasNext(script.parentNode);
868
+ const epCheck = (script, ready) => script.ep || !ready && (!script.src && !script.innerHTML || !hasNext(script)) || script.getAttribute('noshim') !== null || !(script.ep = true);
869
+
870
+ function processImportMap (script, ready = readyStateCompleteCnt > 0) {
871
+ if (epCheck(script, ready)) return;
733
872
  // we dont currently support multiple, external or dynamic imports maps in polyfill mode to match native
734
873
  if (script.src) {
735
874
  if (!shimMode)
736
875
  return;
737
- importMapSrcOrLazy = true;
876
+ setImportMapSrcOrLazy();
738
877
  }
739
878
  if (acceptingImportMaps) {
740
879
  importMapPromise = importMapPromise
741
880
  .then(async () => {
742
- importMap = resolveAndComposeImportMap(script.src ? await (await fetchHook(script.src)).json() : JSON.parse(script.innerHTML), script.src || baseUrl, importMap);
881
+ importMap = resolveAndComposeImportMap(script.src ? await (await doFetch(script.src, getFetchOpts(script))).json() : JSON.parse(script.innerHTML), script.src || baseUrl, importMap);
743
882
  })
744
- .catch(error => setTimeout(() => { throw error }));
883
+ .catch(e => {
884
+ console.log(e);
885
+ if (e instanceof SyntaxError)
886
+ e = new Error(`Unable to parse import map ${e.message} in: ${script.src || script.innerHTML}`);
887
+ throwError(e);
888
+ });
745
889
  if (!shimMode)
746
890
  acceptingImportMaps = false;
747
891
  }
748
892
  }
749
893
 
750
- function processScript (script) {
751
- if (script.ep) // ep marker = script processed
752
- return;
753
- if (script.getAttribute('noshim') !== null)
754
- return;
755
- // empty inline scripts sometimes show before domready
756
- if (!script.src && !script.innerHTML)
757
- return;
758
- script.ep = true;
894
+ function processScript (script, ready = readyStateCompleteCnt > 0) {
895
+ if (epCheck(script, ready)) return;
759
896
  // does this load block readystate complete
760
- const isReadyScript = readyStateCompleteCnt > 0;
897
+ const isBlockingReadyScript = script.getAttribute('async') === null && readyStateCompleteCnt > 0;
761
898
  // does this load block DOMContentLoaded
762
899
  const isDomContentLoadedScript = domContentLoadedCnt > 0;
763
- if (isReadyScript) readyStateCompleteCnt++;
900
+ if (isBlockingReadyScript) readyStateCompleteCnt++;
764
901
  if (isDomContentLoadedScript) domContentLoadedCnt++;
765
- const blocks = script.getAttribute('async') === null && isReadyScript;
766
- const loadPromise = topLevelLoad(script.src || `${baseUrl}?${id++}`, getFetchOpts(script), !script.src && script.innerHTML, !shimMode, blocks && lastStaticLoadPromise).catch(e => {
767
- // Safari only gives error via console.error
768
- if (safari)
769
- console.error(e);
770
- // Firefox only gives error stack via setTimeout
771
- else
772
- setTimeout(() => { throw e});
773
- onerror(e);
774
- });
775
- if (blocks)
902
+ const loadPromise = topLevelLoad(script.src || baseUrl, getFetchOpts(script), !script.src && script.innerHTML, !shimMode, isBlockingReadyScript && lastStaticLoadPromise)
903
+ .then(() => {
904
+ // if the type of the script tag "module-shim", browser does not dispatch a "load" event
905
+ // see https://github.com/guybedford/es-module-shims/issues/346
906
+ if (shimMode) {
907
+ script.dispatchEvent(new Event('load'));
908
+ }
909
+ })
910
+ .catch(throwError);
911
+ if (isBlockingReadyScript)
776
912
  lastStaticLoadPromise = loadPromise.then(readyStateCompleteCheck);
777
913
  if (isDomContentLoadedScript)
778
914
  loadPromise.then(domContentLoadedCheck);
@@ -780,16 +916,11 @@
780
916
 
781
917
  const fetchCache = {};
782
918
  function processPreload (link) {
783
- if (link.ep) // ep marker = processed
784
- return;
919
+ if (link.ep) return;
785
920
  link.ep = true;
786
921
  if (fetchCache[link.href])
787
922
  return;
788
- fetchCache[link.href] = doFetch(link.href, getFetchOpts(link));
789
- }
790
-
791
- function throwUnresolved (id, parentUrl) {
792
- throw Error("Unable to resolve specifier '" + id + (parentUrl ? "' from " + parentUrl : "'"));
923
+ fetchCache[link.href] = fetchModule(link.href, getFetchOpts(link));
793
924
  }
794
925
 
795
926
  })();