@module-federation/enhanced 0.5.2 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/package.json +3 -2
  2. package/dist/src/declarations/plugins/container/WebpackError.d.ts +2 -1
  3. package/dist/src/lib/container/ContainerEntryDependency.d.ts +20 -22
  4. package/dist/src/lib/container/ContainerEntryModule.d.ts +77 -70
  5. package/dist/src/lib/container/ContainerEntryModuleFactory.d.ts +10 -14
  6. package/dist/src/lib/container/ContainerExposedDependency.d.ts +25 -18
  7. package/dist/src/lib/container/ContainerPlugin.js +4 -12
  8. package/dist/src/lib/container/ContainerPlugin.js.map +1 -1
  9. package/dist/src/lib/container/ContainerReferencePlugin.js +1 -3
  10. package/dist/src/lib/container/ContainerReferencePlugin.js.map +1 -1
  11. package/dist/src/lib/container/FallbackDependency.d.ts +20 -14
  12. package/dist/src/lib/container/FallbackItemDependency.d.ts +10 -3
  13. package/dist/src/lib/container/FallbackModule.d.ts +70 -52
  14. package/dist/src/lib/container/FallbackModuleFactory.d.ts +10 -10
  15. package/dist/src/lib/container/HoistContainerReferencesPlugin.d.ts +9 -4
  16. package/dist/src/lib/container/HoistContainerReferencesPlugin.js +165 -30
  17. package/dist/src/lib/container/HoistContainerReferencesPlugin.js.map +1 -1
  18. package/dist/src/lib/container/ModuleFederationPlugin.js +6 -9
  19. package/dist/src/lib/container/ModuleFederationPlugin.js.map +1 -1
  20. package/dist/src/lib/container/RemoteModule.d.ts +73 -88
  21. package/dist/src/lib/container/RemoteModule.js +0 -1
  22. package/dist/src/lib/container/RemoteModule.js.map +1 -1
  23. package/dist/src/lib/container/RemoteRuntimeModule.d.ts +7 -10
  24. package/dist/src/lib/container/RemoteRuntimeModule.js +10 -0
  25. package/dist/src/lib/container/RemoteRuntimeModule.js.map +1 -1
  26. package/dist/src/lib/container/RemoteToExternalDependency.d.ts +9 -3
  27. package/dist/src/lib/container/options.d.ts +3 -12
  28. package/dist/src/lib/container/options.js +6 -7
  29. package/dist/src/lib/container/options.js.map +1 -1
  30. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.d.ts +21 -0
  31. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js +215 -0
  32. package/dist/src/lib/container/runtime/ChildCompilationRuntimePlugin.js.map +1 -0
  33. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.d.ts +9 -0
  34. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js +81 -0
  35. package/dist/src/lib/container/runtime/EmbedFederationRuntimeModule.js.map +1 -0
  36. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.d.ts +7 -0
  37. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js +38 -0
  38. package/dist/src/lib/container/runtime/EmbedFederationRuntimePlugin.js.map +1 -0
  39. package/dist/src/lib/container/runtime/FederationRuntimeModule.d.ts +2 -2
  40. package/dist/src/lib/container/runtime/FederationRuntimeModule.js.map +1 -1
  41. package/dist/src/lib/container/runtime/FederationRuntimePlugin.d.ts +2 -2
  42. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js +105 -39
  43. package/dist/src/lib/container/runtime/FederationRuntimePlugin.js.map +1 -1
  44. package/dist/src/lib/sharing/ConsumeSharedFallbackDependency.d.ts +10 -3
  45. package/dist/src/lib/sharing/ConsumeSharedModule.d.ts +104 -97
  46. package/dist/src/lib/sharing/ConsumeSharedPlugin.d.ts +6 -28
  47. package/dist/src/lib/sharing/ConsumeSharedPlugin.js +1 -3
  48. package/dist/src/lib/sharing/ConsumeSharedPlugin.js.map +1 -1
  49. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.d.ts +11 -29
  50. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js +7 -0
  51. package/dist/src/lib/sharing/ConsumeSharedRuntimeModule.js.map +1 -1
  52. package/dist/src/lib/sharing/ProvideForSharedDependency.d.ts +11 -3
  53. package/dist/src/lib/sharing/ProvideSharedDependency.d.ts +37 -35
  54. package/dist/src/lib/sharing/ProvideSharedModule.d.ts +83 -65
  55. package/dist/src/lib/sharing/ProvideSharedModuleFactory.d.ts +10 -17
  56. package/dist/src/lib/sharing/ProvideSharedPlugin.d.ts +19 -37
  57. package/dist/src/lib/sharing/ProvideSharedPlugin.js +1 -3
  58. package/dist/src/lib/sharing/ProvideSharedPlugin.js.map +1 -1
  59. package/dist/src/lib/sharing/SharePlugin.d.ts +13 -39
  60. package/dist/src/lib/sharing/ShareRuntimeModule.d.ts +7 -12
  61. package/dist/src/lib/sharing/resolveMatchedConfigs.d.ts +8 -12
  62. package/dist/src/lib/sharing/utils.d.ts +29 -21
  63. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.d.ts +11 -0
  64. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js +94 -0
  65. package/dist/src/lib/startup/MfStartupChunkDependenciesPlugin.js.map +1 -0
  66. package/dist/src/lib/startup/StartupHelpers.d.ts +6 -0
  67. package/dist/src/lib/startup/StartupHelpers.js +190 -0
  68. package/dist/src/lib/startup/StartupHelpers.js.map +1 -0
  69. package/dist/src/webpack.js.map +1 -1
  70. package/dist/src/wrapper/HoistContainerReferencesPlugin.d.ts +5 -2
  71. package/dist/src/wrapper/HoistContainerReferencesPlugin.js +7 -3
  72. package/dist/src/wrapper/HoistContainerReferencesPlugin.js.map +1 -1
  73. package/package.json +10 -9
  74. package/dist/src/declarations/plugins/container/Module.d.ts +0 -138
  75. package/dist/src/schemas/container/ModuleFederationPlugin.check.js +0 -4001
  76. package/dist/src/schemas/container/ModuleFederationPlugin.check.js.map +0 -1
  77. package/dist/src/schemas/container/ModuleFederationPlugin.d.ts +0 -678
  78. package/dist/src/schemas/container/ModuleFederationPlugin.js +0 -774
  79. package/dist/src/schemas/container/ModuleFederationPlugin.js.map +0 -1
@@ -0,0 +1,94 @@
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
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
7
+ const StartupHelpers_1 = require("./StartupHelpers");
8
+ const ContainerEntryModule_1 = __importDefault(require("../container/ContainerEntryModule"));
9
+ const { RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
10
+ const StartupEntrypointRuntimeModule = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/runtime/StartupEntrypointRuntimeModule'));
11
+ const ConcatenatedModule = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/optimize/ConcatenatedModule'));
12
+ class StartupChunkDependenciesPlugin {
13
+ constructor(options) {
14
+ this.asyncChunkLoading = options.asyncChunkLoading ?? true;
15
+ }
16
+ isEnabledForChunk(chunk, compilation) {
17
+ if (chunk.id === 'build time chunk')
18
+ return false;
19
+ const [finalEntry] = compilation.chunkGraph.getChunkEntryModulesIterable(chunk) || [];
20
+ return !(finalEntry instanceof ContainerEntryModule_1.default);
21
+ }
22
+ apply(compiler) {
23
+ compiler.hooks.thisCompilation.tap('MfStartupChunkDependenciesPlugin', (compilation) => {
24
+ const isEnabledForChunk = (chunk) => this.isEnabledForChunk(chunk, compilation);
25
+ compilation.hooks.additionalTreeRuntimeRequirements.tap('StartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
26
+ if (!isEnabledForChunk(chunk))
27
+ return;
28
+ if (chunk.hasRuntime()) {
29
+ set.add(RuntimeGlobals.startupEntrypoint);
30
+ set.add(RuntimeGlobals.ensureChunk);
31
+ set.add(RuntimeGlobals.ensureChunkIncludeEntries);
32
+ }
33
+ });
34
+ compilation.hooks.additionalChunkRuntimeRequirements.tap('MfStartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
35
+ if (!isEnabledForChunk(chunk))
36
+ return;
37
+ if (chunkGraph.getNumberOfEntryModules(chunk) === 0)
38
+ return;
39
+ set.add(StartupHelpers_1.federationStartup);
40
+ });
41
+ compilation.hooks.runtimeRequirementInTree
42
+ .for(RuntimeGlobals.startupEntrypoint)
43
+ .tap('StartupChunkDependenciesPlugin', (chunk, set, { chunkGraph }) => {
44
+ if (!isEnabledForChunk(chunk))
45
+ return;
46
+ set.add(RuntimeGlobals.require);
47
+ set.add(RuntimeGlobals.ensureChunk);
48
+ set.add(RuntimeGlobals.ensureChunkIncludeEntries);
49
+ compilation.addRuntimeModule(chunk, new StartupEntrypointRuntimeModule(this.asyncChunkLoading));
50
+ });
51
+ const { renderStartup } = compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);
52
+ renderStartup.tap('MfStartupChunkDependenciesPlugin', (startupSource, lastInlinedModule, renderContext) => {
53
+ const { chunk, chunkGraph, runtimeTemplate } = renderContext;
54
+ if (!isEnabledForChunk(chunk)) {
55
+ return startupSource;
56
+ }
57
+ let federationRuntimeModule = null;
58
+ const isFederationModule = (module) => module.context?.endsWith('.federation');
59
+ for (const module of chunkGraph.getChunkEntryModulesIterable(chunk)) {
60
+ if (isFederationModule(module)) {
61
+ federationRuntimeModule = module;
62
+ break;
63
+ }
64
+ if (module && '_modules' in module) {
65
+ for (const concatModule of module._modules) {
66
+ if (isFederationModule(concatModule)) {
67
+ federationRuntimeModule = module;
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ if (!federationRuntimeModule) {
74
+ return startupSource;
75
+ }
76
+ const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
77
+ const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
78
+ const federation = chunkRuntimeRequirements.has(StartupHelpers_1.federationStartup) ||
79
+ treeRuntimeRequirements.has(StartupHelpers_1.federationStartup);
80
+ if (!federation) {
81
+ return startupSource;
82
+ }
83
+ const federationModuleId = chunkGraph.getModuleId(federationRuntimeModule);
84
+ const entryModules = Array.from(chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk));
85
+ const entryGeneration = runtimeTemplate.outputOptions.module
86
+ ? StartupHelpers_1.generateESMEntryStartup
87
+ : StartupHelpers_1.generateEntryStartup;
88
+ return new compiler.webpack.sources.ConcatSource(`${RuntimeGlobals.require}(${JSON.stringify(federationModuleId)});\n`, entryGeneration(compilation, chunkGraph, runtimeTemplate, entryModules, chunk, false));
89
+ });
90
+ });
91
+ }
92
+ }
93
+ exports.default = StartupChunkDependenciesPlugin;
94
+ //# sourceMappingURL=MfStartupChunkDependenciesPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MfStartupChunkDependenciesPlugin.js","sourceRoot":"","sources":["../../../../src/lib/startup/MfStartupChunkDependenciesPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { Compilation, Chunk, ChunkGraph } from 'webpack';
2
+ import type { EntryModuleWithChunkGroup } from 'webpack/lib/ChunkGraph';
3
+ import type RuntimeTemplate from 'webpack/lib/RuntimeTemplate';
4
+ export declare const federationStartup = "federation-entry-startup";
5
+ export declare const generateEntryStartup: (compilation: Compilation, chunkGraph: ChunkGraph, runtimeTemplate: RuntimeTemplate, entries: EntryModuleWithChunkGroup[], chunk: Chunk, passive: boolean) => string;
6
+ export declare const generateESMEntryStartup: (compilation: Compilation, chunkGraph: ChunkGraph, runtimeTemplate: RuntimeTemplate, entries: EntryModuleWithChunkGroup[], chunk: Chunk, passive: boolean) => string;
@@ -0,0 +1,190 @@
1
+ /*
2
+ MIT License http://www.opensource.org/licenses/mit-license.php
3
+ Author Tobias Koppers @sokra, Zack Jackson @ScriptedAlchemy
4
+ */
5
+ 'use strict';
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.generateESMEntryStartup = exports.generateEntryStartup = exports.federationStartup = void 0;
8
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
9
+ const { RuntimeGlobals, Template } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
10
+ const { isSubset } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/SetHelpers'));
11
+ const { getAllChunks } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/javascript/ChunkHelpers'));
12
+ const HotUpdateChunk = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/HotUpdateChunk'));
13
+ const { getUndoPath } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/util/identifier'));
14
+ const EXPORT_PREFIX = `var ${RuntimeGlobals.exports} = `;
15
+ exports.federationStartup = 'federation-entry-startup';
16
+ // Abstracted from esm chunk format plugin in webpack, i only need the startup portion
17
+ // https://github.com/webpack/webpack/blob/c802a98f58e26dbfd727ee757ebad7c38b3c77aa/lib/esm/ModuleChunkFormatPlugin.js#L138
18
+ const generateEntryStartup = (compilation, chunkGraph, runtimeTemplate, entries, chunk, passive) => {
19
+ /** @type {string[]} */
20
+ const runtime = [
21
+ `var __webpack_exec__ = ${runtimeTemplate.returningFunction(`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`, 'moduleId')}`,
22
+ '',
23
+ '\n',
24
+ 'var promises = [];',
25
+ ];
26
+ const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
27
+ const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
28
+ const federation = chunkRuntimeRequirements.has(exports.federationStartup) ||
29
+ treeRuntimeRequirements.has(exports.federationStartup);
30
+ const hasRemotes = chunkRuntimeRequirements.has(RuntimeGlobals.currentRemoteGetScope) ||
31
+ // check if tree has req
32
+ treeRuntimeRequirements.has(RuntimeGlobals.currentRemoteGetScope) ||
33
+ // check if chunk contains remote module types
34
+ // currentRemoteGetScope is not reliable requirement for host check
35
+ !!chunkGraph.getChunkModulesIterableBySourceType(chunk, 'remote');
36
+ const hasConsumes = chunkRuntimeRequirements.has(RuntimeGlobals.initializeSharing) ||
37
+ treeRuntimeRequirements.has(RuntimeGlobals.initializeSharing) ||
38
+ chunkRuntimeRequirements.has(RuntimeGlobals.shareScopeMap) ||
39
+ treeRuntimeRequirements.has(RuntimeGlobals.shareScopeMap);
40
+ const runModule = (id) => {
41
+ return `__webpack_exec__(${JSON.stringify(id)})`;
42
+ };
43
+ const outputCombination = (chunks, moduleIds, final) => {
44
+ if (chunks.size === 0 && !federation) {
45
+ runtime.push(`${final ? EXPORT_PREFIX : ''}(${moduleIds.map(runModule).join(', ')});`);
46
+ }
47
+ else {
48
+ const fn = runtimeTemplate.returningFunction(moduleIds.map(runModule).join(', '));
49
+ if (federation) {
50
+ const chunkIds = Array.from(chunks, (c) => c.id);
51
+ const wrappedInit = (body) => Template.asString([
52
+ 'Promise.all([',
53
+ Template.indent([
54
+ // may have other chunks who depend on federation, so best to just fallback
55
+ // instead of try to figure out if consumes or remotes exists during build
56
+ `${RuntimeGlobals.ensureChunkHandlers}.consumes || function(chunkId, promises) {},`,
57
+ `${RuntimeGlobals.ensureChunkHandlers}.remotes || function(chunkId, promises) {},`,
58
+ ]),
59
+ `].reduce(${runtimeTemplate.returningFunction(`handler('${chunk.id}', p), p`, 'p, handler')}, promises)`,
60
+ `).then(${runtimeTemplate.returningFunction(body)});`,
61
+ ]);
62
+ const wrap = wrappedInit(`${passive
63
+ ? RuntimeGlobals.onChunksLoaded
64
+ : RuntimeGlobals.startupEntrypoint}(0, ${JSON.stringify(chunkIds)}, ${fn})`);
65
+ runtime.push(`${final && !passive ? EXPORT_PREFIX : ''}${wrap}`);
66
+ }
67
+ else {
68
+ const chunkIds = Array.from(chunks, (c) => c.id);
69
+ runtime.push(`${final && !passive ? EXPORT_PREFIX : ''}${passive
70
+ ? RuntimeGlobals.onChunksLoaded
71
+ : RuntimeGlobals.startupEntrypoint}(0, ${JSON.stringify(chunkIds)}, ${fn});`);
72
+ if (final && passive) {
73
+ runtime.push(`${EXPORT_PREFIX}${RuntimeGlobals.onChunksLoaded}();`);
74
+ }
75
+ }
76
+ }
77
+ };
78
+ let currentChunks = undefined;
79
+ let currentModuleIds = undefined;
80
+ for (const [module, entrypoint] of entries) {
81
+ if (!entrypoint)
82
+ continue;
83
+ const runtimeChunk = entrypoint.getRuntimeChunk();
84
+ const moduleId = chunkGraph.getModuleId(module);
85
+ const chunks = getAllChunks(entrypoint, chunk, runtimeChunk);
86
+ if (currentChunks &&
87
+ currentChunks.size === chunks.size &&
88
+ isSubset(currentChunks, chunks)) {
89
+ currentModuleIds.push(moduleId);
90
+ }
91
+ else {
92
+ if (currentChunks) {
93
+ outputCombination(currentChunks, currentModuleIds);
94
+ }
95
+ currentChunks = chunks;
96
+ currentModuleIds = [moduleId];
97
+ }
98
+ }
99
+ // output current modules with export prefix
100
+ if (currentChunks) {
101
+ outputCombination(currentChunks, currentModuleIds, true);
102
+ }
103
+ runtime.push('');
104
+ return Template.asString(runtime);
105
+ };
106
+ exports.generateEntryStartup = generateEntryStartup;
107
+ const generateESMEntryStartup = (compilation, chunkGraph, runtimeTemplate, entries, chunk, passive) => {
108
+ const { chunkHasJs, getCompilationHooks, getChunkFilenameTemplate } = compilation.compiler.webpack.JavascriptModulesPlugin;
109
+ const { ConcatSource } = compilation.compiler.webpack.sources;
110
+ const hotUpdateChunk = chunk instanceof HotUpdateChunk ? chunk : null;
111
+ if (hotUpdateChunk) {
112
+ throw new Error('HMR is not implemented for module chunk format yet');
113
+ }
114
+ else {
115
+ const treeRuntimeRequirements = chunkGraph.getTreeRuntimeRequirements(chunk);
116
+ const chunkRuntimeRequirements = chunkGraph.getChunkRuntimeRequirements(chunk);
117
+ const federation = chunkRuntimeRequirements.has(exports.federationStartup) ||
118
+ treeRuntimeRequirements.has(exports.federationStartup);
119
+ if (entries.length > 0) {
120
+ const runtimeChunk = entries[0]?.[1]?.getRuntimeChunk?.();
121
+ if (!runtimeChunk) {
122
+ throw new Error('Runtime chunk is undefined');
123
+ }
124
+ const currentOutputName = compilation
125
+ .getPath(getChunkFilenameTemplate(chunk, compilation.outputOptions), {
126
+ chunk,
127
+ contentHashType: 'javascript',
128
+ })
129
+ .replace(/^\/+/g, '')
130
+ .split('/');
131
+ /**
132
+ * @param {Chunk} chunk the chunk
133
+ * @returns {string} the relative path
134
+ */
135
+ const getRelativePath = (chunk) => {
136
+ const baseOutputName = currentOutputName.slice();
137
+ const chunkOutputName = compilation
138
+ .getPath(getChunkFilenameTemplate(chunk, compilation.outputOptions), {
139
+ chunk,
140
+ contentHashType: 'javascript',
141
+ })
142
+ .replace(/^\/+/g, '')
143
+ .split('/');
144
+ // remove common parts except filename
145
+ while (baseOutputName.length > 1 &&
146
+ chunkOutputName.length > 1 &&
147
+ baseOutputName[0] === chunkOutputName[0]) {
148
+ baseOutputName.shift();
149
+ chunkOutputName.shift();
150
+ }
151
+ const last = chunkOutputName.join('/');
152
+ // create final path
153
+ return getUndoPath(baseOutputName.join('/'), last, true) + last;
154
+ };
155
+ const startupSource = new ConcatSource();
156
+ startupSource.add(`var __webpack_exec__ = ${runtimeTemplate.returningFunction(`${RuntimeGlobals.require}(${RuntimeGlobals.entryModuleId} = moduleId)`, 'moduleId')}\n`);
157
+ const loadedChunks = new Set();
158
+ let index = 0;
159
+ for (let i = 0; i < entries.length; i++) {
160
+ const [module, entrypoint] = entries[i];
161
+ if (!entrypoint)
162
+ continue;
163
+ const final = i + 1 === entries.length;
164
+ const moduleId = chunkGraph.getModuleId(module);
165
+ const chunks = getAllChunks(entrypoint, runtimeChunk, undefined);
166
+ for (const chunk of chunks) {
167
+ if (loadedChunks.has(chunk) || !chunkHasJs(chunk, chunkGraph))
168
+ continue;
169
+ loadedChunks.add(chunk);
170
+ startupSource.add(`import * as __webpack_chunk_${index}__ from ${JSON.stringify(getRelativePath(chunk))};\n`);
171
+ startupSource.add(`${RuntimeGlobals.externalInstallChunk}(__webpack_chunk_${index}__);\n`);
172
+ index++;
173
+ }
174
+ // generateEntryStartup handles calling require and execution of the entry module.
175
+ if (!federation) {
176
+ startupSource.add(`${final ? EXPORT_PREFIX : ''}__webpack_exec__(${JSON.stringify(moduleId)});\n`);
177
+ }
178
+ }
179
+ if (federation) {
180
+ startupSource.add('\n');
181
+ // call original entry startup, which will template out the startup code now that the chunk installs are done
182
+ startupSource.add((0, exports.generateEntryStartup)(compilation, chunkGraph, runtimeTemplate, entries, chunk, passive));
183
+ }
184
+ return startupSource.source();
185
+ }
186
+ }
187
+ return '';
188
+ };
189
+ exports.generateESMEntryStartup = generateESMEntryStartup;
190
+ //# sourceMappingURL=StartupHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartupHelpers.js","sourceRoot":"","sources":["../../../../src/lib/startup/StartupHelpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/webpack.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqF;AAC5E,uGADW,gCAAsB,OACX"}
1
+ {"version":3,"file":"webpack.js","sourceRoot":"","sources":["../../src/webpack.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqF;AAE5E,uGAFW,gCAAsB,OAEX"}
@@ -1,7 +1,10 @@
1
1
  import type { WebpackPluginInstance, Compiler } from 'webpack';
2
2
  export default class HoistContainerReferencesPlugin implements WebpackPluginInstance {
3
3
  name: string;
4
- private containerName?;
5
- constructor(name?: string | undefined);
4
+ private containerName;
5
+ private entryFilePath?;
6
+ private bundlerRuntimeDep?;
7
+ private explanation;
8
+ constructor(name?: string, entryFilePath?: string, bundlerRuntimeDep?: string);
6
9
  apply(compiler: Compiler): void;
7
10
  }
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
4
4
  const PLUGIN_NAME = 'HoistContainerReferencesPlugin';
5
5
  class HoistContainerReferencesPlugin {
6
- constructor(name) {
7
- this.containerName = name;
6
+ constructor(name, entryFilePath, bundlerRuntimeDep) {
7
+ this.containerName = name || 'no known chunk name';
8
+ this.entryFilePath = entryFilePath;
9
+ this.bundlerRuntimeDep = bundlerRuntimeDep;
10
+ this.explanation =
11
+ 'Bundler runtime path module is required for proper functioning';
8
12
  this.name = PLUGIN_NAME;
9
13
  }
10
14
  apply(compiler) {
@@ -12,7 +16,7 @@ class HoistContainerReferencesPlugin {
12
16
  process.env['FEDERATION_WEBPACK_PATH'] || (0, normalize_webpack_path_1.getWebpackPath)(compiler);
13
17
  const CoreHoistContainerReferencesPlugin = require('../lib/container/HoistContainerReferencesPlugin')
14
18
  .default;
15
- new CoreHoistContainerReferencesPlugin().apply(compiler);
19
+ new CoreHoistContainerReferencesPlugin(this.containerName, this.entryFilePath, this.bundlerRuntimeDep).apply(compiler);
16
20
  }
17
21
  }
18
22
  exports.default = HoistContainerReferencesPlugin;
@@ -1 +1 @@
1
- {"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../src/wrapper/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;AACA,0FAA+E;AAE/E,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAqB,8BAA8B;IAMjD,YAAY,IAAyB;QACnC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,IAAA,uCAAc,EAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,kCAAkC,GACtC,OAAO,CAAC,iDAAiD,CAAC;aACvD,OAAmF,CAAC;QACzF,IAAI,kCAAkC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;CACF;AAnBD,iDAmBC"}
1
+ {"version":3,"file":"HoistContainerReferencesPlugin.js","sourceRoot":"","sources":["../../../src/wrapper/HoistContainerReferencesPlugin.ts"],"names":[],"mappings":";;AACA,0FAA+E;AAE/E,MAAM,WAAW,GAAG,gCAAgC,CAAC;AAErD,MAAqB,8BAA8B;IASjD,YACE,IAAa,EACb,aAAsB,EACtB,iBAA0B;QAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,qBAAqB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,WAAW;YACd,gEAAgE,CAAC;QACnE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,IAAI,IAAA,uCAAc,EAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,kCAAkC,GACtC,OAAO,CAAC,iDAAiD,CAAC;aACvD,OAAmF,CAAC;QACzF,IAAI,kCAAkC,CACpC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,iBAAiB,CACvB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;CACF;AAlCD,iDAkCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@module-federation/enhanced",
3
- "version": "0.5.2",
3
+ "version": "0.6.1",
4
4
  "main": "./dist/src/index.js",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "repository": "https://github.com/module-federation/core/tree/main/packages/enhanced",
@@ -68,17 +68,18 @@
68
68
  },
69
69
  "devDependencies": {
70
70
  "@types/btoa": "^1.2.5",
71
- "@module-federation/webpack-bundler-runtime": "0.5.2"
71
+ "enhanced-resolve": "^5.0.0",
72
+ "@module-federation/webpack-bundler-runtime": "0.6.1"
72
73
  },
73
74
  "dependencies": {
74
75
  "upath": "2.0.1",
75
76
  "btoa": "^1.2.1",
76
- "@module-federation/sdk": "0.5.2",
77
- "@module-federation/runtime-tools": "0.5.2",
78
- "@module-federation/manifest": "0.5.2",
79
- "@module-federation/managers": "0.5.2",
80
- "@module-federation/dts-plugin": "0.5.2",
81
- "@module-federation/rspack": "0.5.2",
82
- "@module-federation/bridge-react-webpack-plugin": "0.5.2"
77
+ "@module-federation/sdk": "0.6.1",
78
+ "@module-federation/runtime-tools": "0.6.1",
79
+ "@module-federation/manifest": "0.6.1",
80
+ "@module-federation/managers": "0.6.1",
81
+ "@module-federation/dts-plugin": "0.6.1",
82
+ "@module-federation/rspack": "0.6.1",
83
+ "@module-federation/bridge-react-webpack-plugin": "0.6.1"
83
84
  }
84
85
  }
@@ -1,138 +0,0 @@
1
- declare class Module extends DependenciesBlock {
2
- constructor(type: string, context?: null | string, layer?: null | string);
3
- type: string;
4
- context: null | string;
5
- layer: null | string;
6
- needId: boolean;
7
- debugId: number;
8
- resolveOptions?: ResolveOptionsWebpackOptions;
9
- factoryMeta?: FactoryMeta;
10
- useSourceMap: boolean;
11
- useSimpleSourceMap: boolean;
12
- buildMeta?: BuildMeta;
13
- buildInfo?: BuildInfo;
14
- presentationalDependencies?: Dependency[];
15
- codeGenerationDependencies?: Dependency[];
16
- id: string | number;
17
- get hash(): string;
18
- get renderedHash(): string;
19
- profile: null | ModuleProfile;
20
- index: null | number;
21
- index2: null | number;
22
- depth: null | number;
23
- issuer: null | Module;
24
- get usedExports(): null | boolean | SortableSet<string>;
25
- get optimizationBailout(): (
26
- | string
27
- | ((requestShortener: RequestShortener) => string)
28
- )[];
29
- get optional(): boolean;
30
- addChunk(chunk: Chunk): boolean;
31
- removeChunk(chunk: Chunk): void;
32
- isInChunk(chunk: Chunk): boolean;
33
- isEntryModule(): boolean;
34
- getChunks(): Chunk[];
35
- getNumberOfChunks(): number;
36
- get chunksIterable(): Iterable<Chunk>;
37
- isProvided(exportName: string): null | boolean;
38
- get exportsArgument(): string;
39
- get moduleArgument(): string;
40
- getExportsType(
41
- moduleGraph: ModuleGraph,
42
- strict?: boolean,
43
- ): 'namespace' | 'default-only' | 'default-with-named' | 'dynamic';
44
- addPresentationalDependency(presentationalDependency: Dependency): void;
45
- addCodeGenerationDependency(codeGenerationDependency: Dependency): void;
46
- addWarning(warning: WebpackError): void;
47
- getWarnings(): undefined | Iterable<WebpackError>;
48
- getNumberOfWarnings(): number;
49
- addError(error: WebpackError): void;
50
- getErrors(): undefined | Iterable<WebpackError>;
51
- getNumberOfErrors(): number;
52
-
53
- /**
54
- * removes all warnings and errors
55
- */
56
- clearWarningsAndErrors(): void;
57
- isOptional(moduleGraph: ModuleGraph): boolean;
58
- isAccessibleInChunk(
59
- chunkGraph: ChunkGraph,
60
- chunk: Chunk,
61
- ignoreChunk?: Chunk,
62
- ): boolean;
63
- isAccessibleInChunkGroup(
64
- chunkGraph: ChunkGraph,
65
- chunkGroup: ChunkGroup,
66
- ignoreChunk?: Chunk,
67
- ): boolean;
68
- hasReasonForChunk(
69
- chunk: Chunk,
70
- moduleGraph: ModuleGraph,
71
- chunkGraph: ChunkGraph,
72
- ): boolean;
73
- hasReasons(moduleGraph: ModuleGraph, runtime: RuntimeSpec): boolean;
74
- needBuild(
75
- context: NeedBuildContext,
76
- callback: (arg0?: null | WebpackError, arg1?: boolean) => void,
77
- ): void;
78
- needRebuild(
79
- fileTimestamps: Map<string, null | number>,
80
- contextTimestamps: Map<string, null | number>,
81
- ): boolean;
82
- invalidateBuild(): void;
83
- identifier(): string;
84
- readableIdentifier(requestShortener: RequestShortener): string;
85
- build(
86
- options: WebpackOptionsNormalized,
87
- compilation: Compilation,
88
- resolver: ResolverWithOptions,
89
- fs: InputFileSystem,
90
- callback: (arg0?: WebpackError) => void,
91
- ): void;
92
- getSourceTypes(): Set<string>;
93
- source(
94
- dependencyTemplates: DependencyTemplates,
95
- runtimeTemplate: RuntimeTemplate,
96
- type?: string,
97
- ): Source;
98
- size(type?: string): number;
99
- libIdent(options: LibIdentOptions): null | string;
100
- nameForCondition(): null | string;
101
- getConcatenationBailoutReason(
102
- context: ConcatenationBailoutReasonContext,
103
- ): undefined | string;
104
- getSideEffectsConnectionState(moduleGraph: ModuleGraph): ConnectionState;
105
- codeGeneration(context: CodeGenerationContext): CodeGenerationResult;
106
- chunkCondition(chunk: Chunk, compilation: Compilation): boolean;
107
- hasChunkCondition(): boolean;
108
-
109
- /**
110
- * Assuming this module is in the cache. Update the (cached) module with
111
- * the fresh module from the factory. Usually updates internal references
112
- * and properties.
113
- */
114
- updateCacheModule(module: Module): void;
115
-
116
- /**
117
- * Module should be unsafe cached. Get data that's needed for that.
118
- * This data will be passed to restoreFromUnsafeCache later.
119
- */
120
- getUnsafeCacheData(): object;
121
-
122
- /**
123
- * Assuming this module is in the cache. Remove internal references to allow freeing some memory.
124
- */
125
- cleanupForCache(): void;
126
- originalSource(): null | Source;
127
- addCacheDependencies(
128
- fileDependencies: LazySet<string>,
129
- contextDependencies: LazySet<string>,
130
- missingDependencies: LazySet<string>,
131
- buildDependencies: LazySet<string>,
132
- ): void;
133
- get hasEqualsChunks(): any;
134
- get isUsed(): any;
135
- get errors(): any;
136
- get warnings(): any;
137
- used: any;
138
- }