@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.
@@ -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/codeRewriter.ts
77
- const BASE64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
78
- var CodeRewriter = class {
79
- original;
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 generatedOffsetToOriginalOffset(offset, replacements) {
166
- let delta = 0;
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 getLineStarts(code) {
175
- const starts = [0];
176
- for (let i = 0; i < code.length; i++) if (code.charCodeAt(i) === 10) starts.push(i + 1);
177
- return starts;
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
- function findLine(lineStarts, offset) {
180
- let low = 0;
181
- let high = lineStarts.length - 1;
182
- while (low <= high) {
183
- const mid = low + high >> 1;
184
- if (lineStarts[mid] <= offset) low = mid + 1;
185
- else high = mid - 1;
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
- return Math.max(0, high);
188
- }
189
- function encodeSegment(values) {
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/logger.ts
437
- const MODULE_FEDERATION_LOG_PREFIX = "[Module Federation]";
438
- function formatModuleFederationMessage(message) {
439
- return `${MODULE_FEDERATION_LOG_PREFIX} ${message}`;
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 createModuleFederationError(message) {
442
- return new Error(formatModuleFederationMessage(message));
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 toConsoleArgs(message, rest = []) {
445
- if (typeof message === "string") return [formatModuleFederationMessage(message), ...rest];
446
- if (message === void 0) return [MODULE_FEDERATION_LOG_PREFIX, ...rest];
447
- return [
448
- MODULE_FEDERATION_LOG_PREFIX,
449
- message,
450
- ...rest
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
- const moduleFederationConsole = {
454
- log(message, ...rest) {
455
- console.log(...toConsoleArgs(message, rest));
456
- },
457
- warn(message, ...rest) {
458
- console.warn(...toConsoleArgs(message, rest));
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
- const mfWarn = moduleFederationConsole.warn;
465
- const mfError = moduleFederationConsole.error;
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 { CodeRewriter as a, VITE_ID_PREFIX as c, isAbsoluteUrl as d, isHttpUrl as f, resolveHashPlaceholderFileName as h, createCodePositionMap as i, VITE_NULL_BYTE_PLACEHOLDER as l, rebaseImport as m, mfError as n, createSourceMap as o, normalizePathForImport as p, mfWarn as r, EXTERNAL_URL_RE as s, createModuleFederationError as t, decodeViteId as u };
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 { p as normalizePathForImport, r as mfWarn, t as createModuleFederationError } from "./logger-Ckj1FMRH.js";
2
- import { d as getNodeModulesSuffix, r as getSharedRuntimeKey } from "./sharedKeyMatcher-B5VKsEVQ.js";
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";