@vercel/microfrontends 0.12.1 → 0.14.0
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/README.md +3 -3
- package/dist/bin/cli.cjs +241 -176
- package/dist/config/client.d.ts +1 -1
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.js.map +1 -1
- package/dist/{index-83133f2d.d.ts → index-bf67a461.d.ts} +3 -10
- package/dist/next/client.cjs +1 -1
- package/dist/next/client.cjs.map +1 -1
- package/dist/next/client.js +1 -1
- package/dist/next/client.js.map +1 -1
- package/dist/next/endpoints.cjs.map +1 -1
- package/dist/next/endpoints.d.ts +1 -1
- package/dist/next/endpoints.js.map +1 -1
- package/dist/next/middleware.cjs +0 -29
- package/dist/next/middleware.cjs.map +1 -1
- package/dist/next/middleware.js +0 -29
- package/dist/next/middleware.js.map +1 -1
- package/dist/{types-a995174e.d.ts → types-a29d224a.d.ts} +1 -7
- package/dist/{types-15b7f215.d.ts → types-cfe3308b.d.ts} +1 -1
- package/dist/types-fc30696d.d.ts +11 -0
- package/dist/utils/mfe-port.cjs +2704 -0
- package/dist/utils/mfe-port.cjs.map +1 -0
- package/dist/utils/mfe-port.d.ts +8 -0
- package/dist/utils/mfe-port.js +2669 -0
- package/dist/utils/mfe-port.js.map +1 -0
- package/dist/v2/config.cjs +0 -14
- package/dist/v2/config.cjs.map +1 -1
- package/dist/v2/config.d.ts +4 -3
- package/dist/v2/config.js +0 -14
- package/dist/v2/config.js.map +1 -1
- package/dist/v2/microfrontends/server.cjs +68 -54
- package/dist/v2/microfrontends/server.cjs.map +1 -1
- package/dist/v2/microfrontends/server.d.ts +6 -5
- package/dist/v2/microfrontends/server.js +65 -51
- package/dist/v2/microfrontends/server.js.map +1 -1
- package/dist/v2/microfrontends.cjs +0 -14
- package/dist/v2/microfrontends.cjs.map +1 -1
- package/dist/v2/microfrontends.d.ts +4 -3
- package/dist/v2/microfrontends.js +0 -14
- package/dist/v2/microfrontends.js.map +1 -1
- package/dist/v2/next/client.cjs +1 -1
- package/dist/v2/next/client.cjs.map +1 -1
- package/dist/v2/next/client.js +1 -1
- package/dist/v2/next/client.js.map +1 -1
- package/dist/v2/next/config.cjs +116 -65
- package/dist/v2/next/config.cjs.map +1 -1
- package/dist/v2/next/config.js +113 -62
- package/dist/v2/next/config.js.map +1 -1
- package/dist/v2/next/endpoints.cjs.map +1 -1
- package/dist/v2/next/endpoints.d.ts +13 -2
- package/dist/v2/next/endpoints.js.map +1 -1
- package/dist/v2/next/middleware.cjs +20 -59
- package/dist/v2/next/middleware.cjs.map +1 -1
- package/dist/v2/next/middleware.d.ts +7 -2
- package/dist/v2/next/middleware.js +20 -59
- package/dist/v2/next/middleware.js.map +1 -1
- package/dist/v2/next/testing.cjs +992 -0
- package/dist/v2/next/testing.cjs.map +1 -0
- package/dist/v2/next/testing.d.ts +55 -0
- package/dist/v2/next/testing.js +961 -0
- package/dist/v2/next/testing.js.map +1 -0
- package/dist/v2/overrides.d.ts +3 -3
- package/dist/v2/routing.cjs +19 -0
- package/dist/v2/routing.cjs.map +1 -0
- package/dist/v2/routing.d.ts +26 -0
- package/dist/v2/routing.js +1 -0
- package/dist/v2/routing.js.map +1 -0
- package/dist/v2/schema.cjs.map +1 -1
- package/dist/v2/schema.d.ts +1 -1
- package/dist/validation.cjs +0 -4
- package/dist/validation.cjs.map +1 -1
- package/dist/validation.d.ts +0 -6
- package/dist/validation.js +0 -4
- package/dist/validation.js.map +1 -1
- package/package.json +25 -3
- package/schema/schema-v2.json +0 -4
|
@@ -33,8 +33,8 @@ __export(server_exports, {
|
|
|
33
33
|
MicrofrontendsServer: () => MicrofrontendsServer
|
|
34
34
|
});
|
|
35
35
|
module.exports = __toCommonJS(server_exports);
|
|
36
|
-
var
|
|
37
|
-
var
|
|
36
|
+
var import_node_fs7 = __toESM(require("fs"), 1);
|
|
37
|
+
var import_node_path8 = require("path");
|
|
38
38
|
|
|
39
39
|
// src/config-v2/overrides/constants.ts
|
|
40
40
|
var OVERRIDES_COOKIE_PREFIX = "vercel-micro-frontends-override";
|
|
@@ -381,19 +381,6 @@ var validateConfigDefaultApplication = (applicationConfigsById) => {
|
|
|
381
381
|
);
|
|
382
382
|
}
|
|
383
383
|
};
|
|
384
|
-
var validateConfigOptions = (options) => {
|
|
385
|
-
var _a;
|
|
386
|
-
if ((_a = options == null ? void 0 : options.vercel) == null ? void 0 : _a.previewDeploymentSuffix) {
|
|
387
|
-
if (!/^[a-zA-Z]{2,}\.[a-zA-Z]{2,}$/.test(
|
|
388
|
-
options.vercel.previewDeploymentSuffix
|
|
389
|
-
)) {
|
|
390
|
-
throw new MicrofrontendError(
|
|
391
|
-
`Invalid preview deployment suffix: ${options.vercel.previewDeploymentSuffix}. Should have be formatted like "vercel.app".`,
|
|
392
|
-
{ type: "config", subtype: "invalid_preview_deployment_suffix" }
|
|
393
|
-
);
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
};
|
|
397
384
|
|
|
398
385
|
// src/config-v2/microfrontends-config/isomorphic/utils/generate-asset-prefix.ts
|
|
399
386
|
var PREFIX = "vc-ap";
|
|
@@ -612,7 +599,6 @@ var MicrofrontendConfigIsomorphic = class {
|
|
|
612
599
|
validateConfigPaths(c.applications);
|
|
613
600
|
validateConfigDefaultApplication(c.applications);
|
|
614
601
|
}
|
|
615
|
-
validateConfigOptions(c.options);
|
|
616
602
|
return c;
|
|
617
603
|
}
|
|
618
604
|
static fromEnv({
|
|
@@ -888,29 +874,39 @@ function findPackagePath(opts) {
|
|
|
888
874
|
// src/config-v2/microfrontends/utils/find-default-package.ts
|
|
889
875
|
var import_node_path3 = require("path");
|
|
890
876
|
var import_node_fs3 = require("fs");
|
|
877
|
+
var import_jsonc_parser2 = require("jsonc-parser");
|
|
891
878
|
var import_fast_glob2 = __toESM(require("fast-glob"), 1);
|
|
879
|
+
|
|
880
|
+
// src/config-v2/constants.ts
|
|
881
|
+
var CONFIGURATION_FILENAMES = [
|
|
882
|
+
"microfrontends.jsonc",
|
|
883
|
+
"microfrontends.json"
|
|
884
|
+
];
|
|
885
|
+
|
|
886
|
+
// src/config-v2/microfrontends/utils/find-default-package.ts
|
|
892
887
|
var configCache2 = {};
|
|
893
888
|
function findDefaultMicrofrontendsPackages({
|
|
894
889
|
repositoryRoot,
|
|
895
890
|
applicationName
|
|
896
891
|
}) {
|
|
897
892
|
try {
|
|
898
|
-
const microfrontendsJsonPaths = import_fast_glob2.default.globSync(
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
893
|
+
const microfrontendsJsonPaths = import_fast_glob2.default.globSync(
|
|
894
|
+
`**/{${CONFIGURATION_FILENAMES.join(",")}}`,
|
|
895
|
+
{
|
|
896
|
+
cwd: repositoryRoot,
|
|
897
|
+
absolute: true,
|
|
898
|
+
onlyFiles: true,
|
|
899
|
+
followSymbolicLinks: false,
|
|
900
|
+
ignore: ["**/node_modules/**", "**/.git/**"]
|
|
901
|
+
}
|
|
902
|
+
);
|
|
905
903
|
const matchingPaths = [];
|
|
906
904
|
for (const microfrontendsJsonPath of microfrontendsJsonPaths) {
|
|
907
905
|
const microfrontendsJsonContent = (0, import_node_fs3.readFileSync)(
|
|
908
906
|
microfrontendsJsonPath,
|
|
909
907
|
"utf-8"
|
|
910
908
|
);
|
|
911
|
-
const microfrontendsJson =
|
|
912
|
-
microfrontendsJsonContent
|
|
913
|
-
);
|
|
909
|
+
const microfrontendsJson = (0, import_jsonc_parser2.parse)(microfrontendsJsonContent);
|
|
914
910
|
if (isMainConfig(microfrontendsJson) && microfrontendsJson.applications[applicationName]) {
|
|
915
911
|
matchingPaths.push(microfrontendsJsonPath);
|
|
916
912
|
}
|
|
@@ -940,7 +936,7 @@ function findDefaultMicrofrontendsPackage(opts) {
|
|
|
940
936
|
const result = findDefaultMicrofrontendsPackages(opts);
|
|
941
937
|
if (!result) {
|
|
942
938
|
throw new Error(
|
|
943
|
-
`Error trying to resolve the main microfrontends
|
|
939
|
+
`Error trying to resolve the main microfrontends configuration`
|
|
944
940
|
);
|
|
945
941
|
}
|
|
946
942
|
configCache2[cacheKey] = result;
|
|
@@ -992,8 +988,21 @@ function findPackageRoot(startDir) {
|
|
|
992
988
|
);
|
|
993
989
|
}
|
|
994
990
|
|
|
991
|
+
// src/config-v2/microfrontends/utils/find-config.ts
|
|
992
|
+
var import_node_fs6 = __toESM(require("fs"), 1);
|
|
993
|
+
var import_node_path6 = require("path");
|
|
994
|
+
function findConfig({ dir }) {
|
|
995
|
+
for (const filename of CONFIGURATION_FILENAMES) {
|
|
996
|
+
const maybeConfig = (0, import_node_path6.join)(dir, filename);
|
|
997
|
+
if (import_node_fs6.default.existsSync(maybeConfig)) {
|
|
998
|
+
return maybeConfig;
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
return null;
|
|
1002
|
+
}
|
|
1003
|
+
|
|
995
1004
|
// src/config-v2/microfrontends/server/utils/get-output-file-path.ts
|
|
996
|
-
var
|
|
1005
|
+
var import_node_path7 = __toESM(require("path"), 1);
|
|
997
1006
|
|
|
998
1007
|
// src/config-v2/microfrontends/server/constants.ts
|
|
999
1008
|
var MFE_CONFIG_DEFAULT_FILE_PATH = "microfrontends";
|
|
@@ -1007,17 +1016,17 @@ function isVercel() {
|
|
|
1007
1016
|
// src/config-v2/microfrontends/server/utils/get-output-file-path.ts
|
|
1008
1017
|
function getOutputFilePath() {
|
|
1009
1018
|
if (isVercel()) {
|
|
1010
|
-
return
|
|
1019
|
+
return import_node_path7.default.join(
|
|
1011
1020
|
".vercel",
|
|
1012
1021
|
MFE_CONFIG_DEFAULT_FILE_PATH,
|
|
1013
1022
|
MFE_CONFIG_DEFAULT_FILE_NAME
|
|
1014
1023
|
);
|
|
1015
1024
|
}
|
|
1016
|
-
return
|
|
1025
|
+
return import_node_path7.default.join(MFE_CONFIG_DEFAULT_FILE_PATH, MFE_CONFIG_DEFAULT_FILE_NAME);
|
|
1017
1026
|
}
|
|
1018
1027
|
|
|
1019
1028
|
// src/config-v2/microfrontends/server/validation.ts
|
|
1020
|
-
var
|
|
1029
|
+
var import_jsonc_parser3 = require("jsonc-parser");
|
|
1021
1030
|
var import_ajv = require("ajv");
|
|
1022
1031
|
|
|
1023
1032
|
// src/config/errors.ts
|
|
@@ -1170,10 +1179,6 @@ var schema_v2_default = {
|
|
|
1170
1179
|
VercelOptions: {
|
|
1171
1180
|
type: "object",
|
|
1172
1181
|
properties: {
|
|
1173
|
-
previewDeploymentSuffix: {
|
|
1174
|
-
type: "string",
|
|
1175
|
-
description: "If your team uses a custom Preview Deployment Suffix, please specify it here. See https://vercel.com/docs/deployments/preview-deployment-suffix. The default is `vercel.app`."
|
|
1176
|
-
},
|
|
1177
1182
|
teamSlug: {
|
|
1178
1183
|
type: "string",
|
|
1179
1184
|
description: "Team slug for the Vercel team"
|
|
@@ -1367,7 +1372,7 @@ var SCHEMA = schema_v2_default;
|
|
|
1367
1372
|
|
|
1368
1373
|
// src/config-v2/microfrontends/server/validation.ts
|
|
1369
1374
|
function validateSchema(configString) {
|
|
1370
|
-
const parsedConfig = (0,
|
|
1375
|
+
const parsedConfig = (0, import_jsonc_parser3.parse)(configString);
|
|
1371
1376
|
const ajv = new import_ajv.Ajv();
|
|
1372
1377
|
const validate = ajv.compile(SCHEMA);
|
|
1373
1378
|
const isValid = validate(parsedConfig);
|
|
@@ -1389,8 +1394,8 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1389
1394
|
pretty: true
|
|
1390
1395
|
}) {
|
|
1391
1396
|
const outputPath = getOutputFilePath();
|
|
1392
|
-
|
|
1393
|
-
|
|
1397
|
+
import_node_fs7.default.mkdirSync((0, import_node_path8.dirname)(outputPath), { recursive: true });
|
|
1398
|
+
import_node_fs7.default.writeFileSync(
|
|
1394
1399
|
outputPath,
|
|
1395
1400
|
JSON.stringify(
|
|
1396
1401
|
this.config.toSchemaJson(),
|
|
@@ -1453,8 +1458,8 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1453
1458
|
return config;
|
|
1454
1459
|
}
|
|
1455
1460
|
/**
|
|
1456
|
-
* Looks up the configuration by inferring the package root and looking for a microfrontends
|
|
1457
|
-
* it will look for a package in the repository with a microfrontends
|
|
1461
|
+
* Looks up the configuration by inferring the package root and looking for a microfrontends config file. If a file is not found,
|
|
1462
|
+
* it will look for a package in the repository with a microfrontends file that contains the current application
|
|
1458
1463
|
* and use that configuration.
|
|
1459
1464
|
*
|
|
1460
1465
|
* This can return either a Child or Main configuration.
|
|
@@ -1476,16 +1481,16 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1476
1481
|
}
|
|
1477
1482
|
try {
|
|
1478
1483
|
const packageRoot = findPackageRoot(directory);
|
|
1479
|
-
const packageJsonPath = (0,
|
|
1484
|
+
const packageJsonPath = (0, import_node_path8.join)(packageRoot, "package.json");
|
|
1480
1485
|
const packageJson = JSON.parse(
|
|
1481
|
-
|
|
1486
|
+
import_node_fs7.default.readFileSync(packageJsonPath, "utf-8")
|
|
1482
1487
|
);
|
|
1483
1488
|
if (!packageJson.name) {
|
|
1484
1489
|
throw new Error(`No name found in package.json at ${packageJsonPath}`);
|
|
1485
1490
|
}
|
|
1486
1491
|
const configMeta = meta ?? { fromApp: packageJson.name };
|
|
1487
|
-
const maybeConfig = (
|
|
1488
|
-
if (
|
|
1492
|
+
const maybeConfig = findConfig({ dir: packageRoot });
|
|
1493
|
+
if (maybeConfig) {
|
|
1489
1494
|
return MicrofrontendsServer.fromFile({
|
|
1490
1495
|
filePath: maybeConfig,
|
|
1491
1496
|
cookies,
|
|
@@ -1500,12 +1505,15 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1500
1505
|
repositoryRoot,
|
|
1501
1506
|
applicationName: packageJson.name
|
|
1502
1507
|
});
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1508
|
+
const maybeConfigFromDefault = findConfig({ dir: defaultPackage });
|
|
1509
|
+
if (maybeConfigFromDefault) {
|
|
1510
|
+
return MicrofrontendsServer.fromFile({
|
|
1511
|
+
filePath: maybeConfigFromDefault,
|
|
1512
|
+
cookies,
|
|
1513
|
+
meta: configMeta,
|
|
1514
|
+
options
|
|
1515
|
+
});
|
|
1516
|
+
}
|
|
1509
1517
|
}
|
|
1510
1518
|
throw new Error("Unable to infer");
|
|
1511
1519
|
} catch (e) {
|
|
@@ -1525,7 +1533,7 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1525
1533
|
options
|
|
1526
1534
|
}) {
|
|
1527
1535
|
try {
|
|
1528
|
-
const configJson =
|
|
1536
|
+
const configJson = import_node_fs7.default.readFileSync(filePath, "utf-8");
|
|
1529
1537
|
const config = MicrofrontendsServer.validate(configJson);
|
|
1530
1538
|
if (!isMainConfig(config) && (options == null ? void 0 : options.resolveMainConfig)) {
|
|
1531
1539
|
const repositoryRoot = findRepositoryRoot();
|
|
@@ -1541,9 +1549,15 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1541
1549
|
{ type: "config", subtype: "not_found" }
|
|
1542
1550
|
);
|
|
1543
1551
|
}
|
|
1544
|
-
const
|
|
1552
|
+
const maybeConfig = findConfig({ dir: packagePath });
|
|
1553
|
+
if (!maybeConfig) {
|
|
1554
|
+
throw new MicrofrontendError(
|
|
1555
|
+
`Could not find microfrontends configuration in ${packagePath}`,
|
|
1556
|
+
{ type: "config", subtype: "not_found" }
|
|
1557
|
+
);
|
|
1558
|
+
}
|
|
1545
1559
|
return MicrofrontendsServer.fromMainConfigFile({
|
|
1546
|
-
filePath:
|
|
1560
|
+
filePath: maybeConfig,
|
|
1547
1561
|
overrides: cookies ? parseOverrides(cookies) : void 0
|
|
1548
1562
|
});
|
|
1549
1563
|
}
|
|
@@ -1567,7 +1581,7 @@ var MicrofrontendsServer = class extends Microfrontends {
|
|
|
1567
1581
|
overrides
|
|
1568
1582
|
}) {
|
|
1569
1583
|
try {
|
|
1570
|
-
const config =
|
|
1584
|
+
const config = import_node_fs7.default.readFileSync(filePath, "utf-8");
|
|
1571
1585
|
const validatedConfig = MicrofrontendsServer.validate(config);
|
|
1572
1586
|
if (!isMainConfig(validatedConfig)) {
|
|
1573
1587
|
throw new MicrofrontendError(
|