remote-components 0.0.3 → 0.0.5

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.
@@ -174,7 +174,9 @@ async function webpackRuntime() {
174
174
  return Promise.resolve([]);
175
175
  };
176
176
  }
177
- const { createFromReadableStream } = await import("react-server-dom-webpack/client.browser");
177
+ const {
178
+ default: { createFromReadableStream }
179
+ } = await import("react-server-dom-webpack/client.browser");
178
180
  async function preloadScripts(scripts, url, bundle, _) {
179
181
  await Promise.all(
180
182
  scripts.map((script) => {
@@ -193,10 +195,7 @@ async function webpackRuntime() {
193
195
  const scriptSrc = script.getAttribute("src") || script.getAttribute("data-src");
194
196
  if (scriptSrc) {
195
197
  newScript.src = new URL(
196
- scriptSrc.replace(
197
- /\/_next\/\[remote-component-(?:.+)\](?:%20| )/,
198
- "/_next/"
199
- ),
198
+ scriptSrc.replace(/\/_next\/\[(?:.+)\](?:%20| )/, "/_next/"),
200
199
  url
201
200
  ).href;
202
201
  }
@@ -207,10 +206,11 @@ async function webpackRuntime() {
207
206
  })
208
207
  );
209
208
  const resolve = {
210
- "/react/index.js": await import("react"),
211
- "/react/jsx-dev-runtime.js": await import("react/jsx-dev-runtime"),
212
- "/react/jsx-runtime.js": await import("react/jsx-runtime"),
213
- "/react-dom/index.js": await import("react-dom")
209
+ "/react/index.js": (await import("react")).default,
210
+ "/react/jsx-dev-runtime.js": (await import("react/jsx-dev-runtime")).default,
211
+ "/react/jsx-runtime.js": (await import("react/jsx-runtime")).default,
212
+ "/react-dom/index.js": (await import("react-dom")).default,
213
+ "/react-dom/client.js": (await import("react-dom/client")).default
214
214
  };
215
215
  applySharedModules(bundle, resolve);
216
216
  }
@@ -230,19 +230,6 @@ var init_webpack = __esm({
230
230
  }
231
231
  });
232
232
 
233
- // src/shared/client/script-loader.ts
234
- function loadCSS(url) {
235
- const link = document.createElement("link");
236
- link.rel = "stylesheet";
237
- link.href = url;
238
- document.head.appendChild(link);
239
- }
240
- var init_script_loader = __esm({
241
- "src/shared/client/script-loader.ts"() {
242
- "use strict";
243
- }
244
- });
245
-
246
233
  // src/shared/client/const.ts
247
234
  function getBundleKey(bundle) {
248
235
  return bundle.replace(/-/g, "_");
@@ -253,14 +240,13 @@ var init_const = __esm({
253
240
  "use strict";
254
241
  RUNTIME_WEBPACK = "webpack";
255
242
  RUNTIME_TURBOPACK = "turbopack";
256
- REMOTE_COMPONENT_REGEX = /(?<prefix>.*)?\[(?<bundle>remote-component-(?:[^\]]+))\](?:%20| )(?<id>.+)/;
243
+ REMOTE_COMPONENT_REGEX = /(?<prefix>.*?)\[(?<bundle>[^\]]+)\](?:%20| )(?<id>.+)/;
257
244
  }
258
245
  });
259
246
 
260
247
  // src/shared/client/webpack-adapter.ts
261
248
  async function setupWebpackRuntime(runtime, scripts = [], url = new URL(location.href), bundle, shared = {}, remoteShared = {}) {
262
249
  const self = globalThis;
263
- self.__DISABLE_WEBPACK_EXEC__ = true;
264
250
  if (!self.__remote_bundle_url__) {
265
251
  self.__remote_bundle_url__ = {};
266
252
  }
@@ -280,20 +266,20 @@ async function setupWebpackRuntime(runtime, scripts = [], url = new URL(location
280
266
  self.__remote_webpack_require__[remoteBundle].type = "turbopack";
281
267
  }
282
268
  }
283
- await Promise.all(
284
- scripts.map((script) => {
285
- if (script.src) {
286
- return self.__webpack_chunk_load__?.(script.src, bundle);
287
- }
288
- return Promise.resolve(void 0);
289
- })
290
- );
269
+ if (runtime === RUNTIME_TURBOPACK) {
270
+ await Promise.all(
271
+ scripts.map((script) => {
272
+ if (script.src) {
273
+ return self.__webpack_chunk_load__?.(script.src, bundle);
274
+ }
275
+ return Promise.resolve(void 0);
276
+ })
277
+ );
278
+ }
291
279
  }
292
280
  function createChunkLoader(runtime) {
293
281
  return function __turbopack_chunk_load__(chunkId, scriptBundle) {
294
- if (runtime === RUNTIME_WEBPACK) {
295
- return Promise.resolve(void 0);
296
- }
282
+ const self = globalThis;
297
283
  const {
298
284
  bundle,
299
285
  id: path,
@@ -302,7 +288,10 @@ function createChunkLoader(runtime) {
302
288
  bundle: scriptBundle ?? "",
303
289
  id: chunkId
304
290
  };
305
- const self = globalThis;
291
+ const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? "default"] ? self.__remote_webpack_require__[bundle ?? "default"]?.type || "webpack" : runtime;
292
+ if (remoteRuntime === RUNTIME_WEBPACK) {
293
+ return Promise.resolve(void 0);
294
+ }
306
295
  const url = new URL(
307
296
  path ? `${prefix ?? ""}${path}`.replace(
308
297
  /(?<char>[^:])(?<double>\/\/)/g,
@@ -311,7 +300,6 @@ function createChunkLoader(runtime) {
311
300
  self.__remote_bundle_url__?.[bundle ?? "default"] ?? new URL(location.origin)
312
301
  ).href;
313
302
  if (url.endsWith(".css")) {
314
- loadCSS(url);
315
303
  return;
316
304
  }
317
305
  return new Promise((resolve, reject) => {
@@ -343,12 +331,18 @@ async function handleTurbopackChunk(code, bundle, url) {
343
331
  /TURBOPACK_CHUNK_UPDATE_LISTENERS/g,
344
332
  `TURBOPACK_CHUNK_UPDATE_LISTENERS_${bundleKey}`
345
333
  ).replace(/__next_require__/g, `__${bundleKey}_next_require__`).replace(
346
- /\/\/# sourceMappingURL=(?<name>.+)\._\.js\.map/g,
347
- `//# sourceMappingURL=${new URL(".", new URL(url)).pathname}$1._.js.map`
334
+ /\/\/# sourceMappingURL=(?<name>.+)(?<optional>\._)?\.js\.map/g,
335
+ `//# sourceMappingURL=${new URL(
336
+ ".",
337
+ new URL(
338
+ url,
339
+ self.__remote_bundle_url__?.[bundle] ?? new URL(location.origin)
340
+ )
341
+ ).href}$1$2.js.map`
348
342
  );
349
343
  await new Promise((scriptResolve, scriptReject) => {
350
344
  const blob = new Blob([transformedCode], {
351
- type: "application/javascript"
345
+ type: "application/javascript; charset=UTF-8"
352
346
  });
353
347
  const scriptUrl = URL.createObjectURL(blob);
354
348
  const script = document.createElement("script");
@@ -391,8 +385,9 @@ function createModuleRequire(runtime) {
391
385
  return (id) => {
392
386
  const self = globalThis;
393
387
  const { bundle, id: moduleId } = id.match(REMOTE_COMPONENT_REGEX)?.groups ?? { bundle: "default", id };
388
+ const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? "default"] ? self.__remote_webpack_require__[bundle ?? "default"]?.type || "webpack" : runtime;
394
389
  try {
395
- if (runtime === RUNTIME_WEBPACK && bundle && moduleId) {
390
+ if (remoteRuntime === RUNTIME_WEBPACK && bundle && moduleId) {
396
391
  return self.__remote_webpack_require__?.[bundle]?.(moduleId);
397
392
  }
398
393
  const sharedModule = getSharedModule(bundle ?? "default", moduleId ?? id);
@@ -500,7 +495,6 @@ function handleTurbopackModule(bundle, moduleId, id) {
500
495
  var init_webpack_adapter = __esm({
501
496
  "src/shared/client/webpack-adapter.ts"() {
502
497
  "use strict";
503
- init_script_loader();
504
498
  init_const();
505
499
  }
506
500
  });
@@ -520,12 +514,14 @@ async function turbopackRuntime(url, bundle, shared, remoteShared) {
520
514
  self.__remote_component_shared__ ?? shared,
521
515
  remoteShared
522
516
  );
523
- const { createFromReadableStream } = await import("react-server-dom-webpack/client.browser");
517
+ const {
518
+ default: { createFromReadableStream }
519
+ } = await import("react-server-dom-webpack/client.browser");
524
520
  function preloadScripts(scripts, __) {
525
521
  return setupWebpackRuntime(
526
522
  "turbopack",
527
523
  scripts.map((script) => ({
528
- src: script.src || script.getAttribute("data-src")
524
+ src: script.getAttribute("src") || script.getAttribute("data-src") || script.src
529
525
  })),
530
526
  url,
531
527
  bundle,
@@ -553,6 +549,70 @@ var init_turbopack = __esm({
553
549
  // src/html/host.tsx
554
550
  var import_client = require("react-dom/client");
555
551
 
552
+ // src/shared/client/rsc.ts
553
+ function fixPayload(payload) {
554
+ if (Array.isArray(payload)) {
555
+ if (payload[0] === "$") {
556
+ fixPayload(payload[3]);
557
+ if (payload.length === 4) {
558
+ payload.push(null, null, 1);
559
+ }
560
+ } else {
561
+ for (const item of payload) {
562
+ fixPayload(item);
563
+ }
564
+ }
565
+ } else if (typeof payload === "object" && payload !== null) {
566
+ for (const key in payload) {
567
+ fixPayload(payload[key]);
568
+ }
569
+ }
570
+ }
571
+ function createRSCStream(name, data) {
572
+ return new ReadableStream({
573
+ type: "bytes",
574
+ start(controller) {
575
+ const encoder = new TextEncoder();
576
+ const self = globalThis;
577
+ if (!self[name] && data.length > 0) {
578
+ data.forEach((chunk) => {
579
+ const lines = chunk.split("\n");
580
+ for (const line of lines) {
581
+ const match = /\.push\("(?<rsc>.*)"\);$/.exec(line);
582
+ if (match?.groups?.rsc) {
583
+ self[name] = self[name] ?? [];
584
+ self[name].push(JSON.parse(`"${match.groups.rsc}"`));
585
+ }
586
+ }
587
+ });
588
+ }
589
+ const allChunks = (self[name] ?? [`0:[null]
590
+ `]).join("");
591
+ allChunks.split("\n").forEach((chunk) => {
592
+ if (chunk.length > 0) {
593
+ const { id, prefix, payload } = /(?<id>[0-9a-zA-Z]+):(?<prefix>[A-Z])?(?<payload>\[.*\])/.exec(
594
+ chunk
595
+ )?.groups ?? {};
596
+ if (payload) {
597
+ const jsonPayload = JSON.parse(payload);
598
+ fixPayload(jsonPayload);
599
+ const reconstruct = `${id}:${prefix ?? ""}${JSON.stringify(jsonPayload)}`;
600
+ controller.enqueue(encoder.encode(`${reconstruct}
601
+ `));
602
+ } else {
603
+ controller.enqueue(encoder.encode(`${chunk}
604
+ `));
605
+ }
606
+ } else {
607
+ controller.enqueue(encoder.encode(`${chunk}
608
+ `));
609
+ }
610
+ });
611
+ controller.close();
612
+ }
613
+ });
614
+ }
615
+
556
616
  // src/html/runtime/index.ts
557
617
  async function getRuntime(type, url, bundle, shared, remoteShared) {
558
618
  if (typeof globalThis.process === "undefined") {
@@ -715,11 +775,11 @@ if (typeof HTMLElement !== "undefined") {
715
775
  url ?? new URL(location.href),
716
776
  this.bundle,
717
777
  {
718
- react: () => import("react"),
719
- "react/jsx-dev-runtime": () => import("react/jsx-dev-runtime"),
720
- "react/jsx-runtime": () => import("react/jsx-runtime"),
721
- "react-dom": () => import("react-dom"),
722
- "react-dom/client": () => import("react-dom/client")
778
+ react: async () => (await import("react")).default,
779
+ "react/jsx-dev-runtime": async () => (await import("react/jsx-dev-runtime")).default,
780
+ "react/jsx-runtime": async () => (await import("react/jsx-runtime")).default,
781
+ "react-dom": async () => (await import("react-dom")).default,
782
+ "react-dom/client": async () => (await import("react-dom/client")).default
723
783
  },
724
784
  remoteShared
725
785
  );
@@ -743,21 +803,10 @@ if (typeof HTMLElement !== "undefined") {
743
803
  const RemoteComponentFromReadableStream = ({
744
804
  name
745
805
  }) => {
806
+ const stream = createRSCStream(name, self[name] ?? [`0:[null]
807
+ `]);
746
808
  const Component = cache ?? // cache the component to avoid reloading the RSC flight data
747
- (cache = createFromReadableStream(
748
- // convert the RSC flight data array into a ReadableStream
749
- new ReadableStream({
750
- type: "bytes",
751
- start(controller) {
752
- const encoder = new TextEncoder();
753
- (self[name] ?? [`0:[null]
754
- `]).forEach((chunk) => {
755
- controller.enqueue(encoder.encode(chunk));
756
- });
757
- controller.close();
758
- }
759
- })
760
- ));
809
+ (cache = createFromReadableStream(stream));
761
810
  return Component;
762
811
  };
763
812
  (0, import_client.hydrateRoot)(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/webpack/shared-modules.ts","../../src/shared/webpack/next-client-pages-loader.ts","../../src/html/runtime/webpack.ts","../../src/shared/client/script-loader.ts","../../src/shared/client/const.ts","../../src/shared/client/webpack-adapter.ts","../../src/html/runtime/turbopack.ts","../../src/html/host.tsx","../../src/html/runtime/index.ts"],"sourcesContent":["// Webpack shared module patching\n// used in multiple remote component host types\n// multiple host types includes: HTML custom element for remote components and Next.js host application\n// we are using this shared function to patch a Webpack module map\n// to use shared modules between the host application and the remote component\nexport function applySharedModules(\n bundle: string,\n resolve: Record<string, unknown>,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n } & Record<string, string[]>;\n\n // if we have the bundle\n if (self.__remote_webpack_require__?.[bundle]) {\n const modulePaths = Object.keys(\n self.__remote_webpack_module_map__?.[bundle] ??\n self.__remote_webpack_require__[bundle].m ??\n {},\n );\n // patch all modules in the bundle to use the shared modules\n for (const [key, value] of Object.entries(resolve)) {\n const ids = modulePaths.filter((p) => p.includes(key));\n for (let id of ids) {\n const webpackBundle = self.__remote_webpack_require__[bundle];\n if (webpackBundle.m) {\n // if we have a module map, we need to use the mapped id\n // this is required for production builds where the module ids are module id numbers\n if (self.__remote_webpack_module_map__?.[bundle]?.[id]) {\n id = `${self.__remote_webpack_module_map__[bundle][id]}`;\n }\n // create a mock module which exports the shared module\n webpackBundle.m[id] = (module) => {\n module.exports = value;\n };\n }\n }\n }\n }\n}\n","// module loader for Next.js Pages Router\nexport function nextClientPagesLoader(\n bundle: string,\n route: string,\n styleContainer: HTMLHeadElement | ShadowRoot | null = document.head,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string | number) => unknown) & {\n c?: Record<\n string | number,\n { id: string; parents: string[]; children: string[] }\n >;\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n type?: 'turbopack' | 'webpack';\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // Next.js client pages loader reference storage\n __NEXT_P?: [\n (\n | [\n string,\n () => { default?: React.ComponentType<Record<string, unknown>> },\n ]\n | undefined\n ),\n (\n | [\n string,\n () => {\n default?: React.ComponentType<\n {\n Component: React.ComponentType<Record<string, unknown>>;\n } & Record<string, unknown>\n >;\n },\n ]\n | undefined\n ),\n (\n | [\n string,\n () => {\n default?: React.ComponentType<\n {\n Component: React.ComponentType<Record<string, unknown>>;\n } & Record<string, unknown>\n >;\n },\n ]\n | undefined\n ),\n ];\n };\n\n // temporarily remove the original Next.js CSS loader\n const nextCssOriginal = document.getElementById('__next_css__DO_NOT_USE__');\n if (nextCssOriginal) {\n nextCssOriginal.parentNode?.removeChild(nextCssOriginal);\n }\n\n // create a new Next.js CSS loader element\n const nextCss = document.createElement('noscript');\n nextCss.id = '__next_css__DO_NOT_USE__';\n const lastNode =\n document.head.childNodes[document.head.childNodes.length - 1];\n document.head.appendChild(nextCss);\n\n // find the page component loader chunk\n const componentLoaderChunk =\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=${encodeURIComponent(route)}`),\n ) ??\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n self.__remote_webpack_module_map__?.[bundle]?.[\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=${encodeURIComponent(route)}`),\n ) ??\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n ''\n ] ??\n -1;\n\n // find the app loader chunk\n const appLoaderChunk =\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=%2F_app`),\n ) ??\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n self.__remote_webpack_module_map__?.[bundle]?.[\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=%2F_app`),\n ) ??\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n ''\n ] ??\n -1;\n\n // if we didn't find the component loader or app loader, throw an error\n if (!(componentLoaderChunk && appLoaderChunk)) {\n throw new Error(\n `Next.js client pages loader not found in bundle \"${bundle}\"`,\n );\n }\n\n // temporarily store the original __NEXT_P reference\n // this is required to avoid conflicts with the Next.js client pages loader\n // which uses the same global variable to store the page components\n const __NEXT_P_ORIGINAL = self.__NEXT_P;\n const selfOriginal = self;\n delete selfOriginal.__NEXT_P;\n\n // load the component and app loader chunks\n self.__remote_webpack_require__?.[bundle]?.(\n self.__remote_webpack_require__[bundle].type !== 'turbopack'\n ? componentLoaderChunk\n : `[${bundle}] ${componentLoaderChunk}`,\n );\n if (\n typeof appLoaderChunk === 'string' ||\n (typeof appLoaderChunk === 'number' && appLoaderChunk !== -1)\n ) {\n self.__remote_webpack_require__?.[bundle]?.(\n self.__remote_webpack_require__[bundle].type !== 'turbopack'\n ? appLoaderChunk\n : `[${bundle}] ${appLoaderChunk}`,\n );\n }\n\n // if we have the __NEXT_P global variable, we can extract the component and app\n if (self.__NEXT_P) {\n const [, componentLoader] = self.__NEXT_P[0] ?? [\n undefined,\n () => ({ default: null }),\n ];\n const [, appLoader] = self.__NEXT_P[2] ?? [\n undefined,\n () => ({\n default: null,\n }),\n ];\n const { default: Component } = componentLoader();\n const { default: App } = appLoader();\n\n // load the CSS files from the remote bundle\n const cssRE = /\\.s?css$/;\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {})\n .filter((id) => cssRE.test(id))\n .forEach((id) => {\n self.__remote_webpack_require__?.[bundle]?.(id);\n });\n\n Object.keys(self.__remote_webpack_module_map__?.[bundle] ?? {})\n .filter((path) => cssRE.test(path))\n .forEach((path) => {\n const id = self.__remote_webpack_module_map__?.[bundle]?.[path];\n if (id) {\n self.__remote_webpack_require__?.[bundle]?.(id);\n }\n });\n\n // if the styleContainer is provided, we need to move the styles to it\n if (styleContainer) {\n let node = nextCss.previousSibling;\n while (node && node !== lastNode) {\n styleContainer.appendChild(node);\n node = nextCss.previousSibling;\n }\n }\n\n // restore the original __NEXT_P reference\n delete self.__NEXT_P;\n self.__NEXT_P = __NEXT_P_ORIGINAL;\n\n // restore the original Next.js CSS loader\n if (nextCssOriginal) {\n nextCssOriginal.parentNode?.appendChild(nextCssOriginal);\n }\n\n return { Component, App };\n }\n\n return { Component: null, App: null };\n}\n","import { applySharedModules } from '../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../shared/webpack/next-client-pages-loader';\n\n// initializer for the webpack runtime to be able to access modules\n// required to run exposed client components of the remote component\nexport async function webpackRuntime() {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack runtime globals\n __webpack_require__: (remoteId: string) => unknown;\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // conditional flag to disable webpack exec\n __DISABLE_WEBPACK_EXEC__: boolean;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __webpack_require_type__: 'webpack' | 'turbopack';\n } & Record<string, string[]>;\n\n // disable webpack exec to prevent automatically executing the entry module\n self.__DISABLE_WEBPACK_EXEC__ = true;\n // add a custom webpack require function to load remote components from multiple bundles / zones\n if (\n typeof self.__webpack_require__ !== 'function' &&\n self.__webpack_require_type__ !== 'turbopack'\n ) {\n self.__webpack_require__ = (remoteId: string) => {\n const re = /\\[(?<bundle>[a-zA-Z0-9-_]+)\\] (?<id>.*)/;\n const match = re.exec(remoteId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n throw new Error(`Module not found: \"${remoteId}\"`);\n }\n if (typeof self.__remote_webpack_require__?.[bundle] !== 'function') {\n throw new Error(`Remote component loading error \"${bundle}\"`);\n }\n return self.__remote_webpack_require__[bundle](id);\n };\n // not used but required by react-server-dom-webpack\n self.__webpack_chunk_load__ = () => {\n return Promise.resolve([]);\n };\n }\n // we can only import react-server-dom-webpack after initializing the __webpack_require__ and __webpack_chunk_load__ functions\n const { createFromReadableStream } = await import(\n 'react-server-dom-webpack/client.browser'\n );\n\n async function preloadScripts(\n scripts: HTMLScriptElement[],\n url: URL,\n bundle: string,\n _: string,\n ) {\n // we need to properly attach script elements to the document to load the remote component bundles\n // we need to wait for all scripts to load before we can hydrate the remote component\n await Promise.all(\n scripts.map((script) => {\n return new Promise<void>((resolve, reject) => {\n const newScript = document.createElement('script');\n newScript.onload = () => {\n resolve();\n };\n newScript.onerror = () => {\n reject(\n new Error(\n `Failed to load script ${script.src} for remote component`,\n ),\n );\n };\n const scriptSrc =\n script.getAttribute('src') || script.getAttribute('data-src');\n if (scriptSrc) {\n newScript.src = new URL(\n scriptSrc.replace(\n /\\/_next\\/\\[remote-component-(?:.+)\\](?:%20| )/,\n '/_next/',\n ),\n url,\n ).href;\n }\n newScript.async = true;\n document.body.appendChild(newScript);\n // safe to remove the original script element\n script.parentElement?.removeChild(script);\n });\n }),\n );\n\n // module resolution map for the shared modules\n const resolve = {\n '/react/index.js': await import('react'),\n '/react/jsx-dev-runtime.js': await import('react/jsx-dev-runtime'),\n '/react/jsx-runtime.js': await import('react/jsx-runtime'),\n '/react-dom/index.js': await import('react-dom'),\n };\n\n // apply shared modules to the bundle\n applySharedModules(bundle, resolve);\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\n}\n","/**\n * Loads external scripts for remote components\n */\nexport async function loadScripts(scripts: { src: string }[]): Promise<void> {\n await Promise.all(\n scripts.map((script) => {\n return new Promise<void>((resolve, reject) => {\n const newSrc = new URL(\n // remove the remote component bundle name identifier from the script src\n script.src.replace(/\\/_next\\/\\[.+\\] /, '/_next/'),\n location.origin,\n ).href;\n const newScript = document.createElement('script');\n newScript.onload = () => {\n resolve();\n };\n newScript.onerror = () => {\n reject(\n new Error(\n `Failed to load script ${script.src} for remote component`,\n ),\n );\n };\n newScript.src = newSrc;\n newScript.async = true;\n document.head.appendChild(newScript);\n });\n }),\n );\n}\n\n/**\n * Loads a CSS file by creating a link element\n */\nexport function loadCSS(url: string): void {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n document.head.appendChild(link);\n}\n","export const DEFAULT_ROUTE = '/';\n\nexport const RUNTIME_WEBPACK = 'webpack';\nexport const RUNTIME_TURBOPACK = 'turbopack';\n\nexport const REMOTE_COMPONENT_PREFIX = '[remote-component-';\nexport const REMOTE_COMPONENT_REGEX =\n /(?<prefix>.*)?\\[(?<bundle>remote-component-(?:[^\\]]+))\\](?:%20| )(?<id>.+)/;\n\nexport function getBundleKey(bundle: string): string {\n return bundle.replace(/-/g, '_');\n}\n\nexport type Runtime = typeof RUNTIME_WEBPACK | typeof RUNTIME_TURBOPACK;\n","import type { GlobalScope } from './types';\nimport { loadCSS } from './script-loader';\nimport {\n type Runtime,\n RUNTIME_TURBOPACK,\n RUNTIME_WEBPACK,\n REMOTE_COMPONENT_REGEX,\n getBundleKey,\n} from './const';\n\n/**\n * Sets up webpack runtime environment for remote components\n */\nexport async function setupWebpackRuntime(\n runtime: Runtime,\n scripts: { src: string | null }[] = [],\n url: URL = new URL(location.href),\n bundle?: string,\n shared: Record<string, () => Promise<unknown>> = {},\n remoteShared: Record<string, string> = {},\n): Promise<void> {\n const self = globalThis as GlobalScope;\n self.__DISABLE_WEBPACK_EXEC__ = true;\n\n if (!self.__remote_bundle_url__) {\n // eslint-disable-next-line camelcase\n self.__remote_bundle_url__ = {};\n }\n self.__remote_bundle_url__[bundle ?? 'default'] = url;\n\n await initializeSharedModules(bundle ?? 'default', shared, remoteShared);\n if (\n typeof self.__webpack_require__ !== 'function' ||\n self.__webpack_require_type__ !== 'turbopack'\n ) {\n if (\n !self.__original_webpack_require__ &&\n !self.__original_webpack_chunk_load__\n ) {\n // eslint-disable-next-line camelcase\n self.__original_webpack_chunk_load__ = self.__webpack_chunk_load__;\n // eslint-disable-next-line camelcase\n self.__original_webpack_require__ = self.__webpack_require__;\n }\n\n self.__webpack_chunk_load__ = createChunkLoader(runtime);\n self.__webpack_require__ = createModuleRequire(runtime);\n // eslint-disable-next-line camelcase\n self.__webpack_require_type__ = runtime;\n\n if (self.__remote_webpack_require__ && runtime === RUNTIME_TURBOPACK) {\n const remoteBundle = bundle ?? 'default';\n self.__remote_webpack_require__[remoteBundle] =\n self.__webpack_require__ as (remoteId: string | number) => unknown;\n self.__remote_webpack_require__[remoteBundle].type = 'turbopack';\n }\n }\n await Promise.all(\n scripts.map((script) => {\n if (script.src) {\n return self.__webpack_chunk_load__?.(script.src, bundle);\n }\n return Promise.resolve(undefined);\n }),\n );\n}\n\n/**\n * Creates chunk loader function for webpack runtime\n */\nfunction createChunkLoader(\n runtime: Runtime,\n): (chunkId: string) => Promise<unknown> | undefined {\n // eslint-disable-next-line camelcase\n return function __turbopack_chunk_load__(\n chunkId: string,\n scriptBundle?: string,\n ) {\n if (runtime === RUNTIME_WEBPACK) {\n // all scripts are already loaded for this remote\n return Promise.resolve(undefined);\n }\n const {\n bundle,\n id: path,\n prefix,\n } = REMOTE_COMPONENT_REGEX.exec(chunkId)?.groups ?? {\n bundle: scriptBundle ?? '',\n id: chunkId,\n };\n const self = globalThis as GlobalScope;\n const url = new URL(\n path\n ? `${prefix ?? ''}${path}`.replace(\n /(?<char>[^:])(?<double>\\/\\/)/g,\n '$1/',\n )\n : '/',\n self.__remote_bundle_url__?.[bundle ?? 'default'] ??\n new URL(location.origin),\n ).href;\n if (url.endsWith('.css')) {\n loadCSS(url);\n return;\n }\n return new Promise((resolve, reject) => {\n fetch(url)\n .then((res) => res.text())\n .then((code) => {\n if (code.includes('globalThis.TURBOPACK')) {\n return handleTurbopackChunk(code, bundle ?? '', url);\n }\n })\n .then(resolve)\n .catch(reject);\n });\n };\n}\n\n/**\n * Handles Turbopack chunk loading\n */\nasync function handleTurbopackChunk(\n code: string,\n bundle: string,\n url: string,\n): Promise<void> {\n // skip this chunk as it is not needed for remote components\n if (\n code.includes('/next/dist/client/app-next-turbopack.js') &&\n code.includes('importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS')\n ) {\n // remove preload links for this chunk\n const preloadLinks = document.querySelectorAll(\n `link[rel=\"preload\"][href=\"${new URL(url).pathname}\"]`,\n );\n preloadLinks.forEach((preloadLink) => preloadLink.remove());\n return;\n }\n\n const self = globalThis as GlobalScope;\n const bundleKey = getBundleKey(bundle);\n\n // replace global variables with bundle-specific ones\n const transformedCode = code\n .replace(/globalThis\\.TURBOPACK/g, `globalThis.TURBOPACK_${bundleKey}`)\n .replace(\n /TURBOPACK_WORKER_LOCATION/g,\n `TURBOPACK_WORKER_LOCATION_${bundleKey}`,\n )\n .replace(\n /TURBOPACK_NEXT_CHUNK_URLS/g,\n `TURBOPACK_NEXT_CHUNK_URLS_${bundleKey}`,\n )\n .replace(\n /TURBOPACK_CHUNK_UPDATE_LISTENERS/g,\n `TURBOPACK_CHUNK_UPDATE_LISTENERS_${bundleKey}`,\n )\n .replace(/__next_require__/g, `__${bundleKey}_next_require__`)\n .replace(\n /\\/\\/# sourceMappingURL=(?<name>.+)\\._\\.js\\.map/g,\n `//# sourceMappingURL=${new URL('.', new URL(url)).pathname}$1._.js.map`,\n );\n\n // load the script dynamically using a Blob URL\n await new Promise<void>((scriptResolve, scriptReject) => {\n const blob = new Blob([transformedCode], {\n type: 'application/javascript',\n });\n const scriptUrl = URL.createObjectURL(blob);\n const script = document.createElement('script');\n script.src = scriptUrl;\n script.async = true;\n script.onload = () => {\n URL.revokeObjectURL(scriptUrl);\n scriptResolve(undefined);\n };\n script.onerror = (error) => {\n URL.revokeObjectURL(scriptUrl);\n scriptReject(\n new Error(\n `Failed to load script: ${error instanceof Error ? error.message : String(error)}`,\n ),\n );\n };\n document.head.appendChild(script);\n });\n const chunkLists = self[`TURBOPACK_${bundleKey}_CHUNK_LISTS`] as\n | { chunks: string[] }[]\n | undefined;\n const loadChunkLists = [] as (Promise<unknown> | undefined)[];\n while (chunkLists?.length) {\n const { chunks } = chunkLists.shift() ?? { chunks: [] };\n if (chunks.length > 0) {\n chunks.forEach((id: string) => {\n const chunkLoadResult = self.__webpack_chunk_load__?.(\n `[${bundle}] ${url.slice(0, url.indexOf('/_next'))}/_next/${id}`,\n );\n if (chunkLoadResult) {\n loadChunkLists.push(chunkLoadResult);\n }\n });\n }\n }\n if (loadChunkLists.length > 0) {\n await Promise.all(loadChunkLists);\n }\n}\n\n/**\n * Creates module require function for webpack runtime\n */\nfunction createModuleRequire(runtime: Runtime): (id: string) => unknown {\n return (id: string) => {\n const self = globalThis as GlobalScope;\n const { bundle, id: moduleId } = id.match(REMOTE_COMPONENT_REGEX)\n ?.groups ?? { bundle: 'default', id };\n try {\n if (runtime === RUNTIME_WEBPACK && bundle && moduleId) {\n return self.__remote_webpack_require__?.[bundle]?.(moduleId);\n }\n const sharedModule = getSharedModule(bundle ?? 'default', moduleId ?? id);\n if (sharedModule) {\n return sharedModule;\n }\n if (bundle && moduleId) {\n return handleTurbopackModule(bundle, moduleId, id);\n }\n throw new Error(`Module ${id} not found`);\n } catch {\n try {\n return self.__original_webpack_require__?.(id);\n } catch {\n throw new Error(\n `Module ${id} not found in remote component bundle ${bundle}`,\n );\n }\n }\n };\n}\n\nfunction initializeSharedModules(\n bundle: string,\n shared: Record<string, () => Promise<unknown>> = {},\n remoteShared: Record<string, string> = {},\n) {\n const self = globalThis as {\n __remote_shared_modules__?: Record<string, Record<string, unknown>>;\n __next_f?: unknown[];\n };\n // eslint-disable-next-line camelcase\n self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};\n\n if (!self.__remote_shared_modules__[bundle]) {\n self.__remote_shared_modules__[bundle] = {};\n }\n\n // ensure that the shared modules are initialized\n return Promise.all(\n Object.entries(remoteShared).map(async ([id, module]) => {\n if (self.__remote_shared_modules__?.[bundle]) {\n self.__remote_shared_modules__[bundle][\n id.replace('[app-ssr]', '[app-client]')\n ] = await (\n shared[module] ??\n (() =>\n Promise.resolve(\n new Proxy(\n {},\n {\n get(_, prop: string) {\n if (prop !== 'then') {\n // eslint-disable-next-line no-console\n console.warn(\n `Shared dependency \"${module}\" not found for \"${bundle}\" when trying to import \"${prop}\".`,\n );\n }\n },\n },\n ),\n ))\n )();\n }\n }),\n );\n}\n\n/**\n * Returns shared modules for common dependencies\n */\nfunction getSharedModule(bundle: string, id: string): unknown {\n const self = globalThis as {\n __remote_shared_modules__?: Record<string, unknown>;\n };\n\n for (const [key, value] of Object.entries(\n self.__remote_shared_modules__?.[bundle] ?? {},\n )) {\n if (id.includes(key)) {\n return value;\n }\n }\n return null;\n}\n\n/**\n * Handles Turbopack module resolution\n */\nfunction handleTurbopackModule(\n bundle: string,\n moduleId: string,\n id: string,\n): unknown {\n const self = globalThis as GlobalScope;\n const bundleKey = getBundleKey(bundle);\n const modules = (\n self[`TURBOPACK_${bundleKey}`] as\n | [unknown, Record<string, unknown>][]\n | undefined\n )?.find((mod: [unknown, Record<string, unknown>]) => moduleId in mod[1])?.[1];\n const moduleInit = modules?.[moduleId];\n if (typeof moduleInit !== 'function') {\n throw new Error(\n `Module ${id} not found in bundle ${bundle} with id ${moduleId}`,\n );\n }\n const exports = {} as Record<string, unknown>;\n moduleInit({\n // HMR not implemented for Remote Components\n k: {\n register() {\n // omit\n },\n registerExports() {\n // omit\n },\n signature() {\n return () => {\n // omit\n };\n },\n },\n s(m: Record<string, () => unknown>) {\n for (const [key, value] of Object.entries(m)) {\n exports[key] = value;\n }\n },\n i(iid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${iid}`);\n },\n r(rid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${rid}`);\n },\n m: {\n exports,\n },\n });\n for (const [key, value] of Object.entries(exports)) {\n if (typeof value === 'function') {\n exports[key] = value();\n }\n }\n return exports;\n}\n","import { applySharedModules } from '../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../shared/webpack/next-client-pages-loader';\nimport { setupWebpackRuntime } from '../../shared/client/webpack-adapter';\n\n// initializer for the turbopack runtime to be able to access modules\n// required to run exposed client components of the remote component\nexport async function turbopackRuntime(\n url: URL,\n bundle?: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string>,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack runtime globals\n __webpack_require__: (remoteId: string) => unknown;\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // conditional flag to disable webpack exec\n __DISABLE_WEBPACK_EXEC__: boolean;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __remote_component_shared__?: Record<string, () => Promise<unknown>>;\n } & Record<string, string[]>;\n\n await setupWebpackRuntime(\n 'turbopack',\n [],\n url,\n bundle,\n self.__remote_component_shared__ ?? shared,\n remoteShared,\n );\n // we can only import react-server-dom-webpack after initializing the __webpack_require__ and __webpack_chunk_load__ functions\n const { createFromReadableStream } = await import(\n 'react-server-dom-webpack/client.browser'\n );\n\n function preloadScripts(scripts: HTMLScriptElement[], __: URL) {\n return setupWebpackRuntime(\n 'turbopack',\n scripts.map((script) => ({\n src: script.src || script.getAttribute('data-src'),\n })),\n url,\n bundle,\n self.__remote_component_shared__ ?? shared,\n remoteShared,\n );\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\n}\n","import { hydrateRoot } from 'react-dom/client';\nimport { getRuntime, type Runtime } from './runtime';\n\nif (typeof HTMLElement !== 'undefined') {\n class RemoteComponent extends HTMLElement {\n name: string;\n bundle: string;\n fallbackSlot: HTMLSlotElement;\n __next: HTMLDivElement | null = null;\n fouc: HTMLStyleElement | null = null;\n isLoading = false;\n\n constructor() {\n super();\n // use the shadow DOM to encapsulate the component\n this.attachShadow({ mode: 'open' });\n\n // create a slot element to allow the remote component to use the default slot\n this.fallbackSlot = document.createElement('slot');\n this.shadowRoot?.appendChild(this.fallbackSlot);\n\n this.name = this.getAttribute('name') || '__vercel_remote_component';\n this.bundle = 'default';\n\n // load when the custom element has an src, data-ssr attribute or contains an SSR remote component div\n if (\n this.hasAttribute('src') ||\n this.querySelector('div#__REMOTE_COMPONENT__') ||\n this.hasAttribute('data-ssr')\n ) {\n // start loading and hydration\n this.load().catch((e) => {\n throw new Error(`Failed to load remote component: ${e}`);\n });\n }\n }\n\n static get observedAttributes() {\n return ['src'];\n }\n\n // watch for src attribute changes\n // this is required to reload the remote component when the src attribute is added later\n // this is for rendering the custom element using React\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (name === 'src' && oldValue !== newValue) {\n this.load().catch((e) => {\n throw new Error(`Failed to load remote component: ${e}`);\n });\n }\n }\n\n async load() {\n // prevent multiple loads\n if (this.isLoading) {\n return;\n }\n\n this.isLoading = true;\n const src = this.getAttribute('src');\n const remoteComponentChild = this.querySelector(\n 'div#__REMOTE_COMPONENT__',\n );\n\n if (!src && !remoteComponentChild) {\n throw new Error('src attribute is required');\n }\n\n let url: URL | null = null;\n let html = this.innerHTML;\n\n if (!remoteComponentChild && src) {\n url = new URL(src, window.location.href);\n\n // fetch the remote component\n const fetchInit = {\n method: 'GET',\n headers: {\n Accept: 'text/html',\n // pass the public address of the remote component to the server used for module map mutation\n 'Vercel-Remote-Component-Url': url.href,\n },\n credentials: this.getAttribute('credentials') || 'same-origin',\n } as RequestInit;\n\n const res = await fetch(url, fetchInit);\n\n if (!res.ok) {\n throw new Error(\n `Failed to fetch remote component \"${this.name}\": ${res.status}`,\n );\n }\n\n // get the full HTML content as a string\n html = await res.text();\n }\n // create a virtual element which will be used to parse the HTML and extract the component and RSC flight data\n const doc = document.createElement('div');\n doc.innerHTML = html;\n\n // reference to the remote component content\n const component =\n doc.querySelector(`div[data-bundle][data-route][id^=\"${this.name}\"]`) ??\n // fallback to the first element with the data-bundle and data-route attributes when not using a named remote component\n doc.querySelector('div[data-bundle][data-route]') ??\n // fallback to Next.js Pages Router\n doc.querySelector('div#__next');\n const nextData = JSON.parse(\n (\n doc.querySelector('#__NEXT_DATA__') ??\n doc.querySelector('#__REMOTE_NEXT_DATA__')\n )?.textContent ?? 'null',\n ) as {\n props: {\n pageProps: Record<string, unknown>;\n __REMOTE_COMPONENT__?: {\n bundle: string;\n runtime: 'turbopack' | 'webpack';\n };\n };\n page: string;\n buildId: string;\n } | null;\n\n // when using a Next.js Pages Router remote application in development mode\n // we hide the remote component to prevent flickering\n // until the CSS is loaded for the remote component\n if (nextData && nextData.buildId === 'development') {\n this.fouc = document.createElement('style');\n this.fouc.textContent = `:host { display: none; }`;\n this.shadowRoot?.appendChild(this.fouc);\n }\n\n this.name =\n component?.getAttribute('id')?.replace(/_ssr$/, '') ||\n (nextData ? '__next' : this.name);\n // reference to the RSC flight data\n const rsc = doc.querySelector(`#${this.name}_rsc`);\n\n // reference to the bundle containing the client components\n this.bundle =\n component?.getAttribute('data-bundle') ||\n nextData?.props.__REMOTE_COMPONENT__?.bundle ||\n this.bundle;\n\n // add remote component metadata information at the custom element\n const metadata = document.createElement('script');\n metadata.type = 'application/json';\n metadata.setAttribute('data-remote-component', '');\n metadata.textContent = JSON.stringify({\n name: this.name,\n bundle: this.bundle,\n route: component?.getAttribute('data-route') ?? nextData?.page ?? '/',\n runtime:\n component?.getAttribute('data-runtime') ??\n nextData?.props.__REMOTE_COMPONENT__?.runtime,\n });\n this.parentNode?.insertBefore(metadata, this);\n\n const remoteSharedEl = doc.querySelector(`#${this.name}_shared`);\n const remoteShared = (JSON.parse(remoteSharedEl?.textContent ?? '{}') ??\n {}) as Record<string, string>;\n remoteSharedEl?.parentElement?.removeChild(remoteSharedEl);\n\n if (!component || !(rsc || nextData)) {\n throw new Error(`Failed to find component with id \"${this.name}\"`);\n }\n\n // store the original loading content of the custom element\n // this is required to remove the loading content after the remote component is loaded\n const removable = Array.from(this.childNodes);\n\n // reference to all link elements in the remote component\n const links = doc.querySelectorAll<HTMLLinkElement>('link[href]');\n\n // attach each link element to the shadow DOM to load the styles\n await Promise.all(\n Array.from(links).map((link) => {\n return new Promise<void>((resolve, reject) => {\n const newLink = document.createElement('link');\n newLink.onload = () => {\n resolve();\n };\n newLink.onerror = () => {\n reject(\n new Error(\n `Failed to load link ${link.href} for remote component`,\n ),\n );\n };\n for (const attr of link.attributes) {\n if (attr.name === 'href') {\n newLink.setAttribute(\n attr.name,\n new URL(attr.value, url ?? location.origin).href,\n );\n } else {\n newLink.setAttribute(attr.name, attr.value);\n }\n }\n this.shadowRoot?.appendChild(newLink);\n });\n }),\n );\n\n // attach the remote component content to the shadow DOM\n Array.from(component.children).forEach((el) => {\n this.shadowRoot?.appendChild(el);\n });\n\n // clear the loading content of the shadow DOM root\n for (const el of removable) {\n el.parentElement?.removeChild(el);\n }\n this.shadowRoot?.removeChild(this.fallbackSlot);\n\n const {\n self,\n createFromReadableStream,\n nextClientPagesLoader,\n preloadScripts,\n } = await getRuntime(\n (component.getAttribute('data-runtime') ?? 'webpack') as Runtime,\n url ?? new URL(location.href),\n this.bundle,\n {\n react: () => import('react'),\n 'react/jsx-dev-runtime': () => import('react/jsx-dev-runtime'),\n 'react/jsx-runtime': () => import('react/jsx-runtime'),\n 'react-dom': () => import('react-dom'),\n 'react-dom/client': () => import('react-dom/client'),\n },\n remoteShared,\n );\n\n const scripts = doc.querySelectorAll<HTMLScriptElement>(\n 'script[src],script[data-src]',\n );\n if (!url) {\n url = new URL(\n component.getAttribute('data-route') ?? '/',\n window.location.href,\n );\n }\n await preloadScripts(Array.from(scripts), url, this.bundle, this.name);\n\n // using RSC hydration if the RSC flight data is available\n if (rsc) {\n // remove the RSC flight data script element\n rsc.parentElement?.removeChild(rsc);\n\n // reload the RSC flight data script to eval it's content\n const rscClone = document.createElement('script');\n rscClone.id = `${this.name}_rsc`;\n rscClone.textContent = rsc.textContent;\n document.body.appendChild(rscClone);\n\n let cache: React.ReactNode;\n // React component to convert the RSC flight data into a React component\n const RemoteComponentFromReadableStream = ({\n name,\n }: {\n name: string;\n }) => {\n const Component =\n cache ??\n // cache the component to avoid reloading the RSC flight data\n (cache = createFromReadableStream(\n // convert the RSC flight data array into a ReadableStream\n new ReadableStream({\n type: 'bytes',\n start(controller) {\n const encoder = new TextEncoder();\n // get the RSC flight data from the global scope\n // the RSC flight data is stored in an array\n // fallback to an empty RSC payload if the data is not found\n (self[name] ?? [`0:[null]\\n`]).forEach((chunk) => {\n // encode the chunk to a byte buffer\n controller.enqueue(encoder.encode(chunk));\n });\n // close the stream when all chunks are enqueued\n controller.close();\n },\n }),\n ) as React.ReactNode);\n\n // React can handle the component reference and will wait for the component to be ready\n return Component;\n };\n\n // hydrate the remote component using the RSC flight data\n hydrateRoot(\n // hydrateRoot expects a document or element, but it works for the shadow DOM too\n // @ts-expect-error support for shadow DOM\n this.shadowRoot,\n <RemoteComponentFromReadableStream name={this.name} />,\n );\n } else if (nextData) {\n // using Next.js client pages loader if the Next.js hydration data is available\n const { Component, App } = nextClientPagesLoader(\n this.bundle,\n nextData.page,\n this.shadowRoot,\n );\n\n // if we have the component, we can hydrate it\n if (Component) {\n hydrateRoot(\n // hydrateRoot expects a document or element, but it works for the shadow DOM too\n // @ts-expect-error support for shadow DOM\n this.shadowRoot,\n App ? (\n <App Component={Component} {...nextData.props} />\n ) : (\n <Component {...nextData.props} />\n ),\n );\n }\n\n // remove the FOUC workaround style element to show the remote component\n // this is only for development mode\n if (this.fouc) {\n this.shadowRoot?.removeChild(this.fouc);\n }\n }\n\n this.isLoading = false;\n }\n }\n\n // register the custom element\n customElements.define('remote-component', RemoteComponent);\n}\n","export type Runtime = 'webpack' | 'turbopack' | 'esm';\n\nexport async function getRuntime(\n type: Runtime,\n url: URL,\n bundle?: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string>,\n) {\n // minimally mock process.env for browser environments\n if (typeof globalThis.process === 'undefined') {\n globalThis.process = {\n env: {},\n } as NodeJS.Process;\n }\n\n if (type === 'webpack') {\n const { webpackRuntime } = await import(`./webpack`);\n return webpackRuntime();\n } else if (type === 'turbopack') {\n const { turbopackRuntime } = await import(`./turbopack`);\n return turbopackRuntime(url, bundle, shared, remoteShared);\n }\n throw new Error(`Runtime ${type} is not supported`);\n}\n"],"mappings":"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","names":["module","resolve","module","webpackRuntime","turbopackRuntime","nextClientPagesLoader"]}
1
+ {"version":3,"sources":["../../src/shared/webpack/shared-modules.ts","../../src/shared/webpack/next-client-pages-loader.ts","../../src/html/runtime/webpack.ts","../../src/shared/client/const.ts","../../src/shared/client/webpack-adapter.ts","../../src/html/runtime/turbopack.ts","../../src/html/host.tsx","../../src/shared/client/rsc.ts","../../src/html/runtime/index.ts"],"sourcesContent":["// Webpack shared module patching\n// used in multiple remote component host types\n// multiple host types includes: HTML custom element for remote components and Next.js host application\n// we are using this shared function to patch a Webpack module map\n// to use shared modules between the host application and the remote component\nexport function applySharedModules(\n bundle: string,\n resolve: Record<string, unknown>,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n } & Record<string, string[]>;\n\n // if we have the bundle\n if (self.__remote_webpack_require__?.[bundle]) {\n const modulePaths = Object.keys(\n self.__remote_webpack_module_map__?.[bundle] ??\n self.__remote_webpack_require__[bundle].m ??\n {},\n );\n // patch all modules in the bundle to use the shared modules\n for (const [key, value] of Object.entries(resolve)) {\n const ids = modulePaths.filter((p) => p.includes(key));\n for (let id of ids) {\n const webpackBundle = self.__remote_webpack_require__[bundle];\n if (webpackBundle.m) {\n // if we have a module map, we need to use the mapped id\n // this is required for production builds where the module ids are module id numbers\n if (self.__remote_webpack_module_map__?.[bundle]?.[id]) {\n id = `${self.__remote_webpack_module_map__[bundle][id]}`;\n }\n // create a mock module which exports the shared module\n webpackBundle.m[id] = (module) => {\n module.exports = value;\n };\n }\n }\n }\n }\n}\n","// module loader for Next.js Pages Router\nexport function nextClientPagesLoader(\n bundle: string,\n route: string,\n styleContainer: HTMLHeadElement | ShadowRoot | null = document.head,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string | number) => unknown) & {\n c?: Record<\n string | number,\n { id: string; parents: string[]; children: string[] }\n >;\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n type?: 'turbopack' | 'webpack';\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // Next.js client pages loader reference storage\n __NEXT_P?: [\n (\n | [\n string,\n () => { default?: React.ComponentType<Record<string, unknown>> },\n ]\n | undefined\n ),\n (\n | [\n string,\n () => {\n default?: React.ComponentType<\n {\n Component: React.ComponentType<Record<string, unknown>>;\n } & Record<string, unknown>\n >;\n },\n ]\n | undefined\n ),\n (\n | [\n string,\n () => {\n default?: React.ComponentType<\n {\n Component: React.ComponentType<Record<string, unknown>>;\n } & Record<string, unknown>\n >;\n },\n ]\n | undefined\n ),\n ];\n };\n\n // temporarily remove the original Next.js CSS loader\n const nextCssOriginal = document.getElementById('__next_css__DO_NOT_USE__');\n if (nextCssOriginal) {\n nextCssOriginal.parentNode?.removeChild(nextCssOriginal);\n }\n\n // create a new Next.js CSS loader element\n const nextCss = document.createElement('noscript');\n nextCss.id = '__next_css__DO_NOT_USE__';\n const lastNode =\n document.head.childNodes[document.head.childNodes.length - 1];\n document.head.appendChild(nextCss);\n\n // find the page component loader chunk\n const componentLoaderChunk =\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=${encodeURIComponent(route)}`),\n ) ??\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n self.__remote_webpack_module_map__?.[bundle]?.[\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=${encodeURIComponent(route)}`),\n ) ??\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n ''\n ] ??\n -1;\n\n // find the app loader chunk\n const appLoaderChunk =\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=%2F_app`),\n ) ??\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n self.__remote_webpack_module_map__?.[bundle]?.[\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) =>\n key.includes('/webpack/loaders/next-client-pages-loader.js') &&\n key.includes(`page=%2F_app`),\n ) ??\n Object.keys(self.__remote_webpack_module_map__[bundle] ?? {}).find(\n (key) => key.includes('/next/dist/client/page-loader.js'),\n ) ??\n ''\n ] ??\n -1;\n\n // if we didn't find the component loader or app loader, throw an error\n if (!(componentLoaderChunk && appLoaderChunk)) {\n throw new Error(\n `Next.js client pages loader not found in bundle \"${bundle}\"`,\n );\n }\n\n // temporarily store the original __NEXT_P reference\n // this is required to avoid conflicts with the Next.js client pages loader\n // which uses the same global variable to store the page components\n const __NEXT_P_ORIGINAL = self.__NEXT_P;\n const selfOriginal = self;\n delete selfOriginal.__NEXT_P;\n\n // load the component and app loader chunks\n self.__remote_webpack_require__?.[bundle]?.(\n self.__remote_webpack_require__[bundle].type !== 'turbopack'\n ? componentLoaderChunk\n : `[${bundle}] ${componentLoaderChunk}`,\n );\n if (\n typeof appLoaderChunk === 'string' ||\n (typeof appLoaderChunk === 'number' && appLoaderChunk !== -1)\n ) {\n self.__remote_webpack_require__?.[bundle]?.(\n self.__remote_webpack_require__[bundle].type !== 'turbopack'\n ? appLoaderChunk\n : `[${bundle}] ${appLoaderChunk}`,\n );\n }\n\n // if we have the __NEXT_P global variable, we can extract the component and app\n if (self.__NEXT_P) {\n const [, componentLoader] = self.__NEXT_P[0] ?? [\n undefined,\n () => ({ default: null }),\n ];\n const [, appLoader] = self.__NEXT_P[2] ?? [\n undefined,\n () => ({\n default: null,\n }),\n ];\n const { default: Component } = componentLoader();\n const { default: App } = appLoader();\n\n // load the CSS files from the remote bundle\n const cssRE = /\\.s?css$/;\n Object.keys(self.__remote_webpack_require__?.[bundle]?.m ?? {})\n .filter((id) => cssRE.test(id))\n .forEach((id) => {\n self.__remote_webpack_require__?.[bundle]?.(id);\n });\n\n Object.keys(self.__remote_webpack_module_map__?.[bundle] ?? {})\n .filter((path) => cssRE.test(path))\n .forEach((path) => {\n const id = self.__remote_webpack_module_map__?.[bundle]?.[path];\n if (id) {\n self.__remote_webpack_require__?.[bundle]?.(id);\n }\n });\n\n // if the styleContainer is provided, we need to move the styles to it\n if (styleContainer) {\n let node = nextCss.previousSibling;\n while (node && node !== lastNode) {\n styleContainer.appendChild(node);\n node = nextCss.previousSibling;\n }\n }\n\n // restore the original __NEXT_P reference\n delete self.__NEXT_P;\n self.__NEXT_P = __NEXT_P_ORIGINAL;\n\n // restore the original Next.js CSS loader\n if (nextCssOriginal) {\n nextCssOriginal.parentNode?.appendChild(nextCssOriginal);\n }\n\n return { Component, App };\n }\n\n return { Component: null, App: null };\n}\n","import { applySharedModules } from '../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../shared/webpack/next-client-pages-loader';\n\n// initializer for the webpack runtime to be able to access modules\n// required to run exposed client components of the remote component\nexport async function webpackRuntime() {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack runtime globals\n __webpack_require__: (remoteId: string) => unknown;\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // conditional flag to disable webpack exec\n __DISABLE_WEBPACK_EXEC__: boolean;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __webpack_require_type__: 'webpack' | 'turbopack';\n } & Record<string, string[]>;\n\n // disable webpack exec to prevent automatically executing the entry module\n self.__DISABLE_WEBPACK_EXEC__ = true;\n // add a custom webpack require function to load remote components from multiple bundles / zones\n if (\n typeof self.__webpack_require__ !== 'function' &&\n self.__webpack_require_type__ !== 'turbopack'\n ) {\n self.__webpack_require__ = (remoteId: string) => {\n const re = /\\[(?<bundle>[a-zA-Z0-9-_]+)\\] (?<id>.*)/;\n const match = re.exec(remoteId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n throw new Error(`Module not found: \"${remoteId}\"`);\n }\n if (typeof self.__remote_webpack_require__?.[bundle] !== 'function') {\n throw new Error(`Remote component loading error \"${bundle}\"`);\n }\n return self.__remote_webpack_require__[bundle](id);\n };\n // not used but required by react-server-dom-webpack\n self.__webpack_chunk_load__ = () => {\n return Promise.resolve([]);\n };\n }\n // we can only import react-server-dom-webpack after initializing the __webpack_require__ and __webpack_chunk_load__ functions\n const {\n default: { createFromReadableStream },\n } = await import('react-server-dom-webpack/client.browser');\n\n async function preloadScripts(\n scripts: HTMLScriptElement[],\n url: URL,\n bundle: string,\n _: string,\n ) {\n // we need to properly attach script elements to the document to load the remote component bundles\n // we need to wait for all scripts to load before we can hydrate the remote component\n await Promise.all(\n scripts.map((script) => {\n return new Promise<void>((resolve, reject) => {\n const newScript = document.createElement('script');\n newScript.onload = () => {\n resolve();\n };\n newScript.onerror = () => {\n reject(\n new Error(\n `Failed to load script ${script.src} for remote component`,\n ),\n );\n };\n const scriptSrc =\n script.getAttribute('src') || script.getAttribute('data-src');\n if (scriptSrc) {\n newScript.src = new URL(\n scriptSrc.replace(/\\/_next\\/\\[(?:.+)\\](?:%20| )/, '/_next/'),\n url,\n ).href;\n }\n newScript.async = true;\n document.body.appendChild(newScript);\n // safe to remove the original script element\n script.parentElement?.removeChild(script);\n });\n }),\n );\n\n // module resolution map for the shared modules\n const resolve = {\n '/react/index.js': (await import('react')).default,\n '/react/jsx-dev-runtime.js': (await import('react/jsx-dev-runtime'))\n .default,\n '/react/jsx-runtime.js': (await import('react/jsx-runtime')).default,\n '/react-dom/index.js': (await import('react-dom')).default,\n '/react-dom/client.js': (await import('react-dom/client')).default,\n };\n\n // apply shared modules to the bundle\n applySharedModules(bundle, resolve);\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\n}\n","export const DEFAULT_ROUTE = '/';\n\nexport const RUNTIME_WEBPACK = 'webpack';\nexport const RUNTIME_TURBOPACK = 'turbopack';\n\nexport const REMOTE_COMPONENT_REGEX =\n /(?<prefix>.*?)\\[(?<bundle>[^\\]]+)\\](?:%20| )(?<id>.+)/;\n\nexport function getBundleKey(bundle: string): string {\n return bundle.replace(/-/g, '_');\n}\n\nexport type Runtime = typeof RUNTIME_WEBPACK | typeof RUNTIME_TURBOPACK;\n","import type { GlobalScope } from './types';\nimport {\n type Runtime,\n RUNTIME_TURBOPACK,\n RUNTIME_WEBPACK,\n REMOTE_COMPONENT_REGEX,\n getBundleKey,\n} from './const';\n\n/**\n * Sets up webpack runtime environment for remote components\n */\nexport async function setupWebpackRuntime(\n runtime: Runtime,\n scripts: { src: string | null }[] = [],\n url: URL = new URL(location.href),\n bundle?: string,\n shared: Record<string, () => Promise<unknown>> = {},\n remoteShared: Record<string, string> = {},\n): Promise<void> {\n const self = globalThis as GlobalScope;\n\n if (!self.__remote_bundle_url__) {\n // eslint-disable-next-line camelcase\n self.__remote_bundle_url__ = {};\n }\n self.__remote_bundle_url__[bundle ?? 'default'] = url;\n\n await initializeSharedModules(bundle ?? 'default', shared, remoteShared);\n if (\n typeof self.__webpack_require__ !== 'function' ||\n self.__webpack_require_type__ !== 'turbopack'\n ) {\n if (\n !self.__original_webpack_require__ &&\n !self.__original_webpack_chunk_load__\n ) {\n // eslint-disable-next-line camelcase\n self.__original_webpack_chunk_load__ = self.__webpack_chunk_load__;\n // eslint-disable-next-line camelcase\n self.__original_webpack_require__ = self.__webpack_require__;\n }\n\n self.__webpack_chunk_load__ = createChunkLoader(runtime);\n self.__webpack_require__ = createModuleRequire(runtime);\n // eslint-disable-next-line camelcase\n self.__webpack_require_type__ = runtime;\n\n if (self.__remote_webpack_require__ && runtime === RUNTIME_TURBOPACK) {\n const remoteBundle = bundle ?? 'default';\n self.__remote_webpack_require__[remoteBundle] =\n self.__webpack_require__ as (remoteId: string | number) => unknown;\n self.__remote_webpack_require__[remoteBundle].type = 'turbopack';\n }\n }\n if (runtime === RUNTIME_TURBOPACK) {\n await Promise.all(\n scripts.map((script) => {\n if (script.src) {\n return self.__webpack_chunk_load__?.(script.src, bundle);\n }\n return Promise.resolve(undefined);\n }),\n );\n }\n}\n\n/**\n * Creates chunk loader function for webpack runtime\n */\nfunction createChunkLoader(\n runtime: Runtime,\n): (chunkId: string) => Promise<unknown> | undefined {\n // eslint-disable-next-line camelcase\n return function __turbopack_chunk_load__(\n chunkId: string,\n scriptBundle?: string,\n ) {\n const self = globalThis as GlobalScope;\n const {\n bundle,\n id: path,\n prefix,\n } = REMOTE_COMPONENT_REGEX.exec(chunkId)?.groups ?? {\n bundle: scriptBundle ?? '',\n id: chunkId,\n };\n const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? 'default']\n ? self.__remote_webpack_require__[bundle ?? 'default']?.type || 'webpack'\n : runtime;\n if (remoteRuntime === RUNTIME_WEBPACK) {\n // all scripts are already loaded for this remote\n return Promise.resolve(undefined);\n }\n\n const url = new URL(\n path\n ? `${prefix ?? ''}${path}`.replace(\n /(?<char>[^:])(?<double>\\/\\/)/g,\n '$1/',\n )\n : '/',\n self.__remote_bundle_url__?.[bundle ?? 'default'] ??\n new URL(location.origin),\n ).href;\n if (url.endsWith('.css')) {\n return;\n }\n return new Promise((resolve, reject) => {\n fetch(url)\n .then((res) => res.text())\n .then((code) => {\n if (code.includes('globalThis.TURBOPACK')) {\n return handleTurbopackChunk(code, bundle ?? '', url);\n }\n })\n .then(resolve)\n .catch(reject);\n });\n };\n}\n\n/**\n * Handles Turbopack chunk loading\n */\nasync function handleTurbopackChunk(\n code: string,\n bundle: string,\n url: string,\n): Promise<void> {\n // skip this chunk as it is not needed for remote components\n if (\n code.includes('/next/dist/client/app-next-turbopack.js') &&\n code.includes('importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS')\n ) {\n // remove preload links for this chunk\n const preloadLinks = document.querySelectorAll(\n `link[rel=\"preload\"][href=\"${new URL(url).pathname}\"]`,\n );\n preloadLinks.forEach((preloadLink) => preloadLink.remove());\n return;\n }\n\n const self = globalThis as GlobalScope;\n const bundleKey = getBundleKey(bundle);\n\n // replace global variables with bundle-specific ones\n const transformedCode = code\n .replace(/globalThis\\.TURBOPACK/g, `globalThis.TURBOPACK_${bundleKey}`)\n .replace(\n /TURBOPACK_WORKER_LOCATION/g,\n `TURBOPACK_WORKER_LOCATION_${bundleKey}`,\n )\n .replace(\n /TURBOPACK_NEXT_CHUNK_URLS/g,\n `TURBOPACK_NEXT_CHUNK_URLS_${bundleKey}`,\n )\n .replace(\n /TURBOPACK_CHUNK_UPDATE_LISTENERS/g,\n `TURBOPACK_CHUNK_UPDATE_LISTENERS_${bundleKey}`,\n )\n .replace(/__next_require__/g, `__${bundleKey}_next_require__`)\n .replace(\n /\\/\\/# sourceMappingURL=(?<name>.+)(?<optional>\\._)?\\.js\\.map/g,\n `//# sourceMappingURL=${\n new URL(\n '.',\n new URL(\n url,\n self.__remote_bundle_url__?.[bundle] ?? new URL(location.origin),\n ),\n ).href\n }$1$2.js.map`,\n );\n\n // load the script dynamically using a Blob URL\n await new Promise<void>((scriptResolve, scriptReject) => {\n const blob = new Blob([transformedCode], {\n type: 'application/javascript; charset=UTF-8',\n });\n const scriptUrl = URL.createObjectURL(blob);\n const script = document.createElement('script');\n script.src = scriptUrl;\n script.async = true;\n script.onload = () => {\n URL.revokeObjectURL(scriptUrl);\n scriptResolve(undefined);\n };\n script.onerror = (error) => {\n URL.revokeObjectURL(scriptUrl);\n scriptReject(\n new Error(\n `Failed to load script: ${error instanceof Error ? error.message : String(error)}`,\n ),\n );\n };\n document.head.appendChild(script);\n });\n const chunkLists = self[`TURBOPACK_${bundleKey}_CHUNK_LISTS`] as\n | { chunks: string[] }[]\n | undefined;\n const loadChunkLists = [] as (Promise<unknown> | undefined)[];\n while (chunkLists?.length) {\n const { chunks } = chunkLists.shift() ?? { chunks: [] };\n if (chunks.length > 0) {\n chunks.forEach((id: string) => {\n const chunkLoadResult = self.__webpack_chunk_load__?.(\n `[${bundle}] ${url.slice(0, url.indexOf('/_next'))}/_next/${id}`,\n );\n if (chunkLoadResult) {\n loadChunkLists.push(chunkLoadResult);\n }\n });\n }\n }\n if (loadChunkLists.length > 0) {\n await Promise.all(loadChunkLists);\n }\n}\n\n/**\n * Creates module require function for webpack runtime\n */\nfunction createModuleRequire(runtime: Runtime): (id: string) => unknown {\n return (id: string) => {\n const self = globalThis as GlobalScope;\n const { bundle, id: moduleId } = id.match(REMOTE_COMPONENT_REGEX)\n ?.groups ?? { bundle: 'default', id };\n const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? 'default']\n ? self.__remote_webpack_require__[bundle ?? 'default']?.type || 'webpack'\n : runtime;\n try {\n if (remoteRuntime === RUNTIME_WEBPACK && bundle && moduleId) {\n return self.__remote_webpack_require__?.[bundle]?.(moduleId);\n }\n const sharedModule = getSharedModule(bundle ?? 'default', moduleId ?? id);\n if (sharedModule) {\n return sharedModule;\n }\n if (bundle && moduleId) {\n return handleTurbopackModule(bundle, moduleId, id);\n }\n throw new Error(`Module ${id} not found`);\n } catch {\n try {\n return self.__original_webpack_require__?.(id);\n } catch {\n throw new Error(\n `Module ${id} not found in remote component bundle ${bundle}`,\n );\n }\n }\n };\n}\n\nfunction initializeSharedModules(\n bundle: string,\n shared: Record<string, () => Promise<unknown>> = {},\n remoteShared: Record<string, string> = {},\n) {\n const self = globalThis as {\n __remote_shared_modules__?: Record<string, Record<string, unknown>>;\n __next_f?: unknown[];\n };\n // eslint-disable-next-line camelcase\n self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};\n\n if (!self.__remote_shared_modules__[bundle]) {\n self.__remote_shared_modules__[bundle] = {};\n }\n\n // ensure that the shared modules are initialized\n return Promise.all(\n Object.entries(remoteShared).map(async ([id, module]) => {\n if (self.__remote_shared_modules__?.[bundle]) {\n self.__remote_shared_modules__[bundle][\n id.replace('[app-ssr]', '[app-client]')\n ] = await (\n shared[module] ??\n (() =>\n Promise.resolve(\n new Proxy(\n {},\n {\n get(_, prop: string) {\n if (prop !== 'then') {\n // eslint-disable-next-line no-console\n console.warn(\n `Shared dependency \"${module}\" not found for \"${bundle}\" when trying to import \"${prop}\".`,\n );\n }\n },\n },\n ),\n ))\n )();\n }\n }),\n );\n}\n\n/**\n * Returns shared modules for common dependencies\n */\nfunction getSharedModule(bundle: string, id: string): unknown {\n const self = globalThis as {\n __remote_shared_modules__?: Record<string, unknown>;\n };\n\n for (const [key, value] of Object.entries(\n self.__remote_shared_modules__?.[bundle] ?? {},\n )) {\n if (id.includes(key)) {\n return value;\n }\n }\n return null;\n}\n\n/**\n * Handles Turbopack module resolution\n */\nfunction handleTurbopackModule(\n bundle: string,\n moduleId: string,\n id: string,\n): unknown {\n const self = globalThis as GlobalScope;\n const bundleKey = getBundleKey(bundle);\n const modules = (\n self[`TURBOPACK_${bundleKey}`] as\n | [unknown, Record<string, unknown>][]\n | undefined\n )?.find((mod: [unknown, Record<string, unknown>]) => moduleId in mod[1])?.[1];\n const moduleInit = modules?.[moduleId];\n if (typeof moduleInit !== 'function') {\n throw new Error(\n `Module ${id} not found in bundle ${bundle} with id ${moduleId}`,\n );\n }\n const exports = {} as Record<string, unknown>;\n moduleInit({\n // HMR not implemented for Remote Components\n k: {\n register() {\n // omit\n },\n registerExports() {\n // omit\n },\n signature() {\n return () => {\n // omit\n };\n },\n },\n s(m: Record<string, () => unknown>) {\n for (const [key, value] of Object.entries(m)) {\n exports[key] = value;\n }\n },\n i(iid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${iid}`);\n },\n r(rid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${rid}`);\n },\n m: {\n exports,\n },\n });\n for (const [key, value] of Object.entries(exports)) {\n if (typeof value === 'function') {\n exports[key] = value();\n }\n }\n return exports;\n}\n","import { applySharedModules } from '../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../shared/webpack/next-client-pages-loader';\nimport { setupWebpackRuntime } from '../../shared/client/webpack-adapter';\n\n// initializer for the turbopack runtime to be able to access modules\n// required to run exposed client components of the remote component\nexport async function turbopackRuntime(\n url: URL,\n bundle?: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string>,\n) {\n // make a typed reference to the global scope\n const self = globalThis as typeof globalThis & {\n // webpack runtime globals\n __webpack_require__: (remoteId: string) => unknown;\n // webpack remote module loading function scoped for each bundle\n __remote_webpack_require__?: Record<\n string,\n ((remoteId: string) => unknown) & {\n m?: Record<string | number, (module: { exports: unknown }) => void>;\n }\n >;\n // webpack module map for each bundle used in production builds\n __remote_webpack_module_map__?: Record<string, Record<string, number>>;\n // conditional flag to disable webpack exec\n __DISABLE_WEBPACK_EXEC__: boolean;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __remote_component_shared__?: Record<string, () => Promise<unknown>>;\n } & Record<string, string[]>;\n\n await setupWebpackRuntime(\n 'turbopack',\n [],\n url,\n bundle,\n self.__remote_component_shared__ ?? shared,\n remoteShared,\n );\n // we can only import react-server-dom-webpack after initializing the __webpack_require__ and __webpack_chunk_load__ functions\n const {\n default: { createFromReadableStream },\n } = await import('react-server-dom-webpack/client.browser');\n\n function preloadScripts(scripts: HTMLScriptElement[], __: URL) {\n return setupWebpackRuntime(\n 'turbopack',\n scripts.map((script) => ({\n src:\n script.getAttribute('src') ||\n script.getAttribute('data-src') ||\n script.src,\n })),\n url,\n bundle,\n self.__remote_component_shared__ ?? shared,\n remoteShared,\n );\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\n}\n","import { hydrateRoot } from 'react-dom/client';\nimport { createRSCStream } from '../shared/client/rsc';\nimport { getRuntime, type Runtime } from './runtime';\n\nif (typeof HTMLElement !== 'undefined') {\n class RemoteComponent extends HTMLElement {\n name: string;\n bundle: string;\n fallbackSlot: HTMLSlotElement;\n __next: HTMLDivElement | null = null;\n fouc: HTMLStyleElement | null = null;\n isLoading = false;\n\n constructor() {\n super();\n // use the shadow DOM to encapsulate the component\n this.attachShadow({ mode: 'open' });\n\n // create a slot element to allow the remote component to use the default slot\n this.fallbackSlot = document.createElement('slot');\n this.shadowRoot?.appendChild(this.fallbackSlot);\n\n this.name = this.getAttribute('name') || '__vercel_remote_component';\n this.bundle = 'default';\n\n // load when the custom element has an src, data-ssr attribute or contains an SSR remote component div\n if (\n this.hasAttribute('src') ||\n this.querySelector('div#__REMOTE_COMPONENT__') ||\n this.hasAttribute('data-ssr')\n ) {\n // start loading and hydration\n this.load().catch((e) => {\n throw new Error(`Failed to load remote component: ${e}`);\n });\n }\n }\n\n static get observedAttributes() {\n return ['src'];\n }\n\n // watch for src attribute changes\n // this is required to reload the remote component when the src attribute is added later\n // this is for rendering the custom element using React\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (name === 'src' && oldValue !== newValue) {\n this.load().catch((e) => {\n throw new Error(`Failed to load remote component: ${e}`);\n });\n }\n }\n\n async load() {\n // prevent multiple loads\n if (this.isLoading) {\n return;\n }\n\n this.isLoading = true;\n const src = this.getAttribute('src');\n const remoteComponentChild = this.querySelector(\n 'div#__REMOTE_COMPONENT__',\n );\n\n if (!src && !remoteComponentChild) {\n throw new Error('src attribute is required');\n }\n\n let url: URL | null = null;\n let html = this.innerHTML;\n\n if (!remoteComponentChild && src) {\n url = new URL(src, window.location.href);\n\n // fetch the remote component\n const fetchInit = {\n method: 'GET',\n headers: {\n Accept: 'text/html',\n // pass the public address of the remote component to the server used for module map mutation\n 'Vercel-Remote-Component-Url': url.href,\n },\n credentials: this.getAttribute('credentials') || 'same-origin',\n } as RequestInit;\n\n const res = await fetch(url, fetchInit);\n\n if (!res.ok) {\n throw new Error(\n `Failed to fetch remote component \"${this.name}\": ${res.status}`,\n );\n }\n\n // get the full HTML content as a string\n html = await res.text();\n }\n // create a virtual element which will be used to parse the HTML and extract the component and RSC flight data\n const doc = document.createElement('div');\n doc.innerHTML = html;\n\n // reference to the remote component content\n const component =\n doc.querySelector(`div[data-bundle][data-route][id^=\"${this.name}\"]`) ??\n // fallback to the first element with the data-bundle and data-route attributes when not using a named remote component\n doc.querySelector('div[data-bundle][data-route]') ??\n // fallback to Next.js Pages Router\n doc.querySelector('div#__next');\n const nextData = JSON.parse(\n (\n doc.querySelector('#__NEXT_DATA__') ??\n doc.querySelector('#__REMOTE_NEXT_DATA__')\n )?.textContent ?? 'null',\n ) as {\n props: {\n pageProps: Record<string, unknown>;\n __REMOTE_COMPONENT__?: {\n bundle: string;\n runtime: 'turbopack' | 'webpack';\n };\n };\n page: string;\n buildId: string;\n } | null;\n\n // when using a Next.js Pages Router remote application in development mode\n // we hide the remote component to prevent flickering\n // until the CSS is loaded for the remote component\n if (nextData && nextData.buildId === 'development') {\n this.fouc = document.createElement('style');\n this.fouc.textContent = `:host { display: none; }`;\n this.shadowRoot?.appendChild(this.fouc);\n }\n\n this.name =\n component?.getAttribute('id')?.replace(/_ssr$/, '') ||\n (nextData ? '__next' : this.name);\n // reference to the RSC flight data\n const rsc = doc.querySelector(`#${this.name}_rsc`);\n\n // reference to the bundle containing the client components\n this.bundle =\n component?.getAttribute('data-bundle') ||\n nextData?.props.__REMOTE_COMPONENT__?.bundle ||\n this.bundle;\n\n // add remote component metadata information at the custom element\n const metadata = document.createElement('script');\n metadata.type = 'application/json';\n metadata.setAttribute('data-remote-component', '');\n metadata.textContent = JSON.stringify({\n name: this.name,\n bundle: this.bundle,\n route: component?.getAttribute('data-route') ?? nextData?.page ?? '/',\n runtime:\n component?.getAttribute('data-runtime') ??\n nextData?.props.__REMOTE_COMPONENT__?.runtime,\n });\n this.parentNode?.insertBefore(metadata, this);\n\n const remoteSharedEl = doc.querySelector(`#${this.name}_shared`);\n const remoteShared = (JSON.parse(remoteSharedEl?.textContent ?? '{}') ??\n {}) as Record<string, string>;\n remoteSharedEl?.parentElement?.removeChild(remoteSharedEl);\n\n if (!component || !(rsc || nextData)) {\n throw new Error(`Failed to find component with id \"${this.name}\"`);\n }\n\n // store the original loading content of the custom element\n // this is required to remove the loading content after the remote component is loaded\n const removable = Array.from(this.childNodes);\n\n // reference to all link elements in the remote component\n const links = doc.querySelectorAll<HTMLLinkElement>('link[href]');\n\n // attach each link element to the shadow DOM to load the styles\n await Promise.all(\n Array.from(links).map((link) => {\n return new Promise<void>((resolve, reject) => {\n const newLink = document.createElement('link');\n newLink.onload = () => {\n resolve();\n };\n newLink.onerror = () => {\n reject(\n new Error(\n `Failed to load link ${link.href} for remote component`,\n ),\n );\n };\n for (const attr of link.attributes) {\n if (attr.name === 'href') {\n newLink.setAttribute(\n attr.name,\n new URL(attr.value, url ?? location.origin).href,\n );\n } else {\n newLink.setAttribute(attr.name, attr.value);\n }\n }\n this.shadowRoot?.appendChild(newLink);\n });\n }),\n );\n\n // attach the remote component content to the shadow DOM\n Array.from(component.children).forEach((el) => {\n this.shadowRoot?.appendChild(el);\n });\n\n // clear the loading content of the shadow DOM root\n for (const el of removable) {\n el.parentElement?.removeChild(el);\n }\n this.shadowRoot?.removeChild(this.fallbackSlot);\n\n const {\n self,\n createFromReadableStream,\n nextClientPagesLoader,\n preloadScripts,\n } = await getRuntime(\n (component.getAttribute('data-runtime') ?? 'webpack') as Runtime,\n url ?? new URL(location.href),\n this.bundle,\n {\n react: async () => (await import('react')).default,\n 'react/jsx-dev-runtime': async () =>\n (await import('react/jsx-dev-runtime')).default,\n 'react/jsx-runtime': async () =>\n (await import('react/jsx-runtime')).default,\n 'react-dom': async () => (await import('react-dom')).default,\n 'react-dom/client': async () =>\n (await import('react-dom/client')).default,\n },\n remoteShared,\n );\n\n const scripts = doc.querySelectorAll<HTMLScriptElement>(\n 'script[src],script[data-src]',\n );\n if (!url) {\n url = new URL(\n component.getAttribute('data-route') ?? '/',\n window.location.href,\n );\n }\n\n await preloadScripts(Array.from(scripts), url, this.bundle, this.name);\n\n // using RSC hydration if the RSC flight data is available\n if (rsc) {\n // remove the RSC flight data script element\n rsc.parentElement?.removeChild(rsc);\n\n // reload the RSC flight data script to eval it's content\n const rscClone = document.createElement('script');\n rscClone.id = `${this.name}_rsc`;\n rscClone.textContent = rsc.textContent;\n document.body.appendChild(rscClone);\n\n let cache: React.ReactNode;\n // React component to convert the RSC flight data into a React component\n const RemoteComponentFromReadableStream = ({\n name,\n }: {\n name: string;\n }) => {\n // convert the RSC flight data array into a ReadableStream\n // get the RSC flight data from the global scope\n // the RSC flight data is stored in an array\n // fallback to an empty RSC payload if the data is not found\n const stream = createRSCStream(name, self[name] ?? [`0:[null]\\n`]);\n const Component =\n cache ??\n // cache the component to avoid reloading the RSC flight data\n (cache = createFromReadableStream(stream) as React.ReactNode);\n\n // React can handle the component reference and will wait for the component to be ready\n return Component;\n };\n\n // hydrate the remote component using the RSC flight data\n hydrateRoot(\n // hydrateRoot expects a document or element, but it works for the shadow DOM too\n // @ts-expect-error support for shadow DOM\n this.shadowRoot,\n <RemoteComponentFromReadableStream name={this.name} />,\n );\n } else if (nextData) {\n // using Next.js client pages loader if the Next.js hydration data is available\n const { Component, App } = nextClientPagesLoader(\n this.bundle,\n nextData.page,\n this.shadowRoot,\n );\n\n // if we have the component, we can hydrate it\n if (Component) {\n hydrateRoot(\n // hydrateRoot expects a document or element, but it works for the shadow DOM too\n // @ts-expect-error support for shadow DOM\n this.shadowRoot,\n App ? (\n <App Component={Component} {...nextData.props} />\n ) : (\n <Component {...nextData.props} />\n ),\n );\n }\n\n // remove the FOUC workaround style element to show the remote component\n // this is only for development mode\n if (this.fouc) {\n this.shadowRoot?.removeChild(this.fouc);\n }\n }\n\n this.isLoading = false;\n }\n }\n\n // register the custom element\n customElements.define('remote-component', RemoteComponent);\n}\n","/**\n * Fixes RSC payload to make it compatible with React JSX development runtime\n */\nexport function fixPayload(payload: unknown): void {\n if (Array.isArray(payload)) {\n // if the current node is a React element, we need to fix the payload\n if (payload[0] === '$') {\n // fix the props (children or other React elements)\n fixPayload(payload[3]);\n if (payload.length === 4) {\n // add placeholder for the missing debug info\n payload.push(null, null, 1);\n }\n } else {\n // we are in an array, continue with visiting each item\n for (const item of payload) {\n fixPayload(item);\n }\n }\n } else if (typeof payload === 'object' && payload !== null) {\n // we are in an object, continue with visiting each property\n for (const key in payload) {\n fixPayload((payload as Record<string, unknown>)[key]);\n }\n }\n}\n\n/**\n * Processes RSC flight data and creates a ReadableStream\n */\nexport function createRSCStream(\n name: string,\n data: string[],\n): ReadableStream<Uint8Array> {\n return new ReadableStream({\n type: 'bytes',\n start(controller) {\n const encoder = new TextEncoder();\n const self = globalThis as typeof globalThis & Record<string, string[]>;\n\n // when the remote component RSC scripts are not found or loaded\n // we need to load the RSC flight data parsing the chunks\n if (!self[name] && data.length > 0) {\n data.forEach((chunk) => {\n const lines = chunk.split('\\n');\n for (const line of lines) {\n const match = /\\.push\\(\"(?<rsc>.*)\"\\);$/.exec(line);\n if (match?.groups?.rsc) {\n self[name] = self[name] ?? [];\n self[name].push(JSON.parse(`\"${match.groups.rsc}\"`) as string);\n }\n }\n });\n }\n\n // get the RSC flight data from the global scope\n // the RSC flight data is stored in an array\n // fallback to an empty RSC payload if the data is not found\n const allChunks = (self[name] ?? [`0:[null]\\n`]).join('');\n\n // process each line in the RSC flight data\n allChunks.split('\\n').forEach((chunk) => {\n if (chunk.length > 0) {\n // parse the chunk to get the id, prefix and payload\n const { id, prefix, payload } =\n /(?<id>[0-9a-zA-Z]+):(?<prefix>[A-Z])?(?<payload>\\[.*\\])/.exec(\n chunk,\n )?.groups ?? {};\n\n if (payload) {\n // parse the payload to a JSON object\n const jsonPayload = JSON.parse(payload) as unknown[];\n // fix the payload to make it compatible with React JSX development runtime\n fixPayload(jsonPayload);\n // reconstruct the chunk to a string\n const reconstruct = `${id}:${prefix ?? ''}${JSON.stringify(jsonPayload)}`;\n // encode the chunk to a byte buffer\n controller.enqueue(encoder.encode(`${reconstruct}\\n`));\n } else {\n // add empty line before closing the stream\n controller.enqueue(encoder.encode(`${chunk}\\n`));\n }\n } else {\n // add empty line before closing the stream\n controller.enqueue(encoder.encode(`${chunk}\\n`));\n }\n });\n // close the stream when all chunks are enqueued\n controller.close();\n },\n });\n}\n","export type Runtime = 'webpack' | 'turbopack' | 'esm';\n\nexport async function getRuntime(\n type: Runtime,\n url: URL,\n bundle?: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string>,\n) {\n // minimally mock process.env for browser environments\n if (typeof globalThis.process === 'undefined') {\n globalThis.process = {\n env: {},\n } as NodeJS.Process;\n }\n\n if (type === 'webpack') {\n const { webpackRuntime } = await import(`./webpack`);\n return webpackRuntime();\n } else if (type === 'turbopack') {\n const { turbopackRuntime } = await import(`./turbopack`);\n return turbopackRuntime(url, bundle, shared, remoteShared);\n }\n throw new Error(`Runtime ${type} is not supported`);\n}\n"],"mappings":"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","names":["module","resolve","module","webpackRuntime","turbopackRuntime","nextClientPagesLoader"]}