@vercel/microfrontends 0.14.0 → 0.16.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.
Files changed (121) hide show
  1. package/dist/bin/cli.cjs +392 -1620
  2. package/dist/config.cjs +478 -1001
  3. package/dist/config.cjs.map +1 -1
  4. package/dist/config.d.ts +4 -25
  5. package/dist/config.js +474 -980
  6. package/dist/config.js.map +1 -1
  7. package/dist/{v2/microfrontends → microfrontends}/server.cjs +91 -150
  8. package/dist/microfrontends/server.cjs.map +1 -0
  9. package/dist/{v2/microfrontends → microfrontends}/server.d.ts +4 -4
  10. package/dist/{v2/microfrontends → microfrontends}/server.js +91 -150
  11. package/dist/microfrontends/server.js.map +1 -0
  12. package/dist/{v2/microfrontends.cjs → microfrontends.cjs} +49 -28
  13. package/dist/microfrontends.cjs.map +1 -0
  14. package/dist/{v2/microfrontends.d.ts → microfrontends.d.ts} +4 -4
  15. package/dist/{v2/microfrontends.js → microfrontends.js} +48 -27
  16. package/dist/microfrontends.js.map +1 -0
  17. package/dist/next/client.cjs +1 -1
  18. package/dist/next/client.cjs.map +1 -1
  19. package/dist/next/client.js +1 -1
  20. package/dist/next/client.js.map +1 -1
  21. package/dist/next/config.cjs +1344 -1024
  22. package/dist/next/config.cjs.map +1 -1
  23. package/dist/next/config.d.ts +1 -1
  24. package/dist/next/config.js +1343 -1023
  25. package/dist/next/config.js.map +1 -1
  26. package/dist/next/endpoints.cjs +77 -18
  27. package/dist/next/endpoints.cjs.map +1 -1
  28. package/dist/next/endpoints.d.ts +13 -2
  29. package/dist/next/endpoints.js +77 -18
  30. package/dist/next/endpoints.js.map +1 -1
  31. package/dist/next/middleware.cjs +765 -395
  32. package/dist/next/middleware.cjs.map +1 -1
  33. package/dist/next/middleware.d.ts +10 -5
  34. package/dist/next/middleware.js +765 -395
  35. package/dist/next/middleware.js.map +1 -1
  36. package/dist/next/testing.cjs +615 -1031
  37. package/dist/next/testing.cjs.map +1 -1
  38. package/dist/next/testing.d.ts +14 -12
  39. package/dist/next/testing.js +609 -1015
  40. package/dist/next/testing.js.map +1 -1
  41. package/dist/overrides.cjs +40 -108
  42. package/dist/overrides.cjs.map +1 -1
  43. package/dist/overrides.d.ts +24 -2
  44. package/dist/overrides.js +36 -106
  45. package/dist/overrides.js.map +1 -1
  46. package/dist/{v2/routing.cjs → routing.cjs} +3 -3
  47. package/dist/routing.cjs.map +1 -0
  48. package/dist/{v2/schema.cjs → schema.cjs} +1 -1
  49. package/dist/schema.cjs.map +1 -0
  50. package/dist/schema.d.ts +1 -0
  51. package/dist/utils/mfe-port.cjs +237 -1338
  52. package/dist/utils/mfe-port.cjs.map +1 -1
  53. package/dist/utils/mfe-port.js +230 -1331
  54. package/dist/utils/mfe-port.js.map +1 -1
  55. package/dist/validation.cjs +31 -361
  56. package/dist/validation.cjs.map +1 -1
  57. package/dist/validation.d.ts +3 -146
  58. package/dist/validation.js +30 -359
  59. package/dist/validation.js.map +1 -1
  60. package/package.json +29 -92
  61. package/schema/schema.json +174 -244
  62. package/dist/config/client.cjs +0 -54
  63. package/dist/config/client.cjs.map +0 -1
  64. package/dist/config/client.d.ts +0 -23
  65. package/dist/config/client.js +0 -28
  66. package/dist/config/client.js.map +0 -1
  67. package/dist/config/edge.cjs +0 -508
  68. package/dist/config/edge.cjs.map +0 -1
  69. package/dist/config/edge.d.ts +0 -20
  70. package/dist/config/edge.js +0 -481
  71. package/dist/config/edge.js.map +0 -1
  72. package/dist/microfrontend-config-983a5139.d.ts +0 -154
  73. package/dist/schema-2922d49e.d.ts +0 -182
  74. package/dist/v2/config.cjs +0 -709
  75. package/dist/v2/config.cjs.map +0 -1
  76. package/dist/v2/config.d.ts +0 -4
  77. package/dist/v2/config.js +0 -684
  78. package/dist/v2/config.js.map +0 -1
  79. package/dist/v2/microfrontends/server.cjs.map +0 -1
  80. package/dist/v2/microfrontends/server.js.map +0 -1
  81. package/dist/v2/microfrontends.cjs.map +0 -1
  82. package/dist/v2/microfrontends.js.map +0 -1
  83. package/dist/v2/next/client.cjs +0 -3
  84. package/dist/v2/next/client.cjs.map +0 -1
  85. package/dist/v2/next/client.d.ts +0 -45
  86. package/dist/v2/next/client.js +0 -3
  87. package/dist/v2/next/client.js.map +0 -1
  88. package/dist/v2/next/config.cjs +0 -2178
  89. package/dist/v2/next/config.cjs.map +0 -1
  90. package/dist/v2/next/config.d.ts +0 -22
  91. package/dist/v2/next/config.js +0 -2143
  92. package/dist/v2/next/config.js.map +0 -1
  93. package/dist/v2/next/endpoints.cjs +0 -141
  94. package/dist/v2/next/endpoints.cjs.map +0 -1
  95. package/dist/v2/next/endpoints.d.ts +0 -26
  96. package/dist/v2/next/endpoints.js +0 -116
  97. package/dist/v2/next/endpoints.js.map +0 -1
  98. package/dist/v2/next/middleware.cjs +0 -1099
  99. package/dist/v2/next/middleware.cjs.map +0 -1
  100. package/dist/v2/next/middleware.d.ts +0 -34
  101. package/dist/v2/next/middleware.js +0 -1071
  102. package/dist/v2/next/middleware.js.map +0 -1
  103. package/dist/v2/next/testing.cjs +0 -992
  104. package/dist/v2/next/testing.cjs.map +0 -1
  105. package/dist/v2/next/testing.d.ts +0 -55
  106. package/dist/v2/next/testing.js +0 -961
  107. package/dist/v2/next/testing.js.map +0 -1
  108. package/dist/v2/overrides.cjs +0 -75
  109. package/dist/v2/overrides.cjs.map +0 -1
  110. package/dist/v2/overrides.d.ts +0 -24
  111. package/dist/v2/overrides.js +0 -45
  112. package/dist/v2/overrides.js.map +0 -1
  113. package/dist/v2/routing.cjs.map +0 -1
  114. package/dist/v2/schema.cjs.map +0 -1
  115. package/dist/v2/schema.d.ts +0 -1
  116. package/schema/schema-v2.json +0 -266
  117. /package/dist/{v2/routing.d.ts → routing.d.ts} +0 -0
  118. /package/dist/{v2/routing.js → routing.js} +0 -0
  119. /package/dist/{v2/routing.js.map → routing.js.map} +0 -0
  120. /package/dist/{v2/schema.js → schema.js} +0 -0
  121. /package/dist/{v2/schema.js.map → schema.js.map} +0 -0
@@ -27,7 +27,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
 
30
- // src/config-v2/microfrontends/server/index.ts
30
+ // src/config/microfrontends/server/index.ts
31
31
  var server_exports = {};
32
32
  __export(server_exports, {
33
33
  MicrofrontendsServer: () => MicrofrontendsServer
@@ -36,17 +36,17 @@ module.exports = __toCommonJS(server_exports);
36
36
  var import_node_fs7 = __toESM(require("fs"), 1);
37
37
  var import_node_path8 = require("path");
38
38
 
39
- // src/config-v2/overrides/constants.ts
39
+ // src/config/overrides/constants.ts
40
40
  var OVERRIDES_COOKIE_PREFIX = "vercel-micro-frontends-override";
41
41
  var OVERRIDES_ENV_COOKIE_PREFIX = `${OVERRIDES_COOKIE_PREFIX}:env:`;
42
42
 
43
- // src/config-v2/overrides/is-override-cookie.ts
43
+ // src/config/overrides/is-override-cookie.ts
44
44
  function isOverrideCookie(cookie) {
45
45
  var _a;
46
46
  return Boolean((_a = cookie.name) == null ? void 0 : _a.startsWith(OVERRIDES_COOKIE_PREFIX));
47
47
  }
48
48
 
49
- // src/config-v2/overrides/get-override-from-cookie.ts
49
+ // src/config/overrides/get-override-from-cookie.ts
50
50
  function getOverrideFromCookie(cookie) {
51
51
  if (!isOverrideCookie(cookie) || !cookie.value)
52
52
  return;
@@ -56,7 +56,7 @@ function getOverrideFromCookie(cookie) {
56
56
  };
57
57
  }
58
58
 
59
- // src/config-v2/overrides/parse-overrides.ts
59
+ // src/config/overrides/parse-overrides.ts
60
60
  function parseOverrides(cookies) {
61
61
  const overridesConfig = { applications: {} };
62
62
  cookies.forEach((cookie) => {
@@ -70,7 +70,7 @@ function parseOverrides(cookies) {
70
70
  return overridesConfig;
71
71
  }
72
72
 
73
- // src/config-v2/errors.ts
73
+ // src/config/errors.ts
74
74
  var MicrofrontendError = class extends Error {
75
75
  constructor(message, opts) {
76
76
  super(message);
@@ -162,7 +162,7 @@ var MicrofrontendError = class extends Error {
162
162
  }
163
163
  };
164
164
 
165
- // src/config-v2/microfrontends-config/utils/get-config-from-env.ts
165
+ // src/config/microfrontends-config/utils/get-config-from-env.ts
166
166
  function getConfigStringFromEnv() {
167
167
  const config = process.env.MFE_CONFIG;
168
168
  if (!config) {
@@ -174,20 +174,20 @@ function getConfigStringFromEnv() {
174
174
  return config;
175
175
  }
176
176
 
177
- // src/config-v2/microfrontends-config/isomorphic/index.ts
177
+ // src/config/microfrontends-config/isomorphic/index.ts
178
178
  var import_jsonc_parser = require("jsonc-parser");
179
179
 
180
- // src/config-v2/schema/utils/is-main-config.ts
180
+ // src/config/schema/utils/is-main-config.ts
181
181
  function isMainConfig(c) {
182
182
  return !("partOf" in c);
183
183
  }
184
184
 
185
- // src/config-v2/schema/utils/is-default-app.ts
185
+ // src/config/schema/utils/is-default-app.ts
186
186
  function isDefaultApp(a) {
187
187
  return !("routing" in a);
188
188
  }
189
189
 
190
- // src/config-v2/microfrontends-config/client/index.ts
190
+ // src/config/microfrontends-config/client/index.ts
191
191
  var import_path_to_regexp = require("path-to-regexp");
192
192
  var MicrofrontendConfigClient = class {
193
193
  constructor(config, opts) {
@@ -253,7 +253,7 @@ var MicrofrontendConfigClient = class {
253
253
  }
254
254
  };
255
255
 
256
- // src/config-v2/microfrontends-config/isomorphic/validation.ts
256
+ // src/config/microfrontends-config/isomorphic/validation.ts
257
257
  var import_path_to_regexp2 = require("path-to-regexp");
258
258
  var SUPPORTED_VERSIONS = ["2"];
259
259
  var validateConfigVersion = (version) => {
@@ -278,13 +278,9 @@ var validateConfigPaths = (applicationConfigsById) => {
278
278
  }
279
279
  for (const pathMatch of app.routing) {
280
280
  for (const path5 of pathMatch.paths) {
281
- const tokens = (0, import_path_to_regexp2.parse)(path5);
282
- for (const token of tokens.slice(0, -1)) {
283
- if (typeof token !== "string") {
284
- errors.push(
285
- `Path ${path5} may only have a :wildcard in the last path component`
286
- );
287
- }
281
+ const maybeError = validatePathExpression(path5);
282
+ if (maybeError) {
283
+ errors.push(maybeError);
288
284
  }
289
285
  const existing = pathsByApplicationId.get(path5);
290
286
  if (existing) {
@@ -334,6 +330,31 @@ var validateConfigPaths = (applicationConfigsById) => {
334
330
  });
335
331
  }
336
332
  };
333
+ var PATH_DEFAULT_PATTERN = "[^\\/#\\?]+?";
334
+ function validatePathExpression(path5) {
335
+ const tokens = (0, import_path_to_regexp2.parse)(path5);
336
+ for (let i = 0; i < tokens.length; i++) {
337
+ const token = tokens[i];
338
+ if (token === void 0) {
339
+ return `token ${i} in ${path5} is undefined, this shouldn't happen`;
340
+ }
341
+ if (typeof token !== "string") {
342
+ if (token.pattern !== PATH_DEFAULT_PATTERN) {
343
+ return `Path ${path5} cannot use a regular expression wildcard`;
344
+ }
345
+ if (token.prefix !== "/") {
346
+ return `Wildcard :${token.name} must be immediately after a / in ${path5}`;
347
+ }
348
+ if (token.suffix) {
349
+ return `Wildcard suffix on :${token.name} is not allowed. Suffixes are not supported`;
350
+ }
351
+ if (token.modifier && i !== tokens.length - 1) {
352
+ return `Modifier ${token.modifier} is not allowed on wildcard :${token.name} in ${path5}. Modifiers are only allowed in the last path component`;
353
+ }
354
+ }
355
+ }
356
+ return void 0;
357
+ }
337
358
  var validateAppPaths = (name, app) => {
338
359
  for (const group of app.routing) {
339
360
  for (const p of group.paths) {
@@ -382,7 +403,7 @@ var validateConfigDefaultApplication = (applicationConfigsById) => {
382
403
  }
383
404
  };
384
405
 
385
- // src/config-v2/microfrontends-config/isomorphic/utils/generate-asset-prefix.ts
406
+ // src/config/microfrontends-config/isomorphic/utils/generate-asset-prefix.ts
386
407
  var PREFIX = "vc-ap";
387
408
  function generateAssetPrefixFromName({
388
409
  name
@@ -393,7 +414,7 @@ function generateAssetPrefixFromName({
393
414
  return `${PREFIX}-${name}`;
394
415
  }
395
416
 
396
- // src/config-v2/microfrontends-config/isomorphic/utils/generate-port.ts
417
+ // src/config/microfrontends-config/isomorphic/utils/generate-port.ts
397
418
  function generatePortFromName({
398
419
  name,
399
420
  minPort = 3e3,
@@ -413,7 +434,7 @@ function generatePortFromName({
413
434
  return port;
414
435
  }
415
436
 
416
- // src/config-v2/microfrontends-config/isomorphic/host.ts
437
+ // src/config/microfrontends-config/isomorphic/host.ts
417
438
  var Host = class {
418
439
  constructor(hostConfig, options) {
419
440
  const { protocol = "https", host, port } = hostConfig;
@@ -462,7 +483,7 @@ var LocalHost = class extends Host {
462
483
  }
463
484
  };
464
485
 
465
- // src/config-v2/microfrontends-config/isomorphic/application.ts
486
+ // src/config/microfrontends-config/isomorphic/application.ts
466
487
  var Application = class {
467
488
  constructor(name, {
468
489
  app,
@@ -532,10 +553,10 @@ var ChildApplication = class extends Application {
532
553
  }
533
554
  };
534
555
 
535
- // src/config-v2/microfrontends-config/isomorphic/constants.ts
556
+ // src/config/microfrontends-config/isomorphic/constants.ts
536
557
  var DEFAULT_LOCAL_PROXY_PORT = 3024;
537
558
 
538
- // src/config-v2/microfrontends-config/isomorphic/index.ts
559
+ // src/config/microfrontends-config/isomorphic/index.ts
539
560
  var MicrofrontendConfigIsomorphic = class {
540
561
  constructor({
541
562
  config,
@@ -717,7 +738,7 @@ var MicrofrontendConfigIsomorphic = class {
717
738
  }
718
739
  };
719
740
 
720
- // src/config-v2/microfrontends-config/isomorphic/child.ts
741
+ // src/config/microfrontends-config/isomorphic/child.ts
721
742
  var MicrofrontendChildConfig = class extends MicrofrontendConfigIsomorphic {
722
743
  constructor({
723
744
  config,
@@ -730,7 +751,7 @@ var MicrofrontendChildConfig = class extends MicrofrontendConfigIsomorphic {
730
751
  }
731
752
  };
732
753
 
733
- // src/config-v2/microfrontends-config/isomorphic/main.ts
754
+ // src/config/microfrontends-config/isomorphic/main.ts
734
755
  var MicrofrontendMainConfig = class extends MicrofrontendConfigIsomorphic {
735
756
  constructor({
736
757
  config,
@@ -769,7 +790,7 @@ var MicrofrontendMainConfig = class extends MicrofrontendConfigIsomorphic {
769
790
  }
770
791
  };
771
792
 
772
- // src/config-v2/microfrontends/isomorphic/index.ts
793
+ // src/config/microfrontends/isomorphic/index.ts
773
794
  var Microfrontends = class {
774
795
  constructor({
775
796
  config,
@@ -797,7 +818,7 @@ var Microfrontends = class {
797
818
  }
798
819
  };
799
820
 
800
- // src/config-v2/microfrontends/utils/find-repository-root.ts
821
+ // src/config/microfrontends/utils/find-repository-root.ts
801
822
  var import_node_fs = __toESM(require("fs"), 1);
802
823
  var import_node_path = __toESM(require("path"), 1);
803
824
  var GIT_DIRECTORY = ".git";
@@ -815,7 +836,7 @@ function findRepositoryRoot(startDir) {
815
836
  );
816
837
  }
817
838
 
818
- // src/config-v2/microfrontends/utils/find-package-path.ts
839
+ // src/config/microfrontends/utils/find-package-path.ts
819
840
  var import_node_path2 = require("path");
820
841
  var import_node_fs2 = require("fs");
821
842
  var import_fast_glob = __toESM(require("fast-glob"), 1);
@@ -871,19 +892,19 @@ function findPackagePath(opts) {
871
892
  return result;
872
893
  }
873
894
 
874
- // src/config-v2/microfrontends/utils/find-default-package.ts
895
+ // src/config/microfrontends/utils/find-default-package.ts
875
896
  var import_node_path3 = require("path");
876
897
  var import_node_fs3 = require("fs");
877
898
  var import_jsonc_parser2 = require("jsonc-parser");
878
899
  var import_fast_glob2 = __toESM(require("fast-glob"), 1);
879
900
 
880
- // src/config-v2/constants.ts
901
+ // src/config/constants.ts
881
902
  var CONFIGURATION_FILENAMES = [
882
903
  "microfrontends.jsonc",
883
904
  "microfrontends.json"
884
905
  ];
885
906
 
886
- // src/config-v2/microfrontends/utils/find-default-package.ts
907
+ // src/config/microfrontends/utils/find-default-package.ts
887
908
  var configCache2 = {};
888
909
  function findDefaultMicrofrontendsPackages({
889
910
  repositoryRoot,
@@ -943,7 +964,7 @@ function findDefaultMicrofrontendsPackage(opts) {
943
964
  return result;
944
965
  }
945
966
 
946
- // src/config-v2/microfrontends/utils/is-monorepo.ts
967
+ // src/config/microfrontends/utils/is-monorepo.ts
947
968
  var import_node_fs4 = __toESM(require("fs"), 1);
948
969
  var import_node_path4 = __toESM(require("path"), 1);
949
970
  function isMonorepo({
@@ -970,7 +991,7 @@ function isMonorepo({
970
991
  }
971
992
  }
972
993
 
973
- // src/config-v2/microfrontends/utils/find-package-root.ts
994
+ // src/config/microfrontends/utils/find-package-root.ts
974
995
  var import_node_fs5 = __toESM(require("fs"), 1);
975
996
  var import_node_path5 = __toESM(require("path"), 1);
976
997
  var PACKAGE_JSON = "package.json";
@@ -988,7 +1009,7 @@ function findPackageRoot(startDir) {
988
1009
  );
989
1010
  }
990
1011
 
991
- // src/config-v2/microfrontends/utils/find-config.ts
1012
+ // src/config/microfrontends/utils/find-config.ts
992
1013
  var import_node_fs6 = __toESM(require("fs"), 1);
993
1014
  var import_node_path6 = require("path");
994
1015
  function findConfig({ dir }) {
@@ -1001,10 +1022,10 @@ function findConfig({ dir }) {
1001
1022
  return null;
1002
1023
  }
1003
1024
 
1004
- // src/config-v2/microfrontends/server/utils/get-output-file-path.ts
1025
+ // src/config/microfrontends/server/utils/get-output-file-path.ts
1005
1026
  var import_node_path7 = __toESM(require("path"), 1);
1006
1027
 
1007
- // src/config-v2/microfrontends/server/constants.ts
1028
+ // src/config/microfrontends/server/constants.ts
1008
1029
  var MFE_CONFIG_DEFAULT_FILE_PATH = "microfrontends";
1009
1030
  var MFE_CONFIG_DEFAULT_FILE_NAME = "microfrontends.json";
1010
1031
 
@@ -1013,7 +1034,7 @@ function isVercel() {
1013
1034
  return process.env.VERCEL === "1";
1014
1035
  }
1015
1036
 
1016
- // src/config-v2/microfrontends/server/utils/get-output-file-path.ts
1037
+ // src/config/microfrontends/server/utils/get-output-file-path.ts
1017
1038
  function getOutputFilePath() {
1018
1039
  if (isVercel()) {
1019
1040
  return import_node_path7.default.join(
@@ -1025,104 +1046,12 @@ function getOutputFilePath() {
1025
1046
  return import_node_path7.default.join(MFE_CONFIG_DEFAULT_FILE_PATH, MFE_CONFIG_DEFAULT_FILE_NAME);
1026
1047
  }
1027
1048
 
1028
- // src/config-v2/microfrontends/server/validation.ts
1049
+ // src/config/microfrontends/server/validation.ts
1029
1050
  var import_jsonc_parser3 = require("jsonc-parser");
1030
1051
  var import_ajv = require("ajv");
1031
1052
 
1032
- // src/config/errors.ts
1033
- var MicrofrontendError2 = class extends Error {
1034
- constructor(message, opts) {
1035
- super(message);
1036
- this.name = "MicrofrontendsError";
1037
- this.source = (opts == null ? void 0 : opts.source) ?? "@vercel/microfrontends";
1038
- this.type = (opts == null ? void 0 : opts.type) ?? "unknown";
1039
- this.subtype = opts == null ? void 0 : opts.subtype;
1040
- Error.captureStackTrace(this, MicrofrontendError2);
1041
- }
1042
- isKnown() {
1043
- return this.type !== "unknown";
1044
- }
1045
- isUnknown() {
1046
- return !this.isKnown();
1047
- }
1048
- /**
1049
- * Converts an error to a MicrofrontendsError.
1050
- * @param original - The original error to convert.
1051
- * @returns The converted MicrofrontendsError.
1052
- */
1053
- static convert(original, opts) {
1054
- if (opts == null ? void 0 : opts.fileName) {
1055
- const err = MicrofrontendError2.convertFSError(original, opts.fileName);
1056
- if (err) {
1057
- return err;
1058
- }
1059
- }
1060
- if (original.message.includes(
1061
- "Code generation from strings disallowed for this context"
1062
- )) {
1063
- return new MicrofrontendError2(original.message, {
1064
- type: "config",
1065
- subtype: "unsupported_validation_env",
1066
- source: "ajv"
1067
- });
1068
- }
1069
- return new MicrofrontendError2(original.message);
1070
- }
1071
- static convertFSError(original, fileName) {
1072
- if (original instanceof Error && "code" in original) {
1073
- if (original.code === "ENOENT") {
1074
- return new MicrofrontendError2(`Could not find "${fileName}"`, {
1075
- type: "config",
1076
- subtype: "unable_to_read_file",
1077
- source: "fs"
1078
- });
1079
- }
1080
- if (original.code === "EACCES") {
1081
- return new MicrofrontendError2(
1082
- `Permission denied while accessing "${fileName}"`,
1083
- {
1084
- type: "config",
1085
- subtype: "invalid_permissions",
1086
- source: "fs"
1087
- }
1088
- );
1089
- }
1090
- }
1091
- if (original instanceof SyntaxError) {
1092
- return new MicrofrontendError2(
1093
- `Failed to parse "${fileName}": Invalid JSON format.`,
1094
- {
1095
- type: "config",
1096
- subtype: "invalid_syntax",
1097
- source: "fs"
1098
- }
1099
- );
1100
- }
1101
- return null;
1102
- }
1103
- /**
1104
- * Handles an unknown error and returns a MicrofrontendsError instance.
1105
- * @param err - The error to handle.
1106
- * @returns A MicrofrontendsError instance.
1107
- */
1108
- static handle(err, opts) {
1109
- if (err instanceof MicrofrontendError2) {
1110
- return err;
1111
- }
1112
- if (err instanceof Error) {
1113
- return MicrofrontendError2.convert(err, opts);
1114
- }
1115
- if (typeof err === "object" && err !== null) {
1116
- if ("message" in err && typeof err.message === "string") {
1117
- return MicrofrontendError2.convert(new Error(err.message), opts);
1118
- }
1119
- }
1120
- return new MicrofrontendError2("An unknown error occurred");
1121
- }
1122
- };
1123
-
1124
- // schema/schema-v2.json
1125
- var schema_v2_default = {
1053
+ // schema/schema.json
1054
+ var schema_default = {
1126
1055
  $schema: "http://json-schema.org/draft-07/schema#",
1127
1056
  $ref: "#/definitions/Config",
1128
1057
  definitions: {
@@ -1161,7 +1090,8 @@ var schema_v2_default = {
1161
1090
  description: "Mapping of application names to the routes that they host. Only needs to be defined in the application that owns the primary microfrontend domain"
1162
1091
  }
1163
1092
  },
1164
- required: ["applications", "version"]
1093
+ required: ["applications", "version"],
1094
+ additionalProperties: false
1165
1095
  },
1166
1096
  Options: {
1167
1097
  type: "object",
@@ -1174,7 +1104,8 @@ var schema_v2_default = {
1174
1104
  $ref: "#/definitions/LocalProxyOptions",
1175
1105
  description: "Options for local proxy."
1176
1106
  }
1177
- }
1107
+ },
1108
+ additionalProperties: false
1178
1109
  },
1179
1110
  VercelOptions: {
1180
1111
  type: "object",
@@ -1187,7 +1118,8 @@ var schema_v2_default = {
1187
1118
  type: "boolean",
1188
1119
  description: "If you want to disable the overrides for the site. For example, if you are managing rewrites between applications externally, you may wish to disable the overrides on the toolbar as they will have no effect."
1189
1120
  }
1190
- }
1121
+ },
1122
+ additionalProperties: false
1191
1123
  },
1192
1124
  LocalProxyOptions: {
1193
1125
  type: "object",
@@ -1196,7 +1128,8 @@ var schema_v2_default = {
1196
1128
  type: "number",
1197
1129
  description: "The port number used by the local proxy server.\n\nThe default is `3024`."
1198
1130
  }
1199
- }
1131
+ },
1132
+ additionalProperties: false
1200
1133
  },
1201
1134
  Application: {
1202
1135
  anyOf: [
@@ -1221,7 +1154,8 @@ var schema_v2_default = {
1221
1154
  $ref: "#/definitions/HostConfig"
1222
1155
  }
1223
1156
  },
1224
- required: ["production"]
1157
+ required: ["production"],
1158
+ additionalProperties: false
1225
1159
  },
1226
1160
  Vercel: {
1227
1161
  type: "object",
@@ -1231,7 +1165,8 @@ var schema_v2_default = {
1231
1165
  description: "Vercel project ID"
1232
1166
  }
1233
1167
  },
1234
- required: ["projectId"]
1168
+ required: ["projectId"],
1169
+ additionalProperties: false
1235
1170
  },
1236
1171
  Development: {
1237
1172
  type: "object",
@@ -1247,10 +1182,12 @@ var schema_v2_default = {
1247
1182
  type: "string",
1248
1183
  description: "Optional task to run when starting the development server. Should reference a script in the package.json of the application."
1249
1184
  }
1250
- }
1185
+ },
1186
+ additionalProperties: false
1251
1187
  },
1252
1188
  LocalHostConfig: {
1253
1189
  type: "object",
1190
+ additionalProperties: false,
1254
1191
  properties: {
1255
1192
  host: {
1256
1193
  type: "string",
@@ -1284,7 +1221,8 @@ var schema_v2_default = {
1284
1221
  description: "The port number to be used for the connection. Common values include `80` for HTTP and `443` for HTTPS."
1285
1222
  }
1286
1223
  },
1287
- required: ["host"]
1224
+ required: ["host"],
1225
+ additionalProperties: false
1288
1226
  },
1289
1227
  ChildApplication: {
1290
1228
  type: "object",
@@ -1303,7 +1241,8 @@ var schema_v2_default = {
1303
1241
  $ref: "#/definitions/HostConfig"
1304
1242
  }
1305
1243
  },
1306
- required: ["routing"]
1244
+ required: ["routing"],
1245
+ additionalProperties: false
1307
1246
  },
1308
1247
  Routing: {
1309
1248
  type: "array",
@@ -1329,7 +1268,8 @@ var schema_v2_default = {
1329
1268
  }
1330
1269
  }
1331
1270
  },
1332
- required: ["paths"]
1271
+ required: ["paths"],
1272
+ additionalProperties: false
1333
1273
  },
1334
1274
  ApplicationRouting: {
1335
1275
  type: "object",
@@ -1362,22 +1302,23 @@ var schema_v2_default = {
1362
1302
  description: "Applications that only serve a subset of the microfrontend routes only need to reference the name of the primary application that owns the full microfrontends configuration."
1363
1303
  }
1364
1304
  },
1365
- required: ["partOf", "version"]
1305
+ required: ["partOf", "version"],
1306
+ additionalProperties: false
1366
1307
  }
1367
1308
  }
1368
1309
  };
1369
1310
 
1370
- // src/config-v2/schema/utils/load.ts
1371
- var SCHEMA = schema_v2_default;
1311
+ // src/config/schema/utils/load.ts
1312
+ var SCHEMA = schema_default;
1372
1313
 
1373
- // src/config-v2/microfrontends/server/validation.ts
1314
+ // src/config/microfrontends/server/validation.ts
1374
1315
  function validateSchema(configString) {
1375
1316
  const parsedConfig = (0, import_jsonc_parser3.parse)(configString);
1376
1317
  const ajv = new import_ajv.Ajv();
1377
1318
  const validate = ajv.compile(SCHEMA);
1378
1319
  const isValid = validate(parsedConfig);
1379
1320
  if (!isValid) {
1380
- throw new MicrofrontendError2(
1321
+ throw new MicrofrontendError(
1381
1322
  `Invalid config: ${ajv.errorsText(validate.errors)}`,
1382
1323
  { type: "config", subtype: "does_not_match_schema" }
1383
1324
  );
@@ -1385,7 +1326,7 @@ function validateSchema(configString) {
1385
1326
  return parsedConfig;
1386
1327
  }
1387
1328
 
1388
- // src/config-v2/microfrontends/server/index.ts
1329
+ // src/config/microfrontends/server/index.ts
1389
1330
  var MicrofrontendsServer = class extends Microfrontends {
1390
1331
  /**
1391
1332
  * Writes the configuration to a file.