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.
- package/README.md +44 -12
- package/dist/es-module-shims-typescript.js +546 -0
- package/dist/es-module-shims.debug.js +136 -174
- package/dist/es-module-shims.js +126 -166
- package/dist/es-module-shims.wasm.js +125 -165
- package/package.json +8 -4
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
/* ES Module Shims Wasm 2.0.
|
|
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
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const
|
|
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 =
|
|
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
|
-
|
|
308
|
+
import(createBlob(`import"${createBlob('', 'text/css')}"with{type:"css"}`)).then(
|
|
356
309
|
() => (supportsCssType = true),
|
|
357
310
|
noop
|
|
358
311
|
),
|
|
359
312
|
jsonModulesEnabled &&
|
|
360
|
-
|
|
313
|
+
import(createBlob(`import"${createBlob('{}', 'text/json')}"with{type:"json"}`)).then(
|
|
361
314
|
() => (supportsJsonType = true),
|
|
362
315
|
noop
|
|
363
316
|
),
|
|
364
317
|
wasmModulesEnabled &&
|
|
365
|
-
|
|
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
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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
|
|
401
|
-
}
|
|
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
|
-
|
|
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
|
-
|
|
485
|
-
|
|
486
|
-
|
|
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
|
|
445
|
+
return resolve(id, parentUrl).r;
|
|
502
446
|
}
|
|
503
447
|
|
|
504
448
|
// import()
|
|
505
|
-
async function importShim(
|
|
506
|
-
|
|
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(
|
|
512
|
-
|
|
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
|
|
496
|
+
return resolve(id, `${parentUrl}`).r;
|
|
544
497
|
}
|
|
545
498
|
|
|
546
|
-
importShim.resolve =
|
|
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
|
-
})
|
|
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 (
|
|
685
|
-
if (nativelyLoaded)
|
|
686
|
-
|
|
687
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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,
|
|
775
|
-
lastIndex =
|
|
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,
|
|
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 =
|
|
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 = /^
|
|
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(),
|
|
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(`${
|
|
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
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
if (
|
|
1049
|
-
if (
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
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.
|
|
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
|
-
"
|
|
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",
|