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