vercel 54.16.0 → 54.17.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 (50) hide show
  1. package/dist/chunks/{add-ODBKI7EV.js → add-QQY6QOTO.js} +4 -4
  2. package/dist/chunks/{chunk-FBYYZKN3.js → chunk-2F6JT2OC.js} +1 -1
  3. package/dist/chunks/{chunk-O6YJBWWC.js → chunk-4D42VZRX.js} +1 -1
  4. package/dist/chunks/{chunk-HL5ZRVF2.js → chunk-5X7FBWLF.js} +4 -4
  5. package/dist/chunks/{chunk-7CTLNKAS.js → chunk-7AQDR2RX.js} +1 -1
  6. package/dist/chunks/{chunk-UI2T3GI4.js → chunk-7B44AIGE.js} +2 -2
  7. package/dist/chunks/{chunk-LJXYGWOY.js → chunk-A4B4JQVP.js} +2 -2
  8. package/dist/chunks/{chunk-VLQBXXOQ.js → chunk-BRLY3Q4U.js} +18 -3
  9. package/dist/chunks/{chunk-NVITPK2U.js → chunk-DDTKG4J3.js} +1 -1
  10. package/dist/chunks/{chunk-HXAMK45D.js → chunk-E6FCE2XJ.js} +1 -1
  11. package/dist/chunks/{chunk-Q4ZRBN2A.js → chunk-HJ2TEW5Y.js} +1 -1
  12. package/dist/chunks/{chunk-INFYZRHS.js → chunk-KTX4RQFM.js} +235 -58
  13. package/dist/chunks/{chunk-RCUMYP4L.js → chunk-KWCZRH7N.js} +5 -8
  14. package/dist/chunks/{chunk-BGQPLZFA.js → chunk-LGR4JRFA.js} +4 -4
  15. package/dist/chunks/{chunk-ULNWA6GY.js → chunk-MS3WAXLU.js} +1 -1
  16. package/dist/chunks/{chunk-MSWXRAHA.js → chunk-NRIXI6V5.js} +1 -1
  17. package/dist/chunks/{chunk-BIHRICRM.js → chunk-P5AZW6W6.js} +8 -2
  18. package/dist/chunks/{chunk-76QQSALN.js → chunk-V7JDSYIZ.js} +3 -3
  19. package/dist/chunks/{chunk-U2NYO6GP.js → chunk-WJPWCLMH.js} +1 -1
  20. package/dist/chunks/{chunk-KJMSI2CT.js → chunk-YW7AYO7N.js} +1 -1
  21. package/dist/chunks/{compile-vercel-config-7THB6MTJ.js → compile-vercel-config-D2OQCK4B.js} +1 -1
  22. package/dist/chunks/{delete-USWDARFF.js → delete-VMW7FORM.js} +2 -2
  23. package/dist/chunks/{disable-K6B26MC2.js → disable-BDFZELDL.js} +2 -2
  24. package/dist/chunks/{discard-2T7HZCGR.js → discard-WIN3BOXR.js} +2 -2
  25. package/dist/chunks/{edit-2CC2WAO4.js → edit-IZQX4XAG.js} +3 -3
  26. package/dist/chunks/{enable-KEZA6F4T.js → enable-RFODZ2L7.js} +2 -2
  27. package/dist/chunks/{export-PE2T4HYP.js → export-5CCLXZYT.js} +2 -2
  28. package/dist/chunks/{inspect-TQSHD4MH.js → inspect-GEUUTDBY.js} +3 -3
  29. package/dist/chunks/{list-IDTF5TWY.js → list-H35AGNO2.js} +2 -2
  30. package/dist/chunks/{list-AU6URG3E.js → list-JIYDXQDJ.js} +3 -3
  31. package/dist/chunks/{ls-XOAWRTNQ.js → ls-WPNFJAS6.js} +4 -4
  32. package/dist/chunks/{publish-G42C77TP.js → publish-K7OPKXYC.js} +2 -2
  33. package/dist/chunks/{query-YTBD7YLX.js → query-MAN4NKU4.js} +2 -2
  34. package/dist/chunks/{reorder-BDOOUURL.js → reorder-GQ7BOQA7.js} +2 -2
  35. package/dist/chunks/{restore-ENUHC25O.js → restore-MODYFJSP.js} +2 -2
  36. package/dist/chunks/{rm-ALWF3NBL.js → rm-A45OKS6U.js} +4 -4
  37. package/dist/chunks/{rule-inspect-BV6MC7PG.js → rule-inspect-HJCERQHK.js} +4 -4
  38. package/dist/chunks/{rules-IGG7M2AC.js → rules-UNL3IB4P.js} +6 -6
  39. package/dist/chunks/{schema-ZYJOJIGL.js → schema-WOW2BATT.js} +2 -2
  40. package/dist/chunks/{update-I3WE3IQJ.js → update-MOM4T2RN.js} +4 -4
  41. package/dist/commands/build/index.js +9 -9
  42. package/dist/commands/deploy/index.js +158 -11
  43. package/dist/commands/dev/index.js +50 -17
  44. package/dist/commands/env/index.js +4 -4
  45. package/dist/commands/link/index.js +7 -7
  46. package/dist/commands/list/index.js +3 -3
  47. package/dist/commands-bulk.js +31 -31
  48. package/dist/index.js +8 -8
  49. package/dist/version.mjs +1 -1
  50. package/package.json +19 -19
@@ -9,8 +9,8 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesCollectionPath
12
- } from "./chunk-Q4ZRBN2A.js";
13
- import "./chunk-UI2T3GI4.js";
12
+ } from "./chunk-HJ2TEW5Y.js";
13
+ import "./chunk-7B44AIGE.js";
14
14
  import "./chunk-D7MGZH35.js";
15
15
  import {
16
16
  validateJsonOutput
@@ -21,8 +21,8 @@ import {
21
21
  import {
22
22
  AGENT_REASON
23
23
  } from "./chunk-QH7WYDEP.js";
24
- import "./chunk-FBYYZKN3.js";
25
- import "./chunk-INFYZRHS.js";
24
+ import "./chunk-2F6JT2OC.js";
25
+ import "./chunk-KTX4RQFM.js";
26
26
  import "./chunk-Q77ALSXR.js";
27
27
  import {
28
28
  buildCommandWithGlobalFlags,
@@ -11,7 +11,7 @@ import {
11
11
  getTeamById,
12
12
  getUser,
13
13
  getVercelDirectory
14
- } from "./chunk-INFYZRHS.js";
14
+ } from "./chunk-KTX4RQFM.js";
15
15
  import {
16
16
  TeamDeleted
17
17
  } from "./chunk-LN6B7ZI3.js";
@@ -8,7 +8,7 @@ import {
8
8
  formatCondition,
9
9
  formatTransform,
10
10
  isTargetTransform
11
- } from "./chunk-U2NYO6GP.js";
11
+ } from "./chunk-WJPWCLMH.js";
12
12
  import {
13
13
  output_manager_default
14
14
  } from "./chunk-Z5SBJH6L.js";
@@ -7,17 +7,17 @@ const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  getUpdateCommandInfo,
9
9
  isGlobal
10
- } from "./chunk-HXAMK45D.js";
10
+ } from "./chunk-E6FCE2XJ.js";
11
11
  import {
12
12
  getGlobalPathConfig,
13
13
  progress,
14
14
  writeToConfigFile
15
- } from "./chunk-LJXYGWOY.js";
15
+ } from "./chunk-A4B4JQVP.js";
16
16
  import {
17
17
  apiCommand,
18
18
  listSubcommand2 as listSubcommand,
19
19
  loginCommand
20
- } from "./chunk-VLQBXXOQ.js";
20
+ } from "./chunk-BRLY3Q4U.js";
21
21
  import {
22
22
  require_semver
23
23
  } from "./chunk-IB5L4LKZ.js";
@@ -26,7 +26,7 @@ import {
26
26
  } from "./chunk-3NR6OYDV.js";
27
27
  import {
28
28
  login
29
- } from "./chunk-INFYZRHS.js";
29
+ } from "./chunk-KTX4RQFM.js";
30
30
  import {
31
31
  TelemetryClient,
32
32
  isNativeBinaryInstall
@@ -18,7 +18,7 @@ import {
18
18
  require_lib,
19
19
  require_minimatch,
20
20
  require_pluralize
21
- } from "./chunk-INFYZRHS.js";
21
+ } from "./chunk-KTX4RQFM.js";
22
22
  import {
23
23
  CantParseJSONFile,
24
24
  cmd,
@@ -12,11 +12,11 @@ import {
12
12
  } from "./chunk-QH7WYDEP.js";
13
13
  import {
14
14
  getScope
15
- } from "./chunk-FBYYZKN3.js";
15
+ } from "./chunk-2F6JT2OC.js";
16
16
  import {
17
17
  getLinkedProject,
18
18
  getProjectByNameOrId
19
- } from "./chunk-INFYZRHS.js";
19
+ } from "./chunk-KTX4RQFM.js";
20
20
  import {
21
21
  buildCommandWithGlobalFlags,
22
22
  outputAgentError
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-V5P25P7F.js";
10
10
  import {
11
11
  getLocalPathConfig
12
- } from "./chunk-ULNWA6GY.js";
12
+ } from "./chunk-MS3WAXLU.js";
13
13
  import {
14
14
  DEFAULT_VERCEL_CONFIG_FILENAME,
15
15
  VERCEL_CONFIG_EXTENSIONS,
@@ -36,7 +36,7 @@ import {
36
36
  useKeypress,
37
37
  usePrefix,
38
38
  useState
39
- } from "./chunk-INFYZRHS.js";
39
+ } from "./chunk-KTX4RQFM.js";
40
40
  import {
41
41
  require_load_json_file
42
42
  } from "./chunk-Q77ALSXR.js";
@@ -25,10 +25,10 @@ import {
25
25
  import {
26
26
  buildCommand,
27
27
  pullCommand
28
- } from "./chunk-KJMSI2CT.js";
28
+ } from "./chunk-YW7AYO7N.js";
29
29
  import {
30
30
  envCommand
31
- } from "./chunk-INFYZRHS.js";
31
+ } from "./chunk-KTX4RQFM.js";
32
32
  import {
33
33
  confirmOption,
34
34
  deploymentOption,
@@ -192,7 +192,7 @@ var continueSubcommand = {
192
192
  var deployCommand = {
193
193
  name: "deploy",
194
194
  aliases: [],
195
- description: "Deploy your project to Vercel. The `deploy` command is the default command for the Vercel CLI, and can be omitted (`vc deploy my-app` equals `vc my-app`).",
195
+ description: "Deploy your project to Vercel. The `deploy` command is the default command for the Vercel CLI, and can be omitted (`vc deploy my-app` equals `vc my-app`). Use `--dry` to inspect the detected framework preset and source files without deploying.",
196
196
  arguments: [
197
197
  {
198
198
  name: "project-path",
@@ -273,6 +273,13 @@ var deployCommand = {
273
273
  deprecated: false,
274
274
  description: "Don't wait for the deployment to finish"
275
275
  },
276
+ {
277
+ name: "dry",
278
+ shorthand: null,
279
+ type: Boolean,
280
+ deprecated: false,
281
+ description: "Inspect the detected framework preset and source files without uploading or creating a deployment. Non-TTY output includes every file as JSON"
282
+ },
276
283
  {
277
284
  name: "skip-domain",
278
285
  shorthand: null,
@@ -347,6 +354,14 @@ var deployCommand = {
347
354
  name: "Deploy with prebuilt outputs",
348
355
  value: ["vercel build", "vercel deploy --prebuilt"]
349
356
  },
357
+ {
358
+ name: "Inspect deployment inputs without deploying",
359
+ value: "vercel deploy --dry"
360
+ },
361
+ {
362
+ name: "Get every deployment file as JSON",
363
+ value: "vercel deploy --dry --format=json"
364
+ },
350
365
  {
351
366
  name: "Write Deployment URL to a file",
352
367
  value: "vercel > deployment-url.txt"
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  STANDARD_ENVIRONMENTS
9
- } from "./chunk-INFYZRHS.js";
9
+ } from "./chunk-KTX4RQFM.js";
10
10
  import {
11
11
  getCommandName,
12
12
  require_lib
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  require_lib
9
- } from "./chunk-INFYZRHS.js";
9
+ } from "./chunk-KTX4RQFM.js";
10
10
  import {
11
11
  isNativeBinaryInstall
12
12
  } from "./chunk-Q77ALSXR.js";
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  resolveAlertsScope
9
- } from "./chunk-UI2T3GI4.js";
9
+ } from "./chunk-7B44AIGE.js";
10
10
  import {
11
11
  handleValidationError,
12
12
  outputError,
@@ -13826,6 +13826,53 @@ var require_frameworks = __commonJS({
13826
13826
  __reExport(frameworks_exports, require_types(), module.exports);
13827
13827
  var { readdir, readFile: readFile7, unlink: unlink2 } = import_fs4.promises;
13828
13828
  var frameworks = [
13829
+ {
13830
+ // A `Dockerfile.vercel` / `Containerfile.vercel` is an explicit opt-in to
13831
+ // deploy a project as a container, regardless of any other framework that
13832
+ // may also be detected. It is listed first so that framework detection
13833
+ // (which returns the first match in list order) selects it over everything
13834
+ // else — e.g. a Next.js app shipping a `Dockerfile.vercel` deploys as a
13835
+ // container, not via `@vercel/next`. Experimental for now, so it is only
13836
+ // detected when experimental frameworks are enabled
13837
+ // (`VERCEL_USE_EXPERIMENTAL_FRAMEWORKS`).
13838
+ name: "Container",
13839
+ slug: "container",
13840
+ experimental: true,
13841
+ runtimeFramework: true,
13842
+ logo: "https://api-frameworks.vercel.sh/framework-logos/container.svg",
13843
+ tagline: "Deploy any project as a container image built from a Dockerfile.",
13844
+ description: "A project deployed as a container image, built from a Dockerfile.vercel or Containerfile.vercel.",
13845
+ website: "https://docs.docker.com/reference/dockerfile/",
13846
+ useRuntime: { src: "<detect>", use: "@vercel/container" },
13847
+ detectors: {
13848
+ some: [
13849
+ {
13850
+ path: "Dockerfile.vercel"
13851
+ },
13852
+ {
13853
+ path: "Containerfile.vercel"
13854
+ }
13855
+ ]
13856
+ },
13857
+ settings: {
13858
+ installCommand: {
13859
+ placeholder: "None",
13860
+ value: null
13861
+ },
13862
+ buildCommand: {
13863
+ placeholder: "None",
13864
+ value: null
13865
+ },
13866
+ devCommand: {
13867
+ placeholder: "None",
13868
+ value: null
13869
+ },
13870
+ outputDirectory: {
13871
+ placeholder: "None"
13872
+ }
13873
+ },
13874
+ getOutputDirName: async () => "public"
13875
+ },
13829
13876
  {
13830
13877
  name: "Blitz.js (Legacy)",
13831
13878
  slug: "blitzjs",
@@ -37733,7 +37780,7 @@ var require_package = __commonJS({
37733
37780
  "../client/package.json"(exports, module) {
37734
37781
  module.exports = {
37735
37782
  name: "@vercel/client",
37736
- version: "17.6.0",
37783
+ version: "17.6.1",
37737
37784
  main: "dist/index.js",
37738
37785
  typings: "dist/index.d.ts",
37739
37786
  homepage: "https://vercel.com",
@@ -52366,6 +52413,102 @@ var require_archive = __commonJS({
52366
52413
  }
52367
52414
  });
52368
52415
 
52416
+ // ../client/dist/collect-deployment-files.js
52417
+ var require_collect_deployment_files = __commonJS({
52418
+ "../client/dist/collect-deployment-files.js"(exports, module) {
52419
+ "use strict";
52420
+ var __defProp = Object.defineProperty;
52421
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
52422
+ var __getOwnPropNames = Object.getOwnPropertyNames;
52423
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
52424
+ var __export2 = (target, all) => {
52425
+ for (var name in all)
52426
+ __defProp(target, name, { get: all[name], enumerable: true });
52427
+ };
52428
+ var __copyProps = (to, from, except, desc) => {
52429
+ if (from && typeof from === "object" || typeof from === "function") {
52430
+ for (let key of __getOwnPropNames(from))
52431
+ if (!__hasOwnProp.call(to, key) && key !== except)
52432
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
52433
+ }
52434
+ return to;
52435
+ };
52436
+ var __toCommonJS2 = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
52437
+ var collect_deployment_files_exports = {};
52438
+ __export2(collect_deployment_files_exports, {
52439
+ assertDeploymentPath: () => assertDeploymentPath,
52440
+ collectDeploymentFiles: () => collectDeploymentFiles
52441
+ });
52442
+ module.exports = __toCommonJS2(collect_deployment_files_exports);
52443
+ var import_error_utils5 = require_dist();
52444
+ var import_fs_extra9 = require_lib6();
52445
+ var import_path12 = __require("path");
52446
+ var import_errors3 = require_errors();
52447
+ var import_utils4 = require_utils9();
52448
+ var import_archive = require_archive();
52449
+ var import_hashes = require_hashes();
52450
+ function assertDeploymentPath(path, debug) {
52451
+ if (typeof path !== "string" && !Array.isArray(path)) {
52452
+ debug(
52453
+ `Error: 'path' is expected to be a string or an array. Received ${typeof path}`
52454
+ );
52455
+ throw new import_errors3.DeploymentError({
52456
+ code: "missing_path",
52457
+ message: "Path not provided"
52458
+ });
52459
+ }
52460
+ }
52461
+ async function collectDeploymentFiles(path, clientOptions, debug) {
52462
+ assertDeploymentPath(path, debug);
52463
+ const isDirectory2 = !Array.isArray(path) && (0, import_fs_extra9.lstatSync)(path).isDirectory();
52464
+ clientOptions.isDirectory = isDirectory2;
52465
+ if (Array.isArray(path)) {
52466
+ for (const filePath of path) {
52467
+ if (!(0, import_path12.isAbsolute)(filePath)) {
52468
+ throw new import_errors3.DeploymentError({
52469
+ code: "invalid_path",
52470
+ message: `Provided path ${filePath} is not absolute`
52471
+ });
52472
+ }
52473
+ }
52474
+ } else if (!(0, import_path12.isAbsolute)(path)) {
52475
+ throw new import_errors3.DeploymentError({
52476
+ code: "invalid_path",
52477
+ message: `Provided path ${path} is not absolute`
52478
+ });
52479
+ }
52480
+ if (isDirectory2 && !Array.isArray(path)) {
52481
+ debug(`Provided 'path' is a directory.`);
52482
+ } else if (Array.isArray(path)) {
52483
+ debug(`Provided 'path' is an array of file paths`);
52484
+ } else {
52485
+ debug(`Provided 'path' is a single file`);
52486
+ }
52487
+ const { fileList, ignoreList } = await (0, import_utils4.buildFileTree)(
52488
+ path,
52489
+ clientOptions,
52490
+ debug
52491
+ );
52492
+ const workPath = typeof path === "string" ? path : path[0];
52493
+ let filesMap;
52494
+ try {
52495
+ filesMap = clientOptions.archive === "tgz" ? await (0, import_archive.createTgzFiles)(workPath, fileList, debug) : await (0, import_hashes.hashes)(fileList);
52496
+ } catch (err) {
52497
+ if (clientOptions.prebuilt && (0, import_error_utils5.isErrnoException)(err) && err.code === "ENOENT" && err.path) {
52498
+ const errPath = (0, import_path12.relative)(workPath, err.path);
52499
+ err.message = `File does not exist: "${(0, import_path12.relative)(workPath, errPath)}"`;
52500
+ if (errPath.split(import_path12.sep).includes("node_modules")) {
52501
+ err.message = `Please ensure project dependencies have been installed:
52502
+ ${err.message}`;
52503
+ }
52504
+ }
52505
+ throw err;
52506
+ }
52507
+ return { fileList, filesMap, workPath, isDirectory: isDirectory2, ignoreList };
52508
+ }
52509
+ }
52510
+ });
52511
+
52369
52512
  // ../client/dist/create-deployment.js
52370
52513
  var require_create_deployment = __commonJS({
52371
52514
  "../client/dist/create-deployment.js"(exports, module) {
@@ -52392,29 +52535,18 @@ var require_create_deployment = __commonJS({
52392
52535
  default: () => buildCreateDeployment
52393
52536
  });
52394
52537
  module.exports = __toCommonJS2(create_deployment_exports);
52395
- var import_fs_extra9 = require_lib6();
52396
- var import_path12 = __require("path");
52397
52538
  var import_hashes = require_hashes();
52398
52539
  var import_deploy = require_deploy();
52399
52540
  var import_upload = require_upload();
52400
52541
  var import_utils4 = require_utils9();
52401
52542
  var import_errors3 = require_errors();
52402
- var import_error_utils5 = require_dist();
52403
- var import_archive = require_archive();
52543
+ var import_collect_deployment_files = require_collect_deployment_files();
52404
52544
  function buildCreateDeployment() {
52405
52545
  return async function* createDeployment(clientOptions, deploymentOptions = {}) {
52406
52546
  const { path } = clientOptions;
52407
52547
  const debug = (0, import_utils4.createDebug)(clientOptions.debug);
52408
52548
  debug("Creating deployment...");
52409
- if (typeof path !== "string" && !Array.isArray(path)) {
52410
- debug(
52411
- `Error: 'path' is expected to be a string or an array. Received ${typeof path}`
52412
- );
52413
- throw new import_errors3.DeploymentError({
52414
- code: "missing_path",
52415
- message: "Path not provided"
52416
- });
52417
- }
52549
+ (0, import_collect_deployment_files.assertDeploymentPath)(path, debug);
52418
52550
  if (typeof clientOptions.token !== "string") {
52419
52551
  debug(
52420
52552
  `Error: 'token' is expected to be a string. Received ${typeof clientOptions.token}`
@@ -52440,30 +52572,11 @@ var require_create_deployment = __commonJS({
52440
52572
  yield* (0, import_deploy.deploy)(/* @__PURE__ */ new Map(), clientOptions, deploymentOptions);
52441
52573
  return;
52442
52574
  }
52443
- clientOptions.isDirectory = !Array.isArray(path) && (0, import_fs_extra9.lstatSync)(path).isDirectory();
52444
- if (Array.isArray(path)) {
52445
- for (const filePath of path) {
52446
- if (!(0, import_path12.isAbsolute)(filePath)) {
52447
- throw new import_errors3.DeploymentError({
52448
- code: "invalid_path",
52449
- message: `Provided path ${filePath} is not absolute`
52450
- });
52451
- }
52452
- }
52453
- } else if (!(0, import_path12.isAbsolute)(path)) {
52454
- throw new import_errors3.DeploymentError({
52455
- code: "invalid_path",
52456
- message: `Provided path ${path} is not absolute`
52457
- });
52458
- }
52459
- if (clientOptions.isDirectory && !Array.isArray(path)) {
52460
- debug(`Provided 'path' is a directory.`);
52461
- } else if (Array.isArray(path)) {
52462
- debug(`Provided 'path' is an array of file paths`);
52463
- } else {
52464
- debug(`Provided 'path' is a single file`);
52465
- }
52466
- const { fileList } = await (0, import_utils4.buildFileTree)(path, clientOptions, debug);
52575
+ const { fileList, filesMap: files } = await (0, import_collect_deployment_files.collectDeploymentFiles)(
52576
+ path,
52577
+ clientOptions,
52578
+ debug
52579
+ );
52467
52580
  if (fileList.length === 0) {
52468
52581
  debug("Deployment path has no files. Yielding a warning event");
52469
52582
  yield {
@@ -52471,25 +52584,6 @@ var require_create_deployment = __commonJS({
52471
52584
  payload: "There are no files inside your deployment."
52472
52585
  };
52473
52586
  }
52474
- const workPath = typeof path === "string" ? path : path[0];
52475
- let files;
52476
- try {
52477
- if (clientOptions.archive === "tgz") {
52478
- files = await (0, import_archive.createTgzFiles)(workPath, fileList, debug);
52479
- } else {
52480
- files = await (0, import_hashes.hashes)(fileList);
52481
- }
52482
- } catch (err) {
52483
- if (clientOptions.prebuilt && (0, import_error_utils5.isErrnoException)(err) && err.code === "ENOENT" && err.path) {
52484
- const errPath = (0, import_path12.relative)(workPath, err.path);
52485
- err.message = `File does not exist: "${(0, import_path12.relative)(workPath, errPath)}"`;
52486
- if (errPath.split(import_path12.sep).includes("node_modules")) {
52487
- err.message = `Please ensure project dependencies have been installed:
52488
- ${err.message}`;
52489
- }
52490
- }
52491
- throw err;
52492
- }
52493
52587
  debug(`Yielding a 'hashes-calculated' event with ${files.size} hashes`);
52494
52588
  yield { type: "hashes-calculated", payload: (0, import_hashes.mapToObject)(files) };
52495
52589
  if (clientOptions.apiUrl) {
@@ -52736,6 +52830,71 @@ var require_continue = __commonJS({
52736
52830
  }
52737
52831
  });
52738
52832
 
52833
+ // ../client/dist/inspect-deployment-files.js
52834
+ var require_inspect_deployment_files = __commonJS({
52835
+ "../client/dist/inspect-deployment-files.js"(exports, module) {
52836
+ "use strict";
52837
+ var __defProp = Object.defineProperty;
52838
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
52839
+ var __getOwnPropNames = Object.getOwnPropertyNames;
52840
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
52841
+ var __export2 = (target, all) => {
52842
+ for (var name in all)
52843
+ __defProp(target, name, { get: all[name], enumerable: true });
52844
+ };
52845
+ var __copyProps = (to, from, except, desc) => {
52846
+ if (from && typeof from === "object" || typeof from === "function") {
52847
+ for (let key of __getOwnPropNames(from))
52848
+ if (!__hasOwnProp.call(to, key) && key !== except)
52849
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
52850
+ }
52851
+ return to;
52852
+ };
52853
+ var __toCommonJS2 = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
52854
+ var inspect_deployment_files_exports = {};
52855
+ __export2(inspect_deployment_files_exports, {
52856
+ inspectDeploymentFiles: () => inspectDeploymentFiles2
52857
+ });
52858
+ module.exports = __toCommonJS2(inspect_deployment_files_exports);
52859
+ var import_path12 = __require("path");
52860
+ var import_collect_deployment_files = require_collect_deployment_files();
52861
+ var import_utils4 = require_utils9();
52862
+ async function inspectDeploymentFiles2(clientOptions) {
52863
+ const { path } = clientOptions;
52864
+ const debug = (0, import_utils4.createDebug)(clientOptions.debug);
52865
+ const { filesMap, workPath, isDirectory: isDirectory2, ignoreList } = await (0, import_collect_deployment_files.collectDeploymentFiles)(path, { ...clientOptions }, debug);
52866
+ const files = [];
52867
+ let totalSize = 0;
52868
+ for (const [sha, file] of filesMap) {
52869
+ const size = file.data?.byteLength || file.data?.length || 0;
52870
+ for (const name of file.names) {
52871
+ const pathName = isDirectory2 ? (0, import_path12.relative)(workPath, name) : name.split(import_path12.sep).at(-1) || name;
52872
+ const normalizedPath = pathName.split(import_path12.sep).join("/");
52873
+ const deploymentFile = {
52874
+ path: normalizedPath,
52875
+ size,
52876
+ mode: file.mode
52877
+ };
52878
+ if (typeof sha !== "undefined") {
52879
+ deploymentFile.sha = sha;
52880
+ }
52881
+ files.push(deploymentFile);
52882
+ totalSize += size;
52883
+ }
52884
+ }
52885
+ files.sort((a, b) => a.path.localeCompare(b.path));
52886
+ return {
52887
+ basePath: workPath,
52888
+ fileCount: files.length,
52889
+ totalSize,
52890
+ ignoredCount: ignoreList.length,
52891
+ files,
52892
+ ignored: ignoreList.sort()
52893
+ };
52894
+ }
52895
+ }
52896
+ });
52897
+
52739
52898
  // ../client/dist/types.js
52740
52899
  var require_types4 = __commonJS({
52741
52900
  "../client/dist/types.js"(exports, module) {
@@ -52808,12 +52967,14 @@ var require_dist7 = __commonJS({
52808
52967
  checkDeploymentStatus: () => import_check_deployment_status.checkDeploymentStatus,
52809
52968
  continueDeployment: () => import_continue.continueDeployment,
52810
52969
  createDeployment: () => createDeployment,
52811
- getVercelIgnore: () => import_utils4.getVercelIgnore
52970
+ getVercelIgnore: () => import_utils4.getVercelIgnore,
52971
+ inspectDeploymentFiles: () => import_inspect_deployment_files.inspectDeploymentFiles
52812
52972
  });
52813
52973
  module.exports = __toCommonJS2(src_exports);
52814
52974
  var import_create_deployment = __toESM2(require_create_deployment());
52815
52975
  var import_continue = require_continue();
52816
52976
  var import_check_deployment_status = require_check_deployment_status();
52977
+ var import_inspect_deployment_files = require_inspect_deployment_files();
52817
52978
  var import_utils4 = require_utils9();
52818
52979
  __reExport(src_exports, require_errors(), module.exports);
52819
52980
  __reExport(src_exports, require_types4(), module.exports);
@@ -54811,6 +54972,22 @@ async function connectGitProvider(client, projectId, type, repo) {
54811
54972
  repo
54812
54973
  )} to project. Make sure there aren't any typos and that you have access to the repository if it's private.`
54813
54974
  );
54975
+ } else if (apiError && err.code === "repo_links_exceeded_limit") {
54976
+ let ctaLabel;
54977
+ let ctaUrl;
54978
+ if (typeof err.ctaLabel === "string" && typeof err.ctaUrl === "string") {
54979
+ ctaLabel = err.ctaLabel;
54980
+ ctaUrl = err.ctaUrl;
54981
+ } else if (typeof err.action === "string" && typeof err.link === "string") {
54982
+ ctaLabel = err.action;
54983
+ ctaUrl = err.link;
54984
+ }
54985
+ let message = err.message;
54986
+ if (ctaLabel && ctaUrl) {
54987
+ message += `
54988
+ ${ctaLabel}: ${link_default(ctaUrl)}`;
54989
+ }
54990
+ output_manager_default.error(message);
54814
54991
  } else if (apiError && err.action === "Add a Login Connection") {
54815
54992
  output_manager_default.error(
54816
54993
  err.message.replace(repo, import_chalk5.default.cyan(repo)) + `
@@ -10,7 +10,7 @@ import {
10
10
  progress,
11
11
  require_dist as require_dist2,
12
12
  sleep
13
- } from "./chunk-LJXYGWOY.js";
13
+ } from "./chunk-A4B4JQVP.js";
14
14
  import {
15
15
  suggestNextCommands
16
16
  } from "./chunk-LKBI43XK.js";
@@ -20,7 +20,7 @@ import {
20
20
  } from "./chunk-TCF6MGBY.js";
21
21
  import {
22
22
  CommandTimeout
23
- } from "./chunk-VLQBXXOQ.js";
23
+ } from "./chunk-BRLY3Q4U.js";
24
24
  import {
25
25
  showPluginTipIfNeeded
26
26
  } from "./chunk-BRQ6PX3U.js";
@@ -29,7 +29,7 @@ import {
29
29
  } from "./chunk-64IF634X.js";
30
30
  import {
31
31
  getScope
32
- } from "./chunk-FBYYZKN3.js";
32
+ } from "./chunk-2F6JT2OC.js";
33
33
  import {
34
34
  getProjectByNameOrId,
35
35
  param,
@@ -37,7 +37,7 @@ import {
37
37
  require_dist as require_dist3,
38
38
  require_pluralize,
39
39
  ua_default
40
- } from "./chunk-INFYZRHS.js";
40
+ } from "./chunk-KTX4RQFM.js";
41
41
  import {
42
42
  require_lib
43
43
  } from "./chunk-N2T234LO.js";
@@ -2270,7 +2270,6 @@ var Now = class {
2270
2270
  jsonOutput = false,
2271
2271
  linkedProject
2272
2272
  }, org, isSettingUpProject, archive) {
2273
- const hashes = {};
2274
2273
  const requestBody = {
2275
2274
  ...nowConfig,
2276
2275
  env,
@@ -2318,9 +2317,7 @@ var Now = class {
2318
2317
  deployment.warnings.forEach((warning) => {
2319
2318
  if (warning.reason === "size_limit_exceeded") {
2320
2319
  const { sha, limit } = warning;
2321
- const n = hashes[sha].names.pop();
2322
- warn(`Skipping file ${n} (size exceeded ${(0, import_bytes2.default)(limit)}`);
2323
- hashes[sha].names.unshift(n);
2320
+ warn(`Skipping file ${sha} (size exceeded ${(0, import_bytes2.default)(limit)})`);
2324
2321
  sizeExceeded++;
2325
2322
  } else if (warning.reason === "node_version_not_found") {
2326
2323
  warn(`Requested node version ${warning.wanted} is not available`);
@@ -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-MSWXRAHA.js";
9
+ } from "./chunk-NRIXI6V5.js";
10
10
  import {
11
11
  autoInstallVercelPlugin
12
12
  } from "./chunk-BRQ6PX3U.js";
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-64IF634X.js";
16
16
  import {
17
17
  ensureLink
18
- } from "./chunk-BIHRICRM.js";
18
+ } from "./chunk-P5AZW6W6.js";
19
19
  import {
20
20
  pullCommand
21
- } from "./chunk-KJMSI2CT.js";
21
+ } from "./chunk-YW7AYO7N.js";
22
22
  import {
23
23
  help
24
24
  } from "./chunk-3NR6OYDV.js";
@@ -28,7 +28,7 @@ import {
28
28
  envPullCommandLogic,
29
29
  humanizePath,
30
30
  parseTarget
31
- } from "./chunk-INFYZRHS.js";
31
+ } from "./chunk-KTX4RQFM.js";
32
32
  import {
33
33
  TelemetryClient
34
34
  } from "./chunk-Q77ALSXR.js";
@@ -7,7 +7,7 @@ const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  VERCEL_DIR,
9
9
  isVercelTomlEnabled
10
- } from "./chunk-INFYZRHS.js";
10
+ } from "./chunk-KTX4RQFM.js";
11
11
  import {
12
12
  parseArguments
13
13
  } from "./chunk-MYWLF3BZ.js";
@@ -8,7 +8,7 @@ import {
8
8
  VERCEL_DIR,
9
9
  VERCEL_DIR_PROJECT,
10
10
  require_lib
11
- } from "./chunk-INFYZRHS.js";
11
+ } from "./chunk-KTX4RQFM.js";
12
12
  import {
13
13
  require_dist
14
14
  } from "./chunk-Z5SBJH6L.js";