@wordpress/interactivity-router 2.25.0 → 2.26.0

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.
Files changed (74) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +22 -0
  3. package/build/assets/dynamic-importmap/fetch.js +60 -0
  4. package/build/assets/dynamic-importmap/fetch.js.map +1 -0
  5. package/build/assets/dynamic-importmap/index.js +91 -0
  6. package/build/assets/dynamic-importmap/index.js.map +1 -0
  7. package/build/assets/dynamic-importmap/loader.js +286 -0
  8. package/build/assets/dynamic-importmap/loader.js.map +1 -0
  9. package/build/assets/dynamic-importmap/resolver.js +220 -0
  10. package/build/assets/dynamic-importmap/resolver.js.map +1 -0
  11. package/build/assets/script-modules.js +64 -0
  12. package/build/assets/script-modules.js.map +1 -0
  13. package/build/assets/scs.js +62 -0
  14. package/build/assets/scs.js.map +1 -0
  15. package/build/assets/styles.js +246 -0
  16. package/build/assets/styles.js.map +1 -0
  17. package/build/full-page.js +43 -0
  18. package/build/full-page.js.map +1 -0
  19. package/build/index.js +140 -38
  20. package/build/index.js.map +1 -1
  21. package/build-module/assets/dynamic-importmap/fetch.js +54 -0
  22. package/build-module/assets/dynamic-importmap/fetch.js.map +1 -0
  23. package/build-module/assets/dynamic-importmap/index.js +72 -0
  24. package/build-module/assets/dynamic-importmap/index.js.map +1 -0
  25. package/build-module/assets/dynamic-importmap/loader.js +279 -0
  26. package/build-module/assets/dynamic-importmap/loader.js.map +1 -0
  27. package/build-module/assets/dynamic-importmap/resolver.js +213 -0
  28. package/build-module/assets/dynamic-importmap/resolver.js.map +1 -0
  29. package/build-module/assets/script-modules.js +55 -0
  30. package/build-module/assets/script-modules.js.map +1 -0
  31. package/build-module/assets/scs.js +56 -0
  32. package/build-module/assets/scs.js.map +1 -0
  33. package/build-module/assets/styles.js +235 -0
  34. package/build-module/assets/styles.js.map +1 -0
  35. package/build-module/full-page.js +39 -0
  36. package/build-module/full-page.js.map +1 -0
  37. package/build-module/index.js +142 -38
  38. package/build-module/index.js.map +1 -1
  39. package/build-types/assets/dynamic-importmap/fetch.d.ts +30 -0
  40. package/build-types/assets/dynamic-importmap/fetch.d.ts.map +1 -0
  41. package/build-types/assets/dynamic-importmap/index.d.ts +42 -0
  42. package/build-types/assets/dynamic-importmap/index.d.ts.map +1 -0
  43. package/build-types/assets/dynamic-importmap/loader.d.ts +68 -0
  44. package/build-types/assets/dynamic-importmap/loader.d.ts.map +1 -0
  45. package/build-types/assets/dynamic-importmap/resolver.d.ts +35 -0
  46. package/build-types/assets/dynamic-importmap/resolver.d.ts.map +1 -0
  47. package/build-types/assets/script-modules.d.ts +26 -0
  48. package/build-types/assets/script-modules.d.ts.map +1 -0
  49. package/build-types/assets/scs.d.ts +24 -0
  50. package/build-types/assets/scs.d.ts.map +1 -0
  51. package/build-types/assets/styles.d.ts +69 -0
  52. package/build-types/assets/styles.d.ts.map +1 -0
  53. package/build-types/full-page.d.ts +3 -0
  54. package/build-types/full-page.d.ts.map +1 -0
  55. package/build-types/index.d.ts +4 -5
  56. package/build-types/index.d.ts.map +1 -1
  57. package/package.json +9 -5
  58. package/src/assets/dynamic-importmap/fetch.ts +58 -0
  59. package/src/assets/dynamic-importmap/index.ts +87 -0
  60. package/src/assets/dynamic-importmap/loader.ts +366 -0
  61. package/src/assets/dynamic-importmap/resolver.ts +292 -0
  62. package/src/assets/script-modules.ts +69 -0
  63. package/src/assets/scs.ts +61 -0
  64. package/src/assets/styles.ts +272 -0
  65. package/src/assets/test/scs.test.ts +367 -0
  66. package/src/assets/test/styles.test.ts +758 -0
  67. package/src/full-page.ts +53 -0
  68. package/src/index.ts +165 -45
  69. package/tsconfig.full-page.json +12 -0
  70. package/tsconfig.full-page.tsbuildinfo +1 -0
  71. package/tsconfig.json +9 -4
  72. package/tsconfig.main.json +21 -0
  73. package/tsconfig.main.tsbuildinfo +1 -0
  74. package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 2.26.0 (2025-06-25)
6
+
7
+ ### New Features
8
+
9
+ - Add support for new router regions with `attachTo` from new pages. ([70421](https://github.com/WordPress/gutenberg/pull/70421))
10
+
11
+ ### Enhancements
12
+
13
+ - Export `NavigateOptions` and `PrefetchOptions` types. ([#70315](https://github.com/WordPress/gutenberg/pull/70315))
14
+ - Support new styles and script modules on client-side navigation, including a new full-page client-side navigation mode. ([#70353](https://github.com/WordPress/gutenberg/pull/70353))
15
+ - Introduce `AsyncAction` and `TypeYield` type helpers. ([#70422](https://github.com/WordPress/gutenberg/pull/70422))
16
+
17
+ ### Bug Fixes
18
+
19
+ - Prevents duplicating nested router regions after a client-side navigation. ([#70302](https://github.com/WordPress/gutenberg/pull/70302))
20
+ - Fix dynamic imports on new visited pages. ([#70489](https://github.com/WordPress/gutenberg/pull/70489))
21
+
5
22
  ## 2.25.0 (2025-06-04)
6
23
 
7
24
  ## 2.24.0 (2025-05-22)
package/README.md CHANGED
@@ -72,6 +72,8 @@ const { state, actions } = store( 'core/router', {
72
72
 
73
73
  It defines a region that is updated on navigation. It requires a unique ID as the value and can only be used in root interactive elements, i.e., elements with `data-wp-interactive` that are not nested inside other elements with `data-wp-interactive`.
74
74
 
75
+ The value can be a string with the region ID, or a JSON object containing the `id` and an optional `attachTo` property.
76
+
75
77
  Example:
76
78
 
77
79
  ```html
@@ -85,6 +87,26 @@ Example:
85
87
  </div>
86
88
  ```
87
89
 
90
+ The `attachTo` property is a CSS selector that points to the parent element where the new router region should be rendered. This is useful for regions that may not exist on the initial page but are present on subsequent pages, like a modal or an overlay.
91
+
92
+ When navigating between pages:
93
+
94
+ - If a region exists on both the current and the new page, its content is updated. `attachTo` is ignored in this case.
95
+ - If a region without `attachTo` exists on the new page but not on the current one, it is not added to the DOM.
96
+ - If a region with `attachTo` exists on the new page but not on the current one, it is created and appended to the parent element specified in `attachTo`.
97
+ - If a region exists on the current page but not on the new one, it is removed from the DOM. `attachTo` is ignored in this case.
98
+
99
+ Example with `attachTo`:
100
+
101
+ ```html
102
+ <div
103
+ data-wp-interactive="myblock"
104
+ data-wp-router-region='{ "id": "myblock/overlay", "attachTo": "body" }'
105
+ >
106
+ I'm in a new region!
107
+ </div>
108
+ ```
109
+
88
110
  ### Actions
89
111
 
90
112
  #### `navigate`
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchModule = fetchModule;
7
+ /**
8
+ * This code is derived from the following projects:
9
+ *
10
+ * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)
11
+ * 2. es-module-shims (https://github.com/guybedford/es-module-shims)
12
+ *
13
+ * The original implementation was created by Guy Bedford in es-module-shims,
14
+ * then adapted by Mark Keller in dynamic-importmap, and further modified
15
+ * for use in this project.
16
+ *
17
+ * Both projects are licensed under the MIT license.
18
+ *
19
+ * MIT License: https://opensource.org/licenses/MIT
20
+ */
21
+
22
+ /**
23
+ * Internal dependencies
24
+ */
25
+
26
+ const fetching = (url, parent) => {
27
+ return ` fetching ${url}${parent ? ` from ${parent}` : ''}`;
28
+ };
29
+ const jsContentType = /^(text|application)\/(x-)?javascript(;|$)/;
30
+
31
+ /**
32
+ * Fetches the passed module URL and return the corresponding `ModuleLoad`
33
+ * instance. If the passed URL does not point to a JS file, the function
34
+ * throws and error.
35
+ *
36
+ * @param url Module URL.
37
+ * @param fetchOpts Fetch init options.
38
+ * @param parent Parent module URL referencing this URL (if any).
39
+ * @return Promise with a `ModuleLoad` instance.
40
+ */
41
+ async function fetchModule(url, fetchOpts, parent) {
42
+ let res;
43
+ try {
44
+ res = await fetch(url, fetchOpts);
45
+ } catch (e) {
46
+ throw Error(`Network error${fetching(url, parent)}.`);
47
+ }
48
+ if (!res.ok) {
49
+ throw Error(`Error ${res.status}${fetching(url, parent)}.`);
50
+ }
51
+ const contentType = res.headers.get('content-type');
52
+ if (!jsContentType.test(contentType)) {
53
+ throw Error(`Bad Content-Type "${contentType}"${fetching(url, parent)}.`);
54
+ }
55
+ return {
56
+ responseUrl: res.url,
57
+ source: await res.text()
58
+ };
59
+ }
60
+ //# sourceMappingURL=fetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fetching","url","parent","jsContentType","fetchModule","fetchOpts","res","fetch","e","Error","ok","status","contentType","headers","get","test","responseUrl","source","text"],"sources":["@wordpress/interactivity-router/src/assets/dynamic-importmap/fetch.ts"],"sourcesContent":["/**\n * This code is derived from the following projects:\n *\n * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)\n * 2. es-module-shims (https://github.com/guybedford/es-module-shims)\n *\n * The original implementation was created by Guy Bedford in es-module-shims,\n * then adapted by Mark Keller in dynamic-importmap, and further modified\n * for use in this project.\n *\n * Both projects are licensed under the MIT license.\n *\n * MIT License: https://opensource.org/licenses/MIT\n */\n\n/**\n * Internal dependencies\n */\nimport { type ModuleLoad } from './loader';\n\nconst fetching = ( url: string, parent?: string ) => {\n\treturn ` fetching ${ url }${ parent ? ` from ${ parent }` : '' }`;\n};\n\nconst jsContentType = /^(text|application)\\/(x-)?javascript(;|$)/;\n\n/**\n * Fetches the passed module URL and return the corresponding `ModuleLoad`\n * instance. If the passed URL does not point to a JS file, the function\n * throws and error.\n *\n * @param url Module URL.\n * @param fetchOpts Fetch init options.\n * @param parent Parent module URL referencing this URL (if any).\n * @return Promise with a `ModuleLoad` instance.\n */\nexport async function fetchModule(\n\turl: string,\n\tfetchOpts: RequestInit,\n\tparent: string\n): Promise< ModuleLoad > {\n\tlet res: Response;\n\ttry {\n\t\tres = await fetch( url, fetchOpts );\n\t} catch ( e ) {\n\t\tthrow Error( `Network error${ fetching( url, parent ) }.` );\n\t}\n\tif ( ! res.ok ) {\n\t\tthrow Error( `Error ${ res.status }${ fetching( url, parent ) }.` );\n\t}\n\tconst contentType = res.headers.get( 'content-type' );\n\tif ( ! jsContentType.test( contentType ) ) {\n\t\tthrow Error(\n\t\t\t`Bad Content-Type \"${ contentType }\"${ fetching( url, parent ) }.`\n\t\t);\n\t}\n\treturn { responseUrl: res.url, source: await res.text() };\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAGA,MAAMA,QAAQ,GAAGA,CAAEC,GAAW,EAAEC,MAAe,KAAM;EACpD,OAAO,aAAcD,GAAG,GAAKC,MAAM,GAAG,SAAUA,MAAM,EAAG,GAAG,EAAE,EAAG;AAClE,CAAC;AAED,MAAMC,aAAa,GAAG,2CAA2C;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,WAAWA,CAChCH,GAAW,EACXI,SAAsB,EACtBH,MAAc,EACU;EACxB,IAAII,GAAa;EACjB,IAAI;IACHA,GAAG,GAAG,MAAMC,KAAK,CAAEN,GAAG,EAAEI,SAAU,CAAC;EACpC,CAAC,CAAC,OAAQG,CAAC,EAAG;IACb,MAAMC,KAAK,CAAE,gBAAiBT,QAAQ,CAAEC,GAAG,EAAEC,MAAO,CAAC,GAAK,CAAC;EAC5D;EACA,IAAK,CAAEI,GAAG,CAACI,EAAE,EAAG;IACf,MAAMD,KAAK,CAAE,SAAUH,GAAG,CAACK,MAAM,GAAKX,QAAQ,CAAEC,GAAG,EAAEC,MAAO,CAAC,GAAK,CAAC;EACpE;EACA,MAAMU,WAAW,GAAGN,GAAG,CAACO,OAAO,CAACC,GAAG,CAAE,cAAe,CAAC;EACrD,IAAK,CAAEX,aAAa,CAACY,IAAI,CAAEH,WAAY,CAAC,EAAG;IAC1C,MAAMH,KAAK,CACV,qBAAsBG,WAAW,IAAMZ,QAAQ,CAAEC,GAAG,EAAEC,MAAO,CAAC,GAC/D,CAAC;EACF;EACA,OAAO;IAAEc,WAAW,EAAEV,GAAG,CAACL,GAAG;IAAEgB,MAAM,EAAE,MAAMX,GAAG,CAACY,IAAI,CAAC;EAAE,CAAC;AAC1D","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "importPreloadedModule", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _loader.importPreloadedModule;
10
+ }
11
+ });
12
+ exports.importWithMap = importWithMap;
13
+ Object.defineProperty(exports, "initialImportMap", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _loader.initialImportMap;
17
+ }
18
+ });
19
+ exports.preloadWithMap = preloadWithMap;
20
+ var _resolver = require("./resolver");
21
+ var _loader = require("./loader");
22
+ /**
23
+ * This code is derived from the following projects:
24
+ *
25
+ * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)
26
+ * 2. es-module-shims (https://github.com/guybedford/es-module-shims)
27
+ *
28
+ * The original implementation was created by Guy Bedford in es-module-shims,
29
+ * then adapted by Mark Keller in dynamic-importmap, and further modified
30
+ * for use in this project.
31
+ *
32
+ * Both projects are licensed under the MIT license.
33
+ *
34
+ * MIT License: https://opensource.org/licenses/MIT
35
+ */
36
+
37
+ /**
38
+ * Internal dependencies
39
+ */
40
+
41
+ // TODO: check if this baseURI should change per document, and so
42
+ // it need to be passed as a parameter to methods like `importWithMap`
43
+ // and `preloadWithMap`.
44
+ const baseUrl = document.baseURI;
45
+ const pageBaseUrl = baseUrl;
46
+ Object.defineProperty(self, 'wpInteractivityRouterImport', {
47
+ value: importShim,
48
+ writable: false,
49
+ enumerable: false,
50
+ configurable: false
51
+ });
52
+ async function importShim(id) {
53
+ await _loader.initPromise;
54
+ return (0, _loader.topLevelLoad)((0, _resolver.resolve)(id, pageBaseUrl), {
55
+ credentials: 'same-origin'
56
+ });
57
+ }
58
+
59
+ /**
60
+ * Imports the module with the passed ID.
61
+ *
62
+ * The module is resolved against the internal dynamic import map,
63
+ * extended with the passed import map.
64
+ *
65
+ * @param id Module ID.
66
+ * @param importMapIn Import map.
67
+ * @return Resolved module.
68
+ */
69
+ async function importWithMap(id, importMapIn) {
70
+ (0, _resolver.addImportMap)(importMapIn);
71
+ return importShim(id);
72
+ }
73
+
74
+ /**
75
+ * Preloads the module with the passed ID along with its dependencies.
76
+ *
77
+ * The module is resolved against the internal dynamic import map,
78
+ * extended with the passed import map.
79
+ *
80
+ * @param id Module ID.
81
+ * @param importMapIn Import map.
82
+ * @return Resolved `ModuleLoad` instance.
83
+ */
84
+ async function preloadWithMap(id, importMapIn) {
85
+ (0, _resolver.addImportMap)(importMapIn);
86
+ await _loader.initPromise;
87
+ return (0, _loader.preloadModule)((0, _resolver.resolve)(id, pageBaseUrl), {
88
+ credentials: 'same-origin'
89
+ });
90
+ }
91
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_resolver","require","_loader","baseUrl","document","baseURI","pageBaseUrl","Object","defineProperty","self","value","importShim","writable","enumerable","configurable","id","initPromise","topLevelLoad","resolve","credentials","importWithMap","importMapIn","addImportMap","preloadWithMap","preloadModule"],"sources":["@wordpress/interactivity-router/src/assets/dynamic-importmap/index.ts"],"sourcesContent":["/**\n * This code is derived from the following projects:\n *\n * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)\n * 2. es-module-shims (https://github.com/guybedford/es-module-shims)\n *\n * The original implementation was created by Guy Bedford in es-module-shims,\n * then adapted by Mark Keller in dynamic-importmap, and further modified\n * for use in this project.\n *\n * Both projects are licensed under the MIT license.\n *\n * MIT License: https://opensource.org/licenses/MIT\n */\n\n/**\n * Internal dependencies\n */\nimport { addImportMap, resolve } from './resolver';\nimport { initPromise, topLevelLoad, preloadModule } from './loader';\n\ntype ImportMap = {\n\timports?: Record< string, string >;\n\tscopes?: Record< string, Record< string, string > >;\n};\n\n// TODO: check if this baseURI should change per document, and so\n// it need to be passed as a parameter to methods like `importWithMap`\n// and `preloadWithMap`.\nconst baseUrl = document.baseURI;\nconst pageBaseUrl = baseUrl;\n\nObject.defineProperty( self, 'wpInteractivityRouterImport', {\n\tvalue: importShim,\n\twritable: false,\n\tenumerable: false,\n\tconfigurable: false,\n} );\n\nasync function importShim< Module = unknown >( id: string ) {\n\tawait initPromise;\n\treturn topLevelLoad< Module >( resolve( id, pageBaseUrl ), {\n\t\tcredentials: 'same-origin',\n\t} );\n}\n\n/**\n * Imports the module with the passed ID.\n *\n * The module is resolved against the internal dynamic import map,\n * extended with the passed import map.\n *\n * @param id Module ID.\n * @param importMapIn Import map.\n * @return Resolved module.\n */\nexport async function importWithMap< Module = unknown >(\n\tid: string,\n\timportMapIn: ImportMap\n) {\n\taddImportMap( importMapIn );\n\treturn importShim< Module >( id );\n}\n\n/**\n * Preloads the module with the passed ID along with its dependencies.\n *\n * The module is resolved against the internal dynamic import map,\n * extended with the passed import map.\n *\n * @param id Module ID.\n * @param importMapIn Import map.\n * @return Resolved `ModuleLoad` instance.\n */\nexport async function preloadWithMap( id: string, importMapIn: ImportMap ) {\n\taddImportMap( importMapIn );\n\tawait initPromise;\n\treturn preloadModule( resolve( id, pageBaseUrl ), {\n\t\tcredentials: 'same-origin',\n\t} );\n}\n\nexport {\n\tinitialImportMap,\n\timportPreloadedModule,\n\ttype ModuleLoad,\n} from './loader';\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AASA;AACA;AACA;AACA,MAAME,OAAO,GAAGC,QAAQ,CAACC,OAAO;AAChC,MAAMC,WAAW,GAAGH,OAAO;AAE3BI,MAAM,CAACC,cAAc,CAAEC,IAAI,EAAE,6BAA6B,EAAE;EAC3DC,KAAK,EAAEC,UAAU;EACjBC,QAAQ,EAAE,KAAK;EACfC,UAAU,EAAE,KAAK;EACjBC,YAAY,EAAE;AACf,CAAE,CAAC;AAEH,eAAeH,UAAUA,CAAsBI,EAAU,EAAG;EAC3D,MAAMC,mBAAW;EACjB,OAAO,IAAAC,oBAAY,EAAY,IAAAC,iBAAO,EAAEH,EAAE,EAAET,WAAY,CAAC,EAAE;IAC1Da,WAAW,EAAE;EACd,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,aAAaA,CAClCL,EAAU,EACVM,WAAsB,EACrB;EACD,IAAAC,sBAAY,EAAED,WAAY,CAAC;EAC3B,OAAOV,UAAU,CAAYI,EAAG,CAAC;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeQ,cAAcA,CAAER,EAAU,EAAEM,WAAsB,EAAG;EAC1E,IAAAC,sBAAY,EAAED,WAAY,CAAC;EAC3B,MAAML,mBAAW;EACjB,OAAO,IAAAQ,qBAAa,EAAE,IAAAN,iBAAO,EAAEH,EAAE,EAAET,WAAY,CAAC,EAAE;IACjDa,WAAW,EAAE;EACd,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,286 @@
1
+ /* wp:polyfill */
2
+ "use strict";
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.importPreloadedModule = importPreloadedModule;
8
+ exports.initialImportMap = exports.initPromise = void 0;
9
+ exports.preloadModule = preloadModule;
10
+ exports.registry = void 0;
11
+ exports.topLevelLoad = topLevelLoad;
12
+ var lexer = _interopRequireWildcard(require("es-module-lexer"));
13
+ var _fetch = require("./fetch");
14
+ var _resolver = require("./resolver");
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } /**
17
+ * This code is derived from the following projects:
18
+ *
19
+ * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)
20
+ * 2. es-module-shims (https://github.com/guybedford/es-module-shims)
21
+ *
22
+ * The original implementation was created by Guy Bedford in es-module-shims,
23
+ * then adapted by Mark Keller in dynamic-importmap, and further modified
24
+ * for use in this project.
25
+ *
26
+ * Both projects are licensed under the MIT license.
27
+ *
28
+ * MIT License: https://opensource.org/licenses/MIT
29
+ */ /**
30
+ * External dependencies
31
+ */ /**
32
+ * Internal dependencies
33
+ */
34
+ const initPromise = exports.initPromise = lexer.init;
35
+
36
+ /**
37
+ * Script element containing the initial page's import map.
38
+ */
39
+ const initialImportMapElement = window.document.querySelector('script#wp-importmap[type=importmap]');
40
+
41
+ /**
42
+ * Data from the initial page's import map.
43
+ *
44
+ * Pages containing any of the imports present on the original page
45
+ * in their import maps should ignore them, as those imports would
46
+ * be handled natively.
47
+ */
48
+ const initialImportMap = exports.initialImportMap = initialImportMapElement ? JSON.parse(initialImportMapElement.text) : {
49
+ imports: {},
50
+ scopes: {}
51
+ };
52
+ const skip = id => Object.keys(initialImportMap.imports).includes(id);
53
+ const fetchCache = {};
54
+ const registry = exports.registry = {};
55
+
56
+ // Init registry with importamp content.
57
+ Object.keys(initialImportMap.imports).forEach(id => {
58
+ registry[id] = {
59
+ blobUrl: id
60
+ };
61
+ });
62
+ async function loadAll(load, seen) {
63
+ if (load.blobUrl || seen[load.url]) {
64
+ return;
65
+ }
66
+ seen[load.url] = 1;
67
+ await load.linkPromise;
68
+ await Promise.all(load.deps.map(dep => loadAll(dep, seen)));
69
+ }
70
+ function urlJsString(url) {
71
+ return `'${url.replace(/'/g, "\\'")}'`;
72
+ }
73
+ const createBlob = (source, type = 'text/javascript') => URL.createObjectURL(new Blob([source], {
74
+ type
75
+ }));
76
+ function resolveDeps(load, seen) {
77
+ if (load.blobUrl || !seen[load.url]) {
78
+ return;
79
+ }
80
+ seen[load.url] = 0;
81
+ for (const dep of load.deps) {
82
+ resolveDeps(dep, seen);
83
+ }
84
+ const [imports, exports] = load.analysis;
85
+ const source = load.source;
86
+ let resolvedSource = '';
87
+ if (!imports.length) {
88
+ resolvedSource += source;
89
+ } else {
90
+ let lastIndex = 0;
91
+ let depIndex = 0;
92
+ const dynamicImportEndStack = [];
93
+ function pushStringTo(originalIndex) {
94
+ while (dynamicImportEndStack.length && dynamicImportEndStack[dynamicImportEndStack.length - 1] < originalIndex) {
95
+ const dynamicImportEnd = dynamicImportEndStack.pop();
96
+ resolvedSource += `${source.slice(lastIndex, dynamicImportEnd)}, ${urlJsString(load.responseUrl)}`;
97
+ lastIndex = dynamicImportEnd;
98
+ }
99
+ resolvedSource += source.slice(lastIndex, originalIndex);
100
+ lastIndex = originalIndex;
101
+ }
102
+ for (const {
103
+ s: start,
104
+ ss: statementStart,
105
+ se: statementEnd,
106
+ d: dynamicImportIndex
107
+ } of imports) {
108
+ // static import
109
+ if (dynamicImportIndex === -1) {
110
+ const depLoad = load.deps[depIndex++];
111
+ let blobUrl = depLoad.blobUrl;
112
+ const cycleShell = !blobUrl;
113
+ if (cycleShell) {
114
+ // Circular shell creation
115
+ if (!(blobUrl = depLoad.shellUrl)) {
116
+ blobUrl = depLoad.shellUrl = createBlob(`export function u$_(m){${depLoad.analysis[1].map(({
117
+ s,
118
+ e
119
+ }, i) => {
120
+ const q = depLoad.source[s] === '"' || depLoad.source[s] === "'";
121
+ return `e$_${i}=m${q ? `[` : '.'}${depLoad.source.slice(s, e)}${q ? `]` : ''}`;
122
+ }).join(',')}}${depLoad.analysis[1].length ? `let ${depLoad.analysis[1].map((_, i) => `e$_${i}`).join(',')};` : ''}export {${depLoad.analysis[1].map(({
123
+ s,
124
+ e
125
+ }, i) => `e$_${i} as ${depLoad.source.slice(s, e)}`).join(',')}}\n//# sourceURL=${depLoad.responseUrl}?cycle`);
126
+ }
127
+ }
128
+ pushStringTo(start - 1);
129
+ resolvedSource += `/*${source.slice(start - 1, statementEnd)}*/${urlJsString(blobUrl)}`;
130
+
131
+ // circular shell execution
132
+ if (!cycleShell && depLoad.shellUrl) {
133
+ resolvedSource += `;import*as m$_${depIndex} from'${depLoad.blobUrl}';import{u$_ as u$_${depIndex}}from'${depLoad.shellUrl}';u$_${depIndex}(m$_${depIndex})`;
134
+ depLoad.shellUrl = undefined;
135
+ }
136
+ lastIndex = statementEnd;
137
+ }
138
+ // import.meta
139
+ else if (dynamicImportIndex === -2) {
140
+ throw Error('The import.meta property is not supported.');
141
+ }
142
+ // dynamic import
143
+ else {
144
+ pushStringTo(statementStart);
145
+ resolvedSource += `wpInteractivityRouterImport(`;
146
+ dynamicImportEndStack.push(statementEnd - 1);
147
+ lastIndex = start;
148
+ }
149
+ }
150
+
151
+ // progressive cycle binding updates
152
+ if (load.shellUrl) {
153
+ resolvedSource += `\n;import{u$_}from'${load.shellUrl}';try{u$_({${exports.filter(e => e.ln).map(({
154
+ s,
155
+ e,
156
+ ln
157
+ }) => `${source.slice(s, e)}:${ln}`).join(',')}})}catch(_){};\n`;
158
+ }
159
+ pushStringTo(source.length);
160
+ }
161
+
162
+ // ensure we have a proper sourceURL
163
+ let hasSourceURL = false;
164
+ resolvedSource = resolvedSource.replace(sourceMapURLRegEx, (match, isMapping, url) => {
165
+ hasSourceURL = !isMapping;
166
+ return match.replace(url, () => new URL(url, load.responseUrl).toString());
167
+ });
168
+ if (!hasSourceURL) {
169
+ resolvedSource += '\n//# sourceURL=' + load.responseUrl;
170
+ }
171
+ load.blobUrl = createBlob(resolvedSource);
172
+ load.source = undefined; // free memory
173
+ }
174
+ const sourceMapURLRegEx = /\n\/\/# source(Mapping)?URL=([^\n]+)\s*((;|\/\/[^#][^\n]*)\s*)*$/;
175
+ function getOrCreateLoad(url, fetchOpts, parent) {
176
+ let load = registry[url];
177
+ if (load) {
178
+ return load;
179
+ }
180
+ load = {
181
+ url
182
+ };
183
+ if (registry[url]) {
184
+ // If there's a naming conflict, keep incrementing until unique
185
+ let i = 0;
186
+ while (registry[load.url + ++i]) {
187
+ /* no-op */
188
+ }
189
+ load.url += i;
190
+ }
191
+ registry[load.url] = load;
192
+ load.fetchPromise = (async () => {
193
+ let source;
194
+ ({
195
+ responseUrl: load.responseUrl,
196
+ source: source
197
+ } = await (fetchCache[url] || (0, _fetch.fetchModule)(url, fetchOpts, parent)));
198
+ try {
199
+ load.analysis = lexer.parse(source, load.url);
200
+ } catch (e) {
201
+ // eslint-disable-next-line no-console
202
+ console.error(e);
203
+ load.analysis = [[], [], false, false];
204
+ }
205
+ load.source = source;
206
+ return load;
207
+ })();
208
+ load.linkPromise = load.fetchPromise.then(async () => {
209
+ let childFetchOpts = fetchOpts;
210
+ load.deps = (await Promise.all(load.analysis[0].map(async ({
211
+ n,
212
+ d
213
+ }) => {
214
+ if (d !== -1 || !n) {
215
+ return undefined;
216
+ }
217
+ const responseUrl = (0, _resolver.resolve)(n, load.responseUrl || load.url);
218
+ if (skip && skip(responseUrl)) {
219
+ return {
220
+ blobUrl: responseUrl
221
+ };
222
+ }
223
+ // remove integrity for child fetches
224
+ if (childFetchOpts.integrity) {
225
+ childFetchOpts = {
226
+ ...childFetchOpts,
227
+ integrity: undefined
228
+ };
229
+ }
230
+ return getOrCreateLoad(responseUrl, childFetchOpts, load.responseUrl).fetchPromise;
231
+ }))).filter(l => l);
232
+ });
233
+ return load;
234
+ }
235
+ const dynamicImport = u => (specifier => new Promise(r => r(`${specifier}`)).then(s => _interopRequireWildcard(require(s))))(/* webpackIgnore: true */u);
236
+
237
+ /**
238
+ * Resolves the passed module URL and fetches the corresponding module
239
+ * and their dependencies, returning a `ModuleLoad` object once all
240
+ * of them have been fetched.
241
+ *
242
+ * @param url Module URL.
243
+ * @param fetchOpts Fetch options.
244
+ * @return A promise with a `ModuleLoad` instance.
245
+ */
246
+ async function preloadModule(url, fetchOpts) {
247
+ await initPromise;
248
+ const load = getOrCreateLoad(url, fetchOpts, null);
249
+ const seen = {};
250
+ await loadAll(load, seen);
251
+ resolveDeps(load, seen);
252
+ // microtask scheduling – can help ensure Blob is fully ready
253
+ await Promise.resolve();
254
+ return load;
255
+ }
256
+
257
+ /**
258
+ * Imports the module represented by the passed `ModuleLoad` instance.
259
+ *
260
+ * @param load The `ModuleLoad` instance representing the module.
261
+ * @return A promise with the imported module.
262
+ */
263
+ async function importPreloadedModule(load) {
264
+ const module = await dynamicImport(load.blobUrl);
265
+ // if the preloaded module ended up with a shell (circular refs), finalize it
266
+ if (load.shellUrl) {
267
+ (await dynamicImport(load.shellUrl)).u$_(module);
268
+ }
269
+ return module;
270
+ }
271
+
272
+ /**
273
+ * Imports the module represented by the passed module URL.
274
+ *
275
+ * The module URL and all its dependencies are resolved using the
276
+ * current status of the internal dynamic import map.
277
+ *
278
+ * @param url Module URL.
279
+ * @param fetchOpts Fetch options.
280
+ * @return A promise with the imported module.
281
+ */
282
+ async function topLevelLoad(url, fetchOpts) {
283
+ const load = await preloadModule(url, fetchOpts);
284
+ return importPreloadedModule(load);
285
+ }
286
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["lexer","_interopRequireWildcard","require","_fetch","_resolver","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initPromise","exports","init","initialImportMapElement","window","document","querySelector","initialImportMap","JSON","parse","text","imports","scopes","skip","id","keys","includes","fetchCache","registry","forEach","blobUrl","loadAll","load","seen","url","linkPromise","Promise","all","deps","map","dep","urlJsString","replace","createBlob","source","type","URL","createObjectURL","Blob","resolveDeps","analysis","resolvedSource","length","lastIndex","depIndex","dynamicImportEndStack","pushStringTo","originalIndex","dynamicImportEnd","pop","slice","responseUrl","s","start","ss","statementStart","se","statementEnd","d","dynamicImportIndex","depLoad","cycleShell","shellUrl","q","join","_","undefined","Error","push","filter","ln","hasSourceURL","sourceMapURLRegEx","match","isMapping","toString","getOrCreateLoad","fetchOpts","parent","fetchPromise","fetchModule","console","error","then","childFetchOpts","resolve","integrity","l","dynamicImport","specifier","preloadModule","importPreloadedModule","module","u$_","topLevelLoad"],"sources":["@wordpress/interactivity-router/src/assets/dynamic-importmap/loader.ts"],"sourcesContent":["/**\n * This code is derived from the following projects:\n *\n * 1. dynamic-importmap (https://github.com/keller-mark/dynamic-importmap)\n * 2. es-module-shims (https://github.com/guybedford/es-module-shims)\n *\n * The original implementation was created by Guy Bedford in es-module-shims,\n * then adapted by Mark Keller in dynamic-importmap, and further modified\n * for use in this project.\n *\n * Both projects are licensed under the MIT license.\n *\n * MIT License: https://opensource.org/licenses/MIT\n */\n\n/**\n * External dependencies\n */\nimport * as lexer from 'es-module-lexer';\n\n/**\n * Internal dependencies\n */\nimport { fetchModule } from './fetch';\nimport { resolve } from './resolver';\n\nexport interface ModuleLoad {\n\turl?: string; // original URL\n\tresponseUrl?: string; // response url\n\tfetchPromise?: Promise< ModuleLoad >; // fetch promise\n\tsource?: string; // source code\n\tlinkPromise?: Promise< void >; // link-promise (dependency fetch)\n\tanalysis?: ReturnType< typeof lexer.parse >; // analysis ([ imports, exports, ... ])\n\tdeps?: ModuleLoad[]; // deps\n\tblobUrl?: string; // blobUrl\n\tshellUrl?: string; // shellUrl for circular references\n}\n\nexport const initPromise = lexer.init;\n\n/**\n * Script element containing the initial page's import map.\n */\nconst initialImportMapElement =\n\twindow.document.querySelector< HTMLScriptElement >(\n\t\t'script#wp-importmap[type=importmap]'\n\t);\n\n/**\n * Data from the initial page's import map.\n *\n * Pages containing any of the imports present on the original page\n * in their import maps should ignore them, as those imports would\n * be handled natively.\n */\nexport const initialImportMap = initialImportMapElement\n\t? JSON.parse( initialImportMapElement.text )\n\t: { imports: {}, scopes: {} };\n\nconst skip = ( id ) => Object.keys( initialImportMap.imports ).includes( id );\n\nconst fetchCache: Record< string, Promise< ModuleLoad > > = {};\nexport const registry = {};\n\n// Init registry with importamp content.\nObject.keys( initialImportMap.imports ).forEach( ( id ) => {\n\tregistry[ id ] = {\n\t\tblobUrl: id,\n\t};\n} );\n\nasync function loadAll( load: ModuleLoad, seen: Record< string, any > ) {\n\tif ( load.blobUrl || seen[ load.url ] ) {\n\t\treturn;\n\t}\n\tseen[ load.url ] = 1;\n\tawait load.linkPromise;\n\tawait Promise.all( load.deps.map( ( dep ) => loadAll( dep, seen ) ) );\n}\n\nfunction urlJsString( url: string ) {\n\treturn `'${ url.replace( /'/g, \"\\\\'\" ) }'`;\n}\n\nconst createBlob = ( source: string, type = 'text/javascript' ) =>\n\tURL.createObjectURL( new Blob( [ source ], { type } ) );\n\nfunction resolveDeps( load: ModuleLoad, seen: Record< string, any > ) {\n\tif ( load.blobUrl || ! seen[ load.url ] ) {\n\t\treturn;\n\t}\n\tseen[ load.url ] = 0;\n\n\tfor ( const dep of load.deps ) {\n\t\tresolveDeps( dep, seen );\n\t}\n\n\tconst [ imports, exports ] = load.analysis;\n\tconst source = load.source;\n\n\tlet resolvedSource = '';\n\n\tif ( ! imports.length ) {\n\t\tresolvedSource += source;\n\t} else {\n\t\tlet lastIndex = 0;\n\t\tlet depIndex = 0;\n\t\tconst dynamicImportEndStack = [];\n\n\t\tfunction pushStringTo( originalIndex: number ) {\n\t\t\twhile (\n\t\t\t\tdynamicImportEndStack.length &&\n\t\t\t\tdynamicImportEndStack[ dynamicImportEndStack.length - 1 ] <\n\t\t\t\t\toriginalIndex\n\t\t\t) {\n\t\t\t\tconst dynamicImportEnd = dynamicImportEndStack.pop();\n\t\t\t\tresolvedSource += `${ source.slice(\n\t\t\t\t\tlastIndex,\n\t\t\t\t\tdynamicImportEnd\n\t\t\t\t) }, ${ urlJsString( load.responseUrl ) }`;\n\t\t\t\tlastIndex = dynamicImportEnd;\n\t\t\t}\n\t\t\tresolvedSource += source.slice( lastIndex, originalIndex );\n\t\t\tlastIndex = originalIndex;\n\t\t}\n\n\t\tfor ( const {\n\t\t\ts: start,\n\t\t\tss: statementStart,\n\t\t\tse: statementEnd,\n\t\t\td: dynamicImportIndex,\n\t\t} of imports ) {\n\t\t\t// static import\n\t\t\tif ( dynamicImportIndex === -1 ) {\n\t\t\t\tconst depLoad = load.deps[ depIndex++ ];\n\t\t\t\tlet blobUrl = depLoad.blobUrl;\n\t\t\t\tconst cycleShell = ! blobUrl;\n\t\t\t\tif ( cycleShell ) {\n\t\t\t\t\t// Circular shell creation\n\t\t\t\t\tif ( ! ( blobUrl = depLoad.shellUrl ) ) {\n\t\t\t\t\t\tblobUrl = depLoad.shellUrl = createBlob(\n\t\t\t\t\t\t\t`export function u$_(m){${ depLoad.analysis[ 1 ]\n\t\t\t\t\t\t\t\t.map( ( { s, e }, i ) => {\n\t\t\t\t\t\t\t\t\tconst q =\n\t\t\t\t\t\t\t\t\t\tdepLoad.source[ s ] === '\"' ||\n\t\t\t\t\t\t\t\t\t\tdepLoad.source[ s ] === \"'\";\n\t\t\t\t\t\t\t\t\treturn `e$_${ i }=m${\n\t\t\t\t\t\t\t\t\t\tq ? `[` : '.'\n\t\t\t\t\t\t\t\t\t}${ depLoad.source.slice( s, e ) }${\n\t\t\t\t\t\t\t\t\t\tq ? `]` : ''\n\t\t\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t.join( ',' ) }}${\n\t\t\t\t\t\t\t\tdepLoad.analysis[ 1 ].length\n\t\t\t\t\t\t\t\t\t? `let ${ depLoad.analysis[ 1 ]\n\t\t\t\t\t\t\t\t\t\t\t.map( ( _, i ) => `e$_${ i }` )\n\t\t\t\t\t\t\t\t\t\t\t.join( ',' ) };`\n\t\t\t\t\t\t\t\t\t: ''\n\t\t\t\t\t\t\t}export {${ depLoad.analysis[ 1 ]\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( { s, e }, i ) =>\n\t\t\t\t\t\t\t\t\t\t`e$_${ i } as ${ depLoad.source.slice(\n\t\t\t\t\t\t\t\t\t\t\ts,\n\t\t\t\t\t\t\t\t\t\t\te\n\t\t\t\t\t\t\t\t\t\t) }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ',' ) }}\\n//# sourceURL=${\n\t\t\t\t\t\t\t\tdepLoad.responseUrl\n\t\t\t\t\t\t\t}?cycle`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpushStringTo( start - 1 );\n\t\t\t\tresolvedSource += `/*${ source.slice(\n\t\t\t\t\tstart - 1,\n\t\t\t\t\tstatementEnd\n\t\t\t\t) }*/${ urlJsString( blobUrl ) }`;\n\n\t\t\t\t// circular shell execution\n\t\t\t\tif ( ! cycleShell && depLoad.shellUrl ) {\n\t\t\t\t\tresolvedSource += `;import*as m$_${ depIndex } from'${ depLoad.blobUrl }';import{u$_ as u$_${ depIndex }}from'${ depLoad.shellUrl }';u$_${ depIndex }(m$_${ depIndex })`;\n\t\t\t\t\tdepLoad.shellUrl = undefined;\n\t\t\t\t}\n\t\t\t\tlastIndex = statementEnd;\n\t\t\t}\n\t\t\t// import.meta\n\t\t\telse if ( dynamicImportIndex === -2 ) {\n\t\t\t\tthrow Error( 'The import.meta property is not supported.' );\n\t\t\t}\n\t\t\t// dynamic import\n\t\t\telse {\n\t\t\t\tpushStringTo( statementStart );\n\t\t\t\tresolvedSource += `wpInteractivityRouterImport(`;\n\t\t\t\tdynamicImportEndStack.push( statementEnd - 1 );\n\t\t\t\tlastIndex = start;\n\t\t\t}\n\t\t}\n\n\t\t// progressive cycle binding updates\n\t\tif ( load.shellUrl ) {\n\t\t\tresolvedSource += `\\n;import{u$_}from'${\n\t\t\t\tload.shellUrl\n\t\t\t}';try{u$_({${ exports\n\t\t\t\t.filter( ( e ) => e.ln )\n\t\t\t\t.map( ( { s, e, ln } ) => `${ source.slice( s, e ) }:${ ln }` )\n\t\t\t\t.join( ',' ) }})}catch(_){};\\n`;\n\t\t}\n\n\t\tpushStringTo( source.length );\n\t}\n\n\t// ensure we have a proper sourceURL\n\tlet hasSourceURL = false;\n\tresolvedSource = resolvedSource.replace(\n\t\tsourceMapURLRegEx,\n\t\t( match, isMapping, url ) => {\n\t\t\thasSourceURL = ! isMapping;\n\t\t\treturn match.replace( url, () =>\n\t\t\t\tnew URL( url, load.responseUrl ).toString()\n\t\t\t);\n\t\t}\n\t);\n\tif ( ! hasSourceURL ) {\n\t\tresolvedSource += '\\n//# sourceURL=' + load.responseUrl;\n\t}\n\n\tload.blobUrl = createBlob( resolvedSource );\n\tload.source = undefined; // free memory\n}\n\nconst sourceMapURLRegEx =\n\t/\\n\\/\\/# source(Mapping)?URL=([^\\n]+)\\s*((;|\\/\\/[^#][^\\n]*)\\s*)*$/;\n\nfunction getOrCreateLoad(\n\turl: string,\n\tfetchOpts: RequestInit,\n\tparent: string\n): ModuleLoad {\n\tlet load: ModuleLoad = registry[ url ];\n\tif ( load ) {\n\t\treturn load;\n\t}\n\n\tload = { url };\n\n\tif ( registry[ url ] ) {\n\t\t// If there's a naming conflict, keep incrementing until unique\n\t\tlet i = 0;\n\t\twhile ( registry[ load.url + ++i ] ) {\n\t\t\t/* no-op */\n\t\t}\n\t\tload.url += i;\n\t}\n\tregistry[ load.url ] = load;\n\n\tload.fetchPromise = ( async () => {\n\t\tlet source;\n\t\t( { responseUrl: load.responseUrl, source: source } =\n\t\t\tawait ( fetchCache[ url ] ||\n\t\t\t\tfetchModule( url, fetchOpts, parent ) ) );\n\t\ttry {\n\t\t\tload.analysis = lexer.parse( source, load.url );\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tload.analysis = [ [], [], false, false ];\n\t\t}\n\t\tload.source = source;\n\t\treturn load;\n\t} )();\n\n\tload.linkPromise = load.fetchPromise.then( async () => {\n\t\tlet childFetchOpts = fetchOpts;\n\t\tload.deps = (\n\t\t\tawait Promise.all(\n\t\t\t\tload.analysis[ 0 ].map( async ( { n, d } ) => {\n\t\t\t\t\tif ( d !== -1 || ! n ) {\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t\tconst responseUrl = resolve(\n\t\t\t\t\t\tn,\n\t\t\t\t\t\tload.responseUrl || load.url\n\t\t\t\t\t);\n\t\t\t\t\tif ( skip && skip( responseUrl ) ) {\n\t\t\t\t\t\treturn { blobUrl: responseUrl } as ModuleLoad;\n\t\t\t\t\t}\n\t\t\t\t\t// remove integrity for child fetches\n\t\t\t\t\tif ( childFetchOpts.integrity ) {\n\t\t\t\t\t\tchildFetchOpts = {\n\t\t\t\t\t\t\t...childFetchOpts,\n\t\t\t\t\t\t\tintegrity: undefined,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn getOrCreateLoad(\n\t\t\t\t\t\tresponseUrl,\n\t\t\t\t\t\tchildFetchOpts,\n\t\t\t\t\t\tload.responseUrl\n\t\t\t\t\t).fetchPromise;\n\t\t\t\t} )\n\t\t\t)\n\t\t).filter( ( l ) => l );\n\t} );\n\n\treturn load;\n}\n\nconst dynamicImport = ( u: string ) => import( /* webpackIgnore: true */ u );\n\n/**\n * Resolves the passed module URL and fetches the corresponding module\n * and their dependencies, returning a `ModuleLoad` object once all\n * of them have been fetched.\n *\n * @param url Module URL.\n * @param fetchOpts Fetch options.\n * @return A promise with a `ModuleLoad` instance.\n */\nexport async function preloadModule(\n\turl: string,\n\tfetchOpts?: RequestInit\n): Promise< ModuleLoad > {\n\tawait initPromise;\n\tconst load = getOrCreateLoad( url, fetchOpts, null );\n\tconst seen = {};\n\tawait loadAll( load, seen );\n\tresolveDeps( load, seen );\n\t// microtask scheduling – can help ensure Blob is fully ready\n\tawait Promise.resolve();\n\treturn load;\n}\n\n/**\n * Imports the module represented by the passed `ModuleLoad` instance.\n *\n * @param load The `ModuleLoad` instance representing the module.\n * @return A promise with the imported module.\n */\nexport async function importPreloadedModule< Module = unknown >(\n\tload: ModuleLoad\n): Promise< Module > {\n\tconst module = await dynamicImport( load.blobUrl );\n\t// if the preloaded module ended up with a shell (circular refs), finalize it\n\tif ( load.shellUrl ) {\n\t\t( await dynamicImport( load.shellUrl ) ).u$_( module );\n\t}\n\treturn module;\n}\n\n/**\n * Imports the module represented by the passed module URL.\n *\n * The module URL and all its dependencies are resolved using the\n * current status of the internal dynamic import map.\n *\n * @param url Module URL.\n * @param fetchOpts Fetch options.\n * @return A promise with the imported module.\n */\nexport async function topLevelLoad< Module = unknown >(\n\turl: string,\n\tfetchOpts?: RequestInit\n): Promise< Module > {\n\tconst load = await preloadModule( url, fetchOpts );\n\treturn importPreloadedModule< Module >( load );\n}\n"],"mappings":"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","ignoreList":[]}