@module-federation/enhanced 0.6.0 → 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 (74) 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 -0
  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 +96 -38
  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
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/lib/container/options.ts"],"names":[],"mappings":";;;AAQA,+IAA+I;AAE/I;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG,CACd,OAAkC,EAClC,eAA6D,EAC7D,gBAA8C,EAC9C,EAAmC,EAC7B,EAAE;IACR,MAAM,KAAK,GAAG,CACZ,KAAyD,EACnD,EAAE;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAA6C,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAA0C,EAAQ,EAAE;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,CACnB,OAAkC,EAClC,eAA6D,EAC7D,gBAA8C,EAC/B,EAAE;IACjB,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AA0BO,oCAAY;AAxBrB;;;;;GAKG;AACH,MAAM,KAAK,GAAG,CACZ,KAAa,EACb,OAAkC,EACK,EAAE;IACzC,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,OAAO,CACL,OAAO,EACP,CAAC,IAAI,EAAE,EAAE,CAAC,IAA6B,EACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAA6B,EACvC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CACD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CACrE,GAAG,KAAK,CAAC;IACZ,CAAC,CACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEqB,sBAAK"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/lib/container/options.ts"],"names":[],"mappings":";;AAkEA,oCAUC;AAQD,sBAgBC;AA5FD,+IAA+I;AAE/I;;;;;;;;GAQG;AACH,MAAM,OAAO,GAAG,CACd,OAAkC,EAClC,eAA6D,EAC7D,gBAA8C,EAC9C,EAAmC,EAC7B,EAAE;IACR,MAAM,KAAK,GAAG,CACZ,KAAyD,EACnD,EAAE;QACR,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,CAAC,IAA6C,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,GAA0C,EAAQ,EAAE;QAClE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAU,EAAE,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;SAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,YAAY,CAC1B,OAAkC,EAClC,eAA6D,EAC7D,gBAA8C;IAE9C,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAgB,KAAK,CACnB,KAAa,EACb,OAAkC;IAElC,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,OAAO,CACL,OAAO,EACP,CAAC,IAAI,EAAE,EAAE,CAAC,IAA6B,EACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAA6B,EACvC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CACD,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CACrE,GAAG,KAAK,CAAC;IACZ,CAAC,CACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Compiler } from 'webpack';
2
+ declare const RuntimeModule: typeof import("webpack").RuntimeModule;
3
+ declare class RuntimeModuleChunkPlugin {
4
+ apply(compiler: Compiler): void;
5
+ }
6
+ declare class CustomRuntimePlugin {
7
+ private entryModule?;
8
+ private bundlerRuntimePath;
9
+ private tempDir;
10
+ constructor(path: string, tempDir: string);
11
+ apply(compiler: Compiler): void;
12
+ }
13
+ declare class CustomRuntimeModule extends RuntimeModule {
14
+ private readonly entryPath;
15
+ private bundledCode;
16
+ private entryModuleId;
17
+ constructor(entryPath: string, entryModuleId: string | number | undefined);
18
+ identifier(): string;
19
+ generate(): string;
20
+ }
21
+ export { CustomRuntimePlugin, CustomRuntimeModule, RuntimeModuleChunkPlugin };
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ // This stores the previous child compilation based solution
3
+ // it is not currently used
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.RuntimeModuleChunkPlugin = exports.CustomRuntimeModule = exports.CustomRuntimePlugin = void 0;
9
+ const normalize_webpack_path_1 = require("@module-federation/sdk/normalize-webpack-path");
10
+ const utils_1 = require("./utils");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const webpack_sources_1 = require("webpack-sources");
14
+ const core_1 = require("@swc/core");
15
+ const { RuntimeModule, Template, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
16
+ const onceForCompilationMap = new WeakMap();
17
+ const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals);
18
+ class RuntimeModuleChunkPlugin {
19
+ apply(compiler) {
20
+ compiler.hooks.thisCompilation.tap('ModuleChunkFormatPlugin', (compilation) => {
21
+ compilation.hooks.optimizeModuleIds.tap('ModuleChunkFormatPlugin', (modules) => {
22
+ for (const module of modules) {
23
+ const moduleId = compilation.chunkGraph.getModuleId(module);
24
+ if (typeof moduleId === 'string') {
25
+ compilation.chunkGraph.setModuleId(module, `(embed)${moduleId}`);
26
+ }
27
+ else {
28
+ compilation.chunkGraph.setModuleId(module, `1000${moduleId}`);
29
+ }
30
+ }
31
+ });
32
+ const hooks = compiler.webpack.javascript.JavascriptModulesPlugin.getCompilationHooks(compilation);
33
+ hooks.renderChunk.tap('ModuleChunkFormatPlugin', (modules, renderContext) => {
34
+ const { chunk, chunkGraph } = renderContext;
35
+ const source = new webpack_sources_1.ConcatSource();
36
+ source.add('var federation = ');
37
+ source.add(modules);
38
+ source.add('\n');
39
+ const entries = Array.from(chunkGraph.getChunkEntryModulesWithChunkGroupIterable(chunk));
40
+ for (let i = 0; i < entries.length; i++) {
41
+ const [module, entrypoint] = entries[i];
42
+ const final = i + 1 === entries.length;
43
+ const moduleId = chunkGraph.getModuleId(module);
44
+ source.add('\n');
45
+ if (final) {
46
+ source.add('for (var mod in federation) {\n');
47
+ source.add(`${RuntimeGlobals.moduleFactories}[mod] = federation[mod];\n`);
48
+ source.add('}\n');
49
+ source.add('federation = ');
50
+ }
51
+ source.add(`${RuntimeGlobals.require}(${typeof moduleId === 'number' ? moduleId : JSON.stringify(moduleId)});\n`);
52
+ }
53
+ return source;
54
+ });
55
+ });
56
+ }
57
+ }
58
+ exports.RuntimeModuleChunkPlugin = RuntimeModuleChunkPlugin;
59
+ class CustomRuntimePlugin {
60
+ constructor(path, tempDir) {
61
+ this.bundlerRuntimePath = path.replace('cjs', 'esm');
62
+ this.tempDir = tempDir;
63
+ }
64
+ apply(compiler) {
65
+ compiler.hooks.make.tapAsync('CustomRuntimePlugin', (compilation, callback) => {
66
+ if (onceForCompilationMap.has(compilation))
67
+ return callback();
68
+ onceForCompilationMap.set(compilation, null);
69
+ const target = compilation.options.target || 'default';
70
+ const outputPath = path_1.default.join(this.tempDir, `${target}-custom-runtime-bundle.js`);
71
+ if (fs_1.default.existsSync(outputPath)) {
72
+ const source = fs_1.default.readFileSync(outputPath, 'utf-8');
73
+ onceForCompilationMap.set(compiler, source);
74
+ return callback();
75
+ }
76
+ if (onceForCompilationMap.has(compiler))
77
+ return callback();
78
+ onceForCompilationMap.set(compiler, null);
79
+ const childCompiler = compilation.createChildCompiler('EmbedFederationRuntimeCompiler', {
80
+ filename: '[name].js',
81
+ library: {
82
+ type: 'var',
83
+ name: 'federation',
84
+ export: 'default',
85
+ },
86
+ }, [
87
+ new compiler.webpack.EntryPlugin(compiler.context, this.bundlerRuntimePath, {
88
+ name: 'custom-runtime-bundle',
89
+ runtime: 'other',
90
+ }),
91
+ new compiler.webpack.library.EnableLibraryPlugin('var'),
92
+ new RuntimeModuleChunkPlugin(),
93
+ ]);
94
+ childCompiler.context = compiler.context;
95
+ childCompiler.options.devtool = undefined;
96
+ childCompiler.options.optimization.splitChunks = false;
97
+ childCompiler.options.optimization.removeAvailableModules = true;
98
+ console.log('Creating child compiler for', this.bundlerRuntimePath);
99
+ childCompiler.hooks.thisCompilation.tap(this.constructor.name, (childCompilation) => {
100
+ childCompilation.hooks.processAssets.tap(this.constructor.name, () => {
101
+ const source = childCompilation.assets['custom-runtime-bundle.js'] &&
102
+ childCompilation.assets['custom-runtime-bundle.js'].source();
103
+ const entry = childCompilation.entrypoints.get('custom-runtime-bundle');
104
+ const entryChunk = entry?.getEntrypointChunk();
105
+ if (entryChunk) {
106
+ const entryModule = Array.from(childCompilation.chunkGraph.getChunkEntryModulesIterable(entryChunk))[0];
107
+ this.entryModule =
108
+ childCompilation.chunkGraph.getModuleId(entryModule);
109
+ }
110
+ onceForCompilationMap.set(compilation, source);
111
+ onceForCompilationMap.set(compiler, source);
112
+ fs_1.default.writeFileSync(outputPath, source);
113
+ console.log('got compilation asset');
114
+ childCompilation.chunks.forEach((chunk) => {
115
+ chunk.files.forEach((file) => {
116
+ childCompilation.deleteAsset(file);
117
+ });
118
+ });
119
+ });
120
+ });
121
+ childCompiler.runAsChild((err, entries, childCompilation) => {
122
+ if (err) {
123
+ return callback(err);
124
+ }
125
+ if (!childCompilation) {
126
+ console.warn('Embed Federation Runtime: Child compilation is undefined');
127
+ return callback();
128
+ }
129
+ if (childCompilation.errors.length) {
130
+ return callback(childCompilation.errors[0]);
131
+ }
132
+ console.log('Code built successfully');
133
+ callback();
134
+ });
135
+ });
136
+ compiler.hooks.thisCompilation.tap('CustomRuntimePlugin', (compilation) => {
137
+ const handler = (chunk, runtimeRequirements) => {
138
+ if (chunk.id === 'build time chunk') {
139
+ return;
140
+ }
141
+ if (runtimeRequirements.has('embeddedFederationRuntime'))
142
+ return;
143
+ if (!runtimeRequirements.has(federationGlobal)) {
144
+ return;
145
+ }
146
+ const bundledCode = onceForCompilationMap.get(compilation);
147
+ if (!bundledCode)
148
+ return;
149
+ runtimeRequirements.add('embeddedFederationRuntime');
150
+ const runtimeModule = new CustomRuntimeModule(bundledCode, this.entryModule);
151
+ compilation.addRuntimeModule(chunk, runtimeModule);
152
+ console.log(`Custom runtime module added to chunk: ${chunk.name}`);
153
+ };
154
+ compilation.hooks.runtimeRequirementInTree
155
+ .for(federationGlobal)
156
+ .tap('CustomRuntimePlugin', handler);
157
+ });
158
+ }
159
+ }
160
+ exports.CustomRuntimePlugin = CustomRuntimePlugin;
161
+ class CustomRuntimeModule extends RuntimeModule {
162
+ constructor(entryPath, entryModuleId) {
163
+ super('CustomRuntimeModule', RuntimeModule.STAGE_BASIC);
164
+ this.entryPath = entryPath;
165
+ this.bundledCode = null;
166
+ this.entryPath = entryPath;
167
+ this.entryModuleId = entryModuleId;
168
+ }
169
+ identifier() {
170
+ return 'webpack/runtime/embed/federation';
171
+ }
172
+ generate() {
173
+ const runtimeModule = this.entryPath;
174
+ const { code: transformedCode } = (0, core_1.transformSync)(this.entryPath.replace('var federation;', 'var federation = '), {
175
+ jsc: {
176
+ parser: {
177
+ syntax: 'ecmascript',
178
+ jsx: false,
179
+ },
180
+ target: 'es2022',
181
+ minify: {
182
+ compress: {
183
+ unused: true,
184
+ dead_code: true,
185
+ drop_debugger: true,
186
+ },
187
+ mangle: false,
188
+ format: {
189
+ comments: false,
190
+ },
191
+ },
192
+ },
193
+ });
194
+ return Template.asString([
195
+ runtimeModule,
196
+ transformedCode,
197
+ `for (var mod in federation) {
198
+ ${Template.indent(`${RuntimeGlobals.moduleFactories}[mod] = federation[mod];`)}
199
+ }`,
200
+ `federation = ${RuntimeGlobals.require}(${JSON.stringify(this.entryModuleId)});`,
201
+ `federation = ${RuntimeGlobals.compatGetDefaultExport}(federation)();`,
202
+ `var prevFederation = ${federationGlobal}`,
203
+ `${federationGlobal} = {}`,
204
+ `for (var key in federation) {`,
205
+ Template.indent(`${federationGlobal}[key] = federation[key];`),
206
+ `}`,
207
+ `for (var key in prevFederation) {`,
208
+ Template.indent(`${federationGlobal}[key] = prevFederation[key];`),
209
+ `}`,
210
+ 'federation = undefined;',
211
+ ]);
212
+ }
213
+ }
214
+ exports.CustomRuntimeModule = CustomRuntimeModule;
215
+ //# sourceMappingURL=ChildCompilationRuntimePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildCompilationRuntimePlugin.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/ChildCompilationRuntimePlugin.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,2BAA2B;;;;;;AAE3B,0FAAqF;AAErF,mCAAmD;AACnD,4CAAoB;AACpB,gDAAwB;AACxB,qDAA+C;AAC/C,oCAA0C;AAE1C,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CACzD,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5C,MAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAAC,cAAc,CAAC,CAAC;AAElE,MAAM,wBAAwB;IAC5B,KAAK,CAAC,QAAkB;QACtB,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,yBAAyB,EACzB,CAAC,WAAwB,EAAE,EAAE;YAC3B,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CACrC,yBAAyB,EACzB,CAAC,OAAyB,EAAE,EAAE;gBAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAC5D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBACjC,WAAW,CAAC,UAAU,CAAC,WAAW,CAChC,MAAM,EACN,UAAU,QAAQ,EAAE,CACrB,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAC;oBAChE,CAAC;gBACH,CAAC;YACH,CAAC,CACF,CAAC;YAEF,MAAM,KAAK,GACT,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,mBAAmB,CACrE,WAAW,CACZ,CAAC;YAEJ,KAAK,CAAC,WAAW,CAAC,GAAG,CACnB,yBAAyB,EACzB,CACE,OAAY,EACZ,aAAuD,EACvD,EAAE;gBACF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;gBAE5C,MAAM,MAAM,GAAG,IAAI,8BAAY,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,UAAU,CAAC,0CAA0C,CAAC,KAAK,CAAC,CAC7D,CAAC;gBACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC;oBACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBAC9C,MAAM,CAAC,GAAG,CACR,GAAG,cAAc,CAAC,eAAe,4BAA4B,CAC9D,CAAC;wBACF,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBAClB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM,CAAC,GAAG,CACR,GAAG,cAAc,CAAC,OAAO,IAAI,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CACtG,CAAC;gBACJ,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAkOkD,4DAAwB;AAhO3E,MAAM,mBAAmB;IAKvB,YAAY,IAAY,EAAE,OAAe;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAC1B,qBAAqB,EACrB,CAAC,WAAwB,EAAE,QAA+B,EAAE,EAAE;YAC5D,IAAI,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC;gBAAE,OAAO,QAAQ,EAAE,CAAC;YAC9D,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC;YACvD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAC1B,IAAI,CAAC,OAAO,EACZ,GAAG,MAAM,2BAA2B,CACrC,CAAC;YAEF,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,YAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACpD,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC5C,OAAO,QAAQ,EAAE,CAAC;YACpB,CAAC;YAED,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,OAAO,QAAQ,EAAE,CAAC;YAC3D,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAE1C,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,CACnD,gCAAgC,EAChC;gBACE,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,YAAY;oBAClB,MAAM,EAAE,SAAS;iBAClB;aACF,EACD;gBACE,IAAI,QAAQ,CAAC,OAAO,CAAC,WAAW,CAC9B,QAAQ,CAAC,OAAO,EAChB,IAAI,CAAC,kBAAkB,EACvB;oBACE,IAAI,EAAE,uBAAuB;oBAC7B,OAAO,EAAE,OAAO;iBACjB,CACF;gBACD,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC;gBACvD,IAAI,wBAAwB,EAAE;aAC/B,CACF,CAAC;YAEF,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACzC,aAAa,CAAC,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;YAC1C,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC;YACvD,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEpE,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CACrC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,CAAC,gBAAgB,EAAE,EAAE;gBACnB,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CACtC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE;oBACH,MAAM,MAAM,GACV,gBAAgB,CAAC,MAAM,CAAC,0BAA0B,CAAC;wBAClD,gBAAgB,CAAC,MAAM,CACtB,0BAA0B,CAC3B,CAAC,MAAM,EAAa,CAAC;oBAExB,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAC5C,uBAAuB,CACxB,CAAC;oBACF,MAAM,UAAU,GAAG,KAAK,EAAE,kBAAkB,EAAE,CAAC;oBAE/C,IAAI,UAAU,EAAE,CAAC;wBACf,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAC5B,gBAAgB,CAAC,UAAU,CAAC,4BAA4B,CACtD,UAAU,CACX,CACF,CAAC,CAAC,CAAC,CAAC;wBACL,IAAI,CAAC,WAAW;4BACd,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBACzD,CAAC;oBAED,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oBAC/C,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC5C,YAAE,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;oBACrC,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBACxC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC3B,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACrC,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;YACJ,CAAC,CACF,CAAC;YACF,aAAa,CAAC,UAAU,CACtB,CACE,GAAkB,EAClB,OAAiB,EACjB,gBAA8B,EAC9B,EAAE;gBACF,IAAI,GAAG,EAAE,CAAC;oBACR,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,OAAO,CAAC,IAAI,CACV,0DAA0D,CAC3D,CAAC;oBACF,OAAO,QAAQ,EAAE,CAAC;gBACpB,CAAC;gBAED,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAEvC,QAAQ,EAAE,CAAC;YACb,CAAC,CACF,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,qBAAqB,EACrB,CAAC,WAAwB,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,mBAAgC,EAAE,EAAE;gBACjE,IAAI,KAAK,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBAAE,OAAO;gBACjE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBACD,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC3D,IAAI,CAAC,WAAW;oBAAE,OAAO;gBACzB,mBAAmB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACrD,MAAM,aAAa,GAAG,IAAI,mBAAmB,CAC3C,WAAW,EACX,IAAI,CAAC,WAAW,CACjB,CAAC;gBAEF,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,wBAAwB;iBACvC,GAAG,CAAC,gBAAgB,CAAC;iBACrB,GAAG,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAkEQ,kDAAmB;AAhE5B,MAAM,mBAAoB,SAAQ,aAAa;IAI7C,YACmB,SAAiB,EAClC,aAA0C;QAE1C,KAAK,CAAC,qBAAqB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;QAHvC,cAAS,GAAT,SAAS,CAAQ;QAJ5B,gBAAW,GAAkB,IAAI,CAAC;QAQxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEQ,UAAU;QACjB,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAEQ,QAAQ;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,IAAA,oBAAa,EAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,EAC9D;YACE,GAAG,EAAE;gBACH,MAAM,EAAE;oBACN,MAAM,EAAE,YAAY;oBACpB,GAAG,EAAE,KAAK;iBACX;gBACD,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,MAAM,EAAE,IAAI;wBACZ,SAAS,EAAE,IAAI;wBACf,aAAa,EAAE,IAAI;qBACpB;oBACD,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE;wBACN,QAAQ,EAAE,KAAK;qBAChB;iBACF;aACF;SACF,CACF,CAAC;QAEF,OAAO,QAAQ,CAAC,QAAQ,CAAC;YACvB,aAAa;YACb,eAAe;YACf;QACE,QAAQ,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,eAAe,0BAA0B,CAAC;MAC9E;YACA,gBAAgB,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI;YAChF,gBAAgB,cAAc,CAAC,sBAAsB,iBAAiB;YACtE,wBAAwB,gBAAgB,EAAE;YAC1C,GAAG,gBAAgB,OAAO;YAC1B,+BAA+B;YAC/B,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,0BAA0B,CAAC;YAC9D,GAAG;YACH,mCAAmC;YACnC,QAAQ,CAAC,MAAM,CAAC,GAAG,gBAAgB,8BAA8B,CAAC;YAClE,GAAG;YACH,yBAAyB;SAC1B,CAAC,CAAC;IACL,CAAC;CACF;AAE6B,kDAAmB"}
@@ -0,0 +1,9 @@
1
+ declare const RuntimeModule: typeof import("webpack").RuntimeModule;
2
+ declare class EmbedFederationRuntimeModule extends RuntimeModule {
3
+ private bundlerRuntimePath;
4
+ constructor(bundlerRuntimePath: string);
5
+ identifier(): string;
6
+ generate(): string | null;
7
+ private findModule;
8
+ }
9
+ export default EmbedFederationRuntimeModule;
@@ -0,0 +1,81 @@
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 utils_1 = require("./utils");
5
+ const { RuntimeModule, NormalModule, Template, RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
6
+ const ConcatenatedModule = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/optimize/ConcatenatedModule'));
7
+ const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals);
8
+ class EmbedFederationRuntimeModule extends RuntimeModule {
9
+ constructor(bundlerRuntimePath) {
10
+ super('EmbedFederationRuntimeModule', RuntimeModule.STAGE_ATTACH);
11
+ this.bundlerRuntimePath = bundlerRuntimePath;
12
+ }
13
+ identifier() {
14
+ return 'webpack/runtime/embed/federation';
15
+ }
16
+ generate() {
17
+ const { compilation, chunk, chunkGraph, bundlerRuntimePath } = this;
18
+ if (!chunk || !chunkGraph || !compilation) {
19
+ return null;
20
+ }
21
+ const found = this.findModule(chunk, bundlerRuntimePath);
22
+ if (!found)
23
+ return null;
24
+ const initRuntimeModuleGetter = compilation.runtimeTemplate.moduleRaw({
25
+ module: found,
26
+ chunkGraph,
27
+ request: this.bundlerRuntimePath,
28
+ weak: false,
29
+ runtimeRequirements: new Set(),
30
+ });
31
+ const exportExpr = compilation.runtimeTemplate.exportFromImport({
32
+ moduleGraph: compilation.moduleGraph,
33
+ module: found,
34
+ request: this.bundlerRuntimePath,
35
+ exportName: ['default'],
36
+ originModule: found,
37
+ asiSafe: true,
38
+ isCall: false,
39
+ callContext: false,
40
+ defaultInterop: true,
41
+ importVar: 'federation',
42
+ initFragments: [],
43
+ runtime: chunk.runtime,
44
+ runtimeRequirements: new Set(),
45
+ });
46
+ return Template.asString([
47
+ `var federation = ${initRuntimeModuleGetter};`,
48
+ `federation = ${exportExpr}`,
49
+ `var prevFederation = ${federationGlobal};`,
50
+ `${federationGlobal} = {};`,
51
+ `for (var key in federation) {`,
52
+ Template.indent(`${federationGlobal}[key] = federation[key];`),
53
+ `}`,
54
+ `for (var key in prevFederation) {`,
55
+ Template.indent(`${federationGlobal}[key] = prevFederation[key];`),
56
+ `}`,
57
+ 'federation = undefined;',
58
+ ]);
59
+ }
60
+ findModule(chunk, bundlerRuntimePath) {
61
+ const { chunkGraph, compilation } = this;
62
+ if (!chunk || !chunkGraph || !compilation) {
63
+ return null;
64
+ }
65
+ for (const mod of chunkGraph.getChunkModulesIterable(chunk)) {
66
+ if (mod instanceof NormalModule && mod.resource === bundlerRuntimePath) {
67
+ return mod;
68
+ }
69
+ if (mod instanceof ConcatenatedModule) {
70
+ for (const m of mod.modules) {
71
+ if (m instanceof NormalModule && m.resource === bundlerRuntimePath) {
72
+ return mod;
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return null;
78
+ }
79
+ }
80
+ exports.default = EmbedFederationRuntimeModule;
81
+ //# sourceMappingURL=EmbedFederationRuntimeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbedFederationRuntimeModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimeModule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Compiler } from 'webpack';
2
+ declare class EmbedFederationRuntimePlugin {
3
+ private bundlerRuntimePath;
4
+ constructor(path: string);
5
+ apply(compiler: Compiler): void;
6
+ }
7
+ export default EmbedFederationRuntimePlugin;
@@ -0,0 +1,38 @@
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 EmbedFederationRuntimeModule_1 = __importDefault(require("./EmbedFederationRuntimeModule"));
8
+ const { RuntimeGlobals } = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack'));
9
+ const utils_1 = require("./utils");
10
+ const EntryDependency = require((0, normalize_webpack_path_1.normalizeWebpackPath)('webpack/lib/dependencies/EntryDependency'));
11
+ const federationGlobal = (0, utils_1.getFederationGlobalScope)(RuntimeGlobals);
12
+ class EmbedFederationRuntimePlugin {
13
+ constructor(path) {
14
+ this.bundlerRuntimePath = path;
15
+ }
16
+ apply(compiler) {
17
+ compiler.hooks.thisCompilation.tap('EmbedFederationRuntimePlugin', (compilation) => {
18
+ const handler = (chunk, runtimeRequirements) => {
19
+ if (chunk.id === 'build time chunk') {
20
+ return;
21
+ }
22
+ if (runtimeRequirements.has('embeddedFederationRuntime'))
23
+ return;
24
+ if (!runtimeRequirements.has(federationGlobal)) {
25
+ return;
26
+ }
27
+ runtimeRequirements.add('embeddedFederationRuntime');
28
+ const runtimeModule = new EmbedFederationRuntimeModule_1.default(this.bundlerRuntimePath);
29
+ compilation.addRuntimeModule(chunk, runtimeModule);
30
+ };
31
+ compilation.hooks.runtimeRequirementInTree
32
+ .for(federationGlobal)
33
+ .tap('EmbedFederationRuntimePlugin', handler);
34
+ });
35
+ }
36
+ }
37
+ exports.default = EmbedFederationRuntimePlugin;
38
+ //# sourceMappingURL=EmbedFederationRuntimePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbedFederationRuntimePlugin.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/EmbedFederationRuntimePlugin.ts"],"names":[],"mappings":";;;;;AAAA,0FAAqF;AACrF,kGAA0E;AAC1E,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAChC,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,mCAAmD;AACnD,MAAM,eAAe,GAAG,OAAO,CAC7B,IAAA,6CAAoB,EAAC,0CAA0C,CAAC,CACJ,CAAC;AAE/D,MAAM,gBAAgB,GAAG,IAAA,gCAAwB,EAAC,cAAc,CAAC,CAAC;AAElE,MAAM,4BAA4B;IAGhC,YAAY,IAAY;QACtB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAkB;QACtB,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAChC,8BAA8B,EAC9B,CAAC,WAAwB,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,mBAAgC,EAAE,EAAE;gBACjE,IAAI,KAAK,CAAC,EAAE,KAAK,kBAAkB,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,mBAAmB,CAAC,GAAG,CAAC,2BAA2B,CAAC;oBAAE,OAAO;gBACjE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC/C,OAAO;gBACT,CAAC;gBAED,mBAAmB,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACrD,MAAM,aAAa,GAAG,IAAI,sCAA4B,CACpD,IAAI,CAAC,kBAAkB,CACxB,CAAC;gBAEF,WAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACrD,CAAC,CAAC;YACF,WAAW,CAAC,KAAK,CAAC,wBAAwB;iBACvC,GAAG,CAAC,gBAAgB,CAAC;iBACrB,GAAG,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAED,kBAAe,4BAA4B,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { NormalizedRuntimeInitOptionsWithOutShared } from '../../../types/runtime';
2
2
  declare const RuntimeModule: typeof import("webpack").RuntimeModule;
3
3
  declare class FederationRuntimeModule extends RuntimeModule {
4
- runtimeRequirements: Set<string>;
4
+ runtimeRequirements: ReadonlySet<string>;
5
5
  containerName: string;
6
6
  initOptionsWithoutShared: NormalizedRuntimeInitOptionsWithOutShared;
7
- constructor(runtimeRequirements: Set<string>, containerName: string, initOptionsWithoutShared: NormalizedRuntimeInitOptionsWithOutShared);
7
+ constructor(runtimeRequirements: ReadonlySet<string>, containerName: string, initOptionsWithoutShared: NormalizedRuntimeInitOptionsWithOutShared);
8
8
  /**
9
9
  * @returns {string | null} runtime code
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"FederationRuntimeModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/FederationRuntimeModule.ts"],"names":[],"mappings":";;;;;AAAA,0FAAqF;AACrF,MAAM,qBAAqB,GAAG,OAAO,CACnC,IAAA,6CAAoB,EAAC,wCAAwC,CAAC,CACJ,CAAC;AAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAC7B,IAAA,6CAAoB,EAAC,6BAA6B,CAAC,CACJ,CAAC;AAClD,2CAA2C;AAC3C,gFAAwD;AAGxD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CACzD,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,uBAAwB,SAAQ,aAAa;IAKjD,YACE,mBAAgC,EAChC,aAAqB,EACrB,wBAAmE;QAEnE,KAAK,CAAC,oBAAoB,EAAE,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAED;;OAEG;IACM,QAAQ;QACf,IAAI,OAAO,GAAqB,KAAK,CAAC;QACtC,IAAI,aAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,cAAc,GAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;gBAC3C,EAAE,uBAAuB;gBAC3B,OAAO,CACL,IAAA,6CAAoB,EAClB,gDAAgD,CACjD,CACF,CAAC;YACJ,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;YACtC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACrE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,CACnE,IAAI,CAAC,KAAK,EACV,UAAU,CACX,CAAC;gBACF,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACzD,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,GAAG,YAAY,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CACzC,cAAc,CAAC,wBAAwB,CACrC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/B,EACD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CACrD,CAAC;gBACF,aAAa,GAAG,WAAW,CACzB,UAAU,EACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EACzC,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAA,6BAAmB,EACjB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,aAAa,EACb,IAAI,CAAC,wBAAwB,CAC9B;SACF,CAAC,CAAC;IACL,CAAC;CACF;AACD,kBAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"FederationRuntimeModule.js","sourceRoot":"","sources":["../../../../../src/lib/container/runtime/FederationRuntimeModule.ts"],"names":[],"mappings":";;;;;AAAA,0FAAqF;AACrF,MAAM,qBAAqB,GAAG,OAAO,CACnC,IAAA,6CAAoB,EAAC,wCAAwC,CAAC,CACJ,CAAC;AAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAC7B,IAAA,6CAAoB,EAAC,6BAA6B,CAAC,CACJ,CAAC;AAClD,2CAA2C;AAC3C,gFAAwD;AAGxD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,OAAO,CACzD,IAAA,6CAAoB,EAAC,SAAS,CAAC,CACJ,CAAC;AAE9B,MAAM,uBAAwB,SAAQ,aAAa;IAKjD,YACE,mBAAwC,EACxC,aAAqB,EACrB,wBAAmE;QAEnE,KAAK,CAAC,oBAAoB,EAAE,aAAa,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;IAC3D,CAAC;IAED;;OAEG;IACM,QAAQ;QACf,IAAI,OAAO,GAAqB,KAAK,CAAC;QACtC,IAAI,aAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACnC,MAAM,cAAc,GAClB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;gBAC3C,EAAE,uBAAuB;gBAC3B,OAAO,CACL,IAAA,6CAAoB,EAClB,gDAAgD,CACjD,CACF,CAAC;YACJ,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC;YACtC,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBACrE,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,oBAAoB,CACnE,IAAI,CAAC,KAAK,EACV,UAAU,CACX,CAAC;gBACF,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACzD,IAAI,OAAO,YAAY,KAAK,SAAS,EAAE,CAAC;oBACtC,OAAO,GAAG,YAAY,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CACzC,cAAc,CAAC,wBAAwB,CACrC,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAC/B,EACD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,CACrD,CAAC;gBACF,aAAa,GAAG,WAAW,CACzB,UAAU,EACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,EACzC,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,QAAQ,CAAC;YACvB,IAAA,6BAAmB,EACjB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,aAAa,EACb,IAAI,CAAC,wBAAwB,CAC9B;SACF,CAAC,CAAC;IACL,CAAC;CACF;AACD,kBAAe,uBAAuB,CAAC"}
@@ -5,8 +5,8 @@ declare class FederationRuntimePlugin {
5
5
  entryFilePath: string;
6
6
  bundlerRuntimePath: string;
7
7
  constructor(options?: moduleFederationPlugin.ModuleFederationPluginOptions);
8
- static getTemplate(runtimePlugins: string[], bundlerRuntimePath?: string): string;
9
- static getFilePath(containerName: string, runtimePlugins: string[], bundlerRuntimePath?: string): string;
8
+ static getTemplate(runtimePlugins: string[], bundlerRuntimePath?: string, experiments?: moduleFederationPlugin.ModuleFederationPluginOptions['experiments']): string;
9
+ static getFilePath(containerName: string, runtimePlugins: string[], bundlerRuntimePath?: string, experiments?: moduleFederationPlugin.ModuleFederationPluginOptions['experiments']): string;
10
10
  getFilePath(): string;
11
11
  ensureFile(): void;
12
12
  prependEntry(compiler: Compiler): void;