vercel 59.19.1 → 59.22.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 (167) hide show
  1. package/dist/chunks/{add-SKKI525V.js → add-4XDHZES6.js} +1 -1
  2. package/dist/chunks/{add-EM223ILV.js → add-DTHT6FBK.js} +1 -1
  3. package/dist/chunks/{add-G5SYPCB4.js → add-ZQXW2ONT.js} +1 -1
  4. package/dist/chunks/{build-JEZ2ELHZ.js → build-JORIG5OD.js} +1 -1
  5. package/dist/chunks/chunk-2EY7NJ5E.js +9 -0
  6. package/dist/chunks/{chunk-KU32YRCG.js → chunk-2U7K4KDF.js} +1 -1
  7. package/dist/chunks/{chunk-GWPIATTW.js → chunk-3GUBYJN6.js} +1 -1
  8. package/dist/chunks/{chunk-VRBSHDYH.js → chunk-3RLCABDN.js} +1 -1
  9. package/dist/chunks/{chunk-XPTHZQSQ.js → chunk-3VRLKRIC.js} +1 -1
  10. package/dist/chunks/{chunk-IERVS47L.js → chunk-4WSAOLBH.js} +1 -1
  11. package/dist/chunks/{chunk-MIGWUMB3.js → chunk-5LCQGGTH.js} +1 -1
  12. package/dist/chunks/{chunk-DLKR2CG6.js → chunk-6BZCSVH6.js} +1 -1
  13. package/dist/chunks/{chunk-U6TAKLJ6.js → chunk-6LE3FU2P.js} +1 -1
  14. package/dist/chunks/{chunk-IH2HZFLM.js → chunk-6LE44WCK.js} +1 -1
  15. package/dist/chunks/{chunk-RVJ2E3BM.js → chunk-6OI6SRHZ.js} +1 -1
  16. package/dist/chunks/{chunk-MBHVWCFE.js → chunk-77GUJ4JC.js} +1 -1
  17. package/dist/chunks/{chunk-PNRWNSM2.js → chunk-7B5NNJ2P.js} +1 -1
  18. package/dist/chunks/{chunk-NLQNFWX2.js → chunk-7JMXZGXY.js} +1 -1
  19. package/dist/chunks/{chunk-QYPQGOSO.js → chunk-7XSHE5SA.js} +1 -1
  20. package/dist/chunks/{chunk-W2XUH2WW.js → chunk-A5VLP25I.js} +1 -1
  21. package/dist/chunks/chunk-AZ6NRDHG.js +7 -0
  22. package/dist/chunks/{chunk-GCHDJ44X.js → chunk-B7FOQCPU.js} +1 -1
  23. package/dist/chunks/{chunk-33FG2PIV.js → chunk-BSOZ3UP2.js} +1 -1
  24. package/dist/chunks/{chunk-WR5OOWD6.js → chunk-BX5KDMLT.js} +1 -1
  25. package/dist/chunks/{chunk-3FMJYJUR.js → chunk-CGXXEPYI.js} +2 -0
  26. package/dist/chunks/{chunk-OROPHBHW.js → chunk-CKX6OH4B.js} +1 -1
  27. package/dist/chunks/{chunk-FUK2JEKI.js → chunk-CLKTBUI7.js} +1 -1
  28. package/dist/chunks/{chunk-EGG7SPNM.js → chunk-DQ2KI6FO.js} +1 -1
  29. package/dist/chunks/chunk-EQP3SW72.js +7 -0
  30. package/dist/chunks/{chunk-RTRCTYW6.js → chunk-EWWFNMPZ.js} +4 -3
  31. package/dist/chunks/{chunk-XZYKYDQO.js → chunk-EYXFDREA.js} +1 -1
  32. package/dist/chunks/{chunk-ZVFZIWBV.js → chunk-FA6O7FPC.js} +1 -1
  33. package/dist/chunks/{chunk-F5HAX74T.js → chunk-FYSA677K.js} +4 -4
  34. package/dist/chunks/{chunk-E4CRGS56.js → chunk-GHULCYAR.js} +1 -1
  35. package/dist/chunks/{chunk-LASMHNUP.js → chunk-GJTA7DJO.js} +1 -1
  36. package/dist/chunks/{chunk-B7XCF45C.js → chunk-GPX6W4GB.js} +1 -1
  37. package/dist/chunks/{chunk-ZOI3EEL3.js → chunk-GQQKAFGS.js} +1 -1
  38. package/dist/chunks/{chunk-HBF4YJR2.js → chunk-GRDPI246.js} +1 -1
  39. package/dist/chunks/{chunk-Q2Z6EXCT.js → chunk-GTJ2OLYI.js} +1 -1
  40. package/dist/chunks/{chunk-7O3KGTQ3.js → chunk-HWWHR7H3.js} +1 -1
  41. package/dist/chunks/{chunk-FBVWXFCP.js → chunk-I5CXJNW4.js} +1 -1
  42. package/dist/chunks/{chunk-5ZIZD5ZG.js → chunk-J5X5YRBH.js} +1 -1
  43. package/dist/chunks/{chunk-VDYU5GXV.js → chunk-JOH6CUOG.js} +1 -1
  44. package/dist/chunks/{chunk-556CXJRE.js → chunk-JOV4G2LZ.js} +1 -1
  45. package/dist/chunks/{chunk-Z2LUKMI6.js → chunk-JWC64GEW.js} +1 -1
  46. package/dist/chunks/{chunk-IX4MMEGJ.js → chunk-JXHVB5A7.js} +3 -3
  47. package/dist/chunks/{chunk-OXH3RM6U.js → chunk-KBKN7EI7.js} +1 -1
  48. package/dist/chunks/{chunk-JDQP267R.js → chunk-KUVMCIR4.js} +1 -1
  49. package/dist/chunks/{chunk-GI6G3FJJ.js → chunk-LKI6FRNM.js} +1 -1
  50. package/dist/chunks/{chunk-GGZODU6S.js → chunk-LQBC5QPO.js} +1 -1
  51. package/dist/chunks/{chunk-CQPIWP7K.js → chunk-NZGOQUNN.js} +1 -1
  52. package/dist/chunks/{chunk-327GP3PO.js → chunk-PQ7YG2JU.js} +1 -1
  53. package/dist/chunks/{chunk-AJAO4Q3T.js → chunk-PQTP73R4.js} +1 -1
  54. package/dist/chunks/{chunk-6RHRDUSK.js → chunk-Q3OG3SC4.js} +1 -1
  55. package/dist/chunks/{chunk-7NYQ7CTP.js → chunk-R3B67TKQ.js} +1 -1
  56. package/dist/chunks/{chunk-RIQFJ2MY.js → chunk-RJOVMJZI.js} +4 -4
  57. package/dist/chunks/{chunk-PIKD5KTH.js → chunk-SOQ5DE44.js} +1 -1
  58. package/dist/chunks/{chunk-XM3JW6AL.js → chunk-T2ECF6MX.js} +1 -1
  59. package/dist/chunks/{chunk-ZRS5X7M2.js → chunk-T4AZ3U7O.js} +1 -1
  60. package/dist/chunks/{chunk-4P66SQRS.js → chunk-TBBU37TD.js} +1 -1
  61. package/dist/chunks/{chunk-5XK67SSI.js → chunk-TX4PCSTY.js} +1 -1
  62. package/dist/chunks/{chunk-2Q47GHFX.js → chunk-U6N2RNDI.js} +1 -1
  63. package/dist/chunks/{chunk-AGDWVTJV.js → chunk-UB37A37M.js} +4 -4
  64. package/dist/chunks/{chunk-FNYAHJIZ.js → chunk-UDOFIJ7K.js} +1 -1
  65. package/dist/chunks/{chunk-LZTGSYL3.js → chunk-UXCTETFN.js} +1 -1
  66. package/dist/chunks/{chunk-GTK7TBLW.js → chunk-V5DCSHYJ.js} +1 -1
  67. package/dist/chunks/{chunk-XV6SDZIO.js → chunk-V6IKQCOT.js} +1 -1
  68. package/dist/chunks/{chunk-HKKKVW7W.js → chunk-VG2V4NHC.js} +1 -1
  69. package/dist/chunks/{chunk-BW24TEUN.js → chunk-VIR3KDCQ.js} +1 -1
  70. package/dist/chunks/{chunk-JB45UWGT.js → chunk-W27LUVFI.js} +1 -1
  71. package/dist/chunks/{chunk-FCC3LYIB.js → chunk-W65SRO53.js} +1 -1
  72. package/dist/chunks/chunk-WBE23KLI.js +31 -0
  73. package/dist/chunks/{chunk-CWTXZPUV.js → chunk-WHYH7DVI.js} +2 -1
  74. package/dist/chunks/{chunk-SPPD6HZ7.js → chunk-WXT35K53.js} +1 -1
  75. package/dist/chunks/{chunk-TEFZFCIF.js → chunk-XRHDE2NT.js} +1 -1
  76. package/dist/chunks/{chunk-4VGOAPFY.js → chunk-YMM3VY3J.js} +1 -1
  77. package/dist/chunks/{chunk-TCS3FDID.js → chunk-Z4VR6CQ2.js} +1 -1
  78. package/dist/chunks/{chunk-OWEH7BYO.js → chunk-ZDORSGCG.js} +1 -1
  79. package/dist/chunks/{chunk-XKNCIFFB.js → chunk-ZKWM4JBE.js} +1 -1
  80. package/dist/chunks/{clear-D6L6DOJX.js → clear-74Z2GBIF.js} +1 -1
  81. package/dist/chunks/{compile-vercel-config-HTWCKOXQ.js → compile-vercel-config-MRWI6INC.js} +1 -1
  82. package/dist/chunks/config-7SVPPW7T.js +7 -0
  83. package/dist/chunks/{config-UC3QD67B.js → config-UYP3XEDY.js} +1 -1
  84. package/dist/chunks/{connect-git-provider-LSTDI4TC.js → connect-git-provider-P3SGOW6X.js} +1 -1
  85. package/dist/chunks/{delete-KIBUBKS5.js → delete-E355MKDF.js} +1 -1
  86. package/dist/chunks/{delete-6QE6SZFG.js → delete-QFKW4O7R.js} +1 -1
  87. package/dist/chunks/{detect-projects-64MZJZ6M.js → detect-projects-J3VAJIQD.js} +1 -1
  88. package/dist/chunks/{detect-services-HCM5D7CD.js → detect-services-JTGZ7NCQ.js} +1 -1
  89. package/dist/chunks/{disable-2SIGN57F.js → disable-K4MMQGSO.js} +1 -1
  90. package/dist/chunks/{discard-SU4KZRF4.js → discard-ITZDMBFI.js} +1 -1
  91. package/dist/chunks/{edit-XSC7KTWU.js → edit-3V4C747E.js} +1 -1
  92. package/dist/chunks/{edit-UPPFWMDP.js → edit-7IGZ4EH7.js} +1 -1
  93. package/dist/chunks/{enable-ON2Z35WD.js → enable-4TJRZIE7.js} +1 -1
  94. package/dist/chunks/{exec-ZLT5KH2Z.js → exec-YH5WUJ4C.js} +1 -1
  95. package/dist/chunks/{export-4WCA27XL.js → export-XJIKF2WX.js} +1 -1
  96. package/dist/chunks/{future-LU77KNDL.js → future-BB7OE645.js} +1 -1
  97. package/dist/chunks/{generate-cert-for-deploy-UFWA55HF.js → generate-cert-for-deploy-A4TZHE2Y.js} +1 -1
  98. package/dist/chunks/{image-OUAKVKKW.js → image-4UZ34VE5.js} +1 -1
  99. package/dist/chunks/{import-builders-GAOM5PLP.js → import-builders-7BRUAJT2.js} +1 -1
  100. package/dist/chunks/{inspect-2U2ZS6BV.js → inspect-2U47TXE3.js} +1 -1
  101. package/dist/chunks/{inspect-CPKV2YRR.js → inspect-FUJCRJTQ.js} +1 -1
  102. package/dist/chunks/{inspect-N3RXYOHT.js → inspect-H3D3M4TY.js} +1 -1
  103. package/dist/chunks/{inspect-HSMBKUSW.js → inspect-QLPYWU6F.js} +1 -1
  104. package/dist/chunks/{inspect-VVRA6JZQ.js → inspect-YZP2TUXW.js} +1 -1
  105. package/dist/chunks/{list-A7WJ266A.js → list-AEKIXAC2.js} +1 -1
  106. package/dist/chunks/{list-XGP6PIS5.js → list-AO2NTDVE.js} +1 -1
  107. package/dist/chunks/{list-EPOTOCMN.js → list-UGFJDLK3.js} +1 -1
  108. package/dist/chunks/{login-7ALV7XD4.js → login-GXL33UOO.js} +1 -1
  109. package/dist/chunks/{login-YQ7QPK4A.js → login-RMAISH4F.js} +1 -1
  110. package/dist/chunks/{logs-4WPTTXCS.js → logs-HXT43YFY.js} +1 -1
  111. package/dist/chunks/{ls-62NGKVG2.js → ls-2GUHQ2QY.js} +1 -1
  112. package/dist/chunks/{ls-WLDQKOJX.js → ls-DLX6OKJD.js} +1 -1
  113. package/dist/chunks/{ls-UDE66BQH.js → ls-IFYHOVHI.js} +1 -1
  114. package/dist/chunks/{ls-FOS2BGO3.js → ls-LDTXN5NC.js} +1 -1
  115. package/dist/chunks/{ls-L5IRHEBU.js → ls-MR4IEJXI.js} +1 -1
  116. package/dist/chunks/{ls-OGLSDDB5.js → ls-RYBY45PV.js} +1 -1
  117. package/dist/chunks/{ls-FUXVU2FM.js → ls-T6LDBBIZ.js} +1 -1
  118. package/dist/chunks/{mutate-TA3QMCKY.js → mutate-NMAFXSIS.js} +1 -1
  119. package/dist/chunks/{notifications-4XNZKXKP.js → notifications-VDMQJUX4.js} +1 -1
  120. package/dist/chunks/{open-G2NKF4KL.js → open-OYT4SXL7.js} +1 -1
  121. package/dist/chunks/{openapi-YEDROCHV.js → openapi-DKMCRF2V.js} +1 -1
  122. package/dist/chunks/{permissions-35SS45VZ.js → permissions-RVEIYB2B.js} +1 -1
  123. package/dist/chunks/{prompt-missing-credentials-YVS4S7X2.js → prompt-missing-credentials-QY4MZDT6.js} +1 -1
  124. package/dist/chunks/{publish-LSRQFUBZ.js → publish-I7FUMJAU.js} +1 -1
  125. package/dist/chunks/pull-XCHJWKNY.js +7 -0
  126. package/dist/chunks/{purchase-domain-if-available-KEMVAHHF.js → purchase-domain-if-available-5HP57BPC.js} +1 -1
  127. package/dist/chunks/{push-FLK45IKR.js → push-7H2NJAPB.js} +1 -1
  128. package/dist/chunks/{query-XP27OAHW.js → query-TJ7WEORG.js} +1 -1
  129. package/dist/chunks/{reauthenticate-APC7ZYFC.js → reauthenticate-O6C2AW3J.js} +1 -1
  130. package/dist/chunks/{reorder-F22Q63TM.js → reorder-JCS5LKA6.js} +1 -1
  131. package/dist/chunks/{reply-CPWRB47S.js → reply-SFRIWOPK.js} +1 -1
  132. package/dist/chunks/{resolve-L7Y4FLIS.js → resolve-WTQUYVKI.js} +1 -1
  133. package/dist/chunks/{restore-FOQ5TF47.js → restore-K442WYIM.js} +1 -1
  134. package/dist/chunks/{rm-7CH7JXQR.js → rm-377WPSMT.js} +1 -1
  135. package/dist/chunks/{rm-PWMT2FES.js → rm-576VOXTN.js} +1 -1
  136. package/dist/chunks/{rm-QTAD3MMN.js → rm-K2SG5TT7.js} +1 -1
  137. package/dist/chunks/{rm-IBIBN3TV.js → rm-OUXMNCHX.js} +1 -1
  138. package/dist/chunks/{rm-OQL6ZGQM.js → rm-XFZMZILG.js} +1 -1
  139. package/dist/chunks/{routes-ZD7XUKLY.js → routes-IPGKJ2E4.js} +1 -1
  140. package/dist/chunks/{rule-inspect-SGVM6FEZ.js → rule-inspect-MK7A5LPA.js} +1 -1
  141. package/dist/chunks/{rules-MMAVDLJB.js → rules-4T3OHT34.js} +1 -1
  142. package/dist/chunks/{schema-JYYQBTCL.js → schema-PUOL7JUI.js} +1 -1
  143. package/dist/chunks/{schema-B74HJNER.js → schema-RIUBZXVC.js} +1 -1
  144. package/dist/chunks/{select-org-5OUQKTNI.js → select-org-F2A5JJFH.js} +1 -1
  145. package/dist/chunks/{set-6MRJYM56.js → set-HNSMZTBW.js} +1 -1
  146. package/dist/chunks/setup-and-link-X44IODXA.js +7 -0
  147. package/dist/chunks/{tags-SWK66ZCK.js → tags-7CY2YR27.js} +1 -1
  148. package/dist/chunks/{types-BTHJ46LC.js → types-H3B56MH6.js} +1 -1
  149. package/dist/chunks/{update-UVXYG3Q7.js → update-QAGFDMEF.js} +1 -1
  150. package/dist/commands/build/index.js +1 -1
  151. package/dist/commands/deploy/index.js +5 -5
  152. package/dist/commands/dev/index.js +20 -19
  153. package/dist/commands/env/index.js +2 -2
  154. package/dist/commands/link/index.js +1 -1
  155. package/dist/commands/list/index.js +1 -1
  156. package/dist/commands-bulk.js +745 -724
  157. package/dist/help.js +1 -1
  158. package/dist/index.js +3 -3
  159. package/dist/version.mjs +1 -1
  160. package/package.json +22 -21
  161. package/dist/chunks/chunk-ENBTTYJR.js +0 -7
  162. package/dist/chunks/chunk-JEIMW3CO.js +0 -7
  163. package/dist/chunks/chunk-XPV22OOJ.js +0 -9
  164. package/dist/chunks/chunk-XQWBEAKZ.js +0 -9
  165. package/dist/chunks/config-3PKXC765.js +0 -7
  166. package/dist/chunks/pull-BOJ3ZTIE.js +0 -7
  167. package/dist/chunks/setup-and-link-M6GYPEQY.js +0 -7
@@ -4,7 +4,7 @@ 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{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,readStandardInput,require_dist as require_dist3}from"../../chunks/chunk-COQGD2EI.js";import{getInvalidSubcommand}from"../../chunks/chunk-TG2RCYTH.js";import{ellipsis}from"../../chunks/chunk-ZDX75YNZ.js";import{formatTable}from"../../chunks/chunk-UED2PPFP.js";import"../../chunks/chunk-MBL6TXEJ.js";import{isGuidanceEnabled,suggestNextCommands}from"../../chunks/chunk-EGG7SPNM.js";import{formatEnvironment}from"../../chunks/chunk-GGZODU6S.js";import{validateLsArgs}from"../../chunks/chunk-TCS3FDID.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{getCommandAliases}from"../../chunks/chunk-XPV22OOJ.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-65JYSI26.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-EIXOJUNN.js";import"../../chunks/chunk-OAKO6LVS.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-JEIMW3CO.js";import"../../chunks/chunk-ZKYS7EAB.js";import{autoInstallVercelPlugin}from"../../chunks/chunk-XQWBEAKZ.js";import{require_execa}from"../../chunks/chunk-7O3KGTQ3.js";import{stamp_default}from"../../chunks/chunk-XPXOV5UO.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{ENV_VISIBILITY_DEPRECATION_MESSAGE,SENSITIVE_ENV_VALUE_PLACEHOLDER,formatVisibilityLabel,getApiPublicPrefix,getEnvKeyWarnings,getEnvRecords,getFrameworkPublicPrefix,getLocalSecretFallbackMessage,getLocalSvelteKitPublicPrefixes,getPublicPrefix,getPublicPrefixSecretVisibilityError,getUnavailableSecretValuesMessage,isFlagsSecretNeedingSplit,isSecretEnvVar,looksLikeSecret,looksLikeSecretValue,normalizeStdinEnvValue,pull,pullEnvRecords,removePublicPrefix,resolveEnvVarTypeOption,resolveEnvVarVisibility,shouldConfirmRotationBeforeDelete,validateEnvValue}from"../../chunks/chunk-JB45UWGT.js";import{resolveProjectContext}from"../../chunks/chunk-B7XCF45C.js";import"../../chunks/chunk-CWTXZPUV.js";import"../../chunks/chunk-ULLWCOYC.js";import"../../chunks/chunk-KK4AJES5.js";import"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-BW24TEUN.js";import"../../chunks/chunk-FNYAHJIZ.js";import"../../chunks/chunk-OROPHBHW.js";import"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-U6TAKLJ6.js";import{addSubcommand,envCommand,envTargetChoices,getEnvTargetPlaceholder,isValidEnvTarget,listSubcommand,parseEnvTargetArg,pullSubcommand,removeSubcommand,runSubcommand,updateSubcommand}from"../../chunks/chunk-JDQP267R.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"../../chunks/chunk-DLKR2CG6.js";import{help}from"../../chunks/chunk-XV6SDZIO.js";import"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-7NYQ7CTP.js";import"../../chunks/chunk-E4CRGS56.js";import"../../chunks/chunk-LZTGSYL3.js";import"../../chunks/chunk-WPS6JZF6.js";import"../../chunks/chunk-MBHVWCFE.js";import{TelemetryClient,require_dist as require_dist2}from"../../chunks/chunk-W2XUH2WW.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-4P66SQRS.js";import{parseArguments}from"../../chunks/chunk-ZRS5X7M2.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-AGDWVTJV.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{buildCommandWithYes,buildEnvAddCommandWithPreservedArgs,buildEnvRmCommandWithPreservedArgs,buildEnvUpdateCommandWithPreservedArgs,getPreservedArgsForEnvAdd,getPreservedArgsForEnvRm,getPreservedArgsForEnvUpdate,outputActionRequired,outputAgentError,quoteArg,redactEnvValueArgs,withGlobalFlags}from"../../chunks/chunk-WR5OOWD6.js";import{getFlagsSpecification,getGlobalFlagsFromArgs}from"../../chunks/chunk-JAJW3P42.js";import{printAlignedLabel}from"../../chunks/chunk-4VGOAPFY.js";import"../../chunks/chunk-GTK7TBLW.js";import{getTeamByIdOrSlug}from"../../chunks/chunk-VOZEB6PD.js";import{isAPIError}from"../../chunks/chunk-GI6G3FJJ.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-FI772UVH.js";import{emoji,output_manager_default,prependEmoji}from"../../chunks/chunk-RTRCTYW6.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var import_constants=__toESM(require_dist2(),1);async function addEnvRecord(client,projectId,upsert,type,key,value,targets,gitBranch,visibility){let actionWord=upsert?"Overriding":"Adding";output_manager_default.debug(`${actionWord} ${type} Environment Variable ${key} to ${targets.length} targets`);let target=[],customEnvironmentIds=[];for(let t of targets)(import_constants.PROJECT_ENV_TARGET.includes(t)?target:customEnvironmentIds).push(t);let body={type,key,value,target,customEnvironmentIds:customEnvironmentIds.length>0?customEnvironmentIds:void 0,gitBranch:gitBranch||void 0,...visibility!==void 0?{visibility}:{}},args=upsert?`?upsert=${upsert}`:"",url=`/v10/projects/${projectId}/env${args}`;await client.fetch(url,{method:"POST",body})}var import_error_utils=__toESM(require_dist(),1),knownErrorsCodes=new Set(["BAD_REQUEST","ENV_ALREADY_EXISTS","ENV_CONFLICT","EXISTING_KEY_AND_TARGET","FORBIDDEN","ID_NOT_FOUND","INVALID_KEY","INVALID_VALUE","KEY_INVALID_CHARACTERS","KEY_INVALID_LENGTH","KEY_RESERVED","RESERVED_ENV_VARIABLE","MAX_ENVS_EXCEEDED","MISSING_ID","MISSING_KEY","MISSING_TARGET","MISSING_VALUE","NOT_AUTHORIZED","NOT_DECRYPTABLE","SYSTEM_ENV_WITH_VALUE","TEAM_NOT_FOUND","TOO_MANY_IDS","TOO_MANY_KEYS","UNKNOWN_ERROR","VALUE_INVALID_LENGTH","VALUE_INVALID_TYPE"]);function isKnownError(error){let code=(0,import_error_utils.isErrnoException)(error)?error.code:null;return code?knownErrorsCodes.has(code.toUpperCase()):!1}var EnvAddTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){if(environment){let allStandard=environment.split(",").map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliArgument({arg:"environment",value:allStandard?environment:this.redactedValue})}}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionValue(value){value&&this.trackCliOption({option:"value",value:this.redactedValue})}trackCliOptionVisibility(visibility){if(visibility){let validVisibilities=["config","secret"];this.trackCliOption({option:"visibility",value:validVisibilities.includes(visibility)?visibility:this.redactedValue})}}trackCliOptionType(type){if(type){let validTypes=["config","secret"];this.trackCliOption({option:"type",value:validTypes.includes(type)?type:this.redactedValue})}}trackCliFlagSensitive(sensitive){sensitive&&this.trackCliFlag("sensitive")}trackCliFlagNoSensitive(noSensitive){noSensitive&&this.trackCliFlag("no-sensitive")}trackCliFlagForce(force){force&&this.trackCliFlag("force")}trackCliFlagGuidance(guidance){guidance&&this.trackCliFlag("guidance")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};import{determineAgent}from"@vercel/detect-agent";function includesDevelopment(targets){return targets.length===0||targets.includes("development")}function getProductionSecretPolicyErrorKind(message){return/production secrets?.*different value|different value.*production secrets?/i.test(message)?"different-values":/production secrets?.*(?:own environment group|separat)|(?:own environment group|separat).*production secrets?/i.test(message)?"separate-environments":null}function getProductionSecretPolicyRecovery(kind){return kind==="different-values"?"Use different Secret values for Production and non-Production.":"Create separate Production and non-Production variables with different values."}function getSecretStorageChoice(targets,recommendedReason){let availability=includesDevelopment(targets)?"hidden in the dashboard; Development values can be pulled":"hidden in the dashboard and unavailable to pulls",recommendation=recommendedReason?`; recommended ${recommendedReason}`:"";return`Secret (${availability}${recommendation})`}function getDefaultSecretStorageGuidance(targets){return includesDevelopment(targets)?"Stored as Secret by default. This value is hidden in the dashboard; Development values can be pulled. Use `--type config` for other values you need to read later.":"Stored as Secret by default. This value is hidden in the dashboard and unavailable to pulls; use `--type config` for values you need to read later."}function looksLikeCredentialName(key,publicPrefix=getPublicPrefix(key)){return looksLikeSecret(publicPrefix?key.slice(publicPrefix.length):key)}function filterEnvChoicesForSensitivity(choices,opts){return opts.policyOn?choices.filter(c=>c.value==="development"):choices}function getTargetCompatibilityError(envTargets,isSensitive,policyOn){let hasSensitiveCapable=envTargets.some(t=>t!=="development");return!isSensitive&&policyOn&&hasSensitiveCapable?`Your team requires sensitive Environment Variables for Production and Preview. To add a non-sensitive value, target the Development Environment only. Run ${getCommandName("env add")} with the development target instead.`:null}function resolveFinalType(envTargets,isSensitive,opts){return envTargets.includes("development")&&!isSensitive||opts.forceEncrypted&&!opts.policyOn?"encrypted":isSensitive||opts.forceSensitive||opts.policyOn?"sensitive":"encrypted"}function fillEnvAddTemplate(template,opts){let targetPlaceholder=getEnvTargetPlaceholder();return template.replace(/<name>/g,opts.envName?quoteArg(opts.envName):"<name>").split(targetPlaceholder).join(opts.envTargetArg?quoteArg(opts.envTargetArg):targetPlaceholder).replace(/<git-branch>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<git-branch>").replace(/<gitbranch>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<gitbranch>").replace(/<value>/g,"<value>")}function multiTargetSuggestion(argv,envName,targets,addNoSensitive){let flag=addNoSensitive?" --no-sensitive":"";return{command:buildEnvAddCommandWithPreservedArgs(argv,`env add ${envName} ${targets.join(",")} --value "<value>"${flag} --yes`),when:addNoSensitive?"Add one non-sensitive variable to all listed environments":"Add one variable to multiple environments"}}function filterSensitiveMultiTargetSuggestionTargets(targets,_opts){return targets}function projectLabel(link){return`${link.org.slug}/${link.project.name}`}function formatEnvironmentTarget(target,customEnvironments){let standardTarget=envTargetChoices.find(choice=>choice.value===target);return standardTarget?standardTarget.name:customEnvironments.find(env=>env.id===target||env.slug===target)?.slug??target}function formatEnvironmentTargets(envTargets,customEnvironments){return envTargets.map(target=>formatEnvironmentTarget(target,customEnvironments)).join(", ")}function printEnvAddResult(link,envName,envTargets,envGitBranch,customEnvironments,finalType,force,visibility){output_manager_default.print(`
7
+ import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,readStandardInput,require_dist as require_dist3}from"../../chunks/chunk-COQGD2EI.js";import{getInvalidSubcommand}from"../../chunks/chunk-TG2RCYTH.js";import{ellipsis}from"../../chunks/chunk-ZDX75YNZ.js";import{formatTable}from"../../chunks/chunk-UED2PPFP.js";import"../../chunks/chunk-MBL6TXEJ.js";import{isGuidanceEnabled,suggestNextCommands}from"../../chunks/chunk-DQ2KI6FO.js";import{formatEnvironment}from"../../chunks/chunk-LQBC5QPO.js";import{validateLsArgs}from"../../chunks/chunk-Z4VR6CQ2.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{getCommandAliases}from"../../chunks/chunk-2EY7NJ5E.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-65JYSI26.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-EIXOJUNN.js";import"../../chunks/chunk-OAKO6LVS.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-AZ6NRDHG.js";import"../../chunks/chunk-FAW6NBLQ.js";import"../../chunks/chunk-ZKYS7EAB.js";import{autoInstallVercelPlugin}from"../../chunks/chunk-WBE23KLI.js";import"../../chunks/chunk-UXTHEQVJ.js";import{require_execa}from"../../chunks/chunk-HWWHR7H3.js";import{stamp_default}from"../../chunks/chunk-XPXOV5UO.js";import"../../chunks/chunk-2I64AYHG.js";import"../../chunks/chunk-SOJCELXH.js";import"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{ENV_VISIBILITY_DEPRECATION_MESSAGE,SENSITIVE_ENV_VALUE_PLACEHOLDER,formatVisibilityLabel,getApiPublicPrefix,getEnvKeyWarnings,getEnvRecords,getFrameworkPublicPrefix,getLocalSecretFallbackMessage,getLocalSvelteKitPublicPrefixes,getPublicPrefix,getPublicPrefixSecretVisibilityError,getUnavailableSecretValuesMessage,isFlagsSecretNeedingSplit,isSecretEnvVar,looksLikeSecret,looksLikeSecretValue,normalizeStdinEnvValue,pull,pullEnvRecords,removePublicPrefix,resolveEnvVarTypeOption,resolveEnvVarVisibility,shouldConfirmRotationBeforeDelete,validateEnvValue}from"../../chunks/chunk-W27LUVFI.js";import{resolveProjectContext}from"../../chunks/chunk-GPX6W4GB.js";import"../../chunks/chunk-WHYH7DVI.js";import"../../chunks/chunk-ULLWCOYC.js";import"../../chunks/chunk-KK4AJES5.js";import"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-VIR3KDCQ.js";import"../../chunks/chunk-UDOFIJ7K.js";import"../../chunks/chunk-CKX6OH4B.js";import"../../chunks/chunk-EQP3SW72.js";import"../../chunks/chunk-6LE3FU2P.js";import{addSubcommand,envCommand,envTargetChoices,getEnvTargetPlaceholder,isValidEnvTarget,listSubcommand,parseEnvTargetArg,pullSubcommand,removeSubcommand,runSubcommand,updateSubcommand}from"../../chunks/chunk-KUVMCIR4.js";import{param}from"../../chunks/chunk-SXUEGVWB.js";import{STANDARD_ENVIRONMENTS,formatProject}from"../../chunks/chunk-6BZCSVH6.js";import{help}from"../../chunks/chunk-V6IKQCOT.js";import"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-R3B67TKQ.js";import"../../chunks/chunk-GHULCYAR.js";import"../../chunks/chunk-UXCTETFN.js";import"../../chunks/chunk-WPS6JZF6.js";import"../../chunks/chunk-77GUJ4JC.js";import{TelemetryClient,require_dist as require_dist2}from"../../chunks/chunk-A5VLP25I.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-TBBU37TD.js";import{parseArguments}from"../../chunks/chunk-T4AZ3U7O.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import"../../chunks/chunk-UB37A37M.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{buildCommandWithYes,buildEnvAddCommandWithPreservedArgs,buildEnvRmCommandWithPreservedArgs,buildEnvUpdateCommandWithPreservedArgs,getPreservedArgsForEnvAdd,getPreservedArgsForEnvRm,getPreservedArgsForEnvUpdate,outputActionRequired,outputAgentError,quoteArg,redactEnvValueArgs,withGlobalFlags}from"../../chunks/chunk-BX5KDMLT.js";import{getFlagsSpecification,getGlobalFlagsFromArgs}from"../../chunks/chunk-JAJW3P42.js";import{printAlignedLabel}from"../../chunks/chunk-YMM3VY3J.js";import"../../chunks/chunk-V5DCSHYJ.js";import{getTeamByIdOrSlug}from"../../chunks/chunk-VOZEB6PD.js";import{isAPIError}from"../../chunks/chunk-LKI6FRNM.js";import{getCommandName,getCommandNamePlain,require_lib}from"../../chunks/chunk-FI772UVH.js";import{emoji,output_manager_default,prependEmoji}from"../../chunks/chunk-EWWFNMPZ.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var import_constants=__toESM(require_dist2(),1);async function addEnvRecord(client,projectId,upsert,type,key,value,targets,gitBranch,visibility){let actionWord=upsert?"Overriding":"Adding";output_manager_default.debug(`${actionWord} ${type} Environment Variable ${key} to ${targets.length} targets`);let target=[],customEnvironmentIds=[];for(let t of targets)(import_constants.PROJECT_ENV_TARGET.includes(t)?target:customEnvironmentIds).push(t);let body={type,key,value,target,customEnvironmentIds:customEnvironmentIds.length>0?customEnvironmentIds:void 0,gitBranch:gitBranch||void 0,...visibility!==void 0?{visibility}:{}},args=upsert?`?upsert=${upsert}`:"",url=`/v10/projects/${projectId}/env${args}`;await client.fetch(url,{method:"POST",body})}var import_error_utils=__toESM(require_dist(),1),knownErrorsCodes=new Set(["BAD_REQUEST","ENV_ALREADY_EXISTS","ENV_CONFLICT","EXISTING_KEY_AND_TARGET","FORBIDDEN","ID_NOT_FOUND","INVALID_KEY","INVALID_VALUE","KEY_INVALID_CHARACTERS","KEY_INVALID_LENGTH","KEY_RESERVED","RESERVED_ENV_VARIABLE","MAX_ENVS_EXCEEDED","MISSING_ID","MISSING_KEY","MISSING_TARGET","MISSING_VALUE","NOT_AUTHORIZED","NOT_DECRYPTABLE","SYSTEM_ENV_WITH_VALUE","TEAM_NOT_FOUND","TOO_MANY_IDS","TOO_MANY_KEYS","UNKNOWN_ERROR","VALUE_INVALID_LENGTH","VALUE_INVALID_TYPE"]);function isKnownError(error){let code=(0,import_error_utils.isErrnoException)(error)?error.code:null;return code?knownErrorsCodes.has(code.toUpperCase()):!1}var EnvAddTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){if(environment){let allStandard=environment.split(",").map(t=>t.trim()).every(t=>STANDARD_ENVIRONMENTS.includes(t));this.trackCliArgument({arg:"environment",value:allStandard?environment:this.redactedValue})}}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionValue(value){value&&this.trackCliOption({option:"value",value:this.redactedValue})}trackCliOptionVisibility(visibility){if(visibility){let validVisibilities=["config","secret"];this.trackCliOption({option:"visibility",value:validVisibilities.includes(visibility)?visibility:this.redactedValue})}}trackCliOptionType(type){if(type){let validTypes=["config","secret"];this.trackCliOption({option:"type",value:validTypes.includes(type)?type:this.redactedValue})}}trackCliFlagSensitive(sensitive){sensitive&&this.trackCliFlag("sensitive")}trackCliFlagNoSensitive(noSensitive){noSensitive&&this.trackCliFlag("no-sensitive")}trackCliFlagForce(force){force&&this.trackCliFlag("force")}trackCliFlagGuidance(guidance){guidance&&this.trackCliFlag("guidance")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};import{determineAgent}from"@vercel/detect-agent";function includesDevelopment(targets){return targets.length===0||targets.includes("development")}function getProductionSecretPolicyErrorKind(message){return/production secrets?.*different value|different value.*production secrets?/i.test(message)?"different-values":/production secrets?.*(?:own environment group|separat)|(?:own environment group|separat).*production secrets?/i.test(message)?"separate-environments":null}function getProductionSecretPolicyRecovery(kind){return kind==="different-values"?"Use different Secret values for Production and non-Production.":"Create separate Production and non-Production variables with different values."}function getSecretStorageChoice(targets,recommendedReason){let availability=includesDevelopment(targets)?"hidden in the dashboard; Development values can be pulled":"hidden in the dashboard and unavailable to pulls",recommendation=recommendedReason?`; recommended ${recommendedReason}`:"";return`Secret (${availability}${recommendation})`}function getDefaultSecretStorageGuidance(targets){return includesDevelopment(targets)?"Stored as Secret by default. This value is hidden in the dashboard; Development values can be pulled. Use `--type config` for other values you need to read later.":"Stored as Secret by default. This value is hidden in the dashboard and unavailable to pulls; use `--type config` for values you need to read later."}function looksLikeCredentialName(key,publicPrefix=getPublicPrefix(key)){return looksLikeSecret(publicPrefix?key.slice(publicPrefix.length):key)}function filterEnvChoicesForSensitivity(choices,opts){return opts.policyOn?choices.filter(c=>c.value==="development"):choices}function getTargetCompatibilityError(envTargets,isSensitive,policyOn){let hasSensitiveCapable=envTargets.some(t=>t!=="development");return!isSensitive&&policyOn&&hasSensitiveCapable?`Your team requires sensitive Environment Variables for Production and Preview. To add a non-sensitive value, target the Development Environment only. Run ${getCommandName("env add")} with the development target instead.`:null}function resolveFinalType(envTargets,isSensitive,opts){return envTargets.includes("development")&&!isSensitive||opts.forceEncrypted&&!opts.policyOn?"encrypted":isSensitive||opts.forceSensitive||opts.policyOn?"sensitive":"encrypted"}function fillEnvAddTemplate(template,opts){let targetPlaceholder=getEnvTargetPlaceholder();return template.replace(/<name>/g,opts.envName?quoteArg(opts.envName):"<name>").split(targetPlaceholder).join(opts.envTargetArg?quoteArg(opts.envTargetArg):targetPlaceholder).replace(/<git-branch>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<git-branch>").replace(/<gitbranch>/g,opts.envGitBranch?quoteArg(opts.envGitBranch):"<gitbranch>").replace(/<value>/g,"<value>")}function multiTargetSuggestion(argv,envName,targets,addNoSensitive){let flag=addNoSensitive?" --no-sensitive":"";return{command:buildEnvAddCommandWithPreservedArgs(argv,`env add ${envName} ${targets.join(",")} --value "<value>"${flag} --yes`),when:addNoSensitive?"Add one non-sensitive variable to all listed environments":"Add one variable to multiple environments"}}function filterSensitiveMultiTargetSuggestionTargets(targets,_opts){return targets}function projectLabel(link){return`${link.org.slug}/${link.project.name}`}function formatEnvironmentTarget(target,customEnvironments){let standardTarget=envTargetChoices.find(choice=>choice.value===target);return standardTarget?standardTarget.name:customEnvironments.find(env=>env.id===target||env.slug===target)?.slug??target}function formatEnvironmentTargets(envTargets,customEnvironments){return envTargets.map(target=>formatEnvironmentTarget(target,customEnvironments)).join(", ")}function printEnvAddResult(link,envName,envTargets,envGitBranch,customEnvironments,finalType,force,visibility){output_manager_default.print(`
8
8
  `),printAlignedLabel(force?"Overrode":"Added",envName,{gutter:"\u2713"}),printAlignedLabel("Project",projectLabel(link)),printAlignedLabel("Environments",formatEnvironmentTargets(envTargets,customEnvironments)),envGitBranch&&printAlignedLabel("Branch",envGitBranch);let visibilityLabel=formatVisibilityLabel(visibility,finalType);visibilityLabel&&printAlignedLabel("Type",visibilityLabel)}function printEnvAddWarning(message){output_manager_default.print(`${import_chalk.default.yellow("!")} ${message}
9
9
  `)}function promptEnvValue(client,opts){return client.input.text({message:"Value?",...opts.isSensitive?{transformer:value=>"*".repeat(value.length)}:{}})}function buildHumanEnvAddCommand(argv,commandTemplate){let globalFlags=getGlobalFlagsFromArgs(argv.slice(2),{preserveProject:!0}).filter(flag=>!flag.startsWith("--non-interactive")),suffix=globalFlags.length>0?` ${globalFlags.map(quoteArg).join(" ")}`:"";return getCommandNamePlain(`${commandTemplate}${suffix}`)}async function add(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification(addSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:err instanceof Error?err.message:String(err)},1),printError(err),1}let{args,flags:opts}=parsedArgs,stdInput=await readStandardInput(client.stdin),valueFromFlag=typeof opts["--value"]=="string"?opts["--value"]:void 0,[envName,envTargetArg]=args,positionalGitBranch=args[2],optionGitBranch=typeof opts["--git-branch"]=="string"?opts["--git-branch"]:void 0,envGitBranch=optionGitBranch??positionalGitBranch,forceSensitive=!!opts["--sensitive"],forceEncrypted=!!opts["--no-sensitive"],typeOption=resolveEnvVarTypeOption({type:typeof opts["--type"]=="string"?opts["--type"]:void 0,visibility:typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0}),explicitType=typeOption.explicitVisibility,typeSource=explicitType||forceSensitive||forceEncrypted?"argv":void 0,telemetryClient=new EnvAddTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetryClient.trackCliArgumentName(envName),telemetryClient.trackCliArgumentEnvironment(envTargetArg),telemetryClient.trackCliArgumentGitBranch(positionalGitBranch),telemetryClient.trackCliOptionGitBranch(optionGitBranch),telemetryClient.trackCliOptionValue(valueFromFlag===void 0?void 0:"<redacted>"),telemetryClient.trackCliFlagSensitive(opts["--sensitive"]),telemetryClient.trackCliFlagNoSensitive(opts["--no-sensitive"]),telemetryClient.trackCliFlagForce(opts["--force"]),telemetryClient.trackCliFlagGuidance(opts["--guidance"]),telemetryClient.trackCliFlagYes(opts["--yes"]),telemetryClient.trackCliOptionType(typeof opts["--type"]=="string"?opts["--type"]:void 0),telemetryClient.trackCliOptionVisibility(typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0),telemetryClient.trackCliOptionProject(opts["--project"]),typeOption.error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:typeOption.errorReason??"invalid_type",message:typeOption.error},1),output_manager_default.fatal(typeOption.error),1;typeOption.usedDeprecatedVisibility&&printEnvAddWarning(ENV_VISIBILITY_DEPRECATION_MESSAGE);let typeConflictMessage=forceSensitive?forceEncrypted?"`--sensitive` and `--no-sensitive` cannot be used together. Pick one.":explicitType==="config"?"`--type config` cannot be used with `--sensitive`. Pick one.":null:forceEncrypted&&explicitType==="secret"?"`--type secret` cannot be used with `--no-sensitive`. Pick one.":null;if(typeConflictMessage)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"conflicting_type_flags",message:typeConflictMessage},1),output_manager_default.fatal(typeConflictMessage),1;if(positionalGitBranch&&optionGitBranch)return output_manager_default.error("Git branch was provided twice. Use either `--git-branch <git-branch>` or the legacy third argument."),1;if(args.length>3)return output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName(`env add <name> ${getEnvTargetPlaceholder()} --git-branch <git-branch>`)}`),1;if(stdInput&&(!envName||!envTargetArg))return output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName("env add <name> <target> --git-branch <git-branch> < <file>")}`),1;let envTargets=envTargetArg?parseEnvTargetArg(envTargetArg):[],resolvedLink;if(client.nonInteractive){let link2=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link2.status==="error")return link2.exitCode;if(link2.status==="not_linked"){let preserved=getPreservedArgsForEnvAdd(client.argv),linkPreserved=preserved.filter((a,i)=>!(a==="--value"||a.startsWith("--value=")||i>0&&preserved[i-1]==="--value")),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...linkPreserved],envAddRetryArgv=redactEnvValueArgs(client.argv);if(envTargetArg==="preview"&&envGitBranch===void 0){let argvArgs=client.argv.slice(2),addIdx=argvArgs.indexOf("add");if(addIdx!==-1){let pos=addIdx+1,positionals=0;for(;pos<argvArgs.length&&positionals<3&&!argvArgs[pos].startsWith("-");)positionals++,pos++;let insertAt=2+pos;envAddRetryArgv=redactEnvValueArgs([...client.argv.slice(0,insertAt),"<gitbranch>",...client.argv.slice(insertAt)])}}outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run \`${getCommandNamePlain("link")}\` to begin. Use \`--yes\` for non-interactive mode; use \`--scope\` or \`--project\` to specify a team or project. Then run your \`env add\` command.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(envAddRetryArgv)}]},1)}if(link2.status!=="linked")return 1;resolvedLink=link2;let{project:project2}=link2,org=link2.org;client.config.currentTeam=org.type==="team"?org.id:void 0;let[{envs:envs2},customEnvironments2]=await Promise.all([getEnvRecords(client,project2.id,"vercel-cli:env:add"),getCustomEnvironments(client,project2.id)]),matchingEnvs2=envs2.filter(r=>r.key===envName),existingTargets2=new Set,existingCustomEnvs2=new Set;for(let env of matchingEnvs2){if(typeof env.target=="string")existingTargets2.add(env.target);else if(Array.isArray(env.target))for(let target of env.target)existingTargets2.add(target);if(env.customEnvironmentIds)for(let customEnvId of env.customEnvironmentIds)existingCustomEnvs2.add(customEnvId)}let choices2=[...envTargetChoices.filter(c=>!existingTargets2.has(c.value)),...customEnvironments2.filter(c=>!existingCustomEnvs2.has(c.id)).map(c=>({name:c.slug,value:c.id}))],missing=[];if(envName||missing.push("missing_name"),valueFromFlag===void 0&&!stdInput&&missing.push("missing_value"),!envTargetArg&&choices2.length>0&&missing.push("missing_environment"),envTargetArg==="preview"&&envGitBranch===void 0&&!(client.nonInteractive&&args.length===2)&&missing.push("git_branch_required"),missing.length>0){let parts=missing.map(m=>m==="missing_name"?"variable name":m==="missing_value"?"--value or stdin":m==="missing_environment"?"environment (production, preview, development, or a comma-separated list)":m==="git_branch_required"?"`--git-branch <git-branch>` for Preview, or omit for all Preview branches":m),fullTemplate=`env add <name> ${getEnvTargetPlaceholder()} --value "<value>" --yes`,filledTemplate=fillEnvAddTemplate(fullTemplate,{envName,envTargetArg,envGitBranch}),next=[];if(missing.length===1&&missing[0]==="git_branch_required"||next.push({command:buildEnvAddCommandWithPreservedArgs(client.argv,filledTemplate)}),missing.includes("git_branch_required")&&envName&&(valueFromFlag!==void 0||stdInput)){let branchSpecific=fillEnvAddTemplate('env add <name> preview --git-branch <git-branch> --value "<value>" --yes',{envName,envTargetArg:"preview"}),branchAll=fillEnvAddTemplate('env add <name> preview --value "<value>" --yes',{envName,envTargetArg:"preview"});next.push({command:buildEnvAddCommandWithPreservedArgs(client.argv,branchSpecific),when:"Add to a specific Git branch"},{command:buildEnvAddCommandWithPreservedArgs(client.argv,branchAll),when:"Add to all Preview branches"})}if(missing.includes("missing_environment")){let standardAvailable=choices2.map(c=>c.value).filter(v=>isValidEnvTarget(v)),multiTargets=filterSensitiveMultiTargetSuggestionTargets(standardAvailable,{forceSensitive:!!opts["--sensitive"],policyOn:!1});multiTargets.length>1&&next.push(multiTargetSuggestion(client.argv,envName||"<name>",multiTargets,multiTargets.includes("development")&&!opts["--no-sensitive"]))}outputActionRequired(client,{status:"action_required",reason:"missing_requirements",missing,message:`Provide all required inputs for non-interactive mode: ${parts.join("; ")}. Example: \`${filledTemplate}\``,next},1)}}if(envName||(envName=await client.input.text({message:"Name?",validate:val=>val?!0:"Name cannot be empty"})),!resolvedLink){let link2=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link2.status==="error")return link2.exitCode;if(link2.status==="not_linked"){if(client.nonInteractive){let preserved=getPreservedArgsForEnvAdd(client.argv),linkPreserved=preserved.filter((a,i)=>!(a==="--value"||a.startsWith("--value=")||i>0&&preserved[i-1]==="--value")),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...linkPreserved];outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run ${getCommandNamePlain("link")} to begin. Use --yes for non-interactive; use --scope or --project to specify team or project. Then run your env add command.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(redactEnvValueArgs(client.argv))}]},1)}else output_manager_default.error(`Your codebase isn\u2019t linked to a project on Vercel. Run ${getCommandName("link")} to begin.`);return 1}resolvedLink=link2}let link=resolvedLink;client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let{project}=link;if(explicitType==="secret"||forceSensitive){let publicPrefixError=getPublicPrefixSecretVisibilityError(envName,{visibility:explicitType==="secret"?"secret":void 0,type:"sensitive",context:"add"});if(publicPrefixError)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_type",message:publicPrefixError},1),output_manager_default.fatal(publicPrefixError),1}let keyAccepted=!1;for(;!keyAccepted;){let apiPublicPrefix2=getApiPublicPrefix(envName),frameworkPublicPrefix=getFrameworkPublicPrefix(project.framework,envName),globallyKnownPrefix=getPublicPrefix(envName),keyWarnings=frameworkPublicPrefix!==null&&(explicitType==="secret"||forceSensitive)||globallyKnownPrefix!==null&&apiPublicPrefix2===null&&frameworkPublicPrefix===null?[]:getEnvKeyWarnings(envName);if(!keyWarnings.find(w=>w.requiresConfirmation)){for(let warning of keyWarnings)printEnvAddWarning(warning.message);keyAccepted=!0;break}let nameWithoutPrefix=removePublicPrefix(envName),publicPrefix=getPublicPrefix(envName);if(typeSource==="argv"){for(let warning of keyWarnings)printEnvAddWarning(warning.message);keyAccepted=!0;break}let privateCommand=buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${nameWithoutPrefix} ${envTargetArg??getEnvTargetPlaceholder()} --type secret --value "<value>" --yes`),publicCommand=buildEnvAddCommandWithPreservedArgs(client.argv,`env add ${envName} ${envTargetArg??getEnvTargetPlaceholder()} --type config --value "<value>" --yes`),humanTargetArg=envTargetArg?` ${envTargetArg}`:"",privateHumanCommand=buildHumanEnvAddCommand(client.argv,`env add ${nameWithoutPrefix}${humanTargetArg} --type secret`),publicHumanCommand=buildHumanEnvAddCommand(client.argv,`env add ${envName}${humanTargetArg} --type config`),message=`\`${envName}\` looks like a credential, and \`${publicPrefix}\` exposes its value to anyone visiting your site. Choose explicitly: rename to \`${nameWithoutPrefix}\` with \`--type secret\` to keep it private, or keep the name with \`--type config\` to expose it.`;if(client.nonInteractive||opts["--yes"]||stdInput)return client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"public_prefix_requires_type",message,choices:[{id:"private",name:`Keep private: rename to ${nameWithoutPrefix} and use Secret`},{id:"public",name:`Expose publicly: keep ${envName} as Config`}],next:[{command:privateCommand,when:"Keep it private; replace <value> before running"},{command:publicCommand,when:"Expose it publicly; replace <value> before running"}]}),output_manager_default.fatal(message),output_manager_default.print(` Keep it private:
10
10
  ${privateHumanCommand}
@@ -20,7 +20,7 @@ import{CHECKBOX_INSTRUCTIONS,getCustomEnvironments,readStandardInput,require_dis
20
20
  `)}else envs.length===0?output_manager_default.log(`No Environment Variables found for ${projectSlugLink} ${import_chalk2.default.gray(lsStamp())}`):(output_manager_default.log(`Environment Variables found for ${projectSlugLink} ${import_chalk2.default.gray(lsStamp())}`),client.stdout.write(`${getTable(link,envs,customEnvs)}
21
21
  `));if(!asJson){let{isAgent}=await determineAgent2();isGuidanceEnabled(client,parsedArgs.flags["--guidance"],isAgent)&&suggestNextCommands([{description:"Add an Environment Variable",command:withGlobalFlags(client,"env add",{preserveProject:!0})},{description:"Remove an Environment Variable",command:withGlobalFlags(client,"env rm",{preserveProject:!0})},{description:"Pull Development Environment Variables into .env.local",command:withGlobalFlags(client,"env pull",{preserveProject:!0})}])}return 0}function getTable(link,records,customEnvironments){let label=records.some(env=>env.gitBranch)?"environments (git branch)":"environments";return formatTable(["name","value","type",label,"created"],["l","l","l","l","l"],[{name:"",rows:records.map(row=>getRow(link,row,customEnvironments))}])}function getRow(link,env,customEnvironments){let value;if(isSecretEnvVar(env))value=import_chalk2.default.gray.italic("Hidden");else if(env.type==="system")value=import_chalk2.default.gray.italic(env.value);else{let singleLineValue=env.value.replace(/\s/g," ");value=import_chalk2.default.gray(ellipsis(singleLineValue,19))}let now=Date.now();return[import_chalk2.default.bold(env.key),value,getEnvironmentVariableTypeLabel(env),formatEnvironments(link,env,customEnvironments),env.createdAt?`${(0,import_ms.default)(now-env.createdAt)} ago`:""]}function getEnvironmentVariableTypeLabel(env){return isSecretEnvVar(env)?"Secret":env.type==="system"?"System":"Config"}var import_chalk3=__toESM(require_source(),1);async function removeEnvRecord(client,projectId,env){output_manager_default.debug(`Removing Environment Variable ${env.key}`);let url=`/v10/projects/${projectId}/env/${env.id}`;await client.fetch(url,{method:"DELETE"})}var EnvRmTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}};function printEnvRmWarning(message){output_manager_default.print(`${import_chalk3.default.yellow("!")} ${message}
22
22
  `)}async function rm(client,argv){let telemetryClient=new EnvRmTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(removeSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:err instanceof Error?err.message:String(err)},1),printError(err),1}let{args,flags:opts}=parsedArgs;if(args.length>3)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:`Invalid number of arguments. Usage: \`${getCommandNamePlain(`env rm <name> ${getEnvTargetPlaceholder()} <gitbranch>`)}\``},1),output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName(`env rm <name> ${getEnvTargetPlaceholder()} <gitbranch>`)}`),1;let[envName,envTarget,envGitBranch]=args;telemetryClient.trackCliArgumentName(envName),telemetryClient.trackCliArgumentEnvironment(envTarget),telemetryClient.trackCliArgumentGitBranch(envGitBranch),telemetryClient.trackCliFlagYes(opts["--yes"]),telemetryClient.trackCliOptionProject(opts["--project"]);let link=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link.status==="error")return link.exitCode;if(link.status==="not_linked"){if(client.nonInteractive){let preserved=getPreservedArgsForEnvRm(client.argv).filter(a=>a!=="--yes"&&a!=="-y"),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...preserved];outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run \`${getCommandNamePlain("link")}\` to begin. Use \`--yes\` for non-interactive; use \`--scope\` or \`--project\` to specify team or project.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(client.argv)}]},1)}else output_manager_default.error(`Your codebase isn\u2019t linked to a project on Vercel. Run ${getCommandName("link")} to begin.`);return 1}client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let{project}=link;envName||(client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"missing_name",message:"Provide the variable name as an argument. Example: `vercel env rm <name> --yes`",next:[{command:buildEnvRmCommandWithPreservedArgs(client.argv,`env rm <name> ${getEnvTargetPlaceholder()} --yes`)}]},1),envName=await client.input.text({message:"What's the name of the variable?",validate:val=>val?!0:"Name cannot be empty"}));let[result,customEnvironments]=await Promise.all([getEnvRecords(client,project.id,"vercel-cli:env:rm",{target:envTarget,gitBranch:envGitBranch}),getCustomEnvironments(client,project.id)]),envs=result.envs.filter(env2=>env2.key===envName);if(envs.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"env_not_found",message:`Environment Variable ${envName} was not found.`},1),output_manager_default.error(`Environment Variable was not found.
23
- `),1;for(;envs.length>1;){client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"multiple_envs",message:`Multiple Environment Variables match ${envName}. Specify target and/or branch to remove one.`,next:[{command:buildEnvRmCommandWithPreservedArgs(client.argv,`env rm ${envName} ${getEnvTargetPlaceholder()} --yes`)}]},1);let id=await client.input.select({message:`Remove ${envName} from which Environments?`,choices:envs.map(env2=>({value:env2.id,name:formatEnvironments(link,env2,customEnvironments)}))});id||output_manager_default.error("Please select at least one Environment Variable to remove"),envs=envs.filter(env2=>env2.id===id)}let env=envs[0],shouldWarnAboutRotation=shouldConfirmRotationBeforeDelete({key:env.key,type:env.type,hasPublicPrefix:getPublicPrefix(env.key)!==null}),rotationWarning="Removing this variable from Vercel does not revoke the credential. Rotate or disable it at its provider.";if(shouldWarnAboutRotation&&printEnvRmWarning(rotationWarning),!opts["--yes"]&&(client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"confirmation_required",message:`Removing Environment Variable ${env.key}. ${shouldWarnAboutRotation?`${rotationWarning} `:""}Use --yes to confirm.`,next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Remove ${param(env.key)} from ${formatEnvironments(link,env,customEnvironments)} in Project ${import_chalk3.default.bold(project.name)}?`,!1)))return output_manager_default.log("Canceled"),0;let rmStamp=stamp_default();try{output_manager_default.spinner("Removing"),await removeEnvRecord(client,project.id,env)}catch(err){if(client.nonInteractive&&isAPIError(err)){let reason=err.slug||(err.serverMessage?.toLowerCase().includes("branch")?"branch_not_found":"api_error");outputAgentError(client,{status:"error",reason,message:err.serverMessage},1)}if(isAPIError(err)&&isKnownError(err))return output_manager_default.error(err.serverMessage),1;throw err}return output_manager_default.print(`${prependEmoji(`Removed Environment Variable ${import_chalk3.default.gray(rmStamp())}`,emoji("success"))}
23
+ `),1;for(;envs.length>1;){client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"multiple_envs",message:`Multiple Environment Variables match ${envName}. Specify target and/or branch to remove one.`,next:[{command:buildEnvRmCommandWithPreservedArgs(client.argv,`env rm ${envName} ${getEnvTargetPlaceholder()} --yes`)}]},1);let id=await client.input.select({message:`Remove ${envName} from which Environments?`,choices:envs.map(env2=>({value:env2.id,name:formatEnvironments(link,env2,customEnvironments)}))});id||output_manager_default.error("Please select at least one Environment Variable to remove"),envs=envs.filter(env2=>env2.id===id)}let env=envs[0],targets=Array.isArray(env.target)?env.target:env.target?[env.target]:[],customEnvironmentIds=env.customEnvironmentIds??[],selectedTarget=customEnvironments.find(environment=>environment.id===envTarget||environment.slug===envTarget)?.id??envTarget;if(envTarget&&!targets.includes(selectedTarget)&&!customEnvironmentIds.includes(selectedTarget))return output_manager_default.error("The selected environment does not match this variable. No changes were made."),1;let removesTargetOnly=!!envTarget&&targets.length+customEnvironmentIds.length>1,confirmationEnv=envTarget?{...env,target:targets.filter(target=>target===selectedTarget),customEnvironmentIds:customEnvironmentIds.filter(id=>id===selectedTarget)}:env,shouldWarnAboutRotation=shouldConfirmRotationBeforeDelete({key:env.key,type:env.type,hasPublicPrefix:getPublicPrefix(env.key)!==null}),rotationWarning="Removing this variable from Vercel does not revoke the credential. Rotate or disable it at its provider.";if(shouldWarnAboutRotation&&printEnvRmWarning(rotationWarning),!opts["--yes"]&&(client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"confirmation_required",message:`Removing Environment Variable ${env.key}. ${shouldWarnAboutRotation?`${rotationWarning} `:""}Use --yes to confirm.`,next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Remove ${param(env.key)} from ${formatEnvironments(link,confirmationEnv,customEnvironments)} in Project ${import_chalk3.default.bold(project.name)}?`,!1)))return output_manager_default.log("Canceled"),0;let rmStamp=stamp_default();try{output_manager_default.spinner("Removing"),removesTargetOnly?await client.fetch(`/v10/projects/${project.id}/env/${env.id}`,{method:"PATCH",body:{target:targets.filter(target=>target!==selectedTarget),customEnvironmentIds:customEnvironmentIds.filter(id=>id!==selectedTarget)}}):await removeEnvRecord(client,project.id,env)}catch(err){if(client.nonInteractive&&isAPIError(err)){let reason=err.slug||(err.serverMessage?.toLowerCase().includes("branch")?"branch_not_found":"api_error");outputAgentError(client,{status:"error",reason,message:err.serverMessage},1)}if(isAPIError(err)&&isKnownError(err))return output_manager_default.error(err.serverMessage),1;throw err}return output_manager_default.print(`${prependEmoji(`${removesTargetOnly?`Removed ${envTarget} target from Environment Variable`:"Removed Environment Variable"} ${import_chalk3.default.gray(rmStamp())}`,emoji("success"))}
24
24
  `),0}var import_env=__toESM(require_dist3(),1),import_chalk4=__toESM(require_source(),1),import_execa=__toESM(require_execa(),1);function printEnvRunWarning(message){output_manager_default.print(`${import_chalk4.default.yellow("!")} ${message}
25
25
  `)}function omitUnavailableSecretPlaceholders(localEnv,secretKeys){let safeLocalEnv={...localEnv};for(let key of secretKeys)safeLocalEnv[key]===SENSITIVE_ENV_VALUE_PLACEHOLDER&&delete safeLocalEnv[key];return safeLocalEnv}function parseRunArgs(argv){let argvIndex=argv.indexOf("--"),hasDoubleDash=argvIndex!==-1,vercelArgs=hasDoubleDash?argv.slice(2,argvIndex):argv.slice(2),userCommand=hasDoubleDash?argv.slice(argvIndex+1):[];return{vercelArgs,userCommand}}function needsHelpForRun(client){let{vercelArgs}=parseRunArgs(client.argv),flagsSpecification=getFlagsSpecification(runSubcommand.options);try{return!!parseArguments(vercelArgs,flagsSpecification).flags["--help"]}catch{return!1}}async function run(client,telemetry){let{vercelArgs,userCommand}=parseRunArgs(client.argv),parsedArgs,flagsSpecification=getFlagsSpecification(runSubcommand.options);try{parsedArgs=parseArguments(vercelArgs,flagsSpecification)}catch(error){return printError(error),1}if(userCommand.length===0)return outputActionRequired(client,{status:"action_required",reason:"missing_command",message:"No command provided. Use `--` to separate Vercel flags from your command.",next:[{command:getCommandNamePlain("env run -- <command>")}]},1),output_manager_default.error("No command provided. Use `--` to separate vercel flags from your command."),1;let projectName=parsedArgs.flags["--project"];telemetry.trackCliOptionProject(projectName);let link=await resolveProjectContext({client,projectNameOrId:projectName});if(link.status==="error")return link.exitCode;if(link.status==="not_linked")return outputActionRequired(client,{status:"action_required",reason:"not_linked",message:"Your codebase isn't linked to a project on Vercel. Run `vercel link`, then retry this command.",next:[{command:getCommandNamePlain("link")}]},1),output_manager_default.error(`Your codebase isn't linked to a project on Vercel. Run ${getCommandName("link")} to begin.`),1;client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let environment=parseTarget({flagName:"environment",flags:parsedArgs.flags})||"development",gitBranch=parsedArgs.flags["--git-branch"];output_manager_default.spinner(`Downloading \`${environment}\` environment variables`);let records=await pullEnvRecords(client,link.project.id,"vercel-cli:env:run",{target:environment,gitBranch});output_manager_default.stopSpinner(),output_manager_default.debug(`Running command with ${Object.keys(records.env).length} environment variables`);let localEnv={};try{localEnv=(0,import_env.loadEnvConfig)(client.cwd,!0).combinedEnv}catch(err){output_manager_default.debug(`Failed to load local env files: ${err}`)}let localPlaceholderKeys=Object.entries(localEnv).filter(([,value])=>value===SENSITIVE_ENV_VALUE_PLACEHOLDER).map(([key])=>key),safeLocalEnv=omitUnavailableSecretPlaceholders(localEnv,localPlaceholderKeys),processPlaceholderKeys=Object.keys(records.env).filter(key=>process.env[key]===SENSITIVE_ENV_VALUE_PLACEHOLDER),safeProcessEnv=omitUnavailableSecretPlaceholders(process.env,processPlaceholderKeys),unavailableCandidateKeys=new Set(Object.entries(records.env).filter(([key,value])=>!value&&!safeLocalEnv[key]&&!safeProcessEnv[key]).map(([key])=>key));if(unavailableCandidateKeys.size>0)try{let{envs}=await getEnvRecords(client,link.project.id,"vercel-cli:env:run",{target:environment,gitBranch}),unavailableSecretKeys=envs.filter(env=>isSecretEnvVar(env)&&unavailableCandidateKeys.has(env.key));unavailableSecretKeys.length>0&&printEnvRunWarning(`${getUnavailableSecretValuesMessage(environment,unavailableSecretKeys.length)}${getLocalSecretFallbackMessage(unavailableSecretKeys.length)}`)}catch{}try{let result=await(0,import_execa.default)(userCommand[0],userCommand.slice(1),{cwd:client.cwd,stdio:"inherit",reject:!1,env:{...records.env,...safeLocalEnv,...safeProcessEnv}});return result instanceof Error&&typeof result.exitCode!="number"?(output_manager_default.prettyError(result),1):result.exitCode}catch(err){return output_manager_default.prettyError(err),1}}var import_chalk5=__toESM(require_source(),1);var import_constants3=__toESM(require_dist2(),1);async function updateEnvRecord(client,projectId,envId,type,key,value,targets,gitBranch,visibility){output_manager_default.debug(`Updating ${type} Environment Variable ${key} in ${targets.length} targets`);let target=[],customEnvironmentIds=[];for(let t of targets)(import_constants3.PROJECT_ENV_TARGET.includes(t)?target:customEnvironmentIds).push(t);let body={type,value,target,customEnvironmentIds:customEnvironmentIds.length>0?customEnvironmentIds:void 0,gitBranch:gitBranch||void 0,...visibility!==void 0?{visibility}:{}};key&&(body.key=key);let url=`/v10/projects/${projectId}/env/${envId}`;await client.fetch(url,{method:"PATCH",body})}var EnvUpdateTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:STANDARD_ENVIRONMENTS.includes(environment)?environment:this.redactedValue})}trackCliArgumentGitBranch(gitBranch){gitBranch&&this.trackCliArgument({arg:"git-branch",value:this.redactedValue})}trackCliFlagSensitive(sensitive){sensitive&&this.trackCliFlag("sensitive")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionValue(value){value&&this.trackCliOption({option:"value",value:this.redactedValue})}trackCliOptionVisibility(visibility){if(visibility){let validVisibilities=["config","secret"];this.trackCliOption({option:"visibility",value:validVisibilities.includes(visibility)?visibility:this.redactedValue})}}trackCliOptionType(type){if(type){let validTypes=["config","secret"];this.trackCliOption({option:"type",value:validTypes.includes(type)?type:this.redactedValue})}}};function looksLikeCredentialName2(key,publicPrefix=getPublicPrefix(key)){return looksLikeSecret(publicPrefix?key.slice(publicPrefix.length):key)}function printEnvUpdateWarning(message){output_manager_default.print(`${import_chalk5.default.yellow("!")} ${message}
26
26
  `)}function omitEnvValueArgs(argv){let out=[];for(let i=0;i<argv.length;i++){if(argv[i]==="--value"){i++;continue}argv[i].startsWith("--value=")||out.push(argv[i])}return out}function formatTargetArg(targets,customEnvironments){return targets.map(target=>customEnvironments.find(environment=>environment.id===target||environment.slug===target)?.slug??target).join(",")}function promptEnvUpdateValue(client,envName,isSecret){return client.input.text({message:`What's the new value of ${envName}?`,...isSecret?{transformer:value=>"*".repeat(value.length)}:{}})}async function update(client,argv){let parsedArgs,flagsSpecification=getFlagsSpecification(updateSubcommand.options);try{parsedArgs=parseArguments(argv,flagsSpecification)}catch(err){return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:err instanceof Error?err.message:String(err)},1),printError(err),1}let{args,flags:opts}=parsedArgs,valueFromFlag=typeof opts["--value"]=="string"?opts["--value"]:void 0,stdInput=await readStandardInput(client.stdin),[envName,envTargetArg,envGitBranch]=args,typeOption=resolveEnvVarTypeOption({type:typeof opts["--type"]=="string"?opts["--type"]:void 0,visibility:typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0}),explicitType=typeOption.explicitVisibility,typeWasExplicit=explicitType!==void 0||!!opts["--sensitive"],telemetryClient=new EnvUpdateTelemetryClient({opts:{store:client.telemetryEventStore}});if(telemetryClient.trackCliArgumentName(envName),telemetryClient.trackCliArgumentEnvironment(envTargetArg),telemetryClient.trackCliArgumentGitBranch(envGitBranch),telemetryClient.trackCliFlagSensitive(opts["--sensitive"]),telemetryClient.trackCliFlagYes(opts["--yes"]),telemetryClient.trackCliOptionValue(valueFromFlag===void 0?void 0:"<redacted>"),telemetryClient.trackCliOptionType(typeof opts["--type"]=="string"?opts["--type"]:void 0),telemetryClient.trackCliOptionVisibility(typeof opts["--visibility"]=="string"?opts["--visibility"]:void 0),typeOption.error)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:typeOption.errorReason??"invalid_type",message:typeOption.error},1),output_manager_default.fatal(typeOption.error),1;if(typeOption.usedDeprecatedVisibility&&printEnvUpdateWarning(ENV_VISIBILITY_DEPRECATION_MESSAGE),explicitType==="config"&&opts["--sensitive"]){let message="`--type config` cannot be used with `--sensitive`. Pick one.";return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"conflicting_type_flags",message},1),output_manager_default.fatal(message),1}if(args.length>3)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"invalid_arguments",message:`Invalid number of arguments. Usage: \`${getCommandNamePlain(`env update <name> ${getEnvTargetPlaceholder()} <gitbranch>`)}\``},1),output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName(`env update <name> ${getEnvTargetPlaceholder()} <gitbranch>`)}`),1;if(stdInput&&(!envName||!envTargetArg))return output_manager_default.error(`Invalid number of arguments. Usage: ${getCommandName("env update <name> <target> <gitbranch> < <file>")}`),1;if(client.nonInteractive){let missing=[];if(envName||missing.push("missing_name"),!stdInput&&valueFromFlag===void 0&&missing.push("missing_value"),missing.length>0){let parts=missing.map(m=>m==="missing_name"?"name":"--value or stdin"),targetPart=envTargetArg||getEnvTargetPlaceholder(),template=`env update ${envName||"<name>"} ${targetPart}${envTargetArg==="preview"||envTargetArg==="development"?" <gitbranch>":""} --value <value> --yes`;outputActionRequired(client,{status:"action_required",reason:"missing_requirements",missing,message:`Provide all required inputs for non-interactive mode: ${parts.join("; ")}. Example: ${getCommandNamePlain(template)}`,next:[{command:buildEnvUpdateCommandWithPreservedArgs(client.argv,template)}]},1)}}envTargetArg&&[].push(envTargetArg),envName||(client.nonInteractive?outputActionRequired(client,{status:"action_required",reason:"missing_name",message:"Provide the variable name as an argument. Example: vercel env update <name>",next:[{command:buildEnvUpdateCommandWithPreservedArgs(client.argv,`env update <name> ${getEnvTargetPlaceholder()} --value <value> --yes`)}]},1):envName=await client.input.text({message:"What's the name of the variable to update?",validate:val=>val?!0:"Name cannot be empty"})),telemetryClient.trackCliOptionProject(opts["--project"]);let link=await resolveProjectContext({client,projectNameOrId:opts["--project"]});if(link.status==="error")return link.exitCode;if(link.status==="not_linked"){if(client.nonInteractive){let preserved=omitEnvValueArgs(getPreservedArgsForEnvUpdate(client.argv)).filter(a=>a!=="--yes"&&a!=="-y"),linkArgv=[...client.argv.slice(0,2),"link","--scope","<scope>",...preserved];outputAgentError(client,{status:"error",reason:"not_linked",message:`Your codebase isn't linked to a project on Vercel. Run ${getCommandNamePlain("link")} to begin. Use --yes for non-interactive; use --scope or --project to specify team or project.`,next:[{command:buildCommandWithYes(linkArgv)},{command:buildCommandWithYes(redactEnvValueArgs(client.argv))}]},1)}return output_manager_default.error(`Your codebase isn't linked to a project on Vercel. Run ${getCommandName("link")} to begin.`),1}client.config.currentTeam=link.org.type==="team"?link.org.id:void 0;let{project}=link,[{envs},customEnvironments]=await Promise.all([getEnvRecords(client,project.id,"vercel-cli:env:update"),getCustomEnvironments(client,project.id)]),normalizedEnvTargetArg=customEnvironments.find(({slug,id})=>slug===envTargetArg||id===envTargetArg)?.id||envTargetArg,matchingEnvs=envs.filter(r=>r.key===envName);if(matchingEnvs.length===0){let listArgs=`env ls ${getGlobalFlagsFromArgs(client.argv.slice(2),{preserveProject:!0}).join(" ")}`.trim();return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"env_not_found",message:`The variable ${envName} was not found. Run ${getCommandNamePlain(listArgs)} to see all available Environment Variables.`},1),output_manager_default.error(`The variable ${param(envName)} was not found. Run ${getCommandName(listArgs)} to see all available Environment Variables.`),1}let selectedEnv;if(envTargetArg||envGitBranch){let filteredEnvs=matchingEnvs.filter(env=>{let matchesTarget=!normalizedEnvTargetArg||(Array.isArray(env.target)?env.target.includes(normalizedEnvTargetArg):env.target===normalizedEnvTargetArg)||env.customEnvironmentIds&&env.customEnvironmentIds.includes(normalizedEnvTargetArg),matchesGitBranch=!envGitBranch||env.gitBranch===envGitBranch;return matchesTarget&&matchesGitBranch});if(filteredEnvs.length===0)return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"env_not_found",message:`No Environment Variable ${envName} found matching the specified target/branch.`},1),output_manager_default.error(`No Environment Variable ${param(envName)} found matching the specified criteria.`),1;if(filteredEnvs.length===1)selectedEnv=filteredEnvs[0];else{client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"multiple_envs",message:`Multiple Environment Variables match ${envName}. Specify target and/or branch to update one.`,next:[{command:buildEnvUpdateCommandWithPreservedArgs(client.argv,`env update ${envName} ${getEnvTargetPlaceholder()} <gitbranch> --value "<value>" --yes`)}]},1);let choices=filteredEnvs.map((env,index)=>({name:formatEnvironments(link,env,customEnvironments),value:index})),selectedIndex=await client.input.select({message:`Multiple Environment Variables found for ${param(envName)}. Which one do you want to update?`,choices});selectedEnv=filteredEnvs[selectedIndex]}}else if(matchingEnvs.length===1)selectedEnv=matchingEnvs[0];else{client.nonInteractive&&outputActionRequired(client,{status:"action_required",reason:"multiple_envs",message:`Multiple Environment Variables match ${envName}. Specify target and/or branch to update one.`,next:[{command:buildEnvUpdateCommandWithPreservedArgs(client.argv,`env update ${envName} ${getEnvTargetPlaceholder()} <gitbranch> --value "<value>" --yes`)}]},1);let choices=matchingEnvs.map((env,index)=>({name:formatEnvironments(link,env,customEnvironments),value:index})),selectedIndex=await client.input.select({message:`Multiple Environment Variables found for ${param(envName)}. Which one do you want to update?`,choices});selectedEnv=matchingEnvs[selectedIndex]}let customSveltePublicPrefix,apiPublicPrefix=getApiPublicPrefix(envName),frameworkPublicPrefix=getFrameworkPublicPrefix(project.framework,envName);if(project.framework==="sveltekit"||project.framework==="sveltekit-1"||project.framework==="sveltekit-2"){let matchingLocalPrefix=(await getLocalSvelteKitPublicPrefixes(link.repoRoot??client.cwd,project.rootDirectory))?.find(prefix=>envName.startsWith(prefix));matchingLocalPrefix!==void 0&&apiPublicPrefix===null&&frameworkPublicPrefix===null&&(customSveltePublicPrefix=matchingLocalPrefix)}let targets=Array.isArray(selectedEnv.target)?selectedEnv.target:[selectedEnv.target].filter(r=>!!r),allTargets=[...targets,...selectedEnv.customEnvironmentIds||[]],selectedEnvIsSecret=isSecretEnvVar(selectedEnv);if(explicitType==="config"&&selectedEnvIsSecret){let removeTargetArg=envTargetArg||targets[0]||allTargets[0]||getEnvTargetPlaceholder(),addTargetArg=formatTargetArg(allTargets,customEnvironments)||removeTargetArg,removeBranchArg=selectedEnv.gitBranch?` ${quoteArg(selectedEnv.gitBranch)}`:"",addBranchArg=selectedEnv.gitBranch?` --git-branch ${quoteArg(selectedEnv.gitBranch)}`:"",globalFlags=getGlobalFlagsFromArgs(client.argv.slice(2),{preserveProject:!0}),humanGlobalFlags=globalFlags.filter(flag=>!flag.startsWith("--non-interactive")),globalSuffix=globalFlags.length>0?` ${globalFlags.map(quoteArg).join(" ")}`:"",humanGlobalSuffix=humanGlobalFlags.length>0?` ${humanGlobalFlags.map(quoteArg).join(" ")}`:"",removeCommand=getCommandNamePlain(`env rm ${envName} ${removeTargetArg}${removeBranchArg} --yes${globalSuffix}`),addCommand=getCommandNamePlain(`env add ${envName} ${addTargetArg}${addBranchArg} --type config --value "<value>" --yes${globalSuffix}`),removeHumanCommand=getCommandNamePlain(`env rm ${envName} ${removeTargetArg}${removeBranchArg}${humanGlobalSuffix}`),addHumanCommand=getCommandNamePlain(`env add ${envName} ${addTargetArg}${addBranchArg} --type config${humanGlobalSuffix}`),message="A Secret cannot be changed to Config. To store this value as Config, remove the variable and add it again with `--type config`.";return client.nonInteractive&&outputAgentError(client,{status:"error",reason:"secret_cannot_become_config",message,next:[{command:removeCommand,when:"Remove the Secret from all of its environments"},{command:addCommand,when:"Add it again as Config; replace <value> before running"}]},1),output_manager_default.fatal(`A Secret cannot be changed to Config. Remove the variable, then add it again as Config. ${param(envName)} will be unavailable to new builds between these commands.`),output_manager_default.print(` Remove:
@@ -4,7 +4,7 @@ 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{isPromptCanceledError}from"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{addSubcommand8 as addSubcommand,getCommandAliases,linkCommand}from"../../chunks/chunk-XPV22OOJ.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-65JYSI26.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-EIXOJUNN.js";import"../../chunks/chunk-OAKO6LVS.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-JEIMW3CO.js";import"../../chunks/chunk-ZKYS7EAB.js";import{pull}from"../../chunks/chunk-JB45UWGT.js";import"../../chunks/chunk-B7XCF45C.js";import"../../chunks/chunk-CWTXZPUV.js";import"../../chunks/chunk-ULLWCOYC.js";import"../../chunks/chunk-KK4AJES5.js";import"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-BW24TEUN.js";import{ensureLink}from"../../chunks/chunk-FNYAHJIZ.js";import"../../chunks/chunk-OROPHBHW.js";import"../../chunks/chunk-ENBTTYJR.js";import"../../chunks/chunk-U6TAKLJ6.js";import"../../chunks/chunk-JDQP267R.js";import"../../chunks/chunk-SXUEGVWB.js";import"../../chunks/chunk-DLKR2CG6.js";import{help}from"../../chunks/chunk-XV6SDZIO.js";import"../../chunks/chunk-6TAQ6OWD.js";import"../../chunks/chunk-7NYQ7CTP.js";import"../../chunks/chunk-E4CRGS56.js";import"../../chunks/chunk-LZTGSYL3.js";import"../../chunks/chunk-WPS6JZF6.js";import{detectExplicitScope,getScope}from"../../chunks/chunk-MBHVWCFE.js";import{TelemetryClient}from"../../chunks/chunk-W2XUH2WW.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-4P66SQRS.js";import{parseArguments}from"../../chunks/chunk-ZRS5X7M2.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import{addRepoLink,ensureRepoLink,resolveProjectCwd}from"../../chunks/chunk-AGDWVTJV.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import"../../chunks/chunk-WR5OOWD6.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-4VGOAPFY.js";import"../../chunks/chunk-GTK7TBLW.js";import"../../chunks/chunk-VOZEB6PD.js";import"../../chunks/chunk-GI6G3FJJ.js";import{cmd}from"../../chunks/chunk-FI772UVH.js";import{output_manager_default}from"../../chunks/chunk-RTRCTYW6.js";import"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var LinkTelemetryClient=class extends TelemetryClient{trackCliArgumentCwd(){this.trackCliArgument({arg:"cwd",value:this.redactedValue})}trackCliFlagRepo(flag){flag&&this.trackCliFlag("repo")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionTeam(value){value&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionProjectId(value){value&&this.trackCliOption({option:"project-id",value:this.redactedValue})}trackCliSubcommandAdd(actual){this.trackCliSubcommand({subcommand:"add",value:actual})}};var COMMAND_CONFIG={add:getCommandAliases(addSubcommand)};function warnOidcRefreshFailed(){output_manager_default.print(`${import_chalk.default.yellow("!")} Linked project, but failed to refresh VERCEL_OIDC_TOKEN in .env.local. Rerun the link command to retry.
7
+ import{isPromptCanceledError}from"../../chunks/chunk-P2O5DOYE.js";import{getSubcommand}from"../../chunks/chunk-ETV3C2CV.js";import{addSubcommand8 as addSubcommand,getCommandAliases,linkCommand}from"../../chunks/chunk-2EY7NJ5E.js";import"../../chunks/chunk-M5AV545M.js";import"../../chunks/chunk-65JYSI26.js";import"../../chunks/chunk-YMVDWVMO.js";import"../../chunks/chunk-O7G3CZ42.js";import"../../chunks/chunk-N3N5UHIL.js";import"../../chunks/chunk-IVWPQYIH.js";import"../../chunks/chunk-WUZD4KBL.js";import"../../chunks/chunk-3QHJYVCY.js";import"../../chunks/chunk-NBVY237X.js";import"../../chunks/chunk-MEAY2K5Z.js";import"../../chunks/chunk-EQ52F4LH.js";import"../../chunks/chunk-EIXOJUNN.js";import"../../chunks/chunk-OAKO6LVS.js";import"../../chunks/chunk-CVKB54WW.js";import"../../chunks/chunk-JKTQV2QJ.js";import"../../chunks/chunk-AZ6NRDHG.js";import"../../chunks/chunk-FAW6NBLQ.js";import"../../chunks/chunk-ZKYS7EAB.js";import{pull}from"../../chunks/chunk-W27LUVFI.js";import"../../chunks/chunk-GPX6W4GB.js";import"../../chunks/chunk-WHYH7DVI.js";import"../../chunks/chunk-ULLWCOYC.js";import"../../chunks/chunk-KK4AJES5.js";import"../../chunks/chunk-N6CNMMSZ.js";import"../../chunks/chunk-VIR3KDCQ.js";import{ensureLink}from"../../chunks/chunk-UDOFIJ7K.js";import"../../chunks/chunk-CKX6OH4B.js";import"../../chunks/chunk-EQP3SW72.js";import"../../chunks/chunk-6LE3FU2P.js";import"../../chunks/chunk-KUVMCIR4.js";import"../../chunks/chunk-SXUEGVWB.js";import"../../chunks/chunk-6BZCSVH6.js";import{help}from"../../chunks/chunk-V6IKQCOT.js";import"../../chunks/chunk-6TAQ6OWD.js";import"../../chunks/chunk-R3B67TKQ.js";import"../../chunks/chunk-GHULCYAR.js";import"../../chunks/chunk-UXCTETFN.js";import"../../chunks/chunk-WPS6JZF6.js";import{detectExplicitScope,getScope}from"../../chunks/chunk-77GUJ4JC.js";import{TelemetryClient}from"../../chunks/chunk-A5VLP25I.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-TBBU37TD.js";import{parseArguments}from"../../chunks/chunk-T4AZ3U7O.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import{addRepoLink,ensureRepoLink,resolveProjectCwd}from"../../chunks/chunk-UB37A37M.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import"../../chunks/chunk-BX5KDMLT.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-YMM3VY3J.js";import"../../chunks/chunk-V5DCSHYJ.js";import"../../chunks/chunk-VOZEB6PD.js";import"../../chunks/chunk-LKI6FRNM.js";import{cmd}from"../../chunks/chunk-FI772UVH.js";import{output_manager_default}from"../../chunks/chunk-EWWFNMPZ.js";import"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var LinkTelemetryClient=class extends TelemetryClient{trackCliArgumentCwd(){this.trackCliArgument({arg:"cwd",value:this.redactedValue})}trackCliFlagRepo(flag){flag&&this.trackCliFlag("repo")}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionTeam(value){value&&this.trackCliOption({option:"team",value:this.redactedValue})}trackCliOptionProjectId(value){value&&this.trackCliOption({option:"project-id",value:this.redactedValue})}trackCliSubcommandAdd(actual){this.trackCliSubcommand({subcommand:"add",value:actual})}};var COMMAND_CONFIG={add:getCommandAliases(addSubcommand)};function warnOidcRefreshFailed(){output_manager_default.print(`${import_chalk.default.yellow("!")} Linked project, but failed to refresh VERCEL_OIDC_TOKEN in .env.local. Rerun the link command to retry.
8
8
  `)}async function refreshOidcTokenAfterLink(client,cwd){let originalCwd=client.cwd;try{client.cwd=await resolveProjectCwd(cwd),output_manager_default.print(`
9
9
  `),await pull(client,["--yes"],"vercel-cli:link",{oidcTokenOnly:!0})!==0&&warnOidcRefreshFailed()}catch{warnOidcRefreshFailed()}finally{client.cwd=originalCwd}}async function link(client){try{return await client.withEscapePromptCancellation(()=>linkProject(client))}catch(error){if(isPromptCanceledError(error))return output_manager_default.print(` Canceled.
10
10
  `),0;throw error}}async function linkProject(client){let parsedArgs=null,flagsSpecification=getFlagsSpecification(linkCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(error){return printError(error),1}let{subcommand,subcommandOriginal}=getSubcommand(parsedArgs.args.slice(1),COMMAND_CONFIG),telemetry=new LinkTelemetryClient({opts:{store:client.telemetryEventStore}});function printHelp(command){output_manager_default.print(help(command,{parent:linkCommand,columns:client.stderr.columns}))}if(subcommand==="add"){if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("link",subcommandOriginal),printHelp(addSubcommand),2;telemetry.trackCliSubcommandAdd(subcommandOriginal);let yes2=!!parsedArgs.flags["--yes"];try{await addRepoLink(client,client.cwd,{yes:yes2})}catch(err){if(isPromptCanceledError(err))throw err;return output_manager_default.prettyError(err),1}return 0}try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error){return printError(error),1}if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("link"),output_manager_default.print(help(linkCommand,{columns:client.stderr.columns})),2;telemetry.trackCliFlagRepo(parsedArgs.flags["--repo"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionProject(parsedArgs.flags["--project"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),output_manager_default.warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let yes=!!parsedArgs.flags["--yes"],cwd=parsedArgs.args[1];if(cwd?(telemetry.trackCliArgumentCwd(),output_manager_default.warn(`The ${cmd("vc link <directory>")} syntax is deprecated, please use ${cmd(`vc link --cwd ${cwd}`)} instead`)):cwd=client.cwd,parsedArgs.flags["--repo"]){output_manager_default.warn(`The ${cmd("--repo")} flag is in alpha, please report issues`);try{await ensureRepoLink(client,cwd,{yes,overwrite:!0})}catch(err){if(isPromptCanceledError(err))throw err;return output_manager_default.prettyError(err),1}}else{let selectedOrg=detectExplicitScope(client)?(await getScope(client,{resolveLocalScope:!0})).org:void 0,linkNonInteractive=client.nonInteractive||client.argv.includes("--non-interactive"),link2=await ensureLink("link",client,cwd,{autoConfirm:yes,forceDelete:!0,selectedOrg,projectName:parsedArgs.flags["--project"],successEmoji:"success",nonInteractive:linkNonInteractive,pullEnv:!1});if(typeof link2=="number")return link2;await refreshOidcTokenAfterLink(client,cwd)}return 0}export{link as default};
@@ -4,7 +4,7 @@ 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{getPaginationOpts,isValidName}from"../../chunks/chunk-ZXE4XYIV.js";import{getCommandFlags}from"../../chunks/chunk-OUHPDA7Q.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{formatEnvironment}from"../../chunks/chunk-GGZODU6S.js";import{validateLsArgs}from"../../chunks/chunk-TCS3FDID.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import{listCommand}from"../../chunks/chunk-ZKYS7EAB.js";import{elapsed}from"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{formatProject}from"../../chunks/chunk-DLKR2CG6.js";import{help}from"../../chunks/chunk-XV6SDZIO.js";import{table}from"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-7NYQ7CTP.js";import{getDeployment,toHost}from"../../chunks/chunk-E4CRGS56.js";import"../../chunks/chunk-LZTGSYL3.js";import"../../chunks/chunk-WPS6JZF6.js";import{getScope}from"../../chunks/chunk-MBHVWCFE.js";import{TelemetryClient}from"../../chunks/chunk-W2XUH2WW.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-4P66SQRS.js";import{parseArguments}from"../../chunks/chunk-ZRS5X7M2.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import{getLinkedProject,getProjectByNameOrId}from"../../chunks/chunk-AGDWVTJV.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{exitWithNonInteractiveError}from"../../chunks/chunk-WR5OOWD6.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-4VGOAPFY.js";import"../../chunks/chunk-GTK7TBLW.js";import"../../chunks/chunk-VOZEB6PD.js";import{ProjectNotFound}from"../../chunks/chunk-GI6G3FJJ.js";import{getCommandName,require_lib}from"../../chunks/chunk-FI772UVH.js";import{output_manager_default}from"../../chunks/chunk-RTRCTYW6.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1),import_title=__toESM(require_lib(),1);function parsePolicy(policy){if(!policy)return{};typeof policy=="string"&&(policy=[policy]);let parsed={};for(let item of policy){let[key,...rest]=item.split("=");parsed[key]=rest.join("=")}return parsed}var import_error_utils=__toESM(require_dist(),1);var ListTelemetryClient=class extends TelemetryClient{trackCliFlagAll(all){all&&this.trackCliFlag("all")}trackCliOptionMeta(meta){meta&&meta.length>0&&this.trackCliOption({option:"meta",value:this.redactedValue})}trackCliOptionPolicy(policy){policy&&policy.length>0&&this.trackCliOption({option:"policy",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedTargetName(environment)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionLimit(limit){limit&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagProd(flag){flag&&this.trackCliFlag("prod")}trackCliFlagYes(flag){flag&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionStatus(status){status&&this.trackCliOption({option:"status",value:this.redactedValue})}trackCliArgumentApp(app){app&&this.trackCliArgument({arg:"app",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function toDate(timestamp){let date=new Date(timestamp),options={year:"2-digit",month:"2-digit",day:"2-digit"};return date.toLocaleDateString("en-US",options)}async function list(client){let{print,log,warn,error,note,debug,spinner}=output_manager_default,parsedArgs=null,flagsSpecification=getFlagsSpecification(listCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}let telemetry=new ListTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("list"),print(help(listCommand,{columns:client.stderr.columns})),0;let validationResult=validateLsArgs({commandName:"ls [app]",args:parsedArgs.args,maxArgs:2,exitCode:2});if(validationResult!==0)return validationResult;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),1;let asJson=formatResult.jsonOutput;telemetry.trackCliFlagAll(parsedArgs.flags["--all"]),telemetry.trackCliFlagProd(parsedArgs.flags["--prod"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionEnvironment(parsedArgs.flags["--environment"]),telemetry.trackCliOptionMeta(parsedArgs.flags["--meta"]),telemetry.trackCliOptionNext(parsedArgs.flags["--next"]),telemetry.trackCliOptionLimit(parsedArgs.flags["--limit"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPolicy(parsedArgs.flags["--policy"]),telemetry.trackCliOptionStatus(parsedArgs.flags["--status"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let meta=parseMeta(parsedArgs.flags["--meta"]),policy=parsePolicy(parsedArgs.flags["--policy"]),target=parseTarget({flagName:"environment",flags:parsedArgs.flags}),statusFlag=parsedArgs.flags["--status"],status;if(statusFlag){let validStatuses=["BUILDING","ERROR","INITIALIZING","QUEUED","READY","CANCELED"],statusValues=statusFlag.split(",").map(s=>s.trim().toUpperCase()),invalidStatuses=statusValues.filter(s=>!validStatuses.includes(s));if(invalidStatuses.length>0)return error(`Invalid status values: ${invalidStatuses.join(", ")}. Valid values are: ${validStatuses.join(", ")}`),1;status=statusValues.join(",")}let project,pagination,contextName="",app=parsedArgs.args[1],deployments=[],singleDeployment=!1,allFlag=parsedArgs.flags["--all"],showAllProjects=!1;if(allFlag&&app)return error("Cannot use --all flag with a project argument"),1;if(app){if(!isValidName(app))return error(`The provided argument "${app}" is not a valid project name`),1;if(telemetry.trackCliArgumentApp(app),app.includes(".")){try{({contextName}=await getScope(client))}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(!contextName)return error("No context name found"),1;let host=toHost(app),deployment=await getDeployment(client,contextName,host);if(!deployment.projectId)return error(`Could not find a deployment for "${host}"`),1;app=deployment.projectId,note(`We suggest using ${getCommandName("inspect <deployment>")} for retrieving details about a single deployment`),deployments.push(deployment),singleDeployment=!0}let p=await getProjectByNameOrId(client,app);if(p instanceof ProjectNotFound)return exitWithNonInteractiveError(client,p,1,{variant:"list",projectName:app}),error(`The provided argument "${app}" is not a valid project name`),1;project=p}else if(allFlag)showAllProjects=!0;else{let link=await getLinkedProject(client,{cwd:client.cwd});if(link.status==="error")return link.exitCode;link.status==="linked"?(project=link.project,client.config.currentTeam=link.org.id):showAllProjects=!0}if(!contextName)try{({contextName}=await getScope(client))}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}let nextTimestamp,limitFlag;try{[nextTimestamp,limitFlag]=getPaginationOpts(parsedArgs.flags)}catch(err){return printError(err),1}let limit=limitFlag??20,projectSlugLink=project?formatProject(contextName,project.name):null;if(!singleDeployment){asJson||spinner(`Fetching deployments in ${import_chalk.default.bold(contextName)}`);let start=Date.now();debug("Fetching deployments");let query=new URLSearchParams({limit:String(limit)});project&&query.set("projectId",project.id);for(let[k,v]of Object.entries(meta))query.set(`meta-${k}`,v);for(let[k,v]of Object.entries(policy))query.set(`policy-${k}`,v);nextTimestamp&&query.set("until",String(nextTimestamp)),target&&query.set("target",target),status&&query.set("state",status);for await(let chunk of client.fetchPaginated(`/v6/deployments?${query}`))if(deployments.push(...chunk.deployments),pagination=chunk.pagination,deployments.length>=limit)break;if(deployments.length=Math.min(deployments.length,limit),!deployments.length){if(asJson){let jsonOutput={deployments:[],pagination,contextName};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
7
+ import{getPaginationOpts,isValidName}from"../../chunks/chunk-ZXE4XYIV.js";import{getCommandFlags}from"../../chunks/chunk-OUHPDA7Q.js";import{parseMeta}from"../../chunks/chunk-CZSOZKHX.js";import{formatEnvironment}from"../../chunks/chunk-LQBC5QPO.js";import{validateLsArgs}from"../../chunks/chunk-Z4VR6CQ2.js";import{validateJsonOutput}from"../../chunks/chunk-D4MW3RDW.js";import{listCommand}from"../../chunks/chunk-ZKYS7EAB.js";import{elapsed}from"../../chunks/chunk-JZRMH5UA.js";import{require_ms}from"../../chunks/chunk-QTKJC2O5.js";import{formatProject}from"../../chunks/chunk-6BZCSVH6.js";import{help}from"../../chunks/chunk-V6IKQCOT.js";import{table}from"../../chunks/chunk-6TAQ6OWD.js";import{parseTarget}from"../../chunks/chunk-R3B67TKQ.js";import{getDeployment,toHost}from"../../chunks/chunk-GHULCYAR.js";import"../../chunks/chunk-UXCTETFN.js";import"../../chunks/chunk-WPS6JZF6.js";import{getScope}from"../../chunks/chunk-77GUJ4JC.js";import{TelemetryClient}from"../../chunks/chunk-A5VLP25I.js";import"../../chunks/chunk-RCTYVKM5.js";import"../../chunks/chunk-5XJNPXQK.js";import{printError}from"../../chunks/chunk-TBBU37TD.js";import{parseArguments}from"../../chunks/chunk-T4AZ3U7O.js";import"../../chunks/chunk-MY4MONOH.js";import"../../chunks/chunk-7T6TL3GQ.js";import{getLinkedProject,getProjectByNameOrId}from"../../chunks/chunk-UB37A37M.js";import"../../chunks/chunk-F2ZWW2IO.js";import"../../chunks/chunk-B4ATVYZW.js";import"../../chunks/chunk-PPCFQQSU.js";import"../../chunks/chunk-OSCCYU74.js";import{exitWithNonInteractiveError}from"../../chunks/chunk-BX5KDMLT.js";import{getFlagsSpecification}from"../../chunks/chunk-JAJW3P42.js";import"../../chunks/chunk-YMM3VY3J.js";import"../../chunks/chunk-V5DCSHYJ.js";import"../../chunks/chunk-VOZEB6PD.js";import{ProjectNotFound}from"../../chunks/chunk-LKI6FRNM.js";import{getCommandName,require_lib}from"../../chunks/chunk-FI772UVH.js";import{output_manager_default}from"../../chunks/chunk-EWWFNMPZ.js";import{require_dist}from"../../chunks/chunk-QGIQK47P.js";import"../../chunks/chunk-BRK4OB4B.js";import"../../chunks/chunk-AVSPFBLM.js";import"../../chunks/chunk-XCJDGQO7.js";import"../../chunks/chunk-YPTLSODC.js";import"../../chunks/chunk-7HL2RPUO.js";import{require_source}from"../../chunks/chunk-U7KCDTCH.js";import"../../chunks/chunk-N3ZZ7FHQ.js";import"../../chunks/chunk-GU6VIFR5.js";import{__toESM}from"../../chunks/chunk-6L236MNA.js";var import_ms=__toESM(require_ms(),1),import_chalk=__toESM(require_source(),1),import_title=__toESM(require_lib(),1);function parsePolicy(policy){if(!policy)return{};typeof policy=="string"&&(policy=[policy]);let parsed={};for(let item of policy){let[key,...rest]=item.split("=");parsed[key]=rest.join("=")}return parsed}var import_error_utils=__toESM(require_dist(),1);var ListTelemetryClient=class extends TelemetryClient{trackCliFlagAll(all){all&&this.trackCliFlag("all")}trackCliOptionMeta(meta){meta&&meta.length>0&&this.trackCliOption({option:"meta",value:this.redactedValue})}trackCliOptionPolicy(policy){policy&&policy.length>0&&this.trackCliOption({option:"policy",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedTargetName(environment)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionLimit(limit){limit&&this.trackCliOption({option:"limit",value:this.redactedValue})}trackCliFlagProd(flag){flag&&this.trackCliFlag("prod")}trackCliFlagYes(flag){flag&&this.trackCliFlag("yes")}trackCliFlagConfirm(flag){flag&&this.trackCliFlag("confirm")}trackCliOptionStatus(status){status&&this.trackCliOption({option:"status",value:this.redactedValue})}trackCliArgumentApp(app){app&&this.trackCliArgument({arg:"app",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function toDate(timestamp){let date=new Date(timestamp),options={year:"2-digit",month:"2-digit",day:"2-digit"};return date.toLocaleDateString("en-US",options)}async function list(client){let{print,log,warn,error,note,debug,spinner}=output_manager_default,parsedArgs=null,flagsSpecification=getFlagsSpecification(listCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(error2){return printError(error2),1}let telemetry=new ListTelemetryClient({opts:{store:client.telemetryEventStore}});if(parsedArgs.flags["--help"])return telemetry.trackCliFlagHelp("list"),print(help(listCommand,{columns:client.stderr.columns})),0;let validationResult=validateLsArgs({commandName:"ls [app]",args:parsedArgs.args,maxArgs:2,exitCode:2});if(validationResult!==0)return validationResult;let formatResult=validateJsonOutput(parsedArgs.flags);if(!formatResult.valid)return error(formatResult.error),1;let asJson=formatResult.jsonOutput;telemetry.trackCliFlagAll(parsedArgs.flags["--all"]),telemetry.trackCliFlagProd(parsedArgs.flags["--prod"]),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionEnvironment(parsedArgs.flags["--environment"]),telemetry.trackCliOptionMeta(parsedArgs.flags["--meta"]),telemetry.trackCliOptionNext(parsedArgs.flags["--next"]),telemetry.trackCliOptionLimit(parsedArgs.flags["--limit"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]),telemetry.trackCliOptionPolicy(parsedArgs.flags["--policy"]),telemetry.trackCliOptionStatus(parsedArgs.flags["--status"]),"--confirm"in parsedArgs.flags&&(telemetry.trackCliFlagConfirm(parsedArgs.flags["--confirm"]),warn("`--confirm` is deprecated, please use `--yes` instead"),parsedArgs.flags["--yes"]=parsedArgs.flags["--confirm"]);let meta=parseMeta(parsedArgs.flags["--meta"]),policy=parsePolicy(parsedArgs.flags["--policy"]),target=parseTarget({flagName:"environment",flags:parsedArgs.flags}),statusFlag=parsedArgs.flags["--status"],status;if(statusFlag){let validStatuses=["BUILDING","ERROR","INITIALIZING","QUEUED","READY","CANCELED"],statusValues=statusFlag.split(",").map(s=>s.trim().toUpperCase()),invalidStatuses=statusValues.filter(s=>!validStatuses.includes(s));if(invalidStatuses.length>0)return error(`Invalid status values: ${invalidStatuses.join(", ")}. Valid values are: ${validStatuses.join(", ")}`),1;status=statusValues.join(",")}let project,pagination,contextName="",app=parsedArgs.args[1],deployments=[],singleDeployment=!1,allFlag=parsedArgs.flags["--all"],showAllProjects=!1;if(allFlag&&app)return error("Cannot use --all flag with a project argument"),1;if(app){if(!isValidName(app))return error(`The provided argument "${app}" is not a valid project name`),1;if(telemetry.trackCliArgumentApp(app),app.includes(".")){try{({contextName}=await getScope(client))}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}if(!contextName)return error("No context name found"),1;let host=toHost(app),deployment=await getDeployment(client,contextName,host);if(!deployment.projectId)return error(`Could not find a deployment for "${host}"`),1;app=deployment.projectId,note(`We suggest using ${getCommandName("inspect <deployment>")} for retrieving details about a single deployment`),deployments.push(deployment),singleDeployment=!0}let p=await getProjectByNameOrId(client,app);if(p instanceof ProjectNotFound)return exitWithNonInteractiveError(client,p,1,{variant:"list",projectName:app}),error(`The provided argument "${app}" is not a valid project name`),1;project=p}else if(allFlag)showAllProjects=!0;else{let link=await getLinkedProject(client,{cwd:client.cwd});if(link.status==="error")return link.exitCode;link.status==="linked"?(project=link.project,client.config.currentTeam=link.org.id):showAllProjects=!0}if(!contextName)try{({contextName}=await getScope(client))}catch(err){if((0,import_error_utils.isErrnoException)(err)&&(err.code==="NOT_AUTHORIZED"||err.code==="TEAM_DELETED"))return error(err.message),1}let nextTimestamp,limitFlag;try{[nextTimestamp,limitFlag]=getPaginationOpts(parsedArgs.flags)}catch(err){return printError(err),1}let limit=limitFlag??20,projectSlugLink=project?formatProject(contextName,project.name):null;if(!singleDeployment){asJson||spinner(`Fetching deployments in ${import_chalk.default.bold(contextName)}`);let start=Date.now();debug("Fetching deployments");let query=new URLSearchParams({limit:String(limit)});project&&query.set("projectId",project.id);for(let[k,v]of Object.entries(meta))query.set(`meta-${k}`,v);for(let[k,v]of Object.entries(policy))query.set(`policy-${k}`,v);nextTimestamp&&query.set("until",String(nextTimestamp)),target&&query.set("target",target),status&&query.set("state",status);for await(let chunk of client.fetchPaginated(`/v6/deployments?${query}`))if(deployments.push(...chunk.deployments),pagination=chunk.pagination,deployments.length>=limit)break;if(deployments.length=Math.min(deployments.length,limit),!deployments.length){if(asJson){let jsonOutput={deployments:[],pagination,contextName};client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
8
8
  `)}else log(`No deployments found under ${import_chalk.default.bold(contextName)}.`);return 0}if(!asJson){let deploymentsLabel=target==="production"?"Production deployments":"Deployments";log(showAllProjects?`${deploymentsLabel} under ${import_chalk.default.bold(contextName)} ${elapsed(Date.now()-start)}`:`${deploymentsLabel} for ${projectSlugLink} ${elapsed(Date.now()-start)}`)}}if(asJson){let jsonOutput={contextName,deployments:deployments.sort(sortByCreatedAt).map(dep=>({id:dep.id,url:dep.url,name:dep.name,state:dep.readyState,target:dep.target,customEnvironment:dep.customEnvironment?{id:dep.customEnvironment.id,slug:dep.customEnvironment.slug}:void 0,createdAt:dep.createdAt,buildingAt:dep.buildingAt,ready:dep.ready,creator:dep.creator?{uid:dep.creator.uid,username:dep.creator.username}:void 0,meta:dep.meta})),pagination};return client.stdout.write(`${JSON.stringify(jsonOutput,null,2)}
9
9
  `),0}let headers=["Age","Project","Deployment","Status","Environment"],showPolicy=Object.keys(policy).length>0;showPolicy||headers.push("Duration","Username"),showPolicy&&headers.push("Proposed Expiration");let urls=[],tablePrint=table([headers.map(header=>import_chalk.default.bold(import_chalk.default.cyan(header))),...deployments.sort(sortByCreatedAt).map(dep=>{urls.push(`https://${dep.url}`);let proposedExp=dep.proposedExpiration?toDate(Math.min(Date.now(),dep.proposedExpiration)):"No expiration",createdAt=(0,import_ms.default)(Date.now()-(dep?.undeletedAt??dep.createdAt)),targetName=dep.customEnvironment?.slug||(dep.target==="production"?"Production":"Preview"),targetSlug=dep.customEnvironment?.id||dep.target||"preview";return[import_chalk.default.gray(createdAt),formatProject(contextName,dep.name),`https://${dep.url}`,stateString(dep.readyState||""),formatEnvironment(contextName,dep.name,{id:targetSlug,slug:targetName}),...showPolicy?[]:[import_chalk.default.gray(getDeploymentDuration(dep))],...showPolicy?[]:[import_chalk.default.gray(dep.creator?.username)],...showPolicy?[import_chalk.default.gray(proposedExp)]:[]]}).filter(app2=>app2===null?filterUniqueApps():()=>!0)],{hsep:5}).replace(/^/gm," ");if(print(`
10
10
  ${tablePrint}