@module-federation/vite 1.23.10 → 1.23.11
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/lib/{logger-Ckj1FMRH.js → codeRewriter-BT69vMj_.js} +160 -150
- package/lib/{dtsConstants-DIcz34LN.js → dtsConstants-CBr13mKq.js} +2 -2
- package/lib/index.js +3444 -3434
- package/lib/{pluginDts-CSCuhD4x.js → pluginDts-TmqEfsoE.js} +2 -2
- package/lib/{sharedKeyMatcher-B5VKsEVQ.js → sharedKeyMatcher-BjGe96M5.js} +1 -1
- package/lib/{ssrEntryLoader--NkahIOF.js → ssrEntryLoader-CBfSzuuC.js} +2 -2
- package/lib/{ssrVmStrategy-uJaUmHLS.js → ssrVmStrategy-Ci-N_XW3.js} +3 -3
- package/lib/utils/ssrEntryLoader.js +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as nodePath from "node:path";
|
|
1
2
|
//#region src/utils/buildPaths.ts
|
|
2
3
|
/**
|
|
3
4
|
* Rebase an import path for a bootstrap file that moved from root into `dir`.
|
|
@@ -38,6 +39,15 @@ function rebaseImport(importSrc, dir) {
|
|
|
38
39
|
function normalizePathForImport(path) {
|
|
39
40
|
return path.replace(/\\/g, "/");
|
|
40
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Resolves a relative expose import against the Vite root, for exposes that Vite cannot
|
|
44
|
+
* resolve on its own: virtual modules have no directory, and Vite 7 and older resolve
|
|
45
|
+
* their relative imports against the working directory. Other imports are unchanged.
|
|
46
|
+
*/
|
|
47
|
+
function resolveExposeImport(importPath, root) {
|
|
48
|
+
if (!root || !importPath.startsWith(".")) return importPath;
|
|
49
|
+
return normalizePathForImport(nodePath.resolve(root, importPath));
|
|
50
|
+
}
|
|
41
51
|
const EXTERNAL_URL_RE = /^(?:[a-z]+:|\/\/)/i;
|
|
42
52
|
function isHttpUrl(value) {
|
|
43
53
|
return value.startsWith("http://") || value.startsWith("https://");
|
|
@@ -73,133 +83,36 @@ function decodeViteId(id) {
|
|
|
73
83
|
return viteId.startsWith("__x00__") ? `\0${viteId.slice(7)}` : viteId;
|
|
74
84
|
}
|
|
75
85
|
//#endregion
|
|
76
|
-
//#region src/utils/
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
replacements = [];
|
|
81
|
-
constructor(original) {
|
|
82
|
-
this.original = original;
|
|
83
|
-
}
|
|
84
|
-
overwrite(start, end, content) {
|
|
85
|
-
if (start < 0 || end < start || end > this.original.length) throw new Error(`Invalid overwrite range: ${start}-${end}`);
|
|
86
|
-
this.replacements.push({
|
|
87
|
-
start,
|
|
88
|
-
end,
|
|
89
|
-
content
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
toString() {
|
|
93
|
-
return applyReplacements(this.original, this.getSortedReplacements()).code;
|
|
94
|
-
}
|
|
95
|
-
generateMap(source = "") {
|
|
96
|
-
const { code, replacements } = applyReplacements(this.original, this.getSortedReplacements());
|
|
97
|
-
return {
|
|
98
|
-
version: 3,
|
|
99
|
-
sources: [source],
|
|
100
|
-
sourcesContent: [this.original],
|
|
101
|
-
names: [],
|
|
102
|
-
mappings: generateLineMappings(code, this.original, replacements)
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
getSortedReplacements() {
|
|
106
|
-
return [...this.replacements].sort((a, b) => a.start - b.start || a.end - b.end);
|
|
107
|
-
}
|
|
108
|
-
};
|
|
109
|
-
function createSourceMap(code, source = "") {
|
|
110
|
-
return {
|
|
111
|
-
version: 3,
|
|
112
|
-
sources: [source],
|
|
113
|
-
sourcesContent: [code],
|
|
114
|
-
names: [],
|
|
115
|
-
mappings: generateLineMappings(code, code, [])
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
function applyReplacements(original, replacements) {
|
|
119
|
-
let code = "";
|
|
120
|
-
let cursor = 0;
|
|
121
|
-
let delta = 0;
|
|
122
|
-
const applied = [];
|
|
123
|
-
for (const replacement of replacements) {
|
|
124
|
-
if (replacement.start < cursor) throw new Error("Overlapping overwrite ranges are not supported");
|
|
125
|
-
code += original.slice(cursor, replacement.start);
|
|
126
|
-
const generatedStart = replacement.start + delta;
|
|
127
|
-
code += replacement.content;
|
|
128
|
-
const generatedEnd = generatedStart + replacement.content.length;
|
|
129
|
-
applied.push({
|
|
130
|
-
...replacement,
|
|
131
|
-
generatedStart,
|
|
132
|
-
generatedEnd
|
|
133
|
-
});
|
|
134
|
-
cursor = replacement.end;
|
|
135
|
-
delta += replacement.content.length - (replacement.end - replacement.start);
|
|
136
|
-
}
|
|
137
|
-
code += original.slice(cursor);
|
|
138
|
-
return {
|
|
139
|
-
code,
|
|
140
|
-
replacements: applied
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function generateLineMappings(generated, original, replacements) {
|
|
144
|
-
const generatedLineStarts = getLineStarts(generated);
|
|
145
|
-
const originalLineStarts = getLineStarts(original);
|
|
146
|
-
let previousOriginalLine = 0;
|
|
147
|
-
let previousOriginalColumn = 0;
|
|
148
|
-
let mappings = "";
|
|
149
|
-
generatedLineStarts.forEach((generatedOffset, lineIndex) => {
|
|
150
|
-
if (lineIndex > 0) mappings += ";";
|
|
151
|
-
const originalOffset = generatedOffsetToOriginalOffset(generatedOffset, replacements);
|
|
152
|
-
const originalLine = findLine(originalLineStarts, originalOffset);
|
|
153
|
-
const originalColumn = originalOffset - originalLineStarts[originalLine];
|
|
154
|
-
mappings += encodeSegment([
|
|
155
|
-
0,
|
|
156
|
-
0,
|
|
157
|
-
originalLine - previousOriginalLine,
|
|
158
|
-
originalColumn - previousOriginalColumn
|
|
159
|
-
]);
|
|
160
|
-
previousOriginalLine = originalLine;
|
|
161
|
-
previousOriginalColumn = originalColumn;
|
|
162
|
-
});
|
|
163
|
-
return mappings;
|
|
86
|
+
//#region src/utils/logger.ts
|
|
87
|
+
const MODULE_FEDERATION_LOG_PREFIX = "[Module Federation]";
|
|
88
|
+
function formatModuleFederationMessage(message) {
|
|
89
|
+
return `${MODULE_FEDERATION_LOG_PREFIX} ${message}`;
|
|
164
90
|
}
|
|
165
|
-
function
|
|
166
|
-
|
|
167
|
-
for (const replacement of replacements) {
|
|
168
|
-
if (offset < replacement.generatedStart) break;
|
|
169
|
-
if (offset < replacement.generatedEnd) return replacement.start;
|
|
170
|
-
delta += replacement.content.length - (replacement.end - replacement.start);
|
|
171
|
-
}
|
|
172
|
-
return offset - delta;
|
|
91
|
+
function createModuleFederationError(message) {
|
|
92
|
+
return new Error(formatModuleFederationMessage(message));
|
|
173
93
|
}
|
|
174
|
-
function
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
return
|
|
94
|
+
function toConsoleArgs(message, rest = []) {
|
|
95
|
+
if (typeof message === "string") return [formatModuleFederationMessage(message), ...rest];
|
|
96
|
+
if (message === void 0) return [MODULE_FEDERATION_LOG_PREFIX, ...rest];
|
|
97
|
+
return [
|
|
98
|
+
MODULE_FEDERATION_LOG_PREFIX,
|
|
99
|
+
message,
|
|
100
|
+
...rest
|
|
101
|
+
];
|
|
178
102
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
103
|
+
const moduleFederationConsole = {
|
|
104
|
+
log(message, ...rest) {
|
|
105
|
+
console.log(...toConsoleArgs(message, rest));
|
|
106
|
+
},
|
|
107
|
+
warn(message, ...rest) {
|
|
108
|
+
console.warn(...toConsoleArgs(message, rest));
|
|
109
|
+
},
|
|
110
|
+
error(message, ...rest) {
|
|
111
|
+
console.error(...toConsoleArgs(message, rest));
|
|
186
112
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
return values.map(encodeVlq).join("");
|
|
191
|
-
}
|
|
192
|
-
function encodeVlq(value) {
|
|
193
|
-
let vlq = value < 0 ? (-value << 1) + 1 : value << 1;
|
|
194
|
-
let encoded = "";
|
|
195
|
-
do {
|
|
196
|
-
let digit = vlq & 31;
|
|
197
|
-
vlq >>>= 5;
|
|
198
|
-
if (vlq > 0) digit |= 32;
|
|
199
|
-
encoded += BASE64_CHARS[digit];
|
|
200
|
-
} while (vlq > 0);
|
|
201
|
-
return encoded;
|
|
202
|
-
}
|
|
113
|
+
};
|
|
114
|
+
const mfWarn = moduleFederationConsole.warn;
|
|
115
|
+
const mfError = moduleFederationConsole.error;
|
|
203
116
|
//#endregion
|
|
204
117
|
//#region src/utils/codePositionMap.ts
|
|
205
118
|
const REGEX_PREFIX_KEYWORDS = /* @__PURE__ */ new Set([
|
|
@@ -433,35 +346,132 @@ function createCodePositionMap(code, onComment) {
|
|
|
433
346
|
return positions;
|
|
434
347
|
}
|
|
435
348
|
//#endregion
|
|
436
|
-
//#region src/utils/
|
|
437
|
-
const
|
|
438
|
-
|
|
439
|
-
|
|
349
|
+
//#region src/utils/codeRewriter.ts
|
|
350
|
+
const BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
351
|
+
var CodeRewriter = class {
|
|
352
|
+
original;
|
|
353
|
+
replacements = [];
|
|
354
|
+
constructor(original) {
|
|
355
|
+
this.original = original;
|
|
356
|
+
}
|
|
357
|
+
overwrite(start, end, content) {
|
|
358
|
+
if (start < 0 || end < start || end > this.original.length) throw new Error(`Invalid overwrite range: ${start}-${end}`);
|
|
359
|
+
this.replacements.push({
|
|
360
|
+
start,
|
|
361
|
+
end,
|
|
362
|
+
content
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
toString() {
|
|
366
|
+
return applyReplacements(this.original, this.getSortedReplacements()).code;
|
|
367
|
+
}
|
|
368
|
+
generateMap(source = "") {
|
|
369
|
+
const { code, replacements } = applyReplacements(this.original, this.getSortedReplacements());
|
|
370
|
+
return {
|
|
371
|
+
version: 3,
|
|
372
|
+
sources: [source],
|
|
373
|
+
sourcesContent: [this.original],
|
|
374
|
+
names: [],
|
|
375
|
+
mappings: generateLineMappings(code, this.original, replacements)
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
getSortedReplacements() {
|
|
379
|
+
return [...this.replacements].sort((a, b) => a.start - b.start || a.end - b.end);
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
function createSourceMap(code, source = "") {
|
|
383
|
+
return {
|
|
384
|
+
version: 3,
|
|
385
|
+
sources: [source],
|
|
386
|
+
sourcesContent: [code],
|
|
387
|
+
names: [],
|
|
388
|
+
mappings: generateLineMappings(code, code, [])
|
|
389
|
+
};
|
|
440
390
|
}
|
|
441
|
-
function
|
|
442
|
-
|
|
391
|
+
function applyReplacements(original, replacements) {
|
|
392
|
+
let code = "";
|
|
393
|
+
let cursor = 0;
|
|
394
|
+
let delta = 0;
|
|
395
|
+
const applied = [];
|
|
396
|
+
for (const replacement of replacements) {
|
|
397
|
+
if (replacement.start < cursor) throw new Error("Overlapping overwrite ranges are not supported");
|
|
398
|
+
code += original.slice(cursor, replacement.start);
|
|
399
|
+
const generatedStart = replacement.start + delta;
|
|
400
|
+
code += replacement.content;
|
|
401
|
+
const generatedEnd = generatedStart + replacement.content.length;
|
|
402
|
+
applied.push({
|
|
403
|
+
...replacement,
|
|
404
|
+
generatedStart,
|
|
405
|
+
generatedEnd
|
|
406
|
+
});
|
|
407
|
+
cursor = replacement.end;
|
|
408
|
+
delta += replacement.content.length - (replacement.end - replacement.start);
|
|
409
|
+
}
|
|
410
|
+
code += original.slice(cursor);
|
|
411
|
+
return {
|
|
412
|
+
code,
|
|
413
|
+
replacements: applied
|
|
414
|
+
};
|
|
443
415
|
}
|
|
444
|
-
function
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
416
|
+
function generateLineMappings(generated, original, replacements) {
|
|
417
|
+
const generatedLineStarts = getLineStarts(generated);
|
|
418
|
+
const originalLineStarts = getLineStarts(original);
|
|
419
|
+
let previousOriginalLine = 0;
|
|
420
|
+
let previousOriginalColumn = 0;
|
|
421
|
+
let mappings = "";
|
|
422
|
+
generatedLineStarts.forEach((generatedOffset, lineIndex) => {
|
|
423
|
+
if (lineIndex > 0) mappings += ";";
|
|
424
|
+
const originalOffset = generatedOffsetToOriginalOffset(generatedOffset, replacements);
|
|
425
|
+
const originalLine = findLine(originalLineStarts, originalOffset);
|
|
426
|
+
const originalColumn = originalOffset - originalLineStarts[originalLine];
|
|
427
|
+
mappings += encodeSegment([
|
|
428
|
+
0,
|
|
429
|
+
0,
|
|
430
|
+
originalLine - previousOriginalLine,
|
|
431
|
+
originalColumn - previousOriginalColumn
|
|
432
|
+
]);
|
|
433
|
+
previousOriginalLine = originalLine;
|
|
434
|
+
previousOriginalColumn = originalColumn;
|
|
435
|
+
});
|
|
436
|
+
return mappings;
|
|
452
437
|
}
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
},
|
|
460
|
-
error(message, ...rest) {
|
|
461
|
-
console.error(...toConsoleArgs(message, rest));
|
|
438
|
+
function generatedOffsetToOriginalOffset(offset, replacements) {
|
|
439
|
+
let delta = 0;
|
|
440
|
+
for (const replacement of replacements) {
|
|
441
|
+
if (offset < replacement.generatedStart) break;
|
|
442
|
+
if (offset < replacement.generatedEnd) return replacement.start;
|
|
443
|
+
delta += replacement.content.length - (replacement.end - replacement.start);
|
|
462
444
|
}
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
445
|
+
return offset - delta;
|
|
446
|
+
}
|
|
447
|
+
function getLineStarts(code) {
|
|
448
|
+
const starts = [0];
|
|
449
|
+
for (let i = 0; i < code.length; i++) if (code.charCodeAt(i) === 10) starts.push(i + 1);
|
|
450
|
+
return starts;
|
|
451
|
+
}
|
|
452
|
+
function findLine(lineStarts, offset) {
|
|
453
|
+
let low = 0;
|
|
454
|
+
let high = lineStarts.length - 1;
|
|
455
|
+
while (low <= high) {
|
|
456
|
+
const mid = low + high >> 1;
|
|
457
|
+
if (lineStarts[mid] <= offset) low = mid + 1;
|
|
458
|
+
else high = mid - 1;
|
|
459
|
+
}
|
|
460
|
+
return Math.max(0, high);
|
|
461
|
+
}
|
|
462
|
+
function encodeSegment(values) {
|
|
463
|
+
return values.map(encodeVlq).join("");
|
|
464
|
+
}
|
|
465
|
+
function encodeVlq(value) {
|
|
466
|
+
let vlq = value < 0 ? (-value << 1) + 1 : value << 1;
|
|
467
|
+
let encoded = "";
|
|
468
|
+
do {
|
|
469
|
+
let digit = vlq & 31;
|
|
470
|
+
vlq >>>= 5;
|
|
471
|
+
if (vlq > 0) digit |= 32;
|
|
472
|
+
encoded += BASE64_CHARS[digit];
|
|
473
|
+
} while (vlq > 0);
|
|
474
|
+
return encoded;
|
|
475
|
+
}
|
|
466
476
|
//#endregion
|
|
467
|
-
export {
|
|
477
|
+
export { mfError as a, VITE_ID_PREFIX as c, isAbsoluteUrl as d, isHttpUrl as f, resolveHashPlaceholderFileName as g, resolveExposeImport as h, createModuleFederationError as i, VITE_NULL_BYTE_PLACEHOLDER as l, rebaseImport as m, createSourceMap as n, mfWarn as o, normalizePathForImport as p, createCodePositionMap as r, EXTERNAL_URL_RE as s, CodeRewriter as t, decodeViteId as u };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as getNodeModulesSuffix, r as getSharedRuntimeKey } from "./sharedKeyMatcher-
|
|
1
|
+
import { i as createModuleFederationError, o as mfWarn, p as normalizePathForImport } from "./codeRewriter-BT69vMj_.js";
|
|
2
|
+
import { d as getNodeModulesSuffix, r as getSharedRuntimeKey } from "./sharedKeyMatcher-BjGe96M5.js";
|
|
3
3
|
import { existsSync, readFileSync, readdirSync, realpathSync } from "fs";
|
|
4
4
|
import { createRequire } from "module";
|
|
5
5
|
import * as path$1 from "node:path";
|