@depup/vercel 57.0.0-depup.0 → 58.4.4-depup.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 (114) hide show
  1. package/README.md +5 -5
  2. package/changes.json +4 -4
  3. package/dist/chunks/{add-YRZTDNXX.js → add-245XOFJO.js} +14 -9
  4. package/dist/chunks/{add-7M577U56.js → add-P7WBQMBW.js} +10 -8
  5. package/dist/chunks/add-XH24V5VU.js +187 -0
  6. package/dist/chunks/build-M7NJYJPE.js +243 -0
  7. package/dist/chunks/{chunk-HD7B425F.js → chunk-2FMPLU44.js} +4 -4
  8. package/dist/chunks/{chunk-LMHT3QR3.js → chunk-2LBVX2H3.js} +3 -3
  9. package/dist/chunks/{chunk-YOZCJHLZ.js → chunk-2MAPZXVV.js} +10 -8
  10. package/dist/chunks/{chunk-DWMH5M4Q.js → chunk-2SFMOCWR.js} +1 -1
  11. package/dist/chunks/{chunk-F5PQWDOC.js → chunk-2WILSD7J.js} +1 -1
  12. package/dist/chunks/{chunk-3PKFXNJZ.js → chunk-3KNPVXJ3.js} +7 -5
  13. package/dist/chunks/{chunk-A2TYQBX2.js → chunk-3QAUXPIR.js} +927 -518
  14. package/dist/chunks/chunk-3ZE5CFVM.js +346 -0
  15. package/dist/chunks/{chunk-555WJSO5.js → chunk-4BUPRO5B.js} +7 -5
  16. package/dist/chunks/{chunk-TBR2Q37Y.js → chunk-4CCY5OPH.js} +1232 -1216
  17. package/dist/chunks/{chunk-FHEMFAHB.js → chunk-4LDQIDRM.js} +15 -9
  18. package/dist/chunks/{chunk-R5FOIIHT.js → chunk-4N7XLXM2.js} +2 -2
  19. package/dist/chunks/{chunk-KCF6S3XF.js → chunk-4UYKSYKQ.js} +10 -6
  20. package/dist/chunks/{chunk-GP5VCTEU.js → chunk-62MH5KPX.js} +207 -4
  21. package/dist/chunks/{chunk-OGG6UBXK.js → chunk-7QVJTI5H.js} +1 -1
  22. package/dist/chunks/{chunk-FYQPTH5C.js → chunk-A5KP5HAI.js} +7 -5
  23. package/dist/chunks/{chunk-2EDWKVNP.js → chunk-AQDWMAPM.js} +32 -16
  24. package/dist/chunks/{chunk-3VS4DTAU.js → chunk-AW5YINX6.js} +106 -12
  25. package/dist/chunks/{chunk-GIL3VAUR.js → chunk-B3JTF4CF.js} +5 -3
  26. package/dist/chunks/{chunk-4QVAYRYH.js → chunk-BEQV3X2L.js} +16 -1
  27. package/dist/chunks/chunk-CPFNFVCL.js +85 -0
  28. package/dist/chunks/{chunk-4G6QZSBL.js → chunk-CSJBZKC5.js} +6 -4
  29. package/dist/chunks/{chunk-3PGXYIKC.js → chunk-EBLH23AQ.js} +2 -2
  30. package/dist/chunks/{chunk-YA3WQFLY.js → chunk-GFG6QDIE.js} +1 -1
  31. package/dist/chunks/{chunk-IOAZNR6Z.js → chunk-HSYF5SI3.js} +1 -1
  32. package/dist/chunks/{chunk-F7X55TOY.js → chunk-IEDUCUDV.js} +6 -5
  33. package/dist/chunks/chunk-J6LK45HT.js +163 -0
  34. package/dist/chunks/{chunk-ZVLPUREX.js → chunk-JLWQWYKO.js} +2 -2
  35. package/dist/chunks/{chunk-SZXT3PDQ.js → chunk-KBEX5MYS.js} +1 -136
  36. package/dist/chunks/{chunk-NZRWTCRM.js → chunk-KT4XXKJK.js} +1 -1
  37. package/dist/chunks/{chunk-VZSZBD4V.js → chunk-M22O6CYY.js} +1 -1
  38. package/dist/chunks/{chunk-3242RXCN.js → chunk-M5NOLAJ4.js} +1 -1
  39. package/dist/chunks/{chunk-2MJROFVC.js → chunk-MAHXF73X.js} +8 -5
  40. package/dist/chunks/{chunk-RYO6FJFB.js → chunk-NJ6QXKQD.js} +2 -2
  41. package/dist/chunks/{chunk-LHFNIZ2P.js → chunk-O5GNPPTU.js} +4 -2
  42. package/dist/chunks/chunk-RBIFXFZX.js +52 -0
  43. package/dist/chunks/{chunk-OF2GNB42.js → chunk-RQ7H43CJ.js} +1 -1
  44. package/dist/chunks/{chunk-4PGF367U.js → chunk-SJYAUEZR.js} +232 -50
  45. package/dist/chunks/{chunk-KSSNLCL4.js → chunk-SOFC4MLS.js} +2 -2
  46. package/dist/chunks/{chunk-UDWRZXIT.js → chunk-TJJ562C5.js} +18 -14
  47. package/dist/chunks/{chunk-NRNMT43R.js → chunk-UE3JUVUZ.js} +7 -13
  48. package/dist/chunks/chunk-V5P25P7F.js +22 -0
  49. package/dist/chunks/{chunk-MIFDRYTN.js → chunk-XE5VSQ25.js} +2 -2
  50. package/dist/chunks/{chunk-QZD5DKUR.js → chunk-XIG4GH62.js} +2 -2
  51. package/dist/chunks/chunk-XLKFJPMT.js +150 -0
  52. package/dist/chunks/{chunk-MAHINYBW.js → chunk-Y5GTPWXB.js} +2 -2
  53. package/dist/chunks/{chunk-NH43BFJ3.js → chunk-YCPUAG77.js} +2 -2
  54. package/dist/chunks/{chunk-T4NODP6Y.js → chunk-YDUINEII.js} +3 -3
  55. package/dist/chunks/{chunk-RAFH25WW.js → chunk-ZGBBPJ6B.js} +10 -6
  56. package/dist/chunks/{chunk-DMSLNAVH.js → chunk-ZX2FSPWV.js} +2 -2
  57. package/dist/chunks/clear-HWIKQ4NC.js +132 -0
  58. package/dist/chunks/{compile-vercel-config-3OHO3TJA.js → compile-vercel-config-U5NRIMZ2.js} +5 -4
  59. package/dist/chunks/config-validator.mjs +1 -1
  60. package/dist/chunks/{delete-3DZOCWCC.js → delete-FZCOUFGN.js} +7 -6
  61. package/dist/chunks/{delete-VOSJLNEA.js → delete-NVMGVD5Z.js} +7 -6
  62. package/dist/chunks/{disable-LQDEVRQF.js → disable-ERM2BWEQ.js} +7 -6
  63. package/dist/chunks/{discard-RGV4JKXQ.js → discard-KM5OLEN4.js} +7 -6
  64. package/dist/chunks/{edit-SFIEOQ24.js → edit-HT3UTATZ.js} +8 -7
  65. package/dist/chunks/{edit-UPZPI54L.js → edit-TOSB2EMI.js} +7 -6
  66. package/dist/chunks/{enable-6UVH35WC.js → enable-BQL6AOQV.js} +7 -6
  67. package/dist/chunks/{export-6CEG3CK7.js → export-UOWQHOG3.js} +7 -6
  68. package/dist/chunks/{image-CQRCD2OE.js → image-F5SC6Q7Y.js} +5 -5
  69. package/dist/chunks/{inspect-ZFRY3X3H.js → inspect-35FU5R62.js} +16 -13
  70. package/dist/chunks/{inspect-UM3LDRPV.js → inspect-5J5GSTOB.js} +14 -12
  71. package/dist/chunks/{inspect-K5ZMQG7X.js → inspect-GKJ6T5H4.js} +14 -12
  72. package/dist/chunks/{inspect-4ZAH3RFT.js → inspect-LGKOLH2O.js} +8 -7
  73. package/dist/chunks/{inspect-EXQBIAFF.js → inspect-PZJM2CWT.js} +13 -11
  74. package/dist/chunks/{list-KCUHD4OA.js → list-2IIE7CAP.js} +8 -7
  75. package/dist/chunks/{list-4DRVM7Q4.js → list-ITFJYYQ2.js} +13 -11
  76. package/dist/chunks/{list-FJCBOCCA.js → list-KZETH3ZE.js} +8 -6
  77. package/dist/chunks/{login-DFGYNU3K.js → login-BQPJCJEZ.js} +22 -51
  78. package/dist/chunks/{ls-RHEQ6YQB.js → ls-7GHDK4MD.js} +13 -11
  79. package/dist/chunks/{ls-CG6A7UXF.js → ls-DL2LA35C.js} +15 -13
  80. package/dist/chunks/{ls-34NCZKBE.js → ls-UXUEP54B.js} +15 -13
  81. package/dist/chunks/ls-YSFWSM6J.js +178 -0
  82. package/dist/chunks/{ls-4QHHVXXD.js → ls-ZZFLH7PK.js} +17 -14
  83. package/dist/chunks/{open-E3XADEMX.js → open-ADNJQN5E.js} +7 -6
  84. package/dist/chunks/permissions-72SZCBIY.js +95 -0
  85. package/dist/chunks/{publish-Z3AQRUCS.js → publish-OOAGSEBM.js} +7 -6
  86. package/dist/chunks/push-B6TZDXNF.js +183 -0
  87. package/dist/chunks/{query-3EV66DO3.js → query-LZWS5TDH.js} +12 -10
  88. package/dist/chunks/{reorder-VA5E5ZJT.js → reorder-MRHFKPMK.js} +7 -6
  89. package/dist/chunks/{reply-SNSCNKAW.js → reply-BKTJXO3B.js} +7 -6
  90. package/dist/chunks/{resolve-6ZX4RTXX.js → resolve-BKVGSGPN.js} +7 -6
  91. package/dist/chunks/{restore-NEHI5B5P.js → restore-USR7SKWV.js} +7 -6
  92. package/dist/chunks/{rm-FR6KE744.js → rm-2UO6BT3A.js} +10 -8
  93. package/dist/chunks/rm-37MKKV3I.js +186 -0
  94. package/dist/chunks/{rm-E5ZVLAKO.js → rm-KUWPNZIS.js} +15 -10
  95. package/dist/chunks/{rm-22B22E47.js → rm-VY3OHKFH.js} +12 -8
  96. package/dist/chunks/{rule-inspect-DMP2CKJQ.js → rule-inspect-JVDOOTWK.js} +13 -11
  97. package/dist/chunks/{rules-EYGXEI2Z.js → rules-NTBFZBIF.js} +8 -8
  98. package/dist/chunks/{schema-2IIWOBSQ.js → schema-6EZ72OVH.js} +11 -9
  99. package/dist/chunks/{tags-ZDVYRHAY.js → tags-HNPC63QA.js} +4 -4
  100. package/dist/chunks/{types-QKLIFDDP.js → types-QTOA2BTQ.js} +7 -5
  101. package/dist/chunks/{update-QH4DQMZV.js → update-LUYWNZP3.js} +10 -8
  102. package/dist/commands/build/index.js +16 -20
  103. package/dist/commands/deploy/index.js +39 -28
  104. package/dist/commands/dev/index.js +112 -20
  105. package/dist/commands/env/index.js +308 -36
  106. package/dist/commands/link/index.js +26 -23
  107. package/dist/commands/list/index.js +16 -9
  108. package/dist/commands-bulk.js +5414 -2654
  109. package/dist/help.js +1 -1
  110. package/dist/index.js +50 -44
  111. package/dist/version.mjs +1 -1
  112. package/package.json +47 -105
  113. package/dist/chunks/chunk-6OMC3HOW.js +0 -73
  114. package/dist/chunks/chunk-V4RMJKQP.js +0 -36
package/README.md CHANGED
@@ -13,8 +13,8 @@ npm install @depup/vercel
13
13
 
14
14
  | Field | Value |
15
15
  |-------|-------|
16
- | Original | [vercel](https://www.npmjs.com/package/vercel) @ 57.0.0 |
17
- | Processed | 2026-07-26 |
16
+ | Original | [vercel](https://www.npmjs.com/package/vercel) @ 58.4.4 |
17
+ | Processed | 2026-08-02 |
18
18
  | Smoke test | failed |
19
19
  | Deps updated | 11 |
20
20
 
@@ -27,10 +27,10 @@ npm install @depup/vercel
27
27
  | @vercel/prepare-flags-definitions | 0.3.0 | ^0.4.0 |
28
28
  | chokidar | 4.0.0 | ^5.0.0 |
29
29
  | esbuild | 0.27.0 | ^0.28.1 |
30
- | jose | 5.9.6 | ^6.2.4 |
30
+ | jose | 5.9.6 | ^6.2.7 |
31
31
  | luxon | ^3.4.0 | ^3.7.2 |
32
- | sandbox | 3.4.0 | ^3.5.3 |
33
- | smol-toml | 1.5.2 | ^1.7.0 |
32
+ | sandbox | 3.4.0 | ^3.5.5 |
33
+ | smol-toml | 1.5.2 | ^1.7.1 |
34
34
  | undici | 5.29.0 | ^8.9.0 |
35
35
  | zod | 4.1.11 | ^4.4.3 |
36
36
 
package/changes.json CHANGED
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "jose": {
24
24
  "from": "5.9.6",
25
- "to": "^6.2.4"
25
+ "to": "^6.2.7"
26
26
  },
27
27
  "luxon": {
28
28
  "from": "^3.4.0",
@@ -30,11 +30,11 @@
30
30
  },
31
31
  "sandbox": {
32
32
  "from": "3.4.0",
33
- "to": "^3.5.3"
33
+ "to": "^3.5.5"
34
34
  },
35
35
  "smol-toml": {
36
36
  "from": "1.5.2",
37
- "to": "^1.7.0"
37
+ "to": "^1.7.1"
38
38
  },
39
39
  "undici": {
40
40
  "from": "5.29.0",
@@ -45,6 +45,6 @@
45
45
  "to": "^4.4.3"
46
46
  }
47
47
  },
48
- "timestamp": "2026-07-26T01:06:04.242Z",
48
+ "timestamp": "2026-08-02T00:58:10.382Z",
49
49
  "totalUpdated": 11
50
50
  }
@@ -9,32 +9,37 @@ import {
9
9
  handleVcrApiError,
10
10
  resolveVcrScope,
11
11
  validateVcrJsonOutput
12
- } from "./chunk-GP5VCTEU.js";
12
+ } from "./chunk-62MH5KPX.js";
13
+ import "./chunk-G75NFPIT.js";
13
14
  import {
14
15
  outputError
15
16
  } from "./chunk-BUZRVER7.js";
16
17
  import "./chunk-XPKWKPWA.js";
17
18
  import {
18
19
  addSubcommand
19
- } from "./chunk-3VS4DTAU.js";
20
- import "./chunk-GIL3VAUR.js";
21
- import "./chunk-FYQPTH5C.js";
22
- import "./chunk-TBR2Q37Y.js";
20
+ } from "./chunk-AW5YINX6.js";
21
+ import "./chunk-A5KP5HAI.js";
22
+ import "./chunk-J6LK45HT.js";
23
+ import "./chunk-B3JTF4CF.js";
24
+ import "./chunk-R6IGDGX3.js";
25
+ import "./chunk-4CCY5OPH.js";
23
26
  import "./chunk-ECCWJHC6.js";
24
27
  import {
25
28
  AGENT_REASON,
26
29
  buildCommandWithGlobalFlags,
27
30
  outputAgentError
28
- } from "./chunk-UDWRZXIT.js";
31
+ } from "./chunk-TJJ562C5.js";
29
32
  import {
30
- parseArguments,
31
33
  printError
32
- } from "./chunk-SZXT3PDQ.js";
34
+ } from "./chunk-KBEX5MYS.js";
35
+ import {
36
+ parseArguments
37
+ } from "./chunk-XLKFJPMT.js";
33
38
  import {
34
39
  getFlagsSpecification,
35
40
  isAPIError,
36
41
  packageName
37
- } from "./chunk-KSSNLCL4.js";
42
+ } from "./chunk-SOFC4MLS.js";
38
43
  import "./chunk-P4QNYOFB.js";
39
44
  import "./chunk-52QYYTM5.js";
40
45
  import {
@@ -9,31 +9,33 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesCollectionPath
12
- } from "./chunk-MAHINYBW.js";
13
- import "./chunk-T4NODP6Y.js";
12
+ } from "./chunk-Y5GTPWXB.js";
13
+ import "./chunk-YDUINEII.js";
14
14
  import "./chunk-BUZRVER7.js";
15
15
  import {
16
16
  validateJsonOutput
17
17
  } from "./chunk-XPKWKPWA.js";
18
18
  import {
19
19
  rulesAddSubcommand
20
- } from "./chunk-KCF6S3XF.js";
21
- import "./chunk-TBR2Q37Y.js";
20
+ } from "./chunk-4UYKSYKQ.js";
21
+ import "./chunk-4CCY5OPH.js";
22
22
  import "./chunk-ECCWJHC6.js";
23
23
  import {
24
24
  AGENT_REASON,
25
25
  buildCommandWithGlobalFlags,
26
26
  outputAgentError
27
- } from "./chunk-UDWRZXIT.js";
27
+ } from "./chunk-TJJ562C5.js";
28
28
  import {
29
- parseArguments,
30
29
  printError
31
- } from "./chunk-SZXT3PDQ.js";
30
+ } from "./chunk-KBEX5MYS.js";
31
+ import {
32
+ parseArguments
33
+ } from "./chunk-XLKFJPMT.js";
32
34
  import {
33
35
  getFlagsSpecification,
34
36
  isAPIError,
35
37
  packageName
36
- } from "./chunk-KSSNLCL4.js";
38
+ } from "./chunk-SOFC4MLS.js";
37
39
  import "./chunk-P4QNYOFB.js";
38
40
  import "./chunk-52QYYTM5.js";
39
41
  import {
@@ -0,0 +1,187 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ MAX_CONCURRENT_REQUESTS,
9
+ parseTeamRefs,
10
+ require_async_sema,
11
+ teamRefBody
12
+ } from "./chunk-3ZE5CFVM.js";
13
+ import {
14
+ repositoryPermissionsPath
15
+ } from "./chunk-BEQV3X2L.js";
16
+ import {
17
+ emitVcrArgParseError,
18
+ resolveVcrScope,
19
+ validateVcrJsonOutput
20
+ } from "./chunk-62MH5KPX.js";
21
+ import "./chunk-G75NFPIT.js";
22
+ import {
23
+ outputError
24
+ } from "./chunk-BUZRVER7.js";
25
+ import "./chunk-XPKWKPWA.js";
26
+ import {
27
+ permissionsAddSubcommand
28
+ } from "./chunk-J6LK45HT.js";
29
+ import "./chunk-R6IGDGX3.js";
30
+ import "./chunk-4CCY5OPH.js";
31
+ import "./chunk-ECCWJHC6.js";
32
+ import {
33
+ AGENT_REASON,
34
+ buildCommandWithGlobalFlags,
35
+ outputAgentError
36
+ } from "./chunk-TJJ562C5.js";
37
+ import {
38
+ printError
39
+ } from "./chunk-KBEX5MYS.js";
40
+ import {
41
+ parseArguments
42
+ } from "./chunk-XLKFJPMT.js";
43
+ import {
44
+ getFlagsSpecification,
45
+ isAPIError,
46
+ packageName
47
+ } from "./chunk-SOFC4MLS.js";
48
+ import "./chunk-P4QNYOFB.js";
49
+ import "./chunk-52QYYTM5.js";
50
+ import {
51
+ output_manager_default
52
+ } from "./chunk-OX7KI3LF.js";
53
+ import "./chunk-GGP5R3FU.js";
54
+ import "./chunk-S7KYDPEM.js";
55
+ import {
56
+ __toESM
57
+ } from "./chunk-TZ2YI2VH.js";
58
+
59
+ // src/commands/vcr/permissions/add.ts
60
+ var import_async_sema = __toESM(require_async_sema(), 1);
61
+ var USAGE = "vcr permissions <repository> add <team>[,<team>...]";
62
+ async function add(client, argv, telemetry) {
63
+ let parsedArgs;
64
+ try {
65
+ parsedArgs = parseArguments(
66
+ argv,
67
+ getFlagsSpecification(permissionsAddSubcommand.options)
68
+ );
69
+ } catch (err) {
70
+ emitVcrArgParseError(client, err, USAGE);
71
+ printError(err);
72
+ return 1;
73
+ }
74
+ const fr = validateVcrJsonOutput(client, parsedArgs.flags);
75
+ if (typeof fr === "number") {
76
+ return fr;
77
+ }
78
+ const repository = parsedArgs.args[0];
79
+ const teamRefs = parseTeamRefs(parsedArgs.args.slice(2));
80
+ const project = parsedArgs.flags["--project"];
81
+ telemetry.trackCliOptionProject(project);
82
+ telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);
83
+ if (teamRefs.length === 0) {
84
+ outputAgentError(
85
+ client,
86
+ {
87
+ status: "error",
88
+ reason: AGENT_REASON.MISSING_ARGUMENTS,
89
+ message: `Missing team. Example: ${packageName} vcr permissions ${repository} add team_1a2b3c4d`,
90
+ next: [
91
+ {
92
+ command: buildCommandWithGlobalFlags(client.argv, USAGE),
93
+ when: "Replace <team> with a team id or slug (comma-separate multiple teams)"
94
+ }
95
+ ]
96
+ },
97
+ 1
98
+ );
99
+ return outputError(
100
+ client,
101
+ fr.jsonOutput,
102
+ "MISSING_ARGUMENTS",
103
+ `Usage: \`vercel ${USAGE}\``
104
+ );
105
+ }
106
+ const scope = await resolveVcrScope(client, {
107
+ project,
108
+ jsonOutput: fr.jsonOutput
109
+ });
110
+ if (typeof scope === "number") {
111
+ return scope;
112
+ }
113
+ const path = repositoryPermissionsPath(scope, repository);
114
+ const added = [];
115
+ const failed = [];
116
+ output_manager_default.spinner(
117
+ `Sharing ${repository} with ${teamRefs.length === 1 ? teamRefs[0] : `${teamRefs.length} teams`}...`
118
+ );
119
+ const sema = new import_async_sema.default(MAX_CONCURRENT_REQUESTS);
120
+ let results;
121
+ try {
122
+ results = await Promise.all(
123
+ teamRefs.map(async (team) => {
124
+ await sema.acquire();
125
+ try {
126
+ const result = await client.fetch(path, {
127
+ method: "POST",
128
+ body: teamRefBody(team)
129
+ });
130
+ return { ok: true, team, permission: result.permission };
131
+ } catch (err) {
132
+ if (!isAPIError(err)) {
133
+ throw err;
134
+ }
135
+ const message = err.serverMessage || `API error (${err.status}).`;
136
+ return {
137
+ ok: false,
138
+ team,
139
+ failure: { team, code: err.code || "API_ERROR", message }
140
+ };
141
+ } finally {
142
+ sema.release();
143
+ }
144
+ })
145
+ );
146
+ } finally {
147
+ output_manager_default.stopSpinner();
148
+ }
149
+ for (const result of results) {
150
+ if (result.ok) {
151
+ added.push(result.permission);
152
+ if (!fr.jsonOutput) {
153
+ output_manager_default.success(
154
+ `Shared ${repository} with ${result.permission?.teamSlug ?? result.team}`
155
+ );
156
+ }
157
+ } else {
158
+ failed.push(result.failure);
159
+ if (!fr.jsonOutput) {
160
+ output_manager_default.error(
161
+ `Failed to share ${repository} with ${result.team}: ${result.failure.message}`
162
+ );
163
+ }
164
+ }
165
+ }
166
+ if (failed.length > 0) {
167
+ outputAgentError(
168
+ client,
169
+ {
170
+ status: "error",
171
+ reason: AGENT_REASON.API_ERROR,
172
+ message: `Failed to share ${repository} with ${failed.map((f) => `${f.team} (${f.message})`).join(", ")}`
173
+ },
174
+ 1
175
+ );
176
+ }
177
+ if (fr.jsonOutput) {
178
+ client.stdout.write(
179
+ `${JSON.stringify({ permissions: added, failed }, null, 2)}
180
+ `
181
+ );
182
+ }
183
+ return failed.length > 0 ? 1 : 0;
184
+ }
185
+ export {
186
+ add as default
187
+ };
@@ -0,0 +1,243 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ DEFAULT_TAG,
9
+ buildRepositoryReference,
10
+ parseNameArg,
11
+ validateImageParts
12
+ } from "./chunk-RBIFXFZX.js";
13
+ import {
14
+ VCR_ENGINES,
15
+ emitVcrArgParseError,
16
+ isBuildxAvailable,
17
+ isEngineInstalled,
18
+ pushCompressionArgs,
19
+ reportEngineCommandFailure,
20
+ reportEnginePushFailure,
21
+ resolveRegistry,
22
+ resolveVcrScope,
23
+ runEngine,
24
+ splitPassthrough,
25
+ validateVcrChoice
26
+ } from "./chunk-62MH5KPX.js";
27
+ import "./chunk-G75NFPIT.js";
28
+ import {
29
+ outputError
30
+ } from "./chunk-BUZRVER7.js";
31
+ import "./chunk-XPKWKPWA.js";
32
+ import {
33
+ buildSubcommand
34
+ } from "./chunk-AW5YINX6.js";
35
+ import "./chunk-A5KP5HAI.js";
36
+ import "./chunk-J6LK45HT.js";
37
+ import "./chunk-B3JTF4CF.js";
38
+ import "./chunk-R6IGDGX3.js";
39
+ import "./chunk-4CCY5OPH.js";
40
+ import "./chunk-ECCWJHC6.js";
41
+ import {
42
+ AGENT_REASON,
43
+ buildCommandWithGlobalFlags,
44
+ outputAgentError
45
+ } from "./chunk-TJJ562C5.js";
46
+ import {
47
+ printError
48
+ } from "./chunk-KBEX5MYS.js";
49
+ import {
50
+ parseArguments
51
+ } from "./chunk-XLKFJPMT.js";
52
+ import {
53
+ getFlagsSpecification
54
+ } from "./chunk-SOFC4MLS.js";
55
+ import "./chunk-P4QNYOFB.js";
56
+ import "./chunk-52QYYTM5.js";
57
+ import {
58
+ output_manager_default
59
+ } from "./chunk-OX7KI3LF.js";
60
+ import "./chunk-GGP5R3FU.js";
61
+ import "./chunk-S7KYDPEM.js";
62
+ import "./chunk-TZ2YI2VH.js";
63
+
64
+ // src/commands/vcr/build.ts
65
+ var DEFAULT_PLATFORM = "linux/amd64";
66
+ async function build(client, telemetry) {
67
+ const { own, passthrough } = splitPassthrough(client.argv);
68
+ let parsedArgs;
69
+ try {
70
+ parsedArgs = parseArguments(
71
+ own,
72
+ getFlagsSpecification(buildSubcommand.options)
73
+ );
74
+ } catch (err) {
75
+ emitVcrArgParseError(client, err, "vcr build <engine> [path] [name[:tag]]");
76
+ printError(err);
77
+ return 1;
78
+ }
79
+ const [engineArg, pathArg, nameArg] = parsedArgs.args.slice(2);
80
+ const project = parsedArgs.flags["--project"];
81
+ const platform = parsedArgs.flags["--platform"];
82
+ const push = Boolean(parsedArgs.flags["--push"]);
83
+ telemetry.trackCliArgumentEngine(engineArg);
84
+ telemetry.trackCliArgumentPath(pathArg);
85
+ telemetry.trackCliArgumentName(nameArg);
86
+ telemetry.trackCliOptionProject(project);
87
+ telemetry.trackCliOptionPlatform(platform);
88
+ telemetry.trackCliFlagPush(push);
89
+ if (!engineArg) {
90
+ const message = `Missing engine. Choose one of: ${VCR_ENGINES.join(", ")}.`;
91
+ outputAgentError(
92
+ client,
93
+ {
94
+ status: "error",
95
+ reason: AGENT_REASON.MISSING_ARGUMENTS,
96
+ message,
97
+ next: [
98
+ {
99
+ command: buildCommandWithGlobalFlags(
100
+ client.argv,
101
+ "vcr build docker"
102
+ ),
103
+ when: "Replace docker with the container tool you use"
104
+ }
105
+ ]
106
+ },
107
+ 1
108
+ );
109
+ return outputError(client, false, "MISSING_ARGUMENTS", message);
110
+ }
111
+ const choiceError = validateVcrChoice(
112
+ client,
113
+ "engine",
114
+ engineArg,
115
+ VCR_ENGINES,
116
+ false
117
+ );
118
+ if (typeof choiceError === "number") {
119
+ return choiceError;
120
+ }
121
+ const engine = engineArg;
122
+ if (!isEngineInstalled(engine)) {
123
+ const message = `\`${engine}\` is not installed or not on your PATH. Install it and try again.`;
124
+ outputAgentError(
125
+ client,
126
+ {
127
+ status: "error",
128
+ reason: "engine_not_found",
129
+ message
130
+ },
131
+ 1
132
+ );
133
+ return outputError(client, false, "ENGINE_NOT_FOUND", message);
134
+ }
135
+ const scope = await resolveVcrScope(client, { project, jsonOutput: false });
136
+ if (typeof scope === "number") {
137
+ return scope;
138
+ }
139
+ const parsed = parseNameArg(nameArg, scope.projectName);
140
+ if ("error" in parsed) {
141
+ outputAgentError(
142
+ client,
143
+ {
144
+ status: "error",
145
+ reason: AGENT_REASON.INVALID_ARGUMENTS,
146
+ message: parsed.error
147
+ },
148
+ 1
149
+ );
150
+ return outputError(client, false, "INVALID_ARGUMENTS", parsed.error);
151
+ }
152
+ const validationError = validateImageParts(parsed);
153
+ if (validationError) {
154
+ outputAgentError(
155
+ client,
156
+ {
157
+ status: "error",
158
+ reason: AGENT_REASON.INVALID_ARGUMENTS,
159
+ message: validationError
160
+ },
161
+ 1
162
+ );
163
+ return outputError(client, false, "INVALID_ARGUMENTS", validationError);
164
+ }
165
+ const base = buildRepositoryReference({
166
+ registry: resolveRegistry(),
167
+ teamSlug: scope.teamSlug,
168
+ projectName: scope.projectName,
169
+ repository: parsed.repository
170
+ });
171
+ const ref = `${base}:${parsed.tag ?? DEFAULT_TAG}`;
172
+ const contextPath = pathArg ?? ".";
173
+ const buildPlatform = platform ?? DEFAULT_PLATFORM;
174
+ if (push && engine === "docker" && await isBuildxAvailable()) {
175
+ const outputSpec = `type=image,name=${ref},push=true,oci-mediatypes=true,compression=zstd,compression-level=3,force-compression=true`;
176
+ const engineArgs2 = [
177
+ "buildx",
178
+ "build",
179
+ "--platform",
180
+ buildPlatform,
181
+ "--output",
182
+ outputSpec,
183
+ ...passthrough,
184
+ contextPath
185
+ ];
186
+ output_manager_default.log(`Running: ${engine} ${engineArgs2.join(" ")}`);
187
+ const result2 = await runEngine(engine, engineArgs2, {
188
+ cwd: client.cwd,
189
+ captureStderr: true
190
+ });
191
+ if (result2.exitCode !== 0) {
192
+ return reportEnginePushFailure(client, engine, "buildx build", result2);
193
+ }
194
+ output_manager_default.success(`Built and pushed ${ref} (zstd compression)`);
195
+ return 0;
196
+ }
197
+ if (push && engine === "docker") {
198
+ output_manager_default.warn(
199
+ "Docker Buildx is not available; building and pushing without zstd compression. Install Buildx for smaller, faster image pushes."
200
+ );
201
+ }
202
+ const engineArgs = [
203
+ "build",
204
+ "--platform",
205
+ buildPlatform,
206
+ "--tag",
207
+ ref,
208
+ ...passthrough,
209
+ contextPath
210
+ ];
211
+ output_manager_default.log(`Running: ${engine} ${engineArgs.join(" ")}`);
212
+ const result = await runEngine(engine, engineArgs, { cwd: client.cwd });
213
+ if (result.exitCode !== 0) {
214
+ return reportEngineCommandFailure(client, engine, "build", result);
215
+ }
216
+ if (!push) {
217
+ output_manager_default.success(`Built ${ref}`);
218
+ output_manager_default.log(
219
+ `Push it with \`${buildCommandWithGlobalFlags(
220
+ client.argv,
221
+ `vcr push ${engine}${nameArg ? ` ${nameArg}` : ""}`
222
+ )}\`.`
223
+ );
224
+ return 0;
225
+ }
226
+ const pushArgs = ["push", ...pushCompressionArgs(engine), ref];
227
+ output_manager_default.log(`Running: ${engine} ${pushArgs.join(" ")}`);
228
+ const pushResult = await runEngine(engine, pushArgs, {
229
+ cwd: client.cwd,
230
+ captureStderr: true
231
+ });
232
+ if (pushResult.exitCode !== 0) {
233
+ return reportEnginePushFailure(client, engine, "push", pushResult);
234
+ }
235
+ const compressed = engine !== "docker";
236
+ output_manager_default.success(
237
+ `Built and pushed ${ref}${compressed ? " (zstd compression)" : ""}`
238
+ );
239
+ return 0;
240
+ }
241
+ export {
242
+ build as default
243
+ };
@@ -6,22 +6,22 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  setupAndLink
9
- } from "./chunk-NRNMT43R.js";
9
+ } from "./chunk-UE3JUVUZ.js";
10
10
  import {
11
11
  detectExplicitScope,
12
12
  getLinkedProject,
13
13
  param,
14
14
  printProjectNotFoundError,
15
15
  resolveProjectCwd
16
- } from "./chunk-TBR2Q37Y.js";
16
+ } from "./chunk-4CCY5OPH.js";
17
17
  import {
18
18
  buildCommandWithYes,
19
19
  outputActionRequired
20
- } from "./chunk-UDWRZXIT.js";
20
+ } from "./chunk-TJJ562C5.js";
21
21
  import {
22
22
  getCommandName,
23
23
  getCommandNamePlain
24
- } from "./chunk-KSSNLCL4.js";
24
+ } from "./chunk-SOFC4MLS.js";
25
25
  import {
26
26
  output_manager_default
27
27
  } from "./chunk-OX7KI3LF.js";
@@ -11,15 +11,15 @@ import {
11
11
  getLinkedProject,
12
12
  getProjectByNameOrId,
13
13
  getScope
14
- } from "./chunk-TBR2Q37Y.js";
14
+ } from "./chunk-4CCY5OPH.js";
15
15
  import {
16
16
  printError
17
- } from "./chunk-SZXT3PDQ.js";
17
+ } from "./chunk-KBEX5MYS.js";
18
18
  import {
19
19
  ProjectNotFound,
20
20
  getCommandName,
21
21
  isAPIError
22
- } from "./chunk-KSSNLCL4.js";
22
+ } from "./chunk-SOFC4MLS.js";
23
23
  import {
24
24
  output_manager_default
25
25
  } from "./chunk-OX7KI3LF.js";
@@ -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-3242RXCN.js";
9
+ } from "./chunk-M5NOLAJ4.js";
10
10
  import {
11
11
  autoInstallVercelPlugin
12
12
  } from "./chunk-NJUPUGOE.js";
@@ -15,30 +15,32 @@ import {
15
15
  } from "./chunk-64IF634X.js";
16
16
  import {
17
17
  ensureLink
18
- } from "./chunk-HD7B425F.js";
18
+ } from "./chunk-2FMPLU44.js";
19
19
  import {
20
20
  pullCommand
21
- } from "./chunk-NH43BFJ3.js";
21
+ } from "./chunk-YCPUAG77.js";
22
22
  import {
23
23
  help
24
- } from "./chunk-DMSLNAVH.js";
24
+ } from "./chunk-ZX2FSPWV.js";
25
25
  import {
26
26
  VERCEL_DIR,
27
27
  VERCEL_DIR_PROJECT,
28
28
  envPullCommandLogic,
29
29
  humanizePath,
30
30
  parseTarget
31
- } from "./chunk-TBR2Q37Y.js";
31
+ } from "./chunk-4CCY5OPH.js";
32
32
  import {
33
33
  TelemetryClient
34
34
  } from "./chunk-ECCWJHC6.js";
35
35
  import {
36
- parseArguments,
37
36
  printError
38
- } from "./chunk-SZXT3PDQ.js";
37
+ } from "./chunk-KBEX5MYS.js";
38
+ import {
39
+ parseArguments
40
+ } from "./chunk-XLKFJPMT.js";
39
41
  import {
40
42
  getFlagsSpecification
41
- } from "./chunk-KSSNLCL4.js";
43
+ } from "./chunk-SOFC4MLS.js";
42
44
  import {
43
45
  emoji,
44
46
  output_manager_default,
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  truncateEnd
9
- } from "./chunk-OF2GNB42.js";
9
+ } from "./chunk-RQ7H43CJ.js";
10
10
  import {
11
11
  require_dist
12
12
  } from "./chunk-OX7KI3LF.js";
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  ALIGNED_LABEL_WIDTH
9
- } from "./chunk-TBR2Q37Y.js";
9
+ } from "./chunk-4CCY5OPH.js";
10
10
  import {
11
11
  require_ms
12
12
  } from "./chunk-GGP5R3FU.js";