remote-components 0.0.22 → 0.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/html/host.cjs +345 -80
  2. package/dist/html/host.cjs.map +1 -1
  3. package/dist/html/host.js +347 -79
  4. package/dist/html/host.js.map +1 -1
  5. package/dist/internal/next/host/app-router-client.cjs +205 -58
  6. package/dist/internal/next/host/app-router-client.cjs.map +1 -1
  7. package/dist/internal/next/host/app-router-client.d.ts +2 -2
  8. package/dist/internal/next/host/app-router-client.js +213 -59
  9. package/dist/internal/next/host/app-router-client.js.map +1 -1
  10. package/dist/internal/next/host/app-router-compat.cjs +114 -0
  11. package/dist/internal/next/host/app-router-compat.cjs.map +1 -0
  12. package/dist/internal/next/host/app-router-compat.d.ts +31 -0
  13. package/dist/internal/next/host/app-router-compat.js +79 -0
  14. package/dist/internal/next/host/app-router-compat.js.map +1 -0
  15. package/dist/internal/next/remote/render-client.cjs +10 -2
  16. package/dist/internal/next/remote/render-client.cjs.map +1 -1
  17. package/dist/internal/next/remote/render-client.js +10 -2
  18. package/dist/internal/next/remote/render-client.js.map +1 -1
  19. package/dist/internal/shared/client/apply-origin.cjs +61 -0
  20. package/dist/internal/shared/client/apply-origin.cjs.map +1 -0
  21. package/dist/internal/shared/client/apply-origin.d.ts +3 -0
  22. package/dist/internal/shared/client/apply-origin.js +37 -0
  23. package/dist/internal/shared/client/apply-origin.js.map +1 -0
  24. package/dist/internal/shared/client/polyfill.cjs +149 -0
  25. package/dist/internal/shared/client/polyfill.cjs.map +1 -0
  26. package/dist/internal/shared/client/polyfill.d.ts +6 -0
  27. package/dist/internal/shared/client/polyfill.js +124 -0
  28. package/dist/internal/shared/client/polyfill.js.map +1 -0
  29. package/dist/internal/shared/client/remote-component.cjs +3 -3
  30. package/dist/internal/shared/client/remote-component.cjs.map +1 -1
  31. package/dist/internal/shared/client/remote-component.d.ts +3 -1
  32. package/dist/internal/shared/client/remote-component.js +3 -3
  33. package/dist/internal/shared/client/remote-component.js.map +1 -1
  34. package/dist/internal/shared/ssr/dom-flight.cjs +49 -17
  35. package/dist/internal/shared/ssr/dom-flight.cjs.map +1 -1
  36. package/dist/internal/shared/ssr/dom-flight.js +49 -17
  37. package/dist/internal/shared/ssr/dom-flight.js.map +1 -1
  38. package/dist/internal/shared/ssr/fetch-remote-component.cjs +3 -2
  39. package/dist/internal/shared/ssr/fetch-remote-component.cjs.map +1 -1
  40. package/dist/internal/shared/ssr/fetch-remote-component.d.ts +6 -0
  41. package/dist/internal/shared/ssr/fetch-remote-component.js +3 -2
  42. package/dist/internal/shared/ssr/fetch-remote-component.js.map +1 -1
  43. package/dist/next/config.cjs +50 -28
  44. package/dist/next/config.cjs.map +1 -1
  45. package/dist/next/config.js +50 -28
  46. package/dist/next/config.js.map +1 -1
  47. package/dist/next/host/app-router-server.cjs +4 -0
  48. package/dist/next/host/app-router-server.cjs.map +1 -1
  49. package/dist/next/host/app-router-server.d.ts +5 -1
  50. package/dist/next/host/app-router-server.js +4 -0
  51. package/dist/next/host/app-router-server.js.map +1 -1
  52. package/dist/next/host/client/index.cjs +16 -1
  53. package/dist/next/host/client/index.cjs.map +1 -1
  54. package/dist/next/host/client/index.d.ts +1 -1
  55. package/dist/next/host/client/index.js +16 -1
  56. package/dist/next/host/client/index.js.map +1 -1
  57. package/dist/next/host/pages-router-server.cjs +37 -16
  58. package/dist/next/host/pages-router-server.cjs.map +1 -1
  59. package/dist/next/host/pages-router-server.d.ts +3 -0
  60. package/dist/next/host/pages-router-server.js +37 -16
  61. package/dist/next/host/pages-router-server.js.map +1 -1
  62. package/dist/next/middleware.cjs +5 -2
  63. package/dist/next/middleware.cjs.map +1 -1
  64. package/dist/next/middleware.d.ts +1 -0
  65. package/dist/next/middleware.js +5 -2
  66. package/dist/next/middleware.js.map +1 -1
  67. package/dist/next/remote/pages-router.cjs +3 -1
  68. package/dist/next/remote/pages-router.cjs.map +1 -1
  69. package/dist/next/remote/pages-router.d.ts +1 -0
  70. package/dist/next/remote/pages-router.js +3 -1
  71. package/dist/next/remote/pages-router.js.map +1 -1
  72. package/dist/react/index.cjs +235 -156
  73. package/dist/react/index.cjs.map +1 -1
  74. package/dist/react/index.d.ts +7 -3
  75. package/dist/react/index.js +225 -146
  76. package/dist/react/index.js.map +1 -1
  77. package/dist/{types-7425dfe1.d.ts → types-b8210fd3.d.ts} +2 -0
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/shared/webpack/shared-modules.ts","../../src/shared/webpack/next-client-pages-loader.ts","../../src/shared/client/const.ts","../../src/shared/client/webpack-adapter.ts","../../src/shared/client/polyfill.tsx","../../src/html/host/runtime/webpack.ts","../../src/html/host/runtime/turbopack.ts","../../src/html/host/index.tsx","../../src/shared/client/component-loader.ts","../../src/shared/client/rsc.ts","../../src/shared/client/remote-component.ts","../../src/html/host/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 let ids = modulePaths.filter((p) => p === key);\n if (ids.length === 0) {\n ids = modulePaths.filter((p) => p.includes(key));\n }\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 // Next.js Pages Router CSS cache\n __remote_next_css__?: Record<string, ChildNode[]>;\n };\n\n // temporarily remove the original Next.js CSS loader\n const nextCssOriginal = document.querySelector(\n `[id=\"__next_css__DO_NOT_USE__\"]:not([data-bundle=\"${bundle}\"][data-route=\"${route}\"])`,\n );\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 nextCss.setAttribute('data-bundle', bundle);\n nextCss.setAttribute('data-route', route);\n const nextCssEnd = document.createElement('noscript');\n nextCssEnd.id = '__next_css__DO_NOT_USE_END__';\n nextCssEnd.setAttribute('data-bundle', bundle);\n nextCssEnd.setAttribute('data-route', route);\n document.head.appendChild(nextCssEnd);\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 if (!self.__remote_next_css__) {\n // eslint-disable-next-line camelcase\n self.__remote_next_css__ = {};\n }\n\n if (!self.__remote_next_css__[bundle]) {\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 const elements = [];\n let node = nextCss.previousSibling;\n while (node && node !== nextCssEnd) {\n elements.push(node);\n node.remove();\n node = nextCss.previousSibling;\n }\n self.__remote_next_css__[bundle] = elements;\n }\n\n // if the styleContainer is provided, we need to move the styles to it\n if (styleContainer) {\n const elements = self.__remote_next_css__[bundle];\n elements.forEach((el) => {\n styleContainer.appendChild(el.cloneNode(true));\n });\n } else {\n // if no styleContainer is provided, we need to move the styles back to the head\n const elements = self.__remote_next_css__[bundle];\n elements.forEach((el) => {\n document.head.appendChild(el);\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 nextCss.remove();\n nextCssEnd.remove();\n\n return { Component, App };\n }\n\n return { Component: null, App: null };\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 // eslint-disable-next-line camelcase\n self.__webpack_get_script_filename__ = () => null;\n\n await initializeSharedModules(\n bundle ?? 'default',\n // include all core modules as shared\n {\n react: async () => (await import('react')).default,\n 'react-dom': async () => (await import('react-dom')).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/client': async () =>\n (await import('react-dom/client')).default,\n ...shared,\n },\n remoteShared,\n );\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\n if (!self.__remote_components_turbopack_chunk_loader_promise__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_chunk_loader_promise__ = {};\n }\n if (self.__remote_components_turbopack_chunk_loader_promise__[url]) {\n return self.__remote_components_turbopack_chunk_loader_promise__[url];\n }\n\n self.__remote_components_turbopack_chunk_loader_promise__[url] =\n 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 return self.__remote_components_turbopack_chunk_loader_promise__[url];\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 (/importScripts\\(\\.\\.\\.self.TURBOPACK_NEXT_CHUNK_URLS/.test(code)) {\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 script.remove();\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 script.remove();\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 if (typeof self.__original_webpack_require__ !== 'function') {\n throw new Error(\n `Module ${id} not found in remote component bundle ${bundle}`,\n );\n }\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 if (shared[module]) {\n self.__remote_shared_modules__[bundle][\n id.replace('[app-ssr]', '[app-client]')\n ] = await shared[module]();\n } else {\n // eslint-disable-next-line no-console\n console.error(`Shared module \"${module}\" not found for \"${bundle}\".`);\n }\n }\n }),\n );\n}\n\n/**\n * Returns shared modules for common dependencies\n */\nfunction getSharedModule(bundle: string, id: string | number): 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 ((typeof id === 'string' && id.includes(key)) || id === 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 = self[`TURBOPACK_${bundleKey}`] as\n | [unknown, Record<string, unknown>][]\n | undefined;\n let moduleInit;\n\n for (const mod of modules ?? []) {\n if (typeof mod[1] === 'string') {\n let index = mod.indexOf(moduleId);\n if (index === -1) {\n index = mod.findIndex(\n (m) => typeof m === 'string' && m.startsWith(moduleId),\n );\n }\n if (index !== -1) {\n while (typeof mod[index] !== 'function' && index < mod.length) {\n index++;\n }\n moduleInit = mod[index] as (\n turbopackContext: unknown,\n module: unknown,\n exports: unknown,\n ) => void;\n break;\n }\n } else {\n const map = mod[1];\n if (moduleId in map) {\n moduleInit = map[moduleId] as (\n turbopackContext: unknown,\n module: unknown,\n exports: unknown,\n ) => void;\n break;\n }\n }\n }\n const exports = {} as Record<string, unknown>;\n const moduleExports = { exports };\n const exportNames = new Set<string>();\n\n if (!self.__remote_components_turbopack_modules__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_modules__ = {};\n }\n if (!self.__remote_components_turbopack_modules__[bundle]) {\n self.__remote_components_turbopack_modules__[bundle] = {};\n }\n if (self.__remote_components_turbopack_modules__[bundle][moduleId]) {\n return self.__remote_components_turbopack_modules__[bundle][moduleId];\n }\n\n if (typeof moduleInit !== 'function') {\n throw new Error(\n `Module ${id} not found in bundle ${bundle} with id ${moduleId}`,\n );\n }\n\n self.__remote_components_turbopack_modules__[bundle][moduleId] =\n moduleExports.exports;\n\n if (!self.__remote_components_turbopack_global__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_global__ = {};\n }\n if (!self.__remote_components_turbopack_global__[bundle]) {\n self.__remote_components_turbopack_global__[bundle] = {};\n }\n\n moduleInit(\n {\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> | [...[string, () => unknown]]) {\n let mod = m;\n if (Array.isArray(m)) {\n mod = {} as Record<string, () => unknown>;\n const keys: string[] = [];\n for (const current of m) {\n if (typeof current === 'string') {\n keys.push(current);\n } else if (typeof current === 'function') {\n while (keys.length > 0) {\n const key = keys.shift();\n if (key) {\n mod[key] = current;\n }\n }\n }\n }\n }\n\n for (const [key, value] of Object.entries(mod)) {\n exports[key] = value;\n exportNames.add(key);\n }\n },\n i(iid: string) {\n const { exportSource, exportName } =\n /\\s+<export (?<exportSource>.*?) as (?<exportName>.*?)>$/.exec(iid)\n ?.groups ?? {};\n const normalizedId = iid.replace(/\\s+<export(?<specifier>.*)>$/, '');\n const mod = self.__webpack_require__?.(\n `[${bundle}] ${normalizedId}`,\n ) as Record<string, unknown>;\n if (\n exportSource &&\n exportName &&\n typeof mod[exportSource] !== 'undefined' &&\n typeof mod[exportName] === 'undefined'\n ) {\n mod[exportName] = mod[exportSource];\n }\n return mod;\n },\n r(rid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${rid}`);\n },\n v(value: unknown) {\n exports.default = value;\n },\n g: self.__remote_components_turbopack_global__[bundle],\n m: moduleExports,\n e: exports,\n },\n moduleExports,\n exports,\n );\n\n for (const name of exportNames) {\n if (typeof exports[name] === 'function') {\n exports[name] = exports[name]();\n }\n }\n\n return moduleExports.exports;\n}\n","import type { LinkProps } from 'next/link';\nimport type { ImageProps } from 'next/image';\n\n// polyfill Next.js App Router client API (minimal)\n// implementations are minimal and do not cover all use cases\n// developer can override these shared modules from configuration\nexport function sharedPolyfills(\n shared?: Record<string, () => Promise<unknown>>,\n) {\n const self = globalThis as typeof globalThis & {\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n };\n const polyfill = {\n 'next/dist/client/components/navigation':\n self.__remote_component_host_shared_modules__?.['next/navigation'] ??\n shared?.['next/navigation'] ??\n (() =>\n Promise.resolve({\n useRouter() {\n return {\n push: (routerUrl: string) => {\n history.pushState({}, '', routerUrl);\n },\n replace: (routerUrl: string) => {\n history.replaceState({}, '', routerUrl);\n },\n back: () => {\n history.back();\n },\n };\n },\n useSearchParams() {\n return new URLSearchParams(location.search);\n },\n __esModule: true,\n })),\n 'next/dist/client/app-dir/link':\n self.__remote_component_host_shared_modules__?.['next/link'] ??\n shared?.['next/link'] ??\n (() =>\n Promise.resolve({\n default: ({\n children,\n ...props\n }: React.PropsWithChildren<LinkProps>) => (\n <a {...props} href={props.href as string} suppressHydrationWarning>\n {children ?? null}\n </a>\n ),\n __esModule: true,\n })),\n 'next/dist/client/app-dir/form':\n self.__remote_component_host_shared_modules__?.['next/form'] ??\n shared?.['next/form'] ??\n (() =>\n Promise.resolve({\n default: () => {\n // TODO: implement <Form> component for non-Next.js host applications\n throw new Error('Next.js <Form> component not implemented');\n },\n __esModule: true,\n })),\n 'next/dist/client/image-component':\n self.__remote_component_host_shared_modules__?.['next/image'] ??\n shared?.['next/image'] ??\n (() =>\n Promise.resolve({\n Image: (props: ImageProps) => (\n // eslint-disable-next-line @next/next/no-img-element, jsx-a11y/alt-text\n <img\n {...props}\n src={props.src as string}\n suppressHydrationWarning\n />\n ),\n __esModule: true,\n })),\n 'next/dist/client/script':\n self.__remote_component_host_shared_modules__?.['next/script'] ??\n shared?.['next/script'] ??\n (() =>\n Promise.resolve({\n // TODO: implement <Script> component for non-Next.js host applications\n // do not throw an error for now\n default: () => null,\n __esModule: true,\n })),\n } as Record<string, () => Promise<unknown>>;\n\n polyfill['next/navigation'] = polyfill[\n 'next/dist/client/components/navigation'\n ] as () => Promise<unknown>;\n polyfill['next/link'] = polyfill[\n 'next/dist/client/app-dir/link'\n ] as () => Promise<unknown>;\n polyfill['next/form'] = polyfill[\n 'next/dist/client/app-dir/form'\n ] as () => Promise<unknown>;\n polyfill['next/image'] = polyfill[\n 'next/dist/client/image-component'\n ] as () => Promise<unknown>;\n polyfill['next/dist/api/image'] = polyfill[\n 'next/dist/client/image-component'\n ] as () => Promise<unknown>;\n polyfill['next/script'] = polyfill[\n 'next/dist/client/script'\n ] as () => Promise<unknown>;\n\n return polyfill;\n}\n","import { applySharedModules } from '../../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../../shared/webpack/next-client-pages-loader';\nimport { sharedPolyfills } from '../../../shared/client/polyfill';\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 bundle: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string | number>,\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__?: Record<string, boolean>;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __webpack_require_type__: 'webpack' | 'turbopack';\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n } & Record<string, string[]>;\n\n // disable webpack exec to prevent automatically executing the entry module\n if (!self.__DISABLE_WEBPACK_EXEC__) {\n self.__DISABLE_WEBPACK_EXEC__ = {};\n }\n self.__DISABLE_WEBPACK_EXEC__[bundle] = 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>[^\\]]+)\\] (?<id>.*)/;\n const match = re.exec(remoteId);\n const remoteBundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && remoteBundle)) {\n throw new Error(`Module not found: \"${remoteId}\"`);\n }\n if (\n typeof self.__remote_webpack_require__?.[remoteBundle] !== 'function'\n ) {\n throw new Error(`Remote component loading error \"${remoteBundle}\"`);\n }\n return self.__remote_webpack_require__[remoteBundle](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 remoteBundle: 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 hostShared = {\n ...sharedPolyfills(shared),\n ...self.__remote_component_host_shared_modules__,\n ...shared,\n } as Record<string, () => Promise<unknown>>;\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 ...Object.entries(remoteShared ?? {}).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n if (typeof hostShared[value] !== 'undefined') {\n acc[key.replace(/^\\(ssr\\)\\/(?<relative>\\.\\/)?/, '')] =\n hostShared[value];\n }\n return acc;\n },\n {},\n ),\n } as Record<string, unknown>;\n await Promise.all(\n Object.entries(resolve).map(async ([key, value]) => {\n if (typeof value === 'function') {\n resolve[key] = await value();\n }\n return Promise.resolve(value);\n }),\n );\n\n // apply shared modules to the bundle\n applySharedModules(remoteBundle, resolve);\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\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';\nimport { sharedPolyfills } from '../../../shared/client/polyfill';\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 __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n } & Record<string, string[]>;\n\n const hostShared = {\n ...sharedPolyfills(shared),\n ...self.__remote_component_host_shared_modules__,\n ...shared,\n ...self.__remote_component_shared__,\n };\n\n await setupWebpackRuntime(\n 'turbopack',\n [],\n url,\n bundle,\n hostShared,\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 hostShared,\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 '#internal/shared/client/remote-component';\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 =\n this.querySelector('div#__REMOTE_COMPONENT__') ||\n this.querySelector('div[data-bundle][data-route]');\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 (src) {\n url = new URL(src, window.location.href);\n if (url.hash) {\n this.name = url.hash.slice(1);\n }\n }\n\n if (!remoteComponentChild && url) {\n // fetch the remote component\n const fetchInit = {\n method: 'GET',\n headers: {\n Accept: 'text/html',\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 if (link.rel === 'stylesheet') {\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 } else {\n resolve();\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\nexport function registerSharedModules(\n modules: Record<string, () => Promise<unknown>> = {},\n) {\n const self = globalThis as typeof globalThis & {\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n };\n\n if (!self.__remote_component_host_shared_modules__) {\n // eslint-disable-next-line camelcase\n self.__remote_component_host_shared_modules__ = {};\n }\n\n Object.entries(modules).forEach(([key, value]) => {\n if (self.__remote_component_host_shared_modules__) {\n self.__remote_component_host_shared_modules__[key] = value;\n }\n });\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactDOMClient from 'react-dom/client';\nimport * as JSXDevRuntime from 'react/jsx-dev-runtime';\nimport * as JSXRuntime from 'react/jsx-runtime';\nimport { applySharedModules } from '../webpack/shared-modules';\nimport { nextClientPagesLoader } from '../webpack/next-client-pages-loader';\nimport { setupWebpackRuntime } from './webpack-adapter';\nimport { loadScripts } from './script-loader';\nimport { createRSCStream } from './rsc';\nimport type { RemoteComponentProps, LoaderResult, GlobalScope } from './types';\n\nexport type LoadRemoteComponentProps = Pick<\n RemoteComponentProps,\n 'name' | 'bundle' | 'route' | 'runtime' | 'data' | 'nextData' | 'scripts'\n> & {\n url: URL;\n shared:\n | Promise<Record<string, () => Promise<unknown>>>\n | Record<string, () => Promise<unknown>>;\n remoteShared: Record<string, string>;\n container?: HTMLHeadElement | ShadowRoot | null;\n};\n\n/**\n * Main loader function that orchestrates the component loading process\n */\nexport async function loadRemoteComponent({\n url,\n name,\n bundle,\n route = '/',\n runtime = 'webpack',\n data,\n nextData,\n scripts = [],\n shared = Promise.resolve({}),\n remoteShared = {},\n container,\n}: LoadRemoteComponentProps): Promise<LoaderResult> {\n try {\n // Load scripts if using webpack runtime\n if (runtime === 'webpack') {\n const self = globalThis as GlobalScope;\n // disable webpack entrypoint execution for the remote\n if (!self.__DISABLE_WEBPACK_EXEC__) {\n self.__DISABLE_WEBPACK_EXEC__ = {};\n }\n // disable webpack entrypoint execution for the current remote bundle\n self.__DISABLE_WEBPACK_EXEC__[bundle] = true;\n await loadScripts(scripts);\n }\n\n const hostShared = await shared;\n // Setup webpack runtime environment\n await setupWebpackRuntime(\n runtime,\n scripts,\n url,\n bundle,\n hostShared,\n remoteShared,\n );\n\n // Setup shared modules\n if (bundle) {\n const resolve = {\n '/react/index.js': React,\n '/react/jsx-dev-runtime.js': JSXDevRuntime,\n '/react/jsx-runtime.js': JSXRuntime,\n '/react-dom/index.js': ReactDOM,\n '/react-dom/client.js': ReactDOMClient,\n ...Object.entries(remoteShared).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n if (typeof hostShared[value] !== 'undefined') {\n acc[key.replace(/^\\(ssr\\)\\/(?<relative>\\.\\/)?/, '')] =\n hostShared[value];\n }\n return acc;\n },\n {},\n ),\n } as Record<string, unknown>;\n await Promise.all(\n Object.entries(resolve).map(async ([key, value]) => {\n if (typeof value === 'function') {\n resolve[key] = await value();\n }\n return Promise.resolve(value);\n }),\n );\n applySharedModules(bundle, resolve);\n }\n\n // Load component based on data type\n if (data.length > 0) {\n return await loadRSCComponent(name, data);\n } else if (nextData) {\n return loadNextPagesComponent(bundle, route, nextData, name, container);\n }\n\n return loadRSCComponent(name, [`0:[null]\\n`]); // Fallback to empty RSC payload\n } catch (error) {\n return {\n component: null,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n}\n\n/**\n * Loads RSC (React Server Components) based component\n */\nasync function loadRSCComponent(\n name: string,\n data: string[],\n): Promise<LoaderResult> {\n // try to import react-server-dom-webpack from Next.js with a fallback\n let createFromReadableStream;\n try {\n const { createFromReadableStream: _createFromReadableStream } =\n await import(\n 'next/dist/compiled/react-server-dom-webpack/client.browser'\n );\n createFromReadableStream = _createFromReadableStream;\n } catch {\n const {\n default: { createFromReadableStream: _createFromReadableStream },\n } = await import('react-server-dom-webpack/client.browser');\n createFromReadableStream = _createFromReadableStream;\n }\n // remote components with RSC requires react-server-dom-webpack\n if (typeof createFromReadableStream !== 'function') {\n throw new Error('Failed to import react-server-dom-webpack');\n }\n\n const stream = createRSCStream(name, data);\n const component = createFromReadableStream(stream);\n\n return { component };\n}\n\n/**\n * Loads Next.js Pages Router based component\n */\nfunction loadNextPagesComponent(\n bundle: string,\n route: string,\n nextData: NonNullable<RemoteComponentProps['nextData']>,\n name: string,\n container?: HTMLHeadElement | ShadowRoot | null,\n): LoaderResult {\n const { Component, App } = nextClientPagesLoader(bundle, route, container);\n\n if (!Component) {\n throw new Error(\n `Remote component ${name} is trying to load the component for route ${route} but it is not available.`,\n );\n }\n\n // error tolerance when app component is not found\n const component = App\n ? React.createElement(App, { Component, ...nextData.props })\n : React.createElement(Component, nextData.props);\n\n return { component };\n}\n","import { ReadableStream } from 'web-streams-polyfill';\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 { before, id, prefix, payload } =\n /^(?<before>.*?)?(?<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 = `${before ?? ''}${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 { RemoteComponentProps, GlobalScope, LoaderResult } from './types';\nexport {\n loadRemoteComponent,\n type LoadRemoteComponentProps,\n} from './component-loader';\nexport { setupWebpackRuntime } from './webpack-adapter';\nexport { loadScripts } from './script-loader';\nexport { fixPayload, createRSCStream } from './rsc';\nexport { setAttributesFromProps } from './set-attributes-from-props';\nexport {\n DEFAULT_ROUTE,\n RUNTIME_WEBPACK,\n RUNTIME_TURBOPACK,\n REMOTE_COMPONENT_REGEX,\n getBundleKey,\n} from './const';\nexport type { Runtime } from './const';\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(bundle ?? 'default', shared, remoteShared);\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":["resolve","webpackRuntime","turbopackRuntime","jsx","nextClientPagesLoader"]}
1
+ {"version":3,"sources":["../../src/shared/webpack/shared-modules.ts","../../src/shared/webpack/next-client-pages-loader.ts","../../src/shared/client/const.ts","../../src/shared/client/webpack-adapter.ts","../../src/shared/client/polyfill.tsx","../../src/html/host/runtime/webpack.ts","../../src/html/host/runtime/turbopack.ts","../../src/html/host/index.tsx","../../src/shared/client/component-loader.ts","../../src/shared/client/rsc.ts","../../src/shared/client/remote-component.ts","../../src/shared/client/apply-origin.ts","../../src/html/host/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 let ids = modulePaths.filter((p) => p === key);\n if (ids.length === 0) {\n ids = modulePaths.filter((p) => p.includes(key));\n }\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 // Next.js Pages Router CSS cache\n __remote_next_css__?: Record<string, ChildNode[]>;\n };\n\n // temporarily remove the original Next.js CSS loader\n const nextCssOriginal = document.querySelector(\n `[id=\"__next_css__DO_NOT_USE__\"]:not([data-bundle=\"${bundle}\"][data-route=\"${route}\"])`,\n );\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 nextCss.setAttribute('data-bundle', bundle);\n nextCss.setAttribute('data-route', route);\n const nextCssEnd = document.createElement('noscript');\n nextCssEnd.id = '__next_css__DO_NOT_USE_END__';\n nextCssEnd.setAttribute('data-bundle', bundle);\n nextCssEnd.setAttribute('data-route', route);\n document.head.appendChild(nextCssEnd);\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 if (!self.__remote_next_css__) {\n // eslint-disable-next-line camelcase\n self.__remote_next_css__ = {};\n }\n\n if (!self.__remote_next_css__[bundle]) {\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 const elements = [];\n let node = nextCss.previousSibling;\n while (node && node !== nextCssEnd) {\n elements.push(node);\n node.remove();\n node = nextCss.previousSibling;\n }\n self.__remote_next_css__[bundle] = elements;\n }\n\n // if the styleContainer is provided, we need to move the styles to it\n if (styleContainer) {\n const elements = self.__remote_next_css__[bundle];\n elements.forEach((el) => {\n styleContainer.appendChild(el.cloneNode(true));\n });\n } else {\n // if no styleContainer is provided, we need to move the styles back to the head\n const elements = self.__remote_next_css__[bundle];\n elements.forEach((el) => {\n document.head.appendChild(el);\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 nextCss.remove();\n nextCssEnd.remove();\n\n return { Component, App };\n }\n\n return { Component: null, App: null };\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 // eslint-disable-next-line camelcase\n self.__webpack_get_script_filename__ = () => null;\n\n await initializeSharedModules(\n bundle ?? 'default',\n // include all core modules as shared\n {\n react: async () => (await import('react')).default,\n 'react-dom': async () => (await import('react-dom')).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/client': async () =>\n (await import('react-dom/client')).default,\n ...shared,\n },\n remoteShared,\n );\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\n if (!self.__remote_components_turbopack_chunk_loader_promise__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_chunk_loader_promise__ = {};\n }\n if (self.__remote_components_turbopack_chunk_loader_promise__[url]) {\n return self.__remote_components_turbopack_chunk_loader_promise__[url];\n }\n\n self.__remote_components_turbopack_chunk_loader_promise__[url] =\n 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 return self.__remote_components_turbopack_chunk_loader_promise__[url];\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 (/importScripts\\(\\.\\.\\.self.TURBOPACK_NEXT_CHUNK_URLS/.test(code)) {\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 script.remove();\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 script.remove();\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 if (typeof self.__original_webpack_require__ !== 'function') {\n throw new Error(\n `Module ${id} not found in remote component bundle ${bundle}`,\n );\n }\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, (bundle?: 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 if (shared[module]) {\n self.__remote_shared_modules__[bundle][\n id.replace('[app-ssr]', '[app-client]')\n ] = await shared[module](bundle);\n } else {\n // eslint-disable-next-line no-console\n console.error(`Shared module \"${module}\" not found for \"${bundle}\".`);\n }\n }\n }),\n );\n}\n\n/**\n * Returns shared modules for common dependencies\n */\nfunction getSharedModule(bundle: string, id: string | number): 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 (\n typeof value !== 'undefined' &&\n ((typeof id === 'string' && id.includes(key)) || id === key)\n ) {\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 = self[`TURBOPACK_${bundleKey}`] as\n | [unknown, Record<string, unknown>][]\n | undefined;\n let moduleInit;\n\n for (const mod of modules ?? []) {\n if (typeof mod[1] === 'string') {\n let index = mod.indexOf(moduleId);\n if (index === -1) {\n index = mod.findIndex(\n (m) => typeof m === 'string' && m.startsWith(moduleId),\n );\n }\n if (index !== -1) {\n while (typeof mod[index] !== 'function' && index < mod.length) {\n index++;\n }\n moduleInit = mod[index] as (\n turbopackContext: unknown,\n module: unknown,\n exports: unknown,\n ) => void;\n break;\n }\n } else {\n const map = mod[1];\n if (moduleId in map) {\n moduleInit = map[moduleId] as (\n turbopackContext: unknown,\n module: unknown,\n exports: unknown,\n ) => void;\n break;\n }\n }\n }\n const exports = {} as Record<string, unknown>;\n const moduleExports = { exports };\n const exportNames = new Set<string>();\n\n if (!self.__remote_components_turbopack_modules__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_modules__ = {};\n }\n if (!self.__remote_components_turbopack_modules__[bundle]) {\n self.__remote_components_turbopack_modules__[bundle] = {};\n }\n if (self.__remote_components_turbopack_modules__[bundle][moduleId]) {\n return self.__remote_components_turbopack_modules__[bundle][moduleId];\n }\n\n if (typeof moduleInit !== 'function') {\n throw new Error(\n `Module ${id} not found in bundle ${bundle} with id ${moduleId}`,\n );\n }\n\n self.__remote_components_turbopack_modules__[bundle][moduleId] =\n moduleExports.exports;\n\n if (!self.__remote_components_turbopack_global__) {\n // eslint-disable-next-line camelcase\n self.__remote_components_turbopack_global__ = {};\n }\n if (!self.__remote_components_turbopack_global__[bundle]) {\n self.__remote_components_turbopack_global__[bundle] = {};\n }\n\n moduleInit(\n {\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> | [...[string, () => unknown]]) {\n let mod = m;\n if (Array.isArray(m)) {\n mod = {} as Record<string, () => unknown>;\n const keys: string[] = [];\n for (const current of m) {\n if (typeof current === 'string') {\n keys.push(current);\n } else if (typeof current === 'function') {\n while (keys.length > 0) {\n const key = keys.shift();\n if (key) {\n mod[key] = current;\n }\n }\n }\n }\n }\n\n for (const [key, value] of Object.entries(mod)) {\n exports[key] = value;\n exportNames.add(key);\n }\n },\n i(iid: string) {\n const { exportSource, exportName } =\n /\\s+<export (?<exportSource>.*?) as (?<exportName>.*?)>$/.exec(iid)\n ?.groups ?? {};\n const normalizedId = iid.replace(/\\s+<export(?<specifier>.*)>$/, '');\n const mod = self.__webpack_require__?.(\n `[${bundle}] ${normalizedId}`,\n ) as Record<string, unknown>;\n if (\n exportSource &&\n exportName &&\n typeof mod[exportSource] !== 'undefined' &&\n typeof mod[exportName] === 'undefined'\n ) {\n mod[exportName] = mod[exportSource];\n }\n return mod;\n },\n r(rid: string) {\n return self.__webpack_require__?.(`[${bundle}] ${rid}`);\n },\n v(value: unknown) {\n exports.default = value;\n },\n g: self.__remote_components_turbopack_global__[bundle],\n m: moduleExports,\n e: exports,\n },\n moduleExports,\n exports,\n );\n\n for (const name of exportNames) {\n if (typeof exports[name] === 'function') {\n exports[name] = exports[name]();\n }\n }\n\n return moduleExports.exports;\n}\n","import type { LinkProps } from 'next/link';\nimport type { ImageProps, StaticImageData } from 'next/image';\n\nfunction applyBundleUrlToSrc(bundle: string, src: string) {\n const self = globalThis as typeof globalThis & {\n __remote_bundle_url__?: Record<string, URL>;\n };\n\n if (self.__remote_bundle_url__?.[bundle]?.origin === location.origin) {\n return src;\n }\n\n const { assetPrefix, path } =\n /^(?<assetPrefix>.*?)\\/_next\\/(?<path>.*)/.exec(src)?.groups ?? {};\n if (!path) {\n return new URL(src, self.__remote_bundle_url__?.[bundle]?.origin).href;\n }\n return `${\n self.__remote_bundle_url__?.[bundle]?.origin ?? ''\n }${assetPrefix}/_next/${path}`;\n}\n\nexport function applyBundleUrlToImagePropsSrc(\n bundle: string,\n src: ImageProps['src'],\n) {\n if (typeof src === 'string') {\n return applyBundleUrlToSrc(bundle, src);\n }\n const propSrc = src as StaticImageData;\n return applyBundleUrlToSrc(bundle, propSrc.src);\n}\n\nconst imageImpl = (bundle: string) =>\n function RemoteImage({ priority: _, ...props }: ImageProps) {\n const newSrc = applyBundleUrlToImagePropsSrc(\n bundle,\n typeof props.src === 'string'\n ? props.src\n : (props.src as StaticImageData).src,\n );\n return (\n // eslint-disable-next-line @next/next/no-img-element, jsx-a11y/alt-text\n <img\n decoding=\"async\"\n style={{ color: 'transparent' }}\n {...props}\n src={newSrc}\n suppressHydrationWarning\n />\n );\n };\n\n// polyfill Next.js App Router client API (minimal)\n// implementations are minimal and do not cover all use cases\n// developer can override these shared modules from configuration\nexport function sharedPolyfills(\n shared?: Record<string, () => Promise<unknown>>,\n) {\n const self = globalThis as typeof globalThis & {\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n };\n const polyfill = {\n 'next/dist/client/components/navigation':\n self.__remote_component_host_shared_modules__?.['next/navigation'] ??\n shared?.['next/navigation'] ??\n (() =>\n Promise.resolve({\n useRouter() {\n return {\n push: (routerUrl: string) => {\n history.pushState({}, '', routerUrl);\n },\n replace: (routerUrl: string) => {\n history.replaceState({}, '', routerUrl);\n },\n back: () => {\n history.back();\n },\n };\n },\n useSearchParams() {\n return new URLSearchParams(location.search);\n },\n __esModule: true,\n })),\n 'next/dist/client/app-dir/link':\n self.__remote_component_host_shared_modules__?.['next/link'] ??\n shared?.['next/link'] ??\n (() =>\n Promise.resolve({\n default: ({\n children,\n ...props\n }: React.PropsWithChildren<LinkProps>) => (\n <a {...props} href={props.href as string} suppressHydrationWarning>\n {children ?? null}\n </a>\n ),\n __esModule: true,\n })),\n 'next/dist/client/app-dir/form':\n self.__remote_component_host_shared_modules__?.['next/form'] ??\n shared?.['next/form'] ??\n (() =>\n Promise.resolve({\n default: () => {\n // TODO: implement <Form> component for non-Next.js host applications\n throw new Error('Next.js <Form> component not implemented');\n },\n __esModule: true,\n })),\n 'next/dist/client/image-component':\n self.__remote_component_host_shared_modules__?.['next/image'] ??\n shared?.['next/image'] ??\n ((bundle: string) =>\n Promise.resolve({\n Image: imageImpl(bundle),\n __esModule: true,\n })),\n 'next/image':\n self.__remote_component_host_shared_modules__?.['next/image'] ??\n shared?.['next/image'] ??\n ((bundle: string) =>\n Promise.resolve({\n default: imageImpl(bundle),\n getImageProps: (_imgProps: ImageProps) => {\n throw new Error(\n 'Next.js getImageProps() is not implemented in remote components',\n );\n },\n __esModule: true,\n })),\n 'next/dist/client/script':\n self.__remote_component_host_shared_modules__?.['next/script'] ??\n shared?.['next/script'] ??\n (() =>\n Promise.resolve({\n // TODO: implement <Script> component for non-Next.js host applications\n // do not throw an error for now\n default: () => null,\n __esModule: true,\n })),\n 'next/router':\n self.__remote_component_host_shared_modules__?.['next/router'] ??\n shared?.['next/router'] ??\n (() =>\n // TODO: incomplete implementation\n Promise.resolve({\n useRouter() {\n return {\n push: (routerUrl: string) => {\n history.pushState({}, '', routerUrl);\n },\n replace: (routerUrl: string) => {\n history.replaceState({}, '', routerUrl);\n },\n back: () => {\n history.back();\n },\n };\n },\n __esModule: true,\n })),\n } as Record<string, () => Promise<unknown>>;\n\n polyfill['next/navigation'] = polyfill[\n 'next/dist/client/components/navigation'\n ] as () => Promise<unknown>;\n polyfill['next/link'] = polyfill[\n 'next/dist/client/app-dir/link'\n ] as () => Promise<unknown>;\n polyfill['next/form'] = polyfill[\n 'next/dist/client/app-dir/form'\n ] as () => Promise<unknown>;\n polyfill['next/dist/api/image'] = polyfill[\n 'next/dist/client/image-component'\n ] as () => Promise<unknown>;\n polyfill['next/script'] = polyfill[\n 'next/dist/client/script'\n ] as () => Promise<unknown>;\n\n return polyfill;\n}\n","import { applySharedModules } from '../../../shared/webpack/shared-modules';\nimport { nextClientPagesLoader } from '../../../shared/webpack/next-client-pages-loader';\nimport { sharedPolyfills } from '../../../shared/client/polyfill';\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 bundle: string,\n shared?: Record<string, () => Promise<unknown>>,\n remoteShared?: Record<string, string | number>,\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__?: Record<string, boolean>;\n // webpack chunk loading function\n __webpack_chunk_load__: () => Promise<[]>;\n __webpack_require_type__: 'webpack' | 'turbopack';\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n } & Record<string, string[]>;\n\n // disable webpack exec to prevent automatically executing the entry module\n if (!self.__DISABLE_WEBPACK_EXEC__) {\n self.__DISABLE_WEBPACK_EXEC__ = {};\n }\n self.__DISABLE_WEBPACK_EXEC__[bundle] = 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>[^\\]]+)\\] (?<id>.*)/;\n const match = re.exec(remoteId);\n const remoteBundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && remoteBundle)) {\n throw new Error(`Module not found: \"${remoteId}\"`);\n }\n if (\n typeof self.__remote_webpack_require__?.[remoteBundle] !== 'function'\n ) {\n throw new Error(`Remote component loading error \"${remoteBundle}\"`);\n }\n return self.__remote_webpack_require__[remoteBundle](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 remoteBundle: 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 newScript.remove();\n };\n newScript.onerror = () => {\n reject(\n new Error(\n `Failed to load script ${script.src} for remote component`,\n ),\n );\n newScript.remove();\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 hostShared = {\n ...sharedPolyfills(shared),\n ...self.__remote_component_host_shared_modules__,\n ...shared,\n } as Record<string, () => Promise<unknown>>;\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 ...Object.entries(remoteShared ?? {}).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n if (typeof hostShared[value] !== 'undefined') {\n acc[key.replace(/^\\(ssr\\)\\/(?<relative>\\.\\/)?/, '')] =\n hostShared[value];\n }\n return acc;\n },\n {},\n ),\n } as Record<string, unknown>;\n await Promise.all(\n Object.entries(resolve).map(async ([key, value]) => {\n if (typeof value === 'function') {\n resolve[key] = await value(remoteBundle);\n }\n return Promise.resolve(value);\n }),\n );\n\n // apply shared modules to the bundle\n applySharedModules(remoteBundle, resolve);\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\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';\nimport { sharedPolyfills } from '../../../shared/client/polyfill';\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 __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n } & Record<string, string[]>;\n\n const hostShared = {\n ...sharedPolyfills(shared),\n ...self.__remote_component_host_shared_modules__,\n ...shared,\n ...self.__remote_component_shared__,\n };\n\n await setupWebpackRuntime(\n 'turbopack',\n [],\n url,\n bundle,\n hostShared,\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 hostShared,\n remoteShared,\n );\n }\n\n return {\n self,\n createFromReadableStream,\n applySharedModules,\n nextClientPagesLoader,\n preloadScripts,\n };\n}\n","import { startTransition, useLayoutEffect } from 'react';\nimport { hydrateRoot } from 'react-dom/client';\nimport { createRSCStream } from '#internal/shared/client/remote-component';\nimport { applyOriginToNodes } from '../../shared/client/apply-origin';\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 root?: ShadowRoot | null = null;\n reactRoot?: ReturnType<typeof hydrateRoot>;\n\n static get observedAttributes() {\n return ['src', 'name', 'mode'];\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' || name === 'name') && oldValue !== newValue) {\n if (this.getAttribute('src')) {\n this.load().catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n throw new Error(\n `Failed to load remote component: ${this.bundle ?? this.name ?? this.getAttribute('src')}`,\n );\n });\n }\n } else if (name === 'mode' && oldValue !== newValue && this.root) {\n // changing the shadow DOM mode is not supported\n // we need to recreate the shadow DOM and reload the component\n const newRoot = this.attachShadow({\n mode: newValue === 'closed' ? 'closed' : 'open',\n });\n // move all existing children to the new shadow root\n Array.from(this.root.children).forEach((child) => {\n newRoot.appendChild(child);\n });\n this.root = newRoot;\n // reload the remote component to apply the new shadow DOM\n this.load().catch((e) => {\n throw new Error(`Failed to load remote component: ${e}`);\n });\n }\n }\n\n async load() {\n // wait for the current call stack to finish\n await new Promise((resolve) => {\n (typeof queueMicrotask === 'function'\n ? queueMicrotask\n : requestAnimationFrame)(() => {\n resolve(undefined);\n });\n });\n\n // prevent multiple loads\n if (this.isLoading) {\n return;\n }\n\n if (!this.root) {\n this.root = this.attachShadow({\n mode: this.getAttribute('mode') === 'closed' ? 'closed' : 'open',\n });\n\n // create a slot element to allow the remote component to use the default slot\n this.fallbackSlot = document.createElement('slot');\n this.root.appendChild(this.fallbackSlot);\n }\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 this.isLoading = true;\n const src = this.getAttribute('src');\n const remoteComponentChild =\n this.querySelector('div#__REMOTE_COMPONENT__') ||\n this.querySelector('div[data-bundle][data-route]');\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 (src) {\n url = new URL(src, window.location.href);\n if (url.hash) {\n this.name = url.hash.slice(1);\n }\n }\n\n if (!remoteComponentChild && url) {\n // fetch the remote component\n const fetchInit = {\n method: 'GET',\n headers: {\n Accept: 'text/html',\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 parser = new DOMParser();\n const doc = parser.parseFromString(html, 'text/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 shared?: Record<string, string>;\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' && !this.reactRoot) {\n this.fouc = document.createElement('style');\n this.fouc.textContent = `:host { display: none; }`;\n this.root.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 if (url) {\n const self = globalThis as typeof globalThis & {\n __remote_bundle_url__?: Record<string, URL>;\n };\n\n if (!self.__remote_bundle_url__) {\n // eslint-disable-next-line camelcase\n self.__remote_bundle_url__ = {};\n }\n\n self.__remote_bundle_url__[this.bundle ?? 'default'] = url;\n }\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\n if (\n this.previousElementSibling?.getAttribute('data-remote-component') !==\n null\n ) {\n this.previousElementSibling?.remove();\n }\n this.parentElement?.insertBefore(metadata, this);\n\n const remoteSharedEl = doc.querySelector(\n `#${this.name}_shared[data-remote-components-shared]`,\n );\n const remoteShared =\n nextData?.props.__REMOTE_COMPONENT__?.shared ??\n ((JSON.parse(remoteSharedEl?.textContent ?? '{}') ?? {}) as Record<\n string,\n string\n >);\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 // reference to all script elements in the remote component\n const remoteComponentSrc = this.getAttribute('src');\n\n const attachLinks = async () => {\n // attach each link element to the shadow DOM to load the styles\n await Promise.all(\n Array.from(links)\n .filter((link) => {\n return !component.contains(link);\n })\n .map((link) => {\n return new Promise<void>((resolve, reject) => {\n const newLink = document.createElement('link');\n if (link.rel === 'stylesheet') {\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 } else {\n resolve();\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\n if (remoteComponentSrc) {\n newLink.setAttribute(\n 'data-remote-component-src',\n remoteComponentSrc,\n );\n }\n\n this.root?.appendChild(newLink);\n });\n }),\n );\n\n const styles = doc.querySelectorAll<HTMLStyleElement>('style');\n styles.forEach((style) => {\n if (style.parentElement?.tagName.toLowerCase() === 'head') {\n const newStyle = document.createElement('style');\n newStyle.textContent = style.textContent;\n\n if (remoteComponentSrc) {\n newStyle.setAttribute(\n 'data-remote-component-src',\n remoteComponentSrc,\n );\n }\n\n this.root?.appendChild(newStyle);\n }\n });\n };\n\n if (!this.reactRoot) {\n // ensure all styles are loaded before hydrating to prevent FOUC\n await attachLinks();\n }\n\n // update all relative URLs to absolute URLs based on the remote component URL\n applyOriginToNodes(doc, url ?? new URL(location.href));\n\n if (!this.reactRoot) {\n // attach the remote component content to the shadow DOM\n Array.from(component.children).forEach((el) => {\n this.root?.appendChild(el);\n });\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.fallbackSlot?.remove();\n\n // function to apply the reset styles to the shadow DOM\n const applyReset = () => {\n if (\n this.getAttribute('reset') !== null &&\n !this.root?.querySelector('link[data-remote-components-reset]')\n ) {\n // all initial styles to reset inherited styles leaking from the host page\n const allInitial = document.createElement('link');\n allInitial.setAttribute('data-remote-components-reset', '');\n const css = `:host { all: initial; }`;\n const allInitialHref = URL.createObjectURL(\n new Blob([css], { type: 'text/css' }),\n );\n allInitial.href = allInitialHref;\n allInitial.rel = 'stylesheet';\n // we need to revoke the object URL after the stylesheet is loaded to free up memory\n allInitial.onload = () => {\n URL.revokeObjectURL(allInitialHref);\n allInitial.removeAttribute('onload');\n };\n allInitial.onerror = () => {\n URL.revokeObjectURL(allInitialHref);\n allInitial.removeAttribute('onload');\n };\n this.root?.prepend(allInitial);\n } else if (\n this.getAttribute('reset') === null &&\n this.root?.querySelector('link[data-remote-components-reset]')\n ) {\n this.root\n .querySelector('link[data-remote-components-reset]')\n ?.remove();\n }\n };\n\n // apply the reset styles if required and not already applied\n if (!this.reactRoot) {\n applyReset();\n }\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(\n Array.from(scripts),\n url,\n this.bundle ?? 'default',\n this.name ?? '__vercel_remote_component',\n );\n\n // cleanup previous remote component instances when a new remote component is loaded\n // this is required when the src attribute is changed to load a new remote component\n const doCleanup = () => {\n if (this.root && remoteComponentSrc) {\n const selector = `[data-remote-component-src]:not([data-remote-component-src=\"${remoteComponentSrc}\"])`;\n const prevCleanup = [\n ...this.root.querySelectorAll(selector),\n ...document.body.querySelectorAll(selector),\n ] as HTMLElement[];\n\n if (prevCleanup.length > 0) {\n prevCleanup.forEach((prev) => {\n prev.remove();\n });\n }\n }\n };\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 initial,\n }: {\n name: string;\n initial: boolean;\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 useLayoutEffect(() => {\n // clear the RSC flight data from the global scope to free up memory\n if (self[name]) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete self[name];\n }\n const rscScript = document.getElementById(`${name}_rsc`);\n if (rscScript) {\n rscScript.remove();\n }\n\n doCleanup();\n applyReset();\n if (!initial) {\n attachLinks().catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n });\n }\n this.isLoading = false;\n }, [initial, name]);\n\n // React can handle the component reference and will wait for the component to be ready\n return Component;\n };\n\n // when we already have a React root, we just need to render the new component\n if (this.reactRoot) {\n const root = this.reactRoot;\n startTransition(() => {\n root.render(\n <RemoteComponentFromReadableStream\n initial={false}\n name={this.name ?? '__vercel_remote_component'}\n />,\n );\n });\n return;\n }\n\n // hydrate the remote component using the RSC flight data\n this.reactRoot = 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.root,\n <RemoteComponentFromReadableStream\n initial\n name={this.name ?? '__vercel_remote_component'}\n />,\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 ?? 'default',\n nextData.page,\n this.root,\n );\n\n // if we have the component, we can hydrate it\n if (Component) {\n const RemoteComponentFromNext = ((\n NextApp: ReturnType<typeof nextClientPagesLoader>['App'],\n NextComponent: NonNullable<\n ReturnType<typeof nextClientPagesLoader>['Component']\n >,\n remoteComponent = this,\n ) =>\n function RemoteComponentNext({ initial }: { initial: boolean }) {\n useLayoutEffect(() => {\n doCleanup();\n if (!initial) {\n applyReset();\n attachLinks().catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n });\n }\n remoteComponent.isLoading = false;\n }, [initial]);\n\n return NextApp ? (\n <NextApp Component={NextComponent} {...nextData.props} />\n ) : (\n <NextComponent {...nextData.props} />\n );\n })(App, Component, this);\n\n // when we already have a React root, we just need to render the new component\n if (this.reactRoot) {\n const root = this.reactRoot;\n startTransition(() => {\n root.render(<RemoteComponentFromNext initial={false} />);\n doCleanup();\n this.isLoading = false;\n });\n return;\n }\n\n // hydrate the remote component using the Next.js pages router\n this.reactRoot = 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.root,\n <RemoteComponentFromNext initial />,\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.root.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\nexport function registerSharedModules(\n modules: Record<string, () => Promise<unknown>> = {},\n) {\n const self = globalThis as typeof globalThis & {\n __remote_component_host_shared_modules__?: Record<\n string,\n () => Promise<unknown>\n >;\n };\n\n if (!self.__remote_component_host_shared_modules__) {\n // eslint-disable-next-line camelcase\n self.__remote_component_host_shared_modules__ = {};\n }\n\n Object.entries(modules).forEach(([key, value]) => {\n if (self.__remote_component_host_shared_modules__) {\n self.__remote_component_host_shared_modules__[key] = value;\n }\n });\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactDOMClient from 'react-dom/client';\nimport * as JSXDevRuntime from 'react/jsx-dev-runtime';\nimport * as JSXRuntime from 'react/jsx-runtime';\nimport { applySharedModules } from '../webpack/shared-modules';\nimport { nextClientPagesLoader } from '../webpack/next-client-pages-loader';\nimport { setupWebpackRuntime } from './webpack-adapter';\nimport { loadScripts } from './script-loader';\nimport { createRSCStream } from './rsc';\nimport type { RemoteComponentProps, LoaderResult, GlobalScope } from './types';\n\nexport type LoadRemoteComponentProps = Pick<\n RemoteComponentProps,\n 'name' | 'bundle' | 'route' | 'runtime' | 'data' | 'nextData' | 'scripts'\n> & {\n url: URL;\n shared:\n | Promise<Record<string, (bundle?: string) => Promise<unknown>>>\n | Record<string, (bundle?: string) => Promise<unknown>>;\n remoteShared: Record<string, string>;\n container?: HTMLHeadElement | ShadowRoot | null;\n};\n\n/**\n * Main loader function that orchestrates the component loading process\n */\nexport async function loadRemoteComponent({\n url,\n name,\n bundle,\n route = '/',\n runtime = 'webpack',\n data,\n nextData,\n scripts = [],\n shared = Promise.resolve({}),\n remoteShared = {},\n container,\n}: LoadRemoteComponentProps): Promise<LoaderResult> {\n try {\n // Load scripts if using webpack runtime\n if (runtime === 'webpack') {\n const self = globalThis as GlobalScope;\n // disable webpack entrypoint execution for the remote\n if (!self.__DISABLE_WEBPACK_EXEC__) {\n self.__DISABLE_WEBPACK_EXEC__ = {};\n }\n // disable webpack entrypoint execution for the current remote bundle\n self.__DISABLE_WEBPACK_EXEC__[bundle] = true;\n await loadScripts(scripts);\n }\n\n const hostShared = await shared;\n // Setup webpack runtime environment\n await setupWebpackRuntime(\n runtime,\n scripts,\n url,\n bundle,\n hostShared,\n remoteShared,\n );\n\n // Setup shared modules\n if (bundle) {\n const resolve = {\n '/react/index.js': React,\n '/react/jsx-dev-runtime.js': JSXDevRuntime,\n '/react/jsx-runtime.js': JSXRuntime,\n '/react-dom/index.js': ReactDOM,\n '/react-dom/client.js': ReactDOMClient,\n ...Object.entries(remoteShared).reduce<Record<string, unknown>>(\n (acc, [key, value]) => {\n if (typeof hostShared[value] !== 'undefined') {\n acc[key.replace(/^\\(ssr\\)\\/(?<relative>\\.\\/)?/, '')] =\n hostShared[value];\n }\n return acc;\n },\n {},\n ),\n } as Record<string, unknown>;\n await Promise.all(\n Object.entries(resolve).map(async ([key, value]) => {\n if (typeof value === 'function') {\n resolve[key] = await value(bundle);\n }\n return Promise.resolve(value);\n }),\n );\n applySharedModules(bundle, resolve);\n }\n\n // Load component based on data type\n if (data.length > 0) {\n return await loadRSCComponent(name, data);\n } else if (nextData) {\n return loadNextPagesComponent(bundle, route, nextData, name, container);\n }\n\n return loadRSCComponent(name, [`0:[null]\\n`]); // Fallback to empty RSC payload\n } catch (error) {\n return {\n component: null,\n error: error instanceof Error ? error : new Error(String(error)),\n };\n }\n}\n\n/**\n * Loads RSC (React Server Components) based component\n */\nasync function loadRSCComponent(\n name: string,\n data: string[],\n): Promise<LoaderResult> {\n // try to import react-server-dom-webpack from Next.js with a fallback\n let createFromReadableStream;\n try {\n const { createFromReadableStream: _createFromReadableStream } =\n await import(\n 'next/dist/compiled/react-server-dom-webpack/client.browser'\n );\n createFromReadableStream = _createFromReadableStream;\n } catch {\n const {\n default: { createFromReadableStream: _createFromReadableStream },\n } = await import('react-server-dom-webpack/client.browser');\n createFromReadableStream = _createFromReadableStream;\n }\n // remote components with RSC requires react-server-dom-webpack\n if (typeof createFromReadableStream !== 'function') {\n throw new Error('Failed to import react-server-dom-webpack');\n }\n\n const stream = createRSCStream(name, data);\n const component = createFromReadableStream(stream);\n\n return { component };\n}\n\n/**\n * Loads Next.js Pages Router based component\n */\nfunction loadNextPagesComponent(\n bundle: string,\n route: string,\n nextData: NonNullable<RemoteComponentProps['nextData']>,\n name: string,\n container?: HTMLHeadElement | ShadowRoot | null,\n): LoaderResult {\n const { Component, App } = nextClientPagesLoader(bundle, route, container);\n\n if (!Component) {\n throw new Error(\n `Remote component ${name} is trying to load the component for route ${route} but it is not available.`,\n );\n }\n\n // error tolerance when app component is not found\n const component = App\n ? React.createElement(App, { Component, ...nextData.props })\n : React.createElement(Component, nextData.props);\n\n return { component };\n}\n","import { ReadableStream } from 'web-streams-polyfill';\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 { before, id, prefix, payload } =\n /^(?<before>.*?)?(?<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 = `${before ?? ''}${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 { RemoteComponentProps, GlobalScope, LoaderResult } from './types';\nexport {\n loadRemoteComponent,\n type LoadRemoteComponentProps,\n} from './component-loader';\nexport { setupWebpackRuntime } from './webpack-adapter';\nexport { loadScripts } from './script-loader';\nexport { fixPayload, createRSCStream } from './rsc';\nexport { setAttributesFromProps } from './set-attributes-from-props';\nexport {\n DEFAULT_ROUTE,\n RUNTIME_WEBPACK,\n RUNTIME_TURBOPACK,\n REMOTE_COMPONENT_REGEX,\n getBundleKey,\n} from './const';\nexport type { Runtime } from './const';\n","const tagNames = [\n 'img',\n 'source',\n 'video',\n 'audio',\n 'track',\n 'iframe',\n 'embed',\n 'script',\n 'link',\n];\n\nexport function applyOriginToNodes(doc: Document | HTMLElement, url: URL) {\n const nodes = doc.querySelectorAll<HTMLImageElement>(\n tagNames.map((type) => `${type}[src],${type}[srcset]`).join(','),\n );\n nodes.forEach((node) => {\n if (\n node.hasAttribute('src') &&\n /^[./]+\\/?/.test(node.getAttribute('src') ?? '')\n ) {\n node.src = new URL(node.getAttribute('src') ?? '/', url).href;\n }\n if (node.hasAttribute('srcset')) {\n const srcSet = node\n .getAttribute('srcset')\n ?.split(',')\n .map((entry) => {\n const [urlPart, descriptor] = entry.trim().split(/\\s+/);\n if (!urlPart) return entry;\n\n const absoluteUrl = new URL(urlPart, url).href;\n return descriptor ? `${absoluteUrl} ${descriptor}` : absoluteUrl;\n })\n .join(', ');\n if (srcSet) {\n node.setAttribute('srcset', srcSet);\n }\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(bundle ?? 'default', shared, remoteShared);\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":";;;;;;;;;;;AAKO,SAAS,mBACd,QACA,SACA;AAEA,QAAM,OAAO;AAab,MAAI,KAAK,6BAA6B,MAAM,GAAG;AAC7C,UAAM,cAAc,OAAO;AAAA,MACzB,KAAK,gCAAgC,MAAM,KACzC,KAAK,2BAA2B,MAAM,EAAE,KACxC,CAAC;AAAA,IACL;AAEA,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,OAAO,GAAG;AAClD,UAAI,MAAM,YAAY,OAAO,CAAC,MAAM,MAAM,GAAG;AAC7C,UAAI,IAAI,WAAW,GAAG;AACpB,cAAM,YAAY,OAAO,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC;AAAA,MACjD;AACA,eAAS,MAAM,KAAK;AAClB,cAAM,gBAAgB,KAAK,2BAA2B,MAAM;AAC5D,YAAI,cAAc,GAAG;AAGnB,cAAI,KAAK,gCAAgC,MAAM,IAAI,EAAE,GAAG;AACtD,iBAAK,GAAG,KAAK,8BAA8B,MAAM,EAAE,EAAE;AAAA,UACvD;AAEA,wBAAc,EAAE,EAAE,IAAI,CAAC,WAAW;AAChC,mBAAO,UAAU;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAnDA;AAAA;AAAA;AAAA;AAAA;;;ACCO,SAAS,sBACd,QACA,OACA,iBAAsD,SAAS,MAC/D;AAEA,QAAM,OAAO;AAwDb,QAAM,kBAAkB,SAAS;AAAA,IAC/B,qDAAqD,wBAAwB;AAAA,EAC/E;AACA,MAAI,iBAAiB;AACnB,oBAAgB,YAAY,YAAY,eAAe;AAAA,EACzD;AAGA,QAAM,UAAU,SAAS,cAAc,UAAU;AACjD,UAAQ,KAAK;AACb,UAAQ,aAAa,eAAe,MAAM;AAC1C,UAAQ,aAAa,cAAc,KAAK;AACxC,QAAM,aAAa,SAAS,cAAc,UAAU;AACpD,aAAW,KAAK;AAChB,aAAW,aAAa,eAAe,MAAM;AAC7C,aAAW,aAAa,cAAc,KAAK;AAC3C,WAAS,KAAK,YAAY,UAAU;AACpC,WAAS,KAAK,YAAY,OAAO;AAGjC,QAAM,uBACJ,OAAO,KAAK,KAAK,6BAA6B,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9D,CAAC,QACC,IAAI,SAAS,8CAA8C,KAC3D,IAAI,SAAS,QAAQ,mBAAmB,KAAK,IAAI;AAAA,EACrD,KACA,OAAO,KAAK,KAAK,6BAA6B,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9D,CAAC,QAAQ,IAAI,SAAS,kCAAkC;AAAA,EAC1D,KACA,KAAK,gCAAgC,MAAM,IACzC,OAAO,KAAK,KAAK,8BAA8B,MAAM,KAAK,CAAC,CAAC,EAAE;AAAA,IAC5D,CAAC,QACC,IAAI,SAAS,8CAA8C,KAC3D,IAAI,SAAS,QAAQ,mBAAmB,KAAK,IAAI;AAAA,EACrD,KACE,OAAO,KAAK,KAAK,8BAA8B,MAAM,KAAK,CAAC,CAAC,EAAE;AAAA,IAC5D,CAAC,QAAQ,IAAI,SAAS,kCAAkC;AAAA,EAC1D,KACA,EACJ,KACA;AAGF,QAAM,iBACJ,OAAO,KAAK,KAAK,6BAA6B,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9D,CAAC,QACC,IAAI,SAAS,8CAA8C,KAC3D,IAAI,SAAS,cAAc;AAAA,EAC/B,KACA,OAAO,KAAK,KAAK,6BAA6B,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE;AAAA,IAC9D,CAAC,QAAQ,IAAI,SAAS,kCAAkC;AAAA,EAC1D,KACA,KAAK,gCAAgC,MAAM,IACzC,OAAO,KAAK,KAAK,8BAA8B,MAAM,KAAK,CAAC,CAAC,EAAE;AAAA,IAC5D,CAAC,QACC,IAAI,SAAS,8CAA8C,KAC3D,IAAI,SAAS,cAAc;AAAA,EAC/B,KACE,OAAO,KAAK,KAAK,8BAA8B,MAAM,KAAK,CAAC,CAAC,EAAE;AAAA,IAC5D,CAAC,QAAQ,IAAI,SAAS,kCAAkC;AAAA,EAC1D,KACA,EACJ,KACA;AAGF,MAAI,EAAE,wBAAwB,iBAAiB;AAC7C,UAAM,IAAI;AAAA,MACR,oDAAoD;AAAA,IACtD;AAAA,EACF;AAKA,QAAM,oBAAoB,KAAK;AAC/B,QAAM,eAAe;AACrB,SAAO,aAAa;AAGpB,OAAK,6BAA6B,MAAM;AAAA,IACtC,KAAK,2BAA2B,MAAM,EAAE,SAAS,cAC7C,uBACA,IAAI,WAAW;AAAA,EACrB;AACA,MACE,OAAO,mBAAmB,YACzB,OAAO,mBAAmB,YAAY,mBAAmB,IAC1D;AACA,SAAK,6BAA6B,MAAM;AAAA,MACtC,KAAK,2BAA2B,MAAM,EAAE,SAAS,cAC7C,iBACA,IAAI,WAAW;AAAA,IACrB;AAAA,EACF;AAGA,MAAI,KAAK,UAAU;AACjB,UAAM,CAAC,EAAE,eAAe,IAAI,KAAK,SAAS,CAAC,KAAK;AAAA,MAC9C;AAAA,MACA,OAAO,EAAE,SAAS,KAAK;AAAA,IACzB;AACA,UAAM,CAAC,EAAE,SAAS,IAAI,KAAK,SAAS,CAAC,KAAK;AAAA,MACxC;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AACA,UAAM,EAAE,SAAS,UAAU,IAAI,gBAAgB;AAC/C,UAAM,EAAE,SAAS,IAAI,IAAI,UAAU;AAEnC,QAAI,CAAC,KAAK,qBAAqB;AAE7B,WAAK,sBAAsB,CAAC;AAAA,IAC9B;AAEA,QAAI,CAAC,KAAK,oBAAoB,MAAM,GAAG;AAErC,YAAM,QAAQ;AACd,aAAO,KAAK,KAAK,6BAA6B,MAAM,GAAG,KAAK,CAAC,CAAC,EAC3D,OAAO,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,EAC7B,QAAQ,CAAC,OAAO;AACf,aAAK,6BAA6B,MAAM,IAAI,EAAE;AAAA,MAChD,CAAC;AAEH,aAAO,KAAK,KAAK,gCAAgC,MAAM,KAAK,CAAC,CAAC,EAC3D,OAAO,CAAC,SAAS,MAAM,KAAK,IAAI,CAAC,EACjC,QAAQ,CAAC,SAAS;AACjB,cAAM,KAAK,KAAK,gCAAgC,MAAM,IAAI,IAAI;AAC9D,YAAI,IAAI;AACN,eAAK,6BAA6B,MAAM,IAAI,EAAE;AAAA,QAChD;AAAA,MACF,CAAC;AAEH,YAAM,WAAW,CAAC;AAClB,UAAI,OAAO,QAAQ;AACnB,aAAO,QAAQ,SAAS,YAAY;AAClC,iBAAS,KAAK,IAAI;AAClB,aAAK,OAAO;AACZ,eAAO,QAAQ;AAAA,MACjB;AACA,WAAK,oBAAoB,MAAM,IAAI;AAAA,IACrC;AAGA,QAAI,gBAAgB;AAClB,YAAM,WAAW,KAAK,oBAAoB,MAAM;AAChD,eAAS,QAAQ,CAAC,OAAO;AACvB,uBAAe,YAAY,GAAG,UAAU,IAAI,CAAC;AAAA,MAC/C,CAAC;AAAA,IACH,OAAO;AAEL,YAAM,WAAW,KAAK,oBAAoB,MAAM;AAChD,eAAS,QAAQ,CAAC,OAAO;AACvB,iBAAS,KAAK,YAAY,EAAE;AAAA,MAC9B,CAAC;AAAA,IACH;AAGA,WAAO,KAAK;AACZ,SAAK,WAAW;AAGhB,QAAI,iBAAiB;AACnB,sBAAgB,YAAY,YAAY,eAAe;AAAA,IACzD;AAEA,YAAQ,OAAO;AACf,eAAW,OAAO;AAElB,WAAO,EAAE,WAAW,IAAI;AAAA,EAC1B;AAEA,SAAO,EAAE,WAAW,MAAM,KAAK,KAAK;AACtC;AA7OA;AAAA;AAAA;AAAA;AAAA;;;ACQO,SAAS,aAAa,QAAwB;AACnD,SAAO,OAAO,QAAQ,MAAM,GAAG;AACjC;AAVA,IAEa,iBACA,mBAEA;AALb;AAAA;AAAA;AAEO,IAAM,kBAAkB;AACxB,IAAM,oBAAoB;AAE1B,IAAM,yBACX;AAAA;AAAA;;;ACMF,eAAsB,oBACpB,SACA,UAAoC,CAAC,GACrC,MAAW,IAAI,IAAI,SAAS,IAAI,GAChC,QACA,SAAiD,CAAC,GAClD,eAAuC,CAAC,GACzB;AACf,QAAM,OAAO;AAEb,MAAI,CAAC,KAAK,uBAAuB;AAE/B,SAAK,wBAAwB,CAAC;AAAA,EAChC;AACA,OAAK,sBAAsB,UAAU,SAAS,IAAI;AAElD,OAAK,kCAAkC,MAAM;AAE7C,QAAM;AAAA,IACJ,UAAU;AAAA;AAAA,IAEV;AAAA,MACE,OAAO,aAAa,MAAM,OAAO,OAAO,GAAG;AAAA,MAC3C,aAAa,aAAa,MAAM,OAAO,WAAW,GAAG;AAAA,MACrD,yBAAyB,aACtB,MAAM,OAAO,uBAAuB,GAAG;AAAA,MAC1C,qBAAqB,aAClB,MAAM,OAAO,mBAAmB,GAAG;AAAA,MACtC,oBAAoB,aACjB,MAAM,OAAO,kBAAkB,GAAG;AAAA,MACrC,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACA,MACE,OAAO,KAAK,wBAAwB,cACpC,KAAK,6BAA6B,aAClC;AACA,QACE,CAAC,KAAK,gCACN,CAAC,KAAK,iCACN;AAEA,WAAK,kCAAkC,KAAK;AAE5C,WAAK,+BAA+B,KAAK;AAAA,IAC3C;AAEA,SAAK,yBAAyB,kBAAkB,OAAO;AACvD,SAAK,sBAAsB,oBAAoB,OAAO;AAEtD,SAAK,2BAA2B;AAEhC,QAAI,KAAK,8BAA8B,YAAY,mBAAmB;AACpE,YAAM,eAAe,UAAU;AAC/B,WAAK,2BAA2B,YAAY,IAC1C,KAAK;AACP,WAAK,2BAA2B,YAAY,EAAE,OAAO;AAAA,IACvD;AAAA,EACF;AACA,MAAI,YAAY,mBAAmB;AACjC,UAAM,QAAQ;AAAA,MACZ,QAAQ,IAAI,CAAC,WAAW;AACtB,YAAI,OAAO,KAAK;AACd,iBAAO,KAAK,yBAAyB,OAAO,KAAK,MAAM;AAAA,QACzD;AACA,eAAO,QAAQ,QAAQ,MAAS;AAAA,MAClC,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAKA,SAAS,kBACP,SACmD;AAEnD,SAAO,SAAS,yBACd,SACA,cACA;AACA,UAAM,OAAO;AACb,UAAM;AAAA,MACJ;AAAA,MACA,IAAI;AAAA,MACJ;AAAA,IACF,IAAI,uBAAuB,KAAK,OAAO,GAAG,UAAU;AAAA,MAClD,QAAQ,gBAAgB;AAAA,MACxB,IAAI;AAAA,IACN;AACA,UAAM,gBAAgB,KAAK,6BAA6B,UAAU,SAAS,IACvE,KAAK,2BAA2B,UAAU,SAAS,GAAG,QAAQ,YAC9D;AACJ,QAAI,kBAAkB,iBAAiB;AAErC,aAAO,QAAQ,QAAQ,MAAS;AAAA,IAClC;AAEA,UAAM,MAAM,IAAI;AAAA,MACd,OACI,GAAG,UAAU,KAAK,OAAO;AAAA,QACvB;AAAA,QACA;AAAA,MACF,IACA;AAAA,MACJ,KAAK,wBAAwB,UAAU,SAAS,KAC9C,IAAI,IAAI,SAAS,MAAM;AAAA,IAC3B,EAAE;AACF,QAAI,IAAI,SAAS,MAAM,GAAG;AACxB;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,sDAAsD;AAE9D,WAAK,uDAAuD,CAAC;AAAA,IAC/D;AACA,QAAI,KAAK,qDAAqD,GAAG,GAAG;AAClE,aAAO,KAAK,qDAAqD,GAAG;AAAA,IACtE;AAEA,SAAK,qDAAqD,GAAG,IAC3D,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC/B,YAAM,GAAG,EACN,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EACxB,KAAK,CAAC,SAAS;AACd,YAAI,KAAK,SAAS,sBAAsB,GAAG;AACzC,iBAAO,qBAAqB,MAAM,UAAU,IAAI,GAAG;AAAA,QACrD;AAAA,MACF,CAAC,EACA,KAAK,OAAO,EACZ,MAAM,MAAM;AAAA,IACjB,CAAC;AAEH,WAAO,KAAK,qDAAqD,GAAG;AAAA,EACtE;AACF;AAKA,eAAe,qBACb,MACA,QACA,KACe;AAEf,MAAI,sDAAsD,KAAK,IAAI,GAAG;AAEpE,UAAM,eAAe,SAAS;AAAA,MAC5B,6BAA6B,IAAI,IAAI,GAAG,EAAE;AAAA,IAC5C;AACA,iBAAa,QAAQ,CAAC,gBAAgB,YAAY,OAAO,CAAC;AAC1D;AAAA,EACF;AAEA,QAAM,OAAO;AACb,QAAM,YAAY,aAAa,MAAM;AAGrC,QAAM,kBAAkB,KACrB,QAAQ,0BAA0B,wBAAwB,WAAW,EACrE;AAAA,IACC;AAAA,IACA,6BAA6B;AAAA,EAC/B,EACC;AAAA,IACC;AAAA,IACA,6BAA6B;AAAA,EAC/B,EACC;AAAA,IACC;AAAA,IACA,oCAAoC;AAAA,EACtC,EACC,QAAQ,qBAAqB,KAAK,0BAA0B,EAC5D;AAAA,IACC;AAAA,IACA,wBACE,IAAI;AAAA,MACF;AAAA,MACA,IAAI;AAAA,QACF;AAAA,QACA,KAAK,wBAAwB,MAAM,KAAK,IAAI,IAAI,SAAS,MAAM;AAAA,MACjE;AAAA,IACF,EAAE;AAAA,EAEN;AAGF,QAAM,IAAI,QAAc,CAAC,eAAe,iBAAiB;AACvD,UAAM,OAAO,IAAI,KAAK,CAAC,eAAe,GAAG;AAAA,MACvC,MAAM;AAAA,IACR,CAAC;AACD,UAAM,YAAY,IAAI,gBAAgB,IAAI;AAC1C,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM;AACb,WAAO,QAAQ;AACf,WAAO,SAAS,MAAM;AACpB,UAAI,gBAAgB,SAAS;AAC7B,oBAAc,MAAS;AACvB,aAAO,OAAO;AAAA,IAChB;AACA,WAAO,UAAU,CAAC,UAAU;AAC1B,UAAI,gBAAgB,SAAS;AAC7B;AAAA,QACE,IAAI;AAAA,UACF,0BAA0B,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QACjF;AAAA,MACF;AACA,aAAO,OAAO;AAAA,IAChB;AACA,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,CAAC;AACD,QAAM,aAAa,KAAK,aAAa,uBAAuB;AAG5D,QAAM,iBAAiB,CAAC;AACxB,SAAO,YAAY,QAAQ;AACzB,UAAM,EAAE,OAAO,IAAI,WAAW,MAAM,KAAK,EAAE,QAAQ,CAAC,EAAE;AACtD,QAAI,OAAO,SAAS,GAAG;AACrB,aAAO,QAAQ,CAAC,OAAe;AAC7B,cAAM,kBAAkB,KAAK;AAAA,UAC3B,IAAI,WAAW,IAAI,MAAM,GAAG,IAAI,QAAQ,QAAQ,CAAC,WAAW;AAAA,QAC9D;AACA,YAAI,iBAAiB;AACnB,yBAAe,KAAK,eAAe;AAAA,QACrC;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACA,MAAI,eAAe,SAAS,GAAG;AAC7B,UAAM,QAAQ,IAAI,cAAc;AAAA,EAClC;AACF;AAKA,SAAS,oBAAoB,SAA2C;AACtE,SAAO,CAAC,OAAe;AACrB,UAAM,OAAO;AACb,UAAM,EAAE,QAAQ,IAAI,SAAS,IAAI,GAAG,MAAM,sBAAsB,GAC5D,UAAU,EAAE,QAAQ,WAAW,GAAG;AACtC,UAAM,gBAAgB,KAAK,6BAA6B,UAAU,SAAS,IACvE,KAAK,2BAA2B,UAAU,SAAS,GAAG,QAAQ,YAC9D;AACJ,QAAI;AACF,UAAI,kBAAkB,mBAAmB,UAAU,UAAU;AAC3D,eAAO,KAAK,6BAA6B,MAAM,IAAI,QAAQ;AAAA,MAC7D;AACA,YAAM,eAAe,gBAAgB,UAAU,WAAW,YAAY,EAAE;AACxE,UAAI,cAAc;AAChB,eAAO;AAAA,MACT;AACA,UAAI,UAAU,UAAU;AACtB,eAAO,sBAAsB,QAAQ,UAAU,EAAE;AAAA,MACnD;AACA,YAAM,IAAI,MAAM,UAAU,cAAc;AAAA,IAC1C,QAAE;AACA,UAAI,OAAO,KAAK,iCAAiC,YAAY;AAC3D,cAAM,IAAI;AAAA,UACR,UAAU,2CAA2C;AAAA,QACvD;AAAA,MACF;AACA,UAAI;AACF,eAAO,KAAK,6BAA6B,EAAE;AAAA,MAC7C,QAAE;AACA,cAAM,IAAI;AAAA,UACR,UAAU,2CAA2C;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,wBACP,QACA,SAAgE,CAAC,GACjE,eAAuC,CAAC,GACxC;AACA,QAAM,OAAO;AAKb,OAAK,4BAA4B,KAAK,6BAA6B,CAAC;AAEpE,MAAI,CAAC,KAAK,0BAA0B,MAAM,GAAG;AAC3C,SAAK,0BAA0B,MAAM,IAAI,CAAC;AAAA,EAC5C;AAGA,SAAO,QAAQ;AAAA,IACb,OAAO,QAAQ,YAAY,EAAE,IAAI,OAAO,CAAC,IAAI,MAAM,MAAM;AACvD,UAAI,KAAK,4BAA4B,MAAM,GAAG;AAC5C,YAAI,OAAO,MAAM,GAAG;AAClB,eAAK,0BAA0B,MAAM,EACnC,GAAG,QAAQ,aAAa,cAAc,CACxC,IAAI,MAAM,OAAO,MAAM,EAAE,MAAM;AAAA,QACjC,OAAO;AAEL,kBAAQ,MAAM,kBAAkB,0BAA0B,UAAU;AAAA,QACtE;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAKA,SAAS,gBAAgB,QAAgB,IAA8B;AACrE,QAAM,OAAO;AAIb,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO;AAAA,IAChC,KAAK,4BAA4B,MAAM,KAAK,CAAC;AAAA,EAC/C,GAAG;AACD,QACE,OAAO,UAAU,gBACf,OAAO,OAAO,YAAY,GAAG,SAAS,GAAG,KAAM,OAAO,MACxD;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAKA,SAAS,sBACP,QACA,UACA,IACS;AACT,QAAM,OAAO;AACb,QAAM,YAAY,aAAa,MAAM;AACrC,QAAM,UAAU,KAAK,aAAa,WAAW;AAG7C,MAAI;AAEJ,aAAW,OAAO,WAAW,CAAC,GAAG;AAC/B,QAAI,OAAO,IAAI,CAAC,MAAM,UAAU;AAC9B,UAAI,QAAQ,IAAI,QAAQ,QAAQ;AAChC,UAAI,UAAU,IAAI;AAChB,gBAAQ,IAAI;AAAA,UACV,CAAC,MAAM,OAAO,MAAM,YAAY,EAAE,WAAW,QAAQ;AAAA,QACvD;AAAA,MACF;AACA,UAAI,UAAU,IAAI;AAChB,eAAO,OAAO,IAAI,KAAK,MAAM,cAAc,QAAQ,IAAI,QAAQ;AAC7D;AAAA,QACF;AACA,qBAAa,IAAI,KAAK;AAKtB;AAAA,MACF;AAAA,IACF,OAAO;AACL,YAAM,MAAM,IAAI,CAAC;AACjB,UAAI,YAAY,KAAK;AACnB,qBAAa,IAAI,QAAQ;AAKzB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,QAAM,UAAU,CAAC;AACjB,QAAM,gBAAgB,EAAE,QAAQ;AAChC,QAAM,cAAc,oBAAI,IAAY;AAEpC,MAAI,CAAC,KAAK,yCAAyC;AAEjD,SAAK,0CAA0C,CAAC;AAAA,EAClD;AACA,MAAI,CAAC,KAAK,wCAAwC,MAAM,GAAG;AACzD,SAAK,wCAAwC,MAAM,IAAI,CAAC;AAAA,EAC1D;AACA,MAAI,KAAK,wCAAwC,MAAM,EAAE,QAAQ,GAAG;AAClE,WAAO,KAAK,wCAAwC,MAAM,EAAE,QAAQ;AAAA,EACtE;AAEA,MAAI,OAAO,eAAe,YAAY;AACpC,UAAM,IAAI;AAAA,MACR,UAAU,0BAA0B,kBAAkB;AAAA,IACxD;AAAA,EACF;AAEA,OAAK,wCAAwC,MAAM,EAAE,QAAQ,IAC3D,cAAc;AAEhB,MAAI,CAAC,KAAK,wCAAwC;AAEhD,SAAK,yCAAyC,CAAC;AAAA,EACjD;AACA,MAAI,CAAC,KAAK,uCAAuC,MAAM,GAAG;AACxD,SAAK,uCAAuC,MAAM,IAAI,CAAC;AAAA,EACzD;AAEA;AAAA,IACE;AAAA;AAAA,MAEE,GAAG;AAAA,QACD,WAAW;AAAA,QAEX;AAAA,QACA,kBAAkB;AAAA,QAElB;AAAA,QACA,YAAY;AACV,iBAAO,MAAM;AAAA,UAEb;AAAA,QACF;AAAA,MACF;AAAA,MACA,EAAE,GAAiE;AACjE,YAAI,MAAM;AACV,YAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,gBAAM,CAAC;AACP,gBAAM,OAAiB,CAAC;AACxB,qBAAW,WAAW,GAAG;AACvB,gBAAI,OAAO,YAAY,UAAU;AAC/B,mBAAK,KAAK,OAAO;AAAA,YACnB,WAAW,OAAO,YAAY,YAAY;AACxC,qBAAO,KAAK,SAAS,GAAG;AACtB,sBAAM,MAAM,KAAK,MAAM;AACvB,oBAAI,KAAK;AACP,sBAAI,GAAG,IAAI;AAAA,gBACb;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,mBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,kBAAQ,GAAG,IAAI;AACf,sBAAY,IAAI,GAAG;AAAA,QACrB;AAAA,MACF;AAAA,MACA,EAAE,KAAa;AACb,cAAM,EAAE,cAAc,WAAW,IAC/B,0DAA0D,KAAK,GAAG,GAC9D,UAAU,CAAC;AACjB,cAAM,eAAe,IAAI,QAAQ,gCAAgC,EAAE;AACnE,cAAM,MAAM,KAAK;AAAA,UACf,IAAI,WAAW;AAAA,QACjB;AACA,YACE,gBACA,cACA,OAAO,IAAI,YAAY,MAAM,eAC7B,OAAO,IAAI,UAAU,MAAM,aAC3B;AACA,cAAI,UAAU,IAAI,IAAI,YAAY;AAAA,QACpC;AACA,eAAO;AAAA,MACT;AAAA,MACA,EAAE,KAAa;AACb,eAAO,KAAK,sBAAsB,IAAI,WAAW,KAAK;AAAA,MACxD;AAAA,MACA,EAAE,OAAgB;AAChB,gBAAQ,UAAU;AAAA,MACpB;AAAA,MACA,GAAG,KAAK,uCAAuC,MAAM;AAAA,MACrD,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,aAAW,QAAQ,aAAa;AAC9B,QAAI,OAAO,QAAQ,IAAI,MAAM,YAAY;AACvC,cAAQ,IAAI,IAAI,QAAQ,IAAI,EAAE;AAAA,IAChC;AAAA,EACF;AAEA,SAAO,cAAc;AACvB;AAnfA;AAAA;AAAA;AACA;AAAA;AAAA;;;AC0CM;AAxCN,SAAS,oBAAoB,QAAgB,KAAa;AACxD,QAAM,OAAO;AAIb,MAAI,KAAK,wBAAwB,MAAM,GAAG,WAAW,SAAS,QAAQ;AACpE,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,aAAa,KAAK,IACxB,2CAA2C,KAAK,GAAG,GAAG,UAAU,CAAC;AACnE,MAAI,CAAC,MAAM;AACT,WAAO,IAAI,IAAI,KAAK,KAAK,wBAAwB,MAAM,GAAG,MAAM,EAAE;AAAA,EACpE;AACA,SAAO,GACL,KAAK,wBAAwB,MAAM,GAAG,UAAU,KAC/C,qBAAqB;AAC1B;AAEO,SAAS,8BACd,QACA,KACA;AACA,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO,oBAAoB,QAAQ,GAAG;AAAA,EACxC;AACA,QAAM,UAAU;AAChB,SAAO,oBAAoB,QAAQ,QAAQ,GAAG;AAChD;AAyBO,SAAS,gBACd,QACA;AACA,QAAM,OAAO;AAMb,QAAM,WAAW;AAAA,IACf,0CACE,KAAK,2CAA2C,iBAAiB,KACjE,SAAS,iBAAiB,MACzB,MACC,QAAQ,QAAQ;AAAA,MACd,YAAY;AACV,eAAO;AAAA,UACL,MAAM,CAAC,cAAsB;AAC3B,oBAAQ,UAAU,CAAC,GAAG,IAAI,SAAS;AAAA,UACrC;AAAA,UACA,SAAS,CAAC,cAAsB;AAC9B,oBAAQ,aAAa,CAAC,GAAG,IAAI,SAAS;AAAA,UACxC;AAAA,UACA,MAAM,MAAM;AACV,oBAAQ,KAAK;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,MACA,kBAAkB;AAChB,eAAO,IAAI,gBAAgB,SAAS,MAAM;AAAA,MAC5C;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAAA,IACL,iCACE,KAAK,2CAA2C,WAAW,KAC3D,SAAS,WAAW,MACnB,MACC,QAAQ,QAAQ;AAAA,MACd,SAAS,CAAC;AAAA,QACR;AAAA,QACA,GAAG;AAAA,MACL,MACE,oBAAC,OAAG,GAAG,OAAO,MAAM,MAAM,MAAgB,0BAAwB,MAC/D,sBAAY,MACf;AAAA,MAEF,YAAY;AAAA,IACd,CAAC;AAAA,IACL,iCACE,KAAK,2CAA2C,WAAW,KAC3D,SAAS,WAAW,MACnB,MACC,QAAQ,QAAQ;AAAA,MACd,SAAS,MAAM;AAEb,cAAM,IAAI,MAAM,0CAA0C;AAAA,MAC5D;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAAA,IACL,oCACE,KAAK,2CAA2C,YAAY,KAC5D,SAAS,YAAY,MACpB,CAAC,WACA,QAAQ,QAAQ;AAAA,MACd,OAAO,UAAU,MAAM;AAAA,MACvB,YAAY;AAAA,IACd,CAAC;AAAA,IACL,cACE,KAAK,2CAA2C,YAAY,KAC5D,SAAS,YAAY,MACpB,CAAC,WACA,QAAQ,QAAQ;AAAA,MACd,SAAS,UAAU,MAAM;AAAA,MACzB,eAAe,CAAC,cAA0B;AACxC,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACA,YAAY;AAAA,IACd,CAAC;AAAA,IACL,2BACE,KAAK,2CAA2C,aAAa,KAC7D,SAAS,aAAa,MACrB,MACC,QAAQ,QAAQ;AAAA;AAAA;AAAA,MAGd,SAAS,MAAM;AAAA,MACf,YAAY;AAAA,IACd,CAAC;AAAA,IACL,eACE,KAAK,2CAA2C,aAAa,KAC7D,SAAS,aAAa,MACrB;AAAA;AAAA,MAEC,QAAQ,QAAQ;AAAA,QACd,YAAY;AACV,iBAAO;AAAA,YACL,MAAM,CAAC,cAAsB;AAC3B,sBAAQ,UAAU,CAAC,GAAG,IAAI,SAAS;AAAA,YACrC;AAAA,YACA,SAAS,CAAC,cAAsB;AAC9B,sBAAQ,aAAa,CAAC,GAAG,IAAI,SAAS;AAAA,YACxC;AAAA,YACA,MAAM,MAAM;AACV,sBAAQ,KAAK;AAAA,YACf;AAAA,UACF;AAAA,QACF;AAAA,QACA,YAAY;AAAA,MACd,CAAC;AAAA;AAAA,EACP;AAEA,WAAS,iBAAiB,IAAI,SAC5B,wCACF;AACA,WAAS,WAAW,IAAI,SACtB,+BACF;AACA,WAAS,WAAW,IAAI,SACtB,+BACF;AACA,WAAS,qBAAqB,IAAI,SAChC,kCACF;AACA,WAAS,aAAa,IAAI,SACxB,yBACF;AAEA,SAAO;AACT;AA1LA,IAiCM;AAjCN;AAAA;AAAA;AAiCA,IAAM,YAAY,CAAC,WACjB,SAAS,YAAY,EAAE,UAAU,GAAG,GAAG,MAAM,GAAe;AAC1D,YAAM,SAAS;AAAA,QACb;AAAA,QACA,OAAO,MAAM,QAAQ,WACjB,MAAM,MACL,MAAM,IAAwB;AAAA,MACrC;AACA;AAAA;AAAA,QAEE;AAAA,UAAC;AAAA;AAAA,YACC,UAAS;AAAA,YACT,OAAO,EAAE,OAAO,cAAc;AAAA,YAC7B,GAAG;AAAA,YACJ,KAAK;AAAA,YACL,0BAAwB;AAAA;AAAA,QAC1B;AAAA;AAAA,IAEJ;AAAA;AAAA;;;ACnDF;AAAA;AAAA;AAAA;AAMA,eAAsB,eACpB,QACA,QACA,cACA;AAEA,QAAM,OAAO;AAwBb,MAAI,CAAC,KAAK,0BAA0B;AAClC,SAAK,2BAA2B,CAAC;AAAA,EACnC;AACA,OAAK,yBAAyB,MAAM,IAAI;AAExC,MACE,OAAO,KAAK,wBAAwB,cACpC,KAAK,6BAA6B,aAClC;AACA,SAAK,sBAAsB,CAAC,aAAqB;AAC/C,YAAM,KAAK;AACX,YAAM,QAAQ,GAAG,KAAK,QAAQ;AAC9B,YAAM,eAAe,OAAO,QAAQ;AACpC,YAAM,KAAK,OAAO,QAAQ;AAC1B,UAAI,EAAE,MAAM,eAAe;AACzB,cAAM,IAAI,MAAM,sBAAsB,WAAW;AAAA,MACnD;AACA,UACE,OAAO,KAAK,6BAA6B,YAAY,MAAM,YAC3D;AACA,cAAM,IAAI,MAAM,mCAAmC,eAAe;AAAA,MACpE;AACA,aAAO,KAAK,2BAA2B,YAAY,EAAE,EAAE;AAAA,IACzD;AAEA,SAAK,yBAAyB,MAAM;AAClC,aAAO,QAAQ,QAAQ,CAAC,CAAC;AAAA,IAC3B;AAAA,EACF;AAEA,QAAM;AAAA,IACJ,SAAS,EAAE,yBAAyB;AAAA,EACtC,IAAI,MAAM,OAAO,yCAAyC;AAE1D,iBAAe,eACb,SACA,KACA,cACA,GACA;AAGA,UAAM,QAAQ;AAAA,MACZ,QAAQ,IAAI,CAAC,WAAW;AACtB,eAAO,IAAI,QAAc,CAACA,UAAS,WAAW;AAC5C,gBAAM,YAAY,SAAS,cAAc,QAAQ;AACjD,oBAAU,SAAS,MAAM;AACvB,YAAAA,SAAQ;AACR,sBAAU,OAAO;AAAA,UACnB;AACA,oBAAU,UAAU,MAAM;AACxB;AAAA,cACE,IAAI;AAAA,gBACF,yBAAyB,OAAO;AAAA,cAClC;AAAA,YACF;AACA,sBAAU,OAAO;AAAA,UACnB;AACA,gBAAM,YACJ,OAAO,aAAa,KAAK,KAAK,OAAO,aAAa,UAAU;AAC9D,cAAI,WAAW;AACb,sBAAU,MAAM,IAAI;AAAA,cAClB,UAAU,QAAQ,gCAAgC,SAAS;AAAA,cAC3D;AAAA,YACF,EAAE;AAAA,UACJ;AACA,oBAAU,QAAQ;AAClB,mBAAS,KAAK,YAAY,SAAS;AAEnC,iBAAO,eAAe,YAAY,MAAM;AAAA,QAC1C,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAGA,UAAM,aAAa;AAAA,MACjB,GAAG,gBAAgB,MAAM;AAAA,MACzB,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,IACL;AACA,UAAM,UAAU;AAAA,MACd,oBAAoB,MAAM,OAAO,OAAO,GAAG;AAAA,MAC3C,8BAA8B,MAAM,OAAO,uBAAuB,GAC/D;AAAA,MACH,0BAA0B,MAAM,OAAO,mBAAmB,GAAG;AAAA,MAC7D,wBAAwB,MAAM,OAAO,WAAW,GAAG;AAAA,MACnD,yBAAyB,MAAM,OAAO,kBAAkB,GAAG;AAAA,MAC3D,GAAG,OAAO,QAAQ,gBAAgB,CAAC,CAAC,EAAE;AAAA,QACpC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AACrB,cAAI,OAAO,WAAW,KAAK,MAAM,aAAa;AAC5C,gBAAI,IAAI,QAAQ,gCAAgC,EAAE,CAAC,IACjD,WAAW,KAAK;AAAA,UACpB;AACA,iBAAO;AAAA,QACT;AAAA,QACA,CAAC;AAAA,MACH;AAAA,IACF;AACA,UAAM,QAAQ;AAAA,MACZ,OAAO,QAAQ,OAAO,EAAE,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;AAClD,YAAI,OAAO,UAAU,YAAY;AAC/B,kBAAQ,GAAG,IAAI,MAAM,MAAM,YAAY;AAAA,QACzC;AACA,eAAO,QAAQ,QAAQ,KAAK;AAAA,MAC9B,CAAC;AAAA,IACH;AAGA,uBAAmB,cAAc,OAAO;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AA1JA;AAAA;AAAA;AAAA;AACA;AACA;AAAA;AAAA;;;ACFA;AAAA;AAAA;AAAA;AAOA,eAAsB,iBACpB,KACA,QACA,QACA,cACA;AAEA,QAAM,OAAO;AAuBb,QAAM,aAAa;AAAA,IACjB,GAAG,gBAAgB,MAAM;AAAA,IACzB,GAAG,KAAK;AAAA,IACR,GAAG;AAAA,IACH,GAAG,KAAK;AAAA,EACV;AAEA,QAAM;AAAA,IACJ;AAAA,IACA,CAAC;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM;AAAA,IACJ,SAAS,EAAE,yBAAyB;AAAA,EACtC,IAAI,MAAM,OAAO,yCAAyC;AAE1D,WAAS,eAAe,SAA8B,IAAS;AAC7D,WAAO;AAAA,MACL;AAAA,MACA,QAAQ,IAAI,CAAC,YAAY;AAAA,QACvB,KACE,OAAO,aAAa,KAAK,KACzB,OAAO,aAAa,UAAU,KAC9B,OAAO;AAAA,MACX,EAAE;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAhFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAAA;AAAA;;;ACHA,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,mBAAmB;;;ACI5B;AACA;AACA;AAPA,YAAY,WAAW;AACvB,YAAY,cAAc;AAC1B,YAAY,oBAAoB;AAChC,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;;;ACJ5B,SAAS,sBAAsB;AAKxB,SAAS,WAAW,SAAwB;AACjD,MAAI,MAAM,QAAQ,OAAO,GAAG;AAE1B,QAAI,QAAQ,CAAC,MAAM,KAAK;AAEtB,iBAAW,QAAQ,CAAC,CAAC;AACrB,UAAI,QAAQ,WAAW,GAAG;AAExB,gBAAQ,KAAK,MAAM,MAAM,CAAC;AAAA,MAC5B;AAAA,IACF,OAAO;AAEL,iBAAW,QAAQ,SAAS;AAC1B,mBAAW,IAAI;AAAA,MACjB;AAAA,IACF;AAAA,EACF,WAAW,OAAO,YAAY,YAAY,YAAY,MAAM;AAE1D,eAAW,OAAO,SAAS;AACzB,iBAAY,QAAoC,GAAG,CAAC;AAAA,IACtD;AAAA,EACF;AACF;AAKO,SAAS,gBACd,MACA,MAC4B;AAC5B,SAAO,IAAI,eAAe;AAAA,IACxB,MAAM;AAAA,IACN,MAAM,YAAY;AAChB,YAAM,UAAU,IAAI,YAAY;AAChC,YAAM,OAAO;AAIb,UAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,GAAG;AAClC,aAAK,QAAQ,CAAC,UAAU;AACtB,gBAAM,QAAQ,MAAM,MAAM,IAAI;AAC9B,qBAAW,QAAQ,OAAO;AACxB,kBAAM,QAAQ,2BAA2B,KAAK,IAAI;AAClD,gBAAI,OAAO,QAAQ,KAAK;AACtB,mBAAK,IAAI,IAAI,KAAK,IAAI,KAAK,CAAC;AAC5B,mBAAK,IAAI,EAAE,KAAK,KAAK,MAAM,IAAI,MAAM,OAAO,MAAM,CAAW;AAAA,YAC/D;AAAA,UACF;AAAA,QACF,CAAC;AAAA,MACH;AAKA,YAAM,aAAa,KAAK,IAAI,KAAK,CAAC;AAAA,CAAY,GAAG,KAAK,EAAE;AAGxD,gBAAU,MAAM,IAAI,EAAE,QAAQ,CAAC,UAAU;AACvC,YAAI,MAAM,SAAS,GAAG;AAEpB,gBAAM,EAAE,QAAQ,IAAI,QAAQ,QAAQ,IAClC,0EAA0E;AAAA,YACxE;AAAA,UACF,GAAG,UAAU,CAAC;AAEhB,cAAI,SAAS;AAEX,kBAAM,cAAc,KAAK,MAAM,OAAO;AAEtC,uBAAW,WAAW;AAEtB,kBAAM,cAAc,GAAG,UAAU,KAAK,MAAM,UAAU,KAAK,KAAK,UAAU,WAAW;AAErF,uBAAW,QAAQ,QAAQ,OAAO,GAAG;AAAA,CAAe,CAAC;AAAA,UACvD,OAAO;AAEL,uBAAW,QAAQ,QAAQ,OAAO,GAAG;AAAA,CAAS,CAAC;AAAA,UACjD;AAAA,QACF,OAAO;AAEL,qBAAW,QAAQ,QAAQ,OAAO,GAAG;AAAA,CAAS,CAAC;AAAA,QACjD;AAAA,MACF,CAAC;AAED,iBAAW,MAAM;AAAA,IACnB;AAAA,EACF,CAAC;AACH;;;ACxFA;AAIA;;;ACTA,IAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAAS,mBAAmB,KAA6B,KAAU;AACxE,QAAM,QAAQ,IAAI;AAAA,IAChB,SAAS,IAAI,CAAC,SAAS,GAAG,aAAa,cAAc,EAAE,KAAK,GAAG;AAAA,EACjE;AACA,QAAM,QAAQ,CAAC,SAAS;AACtB,QACE,KAAK,aAAa,KAAK,KACvB,YAAY,KAAK,KAAK,aAAa,KAAK,KAAK,EAAE,GAC/C;AACA,WAAK,MAAM,IAAI,IAAI,KAAK,aAAa,KAAK,KAAK,KAAK,GAAG,EAAE;AAAA,IAC3D;AACA,QAAI,KAAK,aAAa,QAAQ,GAAG;AAC/B,YAAM,SAAS,KACZ,aAAa,QAAQ,GACpB,MAAM,GAAG,EACV,IAAI,CAAC,UAAU;AACd,cAAM,CAAC,SAAS,UAAU,IAAI,MAAM,KAAK,EAAE,MAAM,KAAK;AACtD,YAAI,CAAC;AAAS,iBAAO;AAErB,cAAM,cAAc,IAAI,IAAI,SAAS,GAAG,EAAE;AAC1C,eAAO,aAAa,GAAG,eAAe,eAAe;AAAA,MACvD,CAAC,EACA,KAAK,IAAI;AACZ,UAAI,QAAQ;AACV,aAAK,aAAa,UAAU,MAAM;AAAA,MACpC;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;ACtCA,eAAsB,WACpB,MACA,KACA,QACA,QACA,cACA;AAEA,MAAI,OAAO,WAAW,YAAY,aAAa;AAC7C,eAAW,UAAU;AAAA,MACnB,KAAK,CAAC;AAAA,IACR;AAAA,EACF;AAEA,MAAI,SAAS,WAAW;AACtB,UAAM,EAAE,gBAAAC,gBAAe,IAAI,MAAM;AACjC,WAAOA,gBAAe,UAAU,WAAW,QAAQ,YAAY;AAAA,EACjE,WAAW,SAAS,aAAa;AAC/B,UAAM,EAAE,kBAAAC,kBAAiB,IAAI,MAAM;AACnC,WAAOA,kBAAiB,KAAK,QAAQ,QAAQ,YAAY;AAAA,EAC3D;AACA,QAAM,IAAI,MAAM,WAAW,uBAAuB;AACpD;;;AL+cc,gBAAAC,YAAA;AAjed,IAAI,OAAO,gBAAgB,aAAa;AACtC,QAAM,wBAAwB,YAAY;AAAA,IAA1C;AAAA;AAIE,oBAAgC;AAChC,kBAAgC;AAChC,uBAAY;AACZ,kBAA2B;AAAA;AAAA,IAG3B,WAAW,qBAAqB;AAC9B,aAAO,CAAC,OAAO,QAAQ,MAAM;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,yBAAyB,MAAc,UAAkB,UAAkB;AACzE,WAAK,SAAS,SAAS,SAAS,WAAW,aAAa,UAAU;AAChE,YAAI,KAAK,aAAa,KAAK,GAAG;AAC5B,eAAK,KAAK,EAAE,MAAM,CAAC,MAAM;AAEvB,oBAAQ,MAAM,CAAC;AACf,kBAAM,IAAI;AAAA,cACR,oCAAoC,KAAK,UAAU,KAAK,QAAQ,KAAK,aAAa,KAAK;AAAA,YACzF;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,WAAW,SAAS,UAAU,aAAa,YAAY,KAAK,MAAM;AAGhE,cAAM,UAAU,KAAK,aAAa;AAAA,UAChC,MAAM,aAAa,WAAW,WAAW;AAAA,QAC3C,CAAC;AAED,cAAM,KAAK,KAAK,KAAK,QAAQ,EAAE,QAAQ,CAAC,UAAU;AAChD,kBAAQ,YAAY,KAAK;AAAA,QAC3B,CAAC;AACD,aAAK,OAAO;AAEZ,aAAK,KAAK,EAAE,MAAM,CAAC,MAAM;AACvB,gBAAM,IAAI,MAAM,oCAAoC,GAAG;AAAA,QACzD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IAEA,MAAM,OAAO;AAEX,YAAM,IAAI,QAAQ,CAAC,YAAY;AAC7B,SAAC,OAAO,mBAAmB,aACvB,iBACA,uBAAuB,MAAM;AAC/B,kBAAQ,MAAS;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAGD,UAAI,KAAK,WAAW;AAClB;AAAA,MACF;AAEA,UAAI,CAAC,KAAK,MAAM;AACd,aAAK,OAAO,KAAK,aAAa;AAAA,UAC5B,MAAM,KAAK,aAAa,MAAM,MAAM,WAAW,WAAW;AAAA,QAC5D,CAAC;AAGD,aAAK,eAAe,SAAS,cAAc,MAAM;AACjD,aAAK,KAAK,YAAY,KAAK,YAAY;AAAA,MACzC;AAEA,WAAK,OAAO,KAAK,aAAa,MAAM,KAAK;AACzC,WAAK,SAAS;AAGd,UACE,KAAK,aAAa,KAAK,KACvB,KAAK,cAAc,0BAA0B,KAC7C,KAAK,aAAa,UAAU,GAC5B;AAEA,aAAK,KAAK,EAAE,MAAM,CAAC,MAAM;AACvB,gBAAM,IAAI,MAAM,oCAAoC,GAAG;AAAA,QACzD,CAAC;AAAA,MACH;AAEA,WAAK,YAAY;AACjB,YAAM,MAAM,KAAK,aAAa,KAAK;AACnC,YAAM,uBACJ,KAAK,cAAc,0BAA0B,KAC7C,KAAK,cAAc,8BAA8B;AAEnD,UAAI,CAAC,OAAO,CAAC,sBAAsB;AACjC,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAEA,UAAI,MAAkB;AACtB,UAAI,OAAO,KAAK;AAEhB,UAAI,KAAK;AACP,cAAM,IAAI,IAAI,KAAK,OAAO,SAAS,IAAI;AACvC,YAAI,IAAI,MAAM;AACZ,eAAK,OAAO,IAAI,KAAK,MAAM,CAAC;AAAA,QAC9B;AAAA,MACF;AAEA,UAAI,CAAC,wBAAwB,KAAK;AAEhC,cAAM,YAAY;AAAA,UAChB,QAAQ;AAAA,UACR,SAAS;AAAA,YACP,QAAQ;AAAA,UACV;AAAA,UACA,aAAa,KAAK,aAAa,aAAa,KAAK;AAAA,QACnD;AAEA,cAAM,MAAM,MAAM,MAAM,KAAK,SAAS;AAEtC,YAAI,CAAC,IAAI,IAAI;AACX,gBAAM,IAAI;AAAA,YACR,qCAAqC,KAAK,UAAU,IAAI;AAAA,UAC1D;AAAA,QACF;AAGA,eAAO,MAAM,IAAI,KAAK;AAAA,MACxB;AAEA,YAAM,SAAS,IAAI,UAAU;AAC7B,YAAM,MAAM,OAAO,gBAAgB,MAAM,WAAW;AAGpD,YAAM,YACJ,IAAI,cAAc,qCAAqC,KAAK,QAAQ;AAAA,MAEpE,IAAI,cAAc,8BAA8B;AAAA,MAEhD,IAAI,cAAc,YAAY;AAChC,YAAM,WAAW,KAAK;AAAA,SAElB,IAAI,cAAc,gBAAgB,KAClC,IAAI,cAAc,uBAAuB,IACxC,eAAe;AAAA,MACpB;AAgBA,UAAI,YAAY,SAAS,YAAY,iBAAiB,CAAC,KAAK,WAAW;AACrE,aAAK,OAAO,SAAS,cAAc,OAAO;AAC1C,aAAK,KAAK,cAAc;AACxB,aAAK,KAAK,YAAY,KAAK,IAAI;AAAA,MACjC;AAEA,WAAK,OACH,WAAW,aAAa,IAAI,GAAG,QAAQ,SAAS,EAAE,MACjD,WAAW,WAAW,KAAK;AAE9B,YAAM,MAAM,IAAI,cAAc,IAAI,KAAK,UAAU;AAGjD,WAAK,SACH,WAAW,aAAa,aAAa,KACrC,UAAU,MAAM,sBAAsB,UACtC,KAAK;AAEP,UAAI,KAAK;AACP,cAAMC,QAAO;AAIb,YAAI,CAACA,MAAK,uBAAuB;AAE/B,UAAAA,MAAK,wBAAwB,CAAC;AAAA,QAChC;AAEA,QAAAA,MAAK,sBAAsB,KAAK,UAAU,SAAS,IAAI;AAAA,MACzD;AAGA,YAAM,WAAW,SAAS,cAAc,QAAQ;AAChD,eAAS,OAAO;AAChB,eAAS,aAAa,yBAAyB,EAAE;AACjD,eAAS,cAAc,KAAK,UAAU;AAAA,QACpC,MAAM,KAAK;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,OAAO,WAAW,aAAa,YAAY,KAAK,UAAU,QAAQ;AAAA,QAClE,SACE,WAAW,aAAa,cAAc,KACtC,UAAU,MAAM,sBAAsB;AAAA,MAC1C,CAAC;AAED,UACE,KAAK,wBAAwB,aAAa,uBAAuB,MACjE,MACA;AACA,aAAK,wBAAwB,OAAO;AAAA,MACtC;AACA,WAAK,eAAe,aAAa,UAAU,IAAI;AAE/C,YAAM,iBAAiB,IAAI;AAAA,QACzB,IAAI,KAAK;AAAA,MACX;AACA,YAAM,eACJ,UAAU,MAAM,sBAAsB,WACpC,KAAK,MAAM,gBAAgB,eAAe,IAAI,KAAK,CAAC;AAIxD,sBAAgB,eAAe,YAAY,cAAc;AAEzD,UAAI,CAAC,aAAa,EAAE,OAAO,WAAW;AACpC,cAAM,IAAI,MAAM,qCAAqC,KAAK,OAAO;AAAA,MACnE;AAIA,YAAM,YAAY,MAAM,KAAK,KAAK,UAAU;AAG5C,YAAM,QAAQ,IAAI,iBAAkC,YAAY;AAGhE,YAAM,qBAAqB,KAAK,aAAa,KAAK;AAElD,YAAM,cAAc,YAAY;AAE9B,cAAM,QAAQ;AAAA,UACZ,MAAM,KAAK,KAAK,EACb,OAAO,CAAC,SAAS;AAChB,mBAAO,CAAC,UAAU,SAAS,IAAI;AAAA,UACjC,CAAC,EACA,IAAI,CAAC,SAAS;AACb,mBAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC5C,oBAAM,UAAU,SAAS,cAAc,MAAM;AAC7C,kBAAI,KAAK,QAAQ,cAAc;AAC7B,wBAAQ,SAAS,MAAM;AACrB,0BAAQ;AAAA,gBACV;AACA,wBAAQ,UAAU,MAAM;AACtB;AAAA,oBACE,IAAI;AAAA,sBACF,uBAAuB,KAAK;AAAA,oBAC9B;AAAA,kBACF;AAAA,gBACF;AAAA,cACF,OAAO;AACL,wBAAQ;AAAA,cACV;AACA,yBAAW,QAAQ,KAAK,YAAY;AAClC,oBAAI,KAAK,SAAS,QAAQ;AACxB,0BAAQ;AAAA,oBACN,KAAK;AAAA,oBACL,IAAI,IAAI,KAAK,OAAO,OAAO,SAAS,MAAM,EAAE;AAAA,kBAC9C;AAAA,gBACF,OAAO;AACL,0BAAQ,aAAa,KAAK,MAAM,KAAK,KAAK;AAAA,gBAC5C;AAAA,cACF;AAEA,kBAAI,oBAAoB;AACtB,wBAAQ;AAAA,kBACN;AAAA,kBACA;AAAA,gBACF;AAAA,cACF;AAEA,mBAAK,MAAM,YAAY,OAAO;AAAA,YAChC,CAAC;AAAA,UACH,CAAC;AAAA,QACL;AAEA,cAAM,SAAS,IAAI,iBAAmC,OAAO;AAC7D,eAAO,QAAQ,CAAC,UAAU;AACxB,cAAI,MAAM,eAAe,QAAQ,YAAY,MAAM,QAAQ;AACzD,kBAAM,WAAW,SAAS,cAAc,OAAO;AAC/C,qBAAS,cAAc,MAAM;AAE7B,gBAAI,oBAAoB;AACtB,uBAAS;AAAA,gBACP;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAEA,iBAAK,MAAM,YAAY,QAAQ;AAAA,UACjC;AAAA,QACF,CAAC;AAAA,MACH;AAEA,UAAI,CAAC,KAAK,WAAW;AAEnB,cAAM,YAAY;AAAA,MACpB;AAGA,yBAAmB,KAAK,OAAO,IAAI,IAAI,SAAS,IAAI,CAAC;AAErD,UAAI,CAAC,KAAK,WAAW;AAEnB,cAAM,KAAK,UAAU,QAAQ,EAAE,QAAQ,CAAC,OAAO;AAC7C,eAAK,MAAM,YAAY,EAAE;AAAA,QAC3B,CAAC;AAAA,MACH;AAGA,iBAAW,MAAM,WAAW;AAC1B,WAAG,eAAe,YAAY,EAAE;AAAA,MAClC;AACA,WAAK,cAAc,OAAO;AAG1B,YAAM,aAAa,MAAM;AACvB,YACE,KAAK,aAAa,OAAO,MAAM,QAC/B,CAAC,KAAK,MAAM,cAAc,oCAAoC,GAC9D;AAEA,gBAAM,aAAa,SAAS,cAAc,MAAM;AAChD,qBAAW,aAAa,gCAAgC,EAAE;AAC1D,gBAAM,MAAM;AACZ,gBAAM,iBAAiB,IAAI;AAAA,YACzB,IAAI,KAAK,CAAC,GAAG,GAAG,EAAE,MAAM,WAAW,CAAC;AAAA,UACtC;AACA,qBAAW,OAAO;AAClB,qBAAW,MAAM;AAEjB,qBAAW,SAAS,MAAM;AACxB,gBAAI,gBAAgB,cAAc;AAClC,uBAAW,gBAAgB,QAAQ;AAAA,UACrC;AACA,qBAAW,UAAU,MAAM;AACzB,gBAAI,gBAAgB,cAAc;AAClC,uBAAW,gBAAgB,QAAQ;AAAA,UACrC;AACA,eAAK,MAAM,QAAQ,UAAU;AAAA,QAC/B,WACE,KAAK,aAAa,OAAO,MAAM,QAC/B,KAAK,MAAM,cAAc,oCAAoC,GAC7D;AACA,eAAK,KACF,cAAc,oCAAoC,GACjD,OAAO;AAAA,QACb;AAAA,MACF;AAGA,UAAI,CAAC,KAAK,WAAW;AACnB,mBAAW;AAAA,MACb;AAEA,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA,uBAAAC;AAAA,QACA;AAAA,MACF,IAAI,MAAM;AAAA,QACP,UAAU,aAAa,cAAc,KAAK;AAAA,QAC3C,OAAO,IAAI,IAAI,SAAS,IAAI;AAAA,QAC5B,KAAK;AAAA,QACL;AAAA,UACE,OAAO,aAAa,MAAM,OAAO,OAAO,GAAG;AAAA,UAC3C,yBAAyB,aACtB,MAAM,OAAO,uBAAuB,GAAG;AAAA,UAC1C,qBAAqB,aAClB,MAAM,OAAO,mBAAmB,GAAG;AAAA,UACtC,aAAa,aAAa,MAAM,OAAO,WAAW,GAAG;AAAA,UACrD,oBAAoB,aACjB,MAAM,OAAO,kBAAkB,GAAG;AAAA,QACvC;AAAA,QACA;AAAA,MACF;AAEA,YAAM,UAAU,IAAI;AAAA,QAClB;AAAA,MACF;AACA,UAAI,CAAC,KAAK;AACR,cAAM,IAAI;AAAA,UACR,UAAU,aAAa,YAAY,KAAK;AAAA,UACxC,OAAO,SAAS;AAAA,QAClB;AAAA,MACF;AAEA,YAAM;AAAA,QACJ,MAAM,KAAK,OAAO;AAAA,QAClB;AAAA,QACA,KAAK,UAAU;AAAA,QACf,KAAK,QAAQ;AAAA,MACf;AAIA,YAAM,YAAY,MAAM;AACtB,YAAI,KAAK,QAAQ,oBAAoB;AACnC,gBAAM,WAAW,+DAA+D;AAChF,gBAAM,cAAc;AAAA,YAClB,GAAG,KAAK,KAAK,iBAAiB,QAAQ;AAAA,YACtC,GAAG,SAAS,KAAK,iBAAiB,QAAQ;AAAA,UAC5C;AAEA,cAAI,YAAY,SAAS,GAAG;AAC1B,wBAAY,QAAQ,CAAC,SAAS;AAC5B,mBAAK,OAAO;AAAA,YACd,CAAC;AAAA,UACH;AAAA,QACF;AAAA,MACF;AAGA,UAAI,KAAK;AAEP,YAAI,eAAe,YAAY,GAAG;AAGlC,cAAM,WAAW,SAAS,cAAc,QAAQ;AAChD,iBAAS,KAAK,GAAG,KAAK;AACtB,iBAAS,cAAc,IAAI;AAC3B,iBAAS,KAAK,YAAY,QAAQ;AAElC,YAAI;AAEJ,cAAM,oCAAoC,CAAC;AAAA,UACzC;AAAA,UACA;AAAA,QACF,MAGM;AAKJ,gBAAM,SAAS,gBAAgB,MAAM,KAAK,IAAI,KAAK,CAAC;AAAA,CAAY,CAAC;AACjE,gBAAM,YACJ;AAAA,WAEC,QAAQ,yBAAyB,MAAM;AAE1C,0BAAgB,MAAM;AAEpB,gBAAI,KAAK,IAAI,GAAG;AAEd,qBAAO,KAAK,IAAI;AAAA,YAClB;AACA,kBAAM,YAAY,SAAS,eAAe,GAAG,UAAU;AACvD,gBAAI,WAAW;AACb,wBAAU,OAAO;AAAA,YACnB;AAEA,sBAAU;AACV,uBAAW;AACX,gBAAI,CAAC,SAAS;AACZ,0BAAY,EAAE,MAAM,CAAC,MAAM;AAEzB,wBAAQ,MAAM,CAAC;AAAA,cACjB,CAAC;AAAA,YACH;AACA,iBAAK,YAAY;AAAA,UACnB,GAAG,CAAC,SAAS,IAAI,CAAC;AAGlB,iBAAO;AAAA,QACT;AAGA,YAAI,KAAK,WAAW;AAClB,gBAAM,OAAO,KAAK;AAClB,0BAAgB,MAAM;AACpB,iBAAK;AAAA,cACH,gBAAAF;AAAA,gBAAC;AAAA;AAAA,kBACC,SAAS;AAAA,kBACT,MAAM,KAAK,QAAQ;AAAA;AAAA,cACrB;AAAA,YACF;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAGA,aAAK,YAAY;AAAA;AAAA;AAAA,UAGf,KAAK;AAAA,UACL,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,SAAO;AAAA,cACP,MAAM,KAAK,QAAQ;AAAA;AAAA,UACrB;AAAA,QACF;AAAA,MACF,WAAW,UAAU;AAEnB,cAAM,EAAE,WAAW,IAAI,IAAIE;AAAA,UACzB,KAAK,UAAU;AAAA,UACf,SAAS;AAAA,UACT,KAAK;AAAA,QACP;AAGA,YAAI,WAAW;AACb,gBAAM,2BAA2B,CAC/B,SACA,eAGA,kBAAkB,SAElB,SAAS,oBAAoB,EAAE,QAAQ,GAAyB;AAC9D,4BAAgB,MAAM;AACpB,wBAAU;AACV,kBAAI,CAAC,SAAS;AACZ,2BAAW;AACX,4BAAY,EAAE,MAAM,CAAC,MAAM;AAEzB,0BAAQ,MAAM,CAAC;AAAA,gBACjB,CAAC;AAAA,cACH;AACA,8BAAgB,YAAY;AAAA,YAC9B,GAAG,CAAC,OAAO,CAAC;AAEZ,mBAAO,UACL,gBAAAF,KAAC,WAAQ,WAAW,eAAgB,GAAG,SAAS,OAAO,IAEvD,gBAAAA,KAAC,iBAAe,GAAG,SAAS,OAAO;AAAA,UAEvC,GAAG,KAAK,WAAW,IAAI;AAGzB,cAAI,KAAK,WAAW;AAClB,kBAAM,OAAO,KAAK;AAClB,4BAAgB,MAAM;AACpB,mBAAK,OAAO,gBAAAA,KAAC,2BAAwB,SAAS,OAAO,CAAE;AACvD,wBAAU;AACV,mBAAK,YAAY;AAAA,YACnB,CAAC;AACD;AAAA,UACF;AAGA,eAAK,YAAY;AAAA;AAAA;AAAA,YAGf,KAAK;AAAA,YACL,gBAAAA,KAAC,2BAAwB,SAAO,MAAC;AAAA,UACnC;AAAA,QACF;AAIA,YAAI,KAAK,MAAM;AACb,eAAK,KAAK,YAAY,KAAK,IAAI;AAAA,QACjC;AAAA,MACF;AAEA,WAAK,YAAY;AAAA,IACnB;AAAA,EACF;AAGA,iBAAe,OAAO,oBAAoB,eAAe;AAC3D;AAEO,SAAS,sBACd,UAAkD,CAAC,GACnD;AACA,QAAM,OAAO;AAOb,MAAI,CAAC,KAAK,0CAA0C;AAElD,SAAK,2CAA2C,CAAC;AAAA,EACnD;AAEA,SAAO,QAAQ,OAAO,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAChD,QAAI,KAAK,0CAA0C;AACjD,WAAK,yCAAyC,GAAG,IAAI;AAAA,IACvD;AAAA,EACF,CAAC;AACH;","names":["resolve","webpackRuntime","turbopackRuntime","jsx","self","nextClientPagesLoader"]}