@module-federation/nextjs-mf 8.8.56 → 8.8.57

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 (143) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/_virtual/_rolldown/runtime.js +29 -0
  3. package/dist/_virtual/_rolldown/runtime.mjs +8 -0
  4. package/dist/client/UrlNode.js +89 -147
  5. package/dist/client/UrlNode.js.map +1 -1
  6. package/dist/client/UrlNode.mjs +91 -0
  7. package/dist/client/UrlNode.mjs.map +1 -0
  8. package/dist/src/federation-noop.d.mts +1 -0
  9. package/dist/src/federation-noop.d.ts +1 -0
  10. package/dist/src/federation-noop.js +17 -0
  11. package/dist/src/federation-noop.js.map +1 -1
  12. package/dist/src/federation-noop.mjs +23 -0
  13. package/dist/src/federation-noop.mjs.map +1 -0
  14. package/dist/src/index.d.mts +2 -0
  15. package/dist/src/index.d.ts +2 -3
  16. package/dist/src/index.js +13 -11
  17. package/dist/src/index.js.map +1 -1
  18. package/dist/src/index.mjs +8 -0
  19. package/dist/src/index.mjs.map +1 -0
  20. package/dist/src/internal.js +140 -243
  21. package/dist/src/internal.js.map +1 -1
  22. package/dist/src/internal.mjs +152 -0
  23. package/dist/src/internal.mjs.map +1 -0
  24. package/dist/src/loaders/fixImageLoader.d.mts +27 -0
  25. package/dist/src/loaders/fixImageLoader.d.ts +8 -3
  26. package/dist/src/loaders/fixImageLoader.js +91 -103
  27. package/dist/src/loaders/fixImageLoader.js.map +1 -1
  28. package/dist/src/loaders/fixImageLoader.mjs +101 -0
  29. package/dist/src/loaders/fixImageLoader.mjs.map +1 -0
  30. package/dist/src/loaders/fixUrlLoader.d.mts +16 -0
  31. package/dist/src/loaders/fixUrlLoader.d.ts +5 -2
  32. package/dist/src/loaders/fixUrlLoader.js +17 -19
  33. package/dist/src/loaders/fixUrlLoader.js.map +1 -1
  34. package/dist/src/loaders/fixUrlLoader.mjs +19 -0
  35. package/dist/src/loaders/fixUrlLoader.mjs.map +1 -0
  36. package/dist/src/loaders/helpers.js +72 -124
  37. package/dist/src/loaders/helpers.js.map +1 -1
  38. package/dist/src/loaders/helpers.mjs +79 -0
  39. package/dist/src/loaders/helpers.mjs.map +1 -0
  40. package/dist/src/loaders/nextPageMapLoader.d.mts +29 -0
  41. package/dist/src/loaders/nextPageMapLoader.d.ts +10 -5
  42. package/dist/src/loaders/nextPageMapLoader.js +126 -144
  43. package/dist/src/loaders/nextPageMapLoader.js.map +1 -1
  44. package/dist/src/loaders/nextPageMapLoader.mjs +143 -0
  45. package/dist/src/loaders/nextPageMapLoader.mjs.map +1 -0
  46. package/dist/src/logger.js +7 -7
  47. package/dist/src/logger.js.map +1 -1
  48. package/dist/src/logger.mjs +8 -0
  49. package/dist/src/logger.mjs.map +1 -0
  50. package/dist/src/plugins/CopyFederationPlugin.js +64 -71
  51. package/dist/src/plugins/CopyFederationPlugin.js.map +1 -1
  52. package/dist/src/plugins/CopyFederationPlugin.mjs +65 -0
  53. package/dist/src/plugins/CopyFederationPlugin.mjs.map +1 -0
  54. package/dist/src/plugins/NextFederationPlugin/apply-client-plugins.js +36 -53
  55. package/dist/src/plugins/NextFederationPlugin/apply-client-plugins.js.map +1 -1
  56. package/dist/src/plugins/NextFederationPlugin/apply-client-plugins.mjs +40 -0
  57. package/dist/src/plugins/NextFederationPlugin/apply-client-plugins.mjs.map +1 -0
  58. package/dist/src/plugins/NextFederationPlugin/apply-server-plugins.js +103 -121
  59. package/dist/src/plugins/NextFederationPlugin/apply-server-plugins.js.map +1 -1
  60. package/dist/src/plugins/NextFederationPlugin/apply-server-plugins.mjs +111 -0
  61. package/dist/src/plugins/NextFederationPlugin/apply-server-plugins.mjs.map +1 -0
  62. package/dist/src/plugins/NextFederationPlugin/index.d.mts +31 -0
  63. package/dist/src/plugins/NextFederationPlugin/index.d.ts +27 -23
  64. package/dist/src/plugins/NextFederationPlugin/index.js +147 -181
  65. package/dist/src/plugins/NextFederationPlugin/index.js.map +1 -1
  66. package/dist/src/plugins/NextFederationPlugin/index.mjs +150 -0
  67. package/dist/src/plugins/NextFederationPlugin/index.mjs.map +1 -0
  68. package/dist/src/plugins/NextFederationPlugin/next-fragments.d.mts +18 -0
  69. package/dist/src/plugins/NextFederationPlugin/next-fragments.d.ts +16 -18
  70. package/dist/src/plugins/NextFederationPlugin/next-fragments.js +62 -92
  71. package/dist/src/plugins/NextFederationPlugin/next-fragments.js.map +1 -1
  72. package/dist/src/plugins/NextFederationPlugin/next-fragments.mjs +68 -0
  73. package/dist/src/plugins/NextFederationPlugin/next-fragments.mjs.map +1 -0
  74. package/dist/src/plugins/NextFederationPlugin/set-options.js +17 -19
  75. package/dist/src/plugins/NextFederationPlugin/set-options.js.map +1 -1
  76. package/dist/src/plugins/NextFederationPlugin/set-options.mjs +19 -0
  77. package/dist/src/plugins/NextFederationPlugin/set-options.mjs.map +1 -0
  78. package/dist/src/plugins/NextFederationPlugin/validate-options.js +30 -38
  79. package/dist/src/plugins/NextFederationPlugin/validate-options.js.map +1 -1
  80. package/dist/src/plugins/NextFederationPlugin/validate-options.mjs +35 -0
  81. package/dist/src/plugins/NextFederationPlugin/validate-options.mjs.map +1 -0
  82. package/dist/src/plugins/container/InvertedContainerPlugin.js +22 -25
  83. package/dist/src/plugins/container/InvertedContainerPlugin.js.map +1 -1
  84. package/dist/src/plugins/container/InvertedContainerPlugin.mjs +23 -0
  85. package/dist/src/plugins/container/InvertedContainerPlugin.mjs.map +1 -0
  86. package/dist/src/plugins/container/InvertedContainerRuntimeModule.js +55 -67
  87. package/dist/src/plugins/container/InvertedContainerRuntimeModule.js.map +1 -1
  88. package/dist/src/plugins/container/InvertedContainerRuntimeModule.mjs +57 -0
  89. package/dist/src/plugins/container/InvertedContainerRuntimeModule.mjs.map +1 -0
  90. package/dist/src/plugins/container/runtimePlugin.d.mts +7 -0
  91. package/dist/src/plugins/container/runtimePlugin.d.ts +6 -2
  92. package/dist/src/plugins/container/runtimePlugin.js +167 -0
  93. package/dist/src/plugins/container/runtimePlugin.js.map +1 -1
  94. package/dist/src/plugins/container/runtimePlugin.mjs +166 -0
  95. package/dist/src/plugins/container/runtimePlugin.mjs.map +1 -0
  96. package/dist/utils/flushedChunks.d.mts +29 -0
  97. package/dist/utils/flushedChunks.d.ts +12 -5
  98. package/dist/utils/flushedChunks.js +32 -72
  99. package/dist/utils/flushedChunks.js.map +1 -1
  100. package/dist/utils/flushedChunks.mjs +35 -0
  101. package/dist/utils/flushedChunks.mjs.map +1 -0
  102. package/dist/utils/index.d.mts +14 -0
  103. package/dist/utils/index.d.ts +8 -14
  104. package/dist/utils/index.js +27 -62
  105. package/dist/utils/index.js.map +1 -1
  106. package/dist/utils/index.mjs +22 -0
  107. package/dist/utils/index.mjs.map +1 -0
  108. package/package.json +29 -9
  109. package/dist/client/UrlNode.d.ts +0 -17
  110. package/dist/node.d.ts +0 -1
  111. package/dist/node.js +0 -18
  112. package/dist/node.js.map +0 -1
  113. package/dist/package.json +0 -80
  114. package/dist/src/federation-noop.cjs +0 -15
  115. package/dist/src/internal.d.ts +0 -50
  116. package/dist/src/loaders/helpers.d.ts +0 -17
  117. package/dist/src/logger.d.ts +0 -2
  118. package/dist/src/plugins/AddRuntimeRequirementToPromiseExternalPlugin.d.ts +0 -5
  119. package/dist/src/plugins/AddRuntimeRequirementToPromiseExternalPlugin.js +0 -19
  120. package/dist/src/plugins/AddRuntimeRequirementToPromiseExternalPlugin.js.map +0 -1
  121. package/dist/src/plugins/CopyFederationPlugin.d.ts +0 -20
  122. package/dist/src/plugins/NextFederationPlugin/apply-client-plugins.d.ts +0 -23
  123. package/dist/src/plugins/NextFederationPlugin/apply-server-plugins.d.ts +0 -36
  124. package/dist/src/plugins/NextFederationPlugin/regex-equal.d.ts +0 -14
  125. package/dist/src/plugins/NextFederationPlugin/regex-equal.js +0 -25
  126. package/dist/src/plugins/NextFederationPlugin/regex-equal.js.map +0 -1
  127. package/dist/src/plugins/NextFederationPlugin/remove-unnecessary-shared-keys.d.ts +0 -8
  128. package/dist/src/plugins/NextFederationPlugin/remove-unnecessary-shared-keys.js +0 -34
  129. package/dist/src/plugins/NextFederationPlugin/remove-unnecessary-shared-keys.js.map +0 -1
  130. package/dist/src/plugins/NextFederationPlugin/set-options.d.ts +0 -16
  131. package/dist/src/plugins/NextFederationPlugin/validate-options.d.ts +0 -25
  132. package/dist/src/plugins/container/InvertedContainerPlugin.d.ts +0 -5
  133. package/dist/src/plugins/container/InvertedContainerRuntimeModule.d.ts +0 -11
  134. package/dist/src/plugins/container/RemoveEagerModulesFromRuntimePlugin.d.ts +0 -39
  135. package/dist/src/plugins/container/RemoveEagerModulesFromRuntimePlugin.js +0 -78
  136. package/dist/src/plugins/container/RemoveEagerModulesFromRuntimePlugin.js.map +0 -1
  137. package/dist/src/plugins/container/runtimePlugin.cjs +0 -219
  138. package/dist/src/plugins/container/types.d.ts +0 -2
  139. package/dist/src/plugins/container/types.js +0 -3
  140. package/dist/src/plugins/container/types.js.map +0 -1
  141. package/dist/src/types.d.ts +0 -28
  142. package/dist/src/types.js +0 -3
  143. package/dist/src/types.js.map +0 -1
@@ -1,69 +1,57 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
4
- const { RuntimeModule, Template, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
5
- class InvertedContainerRuntimeModule extends RuntimeModule {
6
- constructor(options) {
7
- super('inverted container startup', RuntimeModule.STAGE_TRIGGER);
8
- this.options = options;
9
- }
10
- generate() {
11
- const { compilation, chunk, chunkGraph } = this;
12
- if (!compilation || !chunk || !chunkGraph) {
13
- return '';
14
- }
15
- if (chunk.runtime === 'webpack-api-runtime') {
16
- return '';
17
- }
18
- const runtimeChunk = compilation.options.optimization?.runtimeChunk;
19
- if (runtimeChunk === 'single' || typeof runtimeChunk === 'object') {
20
- const logger = compilation.getLogger('InvertedContainerRuntimeModule');
21
- logger.info('Runtime chunk is set to single. Consider adding runtime: false to your ModuleFederationPlugin configuration to prevent runtime conflicts.');
22
- }
23
- let containerEntryModule;
24
- for (const containerDep of this.options.containers) {
25
- const mod = compilation.moduleGraph.getModule(containerDep);
26
- if (!mod)
27
- continue;
28
- if (chunkGraph.isModuleInChunk(mod, chunk)) {
29
- containerEntryModule = mod;
30
- }
31
- }
32
- if (!containerEntryModule)
33
- return '';
34
- if (compilation.chunkGraph.isEntryModuleInChunk(containerEntryModule, chunk)) {
35
- // Don't apply to the remote entry itself
36
- return '';
37
- }
38
- const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({
39
- module: containerEntryModule,
40
- chunkGraph,
41
- weak: false,
42
- runtimeRequirements: new Set(),
43
- });
44
- //@ts-ignore
45
- const nameJSON = JSON.stringify(containerEntryModule._name);
46
- return Template.asString([
47
- `var prevStartup = ${RuntimeGlobals.startup};`,
48
- `var hasRun = false;`,
49
- `var cachedRemote;`,
50
- `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction('', Template.asString([
51
- `if (!hasRun) {`,
52
- Template.indent(Template.asString([
53
- `hasRun = true;`,
54
- `if (typeof prevStartup === 'function') {`,
55
- Template.indent(Template.asString([`prevStartup();`])),
56
- `}`,
57
- `cachedRemote = ${initRuntimeModuleGetter};`,
58
- `var gs = ${RuntimeGlobals.global} || globalThis;`,
59
- `gs[${nameJSON}] = cachedRemote;`,
60
- ])),
61
- `} else if (typeof prevStartup === 'function') {`,
62
- Template.indent(`prevStartup();`),
63
- `}`,
64
- ]))};`,
65
- ]);
66
- }
67
- }
1
+ const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
2
+ let _module_federation_sdk_normalize_webpack_path = require("@module-federation/sdk/normalize-webpack-path");
3
+
4
+ //#region src/plugins/container/InvertedContainerRuntimeModule.ts
5
+ const { RuntimeModule, Template, RuntimeGlobals } = require((0, _module_federation_sdk_normalize_webpack_path.normalizeWebpackPath)("webpack"));
6
+ var InvertedContainerRuntimeModule = class extends RuntimeModule {
7
+ constructor(options) {
8
+ super("inverted container startup", RuntimeModule.STAGE_TRIGGER);
9
+ this.options = options;
10
+ }
11
+ generate() {
12
+ const { compilation, chunk, chunkGraph } = this;
13
+ if (!compilation || !chunk || !chunkGraph) return "";
14
+ if (chunk.runtime === "webpack-api-runtime") return "";
15
+ const runtimeChunk = compilation.options.optimization?.runtimeChunk;
16
+ if (typeof runtimeChunk === "object" && runtimeChunk !== null) compilation.getLogger("InvertedContainerRuntimeModule").info("Runtime chunk is configured. Consider adding runtime: false to your ModuleFederationPlugin configuration to prevent runtime conflicts.");
17
+ let containerEntryModule;
18
+ for (const containerDep of this.options.containers) {
19
+ const mod = compilation.moduleGraph.getModule(containerDep);
20
+ if (!mod) continue;
21
+ if (chunkGraph.isModuleInChunk(mod, chunk)) containerEntryModule = mod;
22
+ }
23
+ if (!containerEntryModule) return "";
24
+ if (compilation.chunkGraph.isEntryModuleInChunk(containerEntryModule, chunk)) return "";
25
+ const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({
26
+ module: containerEntryModule,
27
+ chunkGraph,
28
+ weak: false,
29
+ runtimeRequirements: /* @__PURE__ */ new Set()
30
+ });
31
+ const nameJSON = JSON.stringify(containerEntryModule._name);
32
+ return Template.asString([
33
+ `var prevStartup = ${RuntimeGlobals.startup};`,
34
+ `var hasRun = false;`,
35
+ `var cachedRemote;`,
36
+ `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction("", Template.asString([
37
+ `if (!hasRun) {`,
38
+ Template.indent(Template.asString([
39
+ `hasRun = true;`,
40
+ `if (typeof prevStartup === 'function') {`,
41
+ Template.indent(Template.asString([`prevStartup();`])),
42
+ `}`,
43
+ `cachedRemote = ${initRuntimeModuleGetter};`,
44
+ `var gs = ${RuntimeGlobals.global} || globalThis;`,
45
+ `gs[${nameJSON}] = cachedRemote;`
46
+ ])),
47
+ `} else if (typeof prevStartup === 'function') {`,
48
+ Template.indent(`prevStartup();`),
49
+ `}`
50
+ ]))};`
51
+ ]);
52
+ }
53
+ };
54
+
55
+ //#endregion
68
56
  exports.default = InvertedContainerRuntimeModule;
69
57
  //# sourceMappingURL=InvertedContainerRuntimeModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InvertedContainerRuntimeModule.js","sourceRoot":"","sources":["../../../../src/plugins/container/InvertedContainerRuntimeModule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InvertedContainerRuntimeModule.js","names":[],"sources":["../../../../src/plugins/container/InvertedContainerRuntimeModule.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type ContainerEntryModule from '@module-federation/enhanced/src/lib/container/ContainerEntryModule';\nconst { RuntimeModule, Template, RuntimeGlobals } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\ninterface InvertedContainerRuntimeModuleOptions {\n name?: string;\n containers: Set<any>; // Adjust the type as necessary\n}\n\nclass InvertedContainerRuntimeModule extends RuntimeModule {\n private options: InvertedContainerRuntimeModuleOptions;\n\n constructor(options: InvertedContainerRuntimeModuleOptions) {\n super('inverted container startup', RuntimeModule.STAGE_TRIGGER);\n this.options = options;\n }\n\n override generate(): string {\n const { compilation, chunk, chunkGraph } = this;\n if (!compilation || !chunk || !chunkGraph) {\n return '';\n }\n if (chunk.runtime === 'webpack-api-runtime') {\n return '';\n }\n\n const runtimeChunk = compilation.options.optimization?.runtimeChunk;\n if (typeof runtimeChunk === 'object' && runtimeChunk !== null) {\n const logger = compilation.getLogger('InvertedContainerRuntimeModule');\n logger.info(\n 'Runtime chunk is configured. Consider adding runtime: false to your ModuleFederationPlugin configuration to prevent runtime conflicts.',\n );\n }\n\n let containerEntryModule;\n for (const containerDep of this.options.containers) {\n const mod = compilation.moduleGraph.getModule(containerDep);\n if (!mod) continue;\n if (chunkGraph.isModuleInChunk(mod, chunk)) {\n containerEntryModule = mod as ContainerEntryModule;\n }\n }\n\n if (!containerEntryModule) return '';\n\n if (\n compilation.chunkGraph.isEntryModuleInChunk(containerEntryModule, chunk)\n ) {\n // Don't apply to the remote entry itself\n return '';\n }\n const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({\n module: containerEntryModule,\n chunkGraph,\n weak: false,\n runtimeRequirements: new Set(),\n });\n\n //@ts-ignore\n const nameJSON = JSON.stringify(containerEntryModule._name);\n\n return Template.asString([\n `var prevStartup = ${RuntimeGlobals.startup};`,\n `var hasRun = false;`,\n `var cachedRemote;`,\n `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction(\n '',\n Template.asString([\n `if (!hasRun) {`,\n Template.indent(\n Template.asString([\n `hasRun = true;`,\n `if (typeof prevStartup === 'function') {`,\n Template.indent(Template.asString([`prevStartup();`])),\n `}`,\n `cachedRemote = ${initRuntimeModuleGetter};`,\n `var gs = ${RuntimeGlobals.global} || globalThis;`,\n `gs[${nameJSON}] = cachedRemote;`,\n ]),\n ),\n `} else if (typeof prevStartup === 'function') {`,\n Template.indent(`prevStartup();`),\n `}`,\n ]),\n )};`,\n ]);\n }\n}\n\nexport default InvertedContainerRuntimeModule;\n"],"mappings":";;;;AAEA,MAAM,EAAE,eAAe,UAAU,mBAAmB,gFAC7B,UAAU,CAChC;AAOD,IAAM,iCAAN,cAA6C,cAAc;CAGzD,YAAY,SAAgD;AAC1D,QAAM,8BAA8B,cAAc,cAAc;AAChE,OAAK,UAAU;;CAGjB,AAAS,WAAmB;EAC1B,MAAM,EAAE,aAAa,OAAO,eAAe;AAC3C,MAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAC7B,QAAO;AAET,MAAI,MAAM,YAAY,sBACpB,QAAO;EAGT,MAAM,eAAe,YAAY,QAAQ,cAAc;AACvD,MAAI,OAAO,iBAAiB,YAAY,iBAAiB,KAEvD,CADe,YAAY,UAAU,iCAAiC,CAC/D,KACL,yIACD;EAGH,IAAI;AACJ,OAAK,MAAM,gBAAgB,KAAK,QAAQ,YAAY;GAClD,MAAM,MAAM,YAAY,YAAY,UAAU,aAAa;AAC3D,OAAI,CAAC,IAAK;AACV,OAAI,WAAW,gBAAgB,KAAK,MAAM,CACxC,wBAAuB;;AAI3B,MAAI,CAAC,qBAAsB,QAAO;AAElC,MACE,YAAY,WAAW,qBAAqB,sBAAsB,MAAM,CAGxE,QAAO;EAET,MAAM,0BAA0B,YAAY,gBAAgB,UAAU;GACpE,QAAQ;GACR;GACA,MAAM;GACN,qCAAqB,IAAI,KAAK;GAC/B,CAAC;EAGF,MAAM,WAAW,KAAK,UAAU,qBAAqB,MAAM;AAE3D,SAAO,SAAS,SAAS;GACvB,qBAAqB,eAAe,QAAQ;GAC5C;GACA;GACA,GAAG,eAAe,QAAQ,KAAK,YAAY,gBAAgB,cACzD,IACA,SAAS,SAAS;IAChB;IACA,SAAS,OACP,SAAS,SAAS;KAChB;KACA;KACA,SAAS,OAAO,SAAS,SAAS,CAAC,iBAAiB,CAAC,CAAC;KACtD;KACA,kBAAkB,wBAAwB;KAC1C,YAAY,eAAe,OAAO;KAClC,MAAM,SAAS;KAChB,CAAC,CACH;IACD;IACA,SAAS,OAAO,iBAAiB;IACjC;IACD,CAAC,CACH,CAAC;GACH,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { __require } from "../../../_virtual/_rolldown/runtime.mjs";
2
+ import { normalizeWebpackPath } from "@module-federation/sdk/normalize-webpack-path";
3
+
4
+ //#region src/plugins/container/InvertedContainerRuntimeModule.ts
5
+ const { RuntimeModule, Template, RuntimeGlobals } = __require(normalizeWebpackPath("webpack"));
6
+ var InvertedContainerRuntimeModule = class extends RuntimeModule {
7
+ constructor(options) {
8
+ super("inverted container startup", RuntimeModule.STAGE_TRIGGER);
9
+ this.options = options;
10
+ }
11
+ generate() {
12
+ const { compilation, chunk, chunkGraph } = this;
13
+ if (!compilation || !chunk || !chunkGraph) return "";
14
+ if (chunk.runtime === "webpack-api-runtime") return "";
15
+ const runtimeChunk = compilation.options.optimization?.runtimeChunk;
16
+ if (typeof runtimeChunk === "object" && runtimeChunk !== null) compilation.getLogger("InvertedContainerRuntimeModule").info("Runtime chunk is configured. Consider adding runtime: false to your ModuleFederationPlugin configuration to prevent runtime conflicts.");
17
+ let containerEntryModule;
18
+ for (const containerDep of this.options.containers) {
19
+ const mod = compilation.moduleGraph.getModule(containerDep);
20
+ if (!mod) continue;
21
+ if (chunkGraph.isModuleInChunk(mod, chunk)) containerEntryModule = mod;
22
+ }
23
+ if (!containerEntryModule) return "";
24
+ if (compilation.chunkGraph.isEntryModuleInChunk(containerEntryModule, chunk)) return "";
25
+ const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({
26
+ module: containerEntryModule,
27
+ chunkGraph,
28
+ weak: false,
29
+ runtimeRequirements: /* @__PURE__ */ new Set()
30
+ });
31
+ const nameJSON = JSON.stringify(containerEntryModule._name);
32
+ return Template.asString([
33
+ `var prevStartup = ${RuntimeGlobals.startup};`,
34
+ `var hasRun = false;`,
35
+ `var cachedRemote;`,
36
+ `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction("", Template.asString([
37
+ `if (!hasRun) {`,
38
+ Template.indent(Template.asString([
39
+ `hasRun = true;`,
40
+ `if (typeof prevStartup === 'function') {`,
41
+ Template.indent(Template.asString([`prevStartup();`])),
42
+ `}`,
43
+ `cachedRemote = ${initRuntimeModuleGetter};`,
44
+ `var gs = ${RuntimeGlobals.global} || globalThis;`,
45
+ `gs[${nameJSON}] = cachedRemote;`
46
+ ])),
47
+ `} else if (typeof prevStartup === 'function') {`,
48
+ Template.indent(`prevStartup();`),
49
+ `}`
50
+ ]))};`
51
+ ]);
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ export { InvertedContainerRuntimeModule as default };
57
+ //# sourceMappingURL=InvertedContainerRuntimeModule.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InvertedContainerRuntimeModule.mjs","names":[],"sources":["../../../../src/plugins/container/InvertedContainerRuntimeModule.ts"],"sourcesContent":["import { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport type ContainerEntryModule from '@module-federation/enhanced/src/lib/container/ContainerEntryModule';\nconst { RuntimeModule, Template, RuntimeGlobals } = require(\n normalizeWebpackPath('webpack'),\n) as typeof import('webpack');\n\ninterface InvertedContainerRuntimeModuleOptions {\n name?: string;\n containers: Set<any>; // Adjust the type as necessary\n}\n\nclass InvertedContainerRuntimeModule extends RuntimeModule {\n private options: InvertedContainerRuntimeModuleOptions;\n\n constructor(options: InvertedContainerRuntimeModuleOptions) {\n super('inverted container startup', RuntimeModule.STAGE_TRIGGER);\n this.options = options;\n }\n\n override generate(): string {\n const { compilation, chunk, chunkGraph } = this;\n if (!compilation || !chunk || !chunkGraph) {\n return '';\n }\n if (chunk.runtime === 'webpack-api-runtime') {\n return '';\n }\n\n const runtimeChunk = compilation.options.optimization?.runtimeChunk;\n if (typeof runtimeChunk === 'object' && runtimeChunk !== null) {\n const logger = compilation.getLogger('InvertedContainerRuntimeModule');\n logger.info(\n 'Runtime chunk is configured. Consider adding runtime: false to your ModuleFederationPlugin configuration to prevent runtime conflicts.',\n );\n }\n\n let containerEntryModule;\n for (const containerDep of this.options.containers) {\n const mod = compilation.moduleGraph.getModule(containerDep);\n if (!mod) continue;\n if (chunkGraph.isModuleInChunk(mod, chunk)) {\n containerEntryModule = mod as ContainerEntryModule;\n }\n }\n\n if (!containerEntryModule) return '';\n\n if (\n compilation.chunkGraph.isEntryModuleInChunk(containerEntryModule, chunk)\n ) {\n // Don't apply to the remote entry itself\n return '';\n }\n const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({\n module: containerEntryModule,\n chunkGraph,\n weak: false,\n runtimeRequirements: new Set(),\n });\n\n //@ts-ignore\n const nameJSON = JSON.stringify(containerEntryModule._name);\n\n return Template.asString([\n `var prevStartup = ${RuntimeGlobals.startup};`,\n `var hasRun = false;`,\n `var cachedRemote;`,\n `${RuntimeGlobals.startup} = ${compilation.runtimeTemplate.basicFunction(\n '',\n Template.asString([\n `if (!hasRun) {`,\n Template.indent(\n Template.asString([\n `hasRun = true;`,\n `if (typeof prevStartup === 'function') {`,\n Template.indent(Template.asString([`prevStartup();`])),\n `}`,\n `cachedRemote = ${initRuntimeModuleGetter};`,\n `var gs = ${RuntimeGlobals.global} || globalThis;`,\n `gs[${nameJSON}] = cachedRemote;`,\n ]),\n ),\n `} else if (typeof prevStartup === 'function') {`,\n Template.indent(`prevStartup();`),\n `}`,\n ]),\n )};`,\n ]);\n }\n}\n\nexport default InvertedContainerRuntimeModule;\n"],"mappings":";;;;AAEA,MAAM,EAAE,eAAe,UAAU,6BAC/B,qBAAqB,UAAU,CAChC;AAOD,IAAM,iCAAN,cAA6C,cAAc;CAGzD,YAAY,SAAgD;AAC1D,QAAM,8BAA8B,cAAc,cAAc;AAChE,OAAK,UAAU;;CAGjB,AAAS,WAAmB;EAC1B,MAAM,EAAE,aAAa,OAAO,eAAe;AAC3C,MAAI,CAAC,eAAe,CAAC,SAAS,CAAC,WAC7B,QAAO;AAET,MAAI,MAAM,YAAY,sBACpB,QAAO;EAGT,MAAM,eAAe,YAAY,QAAQ,cAAc;AACvD,MAAI,OAAO,iBAAiB,YAAY,iBAAiB,KAEvD,CADe,YAAY,UAAU,iCAAiC,CAC/D,KACL,yIACD;EAGH,IAAI;AACJ,OAAK,MAAM,gBAAgB,KAAK,QAAQ,YAAY;GAClD,MAAM,MAAM,YAAY,YAAY,UAAU,aAAa;AAC3D,OAAI,CAAC,IAAK;AACV,OAAI,WAAW,gBAAgB,KAAK,MAAM,CACxC,wBAAuB;;AAI3B,MAAI,CAAC,qBAAsB,QAAO;AAElC,MACE,YAAY,WAAW,qBAAqB,sBAAsB,MAAM,CAGxE,QAAO;EAET,MAAM,0BAA0B,YAAY,gBAAgB,UAAU;GACpE,QAAQ;GACR;GACA,MAAM;GACN,qCAAqB,IAAI,KAAK;GAC/B,CAAC;EAGF,MAAM,WAAW,KAAK,UAAU,qBAAqB,MAAM;AAE3D,SAAO,SAAS,SAAS;GACvB,qBAAqB,eAAe,QAAQ;GAC5C;GACA;GACA,GAAG,eAAe,QAAQ,KAAK,YAAY,gBAAgB,cACzD,IACA,SAAS,SAAS;IAChB;IACA,SAAS,OACP,SAAS,SAAS;KAChB;KACA;KACA,SAAS,OAAO,SAAS,SAAS,CAAC,iBAAiB,CAAC,CAAC;KACtD;KACA,kBAAkB,wBAAwB;KAC1C,YAAY,eAAe,OAAO;KAClC,MAAM,SAAS;KAChB,CAAC,CACH;IACD;IACA,SAAS,OAAO,iBAAiB;IACjC;IACD,CAAC,CACH,CAAC;GACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ModuleFederationRuntimePlugin } from "@module-federation/runtime";
2
+
3
+ //#region src/plugins/container/runtimePlugin.d.ts
4
+ declare function export_default(): ModuleFederationRuntimePlugin;
5
+ //#endregion
6
+ export { export_default as default };
7
+ //# sourceMappingURL=runtimePlugin.d.mts.map
@@ -1,2 +1,6 @@
1
- import { ModuleFederationRuntimePlugin } from '@module-federation/runtime';
2
- export default function (): ModuleFederationRuntimePlugin;
1
+ import { ModuleFederationRuntimePlugin } from "@module-federation/runtime";
2
+
3
+ //#region src/plugins/container/runtimePlugin.d.ts
4
+ declare function export_default(): ModuleFederationRuntimePlugin;
5
+ export = export_default;
6
+ //# sourceMappingURL=runtimePlugin.d.ts.map
@@ -0,0 +1,167 @@
1
+
2
+ //#region src/plugins/container/runtimePlugin.ts
3
+ function runtimePlugin_default() {
4
+ return {
5
+ name: "next-internal-plugin",
6
+ createScript: function(args) {
7
+ const url = args.url;
8
+ const attrs = args.attrs;
9
+ if (typeof window !== "undefined") {
10
+ const script = document.createElement("script");
11
+ script.src = url;
12
+ script.async = true;
13
+ delete attrs?.["crossorigin"];
14
+ return {
15
+ script,
16
+ timeout: 8e3
17
+ };
18
+ }
19
+ },
20
+ errorLoadRemote: function(args) {
21
+ const id = args.id;
22
+ const error = args.error;
23
+ const from = args.from;
24
+ globalThis.moduleGraphDirty = true;
25
+ console.error(id, "offline");
26
+ const pg = function() {
27
+ console.error(id, "offline", error);
28
+ return null;
29
+ };
30
+ pg.getInitialProps = function(ctx) {
31
+ return {};
32
+ };
33
+ let mod;
34
+ if (from === "build") mod = function() {
35
+ return {
36
+ __esModule: true,
37
+ default: pg,
38
+ getServerSideProps: function() {
39
+ return { props: {} };
40
+ }
41
+ };
42
+ };
43
+ else mod = {
44
+ default: pg,
45
+ getServerSideProps: function() {
46
+ return { props: {} };
47
+ }
48
+ };
49
+ return mod;
50
+ },
51
+ beforeInit: function(args) {
52
+ if (!globalThis.usedChunks) globalThis.usedChunks = /* @__PURE__ */ new Set();
53
+ if (typeof __webpack_runtime_id__ === "string" && !__webpack_runtime_id__.startsWith("webpack")) return args;
54
+ const moduleCache = args.origin.moduleCache;
55
+ const name = args.origin.name;
56
+ let gs;
57
+ try {
58
+ gs = new Function("return globalThis")();
59
+ } catch (e) {
60
+ gs = globalThis;
61
+ }
62
+ const attachedRemote = gs[name];
63
+ if (attachedRemote) moduleCache.set(name, attachedRemote);
64
+ return args;
65
+ },
66
+ init: function(args) {
67
+ return args;
68
+ },
69
+ beforeRequest: function(args) {
70
+ const options = args.options;
71
+ const remoteName = args.id.split("/").shift();
72
+ const remote = options.remotes.find(function(remote) {
73
+ return remote.name === remoteName;
74
+ });
75
+ if (!remote) return args;
76
+ if (remote && remote.entry && remote.entry.includes("?t=")) return args;
77
+ remote.entry = remote.entry + "?t=" + Date.now();
78
+ return args;
79
+ },
80
+ afterResolve: function(args) {
81
+ return args;
82
+ },
83
+ onLoad: function(args) {
84
+ const exposeModuleFactory = args.exposeModuleFactory;
85
+ const exposeModule = args.exposeModule;
86
+ const id = args.id;
87
+ const moduleOrFactory = exposeModuleFactory || exposeModule;
88
+ if (!moduleOrFactory) return args;
89
+ if (typeof window === "undefined") {
90
+ let exposedModuleExports;
91
+ try {
92
+ exposedModuleExports = moduleOrFactory();
93
+ } catch (e) {
94
+ exposedModuleExports = moduleOrFactory;
95
+ }
96
+ const handler = { get: function(target, prop, receiver) {
97
+ if (target === exposedModuleExports && typeof exposedModuleExports[prop] === "function") return function() {
98
+ globalThis.usedChunks.add(id);
99
+ return exposedModuleExports[prop].apply(this, arguments);
100
+ };
101
+ const originalMethod = target[prop];
102
+ if (typeof originalMethod === "function") {
103
+ const proxiedFunction = function() {
104
+ globalThis.usedChunks.add(id);
105
+ return originalMethod.apply(this, arguments);
106
+ };
107
+ Object.keys(originalMethod).forEach(function(prop) {
108
+ Object.defineProperty(proxiedFunction, prop, {
109
+ value: originalMethod[prop],
110
+ writable: true,
111
+ enumerable: true,
112
+ configurable: true
113
+ });
114
+ });
115
+ return proxiedFunction;
116
+ }
117
+ return Reflect.get(target, prop, receiver);
118
+ } };
119
+ if (typeof exposedModuleExports === "function") {
120
+ exposedModuleExports = new Proxy(exposedModuleExports, handler);
121
+ Object.getOwnPropertyNames(exposedModuleExports).forEach(function(prop) {
122
+ if (typeof exposedModuleExports[prop] === "function") exposedModuleExports[prop] = new Proxy(exposedModuleExports[prop], handler);
123
+ });
124
+ return function() {
125
+ return exposedModuleExports;
126
+ };
127
+ } else exposedModuleExports = new Proxy(exposedModuleExports, handler);
128
+ return exposedModuleExports;
129
+ }
130
+ return args;
131
+ },
132
+ loadRemoteSnapshot(args) {
133
+ const { from, remoteSnapshot, manifestUrl, manifestJson, options } = args;
134
+ if (from !== "manifest" || !manifestUrl || !manifestJson || !("publicPath" in remoteSnapshot)) return args;
135
+ const { publicPath } = remoteSnapshot;
136
+ if (options.inBrowser && publicPath.includes("/_next/")) remoteSnapshot.publicPath = publicPath.substring(0, publicPath.lastIndexOf("/_next/") + 7);
137
+ else remoteSnapshot.publicPath = manifestUrl.substring(0, manifestUrl.indexOf("mf-manifest.json"));
138
+ if ("publicPath" in manifestJson.metaData) manifestJson.metaData.publicPath = remoteSnapshot.publicPath;
139
+ return args;
140
+ },
141
+ resolveShare: function(args) {
142
+ if (args.pkgName !== "react" && args.pkgName !== "react-dom" && !args.pkgName.startsWith("next/")) return args;
143
+ const shareScopeMap = args.shareScopeMap;
144
+ const scope = args.scope;
145
+ const pkgName = args.pkgName;
146
+ const version = args.version;
147
+ const host = args.GlobalFederation["__INSTANCES__"][0];
148
+ if (!host) return args;
149
+ if (!host.options.shared[pkgName]) return args;
150
+ args.resolver = function() {
151
+ shareScopeMap[scope][pkgName][version] = host.options.shared[pkgName][0];
152
+ return {
153
+ shared: shareScopeMap[scope][pkgName][version],
154
+ useTreesShaking: false
155
+ };
156
+ };
157
+ return args;
158
+ },
159
+ beforeLoadShare: async function(args) {
160
+ return args;
161
+ }
162
+ };
163
+ }
164
+
165
+ //#endregion
166
+ module.exports = runtimePlugin_default;
167
+ //# sourceMappingURL=runtimePlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtimePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/container/runtimePlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtimePlugin.js","names":[],"sources":["../../../../src/plugins/container/runtimePlugin.ts"],"sourcesContent":["import { ModuleFederationRuntimePlugin } from '@module-federation/runtime';\n\nexport default function (): ModuleFederationRuntimePlugin {\n return {\n name: 'next-internal-plugin',\n createScript: function (args: {\n url: string;\n attrs?: Record<string, any>;\n }) {\n const url = args.url;\n const attrs = args.attrs;\n if (typeof window !== 'undefined') {\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n delete attrs?.['crossorigin'];\n\n return { script: script, timeout: 8000 };\n }\n return undefined;\n },\n errorLoadRemote: function (args: {\n id: string;\n error: any;\n from: string;\n origin: any;\n }) {\n const id = args.id;\n const error = args.error;\n const from = args.from;\n //@ts-ignore\n globalThis.moduleGraphDirty = true;\n console.error(id, 'offline');\n const pg = function () {\n console.error(id, 'offline', error);\n return null;\n };\n\n (pg as any).getInitialProps = function (ctx: any) {\n return {};\n };\n let mod;\n if (from === 'build') {\n mod = function () {\n return {\n __esModule: true,\n default: pg,\n getServerSideProps: function () {\n return { props: {} };\n },\n };\n };\n } else {\n mod = {\n default: pg,\n getServerSideProps: function () {\n return { props: {} };\n },\n };\n }\n\n return mod;\n },\n beforeInit: function (args) {\n if (!globalThis.usedChunks) globalThis.usedChunks = new Set();\n if (\n typeof __webpack_runtime_id__ === 'string' &&\n !__webpack_runtime_id__.startsWith('webpack')\n ) {\n return args;\n }\n\n const moduleCache = args.origin.moduleCache;\n const name = args.origin.name;\n let gs;\n try {\n gs = new Function('return globalThis')();\n } catch (e) {\n gs = globalThis; // fallback for browsers without 'unsafe-eval' CSP policy enabled\n }\n //@ts-ignore\n const attachedRemote = gs[name];\n if (attachedRemote) {\n moduleCache.set(name, attachedRemote);\n }\n\n return args;\n },\n init: function (args: any) {\n return args;\n },\n beforeRequest: function (args: any) {\n const options = args.options;\n const id = args.id;\n const remoteName = id.split('/').shift();\n const remote = options.remotes.find(function (remote: any) {\n return remote.name === remoteName;\n });\n if (!remote) return args;\n if (remote && remote.entry && remote.entry.includes('?t=')) {\n return args;\n }\n remote.entry = remote.entry + '?t=' + Date.now();\n return args;\n },\n afterResolve: function (args: any) {\n return args;\n },\n onLoad: function (args: any) {\n const exposeModuleFactory = args.exposeModuleFactory;\n const exposeModule = args.exposeModule;\n const id = args.id;\n const moduleOrFactory = exposeModuleFactory || exposeModule;\n if (!moduleOrFactory) return args;\n\n if (typeof window === 'undefined') {\n let exposedModuleExports: any;\n try {\n exposedModuleExports = moduleOrFactory();\n } catch (e) {\n exposedModuleExports = moduleOrFactory;\n }\n\n const handler: ProxyHandler<any> = {\n get: function (target, prop, receiver) {\n if (\n target === exposedModuleExports &&\n typeof exposedModuleExports[prop] === 'function'\n ) {\n return function (this: unknown) {\n globalThis.usedChunks.add(id);\n //eslint-disable-next-line\n return exposedModuleExports[prop].apply(this, arguments);\n };\n }\n\n const originalMethod = target[prop];\n if (typeof originalMethod === 'function') {\n const proxiedFunction = function (this: unknown) {\n globalThis.usedChunks.add(id);\n //eslint-disable-next-line\n return originalMethod.apply(this, arguments);\n };\n\n Object.keys(originalMethod).forEach(function (prop) {\n Object.defineProperty(proxiedFunction, prop, {\n value: originalMethod[prop],\n writable: true,\n enumerable: true,\n configurable: true,\n });\n });\n\n return proxiedFunction;\n }\n\n return Reflect.get(target, prop, receiver);\n },\n };\n\n if (typeof exposedModuleExports === 'function') {\n exposedModuleExports = new Proxy(exposedModuleExports, handler);\n\n const staticProps = Object.getOwnPropertyNames(exposedModuleExports);\n staticProps.forEach(function (prop) {\n if (typeof exposedModuleExports[prop] === 'function') {\n exposedModuleExports[prop] = new Proxy(\n exposedModuleExports[prop],\n handler,\n );\n }\n });\n return function () {\n return exposedModuleExports;\n };\n } else {\n exposedModuleExports = new Proxy(exposedModuleExports, handler);\n }\n\n return exposedModuleExports;\n }\n\n return args;\n },\n loadRemoteSnapshot(args) {\n const { from, remoteSnapshot, manifestUrl, manifestJson, options } = args;\n\n // ensure snapshot is loaded from manifest\n if (\n from !== 'manifest' ||\n !manifestUrl ||\n !manifestJson ||\n !('publicPath' in remoteSnapshot)\n ) {\n return args;\n }\n\n // re-assign publicPath based on remoteEntry location if in browser nextjs remote\n const { publicPath } = remoteSnapshot;\n if (options.inBrowser && publicPath.includes('/_next/')) {\n remoteSnapshot.publicPath = publicPath.substring(\n 0,\n publicPath.lastIndexOf('/_next/') + 7,\n );\n } else {\n const serverPublicPath = manifestUrl.substring(\n 0,\n manifestUrl.indexOf('mf-manifest.json'),\n );\n remoteSnapshot.publicPath = serverPublicPath;\n }\n\n if ('publicPath' in manifestJson.metaData) {\n manifestJson.metaData.publicPath = remoteSnapshot.publicPath;\n }\n\n return args;\n },\n resolveShare: function (args: any) {\n if (\n args.pkgName !== 'react' &&\n args.pkgName !== 'react-dom' &&\n !args.pkgName.startsWith('next/')\n ) {\n return args;\n }\n const shareScopeMap = args.shareScopeMap;\n const scope = args.scope;\n const pkgName = args.pkgName;\n const version = args.version;\n const GlobalFederation = args.GlobalFederation;\n const host = GlobalFederation['__INSTANCES__'][0];\n if (!host) {\n return args;\n }\n\n if (!host.options.shared[pkgName]) {\n return args;\n }\n args.resolver = function () {\n shareScopeMap[scope][pkgName][version] =\n host.options.shared[pkgName][0];\n return {\n shared: shareScopeMap[scope][pkgName][version],\n useTreesShaking: false,\n };\n };\n return args;\n },\n beforeLoadShare: async function (args: any) {\n return args;\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ //#region src/plugins/container/runtimePlugin.ts
2
+ function runtimePlugin_default() {
3
+ return {
4
+ name: "next-internal-plugin",
5
+ createScript: function(args) {
6
+ const url = args.url;
7
+ const attrs = args.attrs;
8
+ if (typeof window !== "undefined") {
9
+ const script = document.createElement("script");
10
+ script.src = url;
11
+ script.async = true;
12
+ delete attrs?.["crossorigin"];
13
+ return {
14
+ script,
15
+ timeout: 8e3
16
+ };
17
+ }
18
+ },
19
+ errorLoadRemote: function(args) {
20
+ const id = args.id;
21
+ const error = args.error;
22
+ const from = args.from;
23
+ globalThis.moduleGraphDirty = true;
24
+ console.error(id, "offline");
25
+ const pg = function() {
26
+ console.error(id, "offline", error);
27
+ return null;
28
+ };
29
+ pg.getInitialProps = function(ctx) {
30
+ return {};
31
+ };
32
+ let mod;
33
+ if (from === "build") mod = function() {
34
+ return {
35
+ __esModule: true,
36
+ default: pg,
37
+ getServerSideProps: function() {
38
+ return { props: {} };
39
+ }
40
+ };
41
+ };
42
+ else mod = {
43
+ default: pg,
44
+ getServerSideProps: function() {
45
+ return { props: {} };
46
+ }
47
+ };
48
+ return mod;
49
+ },
50
+ beforeInit: function(args) {
51
+ if (!globalThis.usedChunks) globalThis.usedChunks = /* @__PURE__ */ new Set();
52
+ if (typeof __webpack_runtime_id__ === "string" && !__webpack_runtime_id__.startsWith("webpack")) return args;
53
+ const moduleCache = args.origin.moduleCache;
54
+ const name = args.origin.name;
55
+ let gs;
56
+ try {
57
+ gs = new Function("return globalThis")();
58
+ } catch (e) {
59
+ gs = globalThis;
60
+ }
61
+ const attachedRemote = gs[name];
62
+ if (attachedRemote) moduleCache.set(name, attachedRemote);
63
+ return args;
64
+ },
65
+ init: function(args) {
66
+ return args;
67
+ },
68
+ beforeRequest: function(args) {
69
+ const options = args.options;
70
+ const remoteName = args.id.split("/").shift();
71
+ const remote = options.remotes.find(function(remote) {
72
+ return remote.name === remoteName;
73
+ });
74
+ if (!remote) return args;
75
+ if (remote && remote.entry && remote.entry.includes("?t=")) return args;
76
+ remote.entry = remote.entry + "?t=" + Date.now();
77
+ return args;
78
+ },
79
+ afterResolve: function(args) {
80
+ return args;
81
+ },
82
+ onLoad: function(args) {
83
+ const exposeModuleFactory = args.exposeModuleFactory;
84
+ const exposeModule = args.exposeModule;
85
+ const id = args.id;
86
+ const moduleOrFactory = exposeModuleFactory || exposeModule;
87
+ if (!moduleOrFactory) return args;
88
+ if (typeof window === "undefined") {
89
+ let exposedModuleExports;
90
+ try {
91
+ exposedModuleExports = moduleOrFactory();
92
+ } catch (e) {
93
+ exposedModuleExports = moduleOrFactory;
94
+ }
95
+ const handler = { get: function(target, prop, receiver) {
96
+ if (target === exposedModuleExports && typeof exposedModuleExports[prop] === "function") return function() {
97
+ globalThis.usedChunks.add(id);
98
+ return exposedModuleExports[prop].apply(this, arguments);
99
+ };
100
+ const originalMethod = target[prop];
101
+ if (typeof originalMethod === "function") {
102
+ const proxiedFunction = function() {
103
+ globalThis.usedChunks.add(id);
104
+ return originalMethod.apply(this, arguments);
105
+ };
106
+ Object.keys(originalMethod).forEach(function(prop) {
107
+ Object.defineProperty(proxiedFunction, prop, {
108
+ value: originalMethod[prop],
109
+ writable: true,
110
+ enumerable: true,
111
+ configurable: true
112
+ });
113
+ });
114
+ return proxiedFunction;
115
+ }
116
+ return Reflect.get(target, prop, receiver);
117
+ } };
118
+ if (typeof exposedModuleExports === "function") {
119
+ exposedModuleExports = new Proxy(exposedModuleExports, handler);
120
+ Object.getOwnPropertyNames(exposedModuleExports).forEach(function(prop) {
121
+ if (typeof exposedModuleExports[prop] === "function") exposedModuleExports[prop] = new Proxy(exposedModuleExports[prop], handler);
122
+ });
123
+ return function() {
124
+ return exposedModuleExports;
125
+ };
126
+ } else exposedModuleExports = new Proxy(exposedModuleExports, handler);
127
+ return exposedModuleExports;
128
+ }
129
+ return args;
130
+ },
131
+ loadRemoteSnapshot(args) {
132
+ const { from, remoteSnapshot, manifestUrl, manifestJson, options } = args;
133
+ if (from !== "manifest" || !manifestUrl || !manifestJson || !("publicPath" in remoteSnapshot)) return args;
134
+ const { publicPath } = remoteSnapshot;
135
+ if (options.inBrowser && publicPath.includes("/_next/")) remoteSnapshot.publicPath = publicPath.substring(0, publicPath.lastIndexOf("/_next/") + 7);
136
+ else remoteSnapshot.publicPath = manifestUrl.substring(0, manifestUrl.indexOf("mf-manifest.json"));
137
+ if ("publicPath" in manifestJson.metaData) manifestJson.metaData.publicPath = remoteSnapshot.publicPath;
138
+ return args;
139
+ },
140
+ resolveShare: function(args) {
141
+ if (args.pkgName !== "react" && args.pkgName !== "react-dom" && !args.pkgName.startsWith("next/")) return args;
142
+ const shareScopeMap = args.shareScopeMap;
143
+ const scope = args.scope;
144
+ const pkgName = args.pkgName;
145
+ const version = args.version;
146
+ const host = args.GlobalFederation["__INSTANCES__"][0];
147
+ if (!host) return args;
148
+ if (!host.options.shared[pkgName]) return args;
149
+ args.resolver = function() {
150
+ shareScopeMap[scope][pkgName][version] = host.options.shared[pkgName][0];
151
+ return {
152
+ shared: shareScopeMap[scope][pkgName][version],
153
+ useTreesShaking: false
154
+ };
155
+ };
156
+ return args;
157
+ },
158
+ beforeLoadShare: async function(args) {
159
+ return args;
160
+ }
161
+ };
162
+ }
163
+
164
+ //#endregion
165
+ export { runtimePlugin_default as default };
166
+ //# sourceMappingURL=runtimePlugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimePlugin.mjs","names":[],"sources":["../../../../src/plugins/container/runtimePlugin.ts"],"sourcesContent":["import { ModuleFederationRuntimePlugin } from '@module-federation/runtime';\n\nexport default function (): ModuleFederationRuntimePlugin {\n return {\n name: 'next-internal-plugin',\n createScript: function (args: {\n url: string;\n attrs?: Record<string, any>;\n }) {\n const url = args.url;\n const attrs = args.attrs;\n if (typeof window !== 'undefined') {\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n delete attrs?.['crossorigin'];\n\n return { script: script, timeout: 8000 };\n }\n return undefined;\n },\n errorLoadRemote: function (args: {\n id: string;\n error: any;\n from: string;\n origin: any;\n }) {\n const id = args.id;\n const error = args.error;\n const from = args.from;\n //@ts-ignore\n globalThis.moduleGraphDirty = true;\n console.error(id, 'offline');\n const pg = function () {\n console.error(id, 'offline', error);\n return null;\n };\n\n (pg as any).getInitialProps = function (ctx: any) {\n return {};\n };\n let mod;\n if (from === 'build') {\n mod = function () {\n return {\n __esModule: true,\n default: pg,\n getServerSideProps: function () {\n return { props: {} };\n },\n };\n };\n } else {\n mod = {\n default: pg,\n getServerSideProps: function () {\n return { props: {} };\n },\n };\n }\n\n return mod;\n },\n beforeInit: function (args) {\n if (!globalThis.usedChunks) globalThis.usedChunks = new Set();\n if (\n typeof __webpack_runtime_id__ === 'string' &&\n !__webpack_runtime_id__.startsWith('webpack')\n ) {\n return args;\n }\n\n const moduleCache = args.origin.moduleCache;\n const name = args.origin.name;\n let gs;\n try {\n gs = new Function('return globalThis')();\n } catch (e) {\n gs = globalThis; // fallback for browsers without 'unsafe-eval' CSP policy enabled\n }\n //@ts-ignore\n const attachedRemote = gs[name];\n if (attachedRemote) {\n moduleCache.set(name, attachedRemote);\n }\n\n return args;\n },\n init: function (args: any) {\n return args;\n },\n beforeRequest: function (args: any) {\n const options = args.options;\n const id = args.id;\n const remoteName = id.split('/').shift();\n const remote = options.remotes.find(function (remote: any) {\n return remote.name === remoteName;\n });\n if (!remote) return args;\n if (remote && remote.entry && remote.entry.includes('?t=')) {\n return args;\n }\n remote.entry = remote.entry + '?t=' + Date.now();\n return args;\n },\n afterResolve: function (args: any) {\n return args;\n },\n onLoad: function (args: any) {\n const exposeModuleFactory = args.exposeModuleFactory;\n const exposeModule = args.exposeModule;\n const id = args.id;\n const moduleOrFactory = exposeModuleFactory || exposeModule;\n if (!moduleOrFactory) return args;\n\n if (typeof window === 'undefined') {\n let exposedModuleExports: any;\n try {\n exposedModuleExports = moduleOrFactory();\n } catch (e) {\n exposedModuleExports = moduleOrFactory;\n }\n\n const handler: ProxyHandler<any> = {\n get: function (target, prop, receiver) {\n if (\n target === exposedModuleExports &&\n typeof exposedModuleExports[prop] === 'function'\n ) {\n return function (this: unknown) {\n globalThis.usedChunks.add(id);\n //eslint-disable-next-line\n return exposedModuleExports[prop].apply(this, arguments);\n };\n }\n\n const originalMethod = target[prop];\n if (typeof originalMethod === 'function') {\n const proxiedFunction = function (this: unknown) {\n globalThis.usedChunks.add(id);\n //eslint-disable-next-line\n return originalMethod.apply(this, arguments);\n };\n\n Object.keys(originalMethod).forEach(function (prop) {\n Object.defineProperty(proxiedFunction, prop, {\n value: originalMethod[prop],\n writable: true,\n enumerable: true,\n configurable: true,\n });\n });\n\n return proxiedFunction;\n }\n\n return Reflect.get(target, prop, receiver);\n },\n };\n\n if (typeof exposedModuleExports === 'function') {\n exposedModuleExports = new Proxy(exposedModuleExports, handler);\n\n const staticProps = Object.getOwnPropertyNames(exposedModuleExports);\n staticProps.forEach(function (prop) {\n if (typeof exposedModuleExports[prop] === 'function') {\n exposedModuleExports[prop] = new Proxy(\n exposedModuleExports[prop],\n handler,\n );\n }\n });\n return function () {\n return exposedModuleExports;\n };\n } else {\n exposedModuleExports = new Proxy(exposedModuleExports, handler);\n }\n\n return exposedModuleExports;\n }\n\n return args;\n },\n loadRemoteSnapshot(args) {\n const { from, remoteSnapshot, manifestUrl, manifestJson, options } = args;\n\n // ensure snapshot is loaded from manifest\n if (\n from !== 'manifest' ||\n !manifestUrl ||\n !manifestJson ||\n !('publicPath' in remoteSnapshot)\n ) {\n return args;\n }\n\n // re-assign publicPath based on remoteEntry location if in browser nextjs remote\n const { publicPath } = remoteSnapshot;\n if (options.inBrowser && publicPath.includes('/_next/')) {\n remoteSnapshot.publicPath = publicPath.substring(\n 0,\n publicPath.lastIndexOf('/_next/') + 7,\n );\n } else {\n const serverPublicPath = manifestUrl.substring(\n 0,\n manifestUrl.indexOf('mf-manifest.json'),\n );\n remoteSnapshot.publicPath = serverPublicPath;\n }\n\n if ('publicPath' in manifestJson.metaData) {\n manifestJson.metaData.publicPath = remoteSnapshot.publicPath;\n }\n\n return args;\n },\n resolveShare: function (args: any) {\n if (\n args.pkgName !== 'react' &&\n args.pkgName !== 'react-dom' &&\n !args.pkgName.startsWith('next/')\n ) {\n return args;\n }\n const shareScopeMap = args.shareScopeMap;\n const scope = args.scope;\n const pkgName = args.pkgName;\n const version = args.version;\n const GlobalFederation = args.GlobalFederation;\n const host = GlobalFederation['__INSTANCES__'][0];\n if (!host) {\n return args;\n }\n\n if (!host.options.shared[pkgName]) {\n return args;\n }\n args.resolver = function () {\n shareScopeMap[scope][pkgName][version] =\n host.options.shared[pkgName][0];\n return {\n shared: shareScopeMap[scope][pkgName][version],\n useTreesShaking: false,\n };\n };\n return args;\n },\n beforeLoadShare: async function (args: any) {\n return args;\n },\n };\n}\n"],"mappings":"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"}