vercel 59.3.0 → 59.5.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 (122) hide show
  1. package/dist/chunks/{add-4L46WVRT.js → add-MH3WV6PV.js} +12 -8
  2. package/dist/chunks/{add-BBWVXE2R.js → add-W3FFMTX4.js} +15 -11
  3. package/dist/chunks/{add-KOD24LEM.js → add-Z5FM6TFI.js} +18 -14
  4. package/dist/chunks/{build-2SX3XIRI.js → build-VYYFBJL7.js} +13 -10
  5. package/dist/chunks/{chunk-F7OXZLY2.js → chunk-26XDDLXM.js} +2 -2
  6. package/dist/chunks/{chunk-RIB4S2IB.js → chunk-3HZLXCVL.js} +1 -1
  7. package/dist/chunks/{chunk-OISTYQGR.js → chunk-47VQ6H2S.js} +1 -1
  8. package/dist/chunks/{chunk-WODLA275.js → chunk-4JTF6RD7.js} +7 -7
  9. package/dist/chunks/{chunk-3KNPVXJ3.js → chunk-4KD5BYHB.js} +1 -1
  10. package/dist/chunks/{chunk-XLKFJPMT.js → chunk-57RHXXXG.js} +1 -1
  11. package/dist/chunks/chunk-5GGUB4EO.js +31 -0
  12. package/dist/chunks/chunk-5LX2JDZP.js +34 -0
  13. package/dist/chunks/chunk-7Q45OKWR.js +149 -0
  14. package/dist/chunks/{chunk-7PEQVFHI.js → chunk-7XX4ZEOV.js} +2 -2
  15. package/dist/chunks/{chunk-JKQWQA2T.js → chunk-AINIBIP4.js} +1 -1
  16. package/dist/chunks/{chunk-SOFC4MLS.js → chunk-AWCID36T.js} +8 -568
  17. package/dist/chunks/{chunk-KAYSW4CJ.js → chunk-AWSLWAOC.js} +1 -1
  18. package/dist/chunks/{chunk-KDYRLN6H.js → chunk-C5HKWXRR.js} +1 -1
  19. package/dist/chunks/{chunk-2MF3ZAVW.js → chunk-CJV7J7B5.js} +6 -6
  20. package/dist/chunks/chunk-CQJRLNTX.js +104 -0
  21. package/dist/chunks/{chunk-QKO2DGWR.js → chunk-CSCSGSQG.js} +4 -4
  22. package/dist/chunks/{chunk-3L2YLLHC.js → chunk-DWIC7MRV.js} +2 -2
  23. package/dist/chunks/{chunk-KDL2L4KL.js → chunk-E6LFKMI2.js} +13613 -14235
  24. package/dist/chunks/{chunk-GFCTRJI5.js → chunk-EZKW5YJ2.js} +1 -1
  25. package/dist/chunks/{chunk-DAA5RXUK.js → chunk-FA3MO56Q.js} +6 -4
  26. package/dist/chunks/{chunk-CURHMEJX.js → chunk-GUWPUX2Y.js} +5 -5
  27. package/dist/chunks/chunk-GY5I4AYD.js +122 -0
  28. package/dist/chunks/chunk-HGRWPPYB.js +18 -0
  29. package/dist/chunks/{chunk-D35JUCTC.js → chunk-JJQP3PYM.js} +7 -5
  30. package/dist/chunks/{chunk-KBUCAAG6.js → chunk-JNU3DTEV.js} +14 -12
  31. package/dist/chunks/{chunk-J5ZEHLFM.js → chunk-L7CEMAJG.js} +14 -3
  32. package/dist/chunks/{chunk-ANIKVXGZ.js → chunk-LLM3ZNXJ.js} +2 -2
  33. package/dist/chunks/{chunk-Z2G6SO5B.js → chunk-M3OSDZPY.js} +6 -4
  34. package/dist/chunks/{chunk-WNS53IOA.js → chunk-MRMNMFMD.js} +2 -2
  35. package/dist/chunks/{chunk-EG5BSAXD.js → chunk-MTWHQEXI.js} +1 -1
  36. package/dist/chunks/{chunk-WC7IINFV.js → chunk-NFU4XJIR.js} +1 -1
  37. package/dist/chunks/{chunk-6GWLC2IP.js → chunk-NSU2BTRS.js} +3 -3
  38. package/dist/chunks/chunk-OHER4DGX.js +451 -0
  39. package/dist/chunks/{chunk-BBSS3XIW.js → chunk-OQ3C5VXZ.js} +1 -1
  40. package/dist/chunks/{chunk-Q6QCRFTC.js → chunk-PBHBX6UL.js} +2 -2
  41. package/dist/chunks/{chunk-M22O6CYY.js → chunk-POOO7W47.js} +1 -1
  42. package/dist/chunks/{chunk-G55RLNFE.js → chunk-PPUWG2UB.js} +12 -8
  43. package/dist/chunks/chunk-Q2DGFCO7.js +579 -0
  44. package/dist/chunks/{chunk-7GE2K2WR.js → chunk-QG4PCM45.js} +334 -169
  45. package/dist/chunks/{chunk-VAFU7DXZ.js → chunk-RKDCNQ4S.js} +1 -91
  46. package/dist/chunks/{chunk-XI6NJLI4.js → chunk-RZ5NP6HN.js} +2 -2
  47. package/dist/chunks/{chunk-GMWRTZVZ.js → chunk-SLPSPYVR.js} +1 -1
  48. package/dist/chunks/{chunk-VTP6WIQA.js → chunk-TAZ5ZAKG.js} +257 -4
  49. package/dist/chunks/{chunk-ZHRZMQGN.js → chunk-TDXNNIZ6.js} +1 -1
  50. package/dist/chunks/{chunk-NN2W7WFC.js → chunk-TIWAL2YU.js} +6 -6
  51. package/dist/chunks/{chunk-P3BFTZXW.js → chunk-UUVMIXT4.js} +5 -5
  52. package/dist/chunks/{chunk-AAMJ4ZU4.js → chunk-V4YLY44R.js} +3 -17
  53. package/dist/chunks/{chunk-O5GNPPTU.js → chunk-VP5Y3SZG.js} +1 -1
  54. package/dist/chunks/{chunk-YPPWGI3F.js → chunk-VWYNSJXI.js} +7 -7
  55. package/dist/chunks/{chunk-7QVJTI5H.js → chunk-XDGOOW3K.js} +1 -1
  56. package/dist/chunks/{chunk-UMA66MKW.js → chunk-XM3LOQIX.js} +1 -1
  57. package/dist/chunks/{chunk-VDJN4WKH.js → chunk-XRWOTCDO.js} +1 -1
  58. package/dist/chunks/{chunk-MWYQ24FO.js → chunk-YIHOS3ZF.js} +2 -2
  59. package/dist/chunks/{chunk-STPH4Y62.js → chunk-YJUO3EKH.js} +1 -1
  60. package/dist/chunks/chunk-ZKUHCL6O.js +249 -0
  61. package/dist/chunks/{clear-2DMDKLWZ.js → clear-TNGRDA7D.js} +12 -8
  62. package/dist/chunks/{compile-vercel-config-7HZ4UN6R.js → compile-vercel-config-ERLXKKWW.js} +8 -5
  63. package/dist/chunks/config-7EDKML5Q.js +122 -0
  64. package/dist/chunks/{config-CVZ25C54.js → config-H22EE765.js} +15 -11
  65. package/dist/chunks/{delete-QNAGJM6C.js → delete-LORYIZHY.js} +10 -7
  66. package/dist/chunks/{delete-4LQKP5DG.js → delete-Q4S5F2AI.js} +12 -8
  67. package/dist/chunks/{disable-2RBFIZUB.js → disable-HKWCBDJC.js} +10 -7
  68. package/dist/chunks/{discard-UCOSPSUU.js → discard-UCCRF2JQ.js} +10 -7
  69. package/dist/chunks/{edit-QSAO74S4.js → edit-6IM6VRBR.js} +12 -8
  70. package/dist/chunks/{edit-JX73BG3V.js → edit-AWL35PYQ.js} +11 -8
  71. package/dist/chunks/{enable-NDSB4T26.js → enable-GN3D3L3V.js} +10 -7
  72. package/dist/chunks/{export-DB6BIYQJ.js → export-HHRVFALV.js} +10 -7
  73. package/dist/chunks/{image-MKB6II6L.js → image-4DCU4VPP.js} +6 -5
  74. package/dist/chunks/{import-builders-FIQ7QTVG.js → import-builders-DVG3HOTF.js} +9 -6
  75. package/dist/chunks/{inspect-REJXLWLL.js → inspect-B3OWUFLH.js} +12 -8
  76. package/dist/chunks/{inspect-XS2TC7TC.js → inspect-TGOJDKIT.js} +15 -11
  77. package/dist/chunks/{inspect-QWTWAYLS.js → inspect-TUW67CFZ.js} +15 -11
  78. package/dist/chunks/{inspect-IYRKEWTM.js → inspect-VLGKNHJW.js} +12 -8
  79. package/dist/chunks/{inspect-NY6QRX5W.js → inspect-VPME6UC7.js} +15 -11
  80. package/dist/chunks/{list-PXKVKXHG.js → list-2DPKDHRV.js} +15 -11
  81. package/dist/chunks/{list-VQHBVY3Q.js → list-K552ITMK.js} +15 -11
  82. package/dist/chunks/{list-CDCITV4K.js → list-TK2JO7BK.js} +12 -8
  83. package/dist/chunks/{login-PE4JK7A2.js → login-HRWEKW5P.js} +15 -11
  84. package/dist/chunks/{ls-DL2POAY2.js → ls-IOXGXEY4.js} +15 -11
  85. package/dist/chunks/{ls-S67TNMEG.js → ls-JSV2WZVF.js} +15 -10
  86. package/dist/chunks/{ls-SKOQOPK4.js → ls-M5TYGFP5.js} +15 -10
  87. package/dist/chunks/{ls-3GRHYFDM.js → ls-O2WYF5UL.js} +18 -13
  88. package/dist/chunks/ls-TM6NTZEB.js +176 -0
  89. package/dist/chunks/{ls-YHS5IEBJ.js → ls-YIF3KLF3.js} +15 -10
  90. package/dist/chunks/{open-DUN3BTDH.js → open-FWAVEWGU.js} +12 -8
  91. package/dist/chunks/{permissions-VLIZYINB.js → permissions-DPFYL47Z.js} +9 -8
  92. package/dist/chunks/{publish-36BIJPLN.js → publish-63CGFKQR.js} +10 -7
  93. package/dist/chunks/{push-5NTQV3EC.js → push-T5ZTBW3P.js} +13 -10
  94. package/dist/chunks/{query-ONR2W7HS.js → query-B6O3EMEV.js} +14 -10
  95. package/dist/chunks/{reorder-YKAT4XG3.js → reorder-ANV4NMKH.js} +10 -7
  96. package/dist/chunks/{reply-DH4ZPEXT.js → reply-C73KGOCG.js} +12 -8
  97. package/dist/chunks/{resolve-446IVH6V.js → resolve-IHSIVPEE.js} +12 -8
  98. package/dist/chunks/{restore-HA6TSOOE.js → restore-GSUNXP2O.js} +10 -7
  99. package/dist/chunks/{rm-BCPJUK2C.js → rm-4O74PS4Q.js} +12 -8
  100. package/dist/chunks/{rm-IKYJI7MP.js → rm-M7IJC2WZ.js} +12 -8
  101. package/dist/chunks/{rm-EG35766L.js → rm-PRINF4OU.js} +15 -11
  102. package/dist/chunks/rm-RV5SQFQA.js +317 -0
  103. package/dist/chunks/{rm-COV73VE4.js → rm-YDTK5ESZ.js} +13 -9
  104. package/dist/chunks/{rule-inspect-FQ2635LY.js → rule-inspect-ZZC53FLP.js} +15 -11
  105. package/dist/chunks/{rules-PBOQISWV.js → rules-SAOSSGFI.js} +10 -9
  106. package/dist/chunks/{schema-LUVFYPWN.js → schema-23ZFAKDU.js} +7 -5
  107. package/dist/chunks/{schema-4CDJVH7T.js → schema-2Q3QRMRO.js} +11 -8
  108. package/dist/chunks/set-L47ZCZBJ.js +243 -0
  109. package/dist/chunks/{tags-HNOL4JXL.js → tags-2TWLM77N.js} +5 -4
  110. package/dist/chunks/{types-AJHILHO5.js → types-G3PEUIJH.js} +11 -7
  111. package/dist/chunks/{update-ZIGVLUYG.js → update-SZH2VBD6.js} +16 -12
  112. package/dist/commands/build/index.js +30 -22
  113. package/dist/commands/deploy/index.js +41 -32
  114. package/dist/commands/dev/index.js +82 -39
  115. package/dist/commands/env/index.js +185 -253
  116. package/dist/commands/link/index.js +25 -20
  117. package/dist/commands/list/index.js +19 -12
  118. package/dist/commands-bulk.js +3672 -1717
  119. package/dist/help.js +1 -1
  120. package/dist/index.js +34 -28
  121. package/dist/version.mjs +1 -1
  122. package/package.json +48 -47
@@ -4,17 +4,6 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import {
8
- getCommandName,
9
- parseRetryAfterHeaderAsMillis,
10
- require_bytes
11
- } from "./chunk-SOFC4MLS.js";
12
- import {
13
- output_manager_default
14
- } from "./chunk-OX7KI3LF.js";
15
- import {
16
- require_source
17
- } from "./chunk-S7KYDPEM.js";
18
7
  import {
19
8
  __commonJS,
20
9
  __require,
@@ -1876,89 +1865,10 @@ function table(rows, opts) {
1876
1865
  return table2.toString();
1877
1866
  }
1878
1867
 
1879
- // src/util/output/error.ts
1880
- var import_chalk = __toESM(require_source(), 1);
1881
-
1882
- // src/util/error.ts
1883
- var import_bytes = __toESM(require_bytes(), 1);
1884
- async function responseError(res, fallbackMessage = null, parsedBody = {}) {
1885
- let message = "";
1886
- let bodyError;
1887
- if (res.status >= 400 && res.status < 500) {
1888
- let body;
1889
- try {
1890
- body = await res.json();
1891
- } catch (_err) {
1892
- body = parsedBody;
1893
- }
1894
- bodyError = body.error || body.err || {};
1895
- message = bodyError.message;
1896
- }
1897
- if (!message) {
1898
- message = fallbackMessage === null ? "Response Error" : fallbackMessage;
1899
- }
1900
- const err = new Error(`${message} (${res.status})`);
1901
- err.status = res.status;
1902
- err.serverMessage = message;
1903
- if (bodyError) {
1904
- for (const field of Object.keys(bodyError)) {
1905
- if (field !== "message") {
1906
- err[field] = bodyError[field];
1907
- }
1908
- }
1909
- }
1910
- if (res.status === 429 || res.status === 503) {
1911
- const parsed = parseRetryAfterHeaderAsMillis(
1912
- res.headers.get("Retry-After")
1913
- );
1914
- err.retryAfterMs = parsed ?? (res.status === 429 ? 0 : void 0);
1915
- }
1916
- return err;
1917
- }
1918
- function toEnumerableError(err) {
1919
- const enumerable = {};
1920
- enumerable.name = err.name;
1921
- for (const key of Object.getOwnPropertyNames(err)) {
1922
- enumerable[key] = err[key];
1923
- }
1924
- return enumerable;
1925
- }
1926
- function printError(error2) {
1927
- if (typeof error2 === "string") {
1928
- error2 = new Error(error2);
1929
- }
1930
- const apiError = error2;
1931
- const { message, stack, status, code, sizeLimit } = apiError;
1932
- output_manager_default.debug(`handling error: ${stack}`);
1933
- if (message === "User force closed the prompt with 0 null") {
1934
- return;
1935
- }
1936
- if (status === 403) {
1937
- output_manager_default.error(
1938
- message || `Authentication error. Run ${getCommandName("login")} to log-in again.`
1939
- );
1940
- } else if (status === 429) {
1941
- output_manager_default.error(message);
1942
- } else if (code === "size_limit_exceeded") {
1943
- output_manager_default.error(`File size limit exceeded (${(0, import_bytes.default)(sizeLimit)})`);
1944
- } else if (message) {
1945
- output_manager_default.prettyError(apiError);
1946
- } else if (status === 500) {
1947
- output_manager_default.error("Unexpected server error. Please retry.");
1948
- } else if (code === "USER_ABORT") {
1949
- output_manager_default.log("Canceled");
1950
- } else {
1951
- output_manager_default.error(`Unexpected error. Please try again later. (${message})`);
1952
- }
1953
- }
1954
-
1955
1868
  export {
1956
1869
  require_strip_ansi,
1957
1870
  require_string_width,
1958
1871
  require_cli_table3,
1959
1872
  noBorderChars,
1960
- table,
1961
- responseError,
1962
- toEnumerableError,
1963
- printError
1873
+ table
1964
1874
  };
@@ -10,10 +10,10 @@ import {
10
10
  import {
11
11
  noBorderChars,
12
12
  require_cli_table3
13
- } from "./chunk-VAFU7DXZ.js";
13
+ } from "./chunk-RKDCNQ4S.js";
14
14
  import {
15
15
  globalCommandOptions
16
- } from "./chunk-SOFC4MLS.js";
16
+ } from "./chunk-Q2DGFCO7.js";
17
17
  import {
18
18
  require_source
19
19
  } from "./chunk-S7KYDPEM.js";
@@ -11,7 +11,7 @@ import {
11
11
  packageName,
12
12
  projectOption,
13
13
  yesOption
14
- } from "./chunk-SOFC4MLS.js";
14
+ } from "./chunk-Q2DGFCO7.js";
15
15
 
16
16
  // src/commands/comments/command.ts
17
17
  var commentsProjectOption = {
@@ -6,9 +6,10 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  require_dist as require_dist2,
9
- require_dist3,
9
+ require_dist2 as require_dist3,
10
+ require_dist4,
10
11
  require_lib
11
- } from "./chunk-KDL2L4KL.js";
12
+ } from "./chunk-E6LFKMI2.js";
12
13
  import {
13
14
  output_manager_default,
14
15
  require_dist
@@ -10145,7 +10146,6 @@ var require_write_build_result = __commonJS({
10145
10146
  var import_mime_types = __toESM2(require_mime_types());
10146
10147
  var import_path = __require("path");
10147
10148
  var import_build_utils = __require("@vercel/build-utils");
10148
- var import_fs_detectors = require_dist3();
10149
10149
  var import_promisepipe = __toESM2(require_promisepipe());
10150
10150
  var import_merge = require_merge();
10151
10151
  var import_unzip = require_unzip();
@@ -10515,7 +10515,7 @@ var require_write_build_result = __commonJS({
10515
10515
  service
10516
10516
  );
10517
10517
  const ext = (0, import_path.extname)(src);
10518
- const path = service && (0, import_build_utils.isExperimentalServiceV2)(service) ? "index" : service && typeof service.runtime === "string" ? stripDuplicateSlashes((0, import_fs_detectors.getInternalServiceFunctionPath)(service.name)) : stripDuplicateSlashes(
10518
+ const path = service && (0, import_build_utils.isExperimentalServiceV2)(service) ? "index" : service && typeof service.runtime === "string" ? stripDuplicateSlashes((0, import_build_utils.getInternalServiceFunctionPath)(service.name)) : stripDuplicateSlashes(
10519
10519
  build.config?.zeroConfig ? src.substring(0, src.length - ext.length) : src
10520
10520
  );
10521
10521
  if (isContainerImage(output)) {
@@ -10874,6 +10874,258 @@ var require_write_build_result = __commonJS({
10874
10874
  }
10875
10875
  });
10876
10876
 
10877
+ // ../../internals/cli-builder-integration/dist/get-services-builders.js
10878
+ var require_get_services_builders = __commonJS({
10879
+ "../../internals/cli-builder-integration/dist/get-services-builders.js"(exports, module) {
10880
+ "use strict";
10881
+ var __defProp = Object.defineProperty;
10882
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10883
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10884
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10885
+ var __export = (target, all) => {
10886
+ for (var name in all)
10887
+ __defProp(target, name, { get: all[name], enumerable: true });
10888
+ };
10889
+ var __copyProps = (to, from, except, desc) => {
10890
+ if (from && typeof from === "object" || typeof from === "function") {
10891
+ for (let key of __getOwnPropNames(from))
10892
+ if (!__hasOwnProp.call(to, key) && key !== except)
10893
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10894
+ }
10895
+ return to;
10896
+ };
10897
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
10898
+ var get_services_builders_exports = {};
10899
+ __export(get_services_builders_exports, {
10900
+ getServicesBuilders: () => getServicesBuilders,
10901
+ warnIgnoredDirectories: () => warnIgnoredDirectories
10902
+ });
10903
+ module.exports = __toCommonJS(get_services_builders_exports);
10904
+ var import_fs_detectors = require_dist3();
10905
+ var import_service_topology = require_dist4();
10906
+ function isExperimentalServicesAutoDetectionEnabled() {
10907
+ const env = process.env.VERCEL_USE_EXPERIMENTAL_SERVICES;
10908
+ return env === "1" || env?.toLowerCase() === "true";
10909
+ }
10910
+ async function getServicesBuilders(options) {
10911
+ const {
10912
+ workPath,
10913
+ configuredServices,
10914
+ configuredServicesType,
10915
+ projectFramework
10916
+ } = options;
10917
+ const hasServiceDefinitions = configuredServices != null && Object.keys(configuredServices).length > 0;
10918
+ if (projectFramework === "services" && !hasServiceDefinitions && !isExperimentalServicesAutoDetectionEnabled()) {
10919
+ return {
10920
+ builders: null,
10921
+ errors: [
10922
+ {
10923
+ code: "MISSING_SERVICES",
10924
+ message: 'Project framework is set to "services", but no services are declared. Add `services` to vercel.json with at least one service, or change the project framework setting.'
10925
+ }
10926
+ ],
10927
+ warnings: [],
10928
+ hostRewriteRoutes: null,
10929
+ defaultRoutes: null,
10930
+ fallbackRoutes: null,
10931
+ redirectRoutes: null,
10932
+ rewriteRoutes: null,
10933
+ errorRoutes: null
10934
+ };
10935
+ }
10936
+ if (!workPath) {
10937
+ return {
10938
+ builders: null,
10939
+ errors: [
10940
+ {
10941
+ code: "MISSING_WORK_PATH",
10942
+ message: "workPath is required for services detection."
10943
+ }
10944
+ ],
10945
+ warnings: [],
10946
+ hostRewriteRoutes: null,
10947
+ defaultRoutes: null,
10948
+ fallbackRoutes: null,
10949
+ redirectRoutes: null,
10950
+ rewriteRoutes: null,
10951
+ errorRoutes: null
10952
+ };
10953
+ }
10954
+ const fs = new import_fs_detectors.LocalFileSystemDetector(workPath);
10955
+ const result = await (0, import_service_topology.detectServices)({
10956
+ fs,
10957
+ configuredServices,
10958
+ configuredServicesType
10959
+ });
10960
+ const warningResponses = result.warnings.map((w) => ({
10961
+ code: w.code,
10962
+ message: w.message
10963
+ }));
10964
+ if (result.errors.length > 0) {
10965
+ return {
10966
+ builders: null,
10967
+ errors: result.errors.map((e) => ({
10968
+ code: e.code,
10969
+ message: e.message
10970
+ })),
10971
+ warnings: warningResponses,
10972
+ hostRewriteRoutes: null,
10973
+ defaultRoutes: null,
10974
+ fallbackRoutes: null,
10975
+ redirectRoutes: null,
10976
+ rewriteRoutes: null,
10977
+ errorRoutes: null
10978
+ };
10979
+ }
10980
+ if (result.services.length === 0) {
10981
+ return {
10982
+ builders: null,
10983
+ errors: [
10984
+ {
10985
+ code: "NO_SERVICES_CONFIGURED",
10986
+ message: "No services configured. Add `services` to vercel.json."
10987
+ }
10988
+ ],
10989
+ warnings: warningResponses,
10990
+ hostRewriteRoutes: null,
10991
+ defaultRoutes: null,
10992
+ fallbackRoutes: null,
10993
+ redirectRoutes: null,
10994
+ rewriteRoutes: null,
10995
+ errorRoutes: null
10996
+ };
10997
+ }
10998
+ const builders = result.services.map((service) => service.builder);
10999
+ return {
11000
+ builders: builders.length > 0 ? builders : null,
11001
+ errors: null,
11002
+ warnings: warningResponses,
11003
+ hostRewriteRoutes: result.routes.hostRewrites.length > 0 ? result.routes.hostRewrites : null,
11004
+ defaultRoutes: result.routes.defaults.length > 0 ? result.routes.defaults : null,
11005
+ fallbackRoutes: result.routes.fallbacks.length > 0 ? result.routes.fallbacks : null,
11006
+ redirectRoutes: [],
11007
+ rewriteRoutes: result.routes.rewrites.length > 0 || result.routes.workers.length > 0 || result.routes.crons.length > 0 ? [
11008
+ ...result.routes.rewrites,
11009
+ ...result.routes.workers,
11010
+ ...result.routes.crons
11011
+ ] : null,
11012
+ errorRoutes: [],
11013
+ serviceRewrites: result.rewrites.length > 0 ? result.rewrites : void 0,
11014
+ experimentalServicesV2: result.experimentalServicesV2,
11015
+ services: result.services,
11016
+ useImplicitEnvInjection: result.useImplicitEnvInjection
11017
+ };
11018
+ }
11019
+ function warnIgnoredDirectories(files, configuredServices) {
11020
+ const warnings = [];
11021
+ if (files.some((f) => f.startsWith("api/"))) {
11022
+ const serviceCoversApi = Object.values(configuredServices).some((service) => {
11023
+ const root = service.root ?? ".";
11024
+ const entrypoint = service.entrypoint ?? "";
11025
+ return root === "api" || root.startsWith("api/") || root === "." && entrypoint.startsWith("api/");
11026
+ });
11027
+ if (!serviceCoversApi) {
11028
+ warnings.push({
11029
+ code: "api_dir_ignored",
11030
+ message: "The `api/` directory will not be built because services are configured. To serve these files, declare them as a service in your `vercel.json`."
11031
+ });
11032
+ }
11033
+ }
11034
+ return warnings;
11035
+ }
11036
+ }
11037
+ });
11038
+
11039
+ // ../../internals/cli-builder-integration/dist/detect-builders-with-services.js
11040
+ var require_detect_builders_with_services = __commonJS({
11041
+ "../../internals/cli-builder-integration/dist/detect-builders-with-services.js"(exports, module) {
11042
+ "use strict";
11043
+ var __defProp = Object.defineProperty;
11044
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11045
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11046
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11047
+ var __export = (target, all) => {
11048
+ for (var name in all)
11049
+ __defProp(target, name, { get: all[name], enumerable: true });
11050
+ };
11051
+ var __copyProps = (to, from, except, desc) => {
11052
+ if (from && typeof from === "object" || typeof from === "function") {
11053
+ for (let key of __getOwnPropNames(from))
11054
+ if (!__hasOwnProp.call(to, key) && key !== except)
11055
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11056
+ }
11057
+ return to;
11058
+ };
11059
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
11060
+ var detect_builders_with_services_exports = {};
11061
+ __export(detect_builders_with_services_exports, {
11062
+ detectBuildersWithServices: () => detectBuildersWithServices
11063
+ });
11064
+ module.exports = __toCommonJS(detect_builders_with_services_exports);
11065
+ var import_fs_detectors = require_dist3();
11066
+ var import_get_services_builders = require_get_services_builders();
11067
+ async function detectBuildersWithServices(files, pkg, options = {}) {
11068
+ const {
11069
+ experimentalServices: experimentalServicesV1,
11070
+ services,
11071
+ experimentalServicesV2,
11072
+ projectSettings = {}
11073
+ } = options;
11074
+ if (services != null && experimentalServicesV2 != null) {
11075
+ return {
11076
+ builders: null,
11077
+ errors: [
11078
+ {
11079
+ code: "SERVICES_AND_EXPERIMENTAL_SERVICES_V2",
11080
+ message: "The `services` option cannot be used in conjunction with its deprecated alias `experimentalServicesV2`. Please use only `services`."
11081
+ }
11082
+ ],
11083
+ warnings: [],
11084
+ defaultRoutes: null,
11085
+ redirectRoutes: null,
11086
+ rewriteRoutes: null,
11087
+ errorRoutes: null
11088
+ };
11089
+ }
11090
+ const proxyError = (0, import_fs_detectors.validateProxy)(options, files, projectSettings.framework);
11091
+ if (proxyError) {
11092
+ return {
11093
+ builders: null,
11094
+ errors: [proxyError],
11095
+ warnings: [],
11096
+ defaultRoutes: null,
11097
+ redirectRoutes: null,
11098
+ rewriteRoutes: null,
11099
+ errorRoutes: null
11100
+ };
11101
+ }
11102
+ const servicesConfig = services ?? experimentalServicesV2;
11103
+ const configuredServices = servicesConfig ?? experimentalServicesV1;
11104
+ const configuredServicesType = servicesConfig ? services ? "services" : "experimentalServicesV2" : "experimentalServices";
11105
+ const hasServicesConfig = configuredServices != null && typeof configuredServices === "object";
11106
+ if (!hasServicesConfig && projectSettings.framework !== "services") {
11107
+ return (0, import_fs_detectors.detectBuilders)(files, pkg, options);
11108
+ }
11109
+ const result = await (0, import_get_services_builders.getServicesBuilders)({
11110
+ workPath: options.workPath,
11111
+ configuredServices,
11112
+ configuredServicesType,
11113
+ projectFramework: projectSettings.framework
11114
+ });
11115
+ if (configuredServices != null) {
11116
+ result.warnings.push(...(0, import_get_services_builders.warnIgnoredDirectories)(files, configuredServices));
11117
+ }
11118
+ if (!result.errors && options.proxy) {
11119
+ result.builders = [
11120
+ (0, import_fs_detectors.getProxyBuilder)(options.proxy, options.tag, options.functions),
11121
+ ...result.builders ?? []
11122
+ ];
11123
+ }
11124
+ return result;
11125
+ }
11126
+ }
11127
+ });
11128
+
10877
11129
  // ../../internals/cli-builder-integration/dist/service-schedules.js
10878
11130
  var require_service_schedules = __commonJS({
10879
11131
  "../../internals/cli-builder-integration/dist/service-schedules.js"(exports, module) {
@@ -11051,6 +11303,7 @@ var {
11051
11303
  } = (0, import_write_build_result.createWriteBuildResult)(output_manager_default);
11052
11304
 
11053
11305
  export {
11306
+ require_detect_builders_with_services,
11054
11307
  require_mime_types,
11055
11308
  require_write_build_result,
11056
11309
  require_service_schedules,
@@ -8,7 +8,7 @@ import {
8
8
  VERCEL_DIR,
9
9
  VERCEL_DIR_PROJECT,
10
10
  require_lib
11
- } from "./chunk-KDL2L4KL.js";
11
+ } from "./chunk-E6LFKMI2.js";
12
12
  import {
13
13
  require_dist
14
14
  } from "./chunk-OX7KI3LF.js";
@@ -6,25 +6,25 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  loginCommand
9
- } from "./chunk-7GE2K2WR.js";
9
+ } from "./chunk-QG4PCM45.js";
10
10
  import {
11
11
  help
12
- } from "./chunk-XI6NJLI4.js";
12
+ } from "./chunk-RZ5NP6HN.js";
13
13
  import {
14
14
  login
15
- } from "./chunk-KDL2L4KL.js";
15
+ } from "./chunk-E6LFKMI2.js";
16
16
  import {
17
17
  TelemetryClient
18
18
  } from "./chunk-CYNB6LL4.js";
19
19
  import {
20
20
  printError
21
- } from "./chunk-VAFU7DXZ.js";
21
+ } from "./chunk-CQJRLNTX.js";
22
22
  import {
23
23
  parseArguments
24
- } from "./chunk-XLKFJPMT.js";
24
+ } from "./chunk-57RHXXXG.js";
25
25
  import {
26
26
  getFlagsSpecification
27
- } from "./chunk-SOFC4MLS.js";
27
+ } from "./chunk-Q2DGFCO7.js";
28
28
  import {
29
29
  output_manager_default
30
30
  } from "./chunk-OX7KI3LF.js";
@@ -6,26 +6,26 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  resolveProjectContext
9
- } from "./chunk-KDL2L4KL.js";
9
+ } from "./chunk-E6LFKMI2.js";
10
10
  import {
11
11
  AGENT_REASON,
12
12
  AGENT_STATUS,
13
13
  buildCommandWithYes,
14
14
  outputAgentError,
15
15
  withGlobalFlags
16
- } from "./chunk-J5ZEHLFM.js";
16
+ } from "./chunk-L7CEMAJG.js";
17
17
  import {
18
18
  printError
19
- } from "./chunk-VAFU7DXZ.js";
19
+ } from "./chunk-CQJRLNTX.js";
20
20
  import {
21
21
  parseArguments
22
- } from "./chunk-XLKFJPMT.js";
22
+ } from "./chunk-57RHXXXG.js";
23
23
  import {
24
24
  getCommandName,
25
25
  getCommandNamePlain,
26
26
  getFlagsSpecification,
27
27
  getGlobalFlagsFromArgs
28
- } from "./chunk-SOFC4MLS.js";
28
+ } from "./chunk-Q2DGFCO7.js";
29
29
  import {
30
30
  output_manager_default
31
31
  } from "./chunk-OX7KI3LF.js";
@@ -6,11 +6,10 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  STANDARD_ENVIRONMENTS
9
- } from "./chunk-KDL2L4KL.js";
9
+ } from "./chunk-E6LFKMI2.js";
10
10
  import {
11
- getCommandName,
12
11
  require_lib
13
- } from "./chunk-SOFC4MLS.js";
12
+ } from "./chunk-Q2DGFCO7.js";
14
13
  import {
15
14
  output_manager_default
16
15
  } from "./chunk-OX7KI3LF.js";
@@ -36,19 +35,6 @@ function formatEnvironment(orgSlug, projectSlug, environment) {
36
35
  );
37
36
  }
38
37
 
39
- // src/util/validate-ls-args.ts
40
- var import_chalk2 = __toESM(require_source(), 1);
41
- function validateLsArgs(options) {
42
- const { commandName, args, maxArgs = 0, exitCode = 1, usageString } = options;
43
- if (args.length > maxArgs) {
44
- const usage = usageString || getCommandName(commandName);
45
- output_manager_default.error(`Invalid number of arguments. Usage: ${import_chalk2.default.cyan(usage)}`);
46
- return exitCode;
47
- }
48
- return 0;
49
- }
50
-
51
38
  export {
52
- formatEnvironment,
53
- validateLsArgs
39
+ formatEnvironment
54
40
  };
@@ -13,7 +13,7 @@ import {
13
13
  nextOption,
14
14
  packageName,
15
15
  yesOption
16
- } from "./chunk-SOFC4MLS.js";
16
+ } from "./chunk-Q2DGFCO7.js";
17
17
 
18
18
  // src/commands/list/command.ts
19
19
  var listCommand = {
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  writeProjectSettings
9
- } from "./chunk-ZHRZMQGN.js";
9
+ } from "./chunk-TDXNNIZ6.js";
10
10
  import {
11
11
  autoInstallVercelPlugin
12
12
  } from "./chunk-HT2XWSAJ.js";
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-64IF634X.js";
16
16
  import {
17
17
  pullCommand
18
- } from "./chunk-7PEQVFHI.js";
18
+ } from "./chunk-7XX4ZEOV.js";
19
19
  import {
20
20
  help
21
- } from "./chunk-XI6NJLI4.js";
21
+ } from "./chunk-RZ5NP6HN.js";
22
22
  import {
23
23
  VERCEL_DIR,
24
24
  VERCEL_DIR_PROJECT,
@@ -26,19 +26,19 @@ import {
26
26
  envPullCommandLogic,
27
27
  humanizePath,
28
28
  parseTarget
29
- } from "./chunk-KDL2L4KL.js";
29
+ } from "./chunk-E6LFKMI2.js";
30
30
  import {
31
31
  TelemetryClient
32
32
  } from "./chunk-CYNB6LL4.js";
33
33
  import {
34
34
  printError
35
- } from "./chunk-VAFU7DXZ.js";
35
+ } from "./chunk-CQJRLNTX.js";
36
36
  import {
37
37
  parseArguments
38
- } from "./chunk-XLKFJPMT.js";
38
+ } from "./chunk-57RHXXXG.js";
39
39
  import {
40
40
  getFlagsSpecification
41
- } from "./chunk-SOFC4MLS.js";
41
+ } from "./chunk-Q2DGFCO7.js";
42
42
  import {
43
43
  emoji,
44
44
  output_manager_default,
@@ -9,7 +9,7 @@ import {
9
9
  packageName,
10
10
  projectOption,
11
11
  yesOption
12
- } from "./chunk-SOFC4MLS.js";
12
+ } from "./chunk-Q2DGFCO7.js";
13
13
 
14
14
  // src/commands/dev/command.ts
15
15
  var devCommand = {
@@ -10,7 +10,7 @@ import {
10
10
  packageName,
11
11
  projectOption,
12
12
  yesOption
13
- } from "./chunk-SOFC4MLS.js";
13
+ } from "./chunk-Q2DGFCO7.js";
14
14
 
15
15
  // src/commands/alerts/rules/command.ts
16
16
  var scopeOptions = [
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  require_strip_ansi
9
- } from "./chunk-VAFU7DXZ.js";
9
+ } from "./chunk-RKDCNQ4S.js";
10
10
  import {
11
11
  __toESM
12
12
  } from "./chunk-TZ2YI2VH.js";
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-A3NYPUKZ.js";
17
17
  import {
18
18
  ellipsizeMiddle
19
- } from "./chunk-VDJN4WKH.js";
19
+ } from "./chunk-XRWOTCDO.js";
20
20
  import {
21
21
  elapsed
22
22
  } from "./chunk-VXYGCOKL.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-GGP5R3FU.js";
26
26
  import {
27
27
  table
28
- } from "./chunk-VAFU7DXZ.js";
28
+ } from "./chunk-RKDCNQ4S.js";
29
29
  import {
30
30
  require_source
31
31
  } from "./chunk-S7KYDPEM.js";
@@ -63,7 +63,7 @@ var help = () => `
63
63
  buy [cmd] Purchase Vercel products for your team
64
64
  certs [cmd] Manages your SSL certificates
65
65
  changelog [cmd] Show the latest Vercel product updates
66
- connect [cmd] Manage connectors [beta]
66
+ connect [cmd] Manage connectors
67
67
  contract Show contract information for billing periods
68
68
  cron | crons [cmd] Manage cron jobs for a project [beta]
69
69
  curl [url|path] cURL requests with automatic deployment protection bypass [beta]