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