remote-components 0.3.4 → 0.3.6

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 (153) hide show
  1. package/dist/app-63L5THIQ.js +12 -0
  2. package/dist/app-63L5THIQ.js.map +1 -0
  3. package/dist/app-A5QE7XRH.cjs +12 -0
  4. package/dist/app-A5QE7XRH.cjs.map +1 -0
  5. package/dist/chunk-2VQGCACH.js +190 -0
  6. package/dist/chunk-2VQGCACH.js.map +1 -0
  7. package/dist/chunk-42N2ZLE2.js +703 -0
  8. package/dist/chunk-42N2ZLE2.js.map +1 -0
  9. package/dist/chunk-6IUP26UK.cjs +57 -0
  10. package/dist/chunk-6IUP26UK.cjs.map +1 -0
  11. package/dist/chunk-7MVFHOIP.cjs +60 -0
  12. package/dist/chunk-7MVFHOIP.cjs.map +1 -0
  13. package/dist/chunk-CREXMFMF.cjs +155 -0
  14. package/dist/chunk-CREXMFMF.cjs.map +1 -0
  15. package/dist/chunk-CTUJSWCM.js +215 -0
  16. package/dist/chunk-CTUJSWCM.js.map +1 -0
  17. package/dist/chunk-ENYGL5CO.js +11 -0
  18. package/dist/chunk-ENYGL5CO.js.map +1 -0
  19. package/dist/chunk-ER73O65F.cjs +703 -0
  20. package/dist/chunk-ER73O65F.cjs.map +1 -0
  21. package/dist/chunk-F44NODUS.cjs +709 -0
  22. package/dist/chunk-F44NODUS.cjs.map +1 -0
  23. package/dist/chunk-GAXJTFBV.js +20 -0
  24. package/dist/chunk-GAXJTFBV.js.map +1 -0
  25. package/dist/chunk-HNZVEIKN.js +358 -0
  26. package/dist/chunk-HNZVEIKN.js.map +1 -0
  27. package/dist/chunk-KE7QPAQ4.cjs +21 -0
  28. package/dist/chunk-KE7QPAQ4.cjs.map +1 -0
  29. package/dist/chunk-KEPHL25S.js +60 -0
  30. package/dist/chunk-KEPHL25S.js.map +1 -0
  31. package/dist/chunk-KKBEMQU7.cjs +670 -0
  32. package/dist/chunk-KKBEMQU7.cjs.map +1 -0
  33. package/dist/chunk-KYJWRZ2B.js +709 -0
  34. package/dist/chunk-KYJWRZ2B.js.map +1 -0
  35. package/dist/chunk-N5VQR2PW.cjs +215 -0
  36. package/dist/chunk-N5VQR2PW.cjs.map +1 -0
  37. package/dist/chunk-OO4AMJWO.js +155 -0
  38. package/dist/chunk-OO4AMJWO.js.map +1 -0
  39. package/dist/chunk-R4QFK5TN.cjs +358 -0
  40. package/dist/chunk-R4QFK5TN.cjs.map +1 -0
  41. package/dist/chunk-RUWR74XQ.cjs +152 -0
  42. package/dist/chunk-RUWR74XQ.cjs.map +1 -0
  43. package/dist/chunk-S2A4TFLS.js +152 -0
  44. package/dist/chunk-S2A4TFLS.js.map +1 -0
  45. package/dist/chunk-SHFJ5OQA.cjs +11 -0
  46. package/dist/chunk-SHFJ5OQA.cjs.map +1 -0
  47. package/dist/chunk-TCFLEBQM.cjs +20 -0
  48. package/dist/chunk-TCFLEBQM.cjs.map +1 -0
  49. package/dist/chunk-W5ESPGHH.js +670 -0
  50. package/dist/chunk-W5ESPGHH.js.map +1 -0
  51. package/dist/chunk-X6YKUJKH.js +21 -0
  52. package/dist/chunk-X6YKUJKH.js.map +1 -0
  53. package/dist/chunk-XCFYWSLD.cjs +190 -0
  54. package/dist/chunk-XCFYWSLD.cjs.map +1 -0
  55. package/dist/chunk-ZPMTZ3KJ.js +57 -0
  56. package/dist/chunk-ZPMTZ3KJ.js.map +1 -0
  57. package/dist/config/nextjs.cjs +76 -351
  58. package/dist/config/nextjs.cjs.map +1 -1
  59. package/dist/config/nextjs.js +26 -266
  60. package/dist/config/nextjs.js.map +1 -1
  61. package/dist/config/webpack.cjs +12 -240
  62. package/dist/config/webpack.cjs.map +1 -1
  63. package/dist/config/webpack.js +6 -207
  64. package/dist/config/webpack.js.map +1 -1
  65. package/dist/host/html.cjs +139 -2447
  66. package/dist/host/html.cjs.map +1 -1
  67. package/dist/host/html.js +66 -2345
  68. package/dist/host/html.js.map +1 -1
  69. package/dist/host/nextjs/app/client-only.cjs +53 -2825
  70. package/dist/host/nextjs/app/client-only.cjs.map +1 -1
  71. package/dist/host/nextjs/app/client-only.js +31 -2780
  72. package/dist/host/nextjs/app/client-only.js.map +1 -1
  73. package/dist/host/nextjs/app.cjs +34 -2
  74. package/dist/host/nextjs/app.cjs.map +1 -1
  75. package/dist/host/nextjs/app.js +35 -3
  76. package/dist/host/nextjs/app.js.map +1 -1
  77. package/dist/host/proxy/client.cjs +8 -38
  78. package/dist/host/proxy/client.cjs.map +1 -1
  79. package/dist/host/proxy/client.js +4 -7
  80. package/dist/host/proxy/client.js.map +1 -1
  81. package/dist/host/proxy.cjs +19 -56
  82. package/dist/host/proxy.cjs.map +1 -1
  83. package/dist/host/proxy.js +8 -20
  84. package/dist/host/proxy.js.map +1 -1
  85. package/dist/host/react.cjs +17 -2756
  86. package/dist/host/react.cjs.map +1 -1
  87. package/dist/host/react.js +13 -2723
  88. package/dist/host/react.js.map +1 -1
  89. package/dist/internal/host/nextjs/app-client.cjs +38 -24
  90. package/dist/internal/host/nextjs/app-client.cjs.map +1 -1
  91. package/dist/internal/host/nextjs/app-client.js +38 -24
  92. package/dist/internal/host/nextjs/app-client.js.map +1 -1
  93. package/dist/internal/host/nextjs/remote-component-links.cjs +24 -13
  94. package/dist/internal/host/nextjs/remote-component-links.cjs.map +1 -1
  95. package/dist/internal/host/nextjs/remote-component-links.d.ts +3 -0
  96. package/dist/internal/host/nextjs/remote-component-links.js +24 -13
  97. package/dist/internal/host/nextjs/remote-component-links.js.map +1 -1
  98. package/dist/internal/host/server/fetch-remote-component.cjs +1 -18
  99. package/dist/internal/host/server/fetch-remote-component.cjs.map +1 -1
  100. package/dist/internal/host/server/fetch-remote-component.js +1 -18
  101. package/dist/internal/host/server/fetch-remote-component.js.map +1 -1
  102. package/dist/internal/host/shared/lifecycle.cjs +69 -0
  103. package/dist/internal/host/shared/lifecycle.cjs.map +1 -0
  104. package/dist/internal/host/shared/lifecycle.d.ts +34 -0
  105. package/dist/internal/host/shared/lifecycle.js +44 -0
  106. package/dist/internal/host/shared/lifecycle.js.map +1 -0
  107. package/dist/internal/host/shared/pipeline.cjs +222 -0
  108. package/dist/internal/host/shared/pipeline.cjs.map +1 -0
  109. package/dist/internal/host/shared/pipeline.d.ts +153 -0
  110. package/dist/internal/host/shared/pipeline.js +200 -0
  111. package/dist/internal/host/shared/pipeline.js.map +1 -0
  112. package/dist/internal/runtime/loaders/component-loader.cjs +5 -2
  113. package/dist/internal/runtime/loaders/component-loader.cjs.map +1 -1
  114. package/dist/internal/runtime/loaders/component-loader.js +5 -2
  115. package/dist/internal/runtime/loaders/component-loader.js.map +1 -1
  116. package/dist/internal/runtime/turbopack/patterns.cjs +1 -1
  117. package/dist/internal/runtime/turbopack/patterns.cjs.map +1 -1
  118. package/dist/internal/runtime/turbopack/patterns.js +1 -1
  119. package/dist/internal/runtime/turbopack/patterns.js.map +1 -1
  120. package/dist/internal/runtime/turbopack/remote-scope-setup.cjs.map +1 -1
  121. package/dist/internal/runtime/turbopack/remote-scope-setup.js.map +1 -1
  122. package/dist/internal/runtime/turbopack/remote-scope.cjs +1 -5
  123. package/dist/internal/runtime/turbopack/remote-scope.cjs.map +1 -1
  124. package/dist/internal/runtime/turbopack/remote-scope.js +1 -5
  125. package/dist/internal/runtime/turbopack/remote-scope.js.map +1 -1
  126. package/dist/internal/utils.cjs +1 -1
  127. package/dist/internal/utils.cjs.map +1 -1
  128. package/dist/internal/utils.d.ts +5 -5
  129. package/dist/internal/utils.js +1 -1
  130. package/dist/internal/utils.js.map +1 -1
  131. package/dist/remote/html.cjs +15 -314
  132. package/dist/remote/html.cjs.map +1 -1
  133. package/dist/remote/html.js +7 -305
  134. package/dist/remote/html.js.map +1 -1
  135. package/dist/remote/middleware.cjs +16 -41
  136. package/dist/remote/middleware.cjs.map +1 -1
  137. package/dist/script-6W5JRBZK.cjs +26 -0
  138. package/dist/script-6W5JRBZK.cjs.map +1 -0
  139. package/dist/script-IFEBOLIA.js +26 -0
  140. package/dist/script-IFEBOLIA.js.map +1 -0
  141. package/dist/static-loader-X4TSF5KW.js +11 -0
  142. package/dist/static-loader-X4TSF5KW.js.map +1 -0
  143. package/dist/static-loader-ZYD5BO4D.cjs +11 -0
  144. package/dist/static-loader-ZYD5BO4D.cjs.map +1 -0
  145. package/dist/turbopack-NPGO3MWS.js +55 -0
  146. package/dist/turbopack-NPGO3MWS.js.map +1 -0
  147. package/dist/turbopack-WRMKPNN4.cjs +55 -0
  148. package/dist/turbopack-WRMKPNN4.cjs.map +1 -0
  149. package/dist/webpack-DUBHPYD6.js +92 -0
  150. package/dist/webpack-DUBHPYD6.js.map +1 -0
  151. package/dist/webpack-KSCMCL7M.cjs +92 -0
  152. package/dist/webpack-KSCMCL7M.cjs.map +1 -0
  153. package/package.json +10 -3
@@ -1,210 +1,9 @@
1
- // src/config/webpack/plugins/conditional-exec.ts
2
- var ConditionalExecPlugin = class {
3
- appName;
4
- constructor(appName) {
5
- this.appName = appName;
6
- }
7
- apply(compiler) {
8
- const { Compilation, sources } = compiler.webpack;
9
- compiler.hooks.thisCompilation.tap(
10
- "ConditionalExecPlugin",
11
- (compilation) => {
12
- compilation.hooks.processAssets.tap(
13
- {
14
- name: "ConditionalExecPlugin",
15
- stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS
16
- },
17
- (assets) => {
18
- for (const [name, source] of Object.entries(assets)) {
19
- if (name.endsWith(".js")) {
20
- const patchedSource = source.source().toString().replace(
21
- `var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))`,
22
- `var __webpack_exec__ = (moduleId) => { if (globalThis.__DISABLE_WEBPACK_EXEC__ && globalThis.__DISABLE_WEBPACK_EXEC__["${this.appName}"]) return; return __webpack_require__(__webpack_require__.s = moduleId); }`
23
- );
24
- compilation.updateAsset(
25
- name,
26
- new sources.RawSource(patchedSource)
27
- );
28
- }
29
- }
30
- }
31
- );
32
- }
33
- );
34
- }
35
- };
36
-
37
- // src/config/webpack/plugins/module-id-embed.ts
38
- import { relative } from "node:path";
39
-
40
- // src/config/webpack/plugins/module-id-embed-runtime-module.ts
41
- function createModuleIdEmbedRuntimeModule(webpack) {
42
- return class ModuleIdEmbedRuntimeModule extends webpack.RuntimeModule {
43
- appName;
44
- moduleMap;
45
- constructor(appName, moduleMap) {
46
- super("remote-webpack-module-id-embed");
47
- this.appName = appName;
48
- this.moduleMap = moduleMap;
49
- }
50
- generate() {
51
- return `globalThis.__remote_webpack_module_map__ = globalThis.__remote_webpack_module_map__ || {}; globalThis.__remote_webpack_module_map__["${this.appName}"] = ${JSON.stringify(this.moduleMap)};`;
52
- }
53
- };
54
- }
55
-
56
- // src/config/webpack/plugins/module-id-embed.ts
57
- var cwd = process.cwd();
58
- var ModuleIdEmbedPlugin = class {
59
- appName;
60
- includeAllModules;
61
- isServer;
62
- constructor(appName, options) {
63
- this.appName = appName;
64
- this.includeAllModules = options?.includeAllModules ?? false;
65
- this.isServer = options?.isServer ?? false;
66
- }
67
- apply(compiler) {
68
- const ModuleIdEmbedRuntimeModule = createModuleIdEmbedRuntimeModule(
69
- compiler.webpack
70
- );
71
- compiler.hooks.thisCompilation.tap("ModuleIdEmbedPlugin", (compilation) => {
72
- const moduleMap = {};
73
- compilation.hooks.runtimeRequirementInTree.for(compiler.webpack.RuntimeGlobals.require).tap("ModuleIdEmbedPlugin", (chunk, set) => {
74
- for (const mod of compilation.modules) {
75
- const id = compilation.chunkGraph.getModuleId(mod);
76
- if (id && (this.includeAllModules || mod.layer?.endsWith("browser") || !this.isServer && mod.layer === null)) {
77
- const normalModule = mod;
78
- if (normalModule.resource || normalModule.request) {
79
- moduleMap[relative(cwd, normalModule.resource || normalModule.request)] = id;
80
- }
81
- }
82
- }
83
- if (Object.keys(moduleMap).length > 0) {
84
- compilation.addRuntimeModule(
85
- chunk,
86
- new ModuleIdEmbedRuntimeModule(
87
- this.appName,
88
- moduleMap
89
- )
90
- );
91
- set.add(compiler.webpack.RuntimeGlobals.require);
92
- }
93
- });
94
- });
95
- }
96
- };
97
-
98
- // src/config/webpack/plugins/patch-require.ts
99
- var PatchRequirePlugin = class {
100
- appName;
101
- constructor(appName) {
102
- this.appName = appName;
103
- }
104
- apply(compiler) {
105
- const { sources } = compiler.webpack;
106
- compiler.hooks.thisCompilation.tap("PatchRequirePlugin", (compilation) => {
107
- compilation.mainTemplate.hooks.requireExtensions.tap(
108
- "PatchRequirePlugin",
109
- (source) => {
110
- return new sources.ConcatSource(
111
- source,
112
- `const __webpack_require_orig__ = __webpack_require__;
113
- const REMOTE_RE = /\\[(?<bundle>[^\\]]+)\\] (?<id>.*)/;
114
- __webpack_require__ = function __remote_webpack_require__(remoteId) {
115
- const match = REMOTE_RE.exec(remoteId);
116
- const bundle = match?.groups?.bundle;
117
- const id = match?.groups?.id;
118
- if (!(id && bundle)) {
119
- return __webpack_require_orig__(remoteId);
120
- }
121
- if (typeof self.__remote_webpack_require__?.[bundle] !== 'function') {
122
- const error = new Error(\`Remote Components are not available in "\${bundle}". Did you forget to wrap the Next.js config with \\\`withRemoteComponentsConfig\\\` on both host and remote?\`);
123
- error.name = 'RemoteComponentsError';
124
- error.code = 'REMOTE_COMPONENTS_ERROR';
125
- throw error;
126
- }
127
- return self.__remote_webpack_require__[bundle](self.__remote_webpack_require__[bundle].type === 'turbopack' ? remoteId : id);
128
- };
129
- Object.assign(__webpack_require__, __webpack_require_orig__);
130
- const __webpack_require_l__ = __webpack_require__.l;
131
- __webpack_require__.l = function __remote_webpack_require_l__(url, done, key, chunkId) {
132
- const match = REMOTE_RE.exec(chunkId);
133
- const bundle = match?.groups?.bundle;
134
- const id = match?.groups?.id;
135
- if (!(id && bundle)) {
136
- // __remote_bundle_url__[appName] is the *host app's own* asset base URL
137
- // (set by the HTML host or setupWebpackRuntime). It is NOT a remote
138
- // bundle URL \u2014 it just ensures the host's own chunks resolve correctly
139
- // when the page is served from a CDN or different origin.
140
- return __webpack_require_l__(new URL(url, globalThis.__remote_bundle_url__?.["${this.appName}"] ?? location.origin).href, done, key, chunkId);
141
- }
142
- return done();
143
- };
144
- const __webpack_require_o__ = __webpack_require__.o;
145
- __webpack_require__.o = function __remote_webpack_require_o__(installedChunks, chunkId) {
146
- const match = REMOTE_RE.exec(chunkId);
147
- const bundle = match?.groups?.bundle;
148
- const id = match?.groups?.id;
149
- if (!(id && bundle)) {
150
- return __webpack_require_o__(installedChunks, chunkId);
151
- }
152
- return installedChunks[chunkId] = 0;
153
- };
154
- const __webpack_require_e__ = __webpack_require__.e;
155
- __webpack_require__.e = function __remote_webpack_require_e__(chunkId) {
156
- const match = REMOTE_RE.exec(chunkId);
157
- const bundle = match?.groups?.bundle;
158
- const id = match?.groups?.id;
159
- if (!(id && bundle)) {
160
- return __webpack_require_e__(chunkId);
161
- }
162
- return Promise.resolve([]);
163
- };`
164
- ).source().toString();
165
- }
166
- );
167
- });
168
- }
169
- };
170
-
171
- // src/config/webpack/plugins/remote-webpack-require-runtime-module.ts
172
- function createRemoteWebpackRequireRuntimeModule(webpack) {
173
- return class RemoteWebpackRequireRuntimeModule extends webpack.RuntimeModule {
174
- appName;
175
- constructor(appName) {
176
- super("remote-webpack-require");
177
- this.appName = appName;
178
- }
179
- generate() {
180
- return `globalThis.__remote_webpack_require__ = globalThis.__remote_webpack_require__ || {}; globalThis.__remote_webpack_require__["${this.appName}"] = __webpack_require__;`;
181
- }
182
- };
183
- }
184
-
185
- // src/config/webpack/plugins/remote-webpack-require.ts
186
- var RemoteWebpackRequirePlugin = class {
187
- appName;
188
- constructor(appName) {
189
- this.appName = appName;
190
- }
191
- apply(compiler) {
192
- const RemoteWebpackRequireRuntimeModule = createRemoteWebpackRequireRuntimeModule(compiler.webpack);
193
- compiler.hooks.thisCompilation.tap(
194
- "RemoteWebpackRequirePlugin",
195
- (compilation) => {
196
- compilation.hooks.runtimeRequirementInTree.for("__webpack_require__").tap("RemoteWebpackRequirePlugin", (chunk) => {
197
- compilation.addRuntimeModule(
198
- chunk,
199
- new RemoteWebpackRequireRuntimeModule(
200
- this.appName
201
- )
202
- );
203
- });
204
- }
205
- );
206
- }
207
- };
1
+ import {
2
+ ConditionalExecPlugin,
3
+ ModuleIdEmbedPlugin,
4
+ PatchRequirePlugin,
5
+ RemoteWebpackRequirePlugin
6
+ } from "../chunk-CTUJSWCM.js";
208
7
 
209
8
  // src/config/webpack/index.ts
210
9
  var RemoteComponentsWebpackPlugin = class {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/webpack/plugins/conditional-exec.ts","../../src/config/webpack/plugins/module-id-embed.ts","../../src/config/webpack/plugins/module-id-embed-runtime-module.ts","../../src/config/webpack/plugins/patch-require.ts","../../src/config/webpack/plugins/remote-webpack-require-runtime-module.ts","../../src/config/webpack/plugins/remote-webpack-require.ts","../../src/config/webpack/index.ts"],"sourcesContent":["import type { Compiler } from 'webpack';\n\nexport class ConditionalExecPlugin {\n appName: string;\n\n constructor(appName: string) {\n this.appName = appName;\n }\n\n apply(compiler: Compiler) {\n const { Compilation, sources } = compiler.webpack;\n\n compiler.hooks.thisCompilation.tap(\n 'ConditionalExecPlugin',\n (compilation) => {\n compilation.hooks.processAssets.tap(\n {\n name: 'ConditionalExecPlugin',\n stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONS,\n },\n (assets) => {\n for (const [name, source] of Object.entries(assets)) {\n if (name.endsWith('.js')) {\n const patchedSource = source\n .source()\n .toString()\n .replace(\n `var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))`,\n `var __webpack_exec__ = (moduleId) => { if (globalThis.__DISABLE_WEBPACK_EXEC__ && globalThis.__DISABLE_WEBPACK_EXEC__[\"${this.appName}\"]) return; return __webpack_require__(__webpack_require__.s = moduleId); }`,\n );\n compilation.updateAsset(\n name,\n new sources.RawSource(patchedSource),\n );\n }\n }\n },\n );\n },\n );\n }\n}\n","import { relative } from 'node:path';\nimport type { Compiler, NormalModule, RuntimeModule } from 'webpack';\nimport { createModuleIdEmbedRuntimeModule } from './module-id-embed-runtime-module';\n\nconst cwd = process.cwd();\n\nexport class ModuleIdEmbedPlugin {\n appName: string;\n includeAllModules: boolean;\n isServer: boolean;\n\n constructor(\n appName: string,\n options?: { includeAllModules?: boolean; isServer?: boolean },\n ) {\n this.appName = appName;\n this.includeAllModules = options?.includeAllModules ?? false;\n this.isServer = options?.isServer ?? false;\n }\n\n apply(compiler: Compiler) {\n const ModuleIdEmbedRuntimeModule = createModuleIdEmbedRuntimeModule(\n compiler.webpack,\n );\n\n compiler.hooks.thisCompilation.tap('ModuleIdEmbedPlugin', (compilation) => {\n const moduleMap = {} as Record<string, string | number>;\n\n compilation.hooks.runtimeRequirementInTree\n .for(compiler.webpack.RuntimeGlobals.require)\n .tap('ModuleIdEmbedPlugin', (chunk, set) => {\n for (const mod of compilation.modules) {\n const id = compilation.chunkGraph.getModuleId(mod);\n if (\n id &&\n (this.includeAllModules ||\n mod.layer?.endsWith('browser') ||\n (!this.isServer && mod.layer === null))\n ) {\n const normalModule = mod as NormalModule;\n if (normalModule.resource || normalModule.request) {\n moduleMap[\n relative(cwd, normalModule.resource || normalModule.request)\n ] = id;\n }\n }\n }\n\n if (Object.keys(moduleMap).length > 0) {\n compilation.addRuntimeModule(\n chunk,\n new ModuleIdEmbedRuntimeModule(\n this.appName,\n moduleMap,\n ) as unknown as RuntimeModule,\n );\n\n set.add(compiler.webpack.RuntimeGlobals.require);\n }\n });\n });\n }\n}\n","export function createModuleIdEmbedRuntimeModule(webpack: {\n RuntimeModule: new (name: string, stage?: number) => object;\n}) {\n return class ModuleIdEmbedRuntimeModule extends webpack.RuntimeModule {\n appName: string;\n moduleMap: Record<string | number, unknown>;\n\n constructor(appName: string, moduleMap: Record<string | number, unknown>) {\n super('remote-webpack-module-id-embed');\n this.appName = appName;\n this.moduleMap = moduleMap;\n }\n\n generate(): null | string {\n return `globalThis.__remote_webpack_module_map__ = globalThis.__remote_webpack_module_map__ || {}; globalThis.__remote_webpack_module_map__[\"${this.appName}\"] = ${JSON.stringify(this.moduleMap)};`;\n }\n };\n}\n","import type { Compiler } from 'webpack';\n\n// This plugin patches the webpack require function to support loading remote components in Next.js\nexport class PatchRequirePlugin {\n appName: string;\n\n constructor(appName: string) {\n this.appName = appName;\n }\n\n apply(compiler: Compiler) {\n const { sources } = compiler.webpack;\n\n compiler.hooks.thisCompilation.tap('PatchRequirePlugin', (compilation) => {\n compilation.mainTemplate.hooks.requireExtensions.tap(\n 'PatchRequirePlugin',\n (source) => {\n return new sources.ConcatSource(\n source,\n `const __webpack_require_orig__ = __webpack_require__;\nconst REMOTE_RE = /\\\\[(?<bundle>[^\\\\]]+)\\\\] (?<id>.*)/;\n__webpack_require__ = function __remote_webpack_require__(remoteId) {\n const match = REMOTE_RE.exec(remoteId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n return __webpack_require_orig__(remoteId);\n }\n if (typeof self.__remote_webpack_require__?.[bundle] !== 'function') {\n const error = new Error(\\`Remote Components are not available in \"\\${bundle}\". Did you forget to wrap the Next.js config with \\\\\\`withRemoteComponentsConfig\\\\\\` on both host and remote?\\`);\n error.name = 'RemoteComponentsError';\n error.code = 'REMOTE_COMPONENTS_ERROR';\n throw error;\n }\n return self.__remote_webpack_require__[bundle](self.__remote_webpack_require__[bundle].type === 'turbopack' ? remoteId : id);\n};\nObject.assign(__webpack_require__, __webpack_require_orig__);\nconst __webpack_require_l__ = __webpack_require__.l;\n__webpack_require__.l = function __remote_webpack_require_l__(url, done, key, chunkId) {\n const match = REMOTE_RE.exec(chunkId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n // __remote_bundle_url__[appName] is the *host app's own* asset base URL\n // (set by the HTML host or setupWebpackRuntime). It is NOT a remote\n // bundle URL — it just ensures the host's own chunks resolve correctly\n // when the page is served from a CDN or different origin.\n return __webpack_require_l__(new URL(url, globalThis.__remote_bundle_url__?.[\"${this.appName}\"] ?? location.origin).href, done, key, chunkId);\n }\n return done();\n};\nconst __webpack_require_o__ = __webpack_require__.o;\n__webpack_require__.o = function __remote_webpack_require_o__(installedChunks, chunkId) {\n const match = REMOTE_RE.exec(chunkId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n return __webpack_require_o__(installedChunks, chunkId);\n }\n return installedChunks[chunkId] = 0;\n};\nconst __webpack_require_e__ = __webpack_require__.e;\n__webpack_require__.e = function __remote_webpack_require_e__(chunkId) {\n const match = REMOTE_RE.exec(chunkId);\n const bundle = match?.groups?.bundle;\n const id = match?.groups?.id;\n if (!(id && bundle)) {\n return __webpack_require_e__(chunkId);\n }\n return Promise.resolve([]);\n};`,\n )\n .source()\n .toString();\n },\n );\n });\n }\n}\n","export function createRemoteWebpackRequireRuntimeModule(webpack: {\n RuntimeModule: new (name: string, stage?: number) => object;\n}) {\n return class RemoteWebpackRequireRuntimeModule extends webpack.RuntimeModule {\n appName: string;\n\n constructor(appName: string) {\n super('remote-webpack-require');\n this.appName = appName;\n }\n\n generate(): null | string {\n return `globalThis.__remote_webpack_require__ = globalThis.__remote_webpack_require__ || {}; globalThis.__remote_webpack_require__[\"${this.appName}\"] = __webpack_require__;`;\n }\n };\n}\n","import type { Compiler, RuntimeModule } from 'webpack';\nimport { createRemoteWebpackRequireRuntimeModule } from './remote-webpack-require-runtime-module';\n\nexport class RemoteWebpackRequirePlugin {\n appName: string;\n\n constructor(appName: string) {\n this.appName = appName;\n }\n\n apply(compiler: Compiler) {\n const RemoteWebpackRequireRuntimeModule =\n createRemoteWebpackRequireRuntimeModule(compiler.webpack);\n\n compiler.hooks.thisCompilation.tap(\n 'RemoteWebpackRequirePlugin',\n (compilation) => {\n compilation.hooks.runtimeRequirementInTree\n .for('__webpack_require__')\n .tap('RemoteWebpackRequirePlugin', (chunk) => {\n compilation.addRuntimeModule(\n chunk,\n new RemoteWebpackRequireRuntimeModule(\n this.appName,\n ) as unknown as RuntimeModule,\n );\n });\n },\n );\n }\n}\n","import type { Compiler } from 'webpack';\nimport { ConditionalExecPlugin } from './plugins/conditional-exec';\nimport { ModuleIdEmbedPlugin } from './plugins/module-id-embed';\nimport { PatchRequirePlugin } from './plugins/patch-require';\nimport { RemoteWebpackRequirePlugin } from './plugins/remote-webpack-require';\n\nexport type RemoteComponentsWebpackPluginOptions = {\n appName: string;\n chunkLoadingGlobal?: string;\n};\n\nexport class RemoteComponentsWebpackPlugin {\n private readonly appName: string;\n private readonly chunkLoadingGlobal?: string;\n\n constructor({\n appName,\n chunkLoadingGlobal,\n }: RemoteComponentsWebpackPluginOptions) {\n this.appName = appName;\n this.chunkLoadingGlobal = chunkLoadingGlobal;\n }\n\n apply(compiler: Compiler) {\n new RemoteWebpackRequirePlugin(this.appName).apply(compiler);\n new ModuleIdEmbedPlugin(this.appName, { includeAllModules: true }).apply(\n compiler,\n );\n new ConditionalExecPlugin(this.appName).apply(compiler);\n new PatchRequirePlugin(this.appName).apply(compiler);\n\n if (compiler.options.output) {\n compiler.options.output.chunkLoadingGlobal =\n this.chunkLoadingGlobal ??\n compiler.options.output.chunkLoadingGlobal ??\n `__remote_chunk_loading_global_${this.appName}__`;\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/config/webpack/index.ts"],"sourcesContent":["import type { Compiler } from 'webpack';\nimport { ConditionalExecPlugin } from './plugins/conditional-exec';\nimport { ModuleIdEmbedPlugin } from './plugins/module-id-embed';\nimport { PatchRequirePlugin } from './plugins/patch-require';\nimport { RemoteWebpackRequirePlugin } from './plugins/remote-webpack-require';\n\nexport type RemoteComponentsWebpackPluginOptions = {\n appName: string;\n chunkLoadingGlobal?: string;\n};\n\nexport class RemoteComponentsWebpackPlugin {\n private readonly appName: string;\n private readonly chunkLoadingGlobal?: string;\n\n constructor({\n appName,\n chunkLoadingGlobal,\n }: RemoteComponentsWebpackPluginOptions) {\n this.appName = appName;\n this.chunkLoadingGlobal = chunkLoadingGlobal;\n }\n\n apply(compiler: Compiler) {\n new RemoteWebpackRequirePlugin(this.appName).apply(compiler);\n new ModuleIdEmbedPlugin(this.appName, { includeAllModules: true }).apply(\n compiler,\n );\n new ConditionalExecPlugin(this.appName).apply(compiler);\n new PatchRequirePlugin(this.appName).apply(compiler);\n\n if (compiler.options.output) {\n compiler.options.output.chunkLoadingGlobal =\n this.chunkLoadingGlobal ??\n compiler.options.output.chunkLoadingGlobal ??\n `__remote_chunk_loading_global_${this.appName}__`;\n }\n }\n}\n"],"mappings":";;;;;;;;AAWO,IAAM,gCAAN,MAAoC;AAAA,EACxB;AAAA,EACA;AAAA,EAEjB,YAAY;AAAA,IACV;AAAA,IACA;AAAA,EACF,GAAyC;AACvC,SAAK,UAAU;AACf,SAAK,qBAAqB;AAAA,EAC5B;AAAA,EAEA,MAAM,UAAoB;AACxB,QAAI,2BAA2B,KAAK,OAAO,EAAE,MAAM,QAAQ;AAC3D,QAAI,oBAAoB,KAAK,SAAS,EAAE,mBAAmB,KAAK,CAAC,EAAE;AAAA,MACjE;AAAA,IACF;AACA,QAAI,sBAAsB,KAAK,OAAO,EAAE,MAAM,QAAQ;AACtD,QAAI,mBAAmB,KAAK,OAAO,EAAE,MAAM,QAAQ;AAEnD,QAAI,SAAS,QAAQ,QAAQ;AAC3B,eAAS,QAAQ,OAAO,qBACtB,KAAK,sBACL,SAAS,QAAQ,OAAO,sBACxB,iCAAiC,KAAK;AAAA,IAC1C;AAAA,EACF;AACF;","names":[]}