remote-components 0.0.41 → 0.0.42
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/dist/html/host.cjs +429 -312
- package/dist/html/host.cjs.map +1 -1
- package/dist/html/host.js +429 -312
- package/dist/html/host.js.map +1 -1
- package/dist/html/remote.cjs.map +1 -1
- package/dist/html/remote.js.map +1 -1
- package/dist/internal/shared/client/remote-component.cjs +404 -304
- package/dist/internal/shared/client/remote-component.cjs.map +1 -1
- package/dist/internal/shared/client/remote-component.d.ts +10 -1
- package/dist/internal/shared/client/remote-component.js +404 -304
- package/dist/internal/shared/client/remote-component.js.map +1 -1
- package/dist/internal/shared/error.cjs +4 -4
- package/dist/internal/shared/error.cjs.map +1 -1
- package/dist/internal/shared/error.d.ts +5 -2
- package/dist/internal/shared/error.js +4 -4
- package/dist/internal/shared/error.js.map +1 -1
- package/dist/internal/shared/ssr/fetch-remote-component.cjs +22 -7
- package/dist/internal/shared/ssr/fetch-remote-component.cjs.map +1 -1
- package/dist/internal/shared/ssr/fetch-remote-component.js +22 -7
- package/dist/internal/shared/ssr/fetch-remote-component.js.map +1 -1
- package/dist/internal/webpack/shared-modules.cjs +36 -1
- package/dist/internal/webpack/shared-modules.cjs.map +1 -1
- package/dist/internal/webpack/shared-modules.js +36 -1
- package/dist/internal/webpack/shared-modules.js.map +1 -1
- package/dist/next/host/client/index.cjs +412 -311
- package/dist/next/host/client/index.cjs.map +1 -1
- package/dist/next/host/client/index.js +412 -311
- package/dist/next/host/client/index.js.map +1 -1
- package/dist/react/index.cjs +4 -3
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +4 -3
- package/dist/react/index.js.map +1 -1
- package/package.json +4 -6
|
@@ -275,14 +275,14 @@ var RemoteComponentsError = class extends Error {
|
|
|
275
275
|
}
|
|
276
276
|
};
|
|
277
277
|
function multipleRemoteComponentsError(url) {
|
|
278
|
-
return new
|
|
278
|
+
return new RemoteComponentsError(
|
|
279
279
|
`Multiple Remote Components found at "${url}". When a page exposes multiple Remote Components you must specify the "name" prop to select which one to load.`
|
|
280
280
|
);
|
|
281
281
|
}
|
|
282
|
-
function failedToFetchRemoteComponentError(url,
|
|
282
|
+
function failedToFetchRemoteComponentError(url, { status, statusText }, help = "Is the URL correct and accessible?") {
|
|
283
283
|
return new RemoteComponentsError(
|
|
284
|
-
`Failed to fetch Remote Component from "${url}".
|
|
285
|
-
{ cause:
|
|
284
|
+
`Failed to fetch Remote Component from "${url}". ${help}`,
|
|
285
|
+
{ cause: new Error(`${status} ${statusText}`) }
|
|
286
286
|
);
|
|
287
287
|
}
|
|
288
288
|
|
|
@@ -293,6 +293,18 @@ import * as JSXRuntime from "react/jsx-runtime";
|
|
|
293
293
|
import * as ReactDOM from "react-dom";
|
|
294
294
|
import * as ReactDOMClient from "react-dom/client";
|
|
295
295
|
|
|
296
|
+
// src/shared/utils/logger.ts
|
|
297
|
+
var PREFIX = "remote-components";
|
|
298
|
+
var DEBUG = typeof window !== "undefined" && localStorage.getItem("RC_DEBUG") === "true";
|
|
299
|
+
function logDebug(location2, message) {
|
|
300
|
+
if (DEBUG) {
|
|
301
|
+
console.debug(`[${PREFIX}:${location2}]: ${message}`);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
function logWarn(location2, message) {
|
|
305
|
+
console.warn(`[${PREFIX}:${location2}]: ${message}`);
|
|
306
|
+
}
|
|
307
|
+
|
|
296
308
|
// src/shared/webpack/next-client-pages-loader.ts
|
|
297
309
|
function nextClientPagesLoader(bundle, route, styleContainer = document.head) {
|
|
298
310
|
const self = globalThis;
|
|
@@ -407,28 +419,62 @@ function nextClientPagesLoader(bundle, route, styleContainer = document.head) {
|
|
|
407
419
|
|
|
408
420
|
// src/shared/webpack/shared-modules.ts
|
|
409
421
|
function applySharedModules(bundle, resolve) {
|
|
422
|
+
logDebug(
|
|
423
|
+
"SharedModules",
|
|
424
|
+
`applySharedModules called for bundle: "${bundle}"`
|
|
425
|
+
);
|
|
426
|
+
logDebug(
|
|
427
|
+
"SharedModules",
|
|
428
|
+
`Shared modules to resolve: ${Object.keys(resolve)}`
|
|
429
|
+
);
|
|
410
430
|
const self = globalThis;
|
|
411
431
|
if (self.__remote_webpack_require__?.[bundle]) {
|
|
412
432
|
const modulePaths = Object.keys(
|
|
413
433
|
self.__remote_webpack_module_map__?.[bundle] ?? self.__remote_webpack_require__[bundle].m ?? {}
|
|
414
434
|
);
|
|
435
|
+
logDebug(
|
|
436
|
+
"SharedModules",
|
|
437
|
+
`Available module paths in __remote_webpack_require__[${bundle}]: ${modulePaths}`
|
|
438
|
+
);
|
|
415
439
|
for (const [key, value] of Object.entries(resolve)) {
|
|
416
440
|
let ids = modulePaths.filter((p) => p === key);
|
|
417
441
|
if (ids.length === 0) {
|
|
418
442
|
ids = modulePaths.filter((p) => p.includes(key));
|
|
419
443
|
}
|
|
444
|
+
if (ids.length === 0) {
|
|
445
|
+
logDebug(
|
|
446
|
+
"SharedModules",
|
|
447
|
+
`No matching module path found for shared module "${key}"`
|
|
448
|
+
);
|
|
449
|
+
}
|
|
420
450
|
for (let id of ids) {
|
|
421
451
|
const webpackBundle = self.__remote_webpack_require__[bundle];
|
|
422
452
|
if (webpackBundle.m) {
|
|
423
453
|
if (self.__remote_webpack_module_map__?.[bundle]?.[id]) {
|
|
424
|
-
|
|
454
|
+
const mappedId = `${self.__remote_webpack_module_map__[bundle][id]}`;
|
|
455
|
+
logDebug(
|
|
456
|
+
"SharedModules",
|
|
457
|
+
`Mapped module id: "${id}" -> "${mappedId}"`
|
|
458
|
+
);
|
|
459
|
+
id = mappedId;
|
|
425
460
|
}
|
|
426
461
|
webpackBundle.m[id] = (module) => {
|
|
427
462
|
module.exports = value;
|
|
428
463
|
};
|
|
464
|
+
} else {
|
|
465
|
+
logWarn(
|
|
466
|
+
"SharedModules",
|
|
467
|
+
`webpackBundle.m is not available for bundle "${bundle}"`
|
|
468
|
+
);
|
|
429
469
|
}
|
|
430
470
|
}
|
|
431
471
|
}
|
|
472
|
+
} else {
|
|
473
|
+
logWarn("SharedModules", `No webpack require found for bundle "${bundle}"`);
|
|
474
|
+
logDebug(
|
|
475
|
+
"SharedModules",
|
|
476
|
+
`Available bundles: ${Object.keys(self.__remote_webpack_require__ ?? {})}`
|
|
477
|
+
);
|
|
432
478
|
}
|
|
433
479
|
}
|
|
434
480
|
|
|
@@ -549,52 +595,7 @@ function getBundleKey(bundle) {
|
|
|
549
595
|
return escapeString(bundle);
|
|
550
596
|
}
|
|
551
597
|
|
|
552
|
-
// src/shared/client/
|
|
553
|
-
async function setupWebpackRuntime(runtime, scripts = [], url = new URL(location.href), bundle, shared = {}, remoteShared = {}) {
|
|
554
|
-
const self = globalThis;
|
|
555
|
-
if (!self.__remote_bundle_url__) {
|
|
556
|
-
self.__remote_bundle_url__ = {};
|
|
557
|
-
}
|
|
558
|
-
self.__remote_bundle_url__[bundle ?? "default"] = url;
|
|
559
|
-
self.__webpack_get_script_filename__ = () => null;
|
|
560
|
-
if (typeof self.__webpack_require__ !== "function" || self.__webpack_require_type__ !== "turbopack") {
|
|
561
|
-
if (!self.__original_webpack_require__ && !self.__original_webpack_chunk_load__) {
|
|
562
|
-
self.__original_webpack_chunk_load__ = self.__webpack_chunk_load__;
|
|
563
|
-
self.__original_webpack_require__ = self.__webpack_require__;
|
|
564
|
-
}
|
|
565
|
-
self.__webpack_chunk_load__ = createChunkLoader(runtime);
|
|
566
|
-
self.__webpack_require__ = createModuleRequire(runtime);
|
|
567
|
-
self.__webpack_require_type__ = runtime;
|
|
568
|
-
if (self.__remote_webpack_require__ && runtime === RUNTIME_TURBOPACK) {
|
|
569
|
-
const remoteBundle = bundle ?? "default";
|
|
570
|
-
self.__remote_webpack_require__[remoteBundle] = self.__webpack_require__;
|
|
571
|
-
self.__remote_webpack_require__[remoteBundle].type = "turbopack";
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
if (runtime === RUNTIME_TURBOPACK) {
|
|
575
|
-
await Promise.all(
|
|
576
|
-
scripts.map((script) => {
|
|
577
|
-
if (script.src) {
|
|
578
|
-
return self.__webpack_chunk_load__?.(script.src, bundle);
|
|
579
|
-
}
|
|
580
|
-
return Promise.resolve(void 0);
|
|
581
|
-
})
|
|
582
|
-
);
|
|
583
|
-
}
|
|
584
|
-
await initializeSharedModules(
|
|
585
|
-
bundle ?? "default",
|
|
586
|
-
// include all core modules as shared
|
|
587
|
-
{
|
|
588
|
-
react: async () => (await import("react")).default,
|
|
589
|
-
"react-dom": async () => (await import("react-dom")).default,
|
|
590
|
-
"react/jsx-dev-runtime": async () => (await import("react/jsx-dev-runtime")).default,
|
|
591
|
-
"react/jsx-runtime": async () => (await import("react/jsx-runtime")).default,
|
|
592
|
-
"react-dom/client": async () => (await import("react-dom/client")).default,
|
|
593
|
-
...shared
|
|
594
|
-
},
|
|
595
|
-
remoteShared
|
|
596
|
-
);
|
|
597
|
-
}
|
|
598
|
+
// src/shared/client/chunk-loader.ts
|
|
598
599
|
function createChunkLoader(runtime) {
|
|
599
600
|
return function __turbopack_chunk_load__(chunkId, scriptBundle) {
|
|
600
601
|
const self = globalThis;
|
|
@@ -709,46 +710,232 @@ async function handleTurbopackChunk(code, bundle, url) {
|
|
|
709
710
|
await Promise.all(loadChunkLists);
|
|
710
711
|
}
|
|
711
712
|
}
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
713
|
+
|
|
714
|
+
// src/shared/client/turbopack-module.ts
|
|
715
|
+
function handleTurbopackModule(bundle, moduleId, id) {
|
|
716
|
+
const self = globalThis;
|
|
717
|
+
const bundleKey = getBundleKey(bundle);
|
|
718
|
+
const modules = self[`TURBOPACK_${bundleKey}`];
|
|
719
|
+
const moduleInit = findModuleInit(modules, moduleId);
|
|
720
|
+
const exports = {};
|
|
721
|
+
const moduleExports = { exports };
|
|
722
|
+
if (!self.__remote_components_turbopack_modules__) {
|
|
723
|
+
self.__remote_components_turbopack_modules__ = {};
|
|
724
|
+
}
|
|
725
|
+
if (!self.__remote_components_turbopack_modules__[bundle]) {
|
|
726
|
+
self.__remote_components_turbopack_modules__[bundle] = {};
|
|
727
|
+
}
|
|
728
|
+
if (self.__remote_components_turbopack_modules__[bundle][moduleId]) {
|
|
729
|
+
return self.__remote_components_turbopack_modules__[bundle][moduleId];
|
|
730
|
+
}
|
|
731
|
+
if (typeof moduleInit !== "function") {
|
|
732
|
+
throw new Error(
|
|
733
|
+
`Module ${id} not found in bundle ${bundle} with id ${moduleId}`
|
|
734
|
+
);
|
|
735
|
+
}
|
|
736
|
+
self.__remote_components_turbopack_modules__[bundle][moduleId] = moduleExports.exports;
|
|
737
|
+
if (!self.__remote_components_turbopack_global__) {
|
|
738
|
+
self.__remote_components_turbopack_global__ = {};
|
|
739
|
+
}
|
|
740
|
+
if (!self.__remote_components_turbopack_global__[bundle]) {
|
|
741
|
+
self.__remote_components_turbopack_global__[bundle] = {};
|
|
742
|
+
}
|
|
743
|
+
const allModules = modules?.flat() ?? [];
|
|
744
|
+
moduleInit(
|
|
745
|
+
createTurbopackContext(
|
|
746
|
+
bundle,
|
|
747
|
+
exports,
|
|
748
|
+
moduleExports,
|
|
749
|
+
allModules,
|
|
750
|
+
moduleInit,
|
|
751
|
+
id,
|
|
752
|
+
self
|
|
753
|
+
),
|
|
754
|
+
moduleExports,
|
|
755
|
+
exports
|
|
756
|
+
);
|
|
757
|
+
if (self.__remote_components_turbopack_modules__[bundle][moduleId] !== moduleExports.exports) {
|
|
758
|
+
self.__remote_components_turbopack_modules__[bundle][moduleId] = moduleExports.exports;
|
|
759
|
+
}
|
|
760
|
+
return moduleExports.exports;
|
|
761
|
+
}
|
|
762
|
+
function findModuleInit(modules, moduleId) {
|
|
763
|
+
const allModules = modules?.flat() ?? [];
|
|
764
|
+
if (typeof allModules[1] === "string" || typeof allModules[1] === "number") {
|
|
765
|
+
const normalizedId = /^[0-9]+$/.test(moduleId) ? Number(moduleId) : moduleId;
|
|
766
|
+
let moduleIdIndex = allModules.indexOf(normalizedId);
|
|
767
|
+
if (moduleIdIndex === -1) {
|
|
768
|
+
moduleIdIndex = allModules.findIndex(
|
|
769
|
+
(bundleEntry) => typeof bundleEntry === "string" && bundleEntry.startsWith(moduleId) || bundleEntry === normalizedId
|
|
770
|
+
);
|
|
771
|
+
}
|
|
772
|
+
if (moduleIdIndex !== -1) {
|
|
773
|
+
while (typeof allModules[moduleIdIndex] !== "function" && moduleIdIndex < allModules.length) {
|
|
774
|
+
moduleIdIndex++;
|
|
723
775
|
}
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
776
|
+
return allModules[moduleIdIndex];
|
|
777
|
+
}
|
|
778
|
+
} else {
|
|
779
|
+
return allModules.find(
|
|
780
|
+
(bundleEntry) => typeof bundleEntry === "object" && bundleEntry !== null && moduleId in bundleEntry
|
|
781
|
+
)?.[moduleId];
|
|
782
|
+
}
|
|
783
|
+
return void 0;
|
|
784
|
+
}
|
|
785
|
+
function createTurbopackContext(bundle, exports, moduleExports, allModules, moduleInit, id, self) {
|
|
786
|
+
return {
|
|
787
|
+
// HMR not implemented for Remote Components
|
|
788
|
+
k: {
|
|
789
|
+
register() {
|
|
790
|
+
},
|
|
791
|
+
registerExports() {
|
|
792
|
+
},
|
|
793
|
+
signature() {
|
|
794
|
+
return (fn) => fn;
|
|
727
795
|
}
|
|
728
|
-
|
|
729
|
-
|
|
796
|
+
},
|
|
797
|
+
// ESM exports setup
|
|
798
|
+
s(bindings, esmId) {
|
|
799
|
+
let mod = exports;
|
|
800
|
+
if (typeof esmId === "string" || typeof esmId === "number") {
|
|
801
|
+
if (!self.__remote_components_turbopack_modules__) {
|
|
802
|
+
self.__remote_components_turbopack_modules__ = {};
|
|
803
|
+
}
|
|
804
|
+
if (!self.__remote_components_turbopack_modules__[bundle]) {
|
|
805
|
+
self.__remote_components_turbopack_modules__[bundle] = {};
|
|
806
|
+
}
|
|
807
|
+
if (!self.__remote_components_turbopack_modules__[bundle][esmId]) {
|
|
808
|
+
self.__remote_components_turbopack_modules__[bundle][esmId] = {};
|
|
809
|
+
}
|
|
810
|
+
mod = self.__remote_components_turbopack_modules__[bundle][esmId];
|
|
730
811
|
}
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
812
|
+
Object.defineProperty(mod, "__esModule", { value: true });
|
|
813
|
+
if (Array.isArray(bindings)) {
|
|
814
|
+
let i = 0;
|
|
815
|
+
while (i < bindings.length) {
|
|
816
|
+
const propName = bindings[i++];
|
|
817
|
+
const tagOrFunc = bindings[i++];
|
|
818
|
+
if (typeof tagOrFunc === "number") {
|
|
819
|
+
Object.defineProperty(mod, propName, {
|
|
820
|
+
value: bindings[i++],
|
|
821
|
+
enumerable: true,
|
|
822
|
+
writable: false
|
|
823
|
+
});
|
|
824
|
+
} else {
|
|
825
|
+
const getterFn = tagOrFunc;
|
|
826
|
+
if (typeof bindings[i] === "function") {
|
|
827
|
+
const setterFn = bindings[i++];
|
|
828
|
+
Object.defineProperty(mod, propName, {
|
|
829
|
+
get: getterFn,
|
|
830
|
+
set: setterFn,
|
|
831
|
+
enumerable: true
|
|
832
|
+
});
|
|
833
|
+
} else {
|
|
834
|
+
Object.defineProperty(mod, propName, {
|
|
835
|
+
get: getterFn,
|
|
836
|
+
enumerable: true
|
|
837
|
+
});
|
|
838
|
+
}
|
|
738
839
|
}
|
|
739
|
-
|
|
840
|
+
}
|
|
740
841
|
}
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
842
|
+
},
|
|
843
|
+
// import
|
|
844
|
+
i(importId) {
|
|
845
|
+
let mod;
|
|
846
|
+
if (typeof importId === "string") {
|
|
847
|
+
const { exportSource, exportName } = /\s+<export (?<exportSource>.*?) as (?<exportName>.*?)>$/.exec(
|
|
848
|
+
importId
|
|
849
|
+
)?.groups ?? {};
|
|
850
|
+
const normalizedId = importId.replace(
|
|
851
|
+
/\s+<export(?<specifier>.*)>$/,
|
|
852
|
+
""
|
|
747
853
|
);
|
|
854
|
+
mod = self.__webpack_require__?.(`[${bundle}] ${normalizedId}`);
|
|
855
|
+
if (mod && exportSource && exportName && (exportSource === "*" || typeof mod[exportSource] !== "undefined") && typeof mod[exportName] === "undefined") {
|
|
856
|
+
if (exportSource === "*") {
|
|
857
|
+
mod[exportName] = mod;
|
|
858
|
+
} else {
|
|
859
|
+
mod[exportName] = mod[exportSource];
|
|
860
|
+
}
|
|
861
|
+
}
|
|
862
|
+
} else {
|
|
863
|
+
mod = self.__webpack_require__?.(`[${bundle}] ${importId}`);
|
|
748
864
|
}
|
|
749
|
-
|
|
865
|
+
if (typeof mod !== "object" || mod === null) {
|
|
866
|
+
mod = { default: mod };
|
|
867
|
+
} else if (!("default" in mod) && mod.toString() !== "[object Module]") {
|
|
868
|
+
try {
|
|
869
|
+
mod.default = mod;
|
|
870
|
+
} catch {
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
return mod;
|
|
874
|
+
},
|
|
875
|
+
// require
|
|
876
|
+
r(requireId) {
|
|
877
|
+
return self.__webpack_require__?.(`[${bundle}] ${requireId}`);
|
|
878
|
+
},
|
|
879
|
+
// value exports
|
|
880
|
+
v(value) {
|
|
881
|
+
if (typeof value === "function") {
|
|
882
|
+
exports.default = value((vid) => {
|
|
883
|
+
return self.__webpack_require__?.(`[${bundle}] ${vid}`);
|
|
884
|
+
});
|
|
885
|
+
} else {
|
|
886
|
+
moduleExports.exports = value;
|
|
887
|
+
}
|
|
888
|
+
},
|
|
889
|
+
// async module initializer
|
|
890
|
+
async a(mod) {
|
|
891
|
+
let result;
|
|
892
|
+
await mod(
|
|
893
|
+
() => {
|
|
894
|
+
},
|
|
895
|
+
(value) => result = value
|
|
896
|
+
);
|
|
897
|
+
exports.default = result;
|
|
898
|
+
},
|
|
899
|
+
// async module loader
|
|
900
|
+
async A(Aid) {
|
|
901
|
+
const mod = self.__webpack_require__?.(`[${bundle}] ${Aid}`);
|
|
902
|
+
return mod.default(
|
|
903
|
+
(parentId) => self.__webpack_require__?.(`[${bundle}] ${parentId}`)
|
|
904
|
+
);
|
|
905
|
+
},
|
|
906
|
+
// chunk loader
|
|
907
|
+
l(url) {
|
|
908
|
+
const moduleInitIndex = allModules.indexOf(moduleInit);
|
|
909
|
+
if (moduleInitIndex !== -1) {
|
|
910
|
+
const scriptIndex = allModules.slice(0, moduleInitIndex).findLastIndex((bundleEntry) => bundleEntry instanceof Element);
|
|
911
|
+
if (scriptIndex !== -1) {
|
|
912
|
+
const script = allModules[scriptIndex];
|
|
913
|
+
const scriptSrc = script.getAttribute("data-turbopack-src") || "";
|
|
914
|
+
const nextIndex = scriptSrc.indexOf("/_next");
|
|
915
|
+
const baseUrl = nextIndex !== -1 ? scriptSrc.slice(0, nextIndex) : "";
|
|
916
|
+
const bundleUrl = `[${bundle}] ${baseUrl}/_next/${url}`;
|
|
917
|
+
return self.__webpack_chunk_load__?.(bundleUrl, bundle);
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
throw new Error(
|
|
921
|
+
`Failed to load Turbopack chunk "${url}" for module "${id}". Check the URL is correct.`
|
|
922
|
+
);
|
|
923
|
+
},
|
|
924
|
+
// global object for this bundle
|
|
925
|
+
g: self.__remote_components_turbopack_global__?.[bundle],
|
|
926
|
+
m: moduleExports,
|
|
927
|
+
e: exports
|
|
750
928
|
};
|
|
751
929
|
}
|
|
930
|
+
|
|
931
|
+
// src/shared/client/turbopack-patterns.ts
|
|
932
|
+
var REMOTE_SHARED_MARKER_RE = /(?:self|[a-z])\.TURBOPACK_REMOTE_SHARED/;
|
|
933
|
+
var REMOTE_SHARED_ASSIGNMENT_RE = /\.TURBOPACK_REMOTE_SHARED=await (?:__turbopack_context__|e)\.A\((?<sharedModuleId>[0-9]+)\)/;
|
|
934
|
+
var ASYNC_MODULE_LOADER_RE = /(?:__turbopack_context__|e)\.A\((?<asyncSharedModuleId>[0-9]+)\)/;
|
|
935
|
+
var ASYNC_MODULE_RESOLVE_RE = /(?<ctx>__turbopack_context__|e)=>\{\k<ctx>\.v\((?<inner>parentImport|e)=>Promise\.resolve\(\)\.then\(\(\)=>\k<inner>\((?<sharedModuleId>[0-9]+)\)\)\)\}/;
|
|
936
|
+
var ASYNC_MODULE_ALL_RE = /(?<ctx>__turbopack_context__|e)=>\{\k<ctx>\.v\((?<vCb>parentImport|t)=>Promise\.all\(\["[^"]+"\]\.map\((?<mapCb>chunk|t)=>\k<ctx>\.l\(\k<mapCb>\)\)\)\.then\(\(\)=>\k<vCb>\((?<sharedModuleId>[0-9]+)\)\)\)\}/;
|
|
937
|
+
|
|
938
|
+
// src/shared/client/shared-modules.ts
|
|
752
939
|
async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {}) {
|
|
753
940
|
const self = globalThis;
|
|
754
941
|
self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};
|
|
@@ -765,14 +952,12 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
765
952
|
return false;
|
|
766
953
|
}
|
|
767
954
|
const funcCode = idOrFunc.toString();
|
|
768
|
-
return
|
|
955
|
+
return REMOTE_SHARED_MARKER_RE.test(funcCode);
|
|
769
956
|
});
|
|
770
957
|
if (sharedModuleInitializerIndex > 0) {
|
|
771
958
|
const sharedModuleInitializerCode = allModules[sharedModuleInitializerIndex].toString();
|
|
772
959
|
const sharedModuleInitializerId = allModules[sharedModuleInitializerIndex - 1];
|
|
773
|
-
const { sharedModuleId } =
|
|
774
|
-
sharedModuleInitializerCode
|
|
775
|
-
)?.groups ?? {};
|
|
960
|
+
const { sharedModuleId } = REMOTE_SHARED_ASSIGNMENT_RE.exec(sharedModuleInitializerCode)?.groups ?? {};
|
|
776
961
|
if (sharedModuleId) {
|
|
777
962
|
const { default: sharedModuleInitializerInstance } = handleTurbopackModule(
|
|
778
963
|
bundle,
|
|
@@ -784,33 +969,11 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
784
969
|
}
|
|
785
970
|
if (sharedModuleInitializer) {
|
|
786
971
|
const { shared } = await sharedModuleInitializer;
|
|
787
|
-
const sharedModuleIds =
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
const newAllModules = self[`TURBOPACK_${bundleKey}`]?.flat() ?? [];
|
|
793
|
-
const asyncSharedModuleIdIndex = newAllModules.indexOf(
|
|
794
|
-
asyncSharedModuleIdNumber
|
|
795
|
-
);
|
|
796
|
-
if (asyncSharedModuleIdIndex !== -1 && typeof newAllModules[asyncSharedModuleIdIndex + 1] === "function") {
|
|
797
|
-
asyncSharedModule = newAllModules[asyncSharedModuleIdIndex + 1];
|
|
798
|
-
}
|
|
799
|
-
if (asyncSharedModule) {
|
|
800
|
-
const asyncSharedModuleCode = asyncSharedModule.toString();
|
|
801
|
-
const { sharedModuleId } = /e=>{e\.v\(e=>Promise\.resolve\(\)\.then\(\(\)=>e\((?<sharedModuleId>[0-9]+)\)\)\)}/.exec(
|
|
802
|
-
asyncSharedModuleCode
|
|
803
|
-
)?.groups ?? /e=>{e\.v\(t=>Promise\.all\(\["[^"]+"\].map\(t=>e\.l\(t\)\)\)\.then\(\(\)=>t\((?<sharedModuleId>[0-9]+)\)\)\)}/.exec(
|
|
804
|
-
asyncSharedModuleCode
|
|
805
|
-
)?.groups ?? {};
|
|
806
|
-
acc[sharedModuleId ?? asyncSharedModuleId] = key.replace(
|
|
807
|
-
"__remote_shared_module_",
|
|
808
|
-
""
|
|
809
|
-
);
|
|
810
|
-
}
|
|
811
|
-
}
|
|
812
|
-
return acc;
|
|
813
|
-
}, {});
|
|
972
|
+
const sharedModuleIds = extractSharedModuleIds(
|
|
973
|
+
shared,
|
|
974
|
+
bundleKey,
|
|
975
|
+
self
|
|
976
|
+
);
|
|
814
977
|
return Promise.all(
|
|
815
978
|
Object.entries(sharedModuleIds).map(async ([id, module]) => {
|
|
816
979
|
if (self.__remote_shared_modules__?.[bundle]) {
|
|
@@ -834,6 +997,31 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
834
997
|
})
|
|
835
998
|
);
|
|
836
999
|
}
|
|
1000
|
+
function extractSharedModuleIds(shared, bundleKey, self) {
|
|
1001
|
+
return Object.entries(shared).filter(([, value]) => typeof value === "function").reduce((acc, [key, value]) => {
|
|
1002
|
+
const { asyncSharedModuleId } = ASYNC_MODULE_LOADER_RE.exec(value.toString())?.groups ?? {};
|
|
1003
|
+
if (asyncSharedModuleId) {
|
|
1004
|
+
const asyncSharedModuleIdNumber = Number(asyncSharedModuleId);
|
|
1005
|
+
let asyncSharedModule;
|
|
1006
|
+
const newAllModules = self[`TURBOPACK_${bundleKey}`]?.flat() ?? [];
|
|
1007
|
+
const asyncSharedModuleIdIndex = newAllModules.indexOf(
|
|
1008
|
+
asyncSharedModuleIdNumber
|
|
1009
|
+
);
|
|
1010
|
+
if (asyncSharedModuleIdIndex !== -1 && typeof newAllModules[asyncSharedModuleIdIndex + 1] === "function") {
|
|
1011
|
+
asyncSharedModule = newAllModules[asyncSharedModuleIdIndex + 1];
|
|
1012
|
+
}
|
|
1013
|
+
if (asyncSharedModule) {
|
|
1014
|
+
const asyncSharedModuleCode = asyncSharedModule.toString();
|
|
1015
|
+
const { sharedModuleId } = ASYNC_MODULE_RESOLVE_RE.exec(asyncSharedModuleCode)?.groups ?? ASYNC_MODULE_ALL_RE.exec(asyncSharedModuleCode)?.groups ?? {};
|
|
1016
|
+
acc[sharedModuleId ?? asyncSharedModuleId] = key.replace(
|
|
1017
|
+
"__remote_shared_module_",
|
|
1018
|
+
""
|
|
1019
|
+
);
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
return acc;
|
|
1023
|
+
}, {});
|
|
1024
|
+
}
|
|
837
1025
|
function getSharedModule(bundle, id) {
|
|
838
1026
|
const self = globalThis;
|
|
839
1027
|
for (const [key, value] of Object.entries(
|
|
@@ -845,210 +1033,100 @@ function getSharedModule(bundle, id) {
|
|
|
845
1033
|
}
|
|
846
1034
|
return null;
|
|
847
1035
|
}
|
|
848
|
-
|
|
1036
|
+
|
|
1037
|
+
// src/shared/client/webpack-adapter.ts
|
|
1038
|
+
async function setupWebpackRuntime(runtime, scripts = [], url = new URL(location.href), bundle, shared = {}, remoteShared = {}) {
|
|
849
1039
|
const self = globalThis;
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
(bundleEntry) => typeof bundleEntry === "string" && bundleEntry.startsWith(moduleId) || bundleEntry === normalizedId
|
|
860
|
-
);
|
|
1040
|
+
if (!self.__remote_bundle_url__) {
|
|
1041
|
+
self.__remote_bundle_url__ = {};
|
|
1042
|
+
}
|
|
1043
|
+
self.__remote_bundle_url__[bundle ?? "default"] = url;
|
|
1044
|
+
self.__webpack_get_script_filename__ = () => null;
|
|
1045
|
+
if (typeof self.__webpack_require__ !== "function" || self.__webpack_require_type__ !== "turbopack") {
|
|
1046
|
+
if (!self.__original_webpack_require__ && !self.__original_webpack_chunk_load__) {
|
|
1047
|
+
self.__original_webpack_chunk_load__ = self.__webpack_chunk_load__;
|
|
1048
|
+
self.__original_webpack_require__ = self.__webpack_require__;
|
|
861
1049
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
1050
|
+
self.__webpack_chunk_load__ = createChunkLoader(runtime);
|
|
1051
|
+
self.__webpack_require__ = createModuleRequire(runtime);
|
|
1052
|
+
self.__webpack_require_type__ = runtime;
|
|
1053
|
+
if (self.__remote_webpack_require__ && runtime === RUNTIME_TURBOPACK) {
|
|
1054
|
+
const remoteBundle = bundle ?? "default";
|
|
1055
|
+
self.__remote_webpack_require__[remoteBundle] = self.__webpack_require__;
|
|
1056
|
+
self.__remote_webpack_require__[remoteBundle].type = "turbopack";
|
|
867
1057
|
}
|
|
868
|
-
} else {
|
|
869
|
-
moduleInit = allModules.find(
|
|
870
|
-
(bundleEntry) => typeof bundleEntry === "object" && bundleEntry !== null && moduleId in bundleEntry
|
|
871
|
-
)?.[moduleId];
|
|
872
|
-
}
|
|
873
|
-
const exports = {};
|
|
874
|
-
const moduleExports = { exports };
|
|
875
|
-
if (!self.__remote_components_turbopack_modules__) {
|
|
876
|
-
self.__remote_components_turbopack_modules__ = {};
|
|
877
|
-
}
|
|
878
|
-
if (!self.__remote_components_turbopack_modules__[bundle]) {
|
|
879
|
-
self.__remote_components_turbopack_modules__[bundle] = {};
|
|
880
1058
|
}
|
|
881
|
-
if (
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
1059
|
+
if (runtime === RUNTIME_TURBOPACK) {
|
|
1060
|
+
await Promise.all(
|
|
1061
|
+
scripts.map((script) => {
|
|
1062
|
+
if (script.src) {
|
|
1063
|
+
return self.__webpack_chunk_load__?.(script.src, bundle);
|
|
1064
|
+
}
|
|
1065
|
+
return Promise.resolve(void 0);
|
|
1066
|
+
})
|
|
887
1067
|
);
|
|
888
1068
|
}
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
});
|
|
937
|
-
} else {
|
|
938
|
-
const getterFn = tagOrFunc;
|
|
939
|
-
if (typeof bindings[i] === "function") {
|
|
940
|
-
const setterFn = bindings[i++];
|
|
941
|
-
Object.defineProperty(mod, propName, {
|
|
942
|
-
get: getterFn,
|
|
943
|
-
set: setterFn,
|
|
944
|
-
enumerable: true
|
|
945
|
-
});
|
|
946
|
-
} else {
|
|
947
|
-
Object.defineProperty(mod, propName, {
|
|
948
|
-
get: getterFn,
|
|
949
|
-
enumerable: true
|
|
950
|
-
});
|
|
951
|
-
}
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
}
|
|
955
|
-
},
|
|
956
|
-
// import
|
|
957
|
-
i(importId) {
|
|
958
|
-
let mod;
|
|
959
|
-
if (typeof importId === "string") {
|
|
960
|
-
const { exportSource, exportName } = /\s+<export (?<exportSource>.*?) as (?<exportName>.*?)>$/.exec(
|
|
961
|
-
importId
|
|
962
|
-
)?.groups ?? {};
|
|
963
|
-
const normalizedId = importId.replace(
|
|
964
|
-
/\s+<export(?<specifier>.*)>$/,
|
|
965
|
-
""
|
|
966
|
-
);
|
|
967
|
-
mod = self.__webpack_require__?.(
|
|
968
|
-
`[${bundle}] ${normalizedId}`
|
|
969
|
-
);
|
|
970
|
-
if (exportSource && exportName && (exportSource === "*" || typeof mod[exportSource] !== "undefined") && typeof mod[exportName] === "undefined") {
|
|
971
|
-
if (exportSource === "*") {
|
|
972
|
-
mod[exportName] = mod;
|
|
973
|
-
} else {
|
|
974
|
-
mod[exportName] = mod[exportSource];
|
|
975
|
-
}
|
|
976
|
-
}
|
|
977
|
-
} else {
|
|
978
|
-
mod = self.__webpack_require__?.(`[${bundle}] ${importId}`);
|
|
979
|
-
}
|
|
980
|
-
if (typeof mod !== "object") {
|
|
981
|
-
mod = { default: mod };
|
|
982
|
-
} else if (!("default" in mod) && // eslint-disable-next-line @typescript-eslint/no-base-to-string
|
|
983
|
-
mod.toString() !== "[object Module]") {
|
|
984
|
-
try {
|
|
985
|
-
mod.default = mod;
|
|
986
|
-
} catch {
|
|
1069
|
+
const coreShared = {
|
|
1070
|
+
react: async () => (await import("react")).default,
|
|
1071
|
+
"react-dom": async () => (await import("react-dom")).default,
|
|
1072
|
+
"react/jsx-dev-runtime": async () => (await import("react/jsx-dev-runtime")).default,
|
|
1073
|
+
"react/jsx-runtime": async () => (await import("react/jsx-runtime")).default,
|
|
1074
|
+
"react-dom/client": async () => (await import("react-dom/client")).default,
|
|
1075
|
+
...shared
|
|
1076
|
+
};
|
|
1077
|
+
await initializeSharedModules(
|
|
1078
|
+
bundle ?? "default",
|
|
1079
|
+
// include all core modules as shared
|
|
1080
|
+
coreShared,
|
|
1081
|
+
remoteShared
|
|
1082
|
+
);
|
|
1083
|
+
}
|
|
1084
|
+
function createModuleRequire(runtime) {
|
|
1085
|
+
return (id) => {
|
|
1086
|
+
const self = globalThis;
|
|
1087
|
+
const { bundle, id: moduleId } = id.match(REMOTE_COMPONENT_REGEX)?.groups ?? {
|
|
1088
|
+
bundle: "default",
|
|
1089
|
+
id
|
|
1090
|
+
};
|
|
1091
|
+
const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? "default"] ? self.__remote_webpack_require__[bundle ?? "default"]?.type || "webpack" : runtime;
|
|
1092
|
+
logDebug("WebpackAdapter", `remoteRuntime: "${remoteRuntime}"`);
|
|
1093
|
+
try {
|
|
1094
|
+
if (remoteRuntime === RUNTIME_WEBPACK && bundle && moduleId) {
|
|
1095
|
+
return self.__remote_webpack_require__?.[bundle]?.(moduleId);
|
|
1096
|
+
}
|
|
1097
|
+
const sharedModuleId = moduleId ?? id;
|
|
1098
|
+
const sharedModule = getSharedModule(bundle ?? "default", sharedModuleId);
|
|
1099
|
+
if (sharedModule) {
|
|
1100
|
+
return sharedModule;
|
|
1101
|
+
}
|
|
1102
|
+
if (bundle && moduleId) {
|
|
1103
|
+
return handleTurbopackModule(bundle, moduleId, id);
|
|
1104
|
+
}
|
|
1105
|
+
throw new Error(`Module "${id}" not found.`);
|
|
1106
|
+
} catch (requireError) {
|
|
1107
|
+
logWarn(
|
|
1108
|
+
"WebpackAdapter",
|
|
1109
|
+
`Module require failed: ${String(requireError)}`
|
|
1110
|
+
);
|
|
1111
|
+
if (typeof self.__original_webpack_require__ !== "function") {
|
|
1112
|
+
throw new RemoteComponentsError(
|
|
1113
|
+
`Module "${id}" not found in remote component bundle "${bundle}".`,
|
|
1114
|
+
{
|
|
1115
|
+
cause: requireError instanceof Error ? requireError : void 0
|
|
987
1116
|
}
|
|
988
|
-
}
|
|
989
|
-
return mod;
|
|
990
|
-
},
|
|
991
|
-
// require
|
|
992
|
-
r(requireId) {
|
|
993
|
-
return self.__webpack_require__?.(`[${bundle}] ${requireId}`);
|
|
994
|
-
},
|
|
995
|
-
// value exports
|
|
996
|
-
v(value) {
|
|
997
|
-
if (typeof value === "function") {
|
|
998
|
-
exports.default = value((vid) => {
|
|
999
|
-
return self.__webpack_require__?.(`[${bundle}] ${vid}`);
|
|
1000
|
-
});
|
|
1001
|
-
} else {
|
|
1002
|
-
moduleExports.exports = value;
|
|
1003
|
-
}
|
|
1004
|
-
},
|
|
1005
|
-
// async module initializer
|
|
1006
|
-
async a(mod) {
|
|
1007
|
-
let result;
|
|
1008
|
-
await mod(
|
|
1009
|
-
() => {
|
|
1010
|
-
},
|
|
1011
|
-
(value) => result = value
|
|
1012
1117
|
);
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
},
|
|
1022
|
-
// chunk loader
|
|
1023
|
-
l(url) {
|
|
1024
|
-
const moduleInitIndex = allModules.indexOf(moduleInit);
|
|
1025
|
-
if (moduleInitIndex !== -1) {
|
|
1026
|
-
const scriptIndex = allModules.slice(0, moduleInitIndex).findLastIndex((bundleEntry) => bundleEntry instanceof Element);
|
|
1027
|
-
if (scriptIndex !== -1) {
|
|
1028
|
-
const script = allModules[scriptIndex];
|
|
1029
|
-
const scriptSrc = script.getAttribute("data-turbopack-src") || "";
|
|
1030
|
-
const nextIndex = scriptSrc.indexOf("/_next");
|
|
1031
|
-
const baseUrl = nextIndex !== -1 ? scriptSrc.slice(0, nextIndex) : "";
|
|
1032
|
-
const bundleUrl = `[${bundle}] ${baseUrl}/_next/${url}`;
|
|
1033
|
-
return self.__webpack_chunk_load__?.(bundleUrl, bundle);
|
|
1034
|
-
}
|
|
1035
|
-
}
|
|
1036
|
-
throw new Error(
|
|
1037
|
-
`Failed to load Turbopack chunk "${url}" for module "${id}". Check the URL is correct.`
|
|
1118
|
+
}
|
|
1119
|
+
try {
|
|
1120
|
+
logDebug("WebpackAdapter", "Falling back to original webpack require");
|
|
1121
|
+
return self.__original_webpack_require__(id);
|
|
1122
|
+
} catch (originalError) {
|
|
1123
|
+
throw new RemoteComponentsError(
|
|
1124
|
+
`Module "${id}" not found in remote component bundle "${bundle}".`,
|
|
1125
|
+
{ cause: originalError instanceof Error ? originalError : void 0 }
|
|
1038
1126
|
);
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
m: moduleExports,
|
|
1043
|
-
e: exports
|
|
1044
|
-
},
|
|
1045
|
-
moduleExports,
|
|
1046
|
-
exports
|
|
1047
|
-
);
|
|
1048
|
-
if (self.__remote_components_turbopack_modules__[bundle][moduleId] !== moduleExports.exports) {
|
|
1049
|
-
self.__remote_components_turbopack_modules__[bundle][moduleId] = moduleExports.exports;
|
|
1050
|
-
}
|
|
1051
|
-
return moduleExports.exports;
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
};
|
|
1052
1130
|
}
|
|
1053
1131
|
|
|
1054
1132
|
// src/shared/client/component-loader.ts
|
|
@@ -1076,6 +1154,18 @@ async function loadRemoteComponent({
|
|
|
1076
1154
|
await loadScripts(scripts);
|
|
1077
1155
|
}
|
|
1078
1156
|
const hostShared = await shared;
|
|
1157
|
+
logDebug(
|
|
1158
|
+
"ComponentLoader",
|
|
1159
|
+
`loadRemoteComponent: bundle="${bundle}", name="${name}"`
|
|
1160
|
+
);
|
|
1161
|
+
logDebug(
|
|
1162
|
+
"ComponentLoader",
|
|
1163
|
+
`Host shared modules available: ${Object.keys(hostShared)}`
|
|
1164
|
+
);
|
|
1165
|
+
logDebug(
|
|
1166
|
+
"ComponentLoader",
|
|
1167
|
+
`Remote shared modules requested: ${JSON.stringify(remoteShared)}`
|
|
1168
|
+
);
|
|
1079
1169
|
await setupWebpackRuntime(
|
|
1080
1170
|
runtime,
|
|
1081
1171
|
scripts,
|
|
@@ -1095,6 +1185,11 @@ async function loadRemoteComponent({
|
|
|
1095
1185
|
(acc, [key, value]) => {
|
|
1096
1186
|
if (typeof hostShared[value] !== "undefined") {
|
|
1097
1187
|
acc[key.replace(/^\(ssr\)\/(?<relative>\.\/)?/, "")] = hostShared[value];
|
|
1188
|
+
} else {
|
|
1189
|
+
logDebug(
|
|
1190
|
+
"ComponentLoader",
|
|
1191
|
+
`Remote requests "${value}" but host doesn't provide it`
|
|
1192
|
+
);
|
|
1098
1193
|
}
|
|
1099
1194
|
return acc;
|
|
1100
1195
|
},
|
|
@@ -1110,6 +1205,11 @@ async function loadRemoteComponent({
|
|
|
1110
1205
|
})
|
|
1111
1206
|
);
|
|
1112
1207
|
applySharedModules(bundle, resolve);
|
|
1208
|
+
} else {
|
|
1209
|
+
logWarn(
|
|
1210
|
+
"ComponentLoader",
|
|
1211
|
+
"No bundle specified, skipping shared module setup"
|
|
1212
|
+
);
|
|
1113
1213
|
}
|
|
1114
1214
|
if (data.length > 0) {
|
|
1115
1215
|
return await loadRSCComponent(rscName ?? name, data);
|
|
@@ -1489,9 +1589,10 @@ function RemoteComponent({
|
|
|
1489
1589
|
};
|
|
1490
1590
|
const res = await fetch(url, fetchInit);
|
|
1491
1591
|
if (!res.ok) {
|
|
1492
|
-
let error = failedToFetchRemoteComponentError(
|
|
1493
|
-
|
|
1494
|
-
|
|
1592
|
+
let error = failedToFetchRemoteComponentError(
|
|
1593
|
+
url.href,
|
|
1594
|
+
res
|
|
1595
|
+
);
|
|
1495
1596
|
try {
|
|
1496
1597
|
const body = await res.text();
|
|
1497
1598
|
const parser2 = new DOMParser();
|