@module-federation/enhanced 0.0.0-next-20240401022607 → 0.0.0-next-20240401073754

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 (40) hide show
  1. package/dist/package.json +2 -0
  2. package/dist/src/lib/Constants.d.ts +0 -6
  3. package/dist/src/lib/Constants.js +1 -7
  4. package/dist/src/lib/Constants.js.map +1 -1
  5. package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +2 -2
  6. package/dist/src/lib/container/HoistContainerReferencesPlugin.js +37 -32
  7. package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
  8. package/dist/src/lib/container/ModuleFederationPlugin.d.ts +1 -1
  9. package/dist/src/lib/container/ModuleFederationPlugin.js +6 -2
  10. package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
  11. package/dist/src/lib/container/TypesPlugin.d.ts +8 -0
  12. package/dist/src/lib/container/TypesPlugin.js +73 -0
  13. package/dist/src/lib/container/TypesPlugin.js.map +1 -0
  14. package/dist/src/lib/container/runtime/FederationInitModule.d.ts +16 -0
  15. package/dist/src/lib/container/runtime/FederationInitModule.js +89 -0
  16. package/dist/src/lib/container/runtime/FederationInitModule.js.map +1 -0
  17. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +29 -30
  18. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
  19. package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +155 -0
  20. package/dist/src/schemas/container/ModuleFederationPlugin.js +158 -0
  21. package/dist/src/schemas/container/ModuleFederationPlugin.js.map +1 -1
  22. package/package.json +8 -6
  23. package/dist/src/lib/eager/EagerRuntimeModule.d.ts +0 -9
  24. package/dist/src/lib/eager/EagerRuntimeModule.js +0 -98
  25. package/dist/src/lib/eager/EagerRuntimeModule.js.map +0 -1
  26. package/dist/src/lib/eager/ProvideEagerDependency.d.ts +0 -38
  27. package/dist/src/lib/eager/ProvideEagerDependency.js +0 -70
  28. package/dist/src/lib/eager/ProvideEagerDependency.js.map +0 -1
  29. package/dist/src/lib/eager/ProvideEagerModule.d.ts +0 -85
  30. package/dist/src/lib/eager/ProvideEagerModule.js +0 -186
  31. package/dist/src/lib/eager/ProvideEagerModule.js.map +0 -1
  32. package/dist/src/lib/eager/ProvideEagerModuleFactory.d.ts +0 -11
  33. package/dist/src/lib/eager/ProvideEagerModuleFactory.js +0 -30
  34. package/dist/src/lib/eager/ProvideEagerModuleFactory.js.map +0 -1
  35. package/dist/src/lib/eager/ProvideEagerModulePlugin.d.ts +0 -29
  36. package/dist/src/lib/eager/ProvideEagerModulePlugin.js +0 -193
  37. package/dist/src/lib/eager/ProvideEagerModulePlugin.js.map +0 -1
  38. package/dist/src/lib/eager/ProvideForEagerDependency.d.ts +0 -11
  39. package/dist/src/lib/eager/ProvideForEagerDependency.js +0 -27
  40. package/dist/src/lib/eager/ProvideForEagerDependency.js.map +0 -1
package/dist/package.json CHANGED
@@ -35,6 +35,8 @@
35
35
  "@module-federation/runtime-tools": "workspace:*",
36
36
  "@module-federation/manifest": "workspace:*",
37
37
  "@module-federation/managers": "workspace:*",
38
+ "@module-federation/dev-plugin": "workspace:*",
39
+ "@module-federation/native-federation-typescript": "workspace:*",
38
40
  "upath": "2.0.1"
39
41
  },
40
42
  "type": "commonjs"
@@ -97,12 +97,6 @@ export declare const WEBPACK_MODULE_TYPE_REMOTE: Readonly<'remote-module'>;
97
97
  * TODO: Document this better.
98
98
  */
99
99
  export declare const WEBPACK_MODULE_TYPE_PROVIDE: Readonly<'provide-module'>;
100
- /**
101
- * @type {Readonly<"eager-module">}
102
- * This is the module type used for the ModuleFederation feature's EagerModule class.
103
- * TODO: Document this better.
104
- */
105
- export declare const WEBPACK_MODULE_TYPE_EAGER: Readonly<'eager-module'>;
106
100
  /**
107
101
  * @type {Readonly<"consume-shared-module">}
108
102
  * This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
@@ -4,7 +4,7 @@
4
4
  Author Sean Larkin @TheLarkInn
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = exports.WEBPACK_MODULE_TYPE_EAGER = exports.WEBPACK_MODULE_TYPE_PROVIDE = exports.WEBPACK_MODULE_TYPE_REMOTE = exports.WEBPACK_MODULE_TYPE_FALLBACK = exports.WEBPACK_MODULE_TYPE_RUNTIME = exports.ASSET_MODULE_TYPE_RAW_DATA_URL = exports.ASSET_MODULE_TYPE_SOURCE = exports.ASSET_MODULE_TYPE_RESOURCE = exports.ASSET_MODULE_TYPE_INLINE = exports.ASSET_MODULE_TYPE = exports.CSS_MODULE_TYPE_AUTO = exports.CSS_MODULE_TYPE_MODULE = exports.CSS_MODULE_TYPE_GLOBAL = exports.CSS_MODULE_TYPE = exports.WEBASSEMBLY_MODULE_TYPE_SYNC = exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = exports.JSON_MODULE_TYPE = exports.JAVASCRIPT_MODULE_TYPE_ESM = exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = exports.JAVASCRIPT_MODULE_TYPE_AUTO = void 0;
7
+ exports.WEBPACK_MODULE_TYPE_LAZY_COMPILATION_PROXY = exports.WEBPACK_MODULE_TYPE_CONSUME_SHARED_MODULE = exports.WEBPACK_MODULE_TYPE_PROVIDE = exports.WEBPACK_MODULE_TYPE_REMOTE = exports.WEBPACK_MODULE_TYPE_FALLBACK = exports.WEBPACK_MODULE_TYPE_RUNTIME = exports.ASSET_MODULE_TYPE_RAW_DATA_URL = exports.ASSET_MODULE_TYPE_SOURCE = exports.ASSET_MODULE_TYPE_RESOURCE = exports.ASSET_MODULE_TYPE_INLINE = exports.ASSET_MODULE_TYPE = exports.CSS_MODULE_TYPE_AUTO = exports.CSS_MODULE_TYPE_MODULE = exports.CSS_MODULE_TYPE_GLOBAL = exports.CSS_MODULE_TYPE = exports.WEBASSEMBLY_MODULE_TYPE_SYNC = exports.WEBASSEMBLY_MODULE_TYPE_ASYNC = exports.JSON_MODULE_TYPE = exports.JAVASCRIPT_MODULE_TYPE_ESM = exports.JAVASCRIPT_MODULE_TYPE_DYNAMIC = exports.JAVASCRIPT_MODULE_TYPE_AUTO = void 0;
8
8
  /**
9
9
  * @type {Readonly<"javascript/auto">}
10
10
  */
@@ -104,12 +104,6 @@ exports.WEBPACK_MODULE_TYPE_REMOTE = 'remote-module';
104
104
  * TODO: Document this better.
105
105
  */
106
106
  exports.WEBPACK_MODULE_TYPE_PROVIDE = 'provide-module';
107
- /**
108
- * @type {Readonly<"eager-module">}
109
- * This is the module type used for the ModuleFederation feature's EagerModule class.
110
- * TODO: Document this better.
111
- */
112
- exports.WEBPACK_MODULE_TYPE_EAGER = 'eager-module';
113
107
  /**
114
108
  * @type {Readonly<"consume-shared-module">}
115
109
  * This is the module type used for the ModuleFederation feature's ConsumeSharedModule class.
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;AAEF;;GAEG;AACU,QAAA,2BAA2B,GACtC,iBAAiB,CAAC;AAEpB;;GAEG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,gBAAgB,GAAqB,MAAM,CAAC;AAEzD;;;;GAIG;AACU,QAAA,6BAA6B,GACxC,mBAAmB,CAAC;AAEtB;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,kBAAkB,CAAC;AAErB;;;GAGG;AACU,QAAA,eAAe,GAAoB,KAAK,CAAC;AAEtD;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,oBAAoB,GAAyB,UAAU,CAAC;AAErE;;;GAGG;AACU,QAAA,iBAAiB,GAAsB,OAAO,CAAC;AAE5D;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;GAGG;AACU,QAAA,2BAA2B,GAAwB,SAAS,CAAC;AAE1E;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,iBAAiB,CAAC;AAEpB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,eAAe,CAAC;AAElB;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,gBAAgB,CAAC;AAEnB;;;;GAIG;AACU,QAAA,yBAAyB,GACpC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,yCAAyC,GACpD,uBAAuB,CAAC;AAE1B;;;GAGG;AACU,QAAA,0CAA0C,GACrD,wBAAwB,CAAC;AAE3B,mGAAmG;AACnG,uCAAuC;AACvC,iFAAiF;AACjF,oEAAoE;AACpE,sHAAsH;AACtH,4JAA4J;AAC5J,2CAA2C;AAC3C,2KAA2K"}
1
+ {"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../../src/lib/Constants.ts"],"names":[],"mappings":";AAAA;;;EAGE;;;AAEF;;GAEG;AACU,QAAA,2BAA2B,GACtC,iBAAiB,CAAC;AAEpB;;GAEG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,gBAAgB,GAAqB,MAAM,CAAC;AAEzD;;;;GAIG;AACU,QAAA,6BAA6B,GACxC,mBAAmB,CAAC;AAEtB;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,kBAAkB,CAAC;AAErB;;;GAGG;AACU,QAAA,eAAe,GAAoB,KAAK,CAAC;AAEtD;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,sBAAsB,GAA2B,YAAY,CAAC;AAE3E;;;GAGG;AACU,QAAA,oBAAoB,GAAyB,UAAU,CAAC;AAErE;;;GAGG;AACU,QAAA,iBAAiB,GAAsB,OAAO,CAAC;AAE5D;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,0BAA0B,GACrC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,wBAAwB,GACnC,cAAc,CAAC;AAEjB;;;GAGG;AACU,QAAA,8BAA8B,GACzC,oBAAoB,CAAC;AAEvB;;;GAGG;AACU,QAAA,2BAA2B,GAAwB,SAAS,CAAC;AAE1E;;;;GAIG;AACU,QAAA,4BAA4B,GACvC,iBAAiB,CAAC;AAEpB;;;;GAIG;AACU,QAAA,0BAA0B,GACrC,eAAe,CAAC;AAElB;;;;GAIG;AACU,QAAA,2BAA2B,GACtC,gBAAgB,CAAC;AAEnB;;;GAGG;AACU,QAAA,yCAAyC,GACpD,uBAAuB,CAAC;AAE1B;;;GAGG;AACU,QAAA,0CAA0C,GACrD,wBAAwB,CAAC;AAE3B,mGAAmG;AACnG,uCAAuC;AACvC,iFAAiF;AACjF,oEAAoE;AACpE,sHAAsH;AACtH,4JAA4J;AAC5J,2CAA2C;AAC3C,2KAA2K"}
@@ -6,10 +6,10 @@ export declare class HoistContainerReferencesPlugin implements WebpackPluginInst
6
6
  processChunks(chunks: Iterable<Chunk>, compilation: Compilation): void;
7
7
  collectRuntimes(chunks: Iterable<Chunk>, runtimes: Set<string>): void;
8
8
  optimizeWithoutRuntimeChunk(chunks: Iterable<Chunk>, compilation: Compilation): void;
9
- integrateRuntimeChunks(chunks: Iterable<Chunk>, federationRuntimeChunk: Chunk, compilation: Compilation): void;
9
+ integrateRuntimeChunks(chunks: Iterable<Chunk>, federationRuntimeChunk: Chunk, federationRuntimePlugins: Chunk, compilation: Compilation): void;
10
10
  disconnectModulesFromChunk(compilation: Compilation, chunk: Chunk): void;
11
11
  optimizeWithRuntimeChunk(compilation: Compilation, runtimes: Set<string>): void;
12
- handleRuntimeChunks(compilation: Compilation, runtime: string, baseRuntimeName: string): void;
12
+ handleRuntimeChunks(compilation: Compilation, runtime: string, baseRuntimeName: string, basePluginsName: string): void;
13
13
  getNamedChunk(compilation: Compilation, newChunkName: string, defaultChunkName: string): Chunk | undefined;
14
14
  private chunkContainsContainerEntryModule;
15
15
  }
@@ -20,7 +20,7 @@ class HoistContainerReferencesPlugin {
20
20
  this.integratedChunks.add(chunkB);
21
21
  // Merge runtime
22
22
  //@ts-ignore
23
- chunkB.runtime = runtime.mergeRuntime(chunkA.runtime, chunkB.runtime);
23
+ chunkA.runtime = runtime.mergeRuntime(chunkA.runtime, chunkB.runtime);
24
24
  // getChunkModules is used here to create a clone, because disconnectChunkAndModule modifies
25
25
  for (const module of chunkGraph.getChunkModules(chunkB)) {
26
26
  // chunkGraph.disconnectChunkAndModule(chunkB, module);
@@ -67,29 +67,23 @@ class HoistContainerReferencesPlugin {
67
67
  // because this entrypoint is integrated using chunk group updates - this chunk cannot be emitted without causing multiple writes to same runtime
68
68
  // the federation-runtime serves no output process, it is used as a reference to hoist federation runtime once into all runtime chunks for eager consumption
69
69
  // this plugin serves
70
- // const federationRuntimeChunk =
71
- // compilation.namedChunks.get('federation-runtime');
72
- //
73
- // const federationRuntimePluginsChunk = compilation.namedChunks.get(
74
- // 'mfp-runtime-plugins',
75
- // );
76
- // if (federationRuntimeChunk) {
77
- // compilation.chunks.delete(federationRuntimeChunk);
78
- // this.integratedChunks.delete(federationRuntimeChunk);
79
- // }
80
- // if (federationRuntimePluginsChunk) {
81
- // compilation.chunks.delete(federationRuntimePluginsChunk);
82
- // this.integratedChunks.delete(federationRuntimePluginsChunk);
83
- // }
84
- //@ts-ignore
85
- // compilation.chunks.delete(compilation.namedChunks.get('backup'))
86
- // compilation.namedChunks.delete('backup');
87
- // compilation.namedChunks.delete('federation-runtime');
88
- // compilation.namedChunks.delete('mfp-runtime-plugins');
89
- // for (const chunk of this.integratedChunks) {
90
- // compilation.chunks.delete(chunk);
91
- // if (chunk.name) compilation.namedChunks.delete(chunk.name);
92
- // }
70
+ const federationRuntimeChunk = compilation.namedChunks.get('federation-runtime');
71
+ const federationRuntimePluginsChunk = compilation.namedChunks.get('mfp-runtime-plugins');
72
+ if (federationRuntimeChunk) {
73
+ compilation.chunks.delete(federationRuntimeChunk);
74
+ this.integratedChunks.delete(federationRuntimeChunk);
75
+ }
76
+ if (federationRuntimePluginsChunk) {
77
+ compilation.chunks.delete(federationRuntimePluginsChunk);
78
+ this.integratedChunks.delete(federationRuntimePluginsChunk);
79
+ }
80
+ compilation.namedChunks.delete('federation-runtime');
81
+ compilation.namedChunks.delete('mfp-runtime-plugins');
82
+ for (const chunk of this.integratedChunks) {
83
+ compilation.chunks.delete(chunk);
84
+ if (chunk.name)
85
+ compilation.namedChunks.delete(chunk.name);
86
+ }
93
87
  });
94
88
  });
95
89
  }
@@ -120,18 +114,23 @@ class HoistContainerReferencesPlugin {
120
114
  }
121
115
  optimizeWithoutRuntimeChunk(chunks, compilation) {
122
116
  const federationRuntimeChunk = compilation.namedChunks.get('federation-runtime');
123
- if (federationRuntimeChunk) {
124
- this.integrateRuntimeChunks(chunks, federationRuntimeChunk, compilation);
117
+ const federationRuntimePlugins = compilation.namedChunks.get('mfp-runtime-plugins');
118
+ if (federationRuntimeChunk && federationRuntimePlugins) {
119
+ this.integrateRuntimeChunks(chunks, federationRuntimeChunk, federationRuntimePlugins, compilation);
125
120
  this.disconnectModulesFromChunk(compilation, federationRuntimeChunk);
121
+ this.disconnectModulesFromChunk(compilation, federationRuntimePlugins);
126
122
  }
127
123
  }
128
- integrateRuntimeChunks(chunks, federationRuntimeChunk, compilation) {
124
+ integrateRuntimeChunks(chunks, federationRuntimeChunk, federationRuntimePlugins, compilation) {
129
125
  for (const chunk of chunks) {
130
126
  if (chunk.hasRuntime() &&
131
127
  !this.chunkContainsContainerEntryModule(chunk, compilation)) {
132
128
  if (chunk !== federationRuntimeChunk) {
133
129
  this.integrateChunks(chunk, federationRuntimeChunk, compilation);
134
130
  }
131
+ if (chunk !== federationRuntimePlugins) {
132
+ this.integrateChunks(chunk, federationRuntimePlugins, compilation);
133
+ }
135
134
  }
136
135
  }
137
136
  }
@@ -143,24 +142,30 @@ class HoistContainerReferencesPlugin {
143
142
  }
144
143
  optimizeWithRuntimeChunk(compilation, runtimes) {
145
144
  const baseRuntimeName = 'federation-runtime';
145
+ const basePluginsName = 'mfp-runtime-plugins';
146
146
  for (const runtime of runtimes) {
147
- this.handleRuntimeChunks(compilation, runtime, baseRuntimeName);
147
+ this.handleRuntimeChunks(compilation, runtime, baseRuntimeName, basePluginsName);
148
148
  }
149
149
  }
150
- handleRuntimeChunks(compilation, runtime, baseRuntimeName) {
150
+ handleRuntimeChunks(compilation, runtime, baseRuntimeName, basePluginsName) {
151
151
  const runtimeChunk = compilation.namedChunks.get(runtime);
152
152
  if (!runtimeChunk ||
153
153
  this.chunkContainsContainerEntryModule(runtimeChunk, compilation))
154
154
  return;
155
155
  const federationRuntimeChunk = this.getNamedChunk(compilation, `${baseRuntimeName}-${runtime}`, baseRuntimeName);
156
+ const pluginsRuntimeChunk = this.getNamedChunk(compilation, `${basePluginsName}-${runtime}`, basePluginsName);
156
157
  if (federationRuntimeChunk) {
157
158
  this.integrateChunks(runtimeChunk, federationRuntimeChunk, compilation);
158
159
  }
160
+ if (pluginsRuntimeChunk) {
161
+ this.integrateChunks(runtimeChunk, pluginsRuntimeChunk, compilation);
162
+ }
159
163
  }
160
164
  getNamedChunk(compilation, newChunkName, defaultChunkName) {
161
- if (compilation.namedChunks.has(newChunkName))
162
- return compilation.namedChunks.get(newChunkName);
163
- return compilation.namedChunks.get(defaultChunkName);
165
+ return (
166
+ // search for runtime allocated entry chunk, fall back to default runtime chunk (undefined, false, etc)
167
+ compilation.namedChunks.get(newChunkName) ||
168
+ compilation.namedChunks.get(defaultChunkName));
164
169
  }
165
170
  chunkContainsContainerEntryModule(chunk, compilation) {
166
171
  let hasContainerEntryModule = false;
@@ -1 +1 @@
1
- {"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Compiler, WebpackPluginInstance } from 'webpack';
2
- import type { moduleFederationPlugin } from '@module-federation/sdk';
2
+ import { type moduleFederationPlugin } from '@module-federation/sdk';
3
3
  declare class ModuleFederationPlugin implements WebpackPluginInstance {
4
4
  private _options;
5
5
  /**
@@ -8,13 +8,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
8
8
  };
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
11
+ const manifest_1 = require("@module-federation/manifest");
12
+ const managers_1 = require("@module-federation/managers");
13
+ const dev_plugin_1 = require("@module-federation/dev-plugin");
11
14
  const SharePlugin_1 = __importDefault(require("../sharing/SharePlugin"));
12
15
  const ContainerPlugin_1 = __importDefault(require("./ContainerPlugin"));
13
16
  const ContainerReferencePlugin_1 = __importDefault(require("./ContainerReferencePlugin"));
14
17
  const ModuleFederationPlugin_1 = __importDefault(require("../../schemas/container/ModuleFederationPlugin"));
15
18
  const FederationRuntimePlugin_1 = __importDefault(require("./runtime/FederationRuntimePlugin"));
16
- const manifest_1 = require("@module-federation/manifest");
17
- const managers_1 = require("@module-federation/managers");
19
+ const TypesPlugin_1 = require("./TypesPlugin");
18
20
  const isValidExternalsType = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/schemas/plugins/container/ExternalsType.check.js'));
19
21
  const createSchemaValidation = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/create-schema-validation'));
20
22
  const validate = createSchemaValidation(
@@ -55,6 +57,7 @@ class ModuleFederationPlugin {
55
57
  ContainerPlugin_1.default.patchChunkSplit(compiler, 'federation-runtime');
56
58
  ContainerPlugin_1.default.patchChunkSplit(compiler, 'mfp-runtime-plugins');
57
59
  }
60
+ new dev_plugin_1.DevPlugin(options).apply(compiler);
58
61
  if (!disableManifest && useContainerPlugin) {
59
62
  try {
60
63
  const containerManager = new managers_1.ContainerManager();
@@ -105,6 +108,7 @@ class ModuleFederationPlugin {
105
108
  }).apply(compiler);
106
109
  }
107
110
  });
111
+ new TypesPlugin_1.TypesPlugin(options).apply(compiler);
108
112
  if (!disableManifest) {
109
113
  const pkg = require('../../../../package.json');
110
114
  new manifest_1.StatsPlugin(options, {
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModuleFederationPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/ModuleFederationPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type moduleFederationPlugin } from '@module-federation/sdk';
2
+ import type { Compiler, WebpackPluginInstance } from 'webpack';
3
+ declare class TypesPlugin implements WebpackPluginInstance {
4
+ options: moduleFederationPlugin.ModuleFederationPluginOptions;
5
+ constructor(options: moduleFederationPlugin.ModuleFederationPluginOptions);
6
+ apply(compiler: Compiler): void;
7
+ }
8
+ export { TypesPlugin };
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TypesPlugin = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const sdk_1 = require("@module-federation/sdk");
10
+ const webpack_1 = require("@module-federation/native-federation-typescript/webpack");
11
+ class TypesPlugin {
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
15
+ apply(compiler) {
16
+ const { options } = this;
17
+ const isTSProject = (tsConfigPath, context = process.cwd()) => {
18
+ try {
19
+ let filepath = tsConfigPath
20
+ ? tsConfigPath
21
+ : path_1.default.resolve(context, './tsconfig.json');
22
+ if (!path_1.default.isAbsolute(filepath)) {
23
+ filepath = path_1.default.resolve(context, filepath);
24
+ }
25
+ return fs_1.default.existsSync(filepath);
26
+ }
27
+ catch (err) {
28
+ return false;
29
+ }
30
+ };
31
+ const normalizedDtsOptions = (0, sdk_1.normalizeOptions)(isTSProject(undefined, compiler.context), {
32
+ disableGenerateTypes: false,
33
+ disableConsumeTypes: false,
34
+ remote: {
35
+ generateAPITypes: true,
36
+ compileInChildProcess: true,
37
+ abortOnError: false,
38
+ extractThirdParty: true,
39
+ extractRemoteTypes: true,
40
+ },
41
+ host: { abortOnError: false, consumeAPITypes: true },
42
+ extraOptions: {},
43
+ }, 'mfOptions.dts')(options.dts);
44
+ if (typeof normalizedDtsOptions === 'object') {
45
+ if (!normalizedDtsOptions.disableGenerateTypes) {
46
+ (0, webpack_1.NativeFederationTypeScriptRemote)({
47
+ remote: {
48
+ implementation: normalizedDtsOptions.implementation,
49
+ context: compiler.context,
50
+ moduleFederationConfig: options,
51
+ ...normalizedDtsOptions.remote,
52
+ },
53
+ extraOptions: normalizedDtsOptions.extraOptions || {},
54
+ // @ts-ignore
55
+ }).apply(compiler);
56
+ }
57
+ if (!normalizedDtsOptions.disableConsumeTypes) {
58
+ (0, webpack_1.NativeFederationTypeScriptHost)({
59
+ host: {
60
+ implementation: normalizedDtsOptions.implementation,
61
+ context: compiler.context,
62
+ moduleFederationConfig: options,
63
+ ...normalizedDtsOptions.host,
64
+ },
65
+ extraOptions: normalizedDtsOptions.extraOptions || {},
66
+ // @ts-ignore
67
+ }).apply(compiler);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ exports.TypesPlugin = TypesPlugin;
73
+ //# sourceMappingURL=TypesPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/container/TypesPlugin.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,4CAAoB;AACpB,gDAGgC;AAEhC,qFAGiE;AAEjE,MAAM,WAAW;IAEf,YAAY,OAA6D;QACvE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,MAAM,WAAW,GAAG,CAAC,YAAqB,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE;YACrE,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,YAAY;oBACzB,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;gBAC7C,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC7C,CAAC;gBACD,OAAO,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,oBAAoB,GACxB,IAAA,sBAAgB,EACd,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxC;YACE,oBAAoB,EAAE,KAAK;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,MAAM,EAAE;gBACN,gBAAgB,EAAE,IAAI;gBACtB,qBAAqB,EAAE,IAAI;gBAC3B,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,kBAAkB,EAAE,IAAI;aACzB;YACD,IAAI,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE;YACpD,YAAY,EAAE,EAAE;SACjB,EACD,eAAe,CAChB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,IAAI,OAAO,oBAAoB,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,EAAE,CAAC;gBAC/C,IAAA,0CAAgC,EAAC;oBAC/B,MAAM,EAAE;wBACN,cAAc,EAAE,oBAAoB,CAAC,cAAc;wBACnD,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,sBAAsB,EAAE,OAAO;wBAC/B,GAAG,oBAAoB,CAAC,MAAM;qBAC/B;oBACD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;oBACrD,aAAa;iBACd,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,CAAC;gBAC9C,IAAA,wCAA8B,EAAC;oBAC7B,IAAI,EAAE;wBACJ,cAAc,EAAE,oBAAoB,CAAC,cAAc;wBACnD,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,sBAAsB,EAAE,OAAO;wBAC/B,GAAG,oBAAoB,CAAC,IAAI;qBAC7B;oBACD,YAAY,EAAE,oBAAoB,CAAC,YAAY,IAAI,EAAE;oBACrD,aAAa;iBACd,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAEQ,kCAAW"}
@@ -0,0 +1,16 @@
1
+ import type { Chunk } from 'webpack';
2
+ declare const RuntimeModule: typeof import("webpack").RuntimeModule;
3
+ declare class FederationInitModule extends RuntimeModule {
4
+ containerName: string;
5
+ entryFilePath: string;
6
+ chunksRuntimePluginsDependsOn: Set<Chunk> | undefined;
7
+ constructor(containerName: string, entryFilePath: string, chunksRuntimePluginsDependsOn: Set<Chunk> | undefined);
8
+ private chunkContainsFederationRuntime;
9
+ getModuleByInstance(): {
10
+ federationRuntimeModuleId: string | number | undefined;
11
+ runtimePluginModuleId: string | number | undefined;
12
+ chunk: Chunk;
13
+ } | null;
14
+ generate(): string | null;
15
+ }
16
+ export default FederationInitModule;
@@ -0,0 +1,89 @@
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 } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
5
+ class FederationInitModule extends RuntimeModule {
6
+ constructor(containerName, entryFilePath, chunksRuntimePluginsDependsOn) {
7
+ super('federation runtime init', RuntimeModule.STAGE_ATTACH);
8
+ this.containerName = containerName;
9
+ this.entryFilePath = entryFilePath;
10
+ this.chunksRuntimePluginsDependsOn = chunksRuntimePluginsDependsOn;
11
+ }
12
+ chunkContainsFederationRuntime(chunk, compilation) {
13
+ let federationRuntimeModule = null;
14
+ let federationRuntimePluginModule = null;
15
+ for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) {
16
+ if (!federationRuntimeModule &&
17
+ module.identifier?.()?.includes('.federation/federation')) {
18
+ federationRuntimeModule = module;
19
+ }
20
+ else if (!federationRuntimePluginModule &&
21
+ module.identifier?.()?.includes('.federation/plugin')) {
22
+ federationRuntimePluginModule = module;
23
+ }
24
+ if (federationRuntimeModule && federationRuntimePluginModule)
25
+ break;
26
+ }
27
+ return { federationRuntimeModule, federationRuntimePluginModule };
28
+ }
29
+ getModuleByInstance() {
30
+ if (!this.compilation ||
31
+ !this.chunk ||
32
+ !this.compilation.chunkGraph ||
33
+ !this.chunk.hasRuntime())
34
+ return null;
35
+ const { federationRuntimeModule, federationRuntimePluginModule } = this.chunkContainsFederationRuntime(this.chunk, this.compilation);
36
+ let runtimePluginModuleId;
37
+ let federationRuntimeModuleId;
38
+ if (federationRuntimeModule) {
39
+ federationRuntimeModuleId = this.compilation.chunkGraph.getModuleId(federationRuntimeModule);
40
+ }
41
+ if (federationRuntimePluginModule) {
42
+ runtimePluginModuleId = this.compilation.chunkGraph.getModuleId(federationRuntimePluginModule);
43
+ }
44
+ return {
45
+ federationRuntimeModuleId,
46
+ runtimePluginModuleId,
47
+ chunk: this.chunk,
48
+ };
49
+ }
50
+ generate() {
51
+ if (!this.compilation || !this.chunk)
52
+ return '';
53
+ const moduleInstance = this.getModuleByInstance();
54
+ // Early return if no moduleInstance is found
55
+ if (!moduleInstance)
56
+ return '';
57
+ const { federationRuntimeModuleId, runtimePluginModuleId } = moduleInstance;
58
+ const requireStatements = [];
59
+ // Directly push federationRuntimeModuleId require statement if it exists
60
+ if (federationRuntimeModuleId) {
61
+ requireStatements.push(`__webpack_require__(${JSON.stringify(federationRuntimeModuleId)});`);
62
+ }
63
+ if (runtimePluginModuleId) {
64
+ // check if needs async boundary
65
+ const chunkConsumesStatements = this.chunksRuntimePluginsDependsOn
66
+ ? Array.from(this.chunksRuntimePluginsDependsOn)
67
+ .map((chunk) => `__webpack_require__.f.consumes(${JSON.stringify(chunk.id || chunk.name)}, consumes);`)
68
+ .join('\n')
69
+ : '';
70
+ if (chunkConsumesStatements) {
71
+ requireStatements.push(Template.asString([
72
+ `var consumes = [];`,
73
+ `if(__webpack_require__.f && __webpack_require__.f.consumes){`,
74
+ Template.indent(chunkConsumesStatements),
75
+ `}`,
76
+ `Promise.all(consumes).then(function() {`,
77
+ Template.indent(`__webpack_require__(${JSON.stringify(runtimePluginModuleId)});`),
78
+ `});`,
79
+ ]));
80
+ }
81
+ else {
82
+ requireStatements.push(`__webpack_require__(${JSON.stringify(runtimePluginModuleId)});`);
83
+ }
84
+ }
85
+ return Template.asString(requireStatements);
86
+ }
87
+ }
88
+ exports.default = FederationInitModule;
89
+ //# sourceMappingURL=FederationInitModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FederationInitModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/FederationInitModule.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
7
7
  const FederationRuntimeModule_1 = __importDefault(require("./FederationRuntimeModule"));
8
- const EagerRuntimeModule_1 = __importDefault(require("../../eager/EagerRuntimeModule"));
8
+ const FederationInitModule_1 = __importDefault(require("./FederationInitModule"));
9
9
  const utils_1 = require("./utils");
10
10
  const fs_1 = __importDefault(require("fs"));
11
11
  const path_1 = __importDefault(require("path"));
12
12
  const constant_1 = require("../constant");
13
13
  const HoistContainerReferencesPlugin_1 = __importDefault(require("../HoistContainerReferencesPlugin"));
14
- const ProvideEagerModulePlugin_1 = __importDefault(require("../../eager/ProvideEagerModulePlugin"));
15
14
  const { RuntimeGlobals, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
16
15
  const { mkdirpSync } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/fs'));
17
16
  const RuntimeToolsPath = require.resolve('@module-federation/runtime-tools');
@@ -105,30 +104,25 @@ class FederationRuntimePlugin {
105
104
  }
106
105
  prependEntry(compiler) {
107
106
  this.ensureFiles();
108
- new ProvideEagerModulePlugin_1.default({
109
- provides: [
110
- {
111
- [this.entryFilePath]: {
112
- shareKey: this.entryFilePath,
113
- shareScope: undefined,
114
- version: false,
115
- eager: true,
116
- requiredVersion: false,
117
- strictVersion: undefined,
118
- singleton: undefined,
119
- },
120
- [this.pluginsFilePath]: {
121
- shareKey: this.pluginsFilePath,
122
- shareScope: undefined,
123
- version: false,
124
- eager: true,
125
- requiredVersion: false,
126
- strictVersion: undefined,
127
- singleton: undefined,
128
- },
129
- },
130
- ],
131
- }).apply(compiler);
107
+ (0, utils_1.modifyEntry)({
108
+ compiler,
109
+ prependEntry: (entry) => {
110
+ Object.keys(entry).forEach((key) => {
111
+ const entryItem = entry[key];
112
+ const prefix = entryItem.runtime ? `-${entryItem.runtime}` : '';
113
+ const runtimePluginKey = `mfp-runtime-plugins${prefix}`;
114
+ const federationRuntimeKey = `federation-runtime${prefix}`;
115
+ entry[runtimePluginKey] = {
116
+ import: [this.pluginsFilePath],
117
+ runtime: entryItem.runtime,
118
+ };
119
+ entry[federationRuntimeKey] = {
120
+ import: [this.entryFilePath],
121
+ runtime: entryItem.runtime,
122
+ };
123
+ });
124
+ },
125
+ });
132
126
  }
133
127
  injectRuntime(compiler) {
134
128
  if (!this.options || !this.options.name) {
@@ -138,6 +132,14 @@ class FederationRuntimePlugin {
138
132
  const initOptionsWithoutShared = (0, utils_1.normalizeRuntimeInitOptionsWithOutShared)(this.options);
139
133
  const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals || {});
140
134
  compiler.hooks.thisCompilation.tap(this.constructor.name, (compilation, { normalModuleFactory }) => {
135
+ let chunksRuntimePluginsDependsOn = undefined;
136
+ compilation.hooks.afterOptimizeChunks.tap(this.constructor.name, (chunk) => {
137
+ const runtimePluginEntry = compilation.namedChunks.get('mfp-runtime-plugins');
138
+ if (runtimePluginEntry) {
139
+ chunksRuntimePluginsDependsOn =
140
+ runtimePluginEntry.getAllInitialChunks();
141
+ }
142
+ });
141
143
  compilation.hooks.additionalTreeRuntimeRequirements.tap(this.constructor.name, (chunk, runtimeRequirements) => {
142
144
  if (runtimeRequirements.has(federationGlobal)) {
143
145
  return;
@@ -146,11 +148,8 @@ class FederationRuntimePlugin {
146
148
  runtimeRequirements.add(RuntimeGlobals.moduleCache);
147
149
  runtimeRequirements.add(RuntimeGlobals.compatGetDefaultExport);
148
150
  runtimeRequirements.add(federationGlobal);
149
- const includesEagerModules = compilation.chunkGraph.getChunkModulesIterableBySourceType(chunk, 'eager-init');
150
151
  compilation.addRuntimeModule(chunk, new FederationRuntimeModule_1.default(runtimeRequirements, name, initOptionsWithoutShared));
151
- if (includesEagerModules) {
152
- compilation.addRuntimeModule(chunk, new EagerRuntimeModule_1.default());
153
- }
152
+ compilation.addRuntimeModule(chunk, new FederationInitModule_1.default(name, this.entryFilePath, chunksRuntimePluginsDependsOn));
154
153
  });
155
154
  });
156
155
  }