es-module-shims 2.0.2 → 2.0.4

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,10 +1,12 @@
1
- /* ES Module Shims Wasm 2.0.2 */
1
+ /* ES Module Shims Wasm 2.0.4 */
2
2
  (function () {
3
3
 
4
4
  const hasDocument = typeof document !== 'undefined';
5
5
 
6
6
  const noop = () => {};
7
7
 
8
+ const dynamicImport = (u, errUrl) => import(u);
9
+
8
10
  const optionsScript = hasDocument ? document.querySelector('script[type=esms-options]') : undefined;
9
11
 
10
12
  const esmsInitOptions = optionsScript ? JSON.parse(optionsScript.innerHTML) : {};
@@ -22,6 +24,11 @@
22
24
  const resolveHook = globalHook(shimMode && esmsInitOptions.resolve);
23
25
  let fetchHook = esmsInitOptions.fetch ? globalHook(esmsInitOptions.fetch) : fetch;
24
26
  const metaHook = esmsInitOptions.meta ? globalHook(shimMode && esmsInitOptions.meta) : noop;
27
+ const tsTransform =
28
+ esmsInitOptions.tsTransform ||
29
+ (document.currentScript &&
30
+ document.currentScript.src.replace('.js', '-typescript.js')) ||
31
+ './es-module-shims-typescript.js';
25
32
 
26
33
  const mapOverrides = esmsInitOptions.mapOverrides;
27
34
 
@@ -40,10 +47,13 @@
40
47
  }
41
48
 
42
49
  const enable = Array.isArray(esmsInitOptions.polyfillEnable) ? esmsInitOptions.polyfillEnable : [];
43
- const cssModulesEnabled = enable.includes('css-modules');
44
- const jsonModulesEnabled = enable.includes('json-modules');
45
- const wasmModulesEnabled = enable.includes('wasm-modules');
46
- const sourcePhaseEnabled = enable.includes('source-phase');
50
+ const enableAll = esmsInitOptions.polyfillEnable === 'all' || enable.includes('all');
51
+ const enableLatest = esmsInitOptions.polyfillEnable === 'latest' || enable.includes('latest');
52
+ const cssModulesEnabled = enable.includes('css-modules') || enableAll || enableLatest;
53
+ const jsonModulesEnabled = enable.includes('json-modules') || enableAll || enableLatest;
54
+ const wasmModulesEnabled = enable.includes('wasm-modules') || enableAll;
55
+ const sourcePhaseEnabled = enable.includes('source-phase') || enableAll;
56
+ const typescriptEnabled = enable.includes('typescript') || enableAll;
47
57
 
48
58
  const onpolyfill =
49
59
  esmsInitOptions.onpolyfill ?
@@ -52,8 +62,6 @@
52
62
  console.log(`%c^^ Module error above is polyfilled and can be ignored ^^`, 'font-weight:900;color:#391');
53
63
  };
54
64
 
55
- const edge = !navigator.userAgentData && !!navigator.userAgent.match(/Edge\/\d+\.\d+/);
56
-
57
65
  const baseUrl =
58
66
  hasDocument ?
59
67
  document.baseURI
@@ -280,58 +288,6 @@
280
288
  }
281
289
  }
282
290
 
283
- let dynamicImport = !hasDocument && (0, eval)('u=>import(u)');
284
-
285
- let supportsDynamicImport;
286
-
287
- const dynamicImportCheck =
288
- hasDocument &&
289
- new Promise(resolve => {
290
- const s = Object.assign(document.createElement('script'), {
291
- src: createBlob('self._d=u=>import(u)'),
292
- ep: true
293
- });
294
- s.setAttribute('nonce', nonce);
295
- s.addEventListener('load', () => {
296
- if (!(supportsDynamicImport = !!(dynamicImport = self._d))) {
297
- let err;
298
- window.addEventListener('error', _err => (err = _err));
299
- dynamicImport = (url, opts) =>
300
- new Promise((resolve, reject) => {
301
- const s = Object.assign(document.createElement('script'), {
302
- type: 'module',
303
- src: createBlob(`import*as m from'${url}';self._esmsi=m`)
304
- });
305
- err = undefined;
306
- s.ep = true;
307
- if (nonce) s.setAttribute('nonce', nonce);
308
- // Safari is unique in supporting module script error events
309
- s.addEventListener('error', cb);
310
- s.addEventListener('load', cb);
311
- function cb(_err) {
312
- document.head.removeChild(s);
313
- if (self._esmsi) {
314
- resolve(self._esmsi, baseUrl);
315
- self._esmsi = undefined;
316
- } else {
317
- reject(
318
- (!(_err instanceof Event) && _err) ||
319
- (err && err.error) ||
320
- new Error(`Error loading ${(opts && opts.errUrl) || url} (${s.src}).`)
321
- );
322
- err = undefined;
323
- }
324
- }
325
- document.head.appendChild(s);
326
- });
327
- }
328
- document.head.removeChild(s);
329
- delete self._d;
330
- resolve();
331
- });
332
- document.head.appendChild(s);
333
- });
334
-
335
291
  // support browsers without dynamic import support (eg Firefox 6x)
336
292
  let supportsJsonType = false;
337
293
  let supportsCssType = false;
@@ -339,38 +295,36 @@
339
295
  const supports = hasDocument && HTMLScriptElement.supports;
340
296
 
341
297
  let supportsImportMaps = supports && supports.name === 'supports' && supports('importmap');
342
- let supportsImportMeta = supportsDynamicImport;
343
298
  let supportsWasmModules = false;
344
299
  let supportsSourcePhase = false;
345
300
  let supportsMultipleImportMaps = false;
346
301
 
347
302
  const wasmBytes = [0, 97, 115, 109, 1, 0, 0, 0];
348
303
 
349
- let featureDetectionPromise = Promise.resolve(dynamicImportCheck).then(() => {
350
- if (!supportsDynamicImport) return;
304
+ let featureDetectionPromise = (async function () {
351
305
  if (!hasDocument)
352
306
  return Promise.all([
353
- supportsImportMaps || dynamicImport(createBlob('import.meta')).then(() => (supportsImportMeta = true), noop),
354
307
  cssModulesEnabled &&
355
- dynamicImport(createBlob(`import"${createBlob('', 'text/css')}"with{type:"css"}`)).then(
308
+ import(createBlob(`import"${createBlob('', 'text/css')}"with{type:"css"}`)).then(
356
309
  () => (supportsCssType = true),
357
310
  noop
358
311
  ),
359
312
  jsonModulesEnabled &&
360
- dynamicImport(createBlob(`import"${createBlob('{}', 'text/json')}"with{type:"json"}`)).then(
313
+ import(createBlob(`import"${createBlob('{}', 'text/json')}"with{type:"json"}`)).then(
361
314
  () => (supportsJsonType = true),
362
315
  noop
363
316
  ),
364
317
  wasmModulesEnabled &&
365
- dynamicImport(createBlob(`import"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
318
+ import(createBlob(`import"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
366
319
  () => (supportsWasmModules = true),
367
320
  noop
368
321
  ),
369
322
  wasmModulesEnabled &&
370
323
  sourcePhaseEnabled &&
371
- dynamicImport(
372
- createBlob(`import source x from"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)
373
- ).then(() => (supportsSourcePhase = true), noop)
324
+ import(createBlob(`import source x from"${createBlob(new Uint8Array(wasmBytes), 'application/wasm')}"`)).then(
325
+ () => (supportsSourcePhase = true),
326
+ noop
327
+ )
374
328
  ]);
375
329
 
376
330
  return new Promise(resolve => {
@@ -383,7 +337,6 @@
383
337
  [
384
338
  ,
385
339
  supportsImportMaps,
386
- supportsImportMeta,
387
340
  supportsMultipleImportMaps,
388
341
  supportsCssType,
389
342
  supportsJsonType,
@@ -397,15 +350,15 @@
397
350
  window.addEventListener('message', cb, false);
398
351
 
399
352
  const importMapTest = `<script nonce=${nonce || ''}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));i=innerText=>document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${nonce}",innerText}));i(\`{"imports":{"x":"\${b('')}"}}\`);i(\`{"imports":{"y":"\${b('')}"}}\`);Promise.all([${
400
- supportsImportMaps ? 'true,true' : `'x',b('import.meta')`
401
- },'y',${cssModulesEnabled ? `b(\`import"\${b('','text/css')}"with{type:"css"}\`)` : 'false'}, ${
402
- jsonModulesEnabled ? `b(\`import"\${b('{}','text/json')\}"with{type:"json"}\`)` : 'false'
353
+ supportsImportMaps ? 'true' : "'x'"
354
+ },${supportsImportMaps ? "'y'" : false},${supportsImportMaps && cssModulesEnabled ? `b(\`import"\${b('','text/css')}"with{type:"css"}\`)` : 'false'}, ${
355
+ supportsImportMaps && jsonModulesEnabled ? `b(\`import"\${b('{}','text/json')\}"with{type:"json"}\`)` : 'false'
403
356
  },${
404
- wasmModulesEnabled ?
357
+ supportsImportMaps && wasmModulesEnabled ?
405
358
  `b(\`import"\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`)`
406
359
  : 'false'
407
360
  },${
408
- wasmModulesEnabled && sourcePhaseEnabled ?
361
+ supportsImportMaps && wasmModulesEnabled && sourcePhaseEnabled ?
409
362
  `b(\`import source x from "\${b(new Uint8Array(${JSON.stringify(wasmBytes)}),'application/wasm')\}"\`)`
410
363
  : 'false'
411
364
  }].map(x =>typeof x==='string'?import(x).then(()=>true,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<${''}/script>`;
@@ -443,12 +396,12 @@
443
396
  // retrigger onload for Safari only if necessary
444
397
  if (onloadCalledWhileNotReady) doOnload();
445
398
  });
446
- });
399
+ })();
447
400
 
448
401
  /* es-module-lexer 1.6.0 */
449
402
  var ImportType;!function(A){A[A.Static=1]="Static",A[A.Dynamic=2]="Dynamic",A[A.ImportMeta=3]="ImportMeta",A[A.StaticSourcePhase=4]="StaticSourcePhase",A[A.DynamicSourcePhase=5]="DynamicSourcePhase";}(ImportType||(ImportType={}));const A=1===new Uint8Array(new Uint16Array([1]).buffer)[0];function parse(E,g="@"){if(!C)return init.then((()=>parse(E)));const I=E.length+1,w=(C.__heap_base.value||C.__heap_base)+4*I-C.memory.buffer.byteLength;w>0&&C.memory.grow(Math.ceil(w/65536));const K=C.sa(I-1);if((A?B:Q)(E,new Uint16Array(C.memory.buffer,K,I)),!C.parse())throw Object.assign(new Error(`Parse error ${g}:${E.slice(0,C.e()).split("\n").length}:${C.e()-E.lastIndexOf("\n",C.e()-1)}`),{idx:C.e()});const o=[],D=[];for(;C.ri();){const A=C.is(),Q=C.ie(),B=C.it(),g=C.ai(),I=C.id(),w=C.ss(),K=C.se();let D;C.ip()&&(D=k(E.slice(-1===I?A-1:A,-1===I?Q+1:Q))),o.push({n:D,t:B,s:A,e:Q,ss:w,se:K,d:I,a:g});}for(;C.re();){const A=C.es(),Q=C.ee(),B=C.els(),g=C.ele(),I=E.slice(A,Q),w=I[0],K=B<0?void 0:E.slice(B,g),o=K?K[0]:"";D.push({s:A,e:Q,ls:B,le:g,n:'"'===w||"'"===w?k(I):I,ln:'"'===o||"'"===o?k(K):K});}function k(A){try{return (0,eval)(A)}catch(A){}}return [o,D,!!C.f(),!!C.ms()]}function Q(A,Q){const B=A.length;let C=0;for(;C<B;){const B=A.charCodeAt(C);Q[C++]=(255&B)<<8|B>>>8;}}function B(A,Q){const B=A.length;let C=0;for(;C<B;)Q[C]=A.charCodeAt(C++);}let C;const E=()=>{return A="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","undefined"!=typeof Buffer?Buffer.from(A,"base64"):Uint8Array.from(atob(A),(A=>A.charCodeAt(0)));var A;};const init=WebAssembly.compile(E()).then(WebAssembly.instantiate).then((({exports:A})=>{C=A;}));
450
403
 
451
- async function _resolve(id, parentUrl) {
404
+ function _resolve(id, parentUrl = baseUrl) {
452
405
  const urlResolved = resolveIfNotPlainOrUrl(id, parentUrl) || asURL(id);
453
406
  const firstResolved = firstImportMap && resolveImportMap(firstImportMap, urlResolved || id, parentUrl);
454
407
  const composedResolved =
@@ -475,43 +428,49 @@
475
428
 
476
429
  const resolve =
477
430
  resolveHook ?
478
- (id, parentUrl) => {
431
+ (id, parentUrl = baseUrl) => {
479
432
  const result = resolveHook(id, parentUrl, defaultResolve);
480
433
  return result ? { r: result, n: true, N: true } : _resolve(id, parentUrl);
481
434
  }
482
435
  : _resolve;
483
436
 
484
- // supports:
485
- // import('mod');
486
- // import('mod', { opts });
487
- // import('mod', { opts }, parentUrl);
488
- // import('mod', parentUrl);
489
- async function importHandler(id, ...args) {
490
- // parentUrl if present will be the last argument
491
- let parentUrl = args[args.length - 1];
492
- if (typeof parentUrl !== 'string') parentUrl = baseUrl;
493
- // needed for shim check
494
- await initPromise;
495
- if (importHook) await importHook(id, typeof args[1] !== 'string' ? args[1] : {}, parentUrl);
437
+ async function importHandler(id, opts, parentUrl = baseUrl, sourcePhase) {
438
+ await initPromise; // needed for shim check
439
+ if (importHook) await importHook(id, opts, parentUrl);
496
440
  if (shimMode || !baselinePassthrough) {
497
441
  if (hasDocument) processScriptsAndPreloads();
498
442
  legacyAcceptingImportMaps = false;
499
443
  }
500
444
  await importMapPromise;
501
- return (await resolve(id, parentUrl)).r;
445
+ return resolve(id, parentUrl).r;
502
446
  }
503
447
 
504
448
  // import()
505
- async function importShim(...args) {
506
- return topLevelLoad(await importHandler(...args), { credentials: 'same-origin' });
449
+ async function importShim(id, opts, parentUrl) {
450
+ if (typeof opts === 'string') {
451
+ parentUrl = opts;
452
+ opts = undefined;
453
+ }
454
+ // we mock import('./x.css', { with: { type: 'css' }}) support via an inline static reexport
455
+ // because we can't syntactically pass through to dynamic import with a second argument in this libarary
456
+ const url = await importHandler(id, opts, parentUrl);
457
+ const source =
458
+ typeof opts === 'object' && typeof opts.with === 'object' && typeof opts.with.type === 'string' ?
459
+ `export{default}from'${url}'with{type:"${opts.with.type}"}`
460
+ : null;
461
+ return topLevelLoad(url, { credentials: 'same-origin' }, source);
507
462
  }
508
463
 
509
464
  // import.source()
465
+ // (opts not currently supported as no use cases yet)
510
466
  if (sourcePhaseEnabled)
511
- importShim.source = async function importShimSource(...args) {
512
- const url = await importHandler(...args);
467
+ importShim.source = async function importShimSource(specifier, opts, parentUrl) {
468
+ if (typeof opts === 'string') {
469
+ parentUrl = opts;
470
+ opts = undefined;
471
+ }
472
+ const url = await importHandler(specifier, opts, parentUrl);
513
473
  const load = getOrCreateLoad(url, { credentials: 'same-origin' }, null, null);
514
- lastLoad = undefined;
515
474
  if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
516
475
  onpolyfill();
517
476
  firstPolyfillLoad = false;
@@ -533,17 +492,11 @@
533
492
  throw Error(`Unable to resolve specifier '${id}'${fromParent(parentUrl)}`);
534
493
  }
535
494
 
536
- const resolveSync = (id, parentUrl = baseUrl) => {
537
- parentUrl = `${parentUrl}`;
538
- const result = resolveHook && resolveHook(id, parentUrl, defaultResolve);
539
- return result && !result.then ? result : defaultResolve(id, parentUrl);
540
- };
541
-
542
495
  function metaResolve(id, parentUrl = this.url) {
543
- return resolveSync(id, parentUrl);
496
+ return resolve(id, `${parentUrl}`).r;
544
497
  }
545
498
 
546
- importShim.resolve = resolveSync;
499
+ importShim.resolve = (id, parentUrl) => resolve(id, parentUrl).r;
547
500
  importShim.getImportMap = () => JSON.parse(JSON.stringify(composedImportMap));
548
501
  importShim.addImportMap = importMapIn => {
549
502
  if (!shimMode) throw new Error('Unsupported in polyfill mode.');
@@ -575,15 +528,14 @@
575
528
  const initPromise = featureDetectionPromise.then(() => {
576
529
  baselinePassthrough =
577
530
  esmsInitOptions.polyfillEnable !== true &&
578
- supportsDynamicImport &&
579
- supportsImportMeta &&
580
531
  supportsImportMaps &&
581
532
  (!jsonModulesEnabled || supportsJsonType) &&
582
533
  (!cssModulesEnabled || supportsCssType) &&
583
534
  (!wasmModulesEnabled || supportsWasmModules) &&
584
535
  (!sourcePhaseEnabled || supportsSourcePhase) &&
585
536
  (!multipleImportMaps || supportsMultipleImportMaps) &&
586
- !importMapSrc;
537
+ !importMapSrc &&
538
+ !typescriptEnabled;
587
539
  if (sourcePhaseEnabled && typeof WebAssembly !== 'undefined' && !Object.getPrototypeOf(WebAssembly.Module).name) {
588
540
  const s = Symbol();
589
541
  const brand = m =>
@@ -636,7 +588,7 @@
636
588
  });
637
589
 
638
590
  function attachMutationObserver() {
639
- new MutationObserver(mutations => {
591
+ const observer = new MutationObserver(mutations => {
640
592
  for (const mutation of mutations) {
641
593
  if (mutation.type !== 'childList') continue;
642
594
  for (const node of mutation.addedNodes) {
@@ -652,7 +604,9 @@
652
604
  }
653
605
  }
654
606
  }
655
- }).observe(document, { childList: true, subtree: true });
607
+ });
608
+ observer.observe(document, { childList: true });
609
+ observer.observe(document.head, { childList: true });
656
610
  processScriptsAndPreloads();
657
611
  }
658
612
 
@@ -670,29 +624,29 @@
670
624
  // for polyfill case, only dynamic import needs a return value here, and dynamic import will never pass nativelyLoaded
671
625
  if (nativelyLoaded) return null;
672
626
  await lastStaticLoadPromise;
673
- return dynamicImport(source ? createBlob(source) : url, {
674
- errUrl: url || source
675
- });
627
+ return dynamicImport(source ? createBlob(source) : url);
676
628
  }
677
629
  const load = getOrCreateLoad(url, fetchOpts, null, source);
678
630
  linkLoad(load, fetchOpts);
679
631
  const seen = {};
680
632
  await loadAll(load, seen);
681
- lastLoad = undefined;
682
633
  resolveDeps(load, seen);
683
634
  await lastStaticLoadPromise;
684
- if (source && !shimMode && !load.n) {
685
- if (nativelyLoaded) return;
686
- if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
687
- return await dynamicImport(createBlob(source), { errUrl: source });
635
+ if (!shimMode && !load.n) {
636
+ if (nativelyLoaded) {
637
+ return;
638
+ }
639
+ if (source) {
640
+ return await dynamicImport(createBlob(source));
641
+ }
688
642
  }
689
643
  if (firstPolyfillLoad && !shimMode && load.n && nativelyLoaded) {
690
644
  onpolyfill();
691
645
  firstPolyfillLoad = false;
692
646
  }
693
- const module = await dynamicImport(!shimMode && !load.n && nativelyLoaded ? load.u : load.b, { errUrl: load.u });
647
+ const module = await (!shimMode && !load.n && !load.N ? import(load.u) : dynamicImport(load.b, load.u));
694
648
  // if the top-level load is a shell, run its update function
695
- if (load.s) (await dynamicImport(load.s)).u$_(module);
649
+ if (load.s) (await dynamicImport(load.s, load.u)).u$_(module);
696
650
  if (revokeBlobURLs) revokeObjectURLs(Object.keys(seen));
697
651
  // when tla is supported, this should return the tla promise as an actual handle
698
652
  // so readystate can still correspond to the sync subgraph exec completions
@@ -709,7 +663,7 @@
709
663
  if (batchStartIndex > keysLength) return;
710
664
  for (const key of registryKeys.slice(batchStartIndex, batchStartIndex + 100)) {
711
665
  const load = registry[key];
712
- if (load) URL.revokeObjectURL(load.b);
666
+ if (load && load.b) URL.revokeObjectURL(load.b);
713
667
  }
714
668
  batch++;
715
669
  schedule(cleanup);
@@ -720,7 +674,6 @@
720
674
  return `'${url.replace(/'/g, "\\'")}'`;
721
675
  }
722
676
 
723
- let lastLoad;
724
677
  function resolveDeps(load, seen) {
725
678
  if (load.b || !seen[load.u]) return;
726
679
  seen[load.u] = 0;
@@ -735,7 +688,7 @@
735
688
  // use native loader whenever possible (n = needs shim) via executable subgraph passthrough
736
689
  // so long as the module doesn't use dynamic import or unsupported URL mappings (N = should shim)
737
690
  if (!shimMode && !load.n && !load.N) {
738
- load.b = lastLoad = load.u;
691
+ load.b = load.u;
739
692
  load.S = undefined;
740
693
  return;
741
694
  }
@@ -745,8 +698,7 @@
745
698
  // "execution"
746
699
  const source = load.S;
747
700
 
748
- // edge doesnt execute sibling in order, so we fix this up by ensuring all previous executions are explicit dependencies
749
- let resolvedSource = edge && lastLoad ? `import '${lastLoad}';` : '';
701
+ let resolvedSource = '';
750
702
 
751
703
  // once all deps have loaded we can inline the dependency resolution blobs
752
704
  // and define this blob
@@ -763,7 +715,7 @@
763
715
  lastIndex = originalIndex;
764
716
  }
765
717
 
766
- for (const { s: start, ss: statementStart, se: statementEnd, d: dynamicImportIndex, t } of imports) {
718
+ for (const { s: start, e: end, ss: statementStart, se: statementEnd, d: dynamicImportIndex, t, a } of imports) {
767
719
  // source phase
768
720
  if (t === 4) {
769
721
  let { l: depLoad } = load.d[depIndex++];
@@ -771,8 +723,8 @@
771
723
  resolvedSource += 'import ';
772
724
  lastIndex = statementStart + 14;
773
725
  pushStringTo(start - 1);
774
- resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/'${createBlob(`export default importShim._s[${urlJsString(depLoad.r)}]`)}'`;
775
- lastIndex = statementEnd;
726
+ resolvedSource += `/*${source.slice(start - 1, end + 1)}*/'${createBlob(`export default importShim._s[${urlJsString(depLoad.r)}]`)}'`;
727
+ lastIndex = end + 1;
776
728
  }
777
729
  // dependency source replacements
778
730
  else if (dynamicImportIndex === -1) {
@@ -797,15 +749,18 @@
797
749
  }
798
750
  }
799
751
 
752
+ // strip import assertions unless we support them
753
+ const stripAssertion = (!supportsCssType && !supportsJsonType) || !(a > 0);
754
+
800
755
  pushStringTo(start - 1);
801
- resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/'${blobUrl}'`;
756
+ resolvedSource += `/*${source.slice(start - 1, end + 1)}*/'${blobUrl}'`;
802
757
 
803
758
  // circular shell execution
804
759
  if (!cycleShell && depLoad.s) {
805
760
  resolvedSource += `;import*as m$_${depIndex} from'${depLoad.b}';import{u$_ as u$_${depIndex}}from'${depLoad.s}';u$_${depIndex}(m$_${depIndex})`;
806
761
  depLoad.s = undefined;
807
762
  }
808
- lastIndex = statementEnd;
763
+ lastIndex = stripAssertion ? statementEnd : end + 1;
809
764
  }
810
765
  // import.meta
811
766
  else if (dynamicImportIndex === -2) {
@@ -870,7 +825,7 @@
870
825
 
871
826
  if (sourceURLCommentStart === -1) resolvedSource += sourceURLCommentPrefix + load.r;
872
827
 
873
- load.b = lastLoad = createBlob(resolvedSource);
828
+ load.b = createBlob(resolvedSource);
874
829
  load.S = undefined;
875
830
  }
876
831
 
@@ -878,9 +833,10 @@
878
833
  const sourceMapURLCommentPrefix = '\n//# sourceMappingURL=';
879
834
 
880
835
  const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
881
- const wasmContentType = /^(application)\/wasm(;|$)/;
836
+ const wasmContentType = /^application\/wasm(;|$)/;
882
837
  const jsonContentType = /^(text|application)\/json(;|$)/;
883
838
  const cssContentType = /^(text|application)\/css(;|$)/;
839
+ const tsContentType = /^application\/typescript(;|$)|/;
884
840
 
885
841
  const cssUrlRegEx = /url\(\s*(?:(["'])((?:\\.|[^\n\\"'])+)\1|((?:\\.|[^\s,"'()\\])+))\s*\)/g;
886
842
 
@@ -916,6 +872,8 @@
916
872
  return res;
917
873
  }
918
874
 
875
+ let esmsTsTransform;
876
+
919
877
  async function fetchModule(url, fetchOpts, parent) {
920
878
  const mapIntegrity = composedImportMap.integrity[url];
921
879
  const res = await doFetch(
@@ -925,7 +883,7 @@
925
883
  );
926
884
  const r = res.url;
927
885
  const contentType = res.headers.get('content-type');
928
- if (jsContentType.test(contentType)) return { r, s: await res.text(), sp: null, t: 'js' };
886
+ if (jsContentType.test(contentType)) return { r, s: await res.text(), t: 'js' };
929
887
  else if (wasmContentType.test(contentType)) {
930
888
  const module = await (sourceCache[r] || (sourceCache[r] = WebAssembly.compileStreaming(res)));
931
889
  sourceCache[r] = module;
@@ -943,8 +901,7 @@
943
901
  s += `export const ${expt.name} = instance.exports['${expt.name}'];\n`;
944
902
  }
945
903
  return { r, s, t: 'wasm' };
946
- } else if (jsonContentType.test(contentType))
947
- return { r, s: `export default ${await res.text()}`, sp: null, t: 'json' };
904
+ } else if (jsonContentType.test(contentType)) return { r, s: `export default ${await res.text()}`, t: 'json' };
948
905
  else if (cssContentType.test(contentType)) {
949
906
  return {
950
907
  r,
@@ -954,9 +911,16 @@
954
911
  (_match, quotes = '', relUrl1, relUrl2) => `url(${quotes}${resolveUrl(relUrl1 || relUrl2, url)}${quotes})`
955
912
  )
956
913
  )});export default s;`,
957
- ss: null,
958
914
  t: 'css'
959
915
  };
916
+ } else if ((typescriptEnabled && tsContentType.test(contentType)) || url.endsWith('.ts') || url.endsWith('.mts')) {
917
+ const source = await res.text();
918
+ // if we don't have a ts transform hook, try to load it
919
+ if (!esmsTsTransform) {
920
+ ({ transform: esmsTsTransform } = await import(tsTransform));
921
+ }
922
+ const transformed = esmsTsTransform(source, url);
923
+ return { r, s: transformed || source, t: transformed ? 'ts' : 'js' };
960
924
  } else
961
925
  throw Error(
962
926
  `Unsupported Content-Type "${contentType}" loading ${url}${fromParent(parent)}. Modules must be served with a valid MIME type like application/javascript.`
@@ -967,13 +931,15 @@
967
931
  if (
968
932
  (type === 'css' && !cssModulesEnabled) ||
969
933
  (type === 'json' && !jsonModulesEnabled) ||
970
- (type === 'wasm' && !wasmModulesEnabled)
934
+ (type === 'wasm' && !wasmModulesEnabled) ||
935
+ (type === 'ts' && !typescriptEnabled)
971
936
  )
972
- throw featErr(`${t}-modules`);
937
+ throw featErr(`${type}-modules`);
973
938
  return (
974
939
  (type === 'css' && !supportsCssType) ||
975
940
  (type === 'json' && !supportsJsonType) ||
976
- (type === 'wasm' && !supportsWasmModules)
941
+ (type === 'wasm' && !supportsWasmModules) ||
942
+ type === 'ts'
977
943
  );
978
944
  }
979
945
 
@@ -1017,7 +983,7 @@
1017
983
  if (!load.S) {
1018
984
  // preload fetch options override fetch options (race)
1019
985
  ({ r: load.r, s: load.S, t: load.t } = await (fetchCache[url] || fetchModule(url, fetchOpts, parent)));
1020
- if (load.t !== 'js' && !shimMode && isUnsupportedType(load.t)) {
986
+ if (!load.n && load.t !== 'js' && !shimMode && isUnsupportedType(load.t)) {
1021
987
  load.n = true;
1022
988
  }
1023
989
  }
@@ -1041,31 +1007,26 @@
1041
1007
  if (load.L) return;
1042
1008
  load.L = load.f.then(async () => {
1043
1009
  let childFetchOpts = fetchOpts;
1044
- load.d = (
1045
- await Promise.all(
1046
- load.a[0].map(async ({ n, d, t }) => {
1047
- const sourcePhase = t >= 4;
1048
- if (sourcePhase && !sourcePhaseEnabled) throw featErr('source-phase');
1049
- if (
1050
- (d >= 0 && !supportsDynamicImport) ||
1051
- (d === -2 && !supportsImportMeta) ||
1052
- (sourcePhase && !supportsSourcePhase)
1053
- )
1054
- load.n = true;
1055
- if (d !== -1 || !n) return;
1056
- const resolved = await resolve(n, load.r || load.u);
1057
- if (resolved.n) load.n = true;
1058
- if (d >= 0 || resolved.N) load.N = true;
1059
- if (d !== -1) return;
1060
- if (skip && skip(resolved.r) && !sourcePhase) return { l: { b: resolved.r }, s: false };
1061
- if (childFetchOpts.integrity) childFetchOpts = Object.assign({}, childFetchOpts, { integrity: undefined });
1062
- const child = { l: getOrCreateLoad(resolved.r, childFetchOpts, load.r, null), s: sourcePhase };
1063
- if (!child.s) linkLoad(child.l, fetchOpts);
1064
- // load, sourcePhase
1065
- return child;
1066
- })
1067
- )
1068
- ).filter(l => l);
1010
+ load.d = load.a[0]
1011
+ .map(({ n, d, t }) => {
1012
+ const sourcePhase = t >= 4;
1013
+ if (sourcePhase) {
1014
+ if (!sourcePhaseEnabled) throw featErr('source-phase');
1015
+ if (!supportsSourcePhase) load.n = true;
1016
+ }
1017
+ if (d !== -1 || !n) return;
1018
+ const resolved = resolve(n, load.r || load.u);
1019
+ if (resolved.n) load.n = true;
1020
+ if (d >= 0 || resolved.N) load.N = true;
1021
+ if (d !== -1) return;
1022
+ if (skip && skip(resolved.r) && !sourcePhase) return { l: { b: resolved.r }, s: false };
1023
+ if (childFetchOpts.integrity) childFetchOpts = Object.assign({}, childFetchOpts, { integrity: undefined });
1024
+ const child = { l: getOrCreateLoad(resolved.r, childFetchOpts, load.r, null), s: sourcePhase };
1025
+ if (!child.s) linkLoad(child.l, fetchOpts);
1026
+ // load, sourcePhase
1027
+ return child;
1028
+ })
1029
+ .filter(l => l);
1069
1030
  });
1070
1031
  }
1071
1032
 
@@ -1150,7 +1111,6 @@
1150
1111
  );
1151
1112
  })
1152
1113
  .catch(e => {
1153
- console.log(e);
1154
1114
  if (e instanceof SyntaxError)
1155
1115
  e = new Error(`Unable to parse import map ${e.message} in: ${script.src || script.innerHTML}`);
1156
1116
  throwError(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "es-module-shims",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "Shims for the latest ES module features",
5
5
  "main": "dist/es-module-shims.js",
6
6
  "exports": {
@@ -15,19 +15,23 @@
15
15
  "./wasm": {
16
16
  "types": "./index.d.ts",
17
17
  "default": "./dist/es-module-shims.wasm.js"
18
- }
18
+ },
19
+ "./typescript-transform": "./dist/es-module-shims-typescript.js"
19
20
  },
20
21
  "types": "index.d.ts",
21
22
  "type": "module",
22
23
  "files": [
23
- "CHANGELOG.md",
24
- "dist",
24
+ "dist/es-module-shims.debug.js",
25
+ "dist/es-module-shims.js",
26
+ "dist/es-module-shims.wasm.js",
27
+ "dist/es-module-shims-typescript.js",
25
28
  "index.d.ts"
26
29
  ],
27
30
  "author": "Guy Bedford",
28
31
  "license": "MIT",
29
32
  "devDependencies": {
30
33
  "@rollup/plugin-replace": "^2.4.2",
34
+ "amaro": "^0.1.8",
31
35
  "es-module-lexer": "1.6.0",
32
36
  "kleur": "^4.1.4",
33
37
  "mime-types": "^2.1.33",