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