@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/CHANGELOG.md
CHANGED
package/dist/bin/cli.cjs
CHANGED
|
@@ -30,7 +30,7 @@ var import_env = require("@next/env");
|
|
|
30
30
|
// package.json
|
|
31
31
|
var package_default = {
|
|
32
32
|
name: "@vercel/microfrontends",
|
|
33
|
-
version: "2.2.
|
|
33
|
+
version: "2.2.1",
|
|
34
34
|
private: false,
|
|
35
35
|
description: "Defines configuration and utilities for microfrontends development",
|
|
36
36
|
keywords: [
|
|
@@ -1117,6 +1117,28 @@ var import_node_fs2 = require("fs");
|
|
|
1117
1117
|
var import_jsonc_parser2 = require("jsonc-parser");
|
|
1118
1118
|
var import_fast_glob = __toESM(require("fast-glob"), 1);
|
|
1119
1119
|
|
|
1120
|
+
// src/bin/logger.ts
|
|
1121
|
+
function debug(...args) {
|
|
1122
|
+
if (process.env.MFE_DEBUG) {
|
|
1123
|
+
console.log(...args);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
function info(...args) {
|
|
1127
|
+
console.log(...args);
|
|
1128
|
+
}
|
|
1129
|
+
function warn(...args) {
|
|
1130
|
+
console.warn(...args);
|
|
1131
|
+
}
|
|
1132
|
+
function error(...args) {
|
|
1133
|
+
console.error(...args);
|
|
1134
|
+
}
|
|
1135
|
+
var logger = {
|
|
1136
|
+
debug,
|
|
1137
|
+
info,
|
|
1138
|
+
warn,
|
|
1139
|
+
error
|
|
1140
|
+
};
|
|
1141
|
+
|
|
1120
1142
|
// src/config/microfrontends/utils/get-config-file-name.ts
|
|
1121
1143
|
var DEFAULT_CONFIGURATION_FILENAMES = [
|
|
1122
1144
|
"microfrontends.json",
|
|
@@ -1146,6 +1168,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
1146
1168
|
customConfigFilename
|
|
1147
1169
|
}) {
|
|
1148
1170
|
const applicationName = applicationContext.name;
|
|
1171
|
+
logger.debug(
|
|
1172
|
+
"[MFE Config] Searching repository for configs containing application:",
|
|
1173
|
+
applicationName
|
|
1174
|
+
);
|
|
1149
1175
|
try {
|
|
1150
1176
|
const microfrontendsJsonPaths = import_fast_glob.default.globSync(
|
|
1151
1177
|
`**/{${getPossibleConfigurationFilenames({ customConfigFilename }).join(",")}}`,
|
|
@@ -1157,6 +1183,11 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
1157
1183
|
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
1158
1184
|
}
|
|
1159
1185
|
);
|
|
1186
|
+
logger.debug(
|
|
1187
|
+
"[MFE Config] Found",
|
|
1188
|
+
microfrontendsJsonPaths.length,
|
|
1189
|
+
"config file(s) in repository"
|
|
1190
|
+
);
|
|
1160
1191
|
const matchingPaths = [];
|
|
1161
1192
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
1162
1193
|
try {
|
|
@@ -1166,12 +1197,20 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
1166
1197
|
);
|
|
1167
1198
|
const microfrontendsJson = (0, import_jsonc_parser2.parse)(microfrontendsJsonContent);
|
|
1168
1199
|
if (microfrontendsJson.applications[applicationName]) {
|
|
1200
|
+
logger.debug(
|
|
1201
|
+
"[MFE Config] Found application in config:",
|
|
1202
|
+
microfrontendsJsonPath
|
|
1203
|
+
);
|
|
1169
1204
|
matchingPaths.push(microfrontendsJsonPath);
|
|
1170
1205
|
} else {
|
|
1171
1206
|
for (const [_, app] of Object.entries(
|
|
1172
1207
|
microfrontendsJson.applications
|
|
1173
1208
|
)) {
|
|
1174
1209
|
if (app.packageName === applicationName) {
|
|
1210
|
+
logger.debug(
|
|
1211
|
+
"[MFE Config] Found application via packageName in config:",
|
|
1212
|
+
microfrontendsJsonPath
|
|
1213
|
+
);
|
|
1175
1214
|
matchingPaths.push(microfrontendsJsonPath);
|
|
1176
1215
|
}
|
|
1177
1216
|
}
|
|
@@ -1179,6 +1218,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
1179
1218
|
} catch (error2) {
|
|
1180
1219
|
}
|
|
1181
1220
|
}
|
|
1221
|
+
logger.debug(
|
|
1222
|
+
"[MFE Config] Total matching config files:",
|
|
1223
|
+
matchingPaths.length
|
|
1224
|
+
);
|
|
1182
1225
|
if (matchingPaths.length > 1) {
|
|
1183
1226
|
throw new MicrofrontendError(
|
|
1184
1227
|
`Found multiple \`microfrontends.json\` files in the repository referencing the application "${applicationName}", but only one is allowed.
|
|
@@ -1238,30 +1281,6 @@ function inferMicrofrontendsLocation(opts) {
|
|
|
1238
1281
|
// src/config/microfrontends/utils/is-monorepo.ts
|
|
1239
1282
|
var import_node_fs3 = __toESM(require("fs"), 1);
|
|
1240
1283
|
var import_node_path3 = __toESM(require("path"), 1);
|
|
1241
|
-
|
|
1242
|
-
// src/bin/logger.ts
|
|
1243
|
-
function debug(...args) {
|
|
1244
|
-
if (process.env.MFE_DEBUG) {
|
|
1245
|
-
console.log(...args);
|
|
1246
|
-
}
|
|
1247
|
-
}
|
|
1248
|
-
function info(...args) {
|
|
1249
|
-
console.log(...args);
|
|
1250
|
-
}
|
|
1251
|
-
function warn(...args) {
|
|
1252
|
-
console.warn(...args);
|
|
1253
|
-
}
|
|
1254
|
-
function error(...args) {
|
|
1255
|
-
console.error(...args);
|
|
1256
|
-
}
|
|
1257
|
-
var logger = {
|
|
1258
|
-
debug,
|
|
1259
|
-
info,
|
|
1260
|
-
warn,
|
|
1261
|
-
error
|
|
1262
|
-
};
|
|
1263
|
-
|
|
1264
|
-
// src/config/microfrontends/utils/is-monorepo.ts
|
|
1265
1284
|
function isMonorepo({
|
|
1266
1285
|
repositoryRoot
|
|
1267
1286
|
}) {
|
|
@@ -1330,15 +1349,18 @@ var import_node_fs6 = __toESM(require("fs"), 1);
|
|
|
1330
1349
|
var import_node_path6 = __toESM(require("path"), 1);
|
|
1331
1350
|
function getApplicationContext(opts) {
|
|
1332
1351
|
if (opts?.appName) {
|
|
1352
|
+
logger.debug("[MFE Config] Application name from appName parameter:", opts.appName);
|
|
1333
1353
|
return { name: opts.appName };
|
|
1334
1354
|
}
|
|
1335
1355
|
if (process.env.VERCEL_PROJECT_NAME) {
|
|
1356
|
+
logger.debug("[MFE Config] Application name from VERCEL_PROJECT_NAME:", process.env.VERCEL_PROJECT_NAME);
|
|
1336
1357
|
return {
|
|
1337
1358
|
name: process.env.VERCEL_PROJECT_NAME,
|
|
1338
1359
|
projectName: process.env.VERCEL_PROJECT_NAME
|
|
1339
1360
|
};
|
|
1340
1361
|
}
|
|
1341
1362
|
if (process.env.NX_TASK_TARGET_PROJECT) {
|
|
1363
|
+
logger.debug("[MFE Config] Application name from NX_TASK_TARGET_PROJECT:", process.env.NX_TASK_TARGET_PROJECT);
|
|
1342
1364
|
return {
|
|
1343
1365
|
name: process.env.NX_TASK_TARGET_PROJECT,
|
|
1344
1366
|
packageJsonName: process.env.NX_TASK_TARGET_PROJECT
|
|
@@ -1351,6 +1373,7 @@ function getApplicationContext(opts) {
|
|
|
1351
1373
|
);
|
|
1352
1374
|
const projectJson = JSON.parse(vercelProjectJsonPath);
|
|
1353
1375
|
if (projectJson.projectName) {
|
|
1376
|
+
logger.debug("[MFE Config] Application name from .vercel/project.json:", projectJson.projectName);
|
|
1354
1377
|
return {
|
|
1355
1378
|
name: projectJson.projectName,
|
|
1356
1379
|
projectName: projectJson.projectName
|
|
@@ -1374,6 +1397,7 @@ function getApplicationContext(opts) {
|
|
|
1374
1397
|
}
|
|
1375
1398
|
);
|
|
1376
1399
|
}
|
|
1400
|
+
logger.debug("[MFE Config] Application name from package.json:", packageJson.name);
|
|
1377
1401
|
return { name: packageJson.name, packageJsonName: packageJson.name };
|
|
1378
1402
|
} catch (err) {
|
|
1379
1403
|
throw MicrofrontendError.handle(err, {
|
|
@@ -1745,7 +1769,13 @@ var MicrofrontendsServer = class {
|
|
|
1745
1769
|
filePath,
|
|
1746
1770
|
cookies
|
|
1747
1771
|
} = {}) {
|
|
1772
|
+
logger.debug("[MFE Config] Starting config inference", {
|
|
1773
|
+
appName,
|
|
1774
|
+
directory: directory || process.cwd(),
|
|
1775
|
+
filePath
|
|
1776
|
+
});
|
|
1748
1777
|
if (filePath) {
|
|
1778
|
+
logger.debug("[MFE Config] Using explicit filePath:", filePath);
|
|
1749
1779
|
return MicrofrontendsServer.fromFile({
|
|
1750
1780
|
filePath,
|
|
1751
1781
|
cookies
|
|
@@ -1753,16 +1783,25 @@ var MicrofrontendsServer = class {
|
|
|
1753
1783
|
}
|
|
1754
1784
|
try {
|
|
1755
1785
|
const packageRoot = findPackageRoot(directory);
|
|
1786
|
+
logger.debug("[MFE Config] Package root:", packageRoot);
|
|
1756
1787
|
const applicationContext = getApplicationContext({
|
|
1757
1788
|
appName,
|
|
1758
1789
|
packageRoot
|
|
1759
1790
|
});
|
|
1791
|
+
logger.debug("[MFE Config] Application context:", applicationContext);
|
|
1760
1792
|
const customConfigFilename = process.env.VC_MICROFRONTENDS_CONFIG_FILE_NAME;
|
|
1793
|
+
if (customConfigFilename) {
|
|
1794
|
+
logger.debug(
|
|
1795
|
+
"[MFE Config] Custom config filename from VC_MICROFRONTENDS_CONFIG_FILE_NAME:",
|
|
1796
|
+
customConfigFilename
|
|
1797
|
+
);
|
|
1798
|
+
}
|
|
1761
1799
|
const maybeConfig = findConfig({
|
|
1762
1800
|
dir: packageRoot,
|
|
1763
1801
|
customConfigFilename
|
|
1764
1802
|
});
|
|
1765
1803
|
if (maybeConfig) {
|
|
1804
|
+
logger.debug("[MFE Config] Config found at package root:", maybeConfig);
|
|
1766
1805
|
return MicrofrontendsServer.fromFile({
|
|
1767
1806
|
filePath: maybeConfig,
|
|
1768
1807
|
cookies
|
|
@@ -1770,42 +1809,78 @@ var MicrofrontendsServer = class {
|
|
|
1770
1809
|
}
|
|
1771
1810
|
const repositoryRoot = findRepositoryRoot();
|
|
1772
1811
|
const isMonorepo2 = isMonorepo({ repositoryRoot });
|
|
1812
|
+
logger.debug(
|
|
1813
|
+
"[MFE Config] Repository root:",
|
|
1814
|
+
repositoryRoot,
|
|
1815
|
+
"Is monorepo:",
|
|
1816
|
+
isMonorepo2
|
|
1817
|
+
);
|
|
1773
1818
|
const configFromEnv = process.env.VC_MICROFRONTENDS_CONFIG;
|
|
1774
1819
|
if (typeof configFromEnv === "string") {
|
|
1820
|
+
logger.debug(
|
|
1821
|
+
"[MFE Config] Checking VC_MICROFRONTENDS_CONFIG:",
|
|
1822
|
+
configFromEnv
|
|
1823
|
+
);
|
|
1775
1824
|
const maybeConfigFromEnv = (0, import_node_path8.resolve)(packageRoot, configFromEnv);
|
|
1776
1825
|
if (maybeConfigFromEnv) {
|
|
1826
|
+
logger.debug(
|
|
1827
|
+
"[MFE Config] Config loaded from VC_MICROFRONTENDS_CONFIG:",
|
|
1828
|
+
maybeConfigFromEnv
|
|
1829
|
+
);
|
|
1777
1830
|
return MicrofrontendsServer.fromFile({
|
|
1778
1831
|
filePath: maybeConfigFromEnv,
|
|
1779
1832
|
cookies
|
|
1780
1833
|
});
|
|
1781
1834
|
}
|
|
1782
1835
|
} else {
|
|
1836
|
+
const vercelDir = (0, import_node_path8.join)(packageRoot, ".vercel");
|
|
1837
|
+
logger.debug(
|
|
1838
|
+
"[MFE Config] Searching for config in .vercel directory:",
|
|
1839
|
+
vercelDir
|
|
1840
|
+
);
|
|
1783
1841
|
const maybeConfigFromVercel = findConfig({
|
|
1784
|
-
dir:
|
|
1842
|
+
dir: vercelDir,
|
|
1785
1843
|
customConfigFilename
|
|
1786
1844
|
});
|
|
1787
1845
|
if (maybeConfigFromVercel) {
|
|
1846
|
+
logger.debug(
|
|
1847
|
+
"[MFE Config] Config found in .vercel directory:",
|
|
1848
|
+
maybeConfigFromVercel
|
|
1849
|
+
);
|
|
1788
1850
|
return MicrofrontendsServer.fromFile({
|
|
1789
1851
|
filePath: maybeConfigFromVercel,
|
|
1790
1852
|
cookies
|
|
1791
1853
|
});
|
|
1792
1854
|
}
|
|
1793
1855
|
if (isMonorepo2) {
|
|
1856
|
+
logger.debug(
|
|
1857
|
+
"[MFE Config] Inferring microfrontends location in monorepo for application:",
|
|
1858
|
+
applicationContext.name
|
|
1859
|
+
);
|
|
1794
1860
|
const defaultPackage = inferMicrofrontendsLocation({
|
|
1795
1861
|
repositoryRoot,
|
|
1796
1862
|
applicationContext,
|
|
1797
1863
|
customConfigFilename
|
|
1798
1864
|
});
|
|
1865
|
+
logger.debug(
|
|
1866
|
+
"[MFE Config] Inferred package location:",
|
|
1867
|
+
defaultPackage
|
|
1868
|
+
);
|
|
1799
1869
|
const maybeConfigFromDefault = findConfig({
|
|
1800
1870
|
dir: defaultPackage,
|
|
1801
1871
|
customConfigFilename
|
|
1802
1872
|
});
|
|
1803
1873
|
if (maybeConfigFromDefault) {
|
|
1874
|
+
logger.debug(
|
|
1875
|
+
"[MFE Config] Config found in inferred package:",
|
|
1876
|
+
maybeConfigFromDefault
|
|
1877
|
+
);
|
|
1804
1878
|
return MicrofrontendsServer.fromFile({
|
|
1805
1879
|
filePath: maybeConfigFromDefault,
|
|
1806
1880
|
cookies
|
|
1807
1881
|
});
|
|
1808
1882
|
}
|
|
1883
|
+
logger.debug("[MFE Config] No config found in inferred package");
|
|
1809
1884
|
}
|
|
1810
1885
|
}
|
|
1811
1886
|
throw new MicrofrontendError(
|
|
@@ -1831,8 +1906,13 @@ var MicrofrontendsServer = class {
|
|
|
1831
1906
|
cookies
|
|
1832
1907
|
}) {
|
|
1833
1908
|
try {
|
|
1909
|
+
logger.debug("[MFE Config] Reading config from file:", filePath);
|
|
1834
1910
|
const configJson = import_node_fs7.default.readFileSync(filePath, "utf-8");
|
|
1835
1911
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1912
|
+
logger.debug(
|
|
1913
|
+
"[MFE Config] Config loaded with applications:",
|
|
1914
|
+
Object.keys(config.applications)
|
|
1915
|
+
);
|
|
1836
1916
|
return new MicrofrontendsServer({
|
|
1837
1917
|
config,
|
|
1838
1918
|
overrides: cookies ? parseOverrides(cookies) : void 0
|
|
@@ -2890,6 +2970,7 @@ function loadConfig({
|
|
|
2890
2970
|
|
|
2891
2971
|
// src/bin/port.ts
|
|
2892
2972
|
function displayPort() {
|
|
2973
|
+
delete process.env.MFE_DEBUG;
|
|
2893
2974
|
const portInfo = mfePort((0, import_node_process.cwd)());
|
|
2894
2975
|
header(portInfo);
|
|
2895
2976
|
logger.info(portInfo.port);
|
|
@@ -287,6 +287,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
287
287
|
customConfigFilename
|
|
288
288
|
}) {
|
|
289
289
|
const applicationName = applicationContext.name;
|
|
290
|
+
logger.debug(
|
|
291
|
+
"[MFE Config] Searching repository for configs containing application:",
|
|
292
|
+
applicationName
|
|
293
|
+
);
|
|
290
294
|
try {
|
|
291
295
|
const microfrontendsJsonPaths = import_fast_glob.default.globSync(
|
|
292
296
|
`**/{${getPossibleConfigurationFilenames({ customConfigFilename }).join(",")}}`,
|
|
@@ -298,6 +302,11 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
298
302
|
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
299
303
|
}
|
|
300
304
|
);
|
|
305
|
+
logger.debug(
|
|
306
|
+
"[MFE Config] Found",
|
|
307
|
+
microfrontendsJsonPaths.length,
|
|
308
|
+
"config file(s) in repository"
|
|
309
|
+
);
|
|
301
310
|
const matchingPaths = [];
|
|
302
311
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
303
312
|
try {
|
|
@@ -307,12 +316,20 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
307
316
|
);
|
|
308
317
|
const microfrontendsJson = (0, import_jsonc_parser.parse)(microfrontendsJsonContent);
|
|
309
318
|
if (microfrontendsJson.applications[applicationName]) {
|
|
319
|
+
logger.debug(
|
|
320
|
+
"[MFE Config] Found application in config:",
|
|
321
|
+
microfrontendsJsonPath
|
|
322
|
+
);
|
|
310
323
|
matchingPaths.push(microfrontendsJsonPath);
|
|
311
324
|
} else {
|
|
312
325
|
for (const [_, app] of Object.entries(
|
|
313
326
|
microfrontendsJson.applications
|
|
314
327
|
)) {
|
|
315
328
|
if (app.packageName === applicationName) {
|
|
329
|
+
logger.debug(
|
|
330
|
+
"[MFE Config] Found application via packageName in config:",
|
|
331
|
+
microfrontendsJsonPath
|
|
332
|
+
);
|
|
316
333
|
matchingPaths.push(microfrontendsJsonPath);
|
|
317
334
|
}
|
|
318
335
|
}
|
|
@@ -320,6 +337,10 @@ function findPackageWithMicrofrontendsConfig({
|
|
|
320
337
|
} catch (error2) {
|
|
321
338
|
}
|
|
322
339
|
}
|
|
340
|
+
logger.debug(
|
|
341
|
+
"[MFE Config] Total matching config files:",
|
|
342
|
+
matchingPaths.length
|
|
343
|
+
);
|
|
323
344
|
if (matchingPaths.length > 1) {
|
|
324
345
|
throw new MicrofrontendError(
|
|
325
346
|
`Found multiple \`microfrontends.json\` files in the repository referencing the application "${applicationName}", but only one is allowed.
|
|
@@ -1118,15 +1139,18 @@ var import_node_fs6 = __toESM(require("fs"), 1);
|
|
|
1118
1139
|
var import_node_path6 = __toESM(require("path"), 1);
|
|
1119
1140
|
function getApplicationContext(opts) {
|
|
1120
1141
|
if (opts?.appName) {
|
|
1142
|
+
logger.debug("[MFE Config] Application name from appName parameter:", opts.appName);
|
|
1121
1143
|
return { name: opts.appName };
|
|
1122
1144
|
}
|
|
1123
1145
|
if (process.env.VERCEL_PROJECT_NAME) {
|
|
1146
|
+
logger.debug("[MFE Config] Application name from VERCEL_PROJECT_NAME:", process.env.VERCEL_PROJECT_NAME);
|
|
1124
1147
|
return {
|
|
1125
1148
|
name: process.env.VERCEL_PROJECT_NAME,
|
|
1126
1149
|
projectName: process.env.VERCEL_PROJECT_NAME
|
|
1127
1150
|
};
|
|
1128
1151
|
}
|
|
1129
1152
|
if (process.env.NX_TASK_TARGET_PROJECT) {
|
|
1153
|
+
logger.debug("[MFE Config] Application name from NX_TASK_TARGET_PROJECT:", process.env.NX_TASK_TARGET_PROJECT);
|
|
1130
1154
|
return {
|
|
1131
1155
|
name: process.env.NX_TASK_TARGET_PROJECT,
|
|
1132
1156
|
packageJsonName: process.env.NX_TASK_TARGET_PROJECT
|
|
@@ -1139,6 +1163,7 @@ function getApplicationContext(opts) {
|
|
|
1139
1163
|
);
|
|
1140
1164
|
const projectJson = JSON.parse(vercelProjectJsonPath);
|
|
1141
1165
|
if (projectJson.projectName) {
|
|
1166
|
+
logger.debug("[MFE Config] Application name from .vercel/project.json:", projectJson.projectName);
|
|
1142
1167
|
return {
|
|
1143
1168
|
name: projectJson.projectName,
|
|
1144
1169
|
projectName: projectJson.projectName
|
|
@@ -1162,6 +1187,7 @@ function getApplicationContext(opts) {
|
|
|
1162
1187
|
}
|
|
1163
1188
|
);
|
|
1164
1189
|
}
|
|
1190
|
+
logger.debug("[MFE Config] Application name from package.json:", packageJson.name);
|
|
1165
1191
|
return { name: packageJson.name, packageJsonName: packageJson.name };
|
|
1166
1192
|
} catch (err) {
|
|
1167
1193
|
throw MicrofrontendError.handle(err, {
|
|
@@ -1533,7 +1559,13 @@ var MicrofrontendsServer = class {
|
|
|
1533
1559
|
filePath,
|
|
1534
1560
|
cookies
|
|
1535
1561
|
} = {}) {
|
|
1562
|
+
logger.debug("[MFE Config] Starting config inference", {
|
|
1563
|
+
appName,
|
|
1564
|
+
directory: directory || process.cwd(),
|
|
1565
|
+
filePath
|
|
1566
|
+
});
|
|
1536
1567
|
if (filePath) {
|
|
1568
|
+
logger.debug("[MFE Config] Using explicit filePath:", filePath);
|
|
1537
1569
|
return MicrofrontendsServer.fromFile({
|
|
1538
1570
|
filePath,
|
|
1539
1571
|
cookies
|
|
@@ -1541,16 +1573,25 @@ var MicrofrontendsServer = class {
|
|
|
1541
1573
|
}
|
|
1542
1574
|
try {
|
|
1543
1575
|
const packageRoot = findPackageRoot(directory);
|
|
1576
|
+
logger.debug("[MFE Config] Package root:", packageRoot);
|
|
1544
1577
|
const applicationContext = getApplicationContext({
|
|
1545
1578
|
appName,
|
|
1546
1579
|
packageRoot
|
|
1547
1580
|
});
|
|
1581
|
+
logger.debug("[MFE Config] Application context:", applicationContext);
|
|
1548
1582
|
const customConfigFilename = process.env.VC_MICROFRONTENDS_CONFIG_FILE_NAME;
|
|
1583
|
+
if (customConfigFilename) {
|
|
1584
|
+
logger.debug(
|
|
1585
|
+
"[MFE Config] Custom config filename from VC_MICROFRONTENDS_CONFIG_FILE_NAME:",
|
|
1586
|
+
customConfigFilename
|
|
1587
|
+
);
|
|
1588
|
+
}
|
|
1549
1589
|
const maybeConfig = findConfig({
|
|
1550
1590
|
dir: packageRoot,
|
|
1551
1591
|
customConfigFilename
|
|
1552
1592
|
});
|
|
1553
1593
|
if (maybeConfig) {
|
|
1594
|
+
logger.debug("[MFE Config] Config found at package root:", maybeConfig);
|
|
1554
1595
|
return MicrofrontendsServer.fromFile({
|
|
1555
1596
|
filePath: maybeConfig,
|
|
1556
1597
|
cookies
|
|
@@ -1558,42 +1599,78 @@ var MicrofrontendsServer = class {
|
|
|
1558
1599
|
}
|
|
1559
1600
|
const repositoryRoot = findRepositoryRoot();
|
|
1560
1601
|
const isMonorepo2 = isMonorepo({ repositoryRoot });
|
|
1602
|
+
logger.debug(
|
|
1603
|
+
"[MFE Config] Repository root:",
|
|
1604
|
+
repositoryRoot,
|
|
1605
|
+
"Is monorepo:",
|
|
1606
|
+
isMonorepo2
|
|
1607
|
+
);
|
|
1561
1608
|
const configFromEnv = process.env.VC_MICROFRONTENDS_CONFIG;
|
|
1562
1609
|
if (typeof configFromEnv === "string") {
|
|
1610
|
+
logger.debug(
|
|
1611
|
+
"[MFE Config] Checking VC_MICROFRONTENDS_CONFIG:",
|
|
1612
|
+
configFromEnv
|
|
1613
|
+
);
|
|
1563
1614
|
const maybeConfigFromEnv = (0, import_node_path8.resolve)(packageRoot, configFromEnv);
|
|
1564
1615
|
if (maybeConfigFromEnv) {
|
|
1616
|
+
logger.debug(
|
|
1617
|
+
"[MFE Config] Config loaded from VC_MICROFRONTENDS_CONFIG:",
|
|
1618
|
+
maybeConfigFromEnv
|
|
1619
|
+
);
|
|
1565
1620
|
return MicrofrontendsServer.fromFile({
|
|
1566
1621
|
filePath: maybeConfigFromEnv,
|
|
1567
1622
|
cookies
|
|
1568
1623
|
});
|
|
1569
1624
|
}
|
|
1570
1625
|
} else {
|
|
1626
|
+
const vercelDir = (0, import_node_path8.join)(packageRoot, ".vercel");
|
|
1627
|
+
logger.debug(
|
|
1628
|
+
"[MFE Config] Searching for config in .vercel directory:",
|
|
1629
|
+
vercelDir
|
|
1630
|
+
);
|
|
1571
1631
|
const maybeConfigFromVercel = findConfig({
|
|
1572
|
-
dir:
|
|
1632
|
+
dir: vercelDir,
|
|
1573
1633
|
customConfigFilename
|
|
1574
1634
|
});
|
|
1575
1635
|
if (maybeConfigFromVercel) {
|
|
1636
|
+
logger.debug(
|
|
1637
|
+
"[MFE Config] Config found in .vercel directory:",
|
|
1638
|
+
maybeConfigFromVercel
|
|
1639
|
+
);
|
|
1576
1640
|
return MicrofrontendsServer.fromFile({
|
|
1577
1641
|
filePath: maybeConfigFromVercel,
|
|
1578
1642
|
cookies
|
|
1579
1643
|
});
|
|
1580
1644
|
}
|
|
1581
1645
|
if (isMonorepo2) {
|
|
1646
|
+
logger.debug(
|
|
1647
|
+
"[MFE Config] Inferring microfrontends location in monorepo for application:",
|
|
1648
|
+
applicationContext.name
|
|
1649
|
+
);
|
|
1582
1650
|
const defaultPackage = inferMicrofrontendsLocation({
|
|
1583
1651
|
repositoryRoot,
|
|
1584
1652
|
applicationContext,
|
|
1585
1653
|
customConfigFilename
|
|
1586
1654
|
});
|
|
1655
|
+
logger.debug(
|
|
1656
|
+
"[MFE Config] Inferred package location:",
|
|
1657
|
+
defaultPackage
|
|
1658
|
+
);
|
|
1587
1659
|
const maybeConfigFromDefault = findConfig({
|
|
1588
1660
|
dir: defaultPackage,
|
|
1589
1661
|
customConfigFilename
|
|
1590
1662
|
});
|
|
1591
1663
|
if (maybeConfigFromDefault) {
|
|
1664
|
+
logger.debug(
|
|
1665
|
+
"[MFE Config] Config found in inferred package:",
|
|
1666
|
+
maybeConfigFromDefault
|
|
1667
|
+
);
|
|
1592
1668
|
return MicrofrontendsServer.fromFile({
|
|
1593
1669
|
filePath: maybeConfigFromDefault,
|
|
1594
1670
|
cookies
|
|
1595
1671
|
});
|
|
1596
1672
|
}
|
|
1673
|
+
logger.debug("[MFE Config] No config found in inferred package");
|
|
1597
1674
|
}
|
|
1598
1675
|
}
|
|
1599
1676
|
throw new MicrofrontendError(
|
|
@@ -1619,8 +1696,13 @@ var MicrofrontendsServer = class {
|
|
|
1619
1696
|
cookies
|
|
1620
1697
|
}) {
|
|
1621
1698
|
try {
|
|
1699
|
+
logger.debug("[MFE Config] Reading config from file:", filePath);
|
|
1622
1700
|
const configJson = import_node_fs7.default.readFileSync(filePath, "utf-8");
|
|
1623
1701
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1702
|
+
logger.debug(
|
|
1703
|
+
"[MFE Config] Config loaded with applications:",
|
|
1704
|
+
Object.keys(config.applications)
|
|
1705
|
+
);
|
|
1624
1706
|
return new MicrofrontendsServer({
|
|
1625
1707
|
config,
|
|
1626
1708
|
overrides: cookies ? parseOverrides(cookies) : void 0
|