remote-components 0.1.2 → 0.2.1

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 (470) hide show
  1. package/dist/{next/config.cjs → config/nextjs.cjs} +77 -102
  2. package/dist/config/nextjs.cjs.map +1 -0
  3. package/dist/{next/config.d.ts → config/nextjs.d.ts} +4 -4
  4. package/dist/{next/config.js → config/nextjs.js} +73 -98
  5. package/dist/config/nextjs.js.map +1 -0
  6. package/dist/{webpack.cjs → config/webpack.cjs} +13 -29
  7. package/dist/config/webpack.cjs.map +1 -0
  8. package/dist/{webpack.js → config/webpack.js} +12 -28
  9. package/dist/config/webpack.js.map +1 -0
  10. package/dist/{shared/remote → host/defaults}/app.cjs +2 -2
  11. package/dist/host/defaults/app.cjs.map +1 -0
  12. package/dist/host/defaults/app.js +8 -0
  13. package/dist/host/defaults/app.js.map +1 -0
  14. package/dist/{shared/remote → host/defaults}/pages.cjs +2 -2
  15. package/dist/host/defaults/pages.cjs.map +1 -0
  16. package/dist/host/defaults/pages.js +8 -0
  17. package/dist/host/defaults/pages.js.map +1 -0
  18. package/dist/{html/host.cjs → host/html.cjs} +1019 -1080
  19. package/dist/host/html.cjs.map +1 -0
  20. package/dist/{html/host.d.ts → host/html.d.ts} +0 -2
  21. package/dist/{html/host.js → host/html.js} +1016 -1076
  22. package/dist/host/html.js.map +1 -0
  23. package/dist/{next/host/client/index.cjs → host/nextjs/app/client-only.cjs} +685 -623
  24. package/dist/host/nextjs/app/client-only.cjs.map +1 -0
  25. package/dist/host/nextjs/app/client-only.d.ts +16 -0
  26. package/dist/{next/host/client/index.js → host/nextjs/app/client-only.js} +687 -618
  27. package/dist/host/nextjs/app/client-only.js.map +1 -0
  28. package/dist/{next/host/app-router-server.cjs → host/nextjs/app.cjs} +11 -10
  29. package/dist/host/nextjs/app.cjs.map +1 -0
  30. package/dist/host/nextjs/app.d.ts +29 -0
  31. package/dist/{next/host/app-router-server.js → host/nextjs/app.js} +7 -6
  32. package/dist/host/nextjs/app.js.map +1 -0
  33. package/dist/{next/host/pages-router-client.cjs → host/nextjs/pages/client-only.cjs} +8 -8
  34. package/dist/host/nextjs/pages/client-only.cjs.map +1 -0
  35. package/dist/host/nextjs/pages/client-only.d.ts +31 -0
  36. package/dist/{next/host/pages-router-client.js → host/nextjs/pages/client-only.js} +4 -4
  37. package/dist/host/nextjs/pages/client-only.js.map +1 -0
  38. package/dist/{next/host/pages-router-server.cjs → host/nextjs/pages.cjs} +44 -55
  39. package/dist/host/nextjs/pages.cjs.map +1 -0
  40. package/dist/{next/host/pages-router-server.d.ts → host/nextjs/pages.d.ts} +11 -13
  41. package/dist/{next/host/pages-router-server.js → host/nextjs/pages.js} +38 -49
  42. package/dist/host/nextjs/pages.js.map +1 -0
  43. package/dist/host/proxy/client.cjs +57 -0
  44. package/dist/host/proxy/client.cjs.map +1 -0
  45. package/dist/host/proxy/client.d.ts +31 -0
  46. package/dist/host/proxy/client.js +30 -0
  47. package/dist/host/proxy/client.js.map +1 -0
  48. package/dist/{shared/host/proxy.cjs → host/proxy/protected-fetch.cjs} +6 -6
  49. package/dist/host/proxy/protected-fetch.cjs.map +1 -0
  50. package/dist/{shared/host/proxy.js → host/proxy/protected-fetch.js} +3 -3
  51. package/dist/host/proxy/protected-fetch.js.map +1 -0
  52. package/dist/{next → host}/proxy.cjs +12 -92
  53. package/dist/host/proxy.cjs.map +1 -0
  54. package/dist/host/proxy.d.ts +30 -0
  55. package/dist/{next → host}/proxy.js +11 -88
  56. package/dist/host/proxy.js.map +1 -0
  57. package/dist/{react/index.cjs → host/react.cjs} +524 -555
  58. package/dist/host/react.cjs.map +1 -0
  59. package/dist/{component-loader-21865da3.d.ts → host/react.d.ts} +141 -99
  60. package/dist/{react/index.js → host/react.js} +523 -552
  61. package/dist/host/react.js.map +1 -0
  62. package/dist/internal/{webpack/shared-modules.cjs → config/webpack/apply-shared-modules.cjs} +18 -17
  63. package/dist/internal/config/webpack/apply-shared-modules.cjs.map +1 -0
  64. package/dist/internal/{webpack/shared-modules.js → config/webpack/apply-shared-modules.js} +15 -14
  65. package/dist/internal/config/webpack/apply-shared-modules.js.map +1 -0
  66. package/dist/internal/{webpack → config/webpack}/next-client-pages-loader.cjs +1 -1
  67. package/dist/internal/config/webpack/next-client-pages-loader.cjs.map +1 -0
  68. package/dist/internal/{webpack → config/webpack}/next-client-pages-loader.js +1 -1
  69. package/dist/internal/config/webpack/next-client-pages-loader.js.map +1 -0
  70. package/dist/internal/{next/host/app-router-client.cjs → host/nextjs/app-client.cjs} +29 -24
  71. package/dist/internal/host/nextjs/app-client.cjs.map +1 -0
  72. package/dist/internal/host/nextjs/app-client.d.ts +25 -0
  73. package/dist/internal/{next/host/app-router-client.js → host/nextjs/app-client.js} +19 -19
  74. package/dist/internal/host/nextjs/app-client.js.map +1 -0
  75. package/dist/internal/{next/host/app-router-compat.cjs → host/nextjs/app-compat.cjs} +5 -22
  76. package/dist/internal/host/nextjs/app-compat.cjs.map +1 -0
  77. package/dist/internal/{next/host/app-router-compat.d.ts → host/nextjs/app-compat.d.ts} +1 -7
  78. package/dist/internal/{next/host/app-router-compat.js → host/nextjs/app-compat.js} +2 -18
  79. package/dist/internal/host/nextjs/app-compat.js.map +1 -0
  80. package/dist/internal/host/nextjs/dom-flight.cjs.map +1 -0
  81. package/dist/internal/host/nextjs/dom-flight.d.ts +39 -0
  82. package/dist/internal/host/nextjs/dom-flight.js.map +1 -0
  83. package/dist/internal/host/nextjs/image-impl.cjs +60 -0
  84. package/dist/internal/host/nextjs/image-impl.cjs.map +1 -0
  85. package/dist/internal/host/nextjs/image-impl.d.ts +10 -0
  86. package/dist/internal/host/nextjs/image-impl.js +36 -0
  87. package/dist/internal/host/nextjs/image-impl.js.map +1 -0
  88. package/dist/internal/host/nextjs/image-shared.cjs +43 -0
  89. package/dist/internal/host/nextjs/image-shared.cjs.map +1 -0
  90. package/dist/internal/host/nextjs/image-shared.d.ts +9 -0
  91. package/dist/internal/host/nextjs/image-shared.js +19 -0
  92. package/dist/internal/host/nextjs/image-shared.js.map +1 -0
  93. package/dist/internal/{next/host → host/nextjs}/remote-component-links.cjs +2 -2
  94. package/dist/internal/host/nextjs/remote-component-links.cjs.map +1 -0
  95. package/dist/internal/{next/host → host/nextjs}/remote-component-links.d.ts +1 -1
  96. package/dist/internal/{next/host → host/nextjs}/remote-component-links.js +2 -2
  97. package/dist/internal/host/nextjs/remote-component-links.js.map +1 -0
  98. package/dist/internal/host/nextjs/skeleton.cjs.map +1 -0
  99. package/dist/internal/host/nextjs/skeleton.js.map +1 -0
  100. package/dist/internal/{react → host/react}/context.cjs +3 -3
  101. package/dist/internal/host/react/context.cjs.map +1 -0
  102. package/dist/internal/{react → host/react}/context.d.ts +4 -4
  103. package/dist/internal/{react → host/react}/context.js +2 -2
  104. package/dist/internal/host/react/context.js.map +1 -0
  105. package/dist/internal/{react → host/react}/hooks/use-resolve-client-url.cjs +2 -2
  106. package/dist/internal/host/react/hooks/use-resolve-client-url.cjs.map +1 -0
  107. package/dist/internal/{react → host/react}/hooks/use-resolve-client-url.d.ts +1 -1
  108. package/dist/internal/{react → host/react}/hooks/use-resolve-client-url.js +2 -2
  109. package/dist/internal/host/react/hooks/use-resolve-client-url.js.map +1 -0
  110. package/dist/internal/host/server/fetch-headers.cjs.map +1 -0
  111. package/dist/internal/host/server/fetch-headers.js.map +1 -0
  112. package/dist/internal/{shared/ssr → host/server}/fetch-remote-component.cjs +6 -6
  113. package/dist/internal/host/server/fetch-remote-component.cjs.map +1 -0
  114. package/dist/internal/{shared/ssr → host/server}/fetch-remote-component.d.ts +6 -1
  115. package/dist/internal/{shared/ssr → host/server}/fetch-remote-component.js +9 -9
  116. package/dist/internal/host/server/fetch-remote-component.js.map +1 -0
  117. package/dist/internal/{shared/ssr → host/server}/fetch-with-hooks.cjs +11 -15
  118. package/dist/internal/host/server/fetch-with-hooks.cjs.map +1 -0
  119. package/dist/internal/host/server/fetch-with-hooks.d.ts +21 -0
  120. package/dist/internal/{shared/ssr → host/server}/fetch-with-hooks.js +11 -15
  121. package/dist/internal/host/server/fetch-with-hooks.js.map +1 -0
  122. package/dist/internal/host/server/get-client-or-server-url.cjs.map +1 -0
  123. package/dist/internal/host/server/get-client-or-server-url.js.map +1 -0
  124. package/dist/internal/{shared/client → host/server}/get-client-src.cjs +1 -1
  125. package/dist/internal/host/server/get-client-src.cjs.map +1 -0
  126. package/dist/internal/{shared/client → host/server}/get-client-src.js +1 -1
  127. package/dist/internal/host/server/get-client-src.js.map +1 -0
  128. package/dist/internal/host/server/get-ssr-relative-path-base-url.cjs.map +1 -0
  129. package/dist/internal/host/server/get-ssr-relative-path-base-url.js.map +1 -0
  130. package/dist/{next/remote/server.cjs → internal/host/server/types.cjs} +3 -15
  131. package/dist/internal/host/server/types.cjs.map +1 -0
  132. package/dist/internal/host/server/types.d.ts +33 -0
  133. package/dist/internal/host/server/types.js +1 -0
  134. package/dist/internal/host/server/types.js.map +1 -0
  135. package/dist/internal/host/shared/asset-descriptors.cjs +17 -0
  136. package/dist/internal/host/shared/asset-descriptors.cjs.map +1 -0
  137. package/dist/internal/host/shared/asset-descriptors.d.ts +21 -0
  138. package/dist/internal/host/shared/asset-descriptors.js +1 -0
  139. package/dist/internal/host/shared/asset-descriptors.js.map +1 -0
  140. package/dist/internal/host/shared/config.cjs +17 -0
  141. package/dist/internal/host/shared/config.cjs.map +1 -0
  142. package/dist/{host-config-58cdccea.d.ts → internal/host/shared/config.d.ts} +32 -19
  143. package/dist/internal/host/shared/config.js +1 -0
  144. package/dist/internal/host/shared/config.js.map +1 -0
  145. package/dist/internal/host/shared/fetch-interceptors.cjs +17 -0
  146. package/dist/internal/host/shared/fetch-interceptors.cjs.map +1 -0
  147. package/dist/{types-2b26a246.d.ts → internal/host/shared/fetch-interceptors.d.ts} +4 -87
  148. package/dist/internal/host/shared/fetch-interceptors.js +1 -0
  149. package/dist/internal/host/shared/fetch-interceptors.js.map +1 -0
  150. package/dist/internal/{shared/client → host/shared}/polyfill.cjs +7 -6
  151. package/dist/internal/host/shared/polyfill.cjs.map +1 -0
  152. package/dist/internal/{shared/client → host/shared}/polyfill.d.ts +2 -1
  153. package/dist/internal/{shared/client → host/shared}/polyfill.js +7 -6
  154. package/dist/internal/host/shared/polyfill.js.map +1 -0
  155. package/dist/internal/host/shared/resolved-data.cjs +17 -0
  156. package/dist/internal/host/shared/resolved-data.cjs.map +1 -0
  157. package/dist/internal/host/shared/resolved-data.d.ts +48 -0
  158. package/dist/internal/host/shared/resolved-data.js +1 -0
  159. package/dist/internal/host/shared/resolved-data.js.map +1 -0
  160. package/dist/internal/{shared/contract/host-state.cjs → host/shared/state.cjs} +4 -4
  161. package/dist/internal/host/shared/state.cjs.map +1 -0
  162. package/dist/internal/{shared/contract/host-state.js → host/shared/state.js} +1 -1
  163. package/dist/internal/host/shared/state.js.map +1 -0
  164. package/dist/internal/host/utils/resolve-name-from-src.cjs.map +1 -0
  165. package/dist/internal/host/utils/resolve-name-from-src.js.map +1 -0
  166. package/dist/internal/{next/remote/render-client.cjs → remote/nextjs/app-client.cjs} +8 -8
  167. package/dist/internal/remote/nextjs/app-client.cjs.map +1 -0
  168. package/dist/internal/{next/remote/render-client.js → remote/nextjs/app-client.js} +4 -4
  169. package/dist/internal/remote/nextjs/app-client.js.map +1 -0
  170. package/dist/internal/runtime/constants.cjs +50 -0
  171. package/dist/internal/runtime/constants.cjs.map +1 -0
  172. package/dist/internal/runtime/constants.d.ts +10 -0
  173. package/dist/internal/runtime/constants.js +20 -0
  174. package/dist/internal/runtime/constants.js.map +1 -0
  175. package/dist/internal/{shared/client → runtime/html}/apply-origin.cjs.map +1 -1
  176. package/dist/internal/{shared/client → runtime/html}/apply-origin.d.ts +1 -1
  177. package/dist/internal/{shared/client → runtime/html}/apply-origin.js.map +1 -1
  178. package/dist/internal/runtime/html/parse-remote-html.cjs +140 -0
  179. package/dist/internal/runtime/html/parse-remote-html.cjs.map +1 -0
  180. package/dist/internal/runtime/html/parse-remote-html.d.ts +88 -0
  181. package/dist/internal/runtime/html/parse-remote-html.js +110 -0
  182. package/dist/internal/runtime/html/parse-remote-html.js.map +1 -0
  183. package/dist/internal/runtime/html/set-attributes-from-props.cjs +68 -0
  184. package/dist/internal/runtime/html/set-attributes-from-props.cjs.map +1 -0
  185. package/dist/internal/runtime/html/set-attributes-from-props.d.ts +3 -0
  186. package/dist/internal/runtime/html/set-attributes-from-props.js +44 -0
  187. package/dist/internal/runtime/html/set-attributes-from-props.js.map +1 -0
  188. package/dist/internal/runtime/loaders/component-loader.cjs +184 -0
  189. package/dist/internal/runtime/loaders/component-loader.cjs.map +1 -0
  190. package/dist/internal/runtime/loaders/component-loader.d.ts +31 -0
  191. package/dist/internal/runtime/loaders/component-loader.js +150 -0
  192. package/dist/internal/runtime/loaders/component-loader.js.map +1 -0
  193. package/dist/internal/runtime/loaders/script-loader.cjs +64 -0
  194. package/dist/internal/runtime/loaders/script-loader.cjs.map +1 -0
  195. package/dist/internal/runtime/loaders/script-loader.d.ts +10 -0
  196. package/dist/internal/runtime/loaders/script-loader.js +43 -0
  197. package/dist/internal/runtime/loaders/script-loader.js.map +1 -0
  198. package/dist/internal/runtime/loaders/static-loader.cjs +177 -0
  199. package/dist/internal/runtime/loaders/static-loader.cjs.map +1 -0
  200. package/dist/internal/runtime/loaders/static-loader.d.ts +10 -0
  201. package/dist/internal/runtime/loaders/static-loader.js +153 -0
  202. package/dist/internal/runtime/loaders/static-loader.js.map +1 -0
  203. package/dist/internal/runtime/metadata.cjs +17 -0
  204. package/dist/internal/runtime/metadata.cjs.map +1 -0
  205. package/dist/internal/runtime/metadata.d.ts +16 -0
  206. package/dist/internal/runtime/metadata.js +1 -0
  207. package/dist/internal/runtime/metadata.js.map +1 -0
  208. package/dist/internal/runtime/rsc.cjs +92 -0
  209. package/dist/internal/runtime/rsc.cjs.map +1 -0
  210. package/dist/internal/runtime/rsc.d.ts +8 -0
  211. package/dist/internal/runtime/rsc.js +68 -0
  212. package/dist/internal/runtime/rsc.js.map +1 -0
  213. package/dist/internal/runtime/turbopack/chunk-loader.cjs +239 -0
  214. package/dist/internal/runtime/turbopack/chunk-loader.cjs.map +1 -0
  215. package/dist/internal/runtime/turbopack/chunk-loader.d.ts +11 -0
  216. package/dist/internal/runtime/turbopack/chunk-loader.js +222 -0
  217. package/dist/internal/runtime/turbopack/chunk-loader.js.map +1 -0
  218. package/dist/internal/runtime/turbopack/module.cjs +257 -0
  219. package/dist/internal/runtime/turbopack/module.cjs.map +1 -0
  220. package/dist/internal/runtime/turbopack/module.d.ts +61 -0
  221. package/dist/internal/runtime/turbopack/module.js +233 -0
  222. package/dist/internal/runtime/turbopack/module.js.map +1 -0
  223. package/dist/internal/runtime/turbopack/patterns.cjs +44 -0
  224. package/dist/internal/runtime/turbopack/patterns.cjs.map +1 -0
  225. package/dist/internal/runtime/turbopack/patterns.d.ts +109 -0
  226. package/dist/internal/runtime/turbopack/patterns.js +15 -0
  227. package/dist/internal/runtime/turbopack/patterns.js.map +1 -0
  228. package/dist/internal/runtime/turbopack/shared-modules.cjs +153 -0
  229. package/dist/internal/runtime/turbopack/shared-modules.cjs.map +1 -0
  230. package/dist/internal/runtime/turbopack/shared-modules.d.ts +17 -0
  231. package/dist/internal/runtime/turbopack/shared-modules.js +134 -0
  232. package/dist/internal/runtime/turbopack/shared-modules.js.map +1 -0
  233. package/dist/internal/runtime/turbopack/webpack-runtime.cjs +137 -0
  234. package/dist/internal/runtime/turbopack/webpack-runtime.cjs.map +1 -0
  235. package/dist/internal/runtime/turbopack/webpack-runtime.d.ts +20 -0
  236. package/dist/internal/runtime/turbopack/webpack-runtime.js +107 -0
  237. package/dist/internal/runtime/turbopack/webpack-runtime.js.map +1 -0
  238. package/dist/internal/runtime/types.cjs +17 -0
  239. package/dist/internal/runtime/types.cjs.map +1 -0
  240. package/dist/internal/runtime/types.d.ts +40 -0
  241. package/dist/internal/runtime/types.js +1 -0
  242. package/dist/internal/runtime/types.js.map +1 -0
  243. package/dist/internal/{shared/client → runtime/url}/default-resolve-client-url.cjs +2 -2
  244. package/dist/internal/runtime/url/default-resolve-client-url.cjs.map +1 -0
  245. package/dist/internal/{shared/client → runtime/url}/default-resolve-client-url.d.ts +1 -1
  246. package/dist/internal/{shared/client → runtime/url}/default-resolve-client-url.js +1 -1
  247. package/dist/internal/runtime/url/default-resolve-client-url.js.map +1 -0
  248. package/dist/internal/{shared/client → runtime/url}/protected-rc-fallback.cjs +1 -1
  249. package/dist/internal/runtime/url/protected-rc-fallback.cjs.map +1 -0
  250. package/dist/internal/{shared/client → runtime/url}/protected-rc-fallback.js +1 -1
  251. package/dist/internal/runtime/url/protected-rc-fallback.js.map +1 -0
  252. package/dist/internal/{shared/client/proxy-through-host.cjs → runtime/url/resolve-client-url.cjs} +4 -24
  253. package/dist/internal/runtime/url/resolve-client-url.cjs.map +1 -0
  254. package/dist/internal/{shared/client/proxy-through-host.d.ts → runtime/url/resolve-client-url.d.ts} +1 -25
  255. package/dist/internal/runtime/url/resolve-client-url.js +21 -0
  256. package/dist/internal/runtime/url/resolve-client-url.js.map +1 -0
  257. package/dist/internal/utils/abort.cjs.map +1 -0
  258. package/dist/internal/utils/abort.js.map +1 -0
  259. package/dist/internal/{shared → utils}/constants.cjs +3 -0
  260. package/dist/internal/utils/constants.cjs.map +1 -0
  261. package/dist/internal/utils/constants.d.ts +5 -0
  262. package/dist/internal/{shared → utils}/constants.js +2 -0
  263. package/dist/internal/utils/constants.js.map +1 -0
  264. package/dist/internal/{shared → utils}/error.cjs +11 -4
  265. package/dist/internal/utils/error.cjs.map +1 -0
  266. package/dist/internal/{shared → utils}/error.d.ts +2 -1
  267. package/dist/internal/{shared → utils}/error.js +10 -4
  268. package/dist/internal/utils/error.js.map +1 -0
  269. package/dist/internal/{shared/utils → utils}/logger.cjs +3 -3
  270. package/dist/internal/utils/logger.cjs.map +1 -0
  271. package/dist/internal/{shared/utils → utils}/logger.d.ts +2 -2
  272. package/dist/internal/{shared/utils → utils}/logger.js +3 -3
  273. package/dist/internal/utils/logger.js.map +1 -0
  274. package/dist/internal/utils.cjs.map +1 -0
  275. package/dist/internal/utils.js.map +1 -0
  276. package/dist/{shared/host → remote/defaults}/app.cjs +2 -6
  277. package/dist/remote/defaults/app.cjs.map +1 -0
  278. package/dist/remote/defaults/app.js +8 -0
  279. package/dist/remote/defaults/app.js.map +1 -0
  280. package/dist/{shared/host → remote/defaults}/pages.cjs +2 -6
  281. package/dist/remote/defaults/pages.cjs.map +1 -0
  282. package/dist/remote/defaults/pages.js +8 -0
  283. package/dist/remote/defaults/pages.js.map +1 -0
  284. package/dist/{shared/remote → remote/defaults}/wrapper.cjs +12 -10
  285. package/dist/remote/defaults/wrapper.cjs.map +1 -0
  286. package/dist/remote/defaults/wrapper.js +27 -0
  287. package/dist/remote/defaults/wrapper.js.map +1 -0
  288. package/dist/{html/remote.cjs → remote/html.cjs} +16 -16
  289. package/dist/remote/html.cjs.map +1 -0
  290. package/dist/{html/remote.js → remote/html.js} +16 -16
  291. package/dist/remote/html.js.map +1 -0
  292. package/dist/{shared/remote/proxy.cjs → remote/middleware.cjs} +37 -12
  293. package/dist/remote/middleware.cjs.map +1 -0
  294. package/dist/remote/middleware.d.ts +27 -0
  295. package/dist/{shared/remote/proxy.js → remote/middleware.js} +32 -5
  296. package/dist/remote/middleware.js.map +1 -0
  297. package/dist/{internal/next/remote/render-server.cjs → remote/nextjs/app.cjs} +14 -16
  298. package/dist/remote/nextjs/app.cjs.map +1 -0
  299. package/dist/{internal/next/remote/render-server.d.ts → remote/nextjs/app.d.ts} +12 -13
  300. package/dist/{internal/next/remote/render-server.js → remote/nextjs/app.js} +9 -11
  301. package/dist/remote/nextjs/app.js.map +1 -0
  302. package/dist/{next/remote/pages-router.cjs → remote/nextjs/pages.cjs} +8 -8
  303. package/dist/remote/nextjs/pages.cjs.map +1 -0
  304. package/dist/{next/remote/pages-router.d.ts → remote/nextjs/pages.d.ts} +8 -8
  305. package/dist/{next/remote/pages-router.js → remote/nextjs/pages.js} +4 -4
  306. package/dist/remote/nextjs/pages.js.map +1 -0
  307. package/dist/server-handoff-8c89b856.d.ts +46 -0
  308. package/package.json +126 -157
  309. package/dist/html/host.cjs.map +0 -1
  310. package/dist/html/host.js.map +0 -1
  311. package/dist/html/remote.cjs.map +0 -1
  312. package/dist/html/remote.js.map +0 -1
  313. package/dist/internal/next/host/app-router-client.cjs.map +0 -1
  314. package/dist/internal/next/host/app-router-client.d.ts +0 -79
  315. package/dist/internal/next/host/app-router-client.js.map +0 -1
  316. package/dist/internal/next/host/app-router-compat.cjs.map +0 -1
  317. package/dist/internal/next/host/app-router-compat.js.map +0 -1
  318. package/dist/internal/next/host/remote-component-links.cjs.map +0 -1
  319. package/dist/internal/next/host/remote-component-links.js.map +0 -1
  320. package/dist/internal/next/remote/render-client.cjs.map +0 -1
  321. package/dist/internal/next/remote/render-client.js.map +0 -1
  322. package/dist/internal/next/remote/render-server.cjs.map +0 -1
  323. package/dist/internal/next/remote/render-server.js.map +0 -1
  324. package/dist/internal/react/context.cjs.map +0 -1
  325. package/dist/internal/react/context.js.map +0 -1
  326. package/dist/internal/react/hooks/use-resolve-client-url.cjs.map +0 -1
  327. package/dist/internal/react/hooks/use-resolve-client-url.js.map +0 -1
  328. package/dist/internal/shared/client/default-resolve-client-url.cjs.map +0 -1
  329. package/dist/internal/shared/client/default-resolve-client-url.js.map +0 -1
  330. package/dist/internal/shared/client/get-client-src.cjs.map +0 -1
  331. package/dist/internal/shared/client/get-client-src.js.map +0 -1
  332. package/dist/internal/shared/client/polyfill.cjs.map +0 -1
  333. package/dist/internal/shared/client/polyfill.js.map +0 -1
  334. package/dist/internal/shared/client/protected-rc-fallback.cjs.map +0 -1
  335. package/dist/internal/shared/client/protected-rc-fallback.js.map +0 -1
  336. package/dist/internal/shared/client/proxy-through-host.cjs.map +0 -1
  337. package/dist/internal/shared/client/proxy-through-host.js +0 -40
  338. package/dist/internal/shared/client/proxy-through-host.js.map +0 -1
  339. package/dist/internal/shared/client/remote-component.cjs +0 -1436
  340. package/dist/internal/shared/client/remote-component.cjs.map +0 -1
  341. package/dist/internal/shared/client/remote-component.d.ts +0 -62
  342. package/dist/internal/shared/client/remote-component.js +0 -1385
  343. package/dist/internal/shared/client/remote-component.js.map +0 -1
  344. package/dist/internal/shared/constants.cjs.map +0 -1
  345. package/dist/internal/shared/constants.d.ts +0 -4
  346. package/dist/internal/shared/constants.js.map +0 -1
  347. package/dist/internal/shared/contract/host-state.cjs.map +0 -1
  348. package/dist/internal/shared/contract/host-state.js.map +0 -1
  349. package/dist/internal/shared/contract/resolve-name-from-src.cjs.map +0 -1
  350. package/dist/internal/shared/contract/resolve-name-from-src.js.map +0 -1
  351. package/dist/internal/shared/error.cjs.map +0 -1
  352. package/dist/internal/shared/error.js.map +0 -1
  353. package/dist/internal/shared/ssr/dom-flight.cjs.map +0 -1
  354. package/dist/internal/shared/ssr/dom-flight.d.ts +0 -2
  355. package/dist/internal/shared/ssr/dom-flight.js.map +0 -1
  356. package/dist/internal/shared/ssr/fetch-headers.cjs.map +0 -1
  357. package/dist/internal/shared/ssr/fetch-headers.js.map +0 -1
  358. package/dist/internal/shared/ssr/fetch-remote-component.cjs.map +0 -1
  359. package/dist/internal/shared/ssr/fetch-remote-component.js.map +0 -1
  360. package/dist/internal/shared/ssr/fetch-with-hooks.cjs.map +0 -1
  361. package/dist/internal/shared/ssr/fetch-with-hooks.d.ts +0 -56
  362. package/dist/internal/shared/ssr/fetch-with-hooks.js.map +0 -1
  363. package/dist/internal/shared/ssr/get-client-or-server-url.cjs.map +0 -1
  364. package/dist/internal/shared/ssr/get-client-or-server-url.js.map +0 -1
  365. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.cjs.map +0 -1
  366. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.js.map +0 -1
  367. package/dist/internal/shared/ssr/skeleton.cjs.map +0 -1
  368. package/dist/internal/shared/ssr/skeleton.js.map +0 -1
  369. package/dist/internal/shared/utils/abort.cjs.map +0 -1
  370. package/dist/internal/shared/utils/abort.js.map +0 -1
  371. package/dist/internal/shared/utils/logger.cjs.map +0 -1
  372. package/dist/internal/shared/utils/logger.js.map +0 -1
  373. package/dist/internal/shared/utils.cjs.map +0 -1
  374. package/dist/internal/shared/utils.js.map +0 -1
  375. package/dist/internal/webpack/next-client-pages-loader.cjs.map +0 -1
  376. package/dist/internal/webpack/next-client-pages-loader.js.map +0 -1
  377. package/dist/internal/webpack/shared-modules.cjs.map +0 -1
  378. package/dist/internal/webpack/shared-modules.js.map +0 -1
  379. package/dist/next/config.cjs.map +0 -1
  380. package/dist/next/config.js.map +0 -1
  381. package/dist/next/host/app-router-server.cjs.map +0 -1
  382. package/dist/next/host/app-router-server.d.ts +0 -30
  383. package/dist/next/host/app-router-server.js.map +0 -1
  384. package/dist/next/host/client/index.cjs.map +0 -1
  385. package/dist/next/host/client/index.d.ts +0 -19
  386. package/dist/next/host/client/index.js.map +0 -1
  387. package/dist/next/host/pages-router-client.cjs.map +0 -1
  388. package/dist/next/host/pages-router-client.d.ts +0 -33
  389. package/dist/next/host/pages-router-client.js.map +0 -1
  390. package/dist/next/host/pages-router-server.cjs.map +0 -1
  391. package/dist/next/host/pages-router-server.js.map +0 -1
  392. package/dist/next/index.cjs +0 -53
  393. package/dist/next/index.cjs.map +0 -1
  394. package/dist/next/index.d.ts +0 -30
  395. package/dist/next/index.js +0 -19
  396. package/dist/next/index.js.map +0 -1
  397. package/dist/next/proxy.cjs.map +0 -1
  398. package/dist/next/proxy.d.ts +0 -56
  399. package/dist/next/proxy.js.map +0 -1
  400. package/dist/next/remote/pages-router.cjs.map +0 -1
  401. package/dist/next/remote/pages-router.js.map +0 -1
  402. package/dist/next/remote/server.cjs.map +0 -1
  403. package/dist/next/remote/server.d.ts +0 -5
  404. package/dist/next/remote/server.js +0 -5
  405. package/dist/next/remote/server.js.map +0 -1
  406. package/dist/proxy-through-host-a676a522.d.ts +0 -52
  407. package/dist/react/index.cjs.map +0 -1
  408. package/dist/react/index.d.ts +0 -86
  409. package/dist/react/index.js.map +0 -1
  410. package/dist/shared/host/app.cjs.map +0 -1
  411. package/dist/shared/host/app.js +0 -12
  412. package/dist/shared/host/app.js.map +0 -1
  413. package/dist/shared/host/pages.cjs.map +0 -1
  414. package/dist/shared/host/pages.js +0 -12
  415. package/dist/shared/host/pages.js.map +0 -1
  416. package/dist/shared/host/proxy.cjs.map +0 -1
  417. package/dist/shared/host/proxy.js.map +0 -1
  418. package/dist/shared/remote/app.cjs.map +0 -1
  419. package/dist/shared/remote/app.js +0 -8
  420. package/dist/shared/remote/app.js.map +0 -1
  421. package/dist/shared/remote/pages.cjs.map +0 -1
  422. package/dist/shared/remote/pages.js +0 -8
  423. package/dist/shared/remote/pages.js.map +0 -1
  424. package/dist/shared/remote/proxy.cjs.map +0 -1
  425. package/dist/shared/remote/proxy.d.ts +0 -44
  426. package/dist/shared/remote/proxy.js.map +0 -1
  427. package/dist/shared/remote/wrapper.cjs.map +0 -1
  428. package/dist/shared/remote/wrapper.js +0 -25
  429. package/dist/shared/remote/wrapper.js.map +0 -1
  430. package/dist/webpack.cjs.map +0 -1
  431. package/dist/webpack.js.map +0 -1
  432. /package/dist/{webpack.d.ts → config/webpack.d.ts} +0 -0
  433. /package/dist/{shared/host → host/defaults}/app.d.ts +0 -0
  434. /package/dist/{shared/host → host/defaults}/pages.d.ts +0 -0
  435. /package/dist/{shared/host/proxy.d.ts → host/proxy/protected-fetch.d.ts} +0 -0
  436. /package/dist/internal/{webpack/shared-modules.d.ts → config/webpack/apply-shared-modules.d.ts} +0 -0
  437. /package/dist/internal/{webpack → config/webpack}/next-client-pages-loader.d.ts +0 -0
  438. /package/dist/internal/{shared/ssr → host/nextjs}/dom-flight.cjs +0 -0
  439. /package/dist/internal/{shared/ssr → host/nextjs}/dom-flight.js +0 -0
  440. /package/dist/internal/{shared/ssr → host/nextjs}/skeleton.cjs +0 -0
  441. /package/dist/internal/{shared/ssr → host/nextjs}/skeleton.d.ts +0 -0
  442. /package/dist/internal/{shared/ssr → host/nextjs}/skeleton.js +0 -0
  443. /package/dist/internal/{shared/ssr → host/server}/fetch-headers.cjs +0 -0
  444. /package/dist/internal/{shared/ssr → host/server}/fetch-headers.d.ts +0 -0
  445. /package/dist/internal/{shared/ssr → host/server}/fetch-headers.js +0 -0
  446. /package/dist/internal/{shared/ssr → host/server}/get-client-or-server-url.cjs +0 -0
  447. /package/dist/internal/{shared/ssr → host/server}/get-client-or-server-url.d.ts +0 -0
  448. /package/dist/internal/{shared/ssr → host/server}/get-client-or-server-url.js +0 -0
  449. /package/dist/internal/{shared/client → host/server}/get-client-src.d.ts +0 -0
  450. /package/dist/internal/{shared/ssr → host/server}/get-ssr-relative-path-base-url.cjs +0 -0
  451. /package/dist/internal/{shared/ssr → host/server}/get-ssr-relative-path-base-url.d.ts +0 -0
  452. /package/dist/internal/{shared/ssr → host/server}/get-ssr-relative-path-base-url.js +0 -0
  453. /package/dist/internal/{shared/contract/host-state.d.ts → host/shared/state.d.ts} +0 -0
  454. /package/dist/internal/{shared/contract → host/utils}/resolve-name-from-src.cjs +0 -0
  455. /package/dist/internal/{shared/contract → host/utils}/resolve-name-from-src.d.ts +0 -0
  456. /package/dist/internal/{shared/contract → host/utils}/resolve-name-from-src.js +0 -0
  457. /package/dist/internal/{next/remote/render-client.d.ts → remote/nextjs/app-client.d.ts} +0 -0
  458. /package/dist/internal/{shared/client → runtime/html}/apply-origin.cjs +0 -0
  459. /package/dist/internal/{shared/client → runtime/html}/apply-origin.js +0 -0
  460. /package/dist/internal/{shared/client → runtime/url}/protected-rc-fallback.d.ts +0 -0
  461. /package/dist/internal/{shared/utils → utils}/abort.cjs +0 -0
  462. /package/dist/internal/{shared/utils → utils}/abort.d.ts +0 -0
  463. /package/dist/internal/{shared/utils → utils}/abort.js +0 -0
  464. /package/dist/internal/{shared/utils.cjs → utils.cjs} +0 -0
  465. /package/dist/internal/{shared/utils.d.ts → utils.d.ts} +0 -0
  466. /package/dist/internal/{shared/utils.js → utils.js} +0 -0
  467. /package/dist/{shared/remote → remote/defaults}/app.d.ts +0 -0
  468. /package/dist/{shared/remote → remote/defaults}/pages.d.ts +0 -0
  469. /package/dist/{shared/remote → remote/defaults}/wrapper.d.ts +0 -0
  470. /package/dist/{html/remote.d.ts → remote/html.d.ts} +0 -0
@@ -27,87 +27,20 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/react/index.tsx
30
+ // src/host/react/index.tsx
31
31
  var react_exports = {};
32
32
  __export(react_exports, {
33
- RemoteComponent: () => RemoteComponent,
34
- RemoteComponentsProvider: () => import_context2.RemoteComponentsProvider,
35
- proxyClientRequestsThroughHost: () => proxyClientRequestsThroughHost
33
+ ConsumeRemoteComponent: () => ConsumeRemoteComponent
36
34
  });
37
35
  module.exports = __toCommonJS(react_exports);
38
36
  var import_react3 = require("react");
39
37
  var import_react_dom = require("react-dom");
40
38
 
41
- // src/shared/client/apply-origin.ts
42
- var tagNames = [
43
- "img",
44
- "source",
45
- "video",
46
- "audio",
47
- "track",
48
- "iframe",
49
- "embed",
50
- "script",
51
- "link"
52
- ];
53
- function applyOriginToNodes(doc, url, resolveClientUrl) {
54
- if (url.origin !== location.origin) {
55
- const nodes = doc.querySelectorAll(
56
- tagNames.map(
57
- (type) => `${type}[src],${type}[srcset],${type}[href],${type}[imagesrcset]`
58
- ).join(",")
59
- );
60
- nodes.forEach((node) => {
61
- if (node.hasAttribute("src") && /^[./]+\/?/.test(node.getAttribute("src") ?? "")) {
62
- const absoluteSrc = new URL(node.getAttribute("src") ?? "/", url).href;
63
- const isScript = node.tagName.toLowerCase() === "script";
64
- node.src = isScript ? absoluteSrc : resolveClientUrl?.(absoluteSrc) ?? absoluteSrc;
65
- }
66
- if (node.hasAttribute("href") && /^[./]+\/?/.test(node.getAttribute("href") ?? "")) {
67
- const absoluteHref = new URL(node.getAttribute("href") ?? "/", url).href;
68
- node.setAttribute(
69
- "href",
70
- resolveClientUrl?.(absoluteHref) ?? absoluteHref
71
- );
72
- }
73
- if (node.hasAttribute("srcset")) {
74
- const srcSet = node.getAttribute("srcset")?.split(",").map((entry) => {
75
- const [urlPart, descriptor] = entry.trim().split(/\s+/);
76
- if (!urlPart)
77
- return entry;
78
- const absoluteUrl = new URL(urlPart, url).href;
79
- const resolvedUrl = resolveClientUrl?.(absoluteUrl) ?? absoluteUrl;
80
- return descriptor ? `${resolvedUrl} ${descriptor}` : resolvedUrl;
81
- }).join(", ");
82
- if (srcSet) {
83
- node.setAttribute("srcset", srcSet);
84
- }
85
- }
86
- if (node.hasAttribute("imagesrcset")) {
87
- const srcSet = node.getAttribute("imagesrcset")?.split(",").map((entry) => {
88
- const [urlPart, descriptor] = entry.trim().split(/\s+/);
89
- if (!urlPart)
90
- return entry;
91
- const absoluteUrl = new URL(urlPart, url).href;
92
- const resolvedUrl = resolveClientUrl?.(absoluteUrl) ?? absoluteUrl;
93
- return descriptor ? `${resolvedUrl} ${descriptor}` : resolvedUrl;
94
- }).join(", ");
95
- if (srcSet) {
96
- node.setAttribute("imagesrcset", srcSet);
97
- }
98
- }
99
- });
100
- }
101
- }
102
-
103
- // src/shared/constants.ts
39
+ // src/utils/constants.ts
104
40
  var RC_PROTECTED_REMOTE_FETCH_PATHNAME = "/rc-fetch-protected-remote";
105
41
  var CORS_DOCS_URL = "https://vercel.com/docs/remote-components/concepts/cors-external-urls#accessing-cross-site-protected-remote-components";
106
42
 
107
- // src/shared/client/protected-rc-fallback.ts
108
- function generateProtectedRcFallbackSrc(url) {
109
- return `${RC_PROTECTED_REMOTE_FETCH_PATHNAME}?url=${encodeURIComponent(url)}`;
110
- }
43
+ // src/runtime/url/protected-rc-fallback.ts
111
44
  function isProxiedUrl(url) {
112
45
  try {
113
46
  return new URL(url, location.href).pathname === RC_PROTECTED_REMOTE_FETCH_PATHNAME;
@@ -116,7 +49,7 @@ function isProxiedUrl(url) {
116
49
  }
117
50
  }
118
51
 
119
- // src/shared/utils/abort.ts
52
+ // src/utils/abort.ts
120
53
  function isAbortError(error) {
121
54
  if (error instanceof DOMException && error.name === "AbortError") {
122
55
  return true;
@@ -128,7 +61,7 @@ function isAbortError(error) {
128
61
  return false;
129
62
  }
130
63
 
131
- // src/shared/error.ts
64
+ // src/utils/error.ts
132
65
  var RemoteComponentsError = class extends Error {
133
66
  code = "REMOTE_COMPONENTS_ERROR";
134
67
  constructor(message, options) {
@@ -186,6 +119,11 @@ async function errorFromFailedFetch(originalUrl, resolvedUrl, res) {
186
119
  }
187
120
  return fallback;
188
121
  }
122
+ function failedProxiedAssetError(kind, url, resolvedUrl) {
123
+ return new RemoteComponentsError(
124
+ `Failed to load ${kind} "${url}" via proxy "${resolvedUrl}". Ensure withRemoteComponentsHostProxy middleware is configured, "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher, and the remote URL is included in allowedProxyUrls. See: ${CORS_DOCS_URL}`
125
+ );
126
+ }
189
127
  function failedProxyFetchError(originalUrl, proxyUrl, status, responseBody) {
190
128
  if (status === 404) {
191
129
  return new RemoteComponentsError(
@@ -194,7 +132,7 @@ function failedProxyFetchError(originalUrl, proxyUrl, status, responseBody) {
194
132
  The host server needs middleware or a route that handles "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}".
195
133
 
196
134
  Proxying requires two pieces:
197
- 1. resolveClientUrl={proxyClientRequestsThroughHost} on <RemoteComponent>
135
+ 1. resolveClientUrl={routeThroughHostProxy} on <RemoteComponent>
198
136
  2. Middleware or a route for "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" on the host server
199
137
 
200
138
  Docs: ${CORS_DOCS_URL}`
@@ -211,123 +149,7 @@ Docs: ${CORS_DOCS_URL}`
211
149
  );
212
150
  }
213
151
 
214
- // src/shared/utils/index.ts
215
- function escapeString(str) {
216
- return str.replace(/[^a-z0-9]/g, "_");
217
- }
218
- var attrToProp = {
219
- fetchpriority: "fetchPriority",
220
- crossorigin: "crossOrigin",
221
- imagesrcset: "imageSrcSet",
222
- imagesizes: "imageSizes",
223
- srcset: "srcSet"
224
- };
225
-
226
- // src/shared/client/const.ts
227
- var DEFAULT_ROUTE = "/";
228
- var RUNTIME_WEBPACK = "webpack";
229
- var RUNTIME_TURBOPACK = "turbopack";
230
- var RUNTIME_SCRIPT = "script";
231
- var REMOTE_COMPONENT_REGEX = /(?<prefix>.*?)\[(?<bundle>[^\]]+)\](?:%20| )(?<id>.+)/;
232
- function getBundleKey(bundle) {
233
- return escapeString(bundle);
234
- }
235
-
236
- // src/shared/client/parse-remote-html.ts
237
- function validateSingleComponent(doc, name, url) {
238
- if (doc.querySelectorAll("div[data-bundle][data-route]").length > 1 && !doc.querySelector(`div[data-bundle][data-route][id^="${name}"]`) || doc.querySelectorAll("remote-component:not([src])").length > 1 && !doc.querySelector(`remote-component[name="${name}"]`)) {
239
- throw multipleRemoteComponentsError(url);
240
- }
241
- }
242
- function findComponentElement(doc, name) {
243
- return doc.querySelector(`div[data-bundle][data-route][id^="${name}"]`) ?? doc.querySelector("div[data-bundle][data-route]") ?? doc.querySelector("div#__next") ?? doc.querySelector(`remote-component[name="${name}"]:not([src])`) ?? doc.querySelector("remote-component:not([src])");
244
- }
245
- function parseNextData(doc) {
246
- return JSON.parse(
247
- (doc.querySelector("#__NEXT_DATA__") ?? doc.querySelector("#__REMOTE_NEXT_DATA__"))?.textContent ?? "null"
248
- );
249
- }
250
- function resolveComponentName(component, nextData, fallbackName) {
251
- const isRemoteComponent = component?.tagName.toLowerCase() === "remote-component";
252
- const name = component?.getAttribute("id")?.replace(/_ssr$/, "") || isRemoteComponent && component?.getAttribute("name") || (nextData ? "__next" : fallbackName);
253
- return { name, isRemoteComponent };
254
- }
255
- function extractComponentMetadata(component, nextData, name, url) {
256
- return {
257
- name,
258
- bundle: component?.getAttribute("data-bundle") || nextData?.props.__REMOTE_COMPONENT__?.bundle || "default",
259
- route: component?.getAttribute("data-route") ?? nextData?.page ?? (url.pathname || DEFAULT_ROUTE),
260
- runtime: component?.getAttribute("data-runtime") ?? (nextData?.props.__REMOTE_COMPONENT__?.runtime || RUNTIME_SCRIPT)
261
- };
262
- }
263
- function extractRemoteShared(doc, name, nextData) {
264
- const remoteSharedEl = doc.querySelector(
265
- `#${name}_shared[data-remote-components-shared]`
266
- );
267
- const remoteShared = nextData?.props.__REMOTE_COMPONENT__?.shared ?? (JSON.parse(remoteSharedEl?.textContent ?? "{}") ?? {});
268
- remoteSharedEl?.remove();
269
- return remoteShared;
270
- }
271
- function validateComponentFound(component, rsc, nextData, isRemoteComponent, url, name) {
272
- if (!component || !(rsc || nextData || isRemoteComponent)) {
273
- throw new RemoteComponentsError(
274
- `Remote Component not found on ${url}.${name !== "__vercel_remote_component" ? ` The name for the <RemoteComponent> is "${name}". Check <RemoteComponent> usage.` : ""} Did you forget to wrap the content in <RemoteComponent>?`
275
- );
276
- }
277
- }
278
- function extractLinks(doc, component) {
279
- return Array.from(doc.querySelectorAll("link[href]")).filter(
280
- (link) => !component.contains(link)
281
- );
282
- }
283
- function extractScripts(doc, component, isRemoteComponent) {
284
- return Array.from(
285
- (isRemoteComponent ? component : doc).querySelectorAll(
286
- "script[src],script[data-src]"
287
- )
288
- );
289
- }
290
- function parseRemoteComponentDocument(doc, name, url) {
291
- validateSingleComponent(doc, name, url.href);
292
- const component = findComponentElement(doc, name);
293
- const nextData = parseNextData(doc);
294
- const { name: resolvedName, isRemoteComponent } = resolveComponentName(
295
- component,
296
- nextData,
297
- name
298
- );
299
- const rsc = doc.querySelector(`#${resolvedName}_rsc`);
300
- const metadata = extractComponentMetadata(
301
- component,
302
- nextData,
303
- resolvedName,
304
- url
305
- );
306
- const remoteShared = extractRemoteShared(doc, resolvedName, nextData);
307
- validateComponentFound(
308
- component,
309
- rsc,
310
- nextData,
311
- isRemoteComponent,
312
- url.href,
313
- resolvedName
314
- );
315
- const links = extractLinks(doc, component);
316
- const scripts = extractScripts(doc, component, isRemoteComponent);
317
- return {
318
- component,
319
- name: resolvedName,
320
- isRemoteComponent,
321
- metadata,
322
- nextData,
323
- rsc,
324
- remoteShared,
325
- links,
326
- scripts
327
- };
328
- }
329
-
330
- // src/shared/utils/logger.ts
152
+ // src/utils/logger.ts
331
153
  var PREFIX = "remote-components";
332
154
  var DEBUG = typeof window !== "undefined" && localStorage.getItem("RC_DEBUG") === "true";
333
155
  function logDebug(location2, message) {
@@ -353,13 +175,68 @@ function warnCrossOriginFetchError(logLocation, url) {
353
175
  }
354
176
  logWarn(
355
177
  logLocation,
356
- `Failed to fetch cross-origin resource "${parsed.href}". If this is a protected deployment, ensure withRemoteComponentsHost middleware is configured in your host and that the remote URL is included in allowedProxyUrls. See: ${CORS_DOCS_URL}`
178
+ `Failed to fetch cross-origin resource "${parsed.href}". To load assets from a protected deployment, two steps are required: (1) configure withRemoteComponentsHostProxy middleware in your host with the remote URL in allowedProxyUrls, and (2) provide a resolveClientUrl prop that rewrites cross-origin asset URLs to go through the proxy. See: ${CORS_DOCS_URL}`
357
179
  );
358
180
  } catch {
359
181
  }
360
182
  }
361
183
 
362
- // src/shared/client/polyfill.tsx
184
+ // src/host/server/fetch-headers.ts
185
+ function remoteFetchHeaders() {
186
+ return {
187
+ /**
188
+ * Authenticates deployment protection for the remote. Needed for SSR and SSG clients.
189
+ * If the remote component uses vercel deployment protection, ensure the host and remote vercel
190
+ * projects share a common automation bypass secret, and the shared secret is used as the
191
+ * VERCEL_AUTOMATION_BYPASS_SECRET env var in the host project.
192
+ */
193
+ ...typeof process === "object" && typeof process.env === "object" && typeof process.env.VERCEL_AUTOMATION_BYPASS_SECRET === "string" ? {
194
+ "x-vercel-protection-bypass": process.env.VERCEL_AUTOMATION_BYPASS_SECRET
195
+ } : {},
196
+ Accept: "text/html"
197
+ };
198
+ }
199
+
200
+ // src/host/server/fetch-with-hooks.ts
201
+ async function fetchWithWarning(url, init) {
202
+ try {
203
+ return await fetch(url, init);
204
+ } catch (error) {
205
+ warnCrossOriginFetchError("FetchRemoteComponent", url);
206
+ throw error;
207
+ }
208
+ }
209
+ async function fetchWithHooks(url, additionalInit, options = {}) {
210
+ const {
211
+ onRequest,
212
+ onResponse,
213
+ abortController = new AbortController()
214
+ } = options;
215
+ const signal = abortController.signal;
216
+ const hookOptions = {
217
+ signal,
218
+ abort: (reason) => abortController.abort(reason)
219
+ };
220
+ const init = {
221
+ method: "GET",
222
+ headers: remoteFetchHeaders(),
223
+ signal,
224
+ ...additionalInit
225
+ };
226
+ const res = await onRequest?.(url, init, hookOptions) ?? await fetchWithWarning(url, init);
227
+ return await onResponse?.(url, res, hookOptions) ?? res;
228
+ }
229
+
230
+ // src/host/server/get-client-or-server-url.ts
231
+ function getClientOrServerUrl(src, serverFallback) {
232
+ const fallback = typeof location !== "undefined" ? location.href : serverFallback;
233
+ if (!src) {
234
+ return new URL(fallback);
235
+ }
236
+ return typeof src === "string" ? new URL(src, fallback) : src;
237
+ }
238
+
239
+ // src/host/shared/polyfill.tsx
363
240
  var import_jsx_runtime = (
364
241
  // eslint-disable-next-line @next/next/no-img-element, jsx-a11y/alt-text
365
242
  require("react/jsx-runtime")
@@ -382,7 +259,7 @@ function applyBundleUrlToImagePropsSrc(bundle, src) {
382
259
  const propSrc = src;
383
260
  return applyBundleUrlToSrc(bundle, propSrc.src);
384
261
  }
385
- var imageImpl = (bundle) => function RemoteImage({
262
+ var imageImpl = (bundle, resolveClientUrl) => function RemoteImage({
386
263
  fill: _fill,
387
264
  loader: _loader,
388
265
  quality: _quality,
@@ -399,18 +276,19 @@ var imageImpl = (bundle) => function RemoteImage({
399
276
  bundle,
400
277
  typeof src === "string" ? src : src.src
401
278
  );
279
+ const proxiedSrc = resolveClientUrl?.(newSrc) ?? newSrc;
402
280
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
403
281
  "img",
404
282
  {
405
283
  decoding: "async",
406
284
  style: { color: "transparent" },
407
285
  ...props,
408
- src: newSrc,
286
+ src: proxiedSrc,
409
287
  suppressHydrationWarning: true
410
288
  }
411
289
  );
412
290
  };
413
- function sharedPolyfills(shared) {
291
+ function sharedPolyfills(shared, resolveClientUrl) {
414
292
  const self = globalThis;
415
293
  const polyfill = {
416
294
  "next/dist/client/components/navigation": self.__remote_component_host_shared_modules__?.["next/navigation"] ?? shared?.["next/navigation"] ?? (() => Promise.resolve({
@@ -501,11 +379,11 @@ function sharedPolyfills(shared) {
501
379
  __esModule: true
502
380
  })),
503
381
  "next/dist/client/image-component": self.__remote_component_host_shared_modules__?.["next/image"] ?? shared?.["next/image"] ?? ((bundle) => Promise.resolve({
504
- Image: imageImpl(bundle),
382
+ Image: imageImpl(bundle, resolveClientUrl),
505
383
  __esModule: true
506
384
  })),
507
385
  "next/image": self.__remote_component_host_shared_modules__?.["next/image"] ?? shared?.["next/image"] ?? ((bundle) => Promise.resolve({
508
- default: imageImpl(bundle),
386
+ default: imageImpl(bundle, resolveClientUrl),
509
387
  getImageProps: (_imgProps) => {
510
388
  throw new Error(
511
389
  "Next.js getImageProps() is not implemented in remote components"
@@ -555,29 +433,338 @@ function sharedPolyfills(shared) {
555
433
  return polyfill;
556
434
  }
557
435
 
558
- // src/shared/client/component-loader.ts
559
- var React = __toESM(require("react"), 1);
560
- var JSXDevRuntime = __toESM(require("react/jsx-dev-runtime"), 1);
561
- var JSXRuntime = __toESM(require("react/jsx-runtime"), 1);
562
- var ReactDOM = __toESM(require("react-dom"), 1);
563
- var ReactDOMClient = __toESM(require("react-dom/client"), 1);
436
+ // src/host/shared/state.ts
437
+ function createHostState() {
438
+ return {
439
+ stage: "idle",
440
+ prevSrc: void 0,
441
+ prevUrl: void 0,
442
+ prevName: void 0,
443
+ prevIsRemoteComponent: false,
444
+ abortController: void 0
445
+ };
446
+ }
564
447
 
565
- // src/shared/webpack/next-client-pages-loader.ts
566
- function nextClientPagesLoader(bundle, route, styleContainer = document.head) {
567
- const self = globalThis;
568
- const nextCssOriginal = document.querySelector(
569
- `[id="__next_css__DO_NOT_USE__"]:not([data-bundle="${bundle}"][data-route="${route}"])`
570
- );
571
- if (nextCssOriginal) {
572
- nextCssOriginal.parentNode?.removeChild(nextCssOriginal);
448
+ // src/host/utils/resolve-name-from-src.ts
449
+ function resolveNameFromSrc(src, defaultName) {
450
+ if (!src) {
451
+ return defaultName;
573
452
  }
574
- const nextCss = document.createElement("noscript");
575
- nextCss.id = "__next_css__DO_NOT_USE__";
576
- nextCss.setAttribute("data-bundle", bundle);
577
- nextCss.setAttribute("data-route", route);
578
- const nextCssEnd = document.createElement("noscript");
579
- nextCssEnd.id = "__next_css__DO_NOT_USE_END__";
580
- nextCssEnd.setAttribute("data-bundle", bundle);
453
+ const hash = typeof src === "string" ? src : src.hash;
454
+ const hashIndex = hash.indexOf("#");
455
+ if (hashIndex < 0) {
456
+ return defaultName;
457
+ }
458
+ const name = hash.slice(hashIndex + 1);
459
+ return name || defaultName;
460
+ }
461
+
462
+ // src/utils/index.ts
463
+ function escapeString(str) {
464
+ return str.replace(/[^a-z0-9]/g, "_");
465
+ }
466
+ var attrToProp = {
467
+ fetchpriority: "fetchPriority",
468
+ crossorigin: "crossOrigin",
469
+ imagesrcset: "imageSrcSet",
470
+ imagesizes: "imageSizes",
471
+ srcset: "srcSet"
472
+ };
473
+
474
+ // src/runtime/constants.ts
475
+ var DEFAULT_ROUTE = "/";
476
+ var RUNTIME_WEBPACK = "webpack";
477
+ var RUNTIME_TURBOPACK = "turbopack";
478
+ var RUNTIME_SCRIPT = "script";
479
+ var REMOTE_COMPONENT_REGEX = /(?<prefix>.*?)\[(?<bundle>[^\]]+)\](?:%20| )(?<id>.+)/;
480
+ var NEXT_BUNDLE_PATH_RE = /\/_next\/\[.+\](?:%20| )/;
481
+ function getBundleKey(bundle) {
482
+ return escapeString(bundle);
483
+ }
484
+
485
+ // src/runtime/html/apply-origin.ts
486
+ var tagNames = [
487
+ "img",
488
+ "source",
489
+ "video",
490
+ "audio",
491
+ "track",
492
+ "iframe",
493
+ "embed",
494
+ "script",
495
+ "link"
496
+ ];
497
+ function applyOriginToNodes(doc, url, resolveClientUrl) {
498
+ if (url.origin !== location.origin) {
499
+ const nodes = doc.querySelectorAll(
500
+ tagNames.map(
501
+ (type) => `${type}[src],${type}[srcset],${type}[href],${type}[imagesrcset]`
502
+ ).join(",")
503
+ );
504
+ nodes.forEach((node) => {
505
+ if (node.hasAttribute("src") && /^[./]+\/?/.test(node.getAttribute("src") ?? "")) {
506
+ const absoluteSrc = new URL(node.getAttribute("src") ?? "/", url).href;
507
+ const isScript = node.tagName.toLowerCase() === "script";
508
+ node.src = isScript ? absoluteSrc : resolveClientUrl?.(absoluteSrc) ?? absoluteSrc;
509
+ }
510
+ if (node.hasAttribute("href") && /^[./]+\/?/.test(node.getAttribute("href") ?? "")) {
511
+ const absoluteHref = new URL(node.getAttribute("href") ?? "/", url).href;
512
+ node.setAttribute(
513
+ "href",
514
+ resolveClientUrl?.(absoluteHref) ?? absoluteHref
515
+ );
516
+ }
517
+ if (node.hasAttribute("srcset")) {
518
+ const srcSet = node.getAttribute("srcset")?.split(",").map((entry) => {
519
+ const [urlPart, descriptor] = entry.trim().split(/\s+/);
520
+ if (!urlPart)
521
+ return entry;
522
+ const absoluteUrl = new URL(urlPart, url).href;
523
+ const resolvedUrl = resolveClientUrl?.(absoluteUrl) ?? absoluteUrl;
524
+ return descriptor ? `${resolvedUrl} ${descriptor}` : resolvedUrl;
525
+ }).join(", ");
526
+ if (srcSet) {
527
+ node.setAttribute("srcset", srcSet);
528
+ }
529
+ }
530
+ if (node.hasAttribute("imagesrcset")) {
531
+ const srcSet = node.getAttribute("imagesrcset")?.split(",").map((entry) => {
532
+ const [urlPart, descriptor] = entry.trim().split(/\s+/);
533
+ if (!urlPart)
534
+ return entry;
535
+ const absoluteUrl = new URL(urlPart, url).href;
536
+ const resolvedUrl = resolveClientUrl?.(absoluteUrl) ?? absoluteUrl;
537
+ return descriptor ? `${resolvedUrl} ${descriptor}` : resolvedUrl;
538
+ }).join(", ");
539
+ if (srcSet) {
540
+ node.setAttribute("imagesrcset", srcSet);
541
+ }
542
+ }
543
+ });
544
+ }
545
+ }
546
+
547
+ // src/runtime/html/parse-remote-html.ts
548
+ function validateSingleComponent(doc, name, url) {
549
+ if (doc.querySelectorAll("div[data-bundle][data-route]").length > 1 && !doc.querySelector(`div[data-bundle][data-route][id^="${name}"]`) || doc.querySelectorAll("remote-component:not([src])").length > 1 && !doc.querySelector(`remote-component[name="${name}"]`)) {
550
+ throw multipleRemoteComponentsError(url);
551
+ }
552
+ }
553
+ function findComponentElement(doc, name) {
554
+ return doc.querySelector(`div[data-bundle][data-route][id^="${name}"]`) ?? doc.querySelector("div[data-bundle][data-route]") ?? doc.querySelector("div#__next") ?? doc.querySelector(`remote-component[name="${name}"]:not([src])`) ?? doc.querySelector("remote-component:not([src])");
555
+ }
556
+ function parseNextData(doc) {
557
+ return JSON.parse(
558
+ (doc.querySelector("#__NEXT_DATA__") ?? doc.querySelector("#__REMOTE_NEXT_DATA__"))?.textContent ?? "null"
559
+ );
560
+ }
561
+ function resolveComponentName(component, nextData, fallbackName) {
562
+ const isRemoteComponent = component?.tagName.toLowerCase() === "remote-component";
563
+ const name = component?.getAttribute("id")?.replace(/_ssr$/, "") || isRemoteComponent && component?.getAttribute("name") || (nextData ? "__next" : fallbackName);
564
+ return { name, isRemoteComponent };
565
+ }
566
+ function extractComponentMetadata(component, nextData, name, url) {
567
+ return {
568
+ name,
569
+ bundle: component?.getAttribute("data-bundle") || nextData?.props.__REMOTE_COMPONENT__?.bundle || "default",
570
+ route: component?.getAttribute("data-route") ?? nextData?.page ?? (url.pathname || DEFAULT_ROUTE),
571
+ runtime: component?.getAttribute("data-runtime") ?? (nextData?.props.__REMOTE_COMPONENT__?.runtime || RUNTIME_SCRIPT)
572
+ };
573
+ }
574
+ function extractRemoteShared(doc, name, nextData) {
575
+ const remoteSharedEl = doc.querySelector(
576
+ `#${name}_shared[data-remote-components-shared]`
577
+ );
578
+ const remoteShared = nextData?.props.__REMOTE_COMPONENT__?.shared ?? (JSON.parse(remoteSharedEl?.textContent ?? "{}") ?? {});
579
+ remoteSharedEl?.remove();
580
+ return remoteShared;
581
+ }
582
+ function validateComponentFound(component, rsc, nextData, isRemoteComponent, url, name) {
583
+ if (!component || !(rsc || nextData || isRemoteComponent)) {
584
+ throw new RemoteComponentsError(
585
+ `Remote Component not found on ${url}.${name !== "__vercel_remote_component" ? ` The name for the <RemoteComponent> is "${name}". Check <RemoteComponent> usage.` : ""} Did you forget to wrap the content in <RemoteComponent>?`
586
+ );
587
+ }
588
+ }
589
+ function extractLinks(doc, component) {
590
+ return Array.from(doc.querySelectorAll("link[href]")).filter(
591
+ (link) => !component.contains(link)
592
+ );
593
+ }
594
+ function extractScripts(doc, component, isRemoteComponent) {
595
+ return Array.from(
596
+ (isRemoteComponent ? component : doc).querySelectorAll(
597
+ "script[src],script[data-src]"
598
+ )
599
+ );
600
+ }
601
+ function parseRemoteComponentDocument(doc, name, url) {
602
+ validateSingleComponent(doc, name, url.href);
603
+ const component = findComponentElement(doc, name);
604
+ const nextData = parseNextData(doc);
605
+ const { name: resolvedName, isRemoteComponent } = resolveComponentName(
606
+ component,
607
+ nextData,
608
+ name
609
+ );
610
+ const rsc = doc.querySelector(`#${resolvedName}_rsc`);
611
+ const metadata = extractComponentMetadata(
612
+ component,
613
+ nextData,
614
+ resolvedName,
615
+ url
616
+ );
617
+ const remoteShared = extractRemoteShared(doc, resolvedName, nextData);
618
+ validateComponentFound(
619
+ component,
620
+ rsc,
621
+ nextData,
622
+ isRemoteComponent,
623
+ url.href,
624
+ resolvedName
625
+ );
626
+ const links = extractLinks(doc, component);
627
+ const scripts = extractScripts(doc, component, isRemoteComponent);
628
+ return {
629
+ component,
630
+ name: resolvedName,
631
+ isRemoteComponent,
632
+ metadata,
633
+ nextData,
634
+ rsc,
635
+ remoteShared,
636
+ links,
637
+ scripts
638
+ };
639
+ }
640
+
641
+ // src/runtime/html/set-attributes-from-props.ts
642
+ var DOMAttributeNames = {
643
+ acceptCharset: "accept-charset",
644
+ className: "class",
645
+ htmlFor: "for",
646
+ httpEquiv: "http-equiv",
647
+ noModule: "noModule"
648
+ };
649
+ var ignoreProps = [
650
+ "onLoad",
651
+ "onReady",
652
+ "dangerouslySetInnerHTML",
653
+ "children",
654
+ "onError",
655
+ "strategy",
656
+ "stylesheets"
657
+ ];
658
+ function isBooleanScriptAttribute(attr) {
659
+ return ["async", "defer", "noModule"].includes(attr);
660
+ }
661
+ function setAttributesFromProps(el, props) {
662
+ for (const [p, value] of Object.entries(props)) {
663
+ if (!Object.hasOwn(props, p))
664
+ continue;
665
+ if (ignoreProps.includes(p))
666
+ continue;
667
+ if (value === void 0) {
668
+ continue;
669
+ }
670
+ const attr = DOMAttributeNames[p] || p.toLowerCase();
671
+ if (el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr)) {
672
+ el[attr] = Boolean(value);
673
+ } else {
674
+ el.setAttribute(attr, String(value));
675
+ }
676
+ if (value === false || el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr) && (!value || value === "false")) {
677
+ el.setAttribute(attr, "");
678
+ el.removeAttribute(attr);
679
+ }
680
+ }
681
+ }
682
+
683
+ // src/runtime/loaders/component-loader.ts
684
+ var React = __toESM(require("react"), 1);
685
+ var JSXDevRuntime = __toESM(require("react/jsx-dev-runtime"), 1);
686
+ var JSXRuntime = __toESM(require("react/jsx-runtime"), 1);
687
+ var ReactDOM = __toESM(require("react-dom"), 1);
688
+ var ReactDOMClient = __toESM(require("react-dom/client"), 1);
689
+
690
+ // src/config/webpack/apply-shared-modules.ts
691
+ var DEDUPLICATION_SKIPPED = "shared module deduplication skipped. The remote may load its own copy of shared dependencies.";
692
+ function applySharedModules(bundle, resolve) {
693
+ logDebug(
694
+ "SharedModules",
695
+ `applySharedModules called for bundle: "${bundle}"`
696
+ );
697
+ logDebug(
698
+ "SharedModules",
699
+ `Shared modules to resolve: ${Object.keys(resolve)}`
700
+ );
701
+ const self = globalThis;
702
+ if (self.__remote_webpack_require__?.[bundle]) {
703
+ const modulePaths = Object.keys(
704
+ self.__remote_webpack_module_map__?.[bundle] ?? self.__remote_webpack_require__[bundle].m ?? {}
705
+ );
706
+ logDebug(
707
+ "SharedModules",
708
+ `Available module paths in __remote_webpack_require__[${bundle}]: ${modulePaths}`
709
+ );
710
+ for (const [key, value] of Object.entries(resolve)) {
711
+ const exactIds = modulePaths.filter((p) => p === key);
712
+ const ids = exactIds.length > 0 ? exactIds : modulePaths.filter((p) => p.includes(key));
713
+ if (ids.length === 0) {
714
+ logDebug(
715
+ "SharedModules",
716
+ `No matching module path found for shared module "${key}"`
717
+ );
718
+ }
719
+ for (const id of ids) {
720
+ const webpackBundle = self.__remote_webpack_require__[bundle];
721
+ if (webpackBundle.m) {
722
+ const resolvedId = self.__remote_webpack_module_map__?.[bundle]?.[id] ? `${self.__remote_webpack_module_map__[bundle][id]}` : id;
723
+ if (resolvedId !== id) {
724
+ logDebug(
725
+ "SharedModules",
726
+ `Mapped module id: "${id}" -> "${resolvedId}"`
727
+ );
728
+ }
729
+ webpackBundle.m[resolvedId] = (module2) => {
730
+ module2.exports = value;
731
+ };
732
+ } else {
733
+ logWarn(
734
+ "SharedModules",
735
+ `webpackBundle.m is not available for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
736
+ );
737
+ }
738
+ }
739
+ }
740
+ } else {
741
+ logWarn(
742
+ "SharedModules",
743
+ `No webpack require found for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
744
+ );
745
+ logDebug(
746
+ "SharedModules",
747
+ `Available bundles: ${Object.keys(self.__remote_webpack_require__ ?? {})}`
748
+ );
749
+ }
750
+ }
751
+
752
+ // src/config/webpack/next-client-pages-loader.ts
753
+ function nextClientPagesLoader(bundle, route, styleContainer = document.head) {
754
+ const self = globalThis;
755
+ const nextCssOriginal = document.querySelector(
756
+ `[id="__next_css__DO_NOT_USE__"]:not([data-bundle="${bundle}"][data-route="${route}"])`
757
+ );
758
+ if (nextCssOriginal) {
759
+ nextCssOriginal.parentNode?.removeChild(nextCssOriginal);
760
+ }
761
+ const nextCss = document.createElement("noscript");
762
+ nextCss.id = "__next_css__DO_NOT_USE__";
763
+ nextCss.setAttribute("data-bundle", bundle);
764
+ nextCss.setAttribute("data-route", route);
765
+ const nextCssEnd = document.createElement("noscript");
766
+ nextCssEnd.id = "__next_css__DO_NOT_USE_END__";
767
+ nextCssEnd.setAttribute("data-bundle", bundle);
581
768
  nextCssEnd.setAttribute("data-route", route);
582
769
  document.head.appendChild(nextCssEnd);
583
770
  document.head.appendChild(nextCss);
@@ -642,100 +829,39 @@ function nextClientPagesLoader(bundle, route, styleContainer = document.head) {
642
829
  self.__remote_webpack_require__?.[bundle]?.(id);
643
830
  }
644
831
  });
645
- const elements = [];
646
- let node = nextCss.previousSibling;
647
- while (node && node !== nextCssEnd) {
648
- elements.push(node);
649
- node.remove();
650
- node = nextCss.previousSibling;
651
- }
652
- self.__remote_next_css__[bundle] = elements;
653
- }
654
- if (styleContainer) {
655
- const elements = self.__remote_next_css__[bundle];
656
- elements.forEach((el) => {
657
- styleContainer.appendChild(el.cloneNode(true));
658
- });
659
- } else {
660
- const elements = self.__remote_next_css__[bundle];
661
- elements.forEach((el) => {
662
- document.head.appendChild(el);
663
- });
664
- }
665
- delete self.__NEXT_P;
666
- self.__NEXT_P = __NEXT_P_ORIGINAL;
667
- if (nextCssOriginal) {
668
- nextCssOriginal.parentNode?.appendChild(nextCssOriginal);
669
- }
670
- nextCss.remove();
671
- nextCssEnd.remove();
672
- return { Component, App };
673
- }
674
- return { Component: null, App: null };
675
- }
676
-
677
- // src/shared/webpack/shared-modules.ts
678
- function applySharedModules(bundle, resolve) {
679
- logDebug(
680
- "SharedModules",
681
- `applySharedModules called for bundle: "${bundle}"`
682
- );
683
- logDebug(
684
- "SharedModules",
685
- `Shared modules to resolve: ${Object.keys(resolve)}`
686
- );
687
- const self = globalThis;
688
- if (self.__remote_webpack_require__?.[bundle]) {
689
- const modulePaths = Object.keys(
690
- self.__remote_webpack_module_map__?.[bundle] ?? self.__remote_webpack_require__[bundle].m ?? {}
691
- );
692
- logDebug(
693
- "SharedModules",
694
- `Available module paths in __remote_webpack_require__[${bundle}]: ${modulePaths}`
695
- );
696
- for (const [key, value] of Object.entries(resolve)) {
697
- let ids = modulePaths.filter((p) => p === key);
698
- if (ids.length === 0) {
699
- ids = modulePaths.filter((p) => p.includes(key));
700
- }
701
- if (ids.length === 0) {
702
- logDebug(
703
- "SharedModules",
704
- `No matching module path found for shared module "${key}"`
705
- );
706
- }
707
- for (let id of ids) {
708
- const webpackBundle = self.__remote_webpack_require__[bundle];
709
- if (webpackBundle.m) {
710
- if (self.__remote_webpack_module_map__?.[bundle]?.[id]) {
711
- const mappedId = `${self.__remote_webpack_module_map__[bundle][id]}`;
712
- logDebug(
713
- "SharedModules",
714
- `Mapped module id: "${id}" -> "${mappedId}"`
715
- );
716
- id = mappedId;
717
- }
718
- webpackBundle.m[id] = (module2) => {
719
- module2.exports = value;
720
- };
721
- } else {
722
- logWarn(
723
- "SharedModules",
724
- `webpackBundle.m is not available for bundle "${bundle}"`
725
- );
726
- }
832
+ const elements = [];
833
+ let node = nextCss.previousSibling;
834
+ while (node && node !== nextCssEnd) {
835
+ elements.push(node);
836
+ node.remove();
837
+ node = nextCss.previousSibling;
727
838
  }
839
+ self.__remote_next_css__[bundle] = elements;
728
840
  }
729
- } else {
730
- logWarn("SharedModules", `No webpack require found for bundle "${bundle}"`);
731
- logDebug(
732
- "SharedModules",
733
- `Available bundles: ${Object.keys(self.__remote_webpack_require__ ?? {})}`
734
- );
841
+ if (styleContainer) {
842
+ const elements = self.__remote_next_css__[bundle];
843
+ elements.forEach((el) => {
844
+ styleContainer.appendChild(el.cloneNode(true));
845
+ });
846
+ } else {
847
+ const elements = self.__remote_next_css__[bundle];
848
+ elements.forEach((el) => {
849
+ document.head.appendChild(el);
850
+ });
851
+ }
852
+ delete self.__NEXT_P;
853
+ self.__NEXT_P = __NEXT_P_ORIGINAL;
854
+ if (nextCssOriginal) {
855
+ nextCssOriginal.parentNode?.appendChild(nextCssOriginal);
856
+ }
857
+ nextCss.remove();
858
+ nextCssEnd.remove();
859
+ return { Component, App };
735
860
  }
861
+ return { Component: null, App: null };
736
862
  }
737
863
 
738
- // src/shared/client/rsc.ts
864
+ // src/runtime/rsc.ts
739
865
  var import_web_streams_polyfill = require("web-streams-polyfill");
740
866
  function fixPayload(payload) {
741
867
  if (Array.isArray(payload)) {
@@ -801,56 +927,15 @@ function createRSCStream(rscName, data) {
801
927
  });
802
928
  }
803
929
 
804
- // src/shared/client/webpack-patterns.ts
805
- var NEXT_BUNDLE_PATH_RE = /\/_next\/\[.+\](?:%20| )/;
806
-
807
- // src/shared/client/script-loader.ts
808
- async function loadScripts(scripts, resolveClientUrl) {
809
- await Promise.all(
810
- scripts.map((script) => {
811
- return new Promise((resolve, reject) => {
812
- const newSrc = new URL(
813
- // remove the remote component bundle name identifier from the script src
814
- script.src.replace(NEXT_BUNDLE_PATH_RE, "/_next/"),
815
- location.origin
816
- ).href;
817
- const resolvedSrc = resolveClientUrl?.(newSrc) ?? newSrc;
818
- const newScript = document.createElement("script");
819
- newScript.onload = () => resolve();
820
- newScript.onerror = () => {
821
- const isProxied = isProxiedUrl(resolvedSrc);
822
- if (isProxied) {
823
- reject(
824
- new RemoteComponentsError(
825
- `Failed to load script "${newSrc}" via proxy "${resolvedSrc}". Ensure withRemoteComponentsHost middleware is configured and "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher. See: ${CORS_DOCS_URL}`
826
- )
827
- );
828
- } else {
829
- warnCrossOriginFetchError("ScriptLoader", newSrc);
830
- reject(
831
- new RemoteComponentsError(
832
- `Failed to load <script src="${newSrc}"> for Remote Component. Check the URL is correct.`
833
- )
834
- );
835
- }
836
- };
837
- newScript.src = resolvedSrc;
838
- newScript.async = true;
839
- document.head.appendChild(newScript);
840
- });
841
- })
842
- );
843
- }
844
-
845
- // src/shared/client/turbopack-patterns.ts
930
+ // src/runtime/turbopack/patterns.ts
846
931
  var REMOTE_SHARED_MARKER_RE = /(?:self|[a-z])\.TURBOPACK_REMOTE_SHARED/;
847
- var REMOTE_SHARED_ASSIGNMENT_RE = /\.TURBOPACK_REMOTE_SHARED=await (?:__turbopack_context__|e)\.A\((?<sharedModuleId>[0-9]+)\)/;
932
+ var REMOTE_SHARED_ASSIGNMENT_RE = /\.TURBOPACK_REMOTE_SHARED=await (?:__turbopack_context__|[a-z])\.A\((?<sharedModuleId>[0-9]+)\)/;
848
933
  var ASYNC_MODULE_LOADER_RE = /(?:__turbopack_context__|e)\.A\((?<asyncSharedModuleId>[0-9]+)\)/;
849
934
  var ASYNC_MODULE_RESOLVE_RE = /(?<ctx>__turbopack_context__|e)=>\{\k<ctx>\.v\((?<inner>parentImport|e)=>Promise\.resolve\(\)\.then\(\(\)=>\k<inner>\((?<sharedModuleId>[0-9]+)\)\)\)\}/;
850
935
  var ASYNC_MODULE_ALL_RE = /(?<ctx>__turbopack_context__|e)=>\{\k<ctx>\.v\((?<vCb>parentImport|t)=>Promise\.all\(\["[^"]+"\]\.map\((?<mapCb>chunk|t)=>\k<ctx>\.l\(\k<mapCb>\)\)\)\.then\(\(\)=>\k<vCb>\((?<sharedModuleId>[0-9]+)\)\)\)\}/;
851
936
  var TURBOPACK_GLOBAL_RE = /(?:globalThis|self)\s*(?:\.TURBOPACK|\[\s*["']TURBOPACK["']\s*\])/;
852
937
 
853
- // src/shared/client/chunk-loader.ts
938
+ // src/runtime/turbopack/chunk-loader.ts
854
939
  function createChunkLoader(runtime, resolveClientUrl) {
855
940
  return function __turbopack_chunk_load__(chunkId, scriptBundle) {
856
941
  logDebug("ChunkLoader", `Loading chunk: "${chunkId}"`);
@@ -910,11 +995,7 @@ function createChunkLoader(runtime, resolveClientUrl) {
910
995
  }).then(resolve).catch((error) => {
911
996
  const isProxied = isProxiedUrl(resolvedUrl);
912
997
  if (isProxied) {
913
- reject(
914
- new RemoteComponentsError(
915
- `Failed to load chunk "${url}" via proxy "${resolvedUrl}". Ensure withRemoteComponentsHost middleware is configured and "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher. See: ${CORS_DOCS_URL}`
916
- )
917
- );
998
+ reject(failedProxiedAssetError("chunk", url, resolvedUrl));
918
999
  } else {
919
1000
  warnCrossOriginFetchError("ChunkLoader", url);
920
1001
  reject(error);
@@ -1062,7 +1143,7 @@ async function handleTurbopackChunk(code, bundle, url) {
1062
1143
  }
1063
1144
  }
1064
1145
 
1065
- // src/shared/client/turbopack-module.ts
1146
+ // src/runtime/turbopack/module.ts
1066
1147
  function handleTurbopackModule(bundle, moduleId, id) {
1067
1148
  const self = globalThis;
1068
1149
  const bundleKey = getBundleKey(bundle);
@@ -1291,7 +1372,8 @@ function createTurbopackContext(bundle, exports, moduleExports, modules, moduleI
1291
1372
  };
1292
1373
  }
1293
1374
 
1294
- // src/shared/client/shared-modules.ts
1375
+ // src/runtime/turbopack/shared-modules.ts
1376
+ var DEDUPLICATION_WARNING = "This module will not be deduplicated \u2014 the remote may load its own copy, which can cause duplicate instance errors (e.g. invalid hook calls if React is loaded twice).";
1295
1377
  async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {}) {
1296
1378
  const self = globalThis;
1297
1379
  self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};
@@ -1342,7 +1424,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
1342
1424
  } else {
1343
1425
  logError(
1344
1426
  "SharedModules",
1345
- `Host shared module "${module2}" not found for ID ${id}`
1427
+ `Host shared module "${module2}" not found for ID ${id}. ${DEDUPLICATION_WARNING}`
1346
1428
  );
1347
1429
  }
1348
1430
  }
@@ -1359,7 +1441,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
1359
1441
  } else {
1360
1442
  logError(
1361
1443
  "SharedModules",
1362
- `Shared module "${module2}" not found for "${bundle}"`
1444
+ `Shared module "${module2}" not found for "${bundle}". ${DEDUPLICATION_WARNING}`
1363
1445
  );
1364
1446
  }
1365
1447
  }
@@ -1411,7 +1493,7 @@ function getSharedModule(bundle, id) {
1411
1493
  return null;
1412
1494
  }
1413
1495
 
1414
- // src/shared/client/webpack-adapter.ts
1496
+ // src/runtime/turbopack/webpack-runtime.ts
1415
1497
  async function setupWebpackRuntime(runtime, scripts = [], url = new URL(location.href), bundle, shared = {}, remoteShared = {}, resolveClientUrl) {
1416
1498
  const self = globalThis;
1417
1499
  if (!self.__remote_bundle_url__) {
@@ -1466,7 +1548,7 @@ function createModuleRequire(runtime) {
1466
1548
  id
1467
1549
  };
1468
1550
  const remoteRuntime = self.__remote_webpack_require__?.[bundle ?? "default"] ? self.__remote_webpack_require__[bundle ?? "default"]?.type || "webpack" : runtime;
1469
- logDebug("WebpackAdapter", `remoteRuntime: "${remoteRuntime}"`);
1551
+ logDebug("WebpackRuntime", `remoteRuntime: "${remoteRuntime}"`);
1470
1552
  try {
1471
1553
  if (remoteRuntime === RUNTIME_WEBPACK && bundle && moduleId) {
1472
1554
  return self.__remote_webpack_require__?.[bundle]?.(moduleId);
@@ -1482,7 +1564,7 @@ function createModuleRequire(runtime) {
1482
1564
  throw new Error(`Module "${id}" not found.`);
1483
1565
  } catch (requireError) {
1484
1566
  logWarn(
1485
- "WebpackAdapter",
1567
+ "WebpackRuntime",
1486
1568
  `Module require failed: ${String(requireError)}`
1487
1569
  );
1488
1570
  if (typeof self.__original_webpack_require__ !== "function") {
@@ -1494,7 +1576,7 @@ function createModuleRequire(runtime) {
1494
1576
  );
1495
1577
  }
1496
1578
  try {
1497
- logDebug("WebpackAdapter", "Falling back to original webpack require");
1579
+ logDebug("WebpackRuntime", "Falling back to original webpack require");
1498
1580
  return self.__original_webpack_require__(id);
1499
1581
  } catch (originalError) {
1500
1582
  throw new RemoteComponentsError(
@@ -1506,7 +1588,41 @@ function createModuleRequire(runtime) {
1506
1588
  };
1507
1589
  }
1508
1590
 
1509
- // src/shared/client/component-loader.ts
1591
+ // src/runtime/loaders/script-loader.ts
1592
+ async function loadScripts(scripts, resolveClientUrl) {
1593
+ await Promise.all(
1594
+ scripts.map((script) => {
1595
+ return new Promise((resolve, reject) => {
1596
+ const newSrc = new URL(
1597
+ // remove the remote component bundle name identifier from the script src
1598
+ script.src.replace(NEXT_BUNDLE_PATH_RE, "/_next/"),
1599
+ location.origin
1600
+ ).href;
1601
+ const resolvedSrc = resolveClientUrl?.(newSrc) ?? newSrc;
1602
+ const newScript = document.createElement("script");
1603
+ newScript.onload = () => resolve();
1604
+ newScript.onerror = () => {
1605
+ const isProxied = isProxiedUrl(resolvedSrc);
1606
+ if (isProxied) {
1607
+ reject(failedProxiedAssetError("script", newSrc, resolvedSrc));
1608
+ } else {
1609
+ warnCrossOriginFetchError("ScriptLoader", newSrc);
1610
+ reject(
1611
+ new RemoteComponentsError(
1612
+ `Failed to load <script src="${newSrc}"> for Remote Component. Check the URL is correct.`
1613
+ )
1614
+ );
1615
+ }
1616
+ };
1617
+ newScript.src = resolvedSrc;
1618
+ newScript.async = true;
1619
+ document.head.appendChild(newScript);
1620
+ });
1621
+ })
1622
+ );
1623
+ }
1624
+
1625
+ // src/runtime/loaders/component-loader.ts
1510
1626
  async function loadRemoteComponent({
1511
1627
  url,
1512
1628
  name,
@@ -1609,17 +1725,19 @@ async function loadRemoteComponent({
1609
1725
  };
1610
1726
  }
1611
1727
  }
1612
- async function loadRSCComponent(rscName, data) {
1613
- let createFromReadableStream;
1728
+ async function importCreateFromReadableStream() {
1614
1729
  try {
1615
- const { createFromReadableStream: _createFromReadableStream } = await import("next/dist/compiled/react-server-dom-webpack/client.browser");
1616
- createFromReadableStream = _createFromReadableStream;
1730
+ const { createFromReadableStream } = await import("next/dist/compiled/react-server-dom-webpack/client.browser");
1731
+ return createFromReadableStream;
1617
1732
  } catch {
1618
1733
  const {
1619
- default: { createFromReadableStream: _createFromReadableStream }
1734
+ default: { createFromReadableStream }
1620
1735
  } = await import("react-server-dom-webpack/client.browser");
1621
- createFromReadableStream = _createFromReadableStream;
1736
+ return createFromReadableStream;
1622
1737
  }
1738
+ }
1739
+ async function loadRSCComponent(rscName, data) {
1740
+ const createFromReadableStream = await importCreateFromReadableStream();
1623
1741
  if (typeof createFromReadableStream !== "function") {
1624
1742
  throw new RemoteComponentsError(
1625
1743
  'Failed to import "react-server-dom-webpack". Is Next.js installed correctly?'
@@ -1640,85 +1758,7 @@ function loadNextPagesComponent(bundle, route, nextData, name, container) {
1640
1758
  return { component };
1641
1759
  }
1642
1760
 
1643
- // src/shared/client/proxy-through-host.ts
1644
- function withRemoteSrc(resolveClientUrl, remoteSrc) {
1645
- const remoteOrigin = parseOrigin(remoteSrc);
1646
- return (url) => {
1647
- const urlOrigin = parseOrigin(url);
1648
- if (remoteOrigin && urlOrigin && urlOrigin !== remoteOrigin) {
1649
- return void 0;
1650
- }
1651
- return resolveClientUrl(remoteSrc, url);
1652
- };
1653
- }
1654
- function parseOrigin(url) {
1655
- try {
1656
- return new URL(url).origin;
1657
- } catch {
1658
- return void 0;
1659
- }
1660
- }
1661
- var proxyClientRequestsThroughHost = (remoteSrc, url) => {
1662
- if (typeof location === "undefined") {
1663
- return void 0;
1664
- }
1665
- const remoteOrigin = new URL(remoteSrc, location.href).origin;
1666
- if (remoteOrigin === location.origin) {
1667
- return void 0;
1668
- }
1669
- try {
1670
- const parsed = new URL(url, location.href);
1671
- if (parsed.origin === remoteOrigin) {
1672
- return generateProtectedRcFallbackSrc(url);
1673
- }
1674
- } catch {
1675
- }
1676
- return void 0;
1677
- };
1678
-
1679
- // src/shared/client/set-attributes-from-props.ts
1680
- var DOMAttributeNames = {
1681
- acceptCharset: "accept-charset",
1682
- className: "class",
1683
- htmlFor: "for",
1684
- httpEquiv: "http-equiv",
1685
- noModule: "noModule"
1686
- };
1687
- var ignoreProps = [
1688
- "onLoad",
1689
- "onReady",
1690
- "dangerouslySetInnerHTML",
1691
- "children",
1692
- "onError",
1693
- "strategy",
1694
- "stylesheets"
1695
- ];
1696
- function isBooleanScriptAttribute(attr) {
1697
- return ["async", "defer", "noModule"].includes(attr);
1698
- }
1699
- function setAttributesFromProps(el, props) {
1700
- for (const [p, value] of Object.entries(props)) {
1701
- if (!Object.hasOwn(props, p))
1702
- continue;
1703
- if (ignoreProps.includes(p))
1704
- continue;
1705
- if (value === void 0) {
1706
- continue;
1707
- }
1708
- const attr = DOMAttributeNames[p] || p.toLowerCase();
1709
- if (el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr)) {
1710
- el[attr] = Boolean(value);
1711
- } else {
1712
- el.setAttribute(attr, String(value));
1713
- }
1714
- if (value === false || el.tagName === "SCRIPT" && isBooleanScriptAttribute(attr) && (!value || value === "false")) {
1715
- el.setAttribute(attr, "");
1716
- el.removeAttribute(attr);
1717
- }
1718
- }
1719
- }
1720
-
1721
- // src/shared/client/static-loader.ts
1761
+ // src/runtime/loaders/static-loader.ts
1722
1762
  async function importViaCallback(absoluteSrc, resolveClientUrl) {
1723
1763
  const resolvedUrl = resolveClientUrl(absoluteSrc) ?? absoluteSrc;
1724
1764
  const fetchUrl = new URL(resolvedUrl, location.href).href;
@@ -1868,101 +1908,35 @@ async function loadStaticRemoteComponent(scripts, url, resolveClientUrl) {
1868
1908
  );
1869
1909
  }
1870
1910
 
1871
- // src/shared/contract/host-state.ts
1872
- function createHostState() {
1873
- return {
1874
- stage: "idle",
1875
- prevSrc: void 0,
1876
- prevUrl: void 0,
1877
- prevName: void 0,
1878
- prevIsRemoteComponent: false,
1879
- abortController: void 0
1880
- };
1881
- }
1882
-
1883
- // src/shared/contract/resolve-name-from-src.ts
1884
- function resolveNameFromSrc(src, defaultName) {
1885
- if (!src) {
1886
- return defaultName;
1887
- }
1888
- const hash = typeof src === "string" ? src : src.hash;
1889
- const hashIndex = hash.indexOf("#");
1890
- if (hashIndex < 0) {
1891
- return defaultName;
1892
- }
1893
- const name = hash.slice(hashIndex + 1);
1894
- return name || defaultName;
1895
- }
1896
-
1897
- // src/shared/ssr/fetch-headers.ts
1898
- function remoteFetchHeaders() {
1899
- return {
1900
- /**
1901
- * Authenticates deployment protection for the remote. Needed for SSR and SSG clients.
1902
- * If the remote component uses vercel deployment protection, ensure the host and remote vercel
1903
- * projects share a common automation bypass secret, and the shared secret is used as the
1904
- * VERCEL_AUTOMATION_BYPASS_SECRET env var in the host project.
1905
- */
1906
- ...typeof process === "object" && typeof process.env === "object" && typeof process.env.VERCEL_AUTOMATION_BYPASS_SECRET === "string" ? {
1907
- "x-vercel-protection-bypass": process.env.VERCEL_AUTOMATION_BYPASS_SECRET
1908
- } : {},
1909
- Accept: "text/html"
1910
- };
1911
- }
1911
+ // src/host/react/hooks/use-resolve-client-url.ts
1912
+ var import_react = require("react");
1913
+ var import_context = require("#internal/host/react/context");
1912
1914
 
1913
- // src/shared/ssr/fetch-with-hooks.ts
1914
- async function fetchWithHooks(url, additionalInit, options = {}) {
1915
- const {
1916
- onRequest,
1917
- onResponse,
1918
- abortController = new AbortController()
1919
- } = options;
1920
- const signal = abortController.signal;
1921
- const hookOptions = {
1922
- signal,
1923
- abort: (reason) => abortController.abort(reason)
1924
- };
1925
- const init = {
1926
- method: "GET",
1927
- headers: remoteFetchHeaders(),
1928
- signal,
1929
- ...additionalInit
1930
- };
1931
- let res = await onRequest?.(url, init, hookOptions);
1932
- if (!res) {
1933
- try {
1934
- res = await fetch(url, init);
1935
- } catch (error) {
1936
- warnCrossOriginFetchError("FetchRemoteComponent", url);
1937
- throw error;
1915
+ // src/runtime/url/resolve-client-url.ts
1916
+ function withRemoteSrc(resolveClientUrl, remoteSrc) {
1917
+ const remoteOrigin = parseOrigin(remoteSrc);
1918
+ return (url) => {
1919
+ const urlOrigin = parseOrigin(url);
1920
+ if (remoteOrigin && urlOrigin && urlOrigin !== remoteOrigin) {
1921
+ return void 0;
1938
1922
  }
1939
- }
1940
- const transformedRes = await onResponse?.(url, res, hookOptions);
1941
- if (transformedRes) {
1942
- res = transformedRes;
1943
- }
1944
- return res;
1923
+ return resolveClientUrl(remoteSrc, url);
1924
+ };
1945
1925
  }
1946
-
1947
- // src/shared/ssr/get-client-or-server-url.ts
1948
- function getClientOrServerUrl(src, serverFallback) {
1949
- const fallback = typeof location !== "undefined" ? location.href : serverFallback;
1950
- if (!src) {
1951
- return new URL(fallback);
1926
+ function parseOrigin(url) {
1927
+ try {
1928
+ return new URL(url).origin;
1929
+ } catch {
1930
+ return void 0;
1952
1931
  }
1953
- return typeof src === "string" ? new URL(src, fallback) : src;
1954
1932
  }
1955
1933
 
1956
- // src/react/hooks/use-resolve-client-url.ts
1957
- var import_react = require("react");
1958
- var import_context = require("#internal/react/context");
1959
-
1960
- // src/shared/client/default-resolve-client-url.ts
1934
+ // src/runtime/url/default-resolve-client-url.ts
1961
1935
  function bindResolveClientUrl(prop, remoteSrc) {
1962
1936
  return prop ? withRemoteSrc(prop, remoteSrc) : void 0;
1963
1937
  }
1964
1938
 
1965
- // src/react/hooks/use-resolve-client-url.ts
1939
+ // src/host/react/hooks/use-resolve-client-url.ts
1966
1940
  function useResolveClientUrl(prop, urlHref) {
1967
1941
  const { resolveClientUrl: contextValue } = (0, import_context.useRemoteComponentsContext)();
1968
1942
  const resolveClientUrl = prop ?? contextValue;
@@ -1972,7 +1946,7 @@ function useResolveClientUrl(prop, urlHref) {
1972
1946
  );
1973
1947
  }
1974
1948
 
1975
- // src/react/hooks/use-shadow-root.ts
1949
+ // src/host/react/hooks/use-shadow-root.ts
1976
1950
  var import_react2 = require("react");
1977
1951
  function useShadowRoot({
1978
1952
  isolate,
@@ -2021,7 +1995,7 @@ function useShadowRoot({
2021
1995
  return { shadowRoot, shadowRootContainerRef };
2022
1996
  }
2023
1997
 
2024
- // src/react/utils/extract-remote-html.ts
1998
+ // src/host/react/utils/extract-remote-html.ts
2025
1999
  var DUMMY_FALLBACK = "http://remote-components-dummy-fallback";
2026
2000
  function getRemoteComponentHtml(html) {
2027
2001
  if (typeof document === "undefined")
@@ -2043,14 +2017,13 @@ function getRemoteComponentHtml(html) {
2043
2017
  return "";
2044
2018
  }
2045
2019
 
2046
- // src/react/index.tsx
2047
- var import_context2 = require("#internal/react/context");
2020
+ // src/host/react/index.tsx
2048
2021
  var import_jsx_runtime2 = (
2049
2022
  // TODO: remove wrapper div by converting HTML to RSC or React tree
2050
2023
  require("react/jsx-runtime")
2051
2024
  );
2052
2025
  var import_react4 = require("react");
2053
- function RemoteComponent({
2026
+ function ConsumeRemoteComponent({
2054
2027
  src,
2055
2028
  isolate,
2056
2029
  mode = "open",
@@ -2072,7 +2045,9 @@ function RemoteComponent({
2072
2045
  () => resolveNameFromSrc(src, nameProp),
2073
2046
  [src, nameProp]
2074
2047
  );
2075
- const [data, setData] = (0, import_react3.useState)(null);
2048
+ const [data, setData] = (0, import_react3.useState)(
2049
+ null
2050
+ );
2076
2051
  const url = (0, import_react3.useMemo)(() => getClientOrServerUrl(src, DUMMY_FALLBACK), [src]);
2077
2052
  const resolveClientUrl = useResolveClientUrl(_resolveClientUrl, url.href);
2078
2053
  const id = url.origin === (typeof location !== "undefined" ? location.origin : DUMMY_FALLBACK) ? url.pathname : url.href;
@@ -2289,11 +2264,10 @@ function RemoteComponent({
2289
2264
  });
2290
2265
  self.__next_s = prevNextScripts;
2291
2266
  }
2292
- let rscName;
2267
+ const rscName = rsc ? `__remote_component_rsc_${escapeString(id)}_${escapeString(
2268
+ remoteName
2269
+ )}` : void 0;
2293
2270
  if (rsc) {
2294
- rscName = `__remote_component_rsc_${escapeString(
2295
- id
2296
- )}_${escapeString(remoteName)}`;
2297
2271
  rsc.textContent = rsc.textContent?.replace(
2298
2272
  new RegExp(`self\\["${remoteName}"\\]`, "g"),
2299
2273
  `self["${rscName}"]`
@@ -2332,10 +2306,7 @@ function RemoteComponent({
2332
2306
  }
2333
2307
  setData(newData);
2334
2308
  if (shadowRoot) {
2335
- let shadowRootHtml = component.innerHTML;
2336
- if (reset) {
2337
- shadowRootHtml = `<style data-remote-components-reset="">:host { all: initial; }</style>${shadowRootHtml}`;
2338
- }
2309
+ const shadowRootHtml = reset ? `<style data-remote-components-reset="">:host { all: initial; }</style>${component.innerHTML}` : component.innerHTML;
2339
2310
  shadowRoot.innerHTML = shadowRootHtml;
2340
2311
  htmlRef.current = null;
2341
2312
  setRemoteComponent(null);
@@ -2403,7 +2374,7 @@ function RemoteComponent({
2403
2374
  };
2404
2375
  }),
2405
2376
  shared: {
2406
- ...sharedPolyfills(userShared),
2377
+ ...sharedPolyfills(userShared, resolveClientUrl),
2407
2378
  ...userShared
2408
2379
  },
2409
2380
  remoteShared,
@@ -2575,8 +2546,6 @@ function RemoteComponent({
2575
2546
  }
2576
2547
  // Annotate the CommonJS export names for ESM import in node:
2577
2548
  0 && (module.exports = {
2578
- RemoteComponent,
2579
- RemoteComponentsProvider,
2580
- proxyClientRequestsThroughHost
2549
+ ConsumeRemoteComponent
2581
2550
  });
2582
- //# sourceMappingURL=index.cjs.map
2551
+ //# sourceMappingURL=react.cjs.map