@module-federation/node 0.0.0-perf-devtools-20260107043700 → 0.0.0-perf-website-code-usage-20260914033703
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/dist/_virtual/_rolldown/runtime.js +31 -0
- package/dist/_virtual/_rolldown/runtime.mjs +8 -0
- package/dist/node_modules/.pnpm/webpack@5.104.1_@swc_core@1.7.26_@swc_helpers@0.5.13__esbuild@0.28.1_webpack-cli@5.1.4/node_modules/webpack/types.d.mts +1 -0
- package/dist/node_modules/.pnpm/webpack@5.104.1_@swc_core@1.7.26_@swc_helpers@0.5.13__esbuild@0.28.1_webpack-cli@5.1.4/node_modules/webpack/types.d.ts +1 -0
- package/dist/plugins/ChunkCorrelationPlugin.js +308 -0
- package/dist/plugins/ChunkCorrelationPlugin.js.map +1 -0
- package/dist/plugins/ChunkCorrelationPlugin.mjs +305 -0
- package/dist/plugins/ChunkCorrelationPlugin.mjs.map +1 -0
- package/dist/plugins/createBundlerLogger.js +9 -0
- package/dist/plugins/createBundlerLogger.js.map +1 -0
- package/dist/plugins/createBundlerLogger.mjs +8 -0
- package/dist/plugins/createBundlerLogger.mjs.map +1 -0
- package/dist/src/filesystem/stratagies.d.mts +21 -0
- package/dist/src/filesystem/stratagies.d.ts +10 -7
- package/dist/src/filesystem/stratagies.js +97 -116
- package/dist/src/filesystem/stratagies.js.map +1 -1
- package/dist/src/filesystem/stratagies.mjs +103 -0
- package/dist/src/filesystem/stratagies.mjs.map +1 -0
- package/dist/src/index.d.mts +8 -0
- package/dist/src/index.d.ts +8 -7
- package/dist/src/index.js +16 -22
- package/dist/src/index.mjs +9 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.d.mts +12 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.d.ts +9 -7
- package/dist/src/plugins/AutomaticPublicPathPlugin.js +26 -35
- package/dist/src/plugins/AutomaticPublicPathPlugin.js.map +1 -1
- package/dist/src/plugins/AutomaticPublicPathPlugin.mjs +28 -0
- package/dist/src/plugins/AutomaticPublicPathPlugin.mjs.map +1 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.d.mts +5 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.d.ts +4 -61
- package/dist/src/plugins/ChunkCorrelationPlugin.js +8 -440
- package/dist/src/plugins/ChunkCorrelationPlugin.js.map +1 -1
- package/dist/src/plugins/ChunkCorrelationPlugin.mjs +8 -0
- package/dist/src/plugins/ChunkCorrelationPlugin.mjs.map +1 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.mts +21 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.d.ts +16 -13
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.js +68 -118
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.js.map +1 -1
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.mjs +70 -0
- package/dist/src/plugins/CommonJsChunkLoadingPlugin.mjs.map +1 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.mts +44 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.d.ts +37 -34
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js +109 -126
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.js.map +1 -1
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.mjs +110 -0
- package/dist/src/plugins/DynamicFilesystemChunkLoadingRuntimeModule.mjs.map +1 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.d.mts +17 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.d.ts +14 -10
- package/dist/src/plugins/EntryChunkTrackerPlugin.js +30 -32
- package/dist/src/plugins/EntryChunkTrackerPlugin.js.map +1 -1
- package/dist/src/plugins/EntryChunkTrackerPlugin.mjs +38 -0
- package/dist/src/plugins/EntryChunkTrackerPlugin.mjs.map +1 -0
- package/dist/src/plugins/NodeFederationPlugin.d.mts +54 -0
- package/dist/src/plugins/NodeFederationPlugin.d.ts +33 -26
- package/dist/src/plugins/NodeFederationPlugin.js +72 -84
- package/dist/src/plugins/NodeFederationPlugin.js.map +1 -1
- package/dist/src/plugins/NodeFederationPlugin.mjs +73 -0
- package/dist/src/plugins/NodeFederationPlugin.mjs.map +1 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.d.mts +13 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.d.ts +10 -8
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js +34 -35
- package/dist/src/plugins/RemotePublicPathRuntimeModule.js.map +1 -1
- package/dist/src/plugins/RemotePublicPathRuntimeModule.mjs +132 -0
- package/dist/src/plugins/RemotePublicPathRuntimeModule.mjs.map +1 -0
- package/dist/src/plugins/StreamingTargetPlugin.d.mts +32 -0
- package/dist/src/plugins/StreamingTargetPlugin.d.ts +19 -16
- package/dist/src/plugins/StreamingTargetPlugin.js +43 -56
- package/dist/src/plugins/StreamingTargetPlugin.js.map +1 -1
- package/dist/src/plugins/StreamingTargetPlugin.mjs +46 -0
- package/dist/src/plugins/StreamingTargetPlugin.mjs.map +1 -0
- package/dist/src/plugins/UniversalFederationPlugin.d.mts +49 -0
- package/dist/src/plugins/UniversalFederationPlugin.d.ts +26 -23
- package/dist/src/plugins/UniversalFederationPlugin.js +62 -81
- package/dist/src/plugins/UniversalFederationPlugin.js.map +1 -1
- package/dist/src/plugins/UniversalFederationPlugin.mjs +65 -0
- package/dist/src/plugins/UniversalFederationPlugin.mjs.map +1 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.mts +9 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.d.ts +6 -3
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js +14 -17
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.js.map +1 -1
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.mjs +23 -0
- package/dist/src/plugins/UniverseEntryChunkTrackerPlugin.mjs.map +1 -0
- package/dist/src/plugins/webpackChunkUtilities.d.mts +55 -0
- package/dist/src/plugins/webpackChunkUtilities.d.ts +14 -9
- package/dist/src/plugins/webpackChunkUtilities.js +195 -257
- package/dist/src/plugins/webpackChunkUtilities.js.map +1 -1
- package/dist/src/plugins/webpackChunkUtilities.mjs +234 -0
- package/dist/src/plugins/webpackChunkUtilities.mjs.map +1 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.d.mts +7 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.d.ts +5 -2
- package/dist/src/recordDynamicRemoteEntryHashPlugin.js +24 -61
- package/dist/src/recordDynamicRemoteEntryHashPlugin.js.map +1 -1
- package/dist/src/recordDynamicRemoteEntryHashPlugin.mjs +26 -0
- package/dist/src/recordDynamicRemoteEntryHashPlugin.mjs.map +1 -0
- package/dist/src/runtimePlugin.d.mts +27 -0
- package/dist/src/runtimePlugin.d.ts +24 -19
- package/dist/src/runtimePlugin.js +214 -252
- package/dist/src/runtimePlugin.js.map +1 -1
- package/dist/src/runtimePlugin.mjs +226 -0
- package/dist/src/runtimePlugin.mjs.map +1 -0
- package/dist/src/types/index.d.mts +8 -0
- package/dist/src/types/index.d.ts +8 -3
- package/dist/src/types/index.js +1 -3
- package/dist/src/types/index.mjs +1 -0
- package/dist/src/utils/flush-chunks.d.mts +17 -0
- package/dist/src/utils/flush-chunks.d.ts +9 -3
- package/dist/src/utils/flush-chunks.js +138 -167
- package/dist/src/utils/flush-chunks.js.map +1 -1
- package/dist/src/utils/flush-chunks.mjs +144 -0
- package/dist/src/utils/flush-chunks.mjs.map +1 -0
- package/dist/src/utils/hot-reload.d.mts +16 -0
- package/dist/src/utils/hot-reload.d.ts +14 -10
- package/dist/src/utils/hot-reload.js +178 -264
- package/dist/src/utils/hot-reload.js.map +1 -1
- package/dist/src/utils/hot-reload.mjs +195 -0
- package/dist/src/utils/hot-reload.mjs.map +1 -0
- package/dist/src/utils/index.d.mts +3 -0
- package/dist/src/utils/index.d.ts +3 -2
- package/dist/src/utils/index.js +15 -19
- package/dist/src/utils/index.mjs +4 -0
- package/package.json +71 -26
- package/dist/jest.config.d.ts +0 -11
- package/dist/jest.config.js +0 -19
- package/dist/jest.config.js.map +0 -1
- package/dist/package.json +0 -90
- package/dist/src/index.js.map +0 -1
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/utils/index.js.map +0 -1
|
@@ -1,292 +1,206 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
+
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
3
|
+
const require_src_utils_flush_chunks = require('./flush-chunks.js');
|
|
4
|
+
let path = require("path");
|
|
5
|
+
path = require_runtime.__toESM(path);
|
|
6
|
+
let crypto = require("crypto");
|
|
7
|
+
crypto = require_runtime.__toESM(crypto);
|
|
8
|
+
let _module_federation_runtime_helpers = require("@module-federation/runtime/helpers");
|
|
9
|
+
_module_federation_runtime_helpers = require_runtime.__toESM(_module_federation_runtime_helpers);
|
|
10
|
+
|
|
11
|
+
//#region src/utils/hot-reload.ts
|
|
12
12
|
const getRequire = () => {
|
|
13
|
-
|
|
14
|
-
return typeof __non_webpack_require__ !== 'undefined'
|
|
15
|
-
? __non_webpack_require__
|
|
16
|
-
: eval('require');
|
|
13
|
+
return typeof __non_webpack_require__ !== "undefined" ? __non_webpack_require__ : eval("require");
|
|
17
14
|
};
|
|
18
15
|
function callsites() {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
16
|
+
const _prepareStackTrace = Error.prepareStackTrace;
|
|
17
|
+
try {
|
|
18
|
+
let result = [];
|
|
19
|
+
Error.prepareStackTrace = (_, callSites) => {
|
|
20
|
+
const callSitesWithoutCurrent = callSites.slice(1);
|
|
21
|
+
result = callSitesWithoutCurrent;
|
|
22
|
+
return callSitesWithoutCurrent;
|
|
23
|
+
};
|
|
24
|
+
(/* @__PURE__ */ new Error()).stack;
|
|
25
|
+
return result;
|
|
26
|
+
} finally {
|
|
27
|
+
Error.prepareStackTrace = _prepareStackTrace;
|
|
28
|
+
}
|
|
33
29
|
}
|
|
34
|
-
const find = function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
30
|
+
const find = function(moduleName) {
|
|
31
|
+
if (moduleName[0] === ".") {
|
|
32
|
+
const stack = callsites();
|
|
33
|
+
for (const frame of stack) {
|
|
34
|
+
const filename = frame.getFileName();
|
|
35
|
+
if (filename && filename !== module.filename) {
|
|
36
|
+
moduleName = path.default.resolve(path.default.dirname(filename), moduleName);
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
try {
|
|
42
|
+
return getRequire().resolve(moduleName);
|
|
43
|
+
} catch (e) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
52
46
|
};
|
|
53
47
|
/**
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const decache = async function
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
// Remove cached paths to the module.
|
|
71
|
-
// Thanks to @bentael for pointing this out.
|
|
72
|
-
//@ts-ignore
|
|
73
|
-
Object.keys(currentChunk.constructor._pathCache).forEach(function (cacheKey) {
|
|
74
|
-
if (cacheKey.indexOf(moduleName) > -1) {
|
|
75
|
-
//@ts-ignore
|
|
76
|
-
delete currentChunk.constructor._pathCache[cacheKey];
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
//null
|
|
82
|
-
}
|
|
48
|
+
* Removes a module from the cache. We need this to re-load our http_request !
|
|
49
|
+
* see: https://stackoverflow.com/a/14801711/1148249
|
|
50
|
+
*/
|
|
51
|
+
const decache = async function(moduleName) {
|
|
52
|
+
moduleName = find(moduleName);
|
|
53
|
+
if (!moduleName) return;
|
|
54
|
+
const currentChunk = getRequire().cache[__filename];
|
|
55
|
+
searchCache(moduleName, function(mod) {
|
|
56
|
+
delete getRequire().cache[mod.id];
|
|
57
|
+
});
|
|
58
|
+
try {
|
|
59
|
+
Object.keys(currentChunk.constructor._pathCache).forEach(function(cacheKey) {
|
|
60
|
+
if (cacheKey.indexOf(moduleName) > -1) delete currentChunk.constructor._pathCache[cacheKey];
|
|
61
|
+
});
|
|
62
|
+
} catch (error) {}
|
|
83
63
|
};
|
|
84
64
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const searchCache = function
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
visited[current.id] = true;
|
|
100
|
-
// Go over each of the module's children and
|
|
101
|
-
// run over it
|
|
102
|
-
current.children.forEach(function (child) {
|
|
103
|
-
// ignore .node files, decaching native modules throws a
|
|
104
|
-
// "module did not self-register" error on second require
|
|
105
|
-
if (path_1.default.extname(child.filename) !== '.node' && !visited[child.id]) {
|
|
106
|
-
run(child);
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
// Call the specified callback providing the
|
|
110
|
-
// found module
|
|
111
|
-
callback(current);
|
|
112
|
-
//@ts-ignore
|
|
113
|
-
})(mod);
|
|
114
|
-
}
|
|
65
|
+
* Runs over the cache to search for all the cached
|
|
66
|
+
* files
|
|
67
|
+
*/
|
|
68
|
+
const searchCache = function(moduleName, callback) {
|
|
69
|
+
let mod = getRequire().resolve(moduleName);
|
|
70
|
+
const visited = {};
|
|
71
|
+
/* istanbul ignore else */
|
|
72
|
+
if (mod && (mod = getRequire().cache[mod]) !== void 0) (function run(current) {
|
|
73
|
+
visited[current.id] = true;
|
|
74
|
+
current.children.forEach(function(child) {
|
|
75
|
+
if (path.default.extname(child.filename) !== ".node" && !visited[child.id]) run(child);
|
|
76
|
+
});
|
|
77
|
+
callback(current);
|
|
78
|
+
})(mod);
|
|
115
79
|
};
|
|
80
|
+
globalThis.moduleGraphDirty = false;
|
|
116
81
|
const hashmap = globalThis.mfHashMap || {};
|
|
117
82
|
globalThis.moduleGraphDirty = false;
|
|
118
83
|
const requireCacheRegex = /(remote|server|hot-reload|react-loadable-manifest|runtime|styled-jsx)/;
|
|
119
84
|
const performReload = async (shouldReload) => {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
globalThis.mfHashMap = {};
|
|
144
|
-
if (!entries) {
|
|
145
|
-
Object.keys(req.cache).forEach((key) => {
|
|
146
|
-
if (requireCacheRegex.test(key)) {
|
|
147
|
-
decache(key); // Use decache here
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
for (const entry of entries) {
|
|
153
|
-
decache(entry);
|
|
154
|
-
//reload entries again
|
|
155
|
-
await getRequire()(entry);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return true;
|
|
85
|
+
if (!shouldReload) return false;
|
|
86
|
+
const req = getRequire();
|
|
87
|
+
const gs = new Function("return globalThis")();
|
|
88
|
+
const entries = gs.entryChunkCache || /* @__PURE__ */ new Set();
|
|
89
|
+
gs.__FEDERATION__.__INSTANCES__.map((i) => {
|
|
90
|
+
i.moduleCache.forEach((mc) => {
|
|
91
|
+
if (mc.remoteInfo && mc.remoteInfo.entryGlobalName) delete gs[mc.remoteInfo.entryGlobalName];
|
|
92
|
+
});
|
|
93
|
+
i.moduleCache.clear();
|
|
94
|
+
if (gs[i.name]) delete gs[i.name];
|
|
95
|
+
});
|
|
96
|
+
__webpack_require__?.federation?.instance?.moduleCache?.clear();
|
|
97
|
+
_module_federation_runtime_helpers.default.global.resetFederationGlobalInfo();
|
|
98
|
+
globalThis.moduleGraphDirty = false;
|
|
99
|
+
globalThis.mfHashMap = {};
|
|
100
|
+
if (!entries) Object.keys(req.cache).forEach((key) => {
|
|
101
|
+
if (requireCacheRegex.test(key)) decache(key);
|
|
102
|
+
});
|
|
103
|
+
else for (const entry of entries) {
|
|
104
|
+
decache(entry);
|
|
105
|
+
await getRequire()(entry);
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
159
108
|
};
|
|
160
|
-
exports.performReload = performReload;
|
|
161
109
|
const checkUnreachableRemote = (remoteScope) => {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
return false;
|
|
110
|
+
for (const property in remoteScope.remotes) if (!remoteScope[property]) {
|
|
111
|
+
console.error("unreachable remote found", property, "hot reloading to refetch");
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
return false;
|
|
169
115
|
};
|
|
170
|
-
exports.checkUnreachableRemote = checkUnreachableRemote;
|
|
171
116
|
const checkMedusaConfigChange = (remoteScope, fetchModule) => {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
//@ts-ignore
|
|
181
|
-
remoteScope?._medusa[property].version) {
|
|
182
|
-
console.log('medusa config changed', property, 'hot reloading to refetch');
|
|
183
|
-
(0, exports.performReload)(true);
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return false;
|
|
117
|
+
if (remoteScope._medusa) for (const property in remoteScope._medusa) fetchModule(property).then((res) => res.json()).then((medusaResponse) => {
|
|
118
|
+
if (medusaResponse.version !== remoteScope?._medusa[property].version) {
|
|
119
|
+
console.log("medusa config changed", property, "hot reloading to refetch");
|
|
120
|
+
performReload(true);
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
return false;
|
|
190
125
|
};
|
|
191
|
-
exports.checkMedusaConfigChange = checkMedusaConfigChange;
|
|
192
126
|
const checkFakeRemote = (remoteScope) => {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
return false;
|
|
127
|
+
for (const property in remoteScope._config) {
|
|
128
|
+
let remote = remoteScope._config[property];
|
|
129
|
+
const resolveRemote = async () => {
|
|
130
|
+
remote = await remote();
|
|
131
|
+
};
|
|
132
|
+
if (typeof remote === "function") resolveRemote();
|
|
133
|
+
if (remote.fake) {
|
|
134
|
+
console.log("fake remote found", property, "hot reloading to refetch");
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
207
139
|
};
|
|
208
|
-
exports.checkFakeRemote = checkFakeRemote;
|
|
209
140
|
const createFetcher = (url, fetchModule, name, cb) => {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const hash = crypto_1.default.createHash('md5').update(contents).digest('hex');
|
|
219
|
-
cb(hash);
|
|
220
|
-
})
|
|
221
|
-
.catch((e) => {
|
|
222
|
-
console.error('Remote', name, url, 'Failed to load or is not online', e);
|
|
223
|
-
});
|
|
141
|
+
return fetchModule(url).then((re) => {
|
|
142
|
+
if (!re.ok) throw new Error(`Error loading remote: status: ${re.status}, content-type: ${re.headers.get("content-type")}`);
|
|
143
|
+
return re.text();
|
|
144
|
+
}).then((contents) => {
|
|
145
|
+
cb(crypto.default.createHash("md5").update(contents).digest("hex"));
|
|
146
|
+
}).catch((e) => {
|
|
147
|
+
console.error("Remote", name, url, "Failed to load or is not online", e);
|
|
148
|
+
});
|
|
224
149
|
};
|
|
225
|
-
exports.createFetcher = createFetcher;
|
|
226
150
|
const fetchRemote = (remoteScope, fetchModule) => {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
}
|
|
247
|
-
return Promise.all(fetches).then(() => {
|
|
248
|
-
return needReload;
|
|
249
|
-
});
|
|
151
|
+
const fetches = [];
|
|
152
|
+
let needReload = false;
|
|
153
|
+
for (const property in remoteScope) {
|
|
154
|
+
const name = property;
|
|
155
|
+
const url = remoteScope[property].entry;
|
|
156
|
+
const fetcher = createFetcher(url, fetchModule, name, (hash) => {
|
|
157
|
+
if (hashmap[name]) {
|
|
158
|
+
if (hashmap[name] !== hash) {
|
|
159
|
+
hashmap[name] = hash;
|
|
160
|
+
needReload = true;
|
|
161
|
+
console.log(name, "hash is different - must hot reload server");
|
|
162
|
+
}
|
|
163
|
+
} else hashmap[name] = hash;
|
|
164
|
+
});
|
|
165
|
+
fetches.push(fetcher);
|
|
166
|
+
}
|
|
167
|
+
return Promise.all(fetches).then(() => {
|
|
168
|
+
return needReload;
|
|
169
|
+
});
|
|
250
170
|
};
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
if ((0, exports.checkFakeRemote)(remotesFromAPI)) {
|
|
270
|
-
res(true);
|
|
271
|
-
}
|
|
272
|
-
(0, exports.fetchRemote)(remotesFromAPI, fetchModule).then((val) => {
|
|
273
|
-
res(val);
|
|
274
|
-
});
|
|
275
|
-
}).then((shouldReload) => {
|
|
276
|
-
return (0, exports.performReload)(shouldReload);
|
|
277
|
-
});
|
|
171
|
+
const revalidate = async (fetchModule = getFetchModule() || (() => {}), force = false) => {
|
|
172
|
+
if (globalThis.moduleGraphDirty) force = true;
|
|
173
|
+
const remotesFromAPI = require_src_utils_flush_chunks.getAllKnownRemotes();
|
|
174
|
+
return new Promise((res) => {
|
|
175
|
+
if (force) {
|
|
176
|
+
if (Object.keys(hashmap).length !== 0) {
|
|
177
|
+
res(true);
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (checkMedusaConfigChange(remotesFromAPI, fetchModule)) res(true);
|
|
182
|
+
if (checkFakeRemote(remotesFromAPI)) res(true);
|
|
183
|
+
fetchRemote(remotesFromAPI, fetchModule).then((val) => {
|
|
184
|
+
res(val);
|
|
185
|
+
});
|
|
186
|
+
}).then((shouldReload) => {
|
|
187
|
+
return performReload(shouldReload);
|
|
188
|
+
});
|
|
278
189
|
};
|
|
279
|
-
exports.revalidate = revalidate;
|
|
280
190
|
function getFetchModule() {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
if (loadedModule) {
|
|
286
|
-
return loadedModule;
|
|
287
|
-
}
|
|
288
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
289
|
-
const nodeFetch = require('node-fetch');
|
|
290
|
-
return nodeFetch.default || nodeFetch;
|
|
191
|
+
const loadedModule = globalThis.webpackChunkLoad || global.webpackChunkLoad || global.fetch;
|
|
192
|
+
if (loadedModule) return loadedModule;
|
|
193
|
+
const nodeFetch = require("node-fetch");
|
|
194
|
+
return nodeFetch.default || nodeFetch;
|
|
291
195
|
}
|
|
196
|
+
|
|
197
|
+
//#endregion
|
|
198
|
+
exports.checkFakeRemote = checkFakeRemote;
|
|
199
|
+
exports.checkMedusaConfigChange = checkMedusaConfigChange;
|
|
200
|
+
exports.checkUnreachableRemote = checkUnreachableRemote;
|
|
201
|
+
exports.createFetcher = createFetcher;
|
|
202
|
+
exports.fetchRemote = fetchRemote;
|
|
203
|
+
exports.getFetchModule = getFetchModule;
|
|
204
|
+
exports.performReload = performReload;
|
|
205
|
+
exports.revalidate = revalidate;
|
|
292
206
|
//# sourceMappingURL=hot-reload.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hot-reload.js","sourceRoot":"","sources":["../../../src/utils/hot-reload.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hot-reload.js","names":["getAllKnownRemotes"],"sources":["../../../src/utils/hot-reload.ts"],"sourcesContent":["import { getAllKnownRemotes } from './flush-chunks';\nimport crypto from 'crypto';\nimport helpers from '@module-federation/runtime/helpers';\nimport path from 'path';\n\ndeclare global {\n var mfHashMap: Record<string, string> | undefined;\n var moduleGraphDirty: boolean;\n}\n\nconst getRequire = (): NodeRequire => {\n //@ts-ignore\n return typeof __non_webpack_require__ !== 'undefined'\n ? (__non_webpack_require__ as NodeRequire)\n : eval('require');\n};\n\nfunction callsites(): any[] {\n const _prepareStackTrace = Error.prepareStackTrace;\n try {\n let result: any[] = [];\n Error.prepareStackTrace = (_, callSites) => {\n const callSitesWithoutCurrent = callSites.slice(1);\n result = callSitesWithoutCurrent;\n return callSitesWithoutCurrent;\n };\n\n new Error().stack;\n return result;\n } finally {\n Error.prepareStackTrace = _prepareStackTrace;\n }\n}\n\nconst find = function (moduleName: string): string | undefined {\n if (moduleName[0] === '.') {\n // Use custom callsites function\n const stack = callsites();\n for (const frame of stack) {\n const filename = frame.getFileName();\n if (filename && filename !== module.filename) {\n moduleName = path.resolve(path.dirname(filename), moduleName);\n break;\n }\n }\n }\n try {\n return getRequire().resolve(moduleName);\n } catch (e) {\n return;\n }\n};\n\n/**\n * Removes a module from the cache. We need this to re-load our http_request !\n * see: https://stackoverflow.com/a/14801711/1148249\n */\nconst decache = async function (moduleName: string) {\n //@ts-ignore\n moduleName = find(moduleName);\n\n if (!moduleName) {\n return;\n }\n\n const currentChunk = getRequire().cache[__filename];\n\n // Run over the cache looking for the files\n // loaded by the specified module name\n searchCache(moduleName, function (mod: NodeModule) {\n delete getRequire().cache[mod.id];\n });\n try {\n // Remove cached paths to the module.\n // Thanks to @bentael for pointing this out.\n //@ts-ignore\n Object.keys((currentChunk.constructor as any)._pathCache).forEach(\n function (cacheKey) {\n if (cacheKey.indexOf(moduleName) > -1) {\n //@ts-ignore\n delete (currentChunk.constructor as any)._pathCache[cacheKey];\n }\n },\n );\n } catch (error) {\n //null\n }\n};\n\n/**\n * Runs over the cache to search for all the cached\n * files\n */\nconst searchCache = function (\n moduleName: string,\n callback: (mod: NodeModule) => void,\n) {\n // Resolve the module identified by the specified name\n let mod = getRequire().resolve(moduleName);\n const visited: Record<string, boolean> = {};\n\n // Check if the module has been resolved and found within\n // the cache no else so #ignore else https://git.io/vtgMI\n /* istanbul ignore else */\n //@ts-ignore\n if (mod && (mod = getRequire().cache[mod]) !== undefined) {\n // Recursively go over the results\n (function run(current: NodeModule) {\n visited[current.id] = true;\n // Go over each of the module's children and\n // run over it\n current.children.forEach(function (child: NodeModule) {\n // ignore .node files, decaching native modules throws a\n // \"module did not self-register\" error on second require\n if (path.extname(child.filename) !== '.node' && !visited[child.id]) {\n run(child);\n }\n });\n\n // Call the specified callback providing the\n // found module\n callback(current);\n //@ts-ignore\n })(mod);\n }\n};\n\nglobalThis.moduleGraphDirty = false;\n\nconst hashmap = globalThis.mfHashMap || ({} as Record<string, string>);\nglobalThis.moduleGraphDirty = false;\n\nconst requireCacheRegex =\n /(remote|server|hot-reload|react-loadable-manifest|runtime|styled-jsx)/;\n\nexport const performReload = async (\n shouldReload: boolean,\n): Promise<boolean> => {\n if (!shouldReload) {\n return false;\n }\n\n const req = getRequire();\n\n const gs = new Function('return globalThis')();\n const entries: Set<string> = gs.entryChunkCache || new Set();\n\n //@ts-ignore\n gs.__FEDERATION__.__INSTANCES__.map((i: any) => {\n //@ts-ignore\n i.moduleCache.forEach((mc: any) => {\n if (mc.remoteInfo && mc.remoteInfo.entryGlobalName) {\n delete gs[mc.remoteInfo.entryGlobalName];\n }\n });\n i.moduleCache.clear();\n if (gs[i.name]) {\n delete gs[i.name];\n }\n });\n //@ts-ignore\n __webpack_require__?.federation?.instance?.moduleCache?.clear();\n helpers.global.resetFederationGlobalInfo();\n globalThis.moduleGraphDirty = false;\n globalThis.mfHashMap = {};\n\n if (!entries) {\n Object.keys(req.cache).forEach((key) => {\n if (requireCacheRegex.test(key)) {\n decache(key); // Use decache here\n }\n });\n } else {\n for (const entry of entries) {\n decache(entry);\n //reload entries again\n await getRequire()(entry);\n }\n }\n\n return true;\n};\n\nexport const checkUnreachableRemote = (remoteScope: any): boolean => {\n for (const property in remoteScope.remotes) {\n if (!remoteScope[property]) {\n console.error(\n 'unreachable remote found',\n property,\n 'hot reloading to refetch',\n );\n return true;\n }\n }\n return false;\n};\n\nexport const checkMedusaConfigChange = (\n remoteScope: any,\n fetchModule: any,\n): boolean => {\n //@ts-ignore\n if (remoteScope._medusa) {\n //@ts-ignore\n for (const property in remoteScope._medusa) {\n fetchModule(property)\n .then((res: Response) => res.json())\n .then((medusaResponse: any): void | boolean => {\n if (\n medusaResponse.version !==\n //@ts-ignore\n remoteScope?._medusa[property].version\n ) {\n console.log(\n 'medusa config changed',\n property,\n 'hot reloading to refetch',\n );\n performReload(true);\n return true;\n }\n });\n }\n }\n return false;\n};\n\nexport const checkFakeRemote = (remoteScope: any): boolean => {\n for (const property in remoteScope._config) {\n let remote = remoteScope._config[property];\n\n const resolveRemote = async () => {\n remote = await remote();\n };\n\n if (typeof remote === 'function') {\n resolveRemote();\n }\n\n if (remote.fake) {\n console.log('fake remote found', property, 'hot reloading to refetch');\n return true;\n }\n }\n return false;\n};\n\nexport const createFetcher = (\n url: string,\n fetchModule: any,\n name: string,\n cb: (hash: string) => void,\n): Promise<void | boolean> => {\n return fetchModule(url)\n .then((re: Response) => {\n if (!re.ok) {\n throw new Error(\n `Error loading remote: status: ${\n re.status\n }, content-type: ${re.headers.get('content-type')}`,\n );\n }\n return re.text();\n })\n .then((contents: string): void | boolean => {\n const hash = crypto.createHash('md5').update(contents).digest('hex');\n cb(hash);\n })\n .catch((e: Error) => {\n console.error('Remote', name, url, 'Failed to load or is not online', e);\n });\n};\n\nexport const fetchRemote = (\n remoteScope: any,\n fetchModule: any,\n): Promise<boolean> => {\n const fetches: Promise<void | boolean>[] = [];\n let needReload = false;\n for (const property in remoteScope) {\n const name = property;\n const container = remoteScope[property];\n const url = container.entry;\n const fetcher = createFetcher(url, fetchModule, name, (hash) => {\n if (hashmap[name]) {\n if (hashmap[name] !== hash) {\n hashmap[name] = hash;\n needReload = true;\n console.log(name, 'hash is different - must hot reload server');\n }\n } else {\n hashmap[name] = hash;\n }\n });\n\n fetches.push(fetcher);\n }\n return Promise.all(fetches).then(() => {\n return needReload;\n });\n};\n//@ts-ignore\nexport const revalidate = async (\n fetchModule: any = getFetchModule() || (() => {}),\n force: boolean = false,\n): Promise<boolean> => {\n if (globalThis.moduleGraphDirty) {\n force = true;\n }\n const remotesFromAPI = getAllKnownRemotes();\n //@ts-ignore\n return new Promise((res) => {\n if (force) {\n if (Object.keys(hashmap).length !== 0) {\n res(true);\n return;\n }\n }\n if (checkMedusaConfigChange(remotesFromAPI, fetchModule)) {\n res(true);\n }\n\n if (checkFakeRemote(remotesFromAPI)) {\n res(true);\n }\n\n fetchRemote(remotesFromAPI, fetchModule).then((val) => {\n res(val);\n });\n }).then((shouldReload: unknown) => {\n return performReload(shouldReload as boolean);\n });\n};\n\nexport function getFetchModule(): any {\n //@ts-ignore\n const loadedModule =\n //@ts-ignore\n globalThis.webpackChunkLoad || global.webpackChunkLoad || global.fetch;\n if (loadedModule) {\n return loadedModule;\n }\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const nodeFetch = require('node-fetch');\n return nodeFetch.default || nodeFetch;\n}\n"],"mappings":"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"}
|