@module-federation/node 0.0.0-docs-remove-invalid-lark-link-20251205062649
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.
- package/LICENSE +21 -0
- package/README.md +235 -0
- package/dist/jest.config.d.ts +11 -0
- package/dist/jest.config.js +19 -0
- package/dist/jest.config.js.map +1 -0
- package/dist/package.json +90 -0
- package/dist/src/filesystem/stratagies.d.ts +18 -0
- package/dist/src/filesystem/stratagies.js +124 -0
- package/dist/src/filesystem/stratagies.js.map +1 -0
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.js +22 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.d.ts +9 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.js +38 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.js.map +1 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.d.ts +61 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.js +441 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.js.map +1 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.ts +17 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.js +121 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.js.map +1 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts +40 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js +128 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +1 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.d.ts +13 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.js +41 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.js.map +1 -0
- package/dist/src/plugins/NodeFederationPlugin.d.ts +46 -0
- package/dist/src/plugins/NodeFederationPlugin.js +88 -0
- package/dist/src/plugins/NodeFederationPlugin.js.map +1 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.d.ts +10 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js +134 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js.map +1 -0
- package/dist/src/plugins/StreamingTargetPlugin.d.ts +28 -0
- package/dist/src/plugins/StreamingTargetPlugin.js +59 -0
- package/dist/src/plugins/StreamingTargetPlugin.js.map +1 -0
- package/dist/src/plugins/UniversalFederationPlugin.d.ts +45 -0
- package/dist/src/plugins/UniversalFederationPlugin.js +85 -0
- package/dist/src/plugins/UniversalFederationPlugin.js.map +1 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.ts +5 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js +28 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js.map +1 -0
- package/dist/src/plugins/webpackChunkUtilities.d.ts +50 -0
- package/dist/src/plugins/webpackChunkUtilities.js +304 -0
- package/dist/src/plugins/webpackChunkUtilities.js.map +1 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.d.ts +3 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.js +65 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.js.map +1 -0
- package/dist/src/runtimePlugin.d.ts +22 -0
- package/dist/src/runtimePlugin.js +280 -0
- package/dist/src/runtimePlugin.js.map +1 -0
- package/dist/src/types/index.d.ts +3 -0
- package/dist/src/types/index.js +3 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/flush-chunks.d.ts +11 -0
- package/dist/src/utils/flush-chunks.js +177 -0
- package/dist/src/utils/flush-chunks.js.map +1 -0
- package/dist/src/utils/hot-reload.d.ts +12 -0
- package/dist/src/utils/hot-reload.js +292 -0
- package/dist/src/utils/hot-reload.js.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupWebpackRequirePatching = exports.setupChunkHandler = exports.setupScriptLoader = exports.deleteChunk = exports.installChunk = exports.loadChunk = exports.resolveUrl = exports.fetchAndRun = exports.loadFromFs = exports.returnFromGlobalInstances = exports.returnFromCache = exports.resolveFile = exports.nodeRuntimeImportCache = void 0;
|
|
4
|
+
exports.importNodeModule = importNodeModule;
|
|
5
|
+
exports.default = default_1;
|
|
6
|
+
exports.nodeRuntimeImportCache = new Map();
|
|
7
|
+
function importNodeModule(name) {
|
|
8
|
+
if (!name) {
|
|
9
|
+
throw new Error('import specifier is required');
|
|
10
|
+
}
|
|
11
|
+
// Check cache to prevent infinite recursion
|
|
12
|
+
if (exports.nodeRuntimeImportCache.has(name)) {
|
|
13
|
+
return exports.nodeRuntimeImportCache.get(name);
|
|
14
|
+
}
|
|
15
|
+
const importModule = new Function('name', `return import(name)`);
|
|
16
|
+
const promise = importModule(name)
|
|
17
|
+
.then((res) => res.default)
|
|
18
|
+
.catch((error) => {
|
|
19
|
+
console.error(`Error importing module ${name}:`, error);
|
|
20
|
+
// Remove from cache on error so it can be retried
|
|
21
|
+
exports.nodeRuntimeImportCache.delete(name);
|
|
22
|
+
throw error;
|
|
23
|
+
});
|
|
24
|
+
// Cache the promise to prevent recursive calls
|
|
25
|
+
exports.nodeRuntimeImportCache.set(name, promise);
|
|
26
|
+
return promise;
|
|
27
|
+
}
|
|
28
|
+
// Hoisted utility function to resolve file paths for chunks
|
|
29
|
+
const resolveFile = (rootOutputDir, chunkId) => {
|
|
30
|
+
const path = __non_webpack_require__('path');
|
|
31
|
+
return path.join(__dirname, rootOutputDir + __webpack_require__.u(chunkId));
|
|
32
|
+
};
|
|
33
|
+
exports.resolveFile = resolveFile;
|
|
34
|
+
// Hoisted utility function to get remote entry from cache
|
|
35
|
+
const returnFromCache = (remoteName) => {
|
|
36
|
+
const globalThisVal = new Function('return globalThis')();
|
|
37
|
+
const federationInstances = globalThisVal['__FEDERATION__']['__INSTANCES__'];
|
|
38
|
+
for (const instance of federationInstances) {
|
|
39
|
+
const moduleContainer = instance.moduleCache.get(remoteName);
|
|
40
|
+
if (moduleContainer?.remoteInfo)
|
|
41
|
+
return moduleContainer.remoteInfo.entry;
|
|
42
|
+
}
|
|
43
|
+
return null;
|
|
44
|
+
};
|
|
45
|
+
exports.returnFromCache = returnFromCache;
|
|
46
|
+
// Hoisted utility function to get remote entry from global instances
|
|
47
|
+
const returnFromGlobalInstances = (remoteName) => {
|
|
48
|
+
const globalThisVal = new Function('return globalThis')();
|
|
49
|
+
const federationInstances = globalThisVal['__FEDERATION__']['__INSTANCES__'];
|
|
50
|
+
for (const instance of federationInstances) {
|
|
51
|
+
for (const remote of instance.options.remotes) {
|
|
52
|
+
if (remote.name === remoteName || remote.alias === remoteName) {
|
|
53
|
+
console.log('Backup remote entry found:', remote.entry);
|
|
54
|
+
return remote.entry;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
};
|
|
60
|
+
exports.returnFromGlobalInstances = returnFromGlobalInstances;
|
|
61
|
+
// Hoisted utility function to load chunks from filesystem
|
|
62
|
+
const loadFromFs = (filename, callback) => {
|
|
63
|
+
const fs = __non_webpack_require__('fs');
|
|
64
|
+
const path = __non_webpack_require__('path');
|
|
65
|
+
const vm = __non_webpack_require__('vm');
|
|
66
|
+
if (fs.existsSync(filename)) {
|
|
67
|
+
fs.readFile(filename, 'utf-8', (err, content) => {
|
|
68
|
+
if (err)
|
|
69
|
+
return callback(err, null);
|
|
70
|
+
const chunk = {};
|
|
71
|
+
try {
|
|
72
|
+
const script = new vm.Script(`(function(exports, require, __dirname, __filename) {${content}\n})`, {
|
|
73
|
+
filename,
|
|
74
|
+
importModuleDynamically:
|
|
75
|
+
//@ts-ignore
|
|
76
|
+
vm.constants?.USE_MAIN_CONTEXT_DEFAULT_LOADER ?? importNodeModule,
|
|
77
|
+
});
|
|
78
|
+
script.runInThisContext()(chunk, __non_webpack_require__, path.dirname(filename), filename);
|
|
79
|
+
callback(null, chunk);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
console.log("'runInThisContext threw'", e);
|
|
83
|
+
callback(e, null);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
callback(new Error(`File ${filename} does not exist`), null);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
exports.loadFromFs = loadFromFs;
|
|
92
|
+
// Hoisted utility function to fetch and execute chunks from remote URLs
|
|
93
|
+
const fetchAndRun = (url, chunkName, callback, args) => {
|
|
94
|
+
(typeof fetch === 'undefined'
|
|
95
|
+
? importNodeModule('node-fetch').then((mod) => mod.default)
|
|
96
|
+
: Promise.resolve(fetch))
|
|
97
|
+
.then((fetchFunction) => {
|
|
98
|
+
return args.origin.loaderHook.lifecycle.fetch
|
|
99
|
+
.emit(url.href, {})
|
|
100
|
+
.then((res) => {
|
|
101
|
+
if (!res || !(res instanceof Response)) {
|
|
102
|
+
return fetchFunction(url.href).then((response) => response.text());
|
|
103
|
+
}
|
|
104
|
+
return res.text();
|
|
105
|
+
});
|
|
106
|
+
})
|
|
107
|
+
.then((data) => {
|
|
108
|
+
const chunk = {};
|
|
109
|
+
try {
|
|
110
|
+
eval(`(function(exports, require, __dirname, __filename) {${data}\n})`)(chunk, __non_webpack_require__, url.pathname.split('/').slice(0, -1).join('/'), chunkName);
|
|
111
|
+
callback(null, chunk);
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
callback(e, null);
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
.catch((err) => callback(err, null));
|
|
118
|
+
};
|
|
119
|
+
exports.fetchAndRun = fetchAndRun;
|
|
120
|
+
// Hoisted utility function to resolve URLs for chunks
|
|
121
|
+
const resolveUrl = (remoteName, chunkName) => {
|
|
122
|
+
try {
|
|
123
|
+
return new URL(chunkName, __webpack_require__.p);
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
const entryUrl = (0, exports.returnFromCache)(remoteName) || (0, exports.returnFromGlobalInstances)(remoteName);
|
|
127
|
+
if (!entryUrl)
|
|
128
|
+
return null;
|
|
129
|
+
const url = new URL(entryUrl);
|
|
130
|
+
const path = __non_webpack_require__('path');
|
|
131
|
+
// Extract the directory path from the remote entry URL
|
|
132
|
+
// e.g., from "http://url/static/js/remoteEntry.js" to "/static/js/"
|
|
133
|
+
const urlPath = url.pathname;
|
|
134
|
+
const lastSlashIndex = urlPath.lastIndexOf('/');
|
|
135
|
+
const directoryPath = lastSlashIndex >= 0 ? urlPath.substring(0, lastSlashIndex + 1) : '/';
|
|
136
|
+
// Get rootDir from webpack configuration
|
|
137
|
+
const rootDir = __webpack_require__.federation.rootOutputDir || '';
|
|
138
|
+
// Use path.join to combine the paths properly while handling slashes
|
|
139
|
+
// Convert Windows-style paths to URL-style paths
|
|
140
|
+
const combinedPath = path
|
|
141
|
+
.join(directoryPath, rootDir, chunkName)
|
|
142
|
+
.replace(/\\/g, '/');
|
|
143
|
+
// Create the final URL
|
|
144
|
+
return new URL(combinedPath, url.origin);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
exports.resolveUrl = resolveUrl;
|
|
148
|
+
// Hoisted utility function to load chunks based on different strategies
|
|
149
|
+
const loadChunk = (strategy, chunkId, rootOutputDir, callback, args) => {
|
|
150
|
+
if (strategy === 'filesystem') {
|
|
151
|
+
return (0, exports.loadFromFs)((0, exports.resolveFile)(rootOutputDir, chunkId), callback);
|
|
152
|
+
}
|
|
153
|
+
const url = (0, exports.resolveUrl)(rootOutputDir, chunkId);
|
|
154
|
+
if (!url)
|
|
155
|
+
return callback(null, { modules: {}, ids: [], runtime: null });
|
|
156
|
+
// Using fetchAndRun directly with args
|
|
157
|
+
(0, exports.fetchAndRun)(url, chunkId, callback, args);
|
|
158
|
+
};
|
|
159
|
+
exports.loadChunk = loadChunk;
|
|
160
|
+
// Hoisted utility function to install a chunk into webpack
|
|
161
|
+
const installChunk = (chunk, installedChunks) => {
|
|
162
|
+
for (const moduleId in chunk.modules) {
|
|
163
|
+
__webpack_require__.m[moduleId] = chunk.modules[moduleId];
|
|
164
|
+
}
|
|
165
|
+
if (chunk.runtime)
|
|
166
|
+
chunk.runtime(__webpack_require__);
|
|
167
|
+
for (const chunkId of chunk.ids) {
|
|
168
|
+
if (installedChunks[chunkId])
|
|
169
|
+
installedChunks[chunkId][0]();
|
|
170
|
+
installedChunks[chunkId] = 0;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
exports.installChunk = installChunk;
|
|
174
|
+
// Hoisted utility function to remove a chunk on fail
|
|
175
|
+
const deleteChunk = (chunkId, installedChunks) => {
|
|
176
|
+
delete installedChunks[chunkId];
|
|
177
|
+
return true;
|
|
178
|
+
};
|
|
179
|
+
exports.deleteChunk = deleteChunk;
|
|
180
|
+
// Hoisted function to set up webpack script loader
|
|
181
|
+
const setupScriptLoader = () => {
|
|
182
|
+
__webpack_require__.l = (url, done, key, chunkId) => {
|
|
183
|
+
if (!key || chunkId)
|
|
184
|
+
throw new Error(`__webpack_require__.l name is required for ${url}`);
|
|
185
|
+
__webpack_require__.federation.runtime
|
|
186
|
+
.loadScriptNode(url, { attrs: { globalName: key } })
|
|
187
|
+
.then((res) => {
|
|
188
|
+
const enhancedRemote = __webpack_require__.federation.instance.initRawContainer(key, url, res);
|
|
189
|
+
new Function('return globalThis')()[key] = enhancedRemote;
|
|
190
|
+
done(enhancedRemote);
|
|
191
|
+
})
|
|
192
|
+
.catch(done);
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
exports.setupScriptLoader = setupScriptLoader;
|
|
196
|
+
// Hoisted function to set up chunk handler
|
|
197
|
+
const setupChunkHandler = (installedChunks, args) => {
|
|
198
|
+
return (chunkId, promises) => {
|
|
199
|
+
let installedChunkData = installedChunks[chunkId];
|
|
200
|
+
if (installedChunkData !== 0) {
|
|
201
|
+
if (installedChunkData) {
|
|
202
|
+
promises.push(installedChunkData[2]);
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
const matcher = __webpack_require__.federation.chunkMatcher
|
|
206
|
+
? __webpack_require__.federation.chunkMatcher(chunkId)
|
|
207
|
+
: true;
|
|
208
|
+
if (matcher) {
|
|
209
|
+
const promise = new Promise((resolve, reject) => {
|
|
210
|
+
installedChunkData = installedChunks[chunkId] = [resolve, reject];
|
|
211
|
+
const fs = typeof process !== 'undefined'
|
|
212
|
+
? __non_webpack_require__('fs')
|
|
213
|
+
: false;
|
|
214
|
+
const filename = typeof process !== 'undefined'
|
|
215
|
+
? (0, exports.resolveFile)(__webpack_require__.federation.rootOutputDir || '', chunkId)
|
|
216
|
+
: false;
|
|
217
|
+
if (fs && fs.existsSync(filename)) {
|
|
218
|
+
(0, exports.loadChunk)('filesystem', chunkId, __webpack_require__.federation.rootOutputDir || '', (err, chunk) => {
|
|
219
|
+
if (err)
|
|
220
|
+
return (0, exports.deleteChunk)(chunkId, installedChunks) && reject(err);
|
|
221
|
+
if (chunk)
|
|
222
|
+
(0, exports.installChunk)(chunk, installedChunks);
|
|
223
|
+
resolve(chunk);
|
|
224
|
+
}, args);
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
const chunkName = __webpack_require__.u(chunkId);
|
|
228
|
+
const loadingStrategy = typeof process === 'undefined' ? 'http-eval' : 'http-vm';
|
|
229
|
+
(0, exports.loadChunk)(loadingStrategy, chunkName, __webpack_require__.federation.initOptions.name, (err, chunk) => {
|
|
230
|
+
if (err)
|
|
231
|
+
return (0, exports.deleteChunk)(chunkId, installedChunks) && reject(err);
|
|
232
|
+
if (chunk)
|
|
233
|
+
(0, exports.installChunk)(chunk, installedChunks);
|
|
234
|
+
resolve(chunk);
|
|
235
|
+
}, args);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
promises.push((installedChunkData[2] = promise));
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
installedChunks[chunkId] = 0;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
exports.setupChunkHandler = setupChunkHandler;
|
|
248
|
+
// Hoisted function to set up webpack require patching
|
|
249
|
+
const setupWebpackRequirePatching = (handle) => {
|
|
250
|
+
if (__webpack_require__.f) {
|
|
251
|
+
if (__webpack_require__.f.require) {
|
|
252
|
+
console.warn('\x1b[33m%s\x1b[0m', 'CAUTION: build target is not set to "async-node", attempting to patch additional chunk handlers. This may not work');
|
|
253
|
+
__webpack_require__.f.require = handle;
|
|
254
|
+
}
|
|
255
|
+
if (__webpack_require__.f.readFileVm) {
|
|
256
|
+
__webpack_require__.f.readFileVm = handle;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
exports.setupWebpackRequirePatching = setupWebpackRequirePatching;
|
|
261
|
+
function default_1() {
|
|
262
|
+
return {
|
|
263
|
+
name: 'node-federation-plugin',
|
|
264
|
+
beforeInit(args) {
|
|
265
|
+
// Patch webpack chunk loading handlers
|
|
266
|
+
(() => {
|
|
267
|
+
// Create the chunk tracking object
|
|
268
|
+
const installedChunks = {};
|
|
269
|
+
// Set up webpack script loader
|
|
270
|
+
(0, exports.setupScriptLoader)();
|
|
271
|
+
// Create and set up the chunk handler
|
|
272
|
+
const handle = (0, exports.setupChunkHandler)(installedChunks, args);
|
|
273
|
+
// Patch webpack require
|
|
274
|
+
(0, exports.setupWebpackRequirePatching)(handle);
|
|
275
|
+
})();
|
|
276
|
+
return args;
|
|
277
|
+
},
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=runtimePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtimePlugin.js","sourceRoot":"","sources":["../../src/runtimePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize usedChunks and share it globally.
|
|
3
|
+
* @type {Set}
|
|
4
|
+
*/
|
|
5
|
+
export declare const usedChunks: any;
|
|
6
|
+
export declare const getAllKnownRemotes: () => {};
|
|
7
|
+
/**
|
|
8
|
+
* Flush the chunks and return a deduplicated array of chunks.
|
|
9
|
+
* @returns {Promise<Array>} A promise that resolves to an array of deduplicated chunks.
|
|
10
|
+
*/
|
|
11
|
+
export declare const flushChunks: () => Promise<unknown[]>;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable no-undef */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.flushChunks = exports.getAllKnownRemotes = exports.usedChunks = void 0;
|
|
5
|
+
// @ts-ignore
|
|
6
|
+
if (!globalThis.usedChunks) {
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
globalThis.usedChunks = new Set();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Initialize usedChunks and share it globally.
|
|
12
|
+
* @type {Set}
|
|
13
|
+
*/
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
exports.usedChunks = globalThis.usedChunks;
|
|
16
|
+
/**
|
|
17
|
+
* Load hostStats from the JSON file.
|
|
18
|
+
* @returns {object} hostStats - An object containing host stats data.
|
|
19
|
+
*/
|
|
20
|
+
const loadHostStats = () => {
|
|
21
|
+
try {
|
|
22
|
+
//@ts-ignore
|
|
23
|
+
return __non_webpack_require__('../federated-stats.json');
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const getAllKnownRemotes = function () {
|
|
30
|
+
// Attempt to access the global federation controller safely
|
|
31
|
+
const federationController = new Function('return globalThis')()
|
|
32
|
+
.__FEDERATION__;
|
|
33
|
+
if (!federationController || !federationController.__INSTANCES__) {
|
|
34
|
+
// If the federation controller or instances are not defined, return an empty object
|
|
35
|
+
return {};
|
|
36
|
+
}
|
|
37
|
+
var collected = {};
|
|
38
|
+
// Use a for...of loop to iterate over all federation instances
|
|
39
|
+
for (const instance of federationController.__INSTANCES__) {
|
|
40
|
+
// Use another for...of loop to iterate over the module cache Map entries
|
|
41
|
+
for (const [key, cacheModule] of instance.moduleCache) {
|
|
42
|
+
// Check if the cacheModule has remoteInfo and use it to collect remote names
|
|
43
|
+
if (cacheModule.remoteInfo) {
|
|
44
|
+
//@ts-ignore
|
|
45
|
+
collected[cacheModule.remoteInfo.name] = cacheModule.remoteInfo;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return collected;
|
|
50
|
+
};
|
|
51
|
+
exports.getAllKnownRemotes = getAllKnownRemotes;
|
|
52
|
+
/**
|
|
53
|
+
* Create a shareMap based on the loaded modules.
|
|
54
|
+
* @returns {object} shareMap - An object containing the shareMap data.
|
|
55
|
+
*/
|
|
56
|
+
const createShareMap = () => {
|
|
57
|
+
// Check if __webpack_share_scopes__ is defined and has a default property
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
if (__webpack_share_scopes__?.default) {
|
|
60
|
+
// Reduce the keys of the default property to create the share map
|
|
61
|
+
// @ts-ignore
|
|
62
|
+
return Object.keys(__webpack_share_scopes__.default).reduce((acc, key) => {
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
const shareMap = __webpack_share_scopes__.default[key];
|
|
65
|
+
// shareScope may equal undefined or null if it has unexpected value
|
|
66
|
+
if (!shareMap || typeof shareMap !== 'object') {
|
|
67
|
+
return acc;
|
|
68
|
+
}
|
|
69
|
+
// Get the loaded modules for the current key
|
|
70
|
+
const loadedModules = Object.values(shareMap)
|
|
71
|
+
// Filter out the modules that are not loaded
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
.filter((sharedModule) => sharedModule.loaded)
|
|
74
|
+
// Map the filtered modules to their 'from' properties
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
.map((sharedModule) => sharedModule.from);
|
|
77
|
+
// If there are any loaded modules, add them to the accumulator object
|
|
78
|
+
if (loadedModules.length > 0) {
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
acc[key] = loadedModules;
|
|
81
|
+
}
|
|
82
|
+
// Return the accumulator object for the next iteration
|
|
83
|
+
return acc;
|
|
84
|
+
}, {});
|
|
85
|
+
}
|
|
86
|
+
// If __webpack_share_scopes__ is not defined or doesn't have a default property, return an empty object
|
|
87
|
+
return {};
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Process a single chunk and return an array of updated chunks.
|
|
91
|
+
* @param {string} chunk - A chunk string containing remote and request data.
|
|
92
|
+
* @param {object} shareMap - An object containing the shareMap data.
|
|
93
|
+
* @param {object} hostStats - An object containing host stats data.
|
|
94
|
+
* @returns {Promise<Array>} A promise that resolves to an array of updated chunks.
|
|
95
|
+
*/
|
|
96
|
+
// @ts-ignore
|
|
97
|
+
const processChunk = async (chunk, shareMap, hostStats) => {
|
|
98
|
+
const chunks = new Set();
|
|
99
|
+
const [remote, req] = chunk.split('/');
|
|
100
|
+
const request = './' + req;
|
|
101
|
+
const knownRemotes = (0, exports.getAllKnownRemotes)();
|
|
102
|
+
//@ts-ignore
|
|
103
|
+
if (!knownRemotes[remote]) {
|
|
104
|
+
console.error(`flush chunks: Remote ${remote} is not defined in the global config`);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
try {
|
|
108
|
+
//@ts-ignore
|
|
109
|
+
const remoteName = new URL(knownRemotes[remote].entry).pathname
|
|
110
|
+
.split('/')
|
|
111
|
+
.pop();
|
|
112
|
+
//@ts-ignore
|
|
113
|
+
const statsFile = knownRemotes[remote].entry
|
|
114
|
+
.replace(remoteName, 'federated-stats.json')
|
|
115
|
+
.replace('ssr', 'chunks');
|
|
116
|
+
let stats = {};
|
|
117
|
+
try {
|
|
118
|
+
stats = await fetch(statsFile).then((res) => res.json());
|
|
119
|
+
}
|
|
120
|
+
catch (e) {
|
|
121
|
+
console.error('flush error', e);
|
|
122
|
+
}
|
|
123
|
+
//@ts-ignore
|
|
124
|
+
const [prefix] = knownRemotes[remote].entry.split('static/');
|
|
125
|
+
//@ts-ignore
|
|
126
|
+
if (stats.federatedModules) {
|
|
127
|
+
//@ts-ignore
|
|
128
|
+
stats.federatedModules.forEach((modules) => {
|
|
129
|
+
if (modules.exposes?.[request]) {
|
|
130
|
+
//@ts-ignore
|
|
131
|
+
modules.exposes[request].forEach((chunk) => {
|
|
132
|
+
chunks.add([prefix, chunk].join(''));
|
|
133
|
+
Object.values(chunk).forEach((chunk) => {
|
|
134
|
+
//@ts-ignore
|
|
135
|
+
if (chunk.files) {
|
|
136
|
+
//@ts-ignore
|
|
137
|
+
chunk.files.forEach((file) => {
|
|
138
|
+
chunks.add(prefix + file);
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//@ts-ignore
|
|
142
|
+
if (chunk.requiredModules) {
|
|
143
|
+
//@ts-ignore
|
|
144
|
+
chunk.requiredModules.forEach((module) => {
|
|
145
|
+
if (shareMap[module]) {
|
|
146
|
+
// If the module is from the host, log the host stats
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return Array.from(chunks);
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
console.error('flush error:', e);
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Flush the chunks and return a deduplicated array of chunks.
|
|
163
|
+
* @returns {Promise<Array>} A promise that resolves to an array of deduplicated chunks.
|
|
164
|
+
*/
|
|
165
|
+
const flushChunks = async () => {
|
|
166
|
+
const hostStats = loadHostStats();
|
|
167
|
+
const shareMap = createShareMap();
|
|
168
|
+
const allFlushed = await Promise.all(Array.from(exports.usedChunks).map(async (chunk) => processChunk(chunk, shareMap, hostStats)));
|
|
169
|
+
// Deduplicate the chunks array
|
|
170
|
+
const dedupe = Array.from(new Set([...allFlushed.flat()]));
|
|
171
|
+
// Clear usedChunks
|
|
172
|
+
exports.usedChunks.clear();
|
|
173
|
+
// Filter out any undefined or null values
|
|
174
|
+
return dedupe.filter(Boolean);
|
|
175
|
+
};
|
|
176
|
+
exports.flushChunks = flushChunks;
|
|
177
|
+
//# sourceMappingURL=flush-chunks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flush-chunks.js","sourceRoot":"","sources":["../../../src/utils/flush-chunks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
var mfHashMap: Record<string, string> | undefined;
|
|
3
|
+
var moduleGraphDirty: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare const performReload: (shouldReload: boolean) => Promise<boolean>;
|
|
6
|
+
export declare const checkUnreachableRemote: (remoteScope: any) => boolean;
|
|
7
|
+
export declare const checkMedusaConfigChange: (remoteScope: any, fetchModule: any) => boolean;
|
|
8
|
+
export declare const checkFakeRemote: (remoteScope: any) => boolean;
|
|
9
|
+
export declare const createFetcher: (url: string, fetchModule: any, name: string, cb: (hash: string) => void) => Promise<void | boolean>;
|
|
10
|
+
export declare const fetchRemote: (remoteScope: any, fetchModule: any) => Promise<boolean>;
|
|
11
|
+
export declare const revalidate: (fetchModule?: any, force?: boolean) => Promise<boolean>;
|
|
12
|
+
export declare function getFetchModule(): any;
|