vercel 61.1.0 → 62.1.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 (166) hide show
  1. package/dist/chunks/{add-H5XUOIW4.js → add-HANL3P77.js} +1 -1
  2. package/dist/chunks/{add-KDIVCEEY.js → add-XNYC3JIL.js} +1 -1
  3. package/dist/chunks/{add-2QHHI447.js → add-XUAM4VOK.js} +1 -1
  4. package/dist/chunks/{build-EFC6AC3A.js → build-ZBS6SOT7.js} +1 -1
  5. package/dist/chunks/{chunk-ARM6TNWM.js → chunk-2RQFMCPJ.js} +1 -1
  6. package/dist/chunks/{chunk-3PU3JKJU.js → chunk-35QWU4NB.js} +2 -2
  7. package/dist/chunks/{chunk-5VEVDIX4.js → chunk-3R66O72V.js} +1 -1
  8. package/dist/chunks/{chunk-HNQC4E2A.js → chunk-4NICAS7W.js} +1 -1
  9. package/dist/chunks/chunk-4O5TQSWD.js +7 -0
  10. package/dist/chunks/{chunk-7QZ3V4GA.js → chunk-5VWK73R6.js} +2 -2
  11. package/dist/chunks/{chunk-EXTNOWQX.js → chunk-64JYKBGN.js} +1 -1
  12. package/dist/chunks/{chunk-5E6XT7UP.js → chunk-6JU3QZ3O.js} +1 -1
  13. package/dist/chunks/{chunk-LIQM7J3Q.js → chunk-6MR2VYMC.js} +1 -1
  14. package/dist/chunks/{chunk-G6DJSRIM.js → chunk-7I23VXBQ.js} +1 -1
  15. package/dist/chunks/{chunk-SUQDXU5Q.js → chunk-7JFK53D4.js} +1 -1
  16. package/dist/chunks/{chunk-METJ7TPN.js → chunk-7NSHIG54.js} +1 -1
  17. package/dist/chunks/{chunk-QKSHLX2T.js → chunk-7PQBWGSI.js} +1 -1
  18. package/dist/chunks/{chunk-UJRKHDLO.js → chunk-7RT22KMX.js} +1 -1
  19. package/dist/chunks/{chunk-HNGB3J6J.js → chunk-7T4CJ6MJ.js} +1 -1
  20. package/dist/chunks/{chunk-C7FA3F6Y.js → chunk-7VSX264O.js} +1 -1
  21. package/dist/chunks/{chunk-PK44ANGQ.js → chunk-A752WDCH.js} +1 -1
  22. package/dist/chunks/{chunk-HWPICTAW.js → chunk-ACCZWEKL.js} +1 -1
  23. package/dist/chunks/{chunk-VCLA7W76.js → chunk-AIMMAROX.js} +2 -2
  24. package/dist/chunks/{chunk-7K5WQAIL.js → chunk-B7YJLE3P.js} +1 -1
  25. package/dist/chunks/{chunk-6UV6HXVD.js → chunk-BKNROJQU.js} +1 -1
  26. package/dist/chunks/{chunk-R4XQKQFD.js → chunk-C3XFIO5L.js} +1 -1
  27. package/dist/chunks/{chunk-3Y2HZ7ZE.js → chunk-CQ3RAERR.js} +1 -1
  28. package/dist/chunks/{chunk-GT6CQWQC.js → chunk-CS4QF4YI.js} +1 -1
  29. package/dist/chunks/{chunk-EMDAZAWN.js → chunk-CVX5X5RI.js} +1 -1
  30. package/dist/chunks/{chunk-DQKTW6TS.js → chunk-DECRXYX6.js} +1 -1
  31. package/dist/chunks/{chunk-VRDAMDMZ.js → chunk-FWN57YF7.js} +1 -1
  32. package/dist/chunks/{chunk-UZCUQNR2.js → chunk-G43DZJ2Z.js} +1 -1
  33. package/dist/chunks/{chunk-NQKUT3UM.js → chunk-GR76JFDX.js} +1 -1
  34. package/dist/chunks/{chunk-IJMVTAUG.js → chunk-I327YWUE.js} +1 -1
  35. package/dist/chunks/{chunk-ZXE4XYIV.js → chunk-ILFUNCJZ.js} +1 -1
  36. package/dist/chunks/chunk-J6OPPI3A.js +63 -0
  37. package/dist/chunks/{chunk-B3CNVVZG.js → chunk-JK5Z72G5.js} +1 -1
  38. package/dist/chunks/{chunk-J4GDZSR6.js → chunk-JLOCNOBV.js} +1 -1
  39. package/dist/chunks/{chunk-LN3L5MUD.js → chunk-JRU6AGXG.js} +1 -1
  40. package/dist/chunks/{chunk-HQ3OQQIJ.js → chunk-JVCUTKAX.js} +1 -1
  41. package/dist/chunks/{chunk-MOZORTXV.js → chunk-K6GIN2TC.js} +1 -1
  42. package/dist/chunks/{chunk-ZQAKHK55.js → chunk-KOSM3DYE.js} +1 -1
  43. package/dist/chunks/{chunk-H24CDOLQ.js → chunk-LCWCTL6L.js} +1 -1
  44. package/dist/chunks/{chunk-TAIDD65X.js → chunk-M7ZGWERO.js} +1 -1
  45. package/dist/chunks/{chunk-I3JY5FFO.js → chunk-N5Q4IX3H.js} +1 -1
  46. package/dist/chunks/{chunk-6H37RZR4.js → chunk-N7XPPYQQ.js} +1 -1
  47. package/dist/chunks/{chunk-OT7KL3CN.js → chunk-NESZV33T.js} +1 -1
  48. package/dist/chunks/chunk-NKC536ZX.js +9 -0
  49. package/dist/chunks/{chunk-YIWCEDDM.js → chunk-NT67T6DL.js} +1 -1
  50. package/dist/chunks/{chunk-UIYOY4VY.js → chunk-NXJLJLEM.js} +1 -1
  51. package/dist/chunks/{chunk-WWIZKLDF.js → chunk-NYUESPV2.js} +1 -1
  52. package/dist/chunks/{chunk-7IU5MZY3.js → chunk-OGVFR4VL.js} +1 -1
  53. package/dist/chunks/{chunk-XGGZRQRW.js → chunk-PV5YI2ZZ.js} +1 -1
  54. package/dist/chunks/{chunk-QS4HMEHM.js → chunk-QAPUB4EX.js} +1 -1
  55. package/dist/chunks/{chunk-CMMKTIUX.js → chunk-QMBXEDTG.js} +1 -1
  56. package/dist/chunks/{chunk-GBPKXYFF.js → chunk-RBYCFVJN.js} +3 -3
  57. package/dist/chunks/{chunk-6BWY63F2.js → chunk-RFWCEREA.js} +1 -1
  58. package/dist/chunks/{chunk-FMIOMNT4.js → chunk-S2LBGLRE.js} +1 -1
  59. package/dist/chunks/{chunk-FUYYSBG6.js → chunk-T4QWSTWE.js} +1 -1
  60. package/dist/chunks/{chunk-ELOOLQEA.js → chunk-TBLJVTTQ.js} +1 -1
  61. package/dist/chunks/{chunk-WKZ6JSGZ.js → chunk-TKBORMUF.js} +1 -1
  62. package/dist/chunks/{chunk-LYGUPV4A.js → chunk-ULYAF4N3.js} +1 -1
  63. package/dist/chunks/{chunk-FPGLRLJB.js → chunk-V6BHS2M2.js} +1 -1
  64. package/dist/chunks/{chunk-2UNDQZGO.js → chunk-VDOJERIW.js} +1 -1
  65. package/dist/chunks/{chunk-P7YEHZCP.js → chunk-W7PVS44H.js} +1 -1
  66. package/dist/chunks/{chunk-LRARKX6U.js → chunk-X47XV2WG.js} +1 -1
  67. package/dist/chunks/{chunk-JT3YGQNY.js → chunk-X5OINFLV.js} +1 -1
  68. package/dist/chunks/{chunk-Y2TKN7DM.js → chunk-XF5HR3BJ.js} +1 -1
  69. package/dist/chunks/{chunk-APMYUYG3.js → chunk-Y3A7ZJNX.js} +1 -1
  70. package/dist/chunks/chunk-Z26EOSNI.js +7 -0
  71. package/dist/chunks/{chunk-MDPHTALV.js → chunk-Z5PMK6F2.js} +4 -4
  72. package/dist/chunks/{chunk-GS56NXBA.js → chunk-Z6TGFLIO.js} +2 -2
  73. package/dist/chunks/chunk-ZNFC3CZF.js +7 -0
  74. package/dist/chunks/{chunk-3QIFLB5M.js → chunk-ZOIPWLUF.js} +1 -1
  75. package/dist/chunks/{chunk-5XUEYLPX.js → chunk-ZUYWATU5.js} +1 -1
  76. package/dist/chunks/{clear-XPCPE7IB.js → clear-UYIYBIU7.js} +1 -1
  77. package/dist/chunks/{compile-vercel-config-T3UH6HUK.js → compile-vercel-config-SRYQK624.js} +1 -1
  78. package/dist/chunks/{config-57JYCPQE.js → config-6AXT6WNO.js} +1 -1
  79. package/dist/chunks/{config-RUQTGUAU.js → config-EDC5XGQX.js} +1 -1
  80. package/dist/chunks/config-validator.mjs +1 -1
  81. package/dist/chunks/{constants-G4UYVLOF.js → constants-NCE2LWSS.js} +1 -1
  82. package/dist/chunks/{delete-AQLS65EZ.js → delete-GYK2QMZA.js} +1 -1
  83. package/dist/chunks/{delete-YEG4PO32.js → delete-PIASS7TQ.js} +1 -1
  84. package/dist/chunks/{detect-services-O5R4LQYE.js → detect-services-QNPD7J6F.js} +1 -1
  85. package/dist/chunks/{disable-2IMTXHPN.js → disable-SFNXBFOL.js} +1 -1
  86. package/dist/chunks/{discard-LGTYXVWA.js → discard-QX7SXCDX.js} +1 -1
  87. package/dist/chunks/{edit-5SAXFIIQ.js → edit-4U3ZERPO.js} +1 -1
  88. package/dist/chunks/{edit-FLQUQJRB.js → edit-PNIFJF2H.js} +1 -1
  89. package/dist/chunks/{enable-ZU4EEGQU.js → enable-HZFCTROZ.js} +1 -1
  90. package/dist/chunks/{export-YJLMAKU6.js → export-QOTSGWFE.js} +1 -1
  91. package/dist/chunks/{future-GCRZEKNU.js → future-GS7ZLJ3N.js} +1 -1
  92. package/dist/chunks/{generate-cert-for-deploy-C2MZFJSD.js → generate-cert-for-deploy-L5NMXX37.js} +1 -1
  93. package/dist/chunks/{image-TBIQVQTJ.js → image-PY2GZYQD.js} +1 -1
  94. package/dist/chunks/{import-builders-VIQ3AQKA.js → import-builders-WWYNSGXV.js} +1 -1
  95. package/dist/chunks/{inspect-DYSG64DM.js → inspect-DKJC7ORF.js} +1 -1
  96. package/dist/chunks/{inspect-BCJ4576B.js → inspect-EHEMDPJD.js} +1 -1
  97. package/dist/chunks/{inspect-EJGQIBO6.js → inspect-IIF3N5Z2.js} +1 -1
  98. package/dist/chunks/{inspect-UBQLT7TK.js → inspect-NIRGPMGV.js} +1 -1
  99. package/dist/chunks/{inspect-ZY7JD2NB.js → inspect-QQJAYYMO.js} +1 -1
  100. package/dist/chunks/{list-RSBMDKH3.js → list-4MCOLKTO.js} +1 -1
  101. package/dist/chunks/{list-ACZ53KGA.js → list-4TZ6QS5J.js} +1 -1
  102. package/dist/chunks/{list-KILCIYI3.js → list-MMQAS2OQ.js} +1 -1
  103. package/dist/chunks/{login-XLBBDBF5.js → login-5QOABZRX.js} +1 -1
  104. package/dist/chunks/{login-LEHHYIMB.js → login-ZAAIOSQ4.js} +1 -1
  105. package/dist/chunks/{logs-GGM6OIP5.js → logs-KWMWFGLA.js} +1 -1
  106. package/dist/chunks/{ls-PMZQBH7M.js → ls-42F5OUPY.js} +1 -1
  107. package/dist/chunks/{ls-UANS2YOR.js → ls-43NFH2L6.js} +1 -1
  108. package/dist/chunks/{ls-CXCMINIH.js → ls-HKXEYGZT.js} +1 -1
  109. package/dist/chunks/{ls-EYIOIUW4.js → ls-ID2DGRGG.js} +1 -1
  110. package/dist/chunks/{ls-7RJVN7NA.js → ls-KAIRQI27.js} +1 -1
  111. package/dist/chunks/{ls-TZZHYEUP.js → ls-KCE6GJZL.js} +1 -1
  112. package/dist/chunks/{ls-E52ZQKU2.js → ls-L454FAKC.js} +1 -1
  113. package/dist/chunks/{mutate-LDKQTMVQ.js → mutate-QK3U73PH.js} +1 -1
  114. package/dist/chunks/{notifications-TNNPHJ2A.js → notifications-2QARJQFZ.js} +1 -1
  115. package/dist/chunks/{open-XULXWO4J.js → open-PORNBO4I.js} +1 -1
  116. package/dist/chunks/{openapi-VOEHNJDC.js → openapi-6L7RIFOR.js} +1 -1
  117. package/dist/chunks/{permissions-BJCB363U.js → permissions-EYOTCJGO.js} +1 -1
  118. package/dist/chunks/{prompt-missing-credentials-XYATS6AR.js → prompt-missing-credentials-N7ETDDXW.js} +1 -1
  119. package/dist/chunks/{publish-RHYABJG2.js → publish-JTCJ6Z5K.js} +1 -1
  120. package/dist/chunks/pull-FNJGDSP2.js +7 -0
  121. package/dist/chunks/{purchase-domain-if-available-METET7NV.js → purchase-domain-if-available-IIEFQGPX.js} +1 -1
  122. package/dist/chunks/{push-K6JZXF3F.js → push-LBPCQFBD.js} +1 -1
  123. package/dist/chunks/{query-IRE2AHWJ.js → query-CBEGOTEI.js} +1 -1
  124. package/dist/chunks/{reauthenticate-SKNZW44L.js → reauthenticate-3H5Q2ZWD.js} +1 -1
  125. package/dist/chunks/{reorder-XA4D4ETX.js → reorder-LLR3OV6E.js} +1 -1
  126. package/dist/chunks/{reply-2J6FSDE3.js → reply-3CDS6LPX.js} +1 -1
  127. package/dist/chunks/{resolve-LPG666BQ.js → resolve-XQ6UPCSZ.js} +1 -1
  128. package/dist/chunks/{restore-AUJYHVXJ.js → restore-U4EWQAAZ.js} +1 -1
  129. package/dist/chunks/rm-3FAU5JLM.js +8 -0
  130. package/dist/chunks/{rm-K72H7VZV.js → rm-7OBAUU4F.js} +1 -1
  131. package/dist/chunks/{rm-ZQVXKO7U.js → rm-WEMHKTUL.js} +1 -1
  132. package/dist/chunks/{rm-OWKRDHCM.js → rm-XGXSPQIY.js} +1 -1
  133. package/dist/chunks/{rm-RKSFOTDA.js → rm-XW6CPP6J.js} +1 -1
  134. package/dist/chunks/{rule-inspect-GLIMHHLI.js → rule-inspect-I6WJTC7O.js} +1 -1
  135. package/dist/chunks/{rules-DKX7ZITE.js → rules-TMEV52OR.js} +1 -1
  136. package/dist/chunks/{schema-4I7CTH47.js → schema-4R7CRVMR.js} +1 -1
  137. package/dist/chunks/schema-W3ZXTSRT.js +14 -0
  138. package/dist/chunks/{select-org-6HKDVPLO.js → select-org-37C26F7T.js} +1 -1
  139. package/dist/chunks/set-FOMKZDT2.js +7 -0
  140. package/dist/chunks/setup-and-link-QI6PHWVL.js +7 -0
  141. package/dist/chunks/{tags-COAUKFHG.js → tags-BTMFM3XQ.js} +1 -1
  142. package/dist/chunks/{types-JMTJJVOR.js → types-UN5J66MI.js} +1 -1
  143. package/dist/chunks/{update-J5LPVY6R.js → update-CA3E2G46.js} +1 -1
  144. package/dist/commands/build/index.js +1 -1
  145. package/dist/commands/deploy/index.js +4 -4
  146. package/dist/commands/dev/index.js +3 -3
  147. package/dist/commands/env/index.js +1 -1
  148. package/dist/commands/link/index.js +1 -1
  149. package/dist/commands/list/index.js +1 -1
  150. package/dist/commands-bulk.js +731 -680
  151. package/dist/help.js +1 -1
  152. package/dist/index.js +4 -3
  153. package/dist/root-help-commands.mjs +1 -0
  154. package/dist/vc.js +66 -9
  155. package/dist/version.mjs +1 -1
  156. package/package.json +54 -54
  157. package/dist/chunks/chunk-46JKXCHX.js +0 -7
  158. package/dist/chunks/chunk-FCQ4OFIG.js +0 -7
  159. package/dist/chunks/chunk-IZPS6TSQ.js +0 -9
  160. package/dist/chunks/chunk-RYZ5FAUA.js +0 -131
  161. package/dist/chunks/chunk-XYPCSFQH.js +0 -7
  162. package/dist/chunks/pull-Z7HGCSCC.js +0 -7
  163. package/dist/chunks/rm-RUYNLXQI.js +0 -8
  164. package/dist/chunks/schema-DR4YJJXD.js +0 -14
  165. package/dist/chunks/set-5B652FAX.js +0 -7
  166. package/dist/chunks/setup-and-link-YJDTNH73.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{formatCondition,formatTransform,isTargetTransform}from"./chunk-WWIZKLDF.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__toESM}from"./chunk-6L236MNA.js";function extractEnvVarNames(value){let names=new Set;for(let m of value.matchAll(/\$\{?([A-Z_][A-Z0-9_]*)\}?/g))names.add(m[1]);return Array.from(names)}function escapeRegex(value){return value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function referencesEnvVar(value,name){let escapedName=escapeRegex(name);return new RegExp(`\\$(?:\\{${escapedName}\\}|${escapedName}(?![A-Za-z0-9_]))`).test(value)}function referencesBracedEnvVar(value,name){return new RegExp(`\\$\\{${escapeRegex(name)}\\}`).test(value)}function collectReferencedEnvVars(values,explicitEnv=[],excludedNames=new Set){let names=new Set(explicitEnv.filter(name=>values.some(value=>referencesEnvVar(value,name))));for(let value of values)for(let name of extractEnvVarNames(value))(!excludedNames.has(name)||names.has(name)||referencesBracedEnvVar(value,name))&&names.add(name);return Array.from(names)}function collectNamedRegexCaptures(source){return new Set(Array.from(source.matchAll(/\(\?<([a-zA-Z][a-zA-Z0-9_]*)>/g),match=>match[1]))}function populateRouteEnv(route,srcSyntax="regex"){let excludedNames=srcSyntax==="regex"&&route.src?collectNamedRegexCaptures(route.src):new Set,routeValues=[...route.dest?[route.dest]:[],...Object.values(route.headers||{})],routeEnv=collectReferencedEnvVars(routeValues,route.env,excludedNames);if(route.env=routeEnv.length>0?routeEnv:void 0,route.transforms)for(let transform of route.transforms){let args=transform.args?Array.isArray(transform.args)?transform.args:[transform.args]:[],names=collectReferencedEnvVars(args,transform.env,excludedNames);transform.env=names.length>0?names:void 0}}async function generateRoute(client,projectId,input,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes/generate${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(input)})}function parseTransforms(values,type,op){return values.map(value=>parseTransform(value,type,op))}function parseTransform(input,type,op){if(op==="delete"){let key2=input.trim();if(!key2)throw new Error("Delete operation requires a key");return{type,op,target:{key:key2}}}let eqIndex=input.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid format: "${input}". Expected format: key=value`);let key=input.slice(0,eqIndex).trim(),args=input.slice(eqIndex+1);if(!key)throw new Error("Transform key cannot be empty");return{type,op,target:{key},args}}function collectTransforms(flags){let transforms=[];return flags.setResponseHeader&&transforms.push(...parseTransforms(flags.setResponseHeader,"response.headers","set")),flags.appendResponseHeader&&transforms.push(...parseTransforms(flags.appendResponseHeader,"response.headers","append")),flags.deleteResponseHeader&&transforms.push(...parseTransforms(flags.deleteResponseHeader,"response.headers","delete")),flags.setRequestHeader&&transforms.push(...parseTransforms(flags.setRequestHeader,"request.headers","set")),flags.appendRequestHeader&&transforms.push(...parseTransforms(flags.appendRequestHeader,"request.headers","append")),flags.deleteRequestHeader&&transforms.push(...parseTransforms(flags.deleteRequestHeader,"request.headers","delete")),flags.setRequestQuery&&transforms.push(...parseTransforms(flags.setRequestQuery,"request.query","set")),flags.appendRequestQuery&&transforms.push(...parseTransforms(flags.appendRequestQuery,"request.query","append")),flags.deleteRequestQuery&&transforms.push(...parseTransforms(flags.deleteRequestQuery,"request.query","delete")),transforms}function collectResponseHeaders(setHeaders){let headers={};for(let input of setHeaders){let eqIndex=input.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid header format: "${input}". Expected format: key=value`);let key=input.slice(0,eqIndex).trim(),value=input.slice(eqIndex+1);if(!key)throw new Error("Header key cannot be empty");headers[key]=value}return headers}var MAX_NAME_LENGTH=256,MAX_DESCRIPTION_LENGTH=1024,MAX_CONDITIONS=16,VALID_SYNTAXES=["regex","path-to-regexp","equals"],REDIRECT_STATUS_CODES=[301,302,303,307,308],VALID_ACTION_TYPES=["rewrite","redirect","set-status"],ALL_ACTION_CHOICES=[{name:"Rewrite",value:"rewrite",exclusive:!0},{name:"Redirect",value:"redirect",exclusive:!0},{name:"Set Status Code",value:"set-status",exclusive:!0},{name:"Response Headers",value:"response-headers"},{name:"Request Headers",value:"request-headers"},{name:"Request Query",value:"request-query"}];function stripQuotes(str){return str.startsWith('"')&&str.endsWith('"')&&str.length>=2||str.startsWith("'")&&str.endsWith("'")&&str.length>=2?str.slice(1,-1):str}function extractTransformFlags(flags){return{setResponseHeader:flags["--set-response-header"],appendResponseHeader:flags["--append-response-header"],deleteResponseHeader:flags["--delete-response-header"],setRequestHeader:flags["--set-request-header"],appendRequestHeader:flags["--append-request-header"],deleteRequestHeader:flags["--delete-request-header"],setRequestQuery:flags["--set-request-query"],appendRequestQuery:flags["--append-request-query"],deleteRequestQuery:flags["--delete-request-query"]}}function collectHeadersAndTransforms(transformFlags){let headers=transformFlags.setResponseHeader?collectResponseHeaders(transformFlags.setResponseHeader):{},transforms=collectTransforms({...transformFlags,setResponseHeader:void 0});return{headers,transforms}}function hasAnyTransformFlags(flags){let tf=extractTransformFlags(flags);return!!(tf.setResponseHeader||tf.appendResponseHeader||tf.deleteResponseHeader||tf.setRequestHeader||tf.appendRequestHeader||tf.deleteRequestHeader||tf.setRequestQuery||tf.appendRequestQuery||tf.deleteRequestQuery)}function validateActionFlags(action,dest,status){if(!action)return dest||status!==void 0?"--action is required when using --dest or --status. Use --action rewrite, --action redirect, or --action set-status.":null;if(!VALID_ACTION_TYPES.includes(action))return`Invalid action type: "${action}". Valid types: ${VALID_ACTION_TYPES.join(", ")}`;switch(action){case"rewrite":if(!dest)return"--action rewrite requires --dest.";if(status!==void 0)return"--action rewrite does not accept --status.";break;case"redirect":if(!dest)return"--action redirect requires --dest.";if(status===void 0)return`--action redirect requires --status (${REDIRECT_STATUS_CODES.join(", ")}).`;if(!REDIRECT_STATUS_CODES.includes(status))return`Invalid redirect status: ${status}. Must be one of: ${REDIRECT_STATUS_CODES.join(", ")}`;break;case"set-status":if(dest)return"--action set-status does not accept --dest.";if(status===void 0)return"--action set-status requires --status.";if(status<100||status>599)return"Status code must be between 100 and 599.";break}return null}async function collectActionDetails(client,actionType,flags){switch(actionType){case"rewrite":{let dest=await client.input.text({message:"Destination URL:",validate:val=>val?!0:"Destination is required"});Object.assign(flags,{"--dest":dest});break}case"redirect":{let dest=await client.input.text({message:"Destination URL:",validate:val=>val?!0:"Destination is required"}),status=await client.input.select({message:"Status code:",choices:[{name:"307 - Temporary Redirect",value:307},{name:"308 - Permanent Redirect",value:308},{name:"301 - Moved Permanently",value:301},{name:"302 - Found",value:302},{name:"303 - See Other",value:303}]});Object.assign(flags,{"--dest":dest,"--status":status});break}case"set-status":{let statusCode=await client.input.text({message:"HTTP status code:",validate:val=>{let num=parseInt(val,10);return isNaN(num)||num<100||num>599?"Status code must be between 100 and 599":!0}});Object.assign(flags,{"--status":parseInt(statusCode,10)});break}case"response-headers":{await collectInteractiveHeaders(client,"response",flags);break}case"request-headers":{await collectInteractiveHeaders(client,"request-header",flags);break}case"request-query":{await collectInteractiveHeaders(client,"request-query",flags);break}}}async function collectInteractiveConditions(client,flags){let addMore=!0;for(;addMore;){let currentHas=flags["--has"]||[],currentMissing=flags["--missing"]||[];if(currentHas.length>0||currentMissing.length>0){output_manager_default.log(`
7
+ import{formatCondition,formatTransform,isTargetTransform}from"./chunk-NYUESPV2.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import{require_source}from"./chunk-U7KCDTCH.js";import{__toESM}from"./chunk-6L236MNA.js";function extractEnvVarNames(value){let names=new Set;for(let m of value.matchAll(/\$\{?([A-Z_][A-Z0-9_]*)\}?/g))names.add(m[1]);return Array.from(names)}function escapeRegex(value){return value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function referencesEnvVar(value,name){let escapedName=escapeRegex(name);return new RegExp(`\\$(?:\\{${escapedName}\\}|${escapedName}(?![A-Za-z0-9_]))`).test(value)}function referencesBracedEnvVar(value,name){return new RegExp(`\\$\\{${escapeRegex(name)}\\}`).test(value)}function collectReferencedEnvVars(values,explicitEnv=[],excludedNames=new Set){let names=new Set(explicitEnv.filter(name=>values.some(value=>referencesEnvVar(value,name))));for(let value of values)for(let name of extractEnvVarNames(value))(!excludedNames.has(name)||names.has(name)||referencesBracedEnvVar(value,name))&&names.add(name);return Array.from(names)}function collectNamedRegexCaptures(source){return new Set(Array.from(source.matchAll(/\(\?<([a-zA-Z][a-zA-Z0-9_]*)>/g),match=>match[1]))}function populateRouteEnv(route,srcSyntax="regex"){let excludedNames=srcSyntax==="regex"&&route.src?collectNamedRegexCaptures(route.src):new Set,routeValues=[...route.dest?[route.dest]:[],...Object.values(route.headers||{})],routeEnv=collectReferencedEnvVars(routeValues,route.env,excludedNames);if(route.env=routeEnv.length>0?routeEnv:void 0,route.transforms)for(let transform of route.transforms){let args=transform.args?Array.isArray(transform.args)?transform.args:[transform.args]:[],names=collectReferencedEnvVars(args,transform.env,excludedNames);transform.env=names.length>0?names:void 0}}async function generateRoute(client,projectId,input,options={}){let{teamId}=options,query=new URLSearchParams;teamId&&query.set("teamId",teamId);let queryString=query.toString(),url=`/v1/projects/${projectId}/routes/generate${queryString?`?${queryString}`:""}`;return await client.fetch(url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(input)})}function parseTransforms(values,type,op){return values.map(value=>parseTransform(value,type,op))}function parseTransform(input,type,op){if(op==="delete"){let key2=input.trim();if(!key2)throw new Error("Delete operation requires a key");return{type,op,target:{key:key2}}}let eqIndex=input.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid format: "${input}". Expected format: key=value`);let key=input.slice(0,eqIndex).trim(),args=input.slice(eqIndex+1);if(!key)throw new Error("Transform key cannot be empty");return{type,op,target:{key},args}}function collectTransforms(flags){let transforms=[];return flags.setResponseHeader&&transforms.push(...parseTransforms(flags.setResponseHeader,"response.headers","set")),flags.appendResponseHeader&&transforms.push(...parseTransforms(flags.appendResponseHeader,"response.headers","append")),flags.deleteResponseHeader&&transforms.push(...parseTransforms(flags.deleteResponseHeader,"response.headers","delete")),flags.setRequestHeader&&transforms.push(...parseTransforms(flags.setRequestHeader,"request.headers","set")),flags.appendRequestHeader&&transforms.push(...parseTransforms(flags.appendRequestHeader,"request.headers","append")),flags.deleteRequestHeader&&transforms.push(...parseTransforms(flags.deleteRequestHeader,"request.headers","delete")),flags.setRequestQuery&&transforms.push(...parseTransforms(flags.setRequestQuery,"request.query","set")),flags.appendRequestQuery&&transforms.push(...parseTransforms(flags.appendRequestQuery,"request.query","append")),flags.deleteRequestQuery&&transforms.push(...parseTransforms(flags.deleteRequestQuery,"request.query","delete")),transforms}function collectResponseHeaders(setHeaders){let headers={};for(let input of setHeaders){let eqIndex=input.indexOf("=");if(eqIndex===-1)throw new Error(`Invalid header format: "${input}". Expected format: key=value`);let key=input.slice(0,eqIndex).trim(),value=input.slice(eqIndex+1);if(!key)throw new Error("Header key cannot be empty");headers[key]=value}return headers}var MAX_NAME_LENGTH=256,MAX_DESCRIPTION_LENGTH=1024,MAX_CONDITIONS=16,VALID_SYNTAXES=["regex","path-to-regexp","equals"],REDIRECT_STATUS_CODES=[301,302,303,307,308],VALID_ACTION_TYPES=["rewrite","redirect","set-status"],ALL_ACTION_CHOICES=[{name:"Rewrite",value:"rewrite",exclusive:!0},{name:"Redirect",value:"redirect",exclusive:!0},{name:"Set Status Code",value:"set-status",exclusive:!0},{name:"Response Headers",value:"response-headers"},{name:"Request Headers",value:"request-headers"},{name:"Request Query",value:"request-query"}];function stripQuotes(str){return str.startsWith('"')&&str.endsWith('"')&&str.length>=2||str.startsWith("'")&&str.endsWith("'")&&str.length>=2?str.slice(1,-1):str}function extractTransformFlags(flags){return{setResponseHeader:flags["--set-response-header"],appendResponseHeader:flags["--append-response-header"],deleteResponseHeader:flags["--delete-response-header"],setRequestHeader:flags["--set-request-header"],appendRequestHeader:flags["--append-request-header"],deleteRequestHeader:flags["--delete-request-header"],setRequestQuery:flags["--set-request-query"],appendRequestQuery:flags["--append-request-query"],deleteRequestQuery:flags["--delete-request-query"]}}function collectHeadersAndTransforms(transformFlags){let headers=transformFlags.setResponseHeader?collectResponseHeaders(transformFlags.setResponseHeader):{},transforms=collectTransforms({...transformFlags,setResponseHeader:void 0});return{headers,transforms}}function hasAnyTransformFlags(flags){let tf=extractTransformFlags(flags);return!!(tf.setResponseHeader||tf.appendResponseHeader||tf.deleteResponseHeader||tf.setRequestHeader||tf.appendRequestHeader||tf.deleteRequestHeader||tf.setRequestQuery||tf.appendRequestQuery||tf.deleteRequestQuery)}function validateActionFlags(action,dest,status){if(!action)return dest||status!==void 0?"--action is required when using --dest or --status. Use --action rewrite, --action redirect, or --action set-status.":null;if(!VALID_ACTION_TYPES.includes(action))return`Invalid action type: "${action}". Valid types: ${VALID_ACTION_TYPES.join(", ")}`;switch(action){case"rewrite":if(!dest)return"--action rewrite requires --dest.";if(status!==void 0)return"--action rewrite does not accept --status.";break;case"redirect":if(!dest)return"--action redirect requires --dest.";if(status===void 0)return`--action redirect requires --status (${REDIRECT_STATUS_CODES.join(", ")}).`;if(!REDIRECT_STATUS_CODES.includes(status))return`Invalid redirect status: ${status}. Must be one of: ${REDIRECT_STATUS_CODES.join(", ")}`;break;case"set-status":if(dest)return"--action set-status does not accept --dest.";if(status===void 0)return"--action set-status requires --status.";if(status<100||status>599)return"Status code must be between 100 and 599.";break}return null}async function collectActionDetails(client,actionType,flags){switch(actionType){case"rewrite":{let dest=await client.input.text({message:"Destination URL:",validate:val=>val?!0:"Destination is required"});Object.assign(flags,{"--dest":dest});break}case"redirect":{let dest=await client.input.text({message:"Destination URL:",validate:val=>val?!0:"Destination is required"}),status=await client.input.select({message:"Status code:",choices:[{name:"307 - Temporary Redirect",value:307},{name:"308 - Permanent Redirect",value:308},{name:"301 - Moved Permanently",value:301},{name:"302 - Found",value:302},{name:"303 - See Other",value:303}]});Object.assign(flags,{"--dest":dest,"--status":status});break}case"set-status":{let statusCode=await client.input.text({message:"HTTP status code:",validate:val=>{let num=parseInt(val,10);return isNaN(num)||num<100||num>599?"Status code must be between 100 and 599":!0}});Object.assign(flags,{"--status":parseInt(statusCode,10)});break}case"response-headers":{await collectInteractiveHeaders(client,"response",flags);break}case"request-headers":{await collectInteractiveHeaders(client,"request-header",flags);break}case"request-query":{await collectInteractiveHeaders(client,"request-query",flags);break}}}async function collectInteractiveConditions(client,flags){let addMore=!0;for(;addMore;){let currentHas=flags["--has"]||[],currentMissing=flags["--missing"]||[];if(currentHas.length>0||currentMissing.length>0){output_manager_default.log(`
8
8
  Current conditions:`);for(let c of currentHas)output_manager_default.print(` has: ${c}
9
9
  `);for(let c of currentMissing)output_manager_default.print(` does not have: ${c}
10
10
  `);output_manager_default.print(`
@@ -4,4 +4,4 @@ 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{formatOption,jsonOption}from"./chunk-XGGZRQRW.js";import{packageName}from"./chunk-FI772UVH.js";var specUrlOption={name:"spec-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Fetch endpoints from a custom OpenAPI spec URL instead of the public Vercel spec"},listSubcommand={name:"list",aliases:["ls"],description:"List all available API endpoints",arguments:[],options:[formatOption,jsonOption,specUrlOption,{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"}],examples:[{name:"List all endpoints in table format",value:`${packageName} api list`},{name:"List all endpoints as JSON",value:`${packageName} api list --json`},{name:"List endpoints from a custom OpenAPI spec",value:`${packageName} api list --spec-url https://openapi-internal.vercel.sh --refresh`}]},apiCommand={name:"api",aliases:[],description:"Make authenticated HTTP requests to the Vercel API",arguments:[{name:"endpoint",required:!1}],subcommands:[listSubcommand],options:[{name:"method",shorthand:"X",type:String,argument:"METHOD",deprecated:!1,description:"HTTP method (GET, POST, PUT, PATCH, DELETE). Defaults to GET, or POST if body is provided"},{name:"field",shorthand:"F",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a typed parameter (numbers, booleans parsed). Use @file for file contents"},{name:"raw-field",shorthand:"f",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a string option (no type parsing)"},{name:"header",shorthand:"H",type:[String],argument:"KEY:VALUE",deprecated:!1,description:"Add a custom HTTP header"},{name:"input",shorthand:null,type:String,argument:"FILE",deprecated:!1,description:"Read request body from file (use - for stdin)"},{name:"paginate",shorthand:null,type:Boolean,deprecated:!1,description:"Fetch all pages of results"},{name:"include",shorthand:"i",type:Boolean,deprecated:!1,description:"Include response headers in output"},{name:"silent",shorthand:null,type:Boolean,deprecated:!1,description:"Suppress response output"},{name:"verbose",shorthand:null,type:Boolean,deprecated:!1,description:"Show debug information including full request/response"},{name:"raw",shorthand:null,type:Boolean,deprecated:!1,description:"Output raw JSON without pretty-printing (the default when output is piped)"},{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"},specUrlOption,{name:"generate",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Generate output instead of executing (e.g., --generate=curl)"},{name:"dangerously-skip-permissions",shorthand:null,type:Boolean,deprecated:!1,description:"Skip confirmation prompts for DELETE operations (use with caution)"}],examples:[{name:"Get current user information",value:`${packageName} api /v2/user`},{name:"List projects with team scope",value:`${packageName} api /v9/projects --scope my-team`},{name:"Create a new project",value:`${packageName} api /v10/projects -X POST -F name=my-project`},{name:"Delete a deployment",value:`${packageName} api /v13/deployments/dpl_abc123 -X DELETE`},{name:"Paginate through all deployments",value:`${packageName} api /v6/deployments --paginate`},{name:"Post JSON from file",value:`${packageName} api /v10/projects -X POST --input config.json`},{name:"Add custom header",value:`${packageName} api /v2/user -H "X-Custom-Header: value"`},{name:"Interactive mode (select endpoint)",value:`${packageName} api`},{name:"Interactive mode with a custom OpenAPI spec",value:`${packageName} api --spec-url https://openapi-internal.vercel.sh --refresh`}]};export{listSubcommand,apiCommand};
7
+ import{formatOption,jsonOption}from"./chunk-PV5YI2ZZ.js";import{packageName}from"./chunk-FI772UVH.js";var specUrlOption={name:"spec-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Fetch endpoints from a custom OpenAPI spec URL instead of the public Vercel spec"},listSubcommand={name:"list",aliases:["ls"],description:"List all available API endpoints",arguments:[],options:[formatOption,jsonOption,specUrlOption,{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"}],examples:[{name:"List all endpoints in table format",value:`${packageName} api list`},{name:"List all endpoints as JSON",value:`${packageName} api list --json`},{name:"List endpoints from a custom OpenAPI spec",value:`${packageName} api list --spec-url https://openapi-internal.vercel.sh --refresh`}]},apiCommand={name:"api",aliases:[],description:"Make authenticated HTTP requests to the Vercel API",arguments:[{name:"endpoint",required:!1}],subcommands:[listSubcommand],options:[{name:"method",shorthand:"X",type:String,argument:"METHOD",deprecated:!1,description:"HTTP method (GET, POST, PUT, PATCH, DELETE). Defaults to GET, or POST if body is provided"},{name:"field",shorthand:"F",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a typed parameter (numbers, booleans parsed). Use @file for file contents"},{name:"raw-field",shorthand:"f",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Add a string option (no type parsing)"},{name:"header",shorthand:"H",type:[String],argument:"KEY:VALUE",deprecated:!1,description:"Add a custom HTTP header"},{name:"input",shorthand:null,type:String,argument:"FILE",deprecated:!1,description:"Read request body from file (use - for stdin)"},{name:"paginate",shorthand:null,type:Boolean,deprecated:!1,description:"Fetch all pages of results"},{name:"include",shorthand:"i",type:Boolean,deprecated:!1,description:"Include response headers in output"},{name:"silent",shorthand:null,type:Boolean,deprecated:!1,description:"Suppress response output"},{name:"verbose",shorthand:null,type:Boolean,deprecated:!1,description:"Show debug information including full request/response"},{name:"raw",shorthand:null,type:Boolean,deprecated:!1,description:"Output raw JSON without pretty-printing (the default when output is piped)"},{name:"refresh",shorthand:null,type:Boolean,deprecated:!1,description:"Force refresh the cached OpenAPI spec"},specUrlOption,{name:"generate",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Generate output instead of executing (e.g., --generate=curl)"},{name:"dangerously-skip-permissions",shorthand:null,type:Boolean,deprecated:!1,description:"Skip confirmation prompts for DELETE operations (use with caution)"}],examples:[{name:"Get current user information",value:`${packageName} api /v2/user`},{name:"List projects with team scope",value:`${packageName} api /v9/projects --scope my-team`},{name:"Create a new project",value:`${packageName} api /v10/projects -X POST -F name=my-project`},{name:"Delete a deployment",value:`${packageName} api /v13/deployments/dpl_abc123 -X DELETE`},{name:"Paginate through all deployments",value:`${packageName} api /v6/deployments --paginate`},{name:"Post JSON from file",value:`${packageName} api /v10/projects -X POST --input config.json`},{name:"Add custom header",value:`${packageName} api /v2/user -H "X-Custom-Header: value"`},{name:"Interactive mode (select endpoint)",value:`${packageName} api`},{name:"Interactive mode with a custom OpenAPI spec",value:`${packageName} api --spec-url https://openapi-internal.vercel.sh --refresh`}]};export{listSubcommand,apiCommand};
@@ -4,4 +4,4 @@ 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{formatOption,jsonOption,limitOption,projectOption,yesOption}from"./chunk-XGGZRQRW.js";import{packageName}from"./chunk-FI772UVH.js";var commentsProjectOption={...projectOption,shorthand:"p",description:"Project ID or name (defaults to the linked project)"},messageContentOption={name:"message",shorthand:"m",type:String,argument:"TEXT",deprecated:!1,description:"Markdown message content"},fileOption={name:"file",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Read Markdown content from a file; use `-` for stdin"},attachOption={name:"attach",shorthand:null,type:[String],argument:"URL",deprecated:!1,description:"Attach a file by https URL (repeatable, max 10)"},nextCursorOption={name:"next",shorthand:"N",type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},listSubcommand={name:"list",aliases:["ls"],default:!0,description:"List comments for a project",arguments:[],options:[commentsProjectOption,{name:"branch",shorthand:null,type:[String],argument:"BRANCH",deprecated:!1,description:"Filter by Git branch (repeatable; defaults to the current branch when inferable)"},{name:"all-branches",shorthand:null,type:Boolean,deprecated:!1,description:"Show comments from every branch"},{name:"status",shorthand:null,type:String,argument:"STATUS",deprecated:!1,description:"unresolved (default), resolved, or all"},{name:"page-path",shorthand:null,type:[String],argument:"PATH",deprecated:!1,description:"Filter by recorded page path or glob (repeatable). Note: rewrites may record a different path than the browser URL"},{name:"page",shorthand:null,type:[String],argument:"PATH",deprecated:!0,description:"Filter by recorded page path or glob"},{name:"author",shorthand:null,type:[String],argument:"USER",deprecated:!1,description:"Filter by author user ID, or `me` (repeatable)"},{name:"content-id",shorthand:null,type:[String],argument:"ID",deprecated:!1,description:"Filter by CMS content ID (repeatable)"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Search comment content"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List unresolved comments for the linked project",value:`${packageName} comments`},{name:"List comments on every branch",value:`${packageName} comments --all-branches --status all`},{name:"List comments as JSON",value:`${packageName} comments --json | jq '.threads[].id'`}]},inspectSubcommand={name:"inspect",aliases:["get"],description:"Show a comment thread with its full conversation",arguments:[{name:"thread",required:!1}],options:[commentsProjectOption,{name:"context",shorthand:null,type:Boolean,deprecated:!1,description:"Include framework and device context"},formatOption,jsonOption],examples:[{name:"Inspect a comment thread",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Inspect a comment from its URL",value:`${packageName} comments inspect https://vercel.com/team/project/c/icZ9BnPPINuK`},{name:"Pick a comment interactively",value:`${packageName} comments inspect`},{name:"Inspect a thread whose ID starts with a dash",value:`${packageName} comments inspect -- -ULOL`}]},openSubcommand={name:"open",aliases:[],description:"Open a comment thread on vercel.com",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption],examples:[{name:"Open a comment in the browser",value:`${packageName} comments open icZ9BnPPINuK`}]},replySubcommand={name:"reply",aliases:[],description:"Reply to a comment thread",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,attachOption,formatOption,jsonOption],examples:[{name:"Reply to a comment",value:`${packageName} comments reply icZ9BnPPINuK -m 'Fixed in **main**.'`},{name:"Reply from stdin",value:`git log -1 --format=%s | ${packageName} comments reply icZ9BnPPINuK`}]},resolveSubcommand={name:"resolve",aliases:[],description:"Resolve comment threads, optionally with a closing reply",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,messageContentOption,yesOption,formatOption,jsonOption],examples:[{name:"Resolve a comment",value:`${packageName} comments resolve icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK -m 'Fixed in the latest deployment'`}]},reopenSubcommand={name:"reopen",aliases:[],description:"Reopen resolved comment threads",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Reopen a comment",value:`${packageName} comments reopen icZ9BnPPINuK`}]},editSubcommand={name:"edit",aliases:[],description:"Edit a comment message while preserving its attachments",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,formatOption,jsonOption],examples:[{name:"Edit a message",value:`${packageName} comments edit icZ9BnPPINuK VvkhYF6dTqbpm7K -m 'Updated wording'`}]},deleteSubcommand={name:"delete",aliases:[],description:"Delete a comment message",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Delete a message",value:`${packageName} comments delete icZ9BnPPINuK VvkhYF6dTqbpm7K`}]},commentsCommand={name:"comments",aliases:[],description:"Review and act on Vercel Toolbar comments from the command line",arguments:[],subcommands:[listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand],options:[],examples:[{name:"Review unresolved comments for the linked project",value:`${packageName} comments`},{name:"Inspect a comment and reply",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK -m 'Fixed!'`}]};export{listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand,commentsCommand};
7
+ import{formatOption,jsonOption,limitOption,projectOption,yesOption}from"./chunk-PV5YI2ZZ.js";import{packageName}from"./chunk-FI772UVH.js";var commentsProjectOption={...projectOption,shorthand:"p",description:"Project ID or name (defaults to the linked project)"},messageContentOption={name:"message",shorthand:"m",type:String,argument:"TEXT",deprecated:!1,description:"Markdown message content"},fileOption={name:"file",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Read Markdown content from a file; use `-` for stdin"},attachOption={name:"attach",shorthand:null,type:[String],argument:"URL",deprecated:!1,description:"Attach a file by https URL (repeatable, max 10)"},nextCursorOption={name:"next",shorthand:"N",type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},listSubcommand={name:"list",aliases:["ls"],default:!0,description:"List comments for a project",arguments:[],options:[commentsProjectOption,{name:"branch",shorthand:null,type:[String],argument:"BRANCH",deprecated:!1,description:"Filter by Git branch (repeatable; defaults to the current branch when inferable)"},{name:"all-branches",shorthand:null,type:Boolean,deprecated:!1,description:"Show comments from every branch"},{name:"status",shorthand:null,type:String,argument:"STATUS",deprecated:!1,description:"unresolved (default), resolved, or all"},{name:"page-path",shorthand:null,type:[String],argument:"PATH",deprecated:!1,description:"Filter by recorded page path or glob (repeatable). Note: rewrites may record a different path than the browser URL"},{name:"page",shorthand:null,type:[String],argument:"PATH",deprecated:!0,description:"Filter by recorded page path or glob"},{name:"author",shorthand:null,type:[String],argument:"USER",deprecated:!1,description:"Filter by author user ID, or `me` (repeatable)"},{name:"content-id",shorthand:null,type:[String],argument:"ID",deprecated:!1,description:"Filter by CMS content ID (repeatable)"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Search comment content"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List unresolved comments for the linked project",value:`${packageName} comments`},{name:"List comments on every branch",value:`${packageName} comments --all-branches --status all`},{name:"List comments as JSON",value:`${packageName} comments --json | jq '.threads[].id'`}]},inspectSubcommand={name:"inspect",aliases:["get"],description:"Show a comment thread with its full conversation",arguments:[{name:"thread",required:!1}],options:[commentsProjectOption,{name:"context",shorthand:null,type:Boolean,deprecated:!1,description:"Include framework and device context"},formatOption,jsonOption],examples:[{name:"Inspect a comment thread",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Inspect a comment from its URL",value:`${packageName} comments inspect https://vercel.com/team/project/c/icZ9BnPPINuK`},{name:"Pick a comment interactively",value:`${packageName} comments inspect`},{name:"Inspect a thread whose ID starts with a dash",value:`${packageName} comments inspect -- -ULOL`}]},openSubcommand={name:"open",aliases:[],description:"Open a comment thread on vercel.com",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption],examples:[{name:"Open a comment in the browser",value:`${packageName} comments open icZ9BnPPINuK`}]},replySubcommand={name:"reply",aliases:[],description:"Reply to a comment thread",arguments:[{name:"thread",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,attachOption,formatOption,jsonOption],examples:[{name:"Reply to a comment",value:`${packageName} comments reply icZ9BnPPINuK -m 'Fixed in **main**.'`},{name:"Reply from stdin",value:`git log -1 --format=%s | ${packageName} comments reply icZ9BnPPINuK`}]},resolveSubcommand={name:"resolve",aliases:[],description:"Resolve comment threads, optionally with a closing reply",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,messageContentOption,yesOption,formatOption,jsonOption],examples:[{name:"Resolve a comment",value:`${packageName} comments resolve icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK -m 'Fixed in the latest deployment'`}]},reopenSubcommand={name:"reopen",aliases:[],description:"Reopen resolved comment threads",arguments:[{name:"thread",required:!0,multiple:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Reopen a comment",value:`${packageName} comments reopen icZ9BnPPINuK`}]},editSubcommand={name:"edit",aliases:[],description:"Edit a comment message while preserving its attachments",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,messageContentOption,fileOption,formatOption,jsonOption],examples:[{name:"Edit a message",value:`${packageName} comments edit icZ9BnPPINuK VvkhYF6dTqbpm7K -m 'Updated wording'`}]},deleteSubcommand={name:"delete",aliases:[],description:"Delete a comment message",arguments:[{name:"thread",required:!0},{name:"message-id",required:!0}],options:[commentsProjectOption,yesOption,formatOption,jsonOption],examples:[{name:"Delete a message",value:`${packageName} comments delete icZ9BnPPINuK VvkhYF6dTqbpm7K`}]},commentsCommand={name:"comments",aliases:[],description:"Review and act on Vercel Toolbar comments from the command line",arguments:[],subcommands:[listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand],options:[],examples:[{name:"Review unresolved comments for the linked project",value:`${packageName} comments`},{name:"Inspect a comment and reply",value:`${packageName} comments inspect icZ9BnPPINuK`},{name:"Reply and resolve in one step",value:`${packageName} comments resolve icZ9BnPPINuK -m 'Fixed!'`}]};export{listSubcommand,inspectSubcommand,openSubcommand,replySubcommand,resolveSubcommand,reopenSubcommand,editSubcommand,deleteSubcommand,commentsCommand};