@vercel/microfrontends 2.2.0 → 2.2.1
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/CHANGELOG.md +6 -0
- package/dist/bin/cli.cjs +107 -26
- package/dist/experimental/sveltekit.cjs +83 -1
- package/dist/experimental/sveltekit.cjs.map +1 -1
- package/dist/experimental/sveltekit.js +83 -1
- package/dist/experimental/sveltekit.js.map +1 -1
- package/dist/experimental/vite.cjs +105 -25
- package/dist/experimental/vite.cjs.map +1 -1
- package/dist/experimental/vite.js +105 -25
- package/dist/experimental/vite.js.map +1 -1
- package/dist/microfrontends/server.cjs +105 -25
- package/dist/microfrontends/server.cjs.map +1 -1
- package/dist/microfrontends/server.js +105 -25
- package/dist/microfrontends/server.js.map +1 -1
- package/dist/microfrontends/utils.cjs +47 -4
- package/dist/microfrontends/utils.cjs.map +1 -1
- package/dist/microfrontends/utils.js +47 -4
- package/dist/microfrontends/utils.js.map +1 -1
- package/dist/next/config.cjs +83 -1
- package/dist/next/config.cjs.map +1 -1
- package/dist/next/config.js +83 -1
- package/dist/next/config.js.map +1 -1
- package/dist/utils/mfe-port.cjs +105 -25
- package/dist/utils/mfe-port.cjs.map +1 -1
- package/dist/utils/mfe-port.js +105 -25
- package/dist/utils/mfe-port.js.map +1 -1
- package/package.json +1 -1
|
@@ -222,6 +222,28 @@ var import_node_fs2 = require("fs");
|
|
|
222
222
|
var import_jsonc_parser = require("jsonc-parser");
|
|
223
223
|
var import_fast_glob = __toESM(require("fast-glob"), 1);
|
|
224
224
|
|
|
225
|
+
// src/bin/logger.ts
|
|
226
|
+
function debug(...args) {
|
|
227
|
+
if (process.env.MFE_DEBUG) {
|
|
228
|
+
console.log(...args);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
function info(...args) {
|
|
232
|
+
console.log(...args);
|
|
233
|
+
}
|
|
234
|
+
function warn(...args) {
|
|
235
|
+
console.warn(...args);
|
|
236
|
+
}
|
|
237
|
+
function error(...args) {
|
|
238
|
+
console.error(...args);
|
|
239
|
+
}
|
|
240
|
+
var logger = {
|
|
241
|
+
debug,
|
|
242
|
+
info,
|
|
243
|
+
warn,
|
|
244
|
+
error
|
|
245
|
+
};
|
|
246
|
+
|
|
225
247
|
// src/config/microfrontends/utils/get-config-file-name.ts
|
|
226
248
|
var DEFAULT_CONFIGURATION_FILENAMES = [
|
|
227
249
|
"microfrontends.json",
|
|
@@ -251,6 +273,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
251
273
|
customConfigFilename
|
|
252
274
|
}) {
|
|
253
275
|
const applicationName = applicationContext.name;
|
|
276
|
+
logger.debug(
|
|
277
|
+
"[MFE Config] Searching repository for configs containing application:",
|
|
278
|
+
applicationName
|
|
279
|
+
);
|
|
254
280
|
try {
|
|
255
281
|
const microfrontendsJsonPaths = import_fast_glob.default.globSync(
|
|
256
282
|
`**/{${getPossibleConfigurationFilenames({ customConfigFilename }).join(",")}}`,
|
|
@@ -262,6 +288,11 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
262
288
|
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
263
289
|
}
|
|
264
290
|
);
|
|
291
|
+
logger.debug(
|
|
292
|
+
"[MFE Config] Found",
|
|
293
|
+
microfrontendsJsonPaths.length,
|
|
294
|
+
"config file(s) in repository"
|
|
295
|
+
);
|
|
265
296
|
const matchingPaths = [];
|
|
266
297
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
267
298
|
try {
|
|
@@ -271,12 +302,20 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
271
302
|
);
|
|
272
303
|
const microfrontendsJson = (0, import_jsonc_parser.parse)(microfrontendsJsonContent);
|
|
273
304
|
if (microfrontendsJson.applications[applicationName]) {
|
|
305
|
+
logger.debug(
|
|
306
|
+
"[MFE Config] Found application in config:",
|
|
307
|
+
microfrontendsJsonPath
|
|
308
|
+
);
|
|
274
309
|
matchingPaths.push(microfrontendsJsonPath);
|
|
275
310
|
} else {
|
|
276
311
|
for (const [_, app] of Object.entries(
|
|
277
312
|
microfrontendsJson.applications
|
|
278
313
|
)) {
|
|
279
314
|
if (app.packageName === applicationName) {
|
|
315
|
+
logger.debug(
|
|
316
|
+
"[MFE Config] Found application via packageName in config:",
|
|
317
|
+
microfrontendsJsonPath
|
|
318
|
+
);
|
|
280
319
|
matchingPaths.push(microfrontendsJsonPath);
|
|
281
320
|
}
|
|
282
321
|
}
|
|
@@ -284,6 +323,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
284
323
|
} catch (error2) {
|
|
285
324
|
}
|
|
286
325
|
}
|
|
326
|
+
logger.debug(
|
|
327
|
+
"[MFE Config] Total matching config files:",
|
|
328
|
+
matchingPaths.length
|
|
329
|
+
);
|
|
287
330
|
if (matchingPaths.length > 1) {
|
|
288
331
|
throw new MicrofrontendError(
|
|
289
332
|
`Found multiple \`microfrontends.json\` files in the repository referencing the application "${applicationName}", but only one is allowed.
|
|
@@ -343,30 +386,6 @@ function inferMicrofrontendsLocation(opts) {
|
|
|
343
386
|
// src/config/microfrontends/utils/is-monorepo.ts
|
|
344
387
|
var import_node_fs3 = __toESM(require("fs"), 1);
|
|
345
388
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
346
|
-
|
|
347
|
-
// src/bin/logger.ts
|
|
348
|
-
function debug(...args) {
|
|
349
|
-
if (process.env.MFE_DEBUG) {
|
|
350
|
-
console.log(...args);
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
function info(...args) {
|
|
354
|
-
console.log(...args);
|
|
355
|
-
}
|
|
356
|
-
function warn(...args) {
|
|
357
|
-
console.warn(...args);
|
|
358
|
-
}
|
|
359
|
-
function error(...args) {
|
|
360
|
-
console.error(...args);
|
|
361
|
-
}
|
|
362
|
-
var logger = {
|
|
363
|
-
debug,
|
|
364
|
-
info,
|
|
365
|
-
warn,
|
|
366
|
-
error
|
|
367
|
-
};
|
|
368
|
-
|
|
369
|
-
// src/config/microfrontends/utils/is-monorepo.ts
|
|
370
389
|
function isMonorepo({
|
|
371
390
|
repositoryRoot
|
|
372
391
|
}) {
|
|
@@ -1106,15 +1125,18 @@ var import_node_fs6 = __toESM(require("fs"), 1);
|
|
|
1106
1125
|
var import_node_path6 = __toESM(require("path"), 1);
|
|
1107
1126
|
function getApplicationContext(opts) {
|
|
1108
1127
|
if (opts?.appName) {
|
|
1128
|
+
logger.debug("[MFE Config] Application name from appName parameter:", opts.appName);
|
|
1109
1129
|
return { name: opts.appName };
|
|
1110
1130
|
}
|
|
1111
1131
|
if (process.env.VERCEL_PROJECT_NAME) {
|
|
1132
|
+
logger.debug("[MFE Config] Application name from VERCEL_PROJECT_NAME:", process.env.VERCEL_PROJECT_NAME);
|
|
1112
1133
|
return {
|
|
1113
1134
|
name: process.env.VERCEL_PROJECT_NAME,
|
|
1114
1135
|
projectName: process.env.VERCEL_PROJECT_NAME
|
|
1115
1136
|
};
|
|
1116
1137
|
}
|
|
1117
1138
|
if (process.env.NX_TASK_TARGET_PROJECT) {
|
|
1139
|
+
logger.debug("[MFE Config] Application name from NX_TASK_TARGET_PROJECT:", process.env.NX_TASK_TARGET_PROJECT);
|
|
1118
1140
|
return {
|
|
1119
1141
|
name: process.env.NX_TASK_TARGET_PROJECT,
|
|
1120
1142
|
packageJsonName: process.env.NX_TASK_TARGET_PROJECT
|
|
@@ -1127,6 +1149,7 @@ function getApplicationContext(opts) {
|
|
|
1127
1149
|
);
|
|
1128
1150
|
const projectJson = JSON.parse(vercelProjectJsonPath);
|
|
1129
1151
|
if (projectJson.projectName) {
|
|
1152
|
+
logger.debug("[MFE Config] Application name from .vercel/project.json:", projectJson.projectName);
|
|
1130
1153
|
return {
|
|
1131
1154
|
name: projectJson.projectName,
|
|
1132
1155
|
projectName: projectJson.projectName
|
|
@@ -1150,6 +1173,7 @@ function getApplicationContext(opts) {
|
|
|
1150
1173
|
}
|
|
1151
1174
|
);
|
|
1152
1175
|
}
|
|
1176
|
+
logger.debug("[MFE Config] Application name from package.json:", packageJson.name);
|
|
1153
1177
|
return { name: packageJson.name, packageJsonName: packageJson.name };
|
|
1154
1178
|
} catch (err) {
|
|
1155
1179
|
throw MicrofrontendError.handle(err, {
|
|
@@ -1521,7 +1545,13 @@ var MicrofrontendsServer = class {
|
|
|
1521
1545
|
filePath,
|
|
1522
1546
|
cookies
|
|
1523
1547
|
} = {}) {
|
|
1548
|
+
logger.debug("[MFE Config] Starting config inference", {
|
|
1549
|
+
appName,
|
|
1550
|
+
directory: directory || process.cwd(),
|
|
1551
|
+
filePath
|
|
1552
|
+
});
|
|
1524
1553
|
if (filePath) {
|
|
1554
|
+
logger.debug("[MFE Config] Using explicit filePath:", filePath);
|
|
1525
1555
|
return MicrofrontendsServer.fromFile({
|
|
1526
1556
|
filePath,
|
|
1527
1557
|
cookies
|
|
@@ -1529,16 +1559,25 @@ var MicrofrontendsServer = class {
|
|
|
1529
1559
|
}
|
|
1530
1560
|
try {
|
|
1531
1561
|
const packageRoot = findPackageRoot(directory);
|
|
1562
|
+
logger.debug("[MFE Config] Package root:", packageRoot);
|
|
1532
1563
|
const applicationContext = getApplicationContext({
|
|
1533
1564
|
appName,
|
|
1534
1565
|
packageRoot
|
|
1535
1566
|
});
|
|
1567
|
+
logger.debug("[MFE Config] Application context:", applicationContext);
|
|
1536
1568
|
const customConfigFilename = process.env.VC_MICROFRONTENDS_CONFIG_FILE_NAME;
|
|
1569
|
+
if (customConfigFilename) {
|
|
1570
|
+
logger.debug(
|
|
1571
|
+
"[MFE Config] Custom config filename from VC_MICROFRONTENDS_CONFIG_FILE_NAME:",
|
|
1572
|
+
customConfigFilename
|
|
1573
|
+
);
|
|
1574
|
+
}
|
|
1537
1575
|
const maybeConfig = findConfig({
|
|
1538
1576
|
dir: packageRoot,
|
|
1539
1577
|
customConfigFilename
|
|
1540
1578
|
});
|
|
1541
1579
|
if (maybeConfig) {
|
|
1580
|
+
logger.debug("[MFE Config] Config found at package root:", maybeConfig);
|
|
1542
1581
|
return MicrofrontendsServer.fromFile({
|
|
1543
1582
|
filePath: maybeConfig,
|
|
1544
1583
|
cookies
|
|
@@ -1546,42 +1585,78 @@ var MicrofrontendsServer = class {
|
|
|
1546
1585
|
}
|
|
1547
1586
|
const repositoryRoot = findRepositoryRoot();
|
|
1548
1587
|
const isMonorepo2 = isMonorepo({ repositoryRoot });
|
|
1588
|
+
logger.debug(
|
|
1589
|
+
"[MFE Config] Repository root:",
|
|
1590
|
+
repositoryRoot,
|
|
1591
|
+
"Is monorepo:",
|
|
1592
|
+
isMonorepo2
|
|
1593
|
+
);
|
|
1549
1594
|
const configFromEnv = process.env.VC_MICROFRONTENDS_CONFIG;
|
|
1550
1595
|
if (typeof configFromEnv === "string") {
|
|
1596
|
+
logger.debug(
|
|
1597
|
+
"[MFE Config] Checking VC_MICROFRONTENDS_CONFIG:",
|
|
1598
|
+
configFromEnv
|
|
1599
|
+
);
|
|
1551
1600
|
const maybeConfigFromEnv = (0, import_node_path8.resolve)(packageRoot, configFromEnv);
|
|
1552
1601
|
if (maybeConfigFromEnv) {
|
|
1602
|
+
logger.debug(
|
|
1603
|
+
"[MFE Config] Config loaded from VC_MICROFRONTENDS_CONFIG:",
|
|
1604
|
+
maybeConfigFromEnv
|
|
1605
|
+
);
|
|
1553
1606
|
return MicrofrontendsServer.fromFile({
|
|
1554
1607
|
filePath: maybeConfigFromEnv,
|
|
1555
1608
|
cookies
|
|
1556
1609
|
});
|
|
1557
1610
|
}
|
|
1558
1611
|
} else {
|
|
1612
|
+
const vercelDir = (0, import_node_path8.join)(packageRoot, ".vercel");
|
|
1613
|
+
logger.debug(
|
|
1614
|
+
"[MFE Config] Searching for config in .vercel directory:",
|
|
1615
|
+
vercelDir
|
|
1616
|
+
);
|
|
1559
1617
|
const maybeConfigFromVercel = findConfig({
|
|
1560
|
-
dir:
|
|
1618
|
+
dir: vercelDir,
|
|
1561
1619
|
customConfigFilename
|
|
1562
1620
|
});
|
|
1563
1621
|
if (maybeConfigFromVercel) {
|
|
1622
|
+
logger.debug(
|
|
1623
|
+
"[MFE Config] Config found in .vercel directory:",
|
|
1624
|
+
maybeConfigFromVercel
|
|
1625
|
+
);
|
|
1564
1626
|
return MicrofrontendsServer.fromFile({
|
|
1565
1627
|
filePath: maybeConfigFromVercel,
|
|
1566
1628
|
cookies
|
|
1567
1629
|
});
|
|
1568
1630
|
}
|
|
1569
1631
|
if (isMonorepo2) {
|
|
1632
|
+
logger.debug(
|
|
1633
|
+
"[MFE Config] Inferring microfrontends location in monorepo for application:",
|
|
1634
|
+
applicationContext.name
|
|
1635
|
+
);
|
|
1570
1636
|
const defaultPackage = inferMicrofrontendsLocation({
|
|
1571
1637
|
repositoryRoot,
|
|
1572
1638
|
applicationContext,
|
|
1573
1639
|
customConfigFilename
|
|
1574
1640
|
});
|
|
1641
|
+
logger.debug(
|
|
1642
|
+
"[MFE Config] Inferred package location:",
|
|
1643
|
+
defaultPackage
|
|
1644
|
+
);
|
|
1575
1645
|
const maybeConfigFromDefault = findConfig({
|
|
1576
1646
|
dir: defaultPackage,
|
|
1577
1647
|
customConfigFilename
|
|
1578
1648
|
});
|
|
1579
1649
|
if (maybeConfigFromDefault) {
|
|
1650
|
+
logger.debug(
|
|
1651
|
+
"[MFE Config] Config found in inferred package:",
|
|
1652
|
+
maybeConfigFromDefault
|
|
1653
|
+
);
|
|
1580
1654
|
return MicrofrontendsServer.fromFile({
|
|
1581
1655
|
filePath: maybeConfigFromDefault,
|
|
1582
1656
|
cookies
|
|
1583
1657
|
});
|
|
1584
1658
|
}
|
|
1659
|
+
logger.debug("[MFE Config] No config found in inferred package");
|
|
1585
1660
|
}
|
|
1586
1661
|
}
|
|
1587
1662
|
throw new MicrofrontendError(
|
|
@@ -1607,8 +1682,13 @@ var MicrofrontendsServer = class {
|
|
|
1607
1682
|
cookies
|
|
1608
1683
|
}) {
|
|
1609
1684
|
try {
|
|
1685
|
+
logger.debug("[MFE Config] Reading config from file:", filePath);
|
|
1610
1686
|
const configJson = import_node_fs7.default.readFileSync(filePath, "utf-8");
|
|
1611
1687
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1688
|
+
logger.debug(
|
|
1689
|
+
"[MFE Config] Config loaded with applications:",
|
|
1690
|
+
Object.keys(config.applications)
|
|
1691
|
+
);
|
|
1612
1692
|
return new MicrofrontendsServer({
|
|
1613
1693
|
config,
|
|
1614
1694
|
overrides: cookies ? parseOverrides(cookies) : void 0
|