@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.
@@ -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: (0, import_node_path8.join)(packageRoot, ".vercel"),
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