@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.
Files changed (64) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -0
  3. package/dist/jest.config.d.ts +11 -0
  4. package/dist/jest.config.js +19 -0
  5. package/dist/jest.config.js.map +1 -0
  6. package/dist/package.json +90 -0
  7. package/dist/src/filesystem/stratagies.d.ts +18 -0
  8. package/dist/src/filesystem/stratagies.js +124 -0
  9. package/dist/src/filesystem/stratagies.js.map +1 -0
  10. package/dist/src/index.d.ts +7 -0
  11. package/dist/src/index.js +22 -0
  12. package/dist/src/index.js.map +1 -0
  13. package/dist/src/plugins/AutomaticPublicPathPlugin.d.ts +9 -0
  14. package/dist/src/plugins/AutomaticPublicPathPlugin.js +38 -0
  15. package/dist/src/plugins/AutomaticPublicPathPlugin.js.map +1 -0
  16. package/dist/src/plugins/ChunkCorrelationPlugin.d.ts +61 -0
  17. package/dist/src/plugins/ChunkCorrelationPlugin.js +441 -0
  18. package/dist/src/plugins/ChunkCorrelationPlugin.js.map +1 -0
  19. package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.ts +17 -0
  20. package/dist/src/plugins/CommonJsChunkLoadingPlugin.js +121 -0
  21. package/dist/src/plugins/CommonJsChunkLoadingPlugin.js.map +1 -0
  22. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts +40 -0
  23. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js +128 -0
  24. package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +1 -0
  25. package/dist/src/plugins/EntryChunkTrackerPlugin.d.ts +13 -0
  26. package/dist/src/plugins/EntryChunkTrackerPlugin.js +41 -0
  27. package/dist/src/plugins/EntryChunkTrackerPlugin.js.map +1 -0
  28. package/dist/src/plugins/NodeFederationPlugin.d.ts +46 -0
  29. package/dist/src/plugins/NodeFederationPlugin.js +88 -0
  30. package/dist/src/plugins/NodeFederationPlugin.js.map +1 -0
  31. package/dist/src/plugins/RemotePublicPathRuntimeModule.d.ts +10 -0
  32. package/dist/src/plugins/RemotePublicPathRuntimeModule.js +134 -0
  33. package/dist/src/plugins/RemotePublicPathRuntimeModule.js.map +1 -0
  34. package/dist/src/plugins/StreamingTargetPlugin.d.ts +28 -0
  35. package/dist/src/plugins/StreamingTargetPlugin.js +59 -0
  36. package/dist/src/plugins/StreamingTargetPlugin.js.map +1 -0
  37. package/dist/src/plugins/UniversalFederationPlugin.d.ts +45 -0
  38. package/dist/src/plugins/UniversalFederationPlugin.js +85 -0
  39. package/dist/src/plugins/UniversalFederationPlugin.js.map +1 -0
  40. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.ts +5 -0
  41. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js +28 -0
  42. package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js.map +1 -0
  43. package/dist/src/plugins/webpackChunkUtilities.d.ts +50 -0
  44. package/dist/src/plugins/webpackChunkUtilities.js +304 -0
  45. package/dist/src/plugins/webpackChunkUtilities.js.map +1 -0
  46. package/dist/src/recordDynamicRemoteEntryHashPlugin.d.ts +3 -0
  47. package/dist/src/recordDynamicRemoteEntryHashPlugin.js +65 -0
  48. package/dist/src/recordDynamicRemoteEntryHashPlugin.js.map +1 -0
  49. package/dist/src/runtimePlugin.d.ts +22 -0
  50. package/dist/src/runtimePlugin.js +280 -0
  51. package/dist/src/runtimePlugin.js.map +1 -0
  52. package/dist/src/types/index.d.ts +3 -0
  53. package/dist/src/types/index.js +3 -0
  54. package/dist/src/types/index.js.map +1 -0
  55. package/dist/src/utils/flush-chunks.d.ts +11 -0
  56. package/dist/src/utils/flush-chunks.js +177 -0
  57. package/dist/src/utils/flush-chunks.js.map +1 -0
  58. package/dist/src/utils/hot-reload.d.ts +12 -0
  59. package/dist/src/utils/hot-reload.js +292 -0
  60. package/dist/src/utils/hot-reload.js.map +1 -0
  61. package/dist/src/utils/index.d.ts +2 -0
  62. package/dist/src/utils/index.js +19 -0
  63. package/dist/src/utils/index.js.map +1 -0
  64. 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,3 @@
1
+ import { moduleFederationPlugin } from '@module-federation/sdk';
2
+ export type ModuleFederationPluginOptions = moduleFederationPlugin.ModuleFederationPluginOptions;
3
+ export type RemotesObject = ModuleFederationPluginOptions['remotes'];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -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;