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