@vercel/cli-support 65.8.0-snapshot-7c63e261c47b → 65.8.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 (139) hide show
  1. package/dist/chunks/{add-VUROT3X7.js → add-3MWFJH54.js} +1 -1
  2. package/dist/chunks/{add-A2VGZEB3.js → add-CJWCA3MM.js} +1 -1
  3. package/dist/chunks/{add-ENND6VJZ.js → add-GLCVYEEN.js} +1 -1
  4. package/dist/chunks/{build-A5QGXFCZ.js → build-6RK6VECG.js} +1 -1
  5. package/dist/chunks/{chunk-GBRNYCSA.js → chunk-3DDEBTCC.js} +1 -1
  6. package/dist/chunks/{chunk-ZGRDT3TS.js → chunk-4MP4HVBG.js} +1 -1
  7. package/dist/chunks/{chunk-VTLGM736.js → chunk-5GOQ3FBV.js} +1 -1
  8. package/dist/chunks/{chunk-CCB2TNGT.js → chunk-62FZFXPJ.js} +1 -1
  9. package/dist/chunks/{chunk-EOO4R3GF.js → chunk-63DO6KMD.js} +1 -1
  10. package/dist/chunks/{chunk-R364F5BF.js → chunk-753RQ6WV.js} +1 -1
  11. package/dist/chunks/{chunk-WNTSEFC2.js → chunk-7A5WO5KA.js} +1 -1
  12. package/dist/chunks/{chunk-3UGQLEDK.js → chunk-7EJ3BZ67.js} +1 -1
  13. package/dist/chunks/{chunk-VLJUUFCE.js → chunk-A67TLHES.js} +1 -1
  14. package/dist/chunks/{chunk-QX27RAOE.js → chunk-AQA4JVKA.js} +1 -1
  15. package/dist/chunks/{chunk-MAL4OOBV.js → chunk-BHJLCFQ4.js} +1 -1
  16. package/dist/chunks/{chunk-L5LFF6HU.js → chunk-BLFPDEXE.js} +1 -1
  17. package/dist/chunks/{chunk-TPSG7OII.js → chunk-CJLRNGWY.js} +1 -1
  18. package/dist/chunks/{chunk-OJSRPBLU.js → chunk-EGPVNTKP.js} +1 -1
  19. package/dist/chunks/{chunk-WYAYGE3N.js → chunk-EKB2DYCQ.js} +1 -1
  20. package/dist/chunks/{chunk-ZXRQVYZA.js → chunk-FNOCIKAU.js} +1 -1
  21. package/dist/chunks/{chunk-3KUSGWO2.js → chunk-G7X2TVUO.js} +1 -1
  22. package/dist/chunks/{chunk-FFTUXTFU.js → chunk-GJB72ITS.js} +1 -1
  23. package/dist/chunks/{chunk-MANPOMFT.js → chunk-GKUHMS3A.js} +1 -1
  24. package/dist/chunks/{chunk-QMB36NJD.js → chunk-GP2FXUFE.js} +1 -1
  25. package/dist/chunks/{chunk-6MFNV76B.js → chunk-H4DE2OFO.js} +1 -1
  26. package/dist/chunks/{chunk-ZSLUGW4E.js → chunk-HNOZM6D4.js} +1 -1
  27. package/dist/chunks/{chunk-PNCWCFPL.js → chunk-IHNEF3BG.js} +1 -1
  28. package/dist/chunks/{chunk-MYTA66O6.js → chunk-INH6RXBH.js} +1 -1
  29. package/dist/chunks/{chunk-RBIPVPTN.js → chunk-IU6PHFPQ.js} +1 -1
  30. package/dist/chunks/{chunk-4JOJYW22.js → chunk-JULKMXVP.js} +1 -1
  31. package/dist/chunks/{chunk-3ZQNP4BG.js → chunk-KARAZGCO.js} +1 -1
  32. package/dist/chunks/{chunk-DY3Q5TXP.js → chunk-KDRCBWRY.js} +1 -1
  33. package/dist/chunks/{chunk-PIZVHQPP.js → chunk-KL6HNOFN.js} +1 -1
  34. package/dist/chunks/{chunk-CC2X7T2R.js → chunk-KUNFE2M6.js} +1 -1
  35. package/dist/chunks/{chunk-NTN2SSGR.js → chunk-LOEU4R4Z.js} +1 -1
  36. package/dist/chunks/{chunk-HGCP7N4J.js → chunk-MDWYXLDB.js} +2 -2
  37. package/dist/chunks/{chunk-OQDN4RKT.js → chunk-NDWGYZRT.js} +2 -2
  38. package/dist/chunks/{chunk-GZGKKWU5.js → chunk-O7IYJGOR.js} +1 -1
  39. package/dist/chunks/{chunk-BU7DBZXN.js → chunk-OV7G6RIQ.js} +1 -1
  40. package/dist/chunks/{chunk-7VMHF6QI.js → chunk-P2HBUDGR.js} +1 -1
  41. package/dist/chunks/{chunk-BG3IJPID.js → chunk-PY5A73YH.js} +1 -1
  42. package/dist/chunks/{chunk-KEEPBBME.js → chunk-QR7PY5JS.js} +1 -1
  43. package/dist/chunks/{chunk-GPAWKQJ6.js → chunk-QTCS2HDX.js} +1 -1
  44. package/dist/chunks/{chunk-QU25LP63.js → chunk-QZEZCUUZ.js} +6 -6
  45. package/dist/chunks/{chunk-MUWGZACR.js → chunk-RIAOB3RF.js} +1 -1
  46. package/dist/chunks/{chunk-4VHSKXDW.js → chunk-TCEEQLD4.js} +1 -1
  47. package/dist/chunks/{chunk-ETVESMHM.js → chunk-TK2ILW2O.js} +1 -1
  48. package/dist/chunks/{chunk-FDOTZ4IH.js → chunk-TSKFDJ77.js} +1 -1
  49. package/dist/chunks/{chunk-Q3E57HTJ.js → chunk-UAUVCOGS.js} +1 -1
  50. package/dist/chunks/{chunk-6SHXBHAP.js → chunk-XUJA3RZD.js} +1 -1
  51. package/dist/chunks/{chunk-J4JAITT5.js → chunk-YKNHA3RN.js} +1 -1
  52. package/dist/chunks/{chunk-GDEXNTKM.js → chunk-YTZPQVGF.js} +1 -1
  53. package/dist/chunks/{chunk-RJZHOERW.js → chunk-ZBJ44DRL.js} +1 -1
  54. package/dist/chunks/{clear-DLVKGINN.js → clear-375VKVXY.js} +1 -1
  55. package/dist/chunks/{compile-vercel-config-VHRPP73E.js → compile-vercel-config-LNRUSKTH.js} +1 -1
  56. package/dist/chunks/{config-ATV26WGB.js → config-GOYBATSI.js} +1 -1
  57. package/dist/chunks/{config-4Y4HCQGZ.js → config-VAW454ZH.js} +1 -1
  58. package/dist/chunks/{delete-WO3F2LBD.js → delete-3SN6XFOW.js} +1 -1
  59. package/dist/chunks/{delete-4OSTPMXZ.js → delete-W6BZHLGP.js} +1 -1
  60. package/dist/chunks/{detect-services-7HYA6GAX.js → detect-services-6L57MV5F.js} +1 -1
  61. package/dist/chunks/{disable-NPZHA3D3.js → disable-UUV5MYYH.js} +1 -1
  62. package/dist/chunks/{discard-VSIUIW3T.js → discard-Y6ZITZ2P.js} +1 -1
  63. package/dist/chunks/{edit-JML77VIW.js → edit-CVMUITFG.js} +1 -1
  64. package/dist/chunks/{edit-EZPFTVHT.js → edit-LLRI57RF.js} +1 -1
  65. package/dist/chunks/{enable-YKY5GWYA.js → enable-TFA6XWAA.js} +1 -1
  66. package/dist/chunks/{export-UAQTQFZL.js → export-AI2O22W5.js} +1 -1
  67. package/dist/chunks/{future-6UHWHWIQ.js → future-EZEU2CBY.js} +1 -1
  68. package/dist/chunks/{generate-cert-for-deploy-NHXM3S4I.js → generate-cert-for-deploy-QP5BUOJL.js} +1 -1
  69. package/dist/chunks/{image-FXLE5BFI.js → image-YLUF7SHR.js} +1 -1
  70. package/dist/chunks/{import-builders-6BON6LPU.js → import-builders-ANLKHIYK.js} +1 -1
  71. package/dist/chunks/{inspect-7R46SZ6S.js → inspect-3NMNI7GY.js} +1 -1
  72. package/dist/chunks/{inspect-BETH6YX6.js → inspect-3TRAN3SP.js} +1 -1
  73. package/dist/chunks/{inspect-RMLE7Q3I.js → inspect-4A67JORH.js} +1 -1
  74. package/dist/chunks/{inspect-FXHGK7IT.js → inspect-OM5S5YQ2.js} +1 -1
  75. package/dist/chunks/{inspect-FYVOOS34.js → inspect-VEUY4QJ2.js} +1 -1
  76. package/dist/chunks/{list-XW666MBC.js → list-DJKKVFUL.js} +1 -1
  77. package/dist/chunks/{list-KYA72D6M.js → list-NEV4FBTY.js} +1 -1
  78. package/dist/chunks/{list-BL6R5CX3.js → list-TUJ7HCQK.js} +1 -1
  79. package/dist/chunks/{login-QDWRVSWX.js → login-4HCFKDKL.js} +1 -1
  80. package/dist/chunks/{login-LU3ODSCF.js → login-EPBJQDEK.js} +1 -1
  81. package/dist/chunks/{logs-PT4GJTWG.js → logs-Q7XXVFR3.js} +1 -1
  82. package/dist/chunks/{ls-5V7AL3LS.js → ls-3TKRCF4T.js} +1 -1
  83. package/dist/chunks/{ls-Y5X7EBTB.js → ls-COOTTCRW.js} +1 -1
  84. package/dist/chunks/{ls-AW3CULHB.js → ls-CVO4MCX5.js} +1 -1
  85. package/dist/chunks/{ls-CKEW73Z6.js → ls-LS5J5ERG.js} +1 -1
  86. package/dist/chunks/{ls-D5QB4VQ4.js → ls-OQQTUQFN.js} +1 -1
  87. package/dist/chunks/{ls-PKKFWL5H.js → ls-OVM2DZYL.js} +1 -1
  88. package/dist/chunks/{ls-AIKQDEFG.js → ls-UY3KCDSF.js} +1 -1
  89. package/dist/chunks/{mutate-XDGDRDVF.js → mutate-I6QWCURL.js} +1 -1
  90. package/dist/chunks/{notifications-IX3ZUVZM.js → notifications-UKC5Z6AH.js} +1 -1
  91. package/dist/chunks/{open-UMI4XZDR.js → open-CYATUDTT.js} +1 -1
  92. package/dist/chunks/{permissions-I6RMEE6A.js → permissions-4ZYPHPOZ.js} +1 -1
  93. package/dist/chunks/{plugin-offer-7MAEHNOL.js → plugin-offer-4YTKDZGS.js} +1 -1
  94. package/dist/chunks/{prompt-missing-credentials-HUVX2RBI.js → prompt-missing-credentials-4OKJMYW5.js} +1 -1
  95. package/dist/chunks/{publish-SBUM4KSR.js → publish-N6E7VTRK.js} +1 -1
  96. package/dist/chunks/{pull-XREDTWTL.js → pull-LPIT3XUR.js} +1 -1
  97. package/dist/chunks/{purchase-domain-if-available-DI3HXFJS.js → purchase-domain-if-available-IS6UDPJT.js} +1 -1
  98. package/dist/chunks/{push-LNBY3IVT.js → push-ETLU6OCC.js} +1 -1
  99. package/dist/chunks/{query-H6HPW4MH.js → query-NIMDIFLO.js} +1 -1
  100. package/dist/chunks/{reauthenticate-MG34KSRS.js → reauthenticate-TESIUM6U.js} +1 -1
  101. package/dist/chunks/{reorder-AARVKLFR.js → reorder-PQU2BQEE.js} +1 -1
  102. package/dist/chunks/{reply-2EIHKZY5.js → reply-RKDDYV5I.js} +1 -1
  103. package/dist/chunks/{resolve-BNDYBL5J.js → resolve-ZF7BFXIW.js} +1 -1
  104. package/dist/chunks/{resolve-agent-team-6GRXPBUZ.js → resolve-agent-team-QSIJ665W.js} +1 -1
  105. package/dist/chunks/{restore-TW7FEAKO.js → restore-U5A3BEFQ.js} +1 -1
  106. package/dist/chunks/{rm-TMNC3O4G.js → rm-7H5O3T7G.js} +1 -1
  107. package/dist/chunks/{rm-N26MIITA.js → rm-EPPMQEAV.js} +1 -1
  108. package/dist/chunks/{rm-G2DOXEP6.js → rm-FNMW2FPM.js} +1 -1
  109. package/dist/chunks/{rm-AJJQ5WAJ.js → rm-OZIA3DFM.js} +1 -1
  110. package/dist/chunks/{rm-PQSWEJLQ.js → rm-W3VOR2ED.js} +1 -1
  111. package/dist/chunks/{rule-inspect-CDMPPHOJ.js → rule-inspect-YAVRRGAP.js} +1 -1
  112. package/dist/chunks/{schema-AHIKHCKP.js → schema-44U7GOQE.js} +1 -1
  113. package/dist/chunks/{schema-M367S3BJ.js → schema-6SAZ7T2S.js} +1 -1
  114. package/dist/chunks/{select-org-3KCGSZPC.js → select-org-L5FJVL5Q.js} +1 -1
  115. package/dist/chunks/{set-AZ6DWA22.js → set-3NQXDGJV.js} +1 -1
  116. package/dist/chunks/{setup-and-link-UQBYKJ5C.js → setup-and-link-H36NRP3A.js} +1 -1
  117. package/dist/chunks/{tags-T3PYNFO6.js → tags-CRG27GFL.js} +1 -1
  118. package/dist/chunks/{update-VVCPMZ3H.js → update-YLFMSPQF.js} +1 -1
  119. package/dist/commands/build/index.js +1 -1
  120. package/dist/commands/deploy/index.js +4 -4
  121. package/dist/commands/dev/index.js +2 -2
  122. package/dist/commands/env/index.js +1 -1
  123. package/dist/commands/link/index.js +1 -1
  124. package/dist/commands/list/index.js +1 -1
  125. package/dist/commands/project/index.js +1 -1
  126. package/dist/commands-account.js +1 -1
  127. package/dist/commands-ai.js +1 -1
  128. package/dist/commands-blob.js +1 -1
  129. package/dist/commands-core.js +5 -5
  130. package/dist/commands-deployments.js +1 -1
  131. package/dist/commands-flags.js +1 -1
  132. package/dist/commands-integrations.js +1 -1
  133. package/dist/commands-observability.js +2 -2
  134. package/dist/commands-routing.js +2 -2
  135. package/dist/index.js +3 -3
  136. package/dist/internal-build.js +1 -1
  137. package/dist/package.json +57 -57
  138. package/dist/version.mjs +1 -1
  139. package/package.json +50 -50
@@ -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{ENV_PULL_FAILED_MESSAGE,VALID_ENVIRONMENTS,connectResourceToProject,getLinkedProjectField,postProvisionSetup,validateEnvironments}from"./chunks/chunk-QX27RAOE.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import"./chunks/chunk-CC2X7T2R.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-BG3IJPID.js";import"./chunks/chunk-6Y2ZL5XJ.js";import"./chunks/chunk-WRC5CTUD.js";import"./chunks/chunk-25565AGS.js";import{extractDatePortion}from"./chunks/chunk-ECQIO5K3.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-HA2ICIB5.js";import"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-4JOJYW22.js";import"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-PNCWCFPL.js";import{normalizeRepeatableStringFilters}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-OQDN4RKT.js";import"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-RJZHOERW.js";import{selectOrg}from"./chunks/chunk-WNTSEFC2.js";import{canPrompt}from"./chunks/chunk-IQ7FPAI4.js";import{require_execa}from"./chunks/chunk-T34C75TI.js";import"./chunks/chunk-GD7AV7BO.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{printNextPageCommand}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-2QSNFVB6.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-YEPB52XE.js";import{STORAGE_PROVIDERS,acceptTermsSubcommand,addSubcommand6 as addSubcommand,attachSubcommand,balanceSubcommand,categoriesSubcommand,categoriesSubcommand2,claimSubcommand,connectSubcommand2 as connectSubcommand,connectSubcommand3 as connectSubcommand2,connexCommand,contactsAddSubcommand,contactsSubcommand,createSubcommand2 as createSubcommand,createSubcommand9 as createSubcommand2,createThresholdSubcommand,deleteSubcommand4 as deleteSubcommand,detachSubcommand,disconnectSubcommand2 as disconnectSubcommand,disconnectSubcommand3 as disconnectSubcommand2,discoverSubcommand,discoverSubcommand2,findForeignCreateFlags,findOverlappingConnections,getCommandAliases,getConnections,getStorageProvider,getStorageStore,getStorageStores,getSubcommand3 as getSubcommand,guideSubcommand,inspectSubcommand10 as inspectSubcommand,installCommand,installationsSubcommand,integrationCommand,integrationResourceCommand,listStorageProviderTypes,listSubcommand16 as listSubcommand2,listSubcommand22 as listSubcommand3,listSubcommand7 as listSubcommand,loadStoreDetails,openSubcommand,openSubcommand4 as openSubcommand2,removeSubcommand10 as removeSubcommand2,removeSubcommand11 as removeSubcommand3,removeSubcommand5 as removeSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,revokeTokensSubcommand,statusSubcommand5 as statusSubcommand,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,tokenSubcommand,updateSubcommand,updateSubcommand12 as updateSubcommand3,updateSubcommand7 as updateSubcommand2,usageCommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{buildCommandDocumentationLines,buildCommandExampleLines,createHelpTheme,help,helpColumns,helpHeading,helpRows,helpSection,helpSyntaxWidth,helpUsage,remoteText,wrapHelpText}from"./chunks/chunk-33U57CNE.js";import"./chunks/chunk-3G3FQYMW.js";import{getScope}from"./chunks/chunk-RBIPVPTN.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,getExitCodeForReason,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{getLinkedProject,getProjectByNameOrId,getProjectLink,sleep}from"./chunks/chunk-QU25LP63.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments}from"./chunks/chunk-KIMIK4SG.js";import{quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{APIError,ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-JESNVRVR.js";import{output_manager_default}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,globalCommandOptions}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";function serviceTelemetryValue(value){let trimmed=value.trim();if(!trimmed)return null;let authority=trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,"").split(/[/?#]/,1)[0],atIndex=authority.lastIndexOf("@"),hostPort=atIndex===-1?authority:authority.slice(atIndex+1),host;if(hostPort.startsWith("[")){let end=hostPort.indexOf("]");host=end===-1?hostPort:hostPort.slice(0,end+1)}else host=hostPort.split(":",1)[0];return host?host.toLowerCase():null}var HEX_COLOR_REGEX=/^#[0-9a-fA-F]{6}$/;function isValidHexColor(value){return HEX_COLOR_REGEX.test(value)}function validateHexColor(value,label){if(value!==void 0&&!isValidHexColor(value))throw new Error(`Invalid ${label} "${value}". Expected 6-digit hex like #1A2B3C.`)}var ConnexTelemetryClient=class extends TelemetryClient{trackCliSubcommandDiscover(actual){this.trackCliSubcommand({subcommand:"discover",value:actual})}trackCliSubcommandCategories(actual){this.trackCliSubcommand({subcommand:"categories",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandToken(actual){this.trackCliSubcommand({subcommand:"token",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandContacts(actual){this.trackCliSubcommand({subcommand:"contacts",value:actual})}trackCliSubcommandAttach(actual){this.trackCliSubcommand({subcommand:"attach",value:actual})}trackCliSubcommandDetach(actual){this.trackCliSubcommand({subcommand:"detach",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandRevokeTokens(actual){this.trackCliSubcommand({subcommand:"revoke-tokens",value:actual})}trackCliArgumentClient(v){v&&this.trackCliArgument({arg:"client",value:this.redactedValue})}trackCliArgumentId(v){v&&this.trackCliArgument({arg:"id",value:this.redactedValue})}trackCliArgumentService(v){if(v){let value=serviceTelemetryValue(v);this.trackCliArgument({arg:"service",value:value??this.redactedValue})}}trackCliOptionName(v){v&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionSubject(v){v&&this.trackCliOption({option:"subject",value:v==="user"||v==="app"?v:this.redactedValue})}trackCliOptionInstallation(v){v&&this.trackCliOption({option:"installation",value:this.redactedValue})}trackCliOptionInstallationId(v){v&&this.trackCliOption({option:"installation-id",value:this.redactedValue})}trackCliOptionScopes(v){v&&this.trackCliOption({option:"scopes",value:this.redactedValue})}trackCliFlagNoDefaultScopes(v){v&&this.trackCliFlag("no-default-scopes")}trackCliOptionIcon(v){v&&this.trackCliOption({option:"icon",value:this.redactedValue})}trackCliOptionBackgroundColor(v){v&&this.trackCliOption({option:"background-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionAccentColor(v){v&&this.trackCliOption({option:"accent-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionData(v){v!==void 0&&this.trackCliOption({option:"data",value:this.redactedValue})}trackCliOptionConnectorType(v){v&&this.trackCliOption({option:"connector-type",value:v})}trackCliOptionConnectionMethod(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"connection-method",value})}trackCliOptionTarget(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"target",value})}trackCliArgumentQuery(v){v&&this.trackCliArgument({arg:"query",value:this.redactedValue})}trackCliOptionCategory(v){for(let raw of v??[])for(let category of raw.split(","))category.trim()&&this.trackCliOption({option:"category",value:this.redactedValue})}trackCliFlagSupportsTriggers(v){v&&this.trackCliFlag("supports-triggers")}trackCliOptionParam(v){!v||v.length===0||this.trackCliOption({option:"param",value:String(v.length)})}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagDisconnectAll(v){v&&this.trackCliFlag("disconnect-all")}trackCliFlagTriggers(v){v&&this.trackCliFlag("triggers")}trackCliOptionTriggerEvent(v){v&&v.length>0&&this.trackCliOption({option:"trigger-event",value:String(v.length)})}trackCliOptionGitBranch(v){v&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionTriggerBranch(v){v&&this.trackCliOption({option:"trigger-branch",value:this.redactedValue})}trackCliOptionTriggerEnvironment(v){v&&this.trackCliOption({option:"trigger-environment",value:this.redactedValue})}trackCliOptionTriggerPath(v){v&&this.trackCliOption({option:"trigger-path",value:this.redactedValue})}trackCliOptionTriggerProject(v){v&&this.trackCliOption({option:"trigger-project",value:this.redactedValue})}trackCliFlagMyTokens(v){v&&this.trackCliFlag("my-tokens")}trackCliFlagAllTokens(v){v&&this.trackCliFlag("all-tokens")}trackCliFlagAllProjects(v){v&&this.trackCliFlag("all-projects")}trackCliOptionLimit(v){v!==void 0&&this.trackCliOption({option:"limit",value:String(v)})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionService(v){if(!(!v||v.length===0))for(let raw of v)for(let svc of raw.split(","))svc.trim()&&this.trackCliOption({option:"service",value:this.redactedValue})}trackCliOptionType(v){if(!(!v||v.length===0))for(let raw of v)for(let t of raw.split(",")){let trimmed=t.trim();trimmed&&this.trackCliOption({option:"type",value:trimmed})}}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionEnvironment(v){if(!(!v||v.length===0))for(let raw of v)for(let env of raw.split(",")){let trimmed=env.trim();trimmed&&this.trackCliOption({option:"environment",value:this.redactedTargetName(trimmed)})}}};var import_chalk=__toESM(require_source(),1);var DEFAULT_LIMIT=50,MAX_LIMIT=500;function splitValues(values){return(values??[]).flatMap(v=>v.split(",").map(s2=>s2.trim())).filter(Boolean)}async function discover(client,args,flags){let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput;if(args.length>1)return output_manager_default.error(`Too many arguments. Usage: \`${packageName} connect discover [query]\``),2;let query=args[0],limit=flags["--limit"]??DEFAULT_LIMIT;if(!Number.isInteger(limit)||limit<1)return output_manager_default.error("--limit must be a whole number of 1 or more."),2;limit>MAX_LIMIT&&(output_manager_default.warning(`--limit is capped at ${MAX_LIMIT}. Showing ${MAX_LIMIT}.`),limit=MAX_LIMIT);let categories3=splitValues(flags["--category"]),connectionMethods=splitValues(flags["--connection-method"]),targets=splitValues(flags["--target"]),params=new URLSearchParams;query&&params.set("query",query),categories3.length&&params.set("category",categories3.join(",")),connectionMethods.length&&params.set("connectionMethod",connectionMethods.join(",")),targets.length&&params.set("target",targets.join(",")),flags["--supports-triggers"]&&params.set("supportsTriggers","true"),params.set("limit",String(limit)),flags["--next"]&&params.set("cursor",flags["--next"]),output_manager_default.spinner("Fetching services\u2026");let response;try{response=await client.fetch(`/v1/connect/services?${params}`,{teamOptional:!0})}catch(err){return output_manager_default.stopSpinner(),printError(err,client),1}output_manager_default.stopSpinner();let services=response.services??[],next=response.pagination?.next??null;if(services.length===0){let unknown=await unknownCategories(client,categories3);if(unknown.length>0)return output_manager_default.error(`Unknown ${unknown.length===1?"category":"categories"}: ${unknown.map(c=>`"${sanitizeForTerminal(c)}"`).join(", ")}. Run \`${packageName} connect categories\` to see the valid slugs.`),2}if(asJson){let jsonServices=services.map(s2=>({service:s2.service,name:s2.name,description:s2.description??null,categories:s2.categories,connectionMethods:(s2.connectionMethods??[]).map(m=>m.connectionMethod),targets:(s2.targets??[]).map(t=>t.target),supportsTriggers:s2.supportsTriggers,beta:s2.beta===!0,website:s2.website??null,docsite:s2.docsite??null}));return client.stdout.write(`${JSON.stringify({services:jsonServices,pagination:{next}},null,2)}
7
+ import{ENV_PULL_FAILED_MESSAGE,VALID_ENVIRONMENTS,connectResourceToProject,getLinkedProjectField,postProvisionSetup,validateEnvironments}from"./chunks/chunk-AQA4JVKA.js";import{sanitizeForTerminal}from"./chunks/chunk-UUBPAYTG.js";import{indent_default}from"./chunks/chunk-GZNDA6SV.js";import"./chunks/chunk-KUNFE2M6.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-PY5A73YH.js";import"./chunks/chunk-6Y2ZL5XJ.js";import"./chunks/chunk-WRC5CTUD.js";import"./chunks/chunk-25565AGS.js";import{extractDatePortion}from"./chunks/chunk-ECQIO5K3.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-HA2ICIB5.js";import"./chunks/chunk-7YKFF6CE.js";import{resolveProjectContext}from"./chunks/chunk-JULKMXVP.js";import"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-IHNEF3BG.js";import{normalizeRepeatableStringFilters}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-NDWGYZRT.js";import"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZBJ44DRL.js";import{selectOrg}from"./chunks/chunk-7A5WO5KA.js";import{canPrompt}from"./chunks/chunk-IQ7FPAI4.js";import{require_execa}from"./chunks/chunk-T34C75TI.js";import"./chunks/chunk-GD7AV7BO.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import"./chunks/chunk-PFD7LETF.js";import{printNextPageCommand}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,reportRenamedOptionError,withWarnings}from"./chunks/chunk-2QSNFVB6.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-YEPB52XE.js";import{STORAGE_PROVIDERS,acceptTermsSubcommand,addSubcommand6 as addSubcommand,attachSubcommand,balanceSubcommand,categoriesSubcommand,categoriesSubcommand2,claimSubcommand,connectSubcommand2 as connectSubcommand,connectSubcommand3 as connectSubcommand2,connexCommand,contactsAddSubcommand,contactsSubcommand,createSubcommand2 as createSubcommand,createSubcommand9 as createSubcommand2,createThresholdSubcommand,deleteSubcommand4 as deleteSubcommand,detachSubcommand,disconnectSubcommand2 as disconnectSubcommand,disconnectSubcommand3 as disconnectSubcommand2,discoverSubcommand,discoverSubcommand2,findForeignCreateFlags,findOverlappingConnections,getCommandAliases,getConnections,getStorageProvider,getStorageStore,getStorageStores,getSubcommand3 as getSubcommand,guideSubcommand,inspectSubcommand10 as inspectSubcommand,installCommand,installationsSubcommand,integrationCommand,integrationResourceCommand,listStorageProviderTypes,listSubcommand16 as listSubcommand2,listSubcommand22 as listSubcommand3,listSubcommand7 as listSubcommand,loadStoreDetails,openSubcommand,openSubcommand4 as openSubcommand2,removeSubcommand10 as removeSubcommand2,removeSubcommand11 as removeSubcommand3,removeSubcommand5 as removeSubcommand,resolveProjectConnection,resolveStore,resourceSubcommand,revokeTokensSubcommand,statusSubcommand5 as statusSubcommand,storageCommand,storeMatchesType,storeProductLabel,storeSupportsOidc,storeTypeName,tokenSubcommand,updateSubcommand,updateSubcommand12 as updateSubcommand3,updateSubcommand7 as updateSubcommand2,usageCommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import{envTargetChoices,isValidEnvTarget}from"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{buildCommandDocumentationLines,buildCommandExampleLines,createHelpTheme,help,helpColumns,helpHeading,helpRows,helpSection,helpSyntaxWidth,helpUsage,remoteText,wrapHelpText}from"./chunks/chunk-33U57CNE.js";import"./chunks/chunk-3G3FQYMW.js";import{getScope}from"./chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,buildIntegrationCommandTailFromArgv,getExitCodeForReason,outputActionRequired,outputAgentError,shouldEmitNonInteractiveCommandError}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{getLinkedProject,getProjectByNameOrId,getProjectLink,sleep}from"./chunks/chunk-QZEZCUUZ.js";import{formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments}from"./chunks/chunk-KIMIK4SG.js";import{quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{APIError,ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{getCommandName,getCommandNamePlain,packageName,require_lib}from"./chunks/chunk-JESNVRVR.js";import{output_manager_default}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,globalCommandOptions}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";function serviceTelemetryValue(value){let trimmed=value.trim();if(!trimmed)return null;let authority=trimmed.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,"").split(/[/?#]/,1)[0],atIndex=authority.lastIndexOf("@"),hostPort=atIndex===-1?authority:authority.slice(atIndex+1),host;if(hostPort.startsWith("[")){let end=hostPort.indexOf("]");host=end===-1?hostPort:hostPort.slice(0,end+1)}else host=hostPort.split(":",1)[0];return host?host.toLowerCase():null}var HEX_COLOR_REGEX=/^#[0-9a-fA-F]{6}$/;function isValidHexColor(value){return HEX_COLOR_REGEX.test(value)}function validateHexColor(value,label){if(value!==void 0&&!isValidHexColor(value))throw new Error(`Invalid ${label} "${value}". Expected 6-digit hex like #1A2B3C.`)}var ConnexTelemetryClient=class extends TelemetryClient{trackCliSubcommandDiscover(actual){this.trackCliSubcommand({subcommand:"discover",value:actual})}trackCliSubcommandCategories(actual){this.trackCliSubcommand({subcommand:"categories",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandToken(actual){this.trackCliSubcommand({subcommand:"token",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandOpen(actual){this.trackCliSubcommand({subcommand:"open",value:actual})}trackCliSubcommandContacts(actual){this.trackCliSubcommand({subcommand:"contacts",value:actual})}trackCliSubcommandAttach(actual){this.trackCliSubcommand({subcommand:"attach",value:actual})}trackCliSubcommandDetach(actual){this.trackCliSubcommand({subcommand:"detach",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandRevokeTokens(actual){this.trackCliSubcommand({subcommand:"revoke-tokens",value:actual})}trackCliArgumentClient(v){v&&this.trackCliArgument({arg:"client",value:this.redactedValue})}trackCliArgumentId(v){v&&this.trackCliArgument({arg:"id",value:this.redactedValue})}trackCliArgumentService(v){if(v){let value=serviceTelemetryValue(v);this.trackCliArgument({arg:"service",value:value??this.redactedValue})}}trackCliOptionName(v){v&&this.trackCliOption({option:"name",value:this.redactedValue})}trackCliOptionSubject(v){v&&this.trackCliOption({option:"subject",value:v==="user"||v==="app"?v:this.redactedValue})}trackCliOptionInstallation(v){v&&this.trackCliOption({option:"installation",value:this.redactedValue})}trackCliOptionInstallationId(v){v&&this.trackCliOption({option:"installation-id",value:this.redactedValue})}trackCliOptionScopes(v){v&&this.trackCliOption({option:"scopes",value:this.redactedValue})}trackCliFlagNoDefaultScopes(v){v&&this.trackCliFlag("no-default-scopes")}trackCliOptionIcon(v){v&&this.trackCliOption({option:"icon",value:this.redactedValue})}trackCliOptionBackgroundColor(v){v&&this.trackCliOption({option:"background-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionAccentColor(v){v&&this.trackCliOption({option:"accent-color",value:isValidHexColor(v)?v:this.redactedValue})}trackCliOptionData(v){v!==void 0&&this.trackCliOption({option:"data",value:this.redactedValue})}trackCliOptionConnectorType(v){v&&this.trackCliOption({option:"connector-type",value:v})}trackCliOptionConnectionMethod(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"connection-method",value})}trackCliOptionTarget(v){for(let value of[v??[]].flat())value&&this.trackCliOption({option:"target",value})}trackCliArgumentQuery(v){v&&this.trackCliArgument({arg:"query",value:this.redactedValue})}trackCliOptionCategory(v){for(let raw of v??[])for(let category of raw.split(","))category.trim()&&this.trackCliOption({option:"category",value:this.redactedValue})}trackCliFlagSupportsTriggers(v){v&&this.trackCliFlag("supports-triggers")}trackCliOptionParam(v){!v||v.length===0||this.trackCliOption({option:"param",value:String(v.length)})}trackCliFlagYes(v){v&&this.trackCliFlag("yes")}trackCliFlagDisconnectAll(v){v&&this.trackCliFlag("disconnect-all")}trackCliFlagTriggers(v){v&&this.trackCliFlag("triggers")}trackCliOptionTriggerEvent(v){v&&v.length>0&&this.trackCliOption({option:"trigger-event",value:String(v.length)})}trackCliOptionGitBranch(v){v&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionTriggerBranch(v){v&&this.trackCliOption({option:"trigger-branch",value:this.redactedValue})}trackCliOptionTriggerEnvironment(v){v&&this.trackCliOption({option:"trigger-environment",value:this.redactedValue})}trackCliOptionTriggerPath(v){v&&this.trackCliOption({option:"trigger-path",value:this.redactedValue})}trackCliOptionTriggerProject(v){v&&this.trackCliOption({option:"trigger-project",value:this.redactedValue})}trackCliFlagMyTokens(v){v&&this.trackCliFlag("my-tokens")}trackCliFlagAllTokens(v){v&&this.trackCliFlag("all-tokens")}trackCliFlagAllProjects(v){v&&this.trackCliFlag("all-projects")}trackCliOptionLimit(v){v!==void 0&&this.trackCliOption({option:"limit",value:String(v)})}trackCliOptionNext(v){v&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionQuery(v){v&&this.trackCliOption({option:"query",value:this.redactedValue})}trackCliOptionSearch(v){v&&this.trackCliOption({option:"search",value:this.redactedValue})}trackCliOptionService(v){if(!(!v||v.length===0))for(let raw of v)for(let svc of raw.split(","))svc.trim()&&this.trackCliOption({option:"service",value:this.redactedValue})}trackCliOptionType(v){if(!(!v||v.length===0))for(let raw of v)for(let t of raw.split(",")){let trimmed=t.trim();trimmed&&this.trackCliOption({option:"type",value:trimmed})}}trackCliOptionFormat(v){v&&this.trackCliOption({option:"format",value:v})}trackCliOptionEnvironment(v){if(!(!v||v.length===0))for(let raw of v)for(let env of raw.split(",")){let trimmed=env.trim();trimmed&&this.trackCliOption({option:"environment",value:this.redactedTargetName(trimmed)})}}};var import_chalk=__toESM(require_source(),1);var DEFAULT_LIMIT=50,MAX_LIMIT=500;function splitValues(values){return(values??[]).flatMap(v=>v.split(",").map(s2=>s2.trim())).filter(Boolean)}async function discover(client,args,flags){let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),2;let asJson=formatResult.jsonOutput;if(args.length>1)return output_manager_default.error(`Too many arguments. Usage: \`${packageName} connect discover [query]\``),2;let query=args[0],limit=flags["--limit"]??DEFAULT_LIMIT;if(!Number.isInteger(limit)||limit<1)return output_manager_default.error("--limit must be a whole number of 1 or more."),2;limit>MAX_LIMIT&&(output_manager_default.warning(`--limit is capped at ${MAX_LIMIT}. Showing ${MAX_LIMIT}.`),limit=MAX_LIMIT);let categories3=splitValues(flags["--category"]),connectionMethods=splitValues(flags["--connection-method"]),targets=splitValues(flags["--target"]),params=new URLSearchParams;query&&params.set("query",query),categories3.length&&params.set("category",categories3.join(",")),connectionMethods.length&&params.set("connectionMethod",connectionMethods.join(",")),targets.length&&params.set("target",targets.join(",")),flags["--supports-triggers"]&&params.set("supportsTriggers","true"),params.set("limit",String(limit)),flags["--next"]&&params.set("cursor",flags["--next"]),output_manager_default.spinner("Fetching services\u2026");let response;try{response=await client.fetch(`/v1/connect/services?${params}`,{teamOptional:!0})}catch(err){return output_manager_default.stopSpinner(),printError(err,client),1}output_manager_default.stopSpinner();let services=response.services??[],next=response.pagination?.next??null;if(services.length===0){let unknown=await unknownCategories(client,categories3);if(unknown.length>0)return output_manager_default.error(`Unknown ${unknown.length===1?"category":"categories"}: ${unknown.map(c=>`"${sanitizeForTerminal(c)}"`).join(", ")}. Run \`${packageName} connect categories\` to see the valid slugs.`),2}if(asJson){let jsonServices=services.map(s2=>({service:s2.service,name:s2.name,description:s2.description??null,categories:s2.categories,connectionMethods:(s2.connectionMethods??[]).map(m=>m.connectionMethod),targets:(s2.targets??[]).map(t=>t.target),supportsTriggers:s2.supportsTriggers,beta:s2.beta===!0,website:s2.website??null,docsite:s2.docsite??null}));return client.stdout.write(`${JSON.stringify({services:jsonServices,pagination:{next}},null,2)}
8
8
  `),0}if(services.length===0)return output_manager_default.log(query?`No services matching "${sanitizeForTerminal(query)}" found.`:"No services found."),0;let useCompactFormat=client.stderr.columns>0&&client.stderr.columns<120;if(output_manager_default.print(`${useCompactFormat?formatCompactList(services):formatTable(services)}
9
9
  `),output_manager_default.log(`Run \`${packageName} connect create <service>\` to create a connector.`),next){let parts=[`${packageName} connect discover`];query&&parts.push(JSON.stringify(query));for(let c of categories3)parts.push(`--category ${c}`);for(let m of connectionMethods)parts.push(`--connection-method ${m}`);for(let t of targets)parts.push(`--target ${t}`);flags["--supports-triggers"]&&parts.push("--supports-triggers"),flags["--limit"]!==void 0&&parts.push(`--limit ${limit}`),parts.push(`--next ${next}`),output_manager_default.print(`
10
10
  `),printNextPageCommand(parts.join(" "))}return 0}function methodsOf(s2){let methods=(s2.connectionMethods??[]).map(m=>m.connectionMethod);return methods.length?methods.join(", "):import_chalk.default.gray("\u2013")}async function unknownCategories(client,categories3){if(categories3.length===0)return[];try{let response=await client.fetch("/v1/connect/services/categories",{teamOptional:!0}),known=new Set((response.categories??[]).map(c=>c.slug));return categories3.filter(c=>!known.has(c))}catch{return[]}}function formatTable(services){return table([["Service","Name","Methods","Description"].map(h=>import_chalk.default.bold(import_chalk.default.cyan(h))),...services.map(s2=>[sanitizeForTerminal(s2.service),sanitizeForTerminal(s2.name),methodsOf(s2),s2.description?sanitizeForTerminal(s2.description):import_chalk.default.gray("\u2013")])],{hsep:4})}function formatCompactList(services){return services.map(s2=>[`${import_chalk.default.bold(sanitizeForTerminal(s2.name))} (${sanitizeForTerminal(s2.service)})`,` Methods: ${methodsOf(s2)}`,` Description: ${s2.description?sanitizeForTerminal(s2.description):"\u2013"}`].join(`
@@ -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{handleTracingApiError,invalidArguments,resolveConfigScope,resolveScope,tracingErrorMessage,tracingErrorReason}from"./chunks/chunk-FDOTZ4IH.js";import{main}from"./chunks/chunk-6MFNV76B.js";import{decodeContinuation,encodeContinuation,warningLine}from"./chunks/chunk-CJHVHB2F.js";import{InvalidEventsResponseError,RecordTooLargeError,fetchEventPages,recordLine,sortIntervals,summaryLine,writeJsonError}from"./chunks/chunk-OLAG7Y3P.js";import"./chunks/chunk-ZXRQVYZA.js";import{readStdinText}from"./chunks/chunk-PSOVLGHP.js";import"./chunks/chunk-XOETL6DB.js";import"./chunks/chunk-CC2X7T2R.js";import"./chunks/chunk-BG3IJPID.js";import"./chunks/chunk-6Y2ZL5XJ.js";import"./chunks/chunk-WRC5CTUD.js";import"./chunks/chunk-25565AGS.js";import{runCurl}from"./chunks/chunk-ZSLUGW4E.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-HA2ICIB5.js";import"./chunks/chunk-NTN2SSGR.js";import"./chunks/chunk-7YKFF6CE.js";import"./chunks/chunk-4JOJYW22.js";import"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-PNCWCFPL.js";import{decodeListCursor,sliceList}from"./chunks/chunk-XBOGVOV5.js";import{parseRepoUrl}from"./chunks/chunk-NAXFG37F.js";import"./chunks/chunk-4ELZOAQH.js";import"./chunks/chunk-JUAHDOL6.js";import"./chunks/chunk-UI2H2EIM.js";import"./chunks/chunk-UUDE44NV.js";import{ellipsis}from"./chunks/chunk-AKOYIH3A.js";import{validateIntegerRangeWithDefault}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-AEOG4E5G.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import"./chunks/chunk-OQDN4RKT.js";import"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-RJZHOERW.js";import{printUnknownCommand}from"./chunks/chunk-5SMV2PPI.js";import{external_exports}from"./chunks/chunk-2NABMKFV.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-B3ETPBO4.js";import{formatTable}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption}from"./chunks/chunk-2QSNFVB6.js";import"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-YEPB52XE.js";import{CI_LOG_LEVELS,ciCommand,createSubcommand4 as createSubcommand,deleteSubcommand,drainsCommand,enableSubcommand,getCommandAliases,grepSubcommand,healthCommand,inspectSubcommand4 as inspectSubcommand,inspectSubcommand7 as inspectSubcommand2,listSubcommand12 as listSubcommand2,listSubcommand6 as listSubcommand,logsSubcommand,pauseSubcommand,rerunSubcommand,resumeSubcommand,updateSubcommand3 as updateSubcommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import{createSubcommand as createSubcommand2,getSubcommand,searchSubcommand,tracesCommand}from"./chunks/chunk-EZL4AJXH.js";import{tracesConfigCommand}from"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help,remoteText}from"./chunks/chunk-33U57CNE.js";import"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope,scopeFlagPassed}from"./chunks/chunk-RBIPVPTN.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,getErrorRecovery,getExitCodeForReason,getGlobalFlagsFromArgv,outputAgentError,shouldEmitNonInteractiveCommandError,withGlobalFlags,writeAgentError}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{execFileAsync,getGitExecutable,getLinkedProject,getProjectByNameOrId,require_pluralize,selectGitRemote,sleep,ua_default}from"./chunks/chunk-QU25LP63.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-JESNVRVR.js";import{output_manager_default,recordCliError}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{GLOBAL_CLI_FLAG_NAMES,getFlagsSpecification}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{fetch,toNodeReadable}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var require_split2=__commonJS({"../../node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js"(exports,module){"use strict";var{Transform:Transform2}=__require("stream"),{StringDecoder}=__require("string_decoder"),kLast=Symbol("last"),kDecoder=Symbol("decoder");function transform(chunk,enc,cb){let list2;if(this.overflow){if(list2=this[kDecoder].write(chunk).split(this.matcher),list2.length===1)return cb();list2.shift(),this.overflow=!1}else this[kLast]+=this[kDecoder].write(chunk),list2=this[kLast].split(this.matcher);this[kLast]=list2.pop();for(let i=0;i<list2.length;i++)try{push(this,this.mapper(list2[i]))}catch(error){return cb(error)}if(this.overflow=this[kLast].length>this.maxLength,this.overflow&&!this.skipOverflow){cb(new Error("maximum buffer reached"));return}cb()}function flush(cb){if(this[kLast]+=this[kDecoder].end(),this[kLast])try{push(this,this.mapper(this[kLast]))}catch(error){return cb(error)}cb()}function push(self,val){val!==void 0&&self.push(val)}function noop(incoming){return incoming}function split2(matcher,mapper,options){switch(matcher=matcher||/\r?\n/,mapper=mapper||noop,options=options||{},arguments.length){case 1:typeof matcher=="function"?(mapper=matcher,matcher=/\r?\n/):typeof matcher=="object"&&!(matcher instanceof RegExp)&&!matcher[Symbol.split]&&(options=matcher,matcher=/\r?\n/);break;case 2:typeof matcher=="function"?(options=mapper,mapper=matcher,matcher=/\r?\n/):typeof mapper=="object"&&(options=mapper,mapper=noop)}options=Object.assign({},options),options.autoDestroy=!0,options.transform=transform,options.flush=flush,options.readableObjectMode=!0;let stream=new Transform2(options);return stream[kLast]="",stream[kDecoder]=new StringDecoder("utf8"),stream.matcher=matcher,stream.mapper=mapper,stream.maxLength=options.maxLength,stream.skipOverflow=options.skipOverflow||!1,stream.overflow=!1,stream._destroy=function(err,cb){this._writableState.errorEmitted=!1,cb(err)},stream}module.exports=split2}});var CiTelemetryClient=class extends TelemetryClient{trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandLogs(actual){this.trackCliSubcommand({subcommand:"logs",value:actual})}trackCliSubcommandGrep(actual){this.trackCliSubcommand({subcommand:"grep",value:actual})}trackCliSubcommandRerun(actual){this.trackCliSubcommand({subcommand:"rerun",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}};var import_strip_ansi=__toESM(require_strip_ansi(),1);function ciDisplayText(value){return Array.from((0,import_strip_ansi.default)(value),char=>{let code=char.codePointAt(0);return code>=127&&code<=159?`\\u${code.toString(16).padStart(4,"0")}`:code<32?JSON.stringify(char).slice(1,-1):char}).join("")}function quoteCiCommandArg(value){return/^[a-zA-Z0-9_./:@%+,=-]+$/.test(value)?value:`'${value.replace(/'/g,"'\\''")}'`}function buildCiCommand(argv,args){return getCommandNamePlain([...args,...getGlobalFlagsFromArgv(argv)].map(quoteCiCommandArg).join(" "))}var import_split2=__toESM(require_split2(),1);import{Transform}from"node:stream";import{pipeline}from"node:stream/promises";async function*readNdjson(client,url,options={}){let response=await client.fetch(url,{json:!1,accountId:options.accountId,signal:options.signal}),source=toNodeReadable(response.body),maxFrameBytes=8*1024*1024,frameBytes=0,bounded=new Transform({transform(chunk,_encoding,callback){let start=0;for(;start<chunk.length;){let newline=chunk.indexOf(10,start),end=newline===-1?chunk.length:newline;if(frameBytes+=end-start,frameBytes>maxFrameBytes){callback(new Error("Vercel CI response frame exceeds 8 MiB."));return}if(newline===-1)break;frameBytes=0,start=newline+1}callback(null,chunk)}}),lines=(0,import_split2.default)(),completion=pipeline(source,bounded,lines,{signal:options.signal}).then(()=>{},error=>error);try{let snapshot=response.headers.get("content-type")?.split(";")[0]==="application/json",json="",bytes=0;for await(let line of lines)if(snapshot){if(bytes+=Buffer.byteLength(line)+1,bytes>8*1024*1024)throw new Error("Vercel CI JSON snapshot exceeds 8 MiB.");json+=`${line}
7
+ import{handleTracingApiError,invalidArguments,resolveConfigScope,resolveScope,tracingErrorMessage,tracingErrorReason}from"./chunks/chunk-TSKFDJ77.js";import{main}from"./chunks/chunk-H4DE2OFO.js";import{decodeContinuation,encodeContinuation,warningLine}from"./chunks/chunk-CJHVHB2F.js";import{InvalidEventsResponseError,RecordTooLargeError,fetchEventPages,recordLine,sortIntervals,summaryLine,writeJsonError}from"./chunks/chunk-OLAG7Y3P.js";import"./chunks/chunk-FNOCIKAU.js";import{readStdinText}from"./chunks/chunk-PSOVLGHP.js";import"./chunks/chunk-XOETL6DB.js";import"./chunks/chunk-KUNFE2M6.js";import"./chunks/chunk-PY5A73YH.js";import"./chunks/chunk-6Y2ZL5XJ.js";import"./chunks/chunk-WRC5CTUD.js";import"./chunks/chunk-25565AGS.js";import{runCurl}from"./chunks/chunk-HNOZM6D4.js";import{applyDeprecatedGitBranchFlag}from"./chunks/chunk-HA2ICIB5.js";import"./chunks/chunk-LOEU4R4Z.js";import"./chunks/chunk-7YKFF6CE.js";import"./chunks/chunk-JULKMXVP.js";import"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-IHNEF3BG.js";import{decodeListCursor,sliceList}from"./chunks/chunk-XBOGVOV5.js";import{parseRepoUrl}from"./chunks/chunk-NAXFG37F.js";import"./chunks/chunk-4ELZOAQH.js";import"./chunks/chunk-JUAHDOL6.js";import"./chunks/chunk-UI2H2EIM.js";import"./chunks/chunk-UUDE44NV.js";import{ellipsis}from"./chunks/chunk-AKOYIH3A.js";import{validateIntegerRangeWithDefault}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-AEOG4E5G.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import"./chunks/chunk-NDWGYZRT.js";import"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZBJ44DRL.js";import{printUnknownCommand}from"./chunks/chunk-5SMV2PPI.js";import{external_exports}from"./chunks/chunk-2NABMKFV.js";import{canPrompt,canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{parseListLimit,printNextPageCommand,printNextPageHint}from"./chunks/chunk-B3ETPBO4.js";import{formatTable}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption}from"./chunks/chunk-2QSNFVB6.js";import"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import"./chunks/chunk-YEPB52XE.js";import{CI_LOG_LEVELS,ciCommand,createSubcommand4 as createSubcommand,deleteSubcommand,drainsCommand,enableSubcommand,getCommandAliases,grepSubcommand,healthCommand,inspectSubcommand4 as inspectSubcommand,inspectSubcommand7 as inspectSubcommand2,listSubcommand12 as listSubcommand2,listSubcommand6 as listSubcommand,logsSubcommand,pauseSubcommand,rerunSubcommand,resumeSubcommand,updateSubcommand3 as updateSubcommand}from"./chunks/chunk-2PYFJXKS.js";import"./chunks/chunk-3KSTUMR6.js";import{createSubcommand as createSubcommand2,getSubcommand,searchSubcommand,tracesCommand}from"./chunks/chunk-EZL4AJXH.js";import{tracesConfigCommand}from"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help,remoteText}from"./chunks/chunk-33U57CNE.js";import"./chunks/chunk-3G3FQYMW.js";import{getContextName,getScope,scopeFlagPassed}from"./chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_REASON,AGENT_STATUS,buildCommandWithYes,getErrorRecovery,getExitCodeForReason,getGlobalFlagsFromArgv,outputAgentError,shouldEmitNonInteractiveCommandError,withGlobalFlags,writeAgentError}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{execFileAsync,getGitExecutable,getLinkedProject,getProjectByNameOrId,require_pluralize,selectGitRemote,sleep,ua_default}from"./chunks/chunk-QZEZCUUZ.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-JESNVRVR.js";import{output_manager_default,recordCliError}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import"./chunks/chunk-RM3ZDRYE.js";import"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{GLOBAL_CLI_FLAG_NAMES,getFlagsSpecification}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{fetch,toNodeReadable}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__commonJS,__require,__toESM}from"./chunks/chunk-BZENIQ7N.js";var require_split2=__commonJS({"../../node_modules/.pnpm/split2@4.2.0/node_modules/split2/index.js"(exports,module){"use strict";var{Transform:Transform2}=__require("stream"),{StringDecoder}=__require("string_decoder"),kLast=Symbol("last"),kDecoder=Symbol("decoder");function transform(chunk,enc,cb){let list2;if(this.overflow){if(list2=this[kDecoder].write(chunk).split(this.matcher),list2.length===1)return cb();list2.shift(),this.overflow=!1}else this[kLast]+=this[kDecoder].write(chunk),list2=this[kLast].split(this.matcher);this[kLast]=list2.pop();for(let i=0;i<list2.length;i++)try{push(this,this.mapper(list2[i]))}catch(error){return cb(error)}if(this.overflow=this[kLast].length>this.maxLength,this.overflow&&!this.skipOverflow){cb(new Error("maximum buffer reached"));return}cb()}function flush(cb){if(this[kLast]+=this[kDecoder].end(),this[kLast])try{push(this,this.mapper(this[kLast]))}catch(error){return cb(error)}cb()}function push(self,val){val!==void 0&&self.push(val)}function noop(incoming){return incoming}function split2(matcher,mapper,options){switch(matcher=matcher||/\r?\n/,mapper=mapper||noop,options=options||{},arguments.length){case 1:typeof matcher=="function"?(mapper=matcher,matcher=/\r?\n/):typeof matcher=="object"&&!(matcher instanceof RegExp)&&!matcher[Symbol.split]&&(options=matcher,matcher=/\r?\n/);break;case 2:typeof matcher=="function"?(options=mapper,mapper=matcher,matcher=/\r?\n/):typeof mapper=="object"&&(options=mapper,mapper=noop)}options=Object.assign({},options),options.autoDestroy=!0,options.transform=transform,options.flush=flush,options.readableObjectMode=!0;let stream=new Transform2(options);return stream[kLast]="",stream[kDecoder]=new StringDecoder("utf8"),stream.matcher=matcher,stream.mapper=mapper,stream.maxLength=options.maxLength,stream.skipOverflow=options.skipOverflow||!1,stream.overflow=!1,stream._destroy=function(err,cb){this._writableState.errorEmitted=!1,cb(err)},stream}module.exports=split2}});var CiTelemetryClient=class extends TelemetryClient{trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandLogs(actual){this.trackCliSubcommand({subcommand:"logs",value:actual})}trackCliSubcommandGrep(actual){this.trackCliSubcommand({subcommand:"grep",value:actual})}trackCliSubcommandRerun(actual){this.trackCliSubcommand({subcommand:"rerun",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}};var import_strip_ansi=__toESM(require_strip_ansi(),1);function ciDisplayText(value){return Array.from((0,import_strip_ansi.default)(value),char=>{let code=char.codePointAt(0);return code>=127&&code<=159?`\\u${code.toString(16).padStart(4,"0")}`:code<32?JSON.stringify(char).slice(1,-1):char}).join("")}function quoteCiCommandArg(value){return/^[a-zA-Z0-9_./:@%+,=-]+$/.test(value)?value:`'${value.replace(/'/g,"'\\''")}'`}function buildCiCommand(argv,args){return getCommandNamePlain([...args,...getGlobalFlagsFromArgv(argv)].map(quoteCiCommandArg).join(" "))}var import_split2=__toESM(require_split2(),1);import{Transform}from"node:stream";import{pipeline}from"node:stream/promises";async function*readNdjson(client,url,options={}){let response=await client.fetch(url,{json:!1,accountId:options.accountId,signal:options.signal}),source=toNodeReadable(response.body),maxFrameBytes=8*1024*1024,frameBytes=0,bounded=new Transform({transform(chunk,_encoding,callback){let start=0;for(;start<chunk.length;){let newline=chunk.indexOf(10,start),end=newline===-1?chunk.length:newline;if(frameBytes+=end-start,frameBytes>maxFrameBytes){callback(new Error("Vercel CI response frame exceeds 8 MiB."));return}if(newline===-1)break;frameBytes=0,start=newline+1}callback(null,chunk)}}),lines=(0,import_split2.default)(),completion=pipeline(source,bounded,lines,{signal:options.signal}).then(()=>{},error=>error);try{let snapshot=response.headers.get("content-type")?.split(";")[0]==="application/json",json="",bytes=0;for await(let line of lines)if(snapshot){if(bytes+=Buffer.byteLength(line)+1,bytes>8*1024*1024)throw new Error("Vercel CI JSON snapshot exceeds 8 MiB.");json+=`${line}
8
8
  `}else line.trim()&&(yield JSON.parse(line));let error=await completion;if(error)throw error;snapshot&&(yield JSON.parse(json))}finally{source.destroy(),bounded.destroy(),lines.destroy(),await completion}}async function resolveCiTeam(_client){return{ok:!0}}function listCiInvocations(client,params,accountId){let query=new URLSearchParams({provider:params.provider,repository:params.repository});params.branch&&query.set("branchName",params.branch),params.commitSha&&query.set("snapshot",params.commitSha);for(let status of params.statuses??[])query.append("status",status);for(let conclusion2 of params.conclusions??[])query.append("conclusion",conclusion2);return params.limit&&query.set("limit",String(params.limit)),params.cursor&&query.set("cursor",params.cursor),client.fetch(`/v2/vercel-ci/invocations?${query}`,{accountId})}function getCiInvocationTree(client,invocationId,options={}){let query=new URLSearchParams;options.attempt&&query.set("attempt",String(options.attempt));let suffix=query.size?`?${query}`:"";return client.fetch(`/v1/vercel-ci/invocations/${encodeURIComponent(invocationId)}/tree${suffix}`,{accountId:options.accountId})}function streamCiInvocationTree(client,invocationId,options){let query=new URLSearchParams({attempt:String(options.attempt),follow:"1"});return readNdjson(client,`/v1/vercel-ci/invocations/${encodeURIComponent(invocationId)}/tree?${query}`,{accountId:options.accountId,signal:options.signal})}async function getLatestCiAttempt(client,invocationId,accountId){let{attempts}=await client.fetch(`/v1/vercel-ci/invocations/${encodeURIComponent(invocationId)}/attempts`,{accountId});return Math.max(1,...attempts.map(attempt=>attempt.attempt))}function searchCiLogs(client,runs,filters,accountId){let query=new URLSearchParams;for(let run of runs)query.append("invocation",`${run.invocationId}:${run.attempt}`);query.set("search",filters.search);for(let level of filters.levels??[])query.append("level",level);return client.fetch(`/v1/vercel-ci/log-search?${query}`,{accountId})}function getCiTaskLogs(client,invocationId,attempt,filters,accountId){let query=new URLSearchParams;for(let task of filters.tasks??[])query.append("task",task);for(let conclusion2 of filters.conclusions??[])query.append("conclusion",conclusion2);for(let level of filters.levels??[])query.append("level",level);filters.search&&query.set("search",filters.search),filters.limit&&query.set("limit",String(filters.limit));let suffix=query.size?`?${query}`:"";return client.fetch(`/v1/vercel-ci/invocations/${encodeURIComponent(invocationId)}/attempts/${attempt}/task-logs${suffix}`,{accountId})}function streamCiTaskRunLogs(client,locator,options){let query=new URLSearchParams({follow:"1"});options.since!==void 0&&query.set("since",String(options.since));for(let level of options.levels??[])query.append("level",level);return readNdjson(client,`${ciTaskRunLogsPath(locator)}?${query}`,{accountId:options.accountId,signal:options.signal})}async function getCiTaskRunLogs(client,locator,options={}){let query=new URLSearchParams;for(let level of options.levels??[])query.append("level",level);let suffix=query.size?`?${query}`:"",snapshot;for await(let value of readNdjson(client,`${ciTaskRunLogsPath(locator)}${suffix}`,{accountId:options.accountId})){if(snapshot||typeof value!="object"||value===null||!("lines"in value)||!Array.isArray(value.lines))throw new Error("Invalid Vercel CI log snapshot.");snapshot=value}if(!snapshot)throw new Error("Missing Vercel CI log snapshot.");return snapshot}function ciTaskRunLogsPath(locator){return`/v1/vercel-ci/${["invocations",locator.invocationId,"attempts",locator.attempt,"job-definitions",locator.jobDefinitionId,"runs",locator.jobRunAttempt,"task-definitions",locator.taskDefinitionId,"runs",locator.taskRunAttempt,"logs"].map(segment=>encodeURIComponent(String(segment))).join("/")}`}async function getCiSetupLogs(client,invocationId,attempt,options={}){let base=`/v1/vercel-ci/invocations/${encodeURIComponent(invocationId)}/attempts/${attempt}`,{invocation}=await client.fetch(base,{accountId:options.accountId});if(invocation.setupConclusion?.result!=="failed")return{failed:!1,lines:[]};let query=new URLSearchParams;for(let level of options.levels??[])query.append("level",level);let suffix=query.size?`?${query}`:"",{lines}=await client.fetch(`${base}/logs${suffix}`,{accountId:options.accountId});return{failed:!0,lines}}function repositorySettingsPath(repo){return`/v1/vercel-ci/repository-settings?${new URLSearchParams({provider:repo.provider,organizationId:repo.organizationId,repository:repo.repository})}`}function getCiRepositorySettings(client,repo,accountId){return client.fetch(repositorySettingsPath(repo),{accountId})}function updateCiRepositorySettings(client,repo,settings,accountId){return client.fetch(repositorySettingsPath(repo),{method:"PATCH",body:settings,accountId})}var CiEnableTelemetryClient=class extends TelemetryClient{trackCliOptionRemote(remote){remote!==void 0&&this.trackCliOption({option:"remote",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var SUPPORTED_PROVIDERS=["github"];async function getCiGitRemoteNames(cwd){let git=await getGitExecutable(cwd),names=await readGit(git,cwd,["remote"]);return names?names.split(`
9
9
  `):[]}async function getCiGitContext(cwd,remoteName="origin"){let git=await getGitExecutable(cwd),[remote,branch,commitSha]=await Promise.all([readGit(git,cwd,["remote","get-url",remoteName]),readGit(git,cwd,["rev-parse","--abbrev-ref","HEAD"]),readGit(git,cwd,["rev-parse","HEAD"])]);if(!remote)return null;let repo=parseRepoUrl(remote),provider=SUPPORTED_PROVIDERS.find(p=>p===repo?.provider);return!repo||!provider?(output_manager_default.debug("Unsupported Git remote for Vercel CI."),null):{provider,repository:`${repo.org}/${repo.repo}`,...branch&&branch!=="HEAD"?{branch}:{},...commitSha?{commitSha}:{}}}var COMMIT_SHA_PATTERN=/^[0-9a-f]{4,40}$/i;async function resolveCommitSha(cwd,value){let sha=value.trim().toLowerCase();if(!COMMIT_SHA_PATTERN.test(sha))return null;if(sha.length===40)return sha;let git=await getGitExecutable(cwd);return await readGit(git,cwd,["rev-parse","--verify","--quiet",`${sha}^{commit}`])??null}async function readGit(git,cwd,args){try{let{stdout}=await execFileAsync(git,args,{cwd});return stdout.trim()||void 0}catch(error){output_manager_default.debug(`git ${args.join(" ")} failed: ${error}`);return}}function failCi(client,failure){return shouldEmitNonInteractiveCommandError(client)?writeAgentError(client,{status:AGENT_STATUS.ERROR,...failure}):output_manager_default.fatal(failure.message),getExitCodeForReason(failure.reason)}function invalidCiArguments(client,message){return failCi(client,{reason:AGENT_REASON.INVALID_ARGUMENTS,message})}function handleCiApiError(client,action,err){if(isAPIError(err)){let detail=err.serverMessage?` ${err.serverMessage}`:"";switch(err.status){case 403:return failCi(client,{reason:AGENT_REASON.PERMISSION_DENIED,message:`Can't ${action}. You don't have access to Vercel CI runs for this team.`});case 404:return failCi(client,{reason:AGENT_REASON.CI_RUN_NOT_FOUND,message:"Couldn't find that Vercel CI run for this team."});case 429:return failCi(client,{reason:AGENT_REASON.RATE_LIMITED,message:`Failed to ${action}. Too many requests. Wait a moment, then try again.`});default:return failCi(client,{reason:AGENT_REASON.API_ERROR,message:`Failed to ${action}.${detail}`})}}throw err}async function resolveCiContext(client,remoteOptions){let remoteName="origin";if(remoteOptions){let remoteNames=await getCiGitRemoteNames(client.cwd);if(remoteOptions.remote!==void 0){if(!remoteNames.includes(remoteOptions.remote))return invalidCiArguments(client,"Can't enable Vercel CI. --remote must name an existing Git remote. Run `git remote` to list remotes, then pass --remote <NAME>.");remoteName=remoteOptions.remote}else{if(remoteNames.length>1&&(remoteOptions.nonInteractive||!canPromptOnTerminal(client)))return invalidCiArguments(client,"Can't enable Vercel CI. Found multiple Git remotes. Pass --remote <NAME> to select one; run `git remote` to list remotes.");remoteNames.length>0&&(remoteName=await selectGitRemote(client,remoteNames))}}let git=await getCiGitContext(client.cwd,remoteName);if(!git)return failCi(client,{reason:AGENT_REASON.GIT_REPOSITORY_REQUIRED,message:remoteOptions?"Couldn't find a supported Git repository for the selected remote. Vercel CI currently supports GitHub repositories. Run `git remote -v` to check remotes, then pass --remote <NAME>.":"Couldn't find a supported Git repository here. Vercel CI currently supports GitHub repositories with an origin remote."});let team=await resolveCiTeam(client);return team.ok?{git,remoteName,accountId:team.accountId}:team.exitCode}async function enable(client,argv){let telemetry=new CiEnableTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(enableSubcommand.options))}catch(error){return printError(error,client),2}let{args,flags}=parsedArgs;if(telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionRemote(flags["--remote"]),args.length>0)return invalidCiArguments(client,`\`${getCommandNamePlain("ci enable")}\` doesn't take arguments. Run it inside the repository to enable.`);let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return invalidCiArguments(client,formatResult.error);let asJson=formatResult.jsonOutput||client.nonInteractive,context=await resolveCiContext(client,{remote:flags["--remote"],nonInteractive:asJson});if(typeof context=="number")return context;let{git,accountId}=context,[organizationId,repository]=git.repository.split("/"),repo={provider:git.provider,organizationId,repository},repoName=ciDisplayText(git.repository);asJson||output_manager_default.spinner("Enabling Vercel CI\u2026");let settings,outcome;try{let current=await getCiRepositorySettings(client,repo,accountId);current.ciEnabled?(settings=current,outcome="unchanged"):(settings=await updateCiRepositorySettings(client,repo,{ciEnabled:!0},accountId),outcome="enabled")}catch(err){return output_manager_default.stopSpinner(),handleEnableError(client,repoName,err)}output_manager_default.stopSpinner();let listCommand=buildCiCommand(client.argv,["ci","list"]),next=context.remoteName==="origin"?[{command:listCommand,when:"List Vercel CI runs after you push a commit"}]:[],message=outcome==="enabled"?`Enabled Vercel CI for ${repoName}.`:`Vercel CI is already enabled for ${repoName}.`;if(asJson){let payload={repository:settings,outcome,next},agentPayload=client.nonInteractive?{status:AGENT_STATUS.OK,...payload,message}:payload;return client.stdout.write(`${JSON.stringify(agentPayload,null,2)}
10
10
  `),0}return outcome==="enabled"?(printAlignedLabel("Enabled","Vercel CI",{gutter:"\u2713"}),printAlignedLabel("Repository",repoName)):output_manager_default.print(` ${message}
@@ -119,4 +119,4 @@ ${formatStatusReport(report,Date.now())}`),0}var TracesTelemetryClient=class ext
119
119
  `),printNextPageCommand(getCommandNamePlain(nextPageArgs(nextToken)))):output_manager_default.print(`Narrow the query or increase --limit to see the rest.
120
120
  `)),0;function reportFailure2(err){json||output_manager_default.stopSpinner(),err instanceof InvalidEventsResponseError&&(err=new Error(INVALID_RESPONSE_MESSAGE)),addSpanQueryIssueDetails(err),query.startCursor&&received===0&&isAPIError(err)&&err.status===400&&(err.serverMessage=`${err.serverMessage}. The cursor may have expired. Run the search again without --next.`,err.message=`${err.serverMessage} (${err.status})`);let retryToken=received>0&&resumeCursor&&!(err instanceof RecordTooLargeError)?spanContinuationToken(query,resumeCursor):null;if(json&&received>0)return writeJsonError(client,{status:"error",reason:tracingErrorReason(err),message:tracingErrorMessage(err),...isAPIError(err)&&err.status===429?getErrorRecovery(err,client):{},data:progressFor(query,received,retryToken,excludedIntervals),...retryToken?{next:[{command:getCommandNamePlain(nextPageArgs(retryToken)),when:"Retry the failed page"}]}:{}},1);!json&&spans.length>0&&printSpans(client,spans,columns);let exitCode=handleTracingApiError(client,err);return received>0&&(output_manager_default.error(`Output is incomplete: ${received} spans were printed before the failure.`),retryToken&&output_manager_default.print(`Retry the failed page:
121
121
  ${getCommandName(nextPageArgs(retryToken))}
122
- `)),exitCode}}function explicitInteractionOverride(argv){let args=argv.slice(2),end=args.indexOf("--");for(let arg of end===-1?args:args.slice(0,end)){if(arg==="--non-interactive=false")return"--non-interactive=false";if(arg==="--non-interactive"||arg.startsWith("--non-interactive="))return"--non-interactive"}}function progressFor(query,received,retryToken,excludedIntervals){return{recordsReturned:received,outputIncomplete:!0,timeRange:query.timeRange,pagination:{hasMore:!0,next:retryToken},excludedIntervals:sortIntervals(excludedIntervals.values())}}var COMMAND_CONFIG3={inspect:getCommandAliases(getSubcommand),create:getCommandAliases(createSubcommand2),search:getCommandAliases(searchSubcommand),config:getCommandAliases(tracesConfigCommand)},SUBCOMMAND_METADATA={[getSubcommand.name]:getSubcommand,[createSubcommand2.name]:createSubcommand2,[searchSubcommand.name]:searchSubcommand};async function traces(client){let telemetry=new TracesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(tracesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return invalidArguments(client,err instanceof Error?err.message:String(err))}let{subcommand,subcommandOriginal,args}=getSubcommand2(parsedArgs.args.slice(1),COMMAND_CONFIG3),needHelp=!!parsedArgs.flags["--help"];if(subcommand===tracesConfigCommand.name)return(await import("./chunks/config-4Y4HCQGZ.js")).default(client,{args,needHelp,subcommandOriginal,telemetry});if(needHelp){telemetry.trackCliFlagHelp("traces",subcommandOriginal);let subMetadata=typeof subcommand=="string"?SUBCOMMAND_METADATA[subcommand]:void 0;return output_manager_default.print(help(subMetadata??tracesCommand,{stream:client.stderr,parent:subMetadata?tracesCommand:void 0,columns:client.stderr.columns})),0}if(subcommand===createSubcommand2.name){let args2=client.argv.slice(4);return runCurl(client,{forceTrace:!0,args:args2})}return subcommand===searchSubcommand.name?(telemetry.trackCliSubcommandSearch(subcommandOriginal||subcommand),search(client,telemetry)):(subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"traces get","traces inspect"),get(client,telemetry))}export{main2 as ci,drains,health,main as pull,traces};
122
+ `)),exitCode}}function explicitInteractionOverride(argv){let args=argv.slice(2),end=args.indexOf("--");for(let arg of end===-1?args:args.slice(0,end)){if(arg==="--non-interactive=false")return"--non-interactive=false";if(arg==="--non-interactive"||arg.startsWith("--non-interactive="))return"--non-interactive"}}function progressFor(query,received,retryToken,excludedIntervals){return{recordsReturned:received,outputIncomplete:!0,timeRange:query.timeRange,pagination:{hasMore:!0,next:retryToken},excludedIntervals:sortIntervals(excludedIntervals.values())}}var COMMAND_CONFIG3={inspect:getCommandAliases(getSubcommand),create:getCommandAliases(createSubcommand2),search:getCommandAliases(searchSubcommand),config:getCommandAliases(tracesConfigCommand)},SUBCOMMAND_METADATA={[getSubcommand.name]:getSubcommand,[createSubcommand2.name]:createSubcommand2,[searchSubcommand.name]:searchSubcommand};async function traces(client){let telemetry=new TracesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(tracesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return invalidArguments(client,err instanceof Error?err.message:String(err))}let{subcommand,subcommandOriginal,args}=getSubcommand2(parsedArgs.args.slice(1),COMMAND_CONFIG3),needHelp=!!parsedArgs.flags["--help"];if(subcommand===tracesConfigCommand.name)return(await import("./chunks/config-VAW454ZH.js")).default(client,{args,needHelp,subcommandOriginal,telemetry});if(needHelp){telemetry.trackCliFlagHelp("traces",subcommandOriginal);let subMetadata=typeof subcommand=="string"?SUBCOMMAND_METADATA[subcommand]:void 0;return output_manager_default.print(help(subMetadata??tracesCommand,{stream:client.stderr,parent:subMetadata?tracesCommand:void 0,columns:client.stderr.columns})),0}if(subcommand===createSubcommand2.name){let args2=client.argv.slice(4);return runCurl(client,{forceTrace:!0,args:args2})}return subcommand===searchSubcommand.name?(telemetry.trackCliSubcommandSearch(subcommandOriginal||subcommand),search(client,telemetry)):(subcommandOriginal==="get"&&warnDeprecatedSubcommand(client,"traces get","traces inspect"),get(client,telemetry))}export{main2 as ci,drains,health,main as pull,traces};
@@ -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{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-7VMHF6QI.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-VLJUUFCE.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-2B7U6BB5.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{createRenderer,quoteFilterValue}from"./chunks/chunk-X65XZSWS.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-GBRNYCSA.js";import{parseSubcommandArguments,requireProjectContext,validateRequiredArguments}from"./chunks/chunk-QMB36NJD.js";import{formatMetricValue,generateSparkline}from"./chunks/chunk-Y55DGB3L.js";import{OBSERVABILITY_METRICS_PATH}from"./chunks/chunk-C4XT3PG4.js";import"./chunks/chunk-IVSSTHB6.js";import"./chunks/chunk-GZNDA6SV.js";import{fetchEventPages,writeJsonError}from"./chunks/chunk-OLAG7Y3P.js";import{Now,printDeploymentStatus}from"./chunks/chunk-HGCP7N4J.js";import"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-R364F5BF.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-XK3W6Q5I.js";import{applyDeprecatedTargetFlag}from"./chunks/chunk-WRC5CTUD.js";import{readJSONFile}from"./chunks/chunk-3ZQNP4BG.js";import"./chunks/chunk-25565AGS.js";import"./chunks/chunk-NTN2SSGR.js";import{resolveProjectContext}from"./chunks/chunk-4JOJYW22.js";import{formatProject}from"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-U56NHYAH.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{handleValidationError,normalizeRepeatableStringFilters,resolveTimeRange,validateIntegerRangeWithDefault,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import{ensureLink}from"./chunks/chunk-OQDN4RKT.js";import{getDeployment}from"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-RJZHOERW.js";import{printUnknownCommand}from"./chunks/chunk-5SMV2PPI.js";import{getAliases}from"./chunks/chunk-KEEPBBME.js";import{INVALID_NEXT_MESSAGE,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import"./chunks/chunk-2NABMKFV.js";import{canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{getNextPageCommand,printNextPageCommand}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable,strlen}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{noBorderChars,require_cli_table3,table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-2QSNFVB6.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import{KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand7 as addSubcommand,addSubcommand9 as addSubcommand2,addToGroupSubcommand,analyzeSubcommand,createGroupSubcommand,createSubcommand5 as createSubcommand,createSubcommand8 as createSubcommand2,daemonsCommand,decideSubcommand,deleteGroupSubcommand,deleteSubcommand2 as deleteSubcommand,deleteSubcommand3,diagnoseSubcommand,disableSubcommand3 as disableSubcommand2,enableSubcommand4 as enableSubcommand2,executionsListSubcommand,executionsSubcommand,experimentsCommand,getCommandAliases,getSubcommand2 as getSubcommand,importKeySubcommand,importSubcommand2 as importSubcommand,inspectGroupSubcommand,inspectSubcommand11 as inspectSubcommand3,inspectSubcommand5 as inspectSubcommand,inspectSubcommand8 as inspectSubcommand2,instancesInspectSubcommand,instancesListSubcommand,instancesRestartSubcommand,instancesSubcommand,invokeSubcommand,isProjectGrant,issuerJwksUrl,issuerUrl,kmsCommand,listSubcommand13 as listSubcommand2,listSubcommand17 as listSubcommand3,listSubcommand20 as listSubcommand4,listSubcommand21 as listSubcommand6,listSubcommand9 as listSubcommand,listVersionsSubcommand,microfrontendsCommand,openSubcommand2 as openSubcommand,promoteSubcommand,pullSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand12 as removeSubcommand,removeSubcommand14 as removeSubcommand2,reseedEnrollmentSubcommand,restartAnalysisSubcommand,restoreSubcommand,returnToDraftSubcommand,revokeKeySubcommand,runtimeSource,scaleSubcommand,schedulesCommand,setRampSubcommand,startSubcommand,updateGrantSubcommand,updateSubcommand11 as updateSubcommand3,updateSubcommand4 as updateSubcommand,updateSubcommand8 as updateSubcommand2,uploadSubcommand}from"./chunks/chunk-2PYFJXKS.js";import{addSubcommand as addSubcommand3,deleteSubcommand as deleteSubcommand2,disableSubcommand,discardSubcommand,editSubcommand,enableSubcommand,exportSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand5,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getContextName,getScope}from"./chunks/chunk-RBIPVPTN.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,getErrorRecovery,getExitCodeForReason,openUrlInBrowserCommand,outputActionRequired,outputAgentError,withGlobalFlags}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{getLinkedProject,getProjectByNameOrId,humanizePath,require_dist2,require_lib,require_pluralize,responseError,ua_default}from"./chunks/chunk-QU25LP63.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{NowError,ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-JESNVRVR.js";import{emoji,link_default,output_manager_default,prependEmoji,require_build_utils}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{require_ansi_escapes}from"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_string_width,require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{directFetch,getFetchDispatcher}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var DaemonsTelemetryClient=class extends TelemetryClient{constructor(){super(...arguments);this.sub=subcommand=>value=>this.trackSubcommand(subcommand,value);this.arg=arg=>value=>this.trackCliArgument({arg,value:value&&this.redactedValue});this.option=option=>value=>this.trackRedactedCliOption(option,value);this.flag=flag=>value=>{value&&this.trackCliFlag(flag)};this.trackCliSubcommandList=this.sub("list");this.trackCliSubcommandScale=this.sub("scale");this.trackCliSubcommandInstances=this.sub("instances");this.trackCliSubcommandInspect=this.sub("inspect");this.trackCliSubcommandRestart=this.sub("restart");this.trackCliArgumentDaemon=this.arg("daemon");this.trackCliArgumentInstance=this.arg("instance");this.trackCliOptionNext=this.option("next");this.trackCliOptionSince=this.option("since");this.trackCliOptionUntil=this.option("until");this.trackCliFlagReset=this.flag("reset");this.trackCliFlagJson=this.flag("json");this.trackCliFlagAll=this.flag("all")}trackSubcommand(subcommand,value){this.trackCliSubcommand({subcommand,value})}trackBrowserOpen(){this.trackCommandOutput({key:"browser-action",value:"open"})}trackCliArgumentOverrides(value){let count=value.length?String(value.length):void 0;this.trackCliArgument({arg:"overrides",value:count})}trackCliOptionLimit(value){value!==void 0&&this.trackCliOption({option:"limit",value:String(value)})}trackOptions(flags){this.trackCliOptionProject(flags["--project"]),this.trackCliOptionLimit(flags["--limit"]),this.trackCliOptionNext(flags["--next"]),this.trackCliOptionSince(flags["--since"]),this.trackCliOptionUntil(flags["--until"]),this.trackCliFlagReset(flags["--reset"]),this.trackCliOptionFormat(flags["--format"]),this.trackCliFlagJson(flags["--json"]),this.trackCliFlagAll(flags["--all"])}};var import_chalk2=__toESM(require_source(),1);var import_ansi_escapes=__toESM(require_ansi_escapes(),1),import_cli_table3=__toESM(require_cli_table3(),1),import_strip_ansi=__toESM(require_strip_ansi(),1),import_string_width=__toESM(require_string_width(),1);import{emitKeypressEvents}from"node:readline";function canUseTerminalScreen(client){return canPromptOnTerminal(client)&&!!client.stdout.isTTY&&typeof client.stdin.setRawMode=="function"&&process.env.TERM!=="dumb"&&process.env.VERCEL_ACCESSIBLE!=="1"}function terminalText(value){return(0,import_strip_ansi.default)(value).replace(/[\x00-\x1f\x7f-\x9f]/g,"")}var graphemes=new Intl.Segmenter(void 0,{granularity:"grapheme"});function wrapTerminalText(text2,columns){let width=Math.max(1,columns);return text2.split(`
7
+ import{ALL_ACTION_CHOICES,MAX_CONDITIONS,MAX_DESCRIPTION_LENGTH,MAX_NAME_LENGTH,REDIRECT_STATUS_CODES,VALID_SYNTAXES,collectActionDetails,collectHeadersAndTransforms,collectInteractiveConditions,convertRouteToCurrentRoute,extractTransformFlags,generateRoute,generatedRouteToAddInput,parseConditions,populateRouteEnv,printGeneratedRoutePreview,runInteractiveEditLoop,stripQuotes,validateActionFlags}from"./chunks/chunk-P2HBUDGR.js";import{getRouteVersions}from"./chunks/chunk-BVH2AEFE.js";import{TRANSFORM_TYPE_LABELS,findVersionById,formatCondition,formatTransform,getRouteTypeLabel,getRoutes,getSrcSyntaxLabel,isTargetTransform,offerAutoPromote,parsePosition,parseSubcommandArgs,withGlobalFlags as withGlobalFlags2}from"./chunks/chunk-A67TLHES.js";import{RoutesAddTelemetryClient,RoutesTelemetryClient}from"./chunks/chunk-2B7U6BB5.js";import{LOCAL_SCHEDULES_SESSION_HEADER,isLocalSchedulesOrigin,readLocalSchedulesSessions}from"./chunks/chunk-SF4E3AQ3.js";import{createRenderer,quoteFilterValue}from"./chunks/chunk-X65XZSWS.js";import{getLinkedFlagsProject,getProjectNameFromFlags}from"./chunks/chunk-3DDEBTCC.js";import{parseSubcommandArguments,requireProjectContext,validateRequiredArguments}from"./chunks/chunk-GP2FXUFE.js";import{formatMetricValue,generateSparkline}from"./chunks/chunk-Y55DGB3L.js";import{OBSERVABILITY_METRICS_PATH}from"./chunks/chunk-C4XT3PG4.js";import"./chunks/chunk-IVSSTHB6.js";import"./chunks/chunk-GZNDA6SV.js";import{fetchEventPages,writeJsonError}from"./chunks/chunk-OLAG7Y3P.js";import{Now,printDeploymentStatus}from"./chunks/chunk-MDWYXLDB.js";import"./chunks/chunk-ZFRNVIHI.js";import"./chunks/chunk-753RQ6WV.js";import{getCustomEnvironments,pickCustomEnvironment}from"./chunks/chunk-F7AVGV4Y.js";import"./chunks/chunk-XK3W6Q5I.js";import{applyDeprecatedTargetFlag}from"./chunks/chunk-WRC5CTUD.js";import{readJSONFile}from"./chunks/chunk-KARAZGCO.js";import"./chunks/chunk-25565AGS.js";import"./chunks/chunk-LOEU4R4Z.js";import{resolveProjectContext}from"./chunks/chunk-JULKMXVP.js";import{formatProject}from"./chunks/chunk-YRK2BCTJ.js";import"./chunks/chunk-U56NHYAH.js";import{getTeamBillingUrl}from"./chunks/chunk-XR6QY7RR.js";import{isValidName}from"./chunks/chunk-PADL3C6Z.js";import{handleValidationError,normalizeRepeatableStringFilters,resolveTimeRange,validateIntegerRangeWithDefault,validateOptionalIntegerRange,validateTimeBound,validateTimeOrder}from"./chunks/chunk-LD42X7ZH.js";import"./chunks/chunk-VT6RIZJH.js";import"./chunks/chunk-TOTTVS5P.js";import{ensureLink}from"./chunks/chunk-NDWGYZRT.js";import{getDeployment}from"./chunks/chunk-QIPUFI6P.js";import"./chunks/chunk-6KCYUYUM.js";import{require_open}from"./chunks/chunk-PVASGBEF.js";import"./chunks/chunk-ZBJ44DRL.js";import{printUnknownCommand}from"./chunks/chunk-5SMV2PPI.js";import{getAliases}from"./chunks/chunk-QR7PY5JS.js";import{INVALID_NEXT_MESSAGE,parseNumericCursor}from"./chunks/chunk-C6GY2G73.js";import{getCommandFlags}from"./chunks/chunk-XGTKHQTT.js";import"./chunks/chunk-2NABMKFV.js";import{canPromptOnTerminal}from"./chunks/chunk-IQ7FPAI4.js";import{formatDate}from"./chunks/chunk-HRR57QNP.js";import{require_format}from"./chunks/chunk-PFD7LETF.js";import{getNextPageCommand,printNextPageCommand}from"./chunks/chunk-B3ETPBO4.js";import{validateLsArgs}from"./chunks/chunk-T2SRGJPU.js";import{getInvalidSubcommand}from"./chunks/chunk-TG2RCYTH.js";import{formatTable,strlen}from"./chunks/chunk-44XDCARR.js";import{stamp_default}from"./chunks/chunk-A2RZZQEP.js";import{noBorderChars,require_cli_table3,table}from"./chunks/chunk-OTJNOMRV.js";import{getRenamedOption,renameOptionInArgs,reportRenamedOptionError,withWarnings}from"./chunks/chunk-2QSNFVB6.js";import{elapsed}from"./chunks/chunk-Q7D7RGXM.js";import{getSubcommand as getSubcommand2}from"./chunks/chunk-ETV3C2CV.js";import{KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,activateKeySubcommand,addGrantSubcommand,addKeySubcommand,addSubcommand7 as addSubcommand,addSubcommand9 as addSubcommand2,addToGroupSubcommand,analyzeSubcommand,createGroupSubcommand,createSubcommand5 as createSubcommand,createSubcommand8 as createSubcommand2,daemonsCommand,decideSubcommand,deleteGroupSubcommand,deleteSubcommand2 as deleteSubcommand,deleteSubcommand3,diagnoseSubcommand,disableSubcommand3 as disableSubcommand2,enableSubcommand4 as enableSubcommand2,executionsListSubcommand,executionsSubcommand,experimentsCommand,getCommandAliases,getSubcommand2 as getSubcommand,importKeySubcommand,importSubcommand2 as importSubcommand,inspectGroupSubcommand,inspectSubcommand11 as inspectSubcommand3,inspectSubcommand5 as inspectSubcommand,inspectSubcommand8 as inspectSubcommand2,instancesInspectSubcommand,instancesListSubcommand,instancesRestartSubcommand,instancesSubcommand,invokeSubcommand,isProjectGrant,issuerJwksUrl,issuerUrl,kmsCommand,listSubcommand13 as listSubcommand2,listSubcommand17 as listSubcommand3,listSubcommand20 as listSubcommand4,listSubcommand21 as listSubcommand6,listSubcommand9 as listSubcommand,listVersionsSubcommand,microfrontendsCommand,openSubcommand2 as openSubcommand,promoteSubcommand,pullSubcommand,redeployCommand,redirectsCommand,removeCommand,removeFromGroupSubcommand,removeGrantSubcommand,removeSubcommand12 as removeSubcommand,removeSubcommand14 as removeSubcommand2,reseedEnrollmentSubcommand,restartAnalysisSubcommand,restoreSubcommand,returnToDraftSubcommand,revokeKeySubcommand,runtimeSource,scaleSubcommand,schedulesCommand,setRampSubcommand,startSubcommand,updateGrantSubcommand,updateSubcommand11 as updateSubcommand3,updateSubcommand4 as updateSubcommand,updateSubcommand8 as updateSubcommand2,uploadSubcommand}from"./chunks/chunk-2PYFJXKS.js";import{addSubcommand as addSubcommand3,deleteSubcommand as deleteSubcommand2,disableSubcommand,discardSubcommand,editSubcommand,enableSubcommand,exportSubcommand,inspectSubcommand as inspectSubcommand4,listSubcommand as listSubcommand5,listVersionsSubcommand as listVersionsSubcommand2,publishSubcommand,reorderSubcommand,restoreSubcommand as restoreSubcommand2,routesCommand}from"./chunks/chunk-3KSTUMR6.js";import"./chunks/chunk-EZL4AJXH.js";import"./chunks/chunk-45UDRX4C.js";import"./chunks/chunk-J52UJYOK.js";import"./chunks/chunk-GZWYJT4C.js";import"./chunks/chunk-3AXMZRAB.js";import"./chunks/chunk-FQVSBXRY.js";import"./chunks/chunk-GP5MFCGO.js";import"./chunks/chunk-V5A4EBV3.js";import"./chunks/chunk-IECNFRTK.js";import"./chunks/chunk-A6F3EE2O.js";import"./chunks/chunk-K2R3QPOC.js";import"./chunks/chunk-IHRM7L23.js";import"./chunks/chunk-HTFQFHPR.js";import"./chunks/chunk-LFOWP74R.js";import"./chunks/chunk-DBV6AB6T.js";import"./chunks/chunk-37DIJCWK.js";import{DEV_RESOURCE_TOKEN}from"./chunks/chunk-7E6UJXLR.js";import"./chunks/chunk-JALVF3C2.js";import"./chunks/chunk-7V2PXIVW.js";import{printError}from"./chunks/chunk-D3GYYGSS.js";import{help}from"./chunks/chunk-33U57CNE.js";import{param}from"./chunks/chunk-3G3FQYMW.js";import{detectExplicitScope,getContextName,getScope}from"./chunks/chunk-IU6PHFPQ.js";import{TelemetryClient}from"./chunks/chunk-SBBD2Q5A.js";import"./chunks/chunk-2EYYB6YN.js";import"./chunks/chunk-NWGBDBZI.js";import{AGENT_ACTION,AGENT_REASON,AGENT_STATUS,buildCommandWithGlobalFlags,buildCommandWithYes,getErrorRecovery,getExitCodeForReason,openUrlInBrowserCommand,outputActionRequired,outputAgentError,withGlobalFlags}from"./chunks/chunk-KAUKCHQF.js";import"./chunks/chunk-QLW5DCM4.js";import{getLinkedProject,getProjectByNameOrId,humanizePath,require_dist2,require_lib,require_pluralize,responseError,ua_default}from"./chunks/chunk-QZEZCUUZ.js";import{ALIGNED_LABEL_WIDTH,formatAlignedLabel,printAlignedLabel}from"./chunks/chunk-3LQ2ADXO.js";import"./chunks/chunk-MCP63EVQ.js";import"./chunks/chunk-4NTBYNFR.js";import{getTypedOptionName,isArgumentError,parseArguments,takeCommand}from"./chunks/chunk-KIMIK4SG.js";import{getTeamByIdOrSlug,quoteArg}from"./chunks/chunk-F53OKXYI.js";import{validateJsonOutput,wantsMachineReadableOutput,warnDeprecatedInput,warnDeprecatedOption,warnDeprecatedSubcommand}from"./chunks/chunk-JRBPVMQO.js";import"./chunks/chunk-LUX4PBJL.js";import"./chunks/chunk-OPORM35X.js";import{require_ms}from"./chunks/chunk-MXTC4ZAQ.js";import"./chunks/chunk-OCR5CRTH.js";import"./chunks/chunk-4SAVH3H7.js";import{NowError,ProjectNotFound,isAPIError}from"./chunks/chunk-FXEMEIST.js";import{cmd,getCommandName,getCommandNamePlain}from"./chunks/chunk-JESNVRVR.js";import{emoji,link_default,output_manager_default,prependEmoji,require_build_utils}from"./chunks/chunk-ZRJKGAUT.js";import"./chunks/chunk-BLUPZPAS.js";import{require_dist}from"./chunks/chunk-RM3ZDRYE.js";import{require_ansi_escapes}from"./chunks/chunk-YHPPP3SF.js";import"./chunks/chunk-OO572JUC.js";import"./chunks/chunk-PUKYAALC.js";import{getFlagsSpecification,getGlobalFlagsFromArgs,getProjectOptionFromArgs,getSameSubcommandSuggestionFlags}from"./chunks/chunk-YPPDRKVC.js";import"./chunks/chunk-2BKALEOP.js";import{require_source}from"./chunks/chunk-NB2WLB3J.js";import"./chunks/chunk-ISWW3DKF.js";import{require_string_width,require_strip_ansi}from"./chunks/chunk-BULSRTQE.js";import"./chunks/chunk-BRQUZ5NC.js";import"./chunks/chunk-5O7CRJE5.js";import{directFetch,getFetchDispatcher}from"./chunks/chunk-U3J7VS56.js";import"./chunks/chunk-7EJQLVWX.js";import"./chunks/chunk-SCV7XEEO.js";import{__toESM}from"./chunks/chunk-BZENIQ7N.js";var DaemonsTelemetryClient=class extends TelemetryClient{constructor(){super(...arguments);this.sub=subcommand=>value=>this.trackSubcommand(subcommand,value);this.arg=arg=>value=>this.trackCliArgument({arg,value:value&&this.redactedValue});this.option=option=>value=>this.trackRedactedCliOption(option,value);this.flag=flag=>value=>{value&&this.trackCliFlag(flag)};this.trackCliSubcommandList=this.sub("list");this.trackCliSubcommandScale=this.sub("scale");this.trackCliSubcommandInstances=this.sub("instances");this.trackCliSubcommandInspect=this.sub("inspect");this.trackCliSubcommandRestart=this.sub("restart");this.trackCliArgumentDaemon=this.arg("daemon");this.trackCliArgumentInstance=this.arg("instance");this.trackCliOptionNext=this.option("next");this.trackCliOptionSince=this.option("since");this.trackCliOptionUntil=this.option("until");this.trackCliFlagReset=this.flag("reset");this.trackCliFlagJson=this.flag("json");this.trackCliFlagAll=this.flag("all")}trackSubcommand(subcommand,value){this.trackCliSubcommand({subcommand,value})}trackBrowserOpen(){this.trackCommandOutput({key:"browser-action",value:"open"})}trackCliArgumentOverrides(value){let count=value.length?String(value.length):void 0;this.trackCliArgument({arg:"overrides",value:count})}trackCliOptionLimit(value){value!==void 0&&this.trackCliOption({option:"limit",value:String(value)})}trackOptions(flags){this.trackCliOptionProject(flags["--project"]),this.trackCliOptionLimit(flags["--limit"]),this.trackCliOptionNext(flags["--next"]),this.trackCliOptionSince(flags["--since"]),this.trackCliOptionUntil(flags["--until"]),this.trackCliFlagReset(flags["--reset"]),this.trackCliOptionFormat(flags["--format"]),this.trackCliFlagJson(flags["--json"]),this.trackCliFlagAll(flags["--all"])}};var import_chalk2=__toESM(require_source(),1);var import_ansi_escapes=__toESM(require_ansi_escapes(),1),import_cli_table3=__toESM(require_cli_table3(),1),import_strip_ansi=__toESM(require_strip_ansi(),1),import_string_width=__toESM(require_string_width(),1);import{emitKeypressEvents}from"node:readline";function canUseTerminalScreen(client){return canPromptOnTerminal(client)&&!!client.stdout.isTTY&&typeof client.stdin.setRawMode=="function"&&process.env.TERM!=="dumb"&&process.env.VERCEL_ACCESSIBLE!=="1"}function terminalText(value){return(0,import_strip_ansi.default)(value).replace(/[\x00-\x1f\x7f-\x9f]/g,"")}var graphemes=new Intl.Segmenter(void 0,{granularity:"grapheme"});function wrapTerminalText(text2,columns){let width=Math.max(1,columns);return text2.split(`
8
8
  `).flatMap(input=>{let lines=[],line="",used=0,words=terminalText(input.replace(/\t/g," ")).match(/\s+|\S+/g);for(let word of words??[]){let wordWidth=(0,import_string_width.default)(word);used&&/\S/.test(word)&&wordWidth<=width&&used+wordWidth>width&&(lines.push(line),line="",used=0);for(let{segment}of graphemes.segment(word)){let size=(0,import_string_width.default)(segment);used&&used+size>width&&(lines.push(line),line="",used=0),line+=segment,used+=size}}return[...lines,line]})}async function withTerminalScreen(client,run){let{stdin,stderr}=client,wasRaw=stdin.isRaw??!1,wasFlowing=stdin.readableFlowing,controller=new AbortController,resolveClosed,closed=new Promise(resolve3=>{resolveClosed=resolve3}),screen={get columns(){return Math.max(2,(stderr.columns||80)-1)},get rows(){return Math.max(1,(stderr.rows||24)-1)},signal:controller.signal,closed,close(code){controller.signal.aborted||(controller.abort(),resolveClosed(code))},onKeypress(){},onResize(){},write(lines){controller.signal.aborted||stderr.write(`${import_ansi_escapes.default.cursorTo(0,0)}${lines.map(line=>`${line}${import_ansi_escapes.default.eraseEndLine}`).join(`
9
9
  `)}${import_ansi_escapes.default.eraseDown}`)},wrap(text2,horizontalOffset=0,columns=screen.columns){if(text2=text2.replace(/\t/g," "),horizontalOffset&&(text2=Array.from((0,import_strip_ansi.default)(text2)).slice(horizontalOffset).join("")),!text2)return[""];let indentation=/^ */.exec(text2)?.[0].length??0,prefix=" ".repeat(Math.min(indentation,Math.max(0,Math.floor(columns/2)))),table2=new import_cli_table3.default({colWidths:[Math.max(1,columns-prefix.length)],chars:noBorderChars,style:{"padding-left":0,"padding-right":0}});return table2.push([{content:text2.slice(indentation),wordWrap:!0}]),table2.toString().split(`
10
10
  `).map(line=>`${prefix}${line.trimEnd()}`)}},onKeypress=(_input,key)=>{key?.ctrl&&key.name==="c"?screen.close(130):key&&screen.onKeypress(key)},onResize=()=>screen.onResize(),onEnd=()=>screen.close(0),onInt=()=>screen.close(130),onTerm=()=>screen.close(143),onHup=()=>screen.close(129),restored=!1,restore2=()=>{restored||(restored=!0,screen.close(0),stdin.off("keypress",onKeypress),stdin.off("end",onEnd),stderr.off("resize",onResize),process.off("SIGINT",onInt),process.off("SIGTERM",onTerm),process.off("SIGHUP",onHup),process.off("exit",restore2),stdin.setRawMode?.(wasRaw),wasFlowing!==!0&&stdin.pause(),stderr.write(`\x1B[?1049l${import_ansi_escapes.default.cursorShow}`))};try{return emitKeypressEvents(stdin),stdin.on("keypress",onKeypress),stdin.on("end",onEnd),stderr.on("resize",onResize),process.on("SIGINT",onInt),process.on("SIGTERM",onTerm),process.on("SIGHUP",onHup),process.once("exit",restore2),stdin.setRawMode?.(!0),stderr.write(`\x1B[?1049h${import_ansi_escapes.default.cursorHide}${import_ansi_escapes.default.eraseScreen}`),stdin.resume(),await run(screen)}finally{restore2()}}var import_chalk=__toESM(require_source(),1),import_ms=__toESM(require_ms(),1);function isJsonOutput(client){return wantsMachineReadableOutput("daemons",client.argv)||client.nonInteractive}function reportError(client,err,exitCode=1){if(!isJsonOutput(client))return printError(err,client),exitCode;let apiError=isAPIError(err)?err:void 0,reason=exitCode===2?AGENT_REASON.INVALID_ARGUMENTS:AGENT_REASON.API_ERROR,message=exitCode===2&&err instanceof Error?err.message:"Couldn't complete the daemon command.";return writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,...apiError&&{...getErrorRecovery(apiError,client),data:{httpStatus:apiError.status}}},exitCode)}function toDaemon(daemon){if(!("replicas"in daemon))return daemon;let{replicas:instances,config,...rest}=daemon;if(!config)return{...rest,instances};let{replicas,configuredReplicas,...restConfig}=config;return{...rest,config:{...restConfig,instances:replicas,configuredInstances:configuredReplicas},instances}}var DAEMON_NAME_PATTERN=/^[a-zA-Z0-9_-]+$/,DAEMON_INSTANCE_ID_PATTERN=/^dmni_[0-9a-hjkmnp-tv-z]{26}$/;function instanceIdArg(client,args,usage){return args.length===0?failure(client,AGENT_REASON.INVALID_ARGUMENTS,"An instance ID is required.",{command:"instances list",when:"List available instances"},2):args.length===1&&DAEMON_INSTANCE_ID_PATTERN.test(args[0])?args[0]:usageError(client,"Expected one instance ID, like dmni_01k7d0q5w3x8y9z0a1b2c3d4e5.",usage)}function parse(client,argv,options,usage){let parsed;try{let spec=getFlagsSpecification(options);parsed=parseArguments(argv,spec)}catch(err){return reportError(client,err,2)}let telemetry=new DaemonsTelemetryClient({opts:{store:client.telemetryEventStore}});telemetry.trackOptions(parsed.flags);let format2=validateJsonOutput(parsed.flags);if(!format2.valid)return usageError(client,format2.error,usage);let asJson=format2.jsonOutput||client.nonInteractive;return{...parsed,asJson,telemetry}}async function resolveProject(client,project){let link=isJsonOutput(client)?await resolveProjectContext({client,projectNameOrId:project,projectNotFoundHandling:"return",quiet:!0}):await requireProjectContext(client,"daemons",project);return typeof link=="number"?link:link.status==="error"?reportError(client,new Error("Could not resolve project context."),link.exitCode):link.status!=="linked"?failure(client,project?AGENT_REASON.PROJECT_NOT_FOUND:AGENT_REASON.NOT_LINKED,project?`Couldn't find project ${project}.`:"No linked project found.",{command:"list --project <PROJECT>",when:"Select an existing project"}):(client.config.currentTeam=link.org.type==="team"?link.org.id:void 0,{...link,target:`${link.org.slug}/${link.project.name}`})}function daemonsCommand2(client,command2){return withGlobalFlags(client,`daemons ${command2}`,{preserveProject:!0})}function failure(client,reason,message,next,exitCode=1){let command2=daemonsCommand2(client,next.command);return output_manager_default.stopSpinner(),isJsonOutput(client)?writeJsonError(client,{status:AGENT_STATUS.ERROR,reason,message,next:[{...next,command:command2}]},exitCode):(output_manager_default.fatal(message),output_manager_default.print(`
@@ -255,7 +255,7 @@ ${import_chalk31.default.gray("No changes detected from current production versi
255
255
  `),output_manager_default.print(` ${import_chalk36.default.gray("ID:")} ${route2.id}
256
256
  `),output_manager_default.print(`
257
257
  ${import_chalk36.default.bold("Staging version:")} ${version.id}
258
- `),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.ROUTE_CREATE_FAILED,message:"Route creation failed for this project. See hint for next steps.",hint:error.message||"Use `vercel routes list --diff` to inspect staged routes, then adjust options and retry.",next:[{command:withGlobalFlags2(client,"routes list --diff"),when:"to inspect staged state"}]},1),output_manager_default.error(error.message||"Failed to create route"),1}}var COMMAND_CONFIG5={list:getCommandAliases(listSubcommand5),"list-versions":getCommandAliases(listVersionsSubcommand2),inspect:getCommandAliases(inspectSubcommand4),add:getCommandAliases(addSubcommand3),update:getCommandAliases(editSubcommand),remove:getCommandAliases(deleteSubcommand2),enable:getCommandAliases(enableSubcommand),disable:getCommandAliases(disableSubcommand),move:getCommandAliases(reorderSubcommand),export:getCommandAliases(exportSubcommand),publish:getCommandAliases(publishSubcommand),restore:getCommandAliases(restoreSubcommand2),"discard-staging":getCommandAliases(discardSubcommand)};async function main4(client){let telemetry=new RoutesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(routesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let subArgs=parsedArgs.args.slice(1),{subcommand,args,subcommandOriginal}=getSubcommand2(subArgs,COMMAND_CONFIG5),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry.trackCliFlagHelp("routes"),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printHelp(command2){output_manager_default.print(help(command2,{stream:client.stderr,parent:routesCommand,columns:client.stderr.columns}))}switch(subcommand&&!needHelp&&telemetry.trackCliOptionProject(getProjectOptionFromArgs(args)),subcommand){case"list":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listSubcommand5),0):(telemetry.trackCliSubcommandList(subcommandOriginal),list3(client,args));case"list-versions":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listVersionsSubcommand2),0):(telemetry.trackCliSubcommandListVersions(subcommandOriginal),subcommandOriginal==="ls-versions"&&warnDeprecatedSubcommand(client,"routes ls-versions","routes list-versions"),listVersions2(client,args));case"inspect":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(inspectSubcommand4),0):(telemetry.trackCliSubcommandInspect(subcommandOriginal),inspect3(client,args));case"add":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(addSubcommand3),0):(telemetry.trackCliSubcommandAdd(subcommandOriginal),add3(client,args));case"update":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(editSubcommand),0):(telemetry.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"routes edit","routes update"),(await import("./chunks/edit-EZPFTVHT.js")).default(client,args));case"remove":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(deleteSubcommand2),0):(telemetry.trackCliSubcommandRemove(subcommandOriginal),subcommandOriginal==="delete"&&warnDeprecatedSubcommand(client,"routes delete","routes remove"),(await import("./chunks/delete-WO3F2LBD.js")).default(client,args));case"enable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(enableSubcommand),0):(telemetry.trackCliSubcommandEnable(subcommandOriginal),(await import("./chunks/enable-YKY5GWYA.js")).default(client,args));case"disable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(disableSubcommand),0):(telemetry.trackCliSubcommandDisable(subcommandOriginal),(await import("./chunks/disable-NPZHA3D3.js")).default(client,args));case"move":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(reorderSubcommand),0):(telemetry.trackCliSubcommandMove(subcommandOriginal),subcommandOriginal==="reorder"&&warnDeprecatedSubcommand(client,"routes reorder","routes move"),(await import("./chunks/reorder-AARVKLFR.js")).default(client,args));case"export":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(exportSubcommand),0):(telemetry.trackCliSubcommandExport(subcommandOriginal),(await import("./chunks/export-UAQTQFZL.js")).default(client,args));case"publish":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(publishSubcommand),0):(telemetry.trackCliSubcommandPublish(subcommandOriginal),(await import("./chunks/publish-SBUM4KSR.js")).default(client,args));case"restore":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(restoreSubcommand2),0):(telemetry.trackCliSubcommandRestore(subcommandOriginal),(await import("./chunks/restore-TW7FEAKO.js")).default(client,args));case"discard-staging":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(discardSubcommand),0):(telemetry.trackCliSubcommandDiscardStaging(subcommandOriginal),(await import("./chunks/discard-VSIUIW3T.js")).default(client,args));default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG5)),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var SchedulesTelemetryClient=class extends TelemetryClient{trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandDisable(actual){this.trackCliSubcommand({subcommand:"disable",value:actual})}trackCliSubcommandInvoke(actual){this.trackCliSubcommand({subcommand:"invoke",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandExecutions(actual){this.trackCliSubcommand({subcommand:"executions",value:actual})}trackCliSubcommandExecutionsList(actual){this.trackCliSubcommand({subcommand:"executions:list",value:actual})}};var import_ms8=__toESM(require_ms(),1);var SchedulesActionTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFor(duration){duration&&this.trackCliOption({option:"for",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function asSentence(value){let trimmed=value.trim();return/[.!?]$/.test(trimmed)?trimmed:`${trimmed}.`}function apiErrorDetail(error){let message=error.serverMessage?.trim();return message&&message!=="Response Error"?asSentence(message):void 0}function requestDescription(context){return context.action==="list"?`list schedules in namespace ${context.namespace}`:context.action==="list-executions"?`list executions for schedule ${context.namespace}/${context.name}`:`${context.action} schedule ${context.namespace}/${context.name}`}function ambiguousInvokeError(local){return{reason:AGENT_REASON.API_ERROR,message:"The schedule invocation may have been accepted, but the CLI did not receive confirmation. Check whether the schedule ran before invoking it again."+(local?` Inspect the ${getCommandName("dev")} output for local executions.`:""),retryable:!1,userActionRequired:!0}}function getSchedulesError(client,error,context){if(!isAPIError(error))return context.action==="invoke"?ambiguousInvokeError(context.local):context.local?{reason:AGENT_REASON.API_ERROR,message:`${error instanceof Error?asSentence(error.message):"Failed to connect to local Schedules."} Check the local session and restart ${getCommandName("dev")} in this project if needed.`,retryable:!1,userActionRequired:!0}:{reason:AGENT_REASON.API_ERROR,message:"Failed to connect to the Schedules API. Check your connection and try again.",retryable:!0};let serverMessage=error.serverMessage?.trim().toLowerCase();if(context.local&&context.action==="invoke"&&error.status>=500)return ambiguousInvokeError(!0);if(context.local&&(error.status===401||error.status===402||error.status===403||/(?:project|session)_(?:mismatch|not_found|expired)/.test(error.code??"")||/^(?:local )?(?:project|session)\b/.test(serverMessage??"")))return{reason:AGENT_REASON.API_ERROR,message:`${apiErrorDetail(error)??"The local Schedules session is unavailable."} Restart ${getCommandName("dev")} in this project and use its local session.`,retryable:!1,userActionRequired:!0};if(error.code==="schedule_already_exists")return{reason:AGENT_REASON.SCHEDULE_ALREADY_EXISTS,message:context.name?`Schedule ${context.namespace}/${context.name} already exists. Choose a different name or update the existing schedule.`:"The schedule already exists. Choose a different name or update the existing schedule.",retryable:!1};if(error.code==="schedule_single_at_passed")return{reason:AGENT_REASON.SCHEDULE_SINGLE_AT_PASSED,message:context.name?`Schedule ${context.namespace}/${context.name} has passed its scheduled time and can't be modified. Delete it or create a new schedule.`:"The schedule has passed its scheduled time and can't be modified. Delete it or create a new schedule.",retryable:!1};if(error.code==="schedule_already_active"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.SCHEDULE_ALREADY_ACTIVE,message:context.name?`Schedule ${context.namespace}/${context.name} is already enabled without an end time. Disable it first, then enable it with --until or --for.`:"The schedule is already enabled without an end time. Disable it first, then enable it with --until or --for.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes","--until","--for"]}),when:"Disable the schedule before enabling it with an end time"}]}}}if(error.code==="static_schedule"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.STATIC_SCHEDULE,message:context.name?`Static schedule ${context.namespace}/${context.name} can't be updated or deleted. Enable or disable it instead.`:"Static schedules can't be updated or deleted. Enable or disable them instead.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules enable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Enable the static schedule"},{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Disable the static schedule"}]}}}if(error.code==="invalid_cron_expression")return{reason:AGENT_REASON.INVALID_CRON_EXPRESSION,message:`${apiErrorDetail(error)??"The cron expression is invalid."} Check \`--cron\` and try again.`,retryable:!1};if(error.code==="invalid_jitter")return{reason:AGENT_REASON.INVALID_JITTER,message:apiErrorDetail(error)??"The schedule jitter setting is invalid.",retryable:!1};if(error.code==="jitter_exceeds_cadence")return{reason:AGENT_REASON.JITTER_EXCEEDS_CADENCE,message:`${apiErrorDetail(error)??"The schedule jitter exceeds the interval between runs."} Increase the interval between runs.`,retryable:!1};if(error.code==="single_at_too_soon")return{reason:AGENT_REASON.SINGLE_AT_TOO_SOON,message:`${apiErrorDetail(error)??"The one-time schedule is too soon."} Choose a later value for \`--at\`.`,retryable:!1};if(error.code==="payload_too_large")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_TOO_LARGE,message:`${apiErrorDetail(error)??"The schedule payload is too large."} Reduce the value passed to \`--payload\` and try again.`,retryable:!1};if(error.code==="payload_store_failed")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_STORE_FAILED,message:"Failed to store the schedule payload. Try again later.",retryable:!0};if(error.code==="service_unavailable")return{reason:AGENT_REASON.SCHEDULE_SERVICE_UNAVAILABLE,message:"Schedule execution history is temporarily unavailable. Try again later.",retryable:!0};if(error.code==="service_error")return{reason:AGENT_REASON.SCHEDULE_SERVICE_ERROR,message:error.status>=500?"Failed to load schedule execution history. Try again later.":"Failed to load schedule execution history. Choose a shorter time range and try again.",retryable:error.status>=500};if(error.status===400){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.INVALID_ARGUMENTS,message:`The Schedules API rejected the request.${detail2?` ${detail2}`:""}`,retryable:!1}}if(error.status===401&&error.code==="missing_team_param")return{reason:AGENT_REASON.MISSING_SCOPE,message:"Schedules requires a team project. Run `vercel link` to link a project owned by a team.",retryable:!1,userActionRequired:!0};if(error.status===401){let tokenSource=client.authConfig.tokenSource;return{reason:AGENT_REASON.LOGIN_REQUIRED,message:tokenSource==="env"?"Schedules API authentication failed. Replace VERCEL_TOKEN, or unset it to use your saved login.":tokenSource==="flag"?"Schedules API authentication failed. Replace the token passed to `--token`.":`Schedules API authentication failed. Run ${getCommandName("login")} and try again.`,retryable:!1,userActionRequired:!0}}if(error.status===402){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,message:`Schedules isn't available for this team.${detail2?` ${detail2}`:""} Ask a team owner to review the requirement.`,retryable:!1,userActionRequired:!0}}if(error.status===403&&error.code==="not_enabled"||!context.local&&error.status===404&&(serverMessage==="not found"||serverMessage==="not found."))return{reason:AGENT_REASON.SCHEDULES_NOT_ENABLED,message:"Vercel Schedules is not enabled for this team.",retryable:!1,userActionRequired:!0};if(error.status===403)return{reason:AGENT_REASON.PERMISSION_DENIED,message:"Can't access Schedules with the current credentials and team. Check the token and selected team. If both are correct, ask a team owner for access.",retryable:!1,userActionRequired:!0};if(error.status===404&&(serverMessage==="project not found"||serverMessage==="project not found."))return{reason:AGENT_REASON.PROJECT_NOT_FOUND,message:"The linked project isn't available to this team. Run `vercel link` to update the project link.",retryable:!1,userActionRequired:!0};if(error.status===404&&context.action!=="create"&&context.action!=="list"&&context.name)return{reason:AGENT_REASON.NOT_FOUND,message:`Schedule not found: ${context.namespace}/${context.name}.`,retryable:!1};if(error.status===429){let retryAfterMs=typeof error.retryAfterMs=="number"&&error.retryAfterMs>0?error.retryAfterMs:void 0;return{reason:AGENT_REASON.RATE_LIMITED,message:retryAfterMs===void 0?"The Schedules API request limit was reached. Wait and try again.":`The Schedules API request limit was reached. Try again in ${Math.ceil(retryAfterMs/1e3)} second${retryAfterMs>1e3?"s":""}.`,retryable:!0,...retryAfterMs&&{retryAfterMs}}}if(error.status>=500)return context.action==="invoke"?ambiguousInvokeError(context.local):{reason:AGENT_REASON.API_ERROR,message:context.local?`Local Schedules is unavailable. Check the ${getCommandName("dev")} output and restart the local session if needed.`:"The Schedules API is temporarily unavailable. Try again later.",retryable:!0};let detail=apiErrorDetail(error);return{reason:AGENT_REASON.API_ERROR,message:`Failed to ${requestDescription(context)}.${detail?` ${detail}`:""}`,retryable:!1}}function handleSchedulesApiError(client,error,context){let details=getSchedulesError(client,error,context);return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,...details},1),1):(output_manager_default.fatal(details.message),1)}var DEFAULT_SCHEDULES_BASE_URL="https://vercel-schedules.com",DEFAULT_SCHEDULE_NAMESPACE="default",DEFAULT_SCHEDULES_LIMIT=20,SCHEDULES_REQUEST_SOURCE_HEADER="x-vss-client",LocalSchedulesError=class extends Error{constructor(message){super(message),this.name="LocalSchedulesError"}};function sanitizeSchedule(schedule){let{trackId:_trackId,...publicSchedule}=schedule;return publicSchedule}var SchedulesClient=class{constructor(client,options){this.client=client;this.options=options;if("local"in options){if(!isLocalSchedulesOrigin(options.local.origin))throw new LocalSchedulesError("Local Schedules requires an HTTP 127.0.0.1 endpoint with a valid port.");this.baseUrl=new URL(options.local.origin);return}this.baseUrl=new URL(options.baseUrl??process.env.VERCEL_SCHEDULE_BASE_URL??DEFAULT_SCHEDULES_BASE_URL)}get localOrigin(){return"local"in this.options?this.baseUrl.origin:void 0}async request(path,options={}){let url=new URL(path,this.baseUrl);if("local"in this.options){let session=this.options.local;url.searchParams.set("projectId",session.projectId);let response;try{response=await directFetch(url.href,{method:options.method??"GET",headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli",...options.body===void 0?{}:{"content-type":"application/json"}},body:options.body===void 0?void 0:JSON.stringify(options.body),redirect:"manual",signal:AbortSignal.timeout(3e4)})}catch{throw new LocalSchedulesError(`Could not reach local Schedules at ${session.origin}. No cloud request was made.`)}if(response.status>=300&&response.status<400||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session changed or returned an unexpected response. Restart vercel dev and try again.");if(!response.ok)throw await responseError(response);if(response.status===204)return;try{return await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned an invalid JSON response.")}}url.searchParams.set("projectId",this.options.projectId),this.options.environment!==void 0&&url.searchParams.set("env",this.options.environment),this.options.gitBranch!==void 0&&url.searchParams.set("branch",this.options.gitBranch),this.options.user!==void 0&&url.searchParams.set("user",this.options.user);let headers=new globalThis.Headers(options.headers);return headers.set(SCHEDULES_REQUEST_SOURCE_HEADER,"cli"),this.client.fetch(url.href,{...options,headers,accountId:this.options.ownerId,useCurrentTeam:!1})}schedulePath(name,namespace,suffix=""){return`${`/v1/schedules/${encodeURIComponent(name)}${suffix}`}?${new URLSearchParams({namespace})}`}async create({target,...params}){let schedule=await this.request("/v1/schedules",{method:"POST",bailOn429:!0,body:{...params,target:{type:"queue",topic:target.topic}}});return sanitizeSchedule(schedule)}async get({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){let schedule=await this.request(this.schedulePath(name,namespace),{bailOn429:!0});return sanitizeSchedule(schedule)}async list({namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT}={}){let searchParams=new URLSearchParams({namespace,limit:String(limit)});cursor!==void 0&&searchParams.set("cursor",cursor);let response=await this.request(`/v1/schedules?${searchParams}`,{bailOn429:!0});return{data:response.data.map(sanitizeSchedule),cursor:response.cursor}}async update({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,target,...params}){let schedule=await this.request(this.schedulePath(name,namespace),{method:"PATCH",bailOn429:!0,body:{...params,...target?{target:{type:"queue",topic:target.topic}}:{}}});return sanitizeSchedule(schedule)}async delete({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.request(this.schedulePath(name,namespace),{method:"DELETE",bailOn429:!0})}async enable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,activeUntil}){return this.changeState(name,namespace,"enable",activeUntil===void 0?void 0:{until:activeUntil})}async disable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.changeState(name,namespace,"disable")}async changeState(name,namespace,action,body){let schedule=await this.request(this.schedulePath(name,namespace,`/${action}`),{method:"POST",bailOn429:!0,...body&&{body}});return sanitizeSchedule(schedule)}async invoke({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){await this.request(this.schedulePath(name,namespace,"/invoke"),{method:"POST",bailOn429:!0,retry:{retries:0}})}async listExecutions({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT,sort,from,to,executionId}){if("local"in this.options)throw new LocalSchedulesError("Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.");let searchParams=new URLSearchParams({limit:String(limit)});return cursor!==void 0&&searchParams.set("cursor",cursor),sort!==void 0&&searchParams.set("sort",sort),from!==void 0&&searchParams.set("from",String(from)),to!==void 0&&searchParams.set("to",String(to)),executionId!==void 0&&searchParams.set("executionId",executionId),this.request(`${this.schedulePath(name,namespace,"/executions")}&${searchParams}`,{bailOn429:!0})}};async function createLocalSchedulesClient(client){let sessions=await readLocalSchedulesSessions(client.cwd);if(sessions.length===0)throw new LocalSchedulesError("No running local Schedules session was found in this directory. Start vercel dev here, or use --cwd to select its project directory.");if(sessions.length>1)throw new LocalSchedulesError("Multiple vercel dev sessions are running in this directory. Stop the extra instances before using schedules --local.");let[session]=sessions,response;try{response=await directFetch(`${session.origin}/v1/info`,{headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli"},redirect:"manual",signal:AbortSignal.timeout(2e3)})}catch{throw new LocalSchedulesError(`The local Schedules session at ${session.origin} is unavailable. Restart vercel dev in this directory. No cloud request was made.`)}if(!response.ok||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session is stale, not ready, or incompatible. Restart vercel dev in this directory.");let info;try{info=await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned invalid metadata. Restart vercel dev in this directory.")}if(!info||info.version!==session.version||info.id!==session.id||info.pid!==session.pid||info.cwd!==session.cwd||info.origin!==session.origin||info.projectId!==session.projectId)throw new LocalSchedulesError("The local Schedules session does not match this project instance. Restart vercel dev in this directory.");return new SchedulesClient(client,{local:session})}var import_ms7=__toESM(require_ms(),1),MAX_IDENTIFIER_LENGTH=256,IDENTIFIER_PATTERN=/^[0-9A-Za-z][0-9A-Za-z._-]*$/,MAX_QUEUE_TOPIC_LENGTH=256,QUEUE_TOPIC_PATTERN=/^[A-Za-z0-9_-]+$/,MAX_JITTER_MINUTES=15,LOCAL_MINUTE_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/,LOCAL_SECOND_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/,TIMEZONE_PATTERN=/^[A-Za-z][A-Za-z0-9_+/-]*$/;function validateScheduleIdentifier(value,label){if(value.length>MAX_IDENTIFIER_LENGTH)return`${label} must be at most ${MAX_IDENTIFIER_LENGTH} characters.`;if(!IDENTIFIER_PATTERN.test(value))return`${label} must start with a letter or number and can contain only letters, numbers, periods, underscores, and hyphens.`}function validateScheduleTimezone(value){if(value!==void 0){if(value.length===0||value.length>50||!TIMEZONE_PATTERN.test(value))return"`--timezone` must be a valid IANA timezone.";try{new Intl.DateTimeFormat("en-US",{timeZone:value})}catch{return"`--timezone` must be a valid IANA timezone."}}}function validateScheduleQueueTopic(value){if(value.length>MAX_QUEUE_TOPIC_LENGTH||!QUEUE_TOPIC_PATTERN.test(value))return"`--topic` must be 1\u2013256 characters and contain only letters, numbers, underscores, and hyphens."}function normalizeLocalDatetime(value){let secondMatch=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(secondMatch){if(secondMatch[6]!=="00")return}else LOCAL_MINUTE_DATETIME_PATTERN.test(value)&&(value=`${value}:00`);let match=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(!match)return;let[,yearValue,monthValue,dayValue,hourValue,minuteValue]=match,year=Number(yearValue),month=Number(monthValue),day=Number(dayValue),hour=Number(hourValue),minute=Number(minuteValue),daysInMonth=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];if(!(month<1||month>12||day<1||day>daysInMonth[month-1]||hour<0||hour>23||minute<0||minute>59))return value}function parseScheduleExpression(cron,at,required){if(cron!==void 0&&at!==void 0)return{valid:!1,error:"Use either `--cron` or `--at`, not both."};if(cron!==void 0)return cron.trim()?{valid:!0,value:{type:"cron",cron}}:{valid:!1,error:"`--cron` cannot be empty."};if(at!==void 0){let normalized=normalizeLocalDatetime(at);return normalized===void 0?{valid:!1,error:"`--at` must use YYYY-MM-DDTHH:mm or YYYY-MM-DDTHH:mm:00 without a timezone suffix. Use `--timezone` to select the timezone."}:{valid:!0,value:{type:"single",at:normalized}}}return required?{valid:!1,error:"A schedule expression is required. Use `--cron` or `--at`."}:{valid:!0,value:void 0}}function validateJitter(value){return!Number.isInteger(value)||value<1||value>MAX_JITTER_MINUTES?{valid:!1,error:"`--jitter` must be an integer between 1 and 15."}:{valid:!0,value}}function parseCreateJitter(value){return value===void 0?{valid:!0,value:void 0}:validateJitter(value)}function parseUpdateJitter(value){return value===void 0?{valid:!0,value:void 0}:value==="none"?{valid:!0,value:null}:validateJitter(Number(value))}function parseSchedulePayload(value){if(value===void 0)return{valid:!0,value:void 0};try{return{valid:!0,value:JSON.parse(value)}}catch{return{valid:!1,error:"`--payload` must be valid JSON."}}}var UNIX_MILLISECONDS_PATTERN=/^\d+$/,ISO_DATE_PATTERN=/^(\d{4})-(\d{2})-(\d{2})/,DURATION_PATTERN=/^\d+(?:\.\d+)?\s*[a-z]+$/i;function parseEnableUntil(until,duration,now=Date.now()){if(until!==void 0&&duration!==void 0)return{valid:!1,error:"`--until` and `--for` cannot be used together."};if(duration!==void 0){let durationMs=DURATION_PATTERN.test(duration.trim())?(0,import_ms7.default)(duration.trim()):void 0;return durationMs===void 0||!(durationMs>0)?{valid:!1,error:"`--for` must be a duration such as 30m, 5h, or 10s."}:{valid:!0,value:now+durationMs}}if(until===void 0)return{valid:!0,value:void 0};let untilMs,isoDate=ISO_DATE_PATTERN.exec(until);if(UNIX_MILLISECONDS_PATTERN.test(until))untilMs=Number(until);else if(isoDate){let[,year,month,day]=isoDate.map(Number),daysInMonth=new Date(Date.UTC(year,month,0)).getUTCDate();untilMs=day>=1&&day<=daysInMonth?Date.parse(until):NaN}else return{valid:!1,error:DURATION_PATTERN.test(until.trim())?`\`--until\` must be a time, not a duration. Use \`--for ${until.trim()}\` instead.`:"`--until` must be an ISO 8601 time or Unix milliseconds."};return Number.isFinite(untilMs)?untilMs<=now?{valid:!1,error:"`--until` must be in the future."}:{valid:!0,value:untilMs}:{valid:!1,error:"`--until` must be an ISO 8601 time or Unix milliseconds."}}var routingFlags2=getFlagsSpecification([...schedulesCommand.subcommands.flatMap(command2=>[...command2.options]),...executionsListSubcommand.options]);function takeScheduleCommand(argv){return takeCommand(argv,routingFlags2)}function scheduleCommandWithGlobalFlags(client,usage){let local=!1;try{local=!!parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags["--local"]}catch{}return buildCommandWithGlobalFlags(client.argv,`${usage}${local?" --local":""}`,void 0,{excludeFlags:local?["--scope","--team"]:[]})}function validateLocalScheduleFlags(client,flags,usage){if(flags["--environment"]!==void 0&&flags["--git-branch"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --git-branch, not both.");if(flags["--environment"]!==void 0&&flags["--user"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --user, not both.");if(!flags["--local"])return;for(let flag of["--environment","--git-branch","--user"])if(flags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`);let originalFlags;try{originalFlags=parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}for(let flag of["--scope","--team","--token"])if(flags[flag]!==void 0||originalFlags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`)}function unsupportedLocalExecutions(client){let message="Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.";return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}async function resolveSchedulesClient(client,flags){if(flags["--local"])try{let schedules=await createLocalSchedulesClient(client);return output_manager_default.log(`Using local Schedules at ${schedules.localOrigin}`),schedules}catch(error){let message=error instanceof Error?error.message:String(error);return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}let link=await requireProjectContext(client,"schedules");return typeof link=="number"?link:new SchedulesClient(client,{ownerId:link.org.id,projectId:link.project.id,environment:flags["--environment"]==="production"?void 0:flags["--environment"],gitBranch:flags["--git-branch"],user:flags["--user"]})}function scheduleTrackArgs(flags){let args=[];return flags["--environment"]!==void 0&&flags["--environment"]!=="production"&&args.push(`--environment ${quoteArg(flags["--environment"])}`),flags["--git-branch"]!==void 0&&args.push(`--git-branch ${quoteArg(flags["--git-branch"])}`),flags["--user"]!==void 0&&args.push(`--user ${quoteArg(flags["--user"])}`),args}function invalidScheduleArguments(client,usage,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:scheduleCommandWithGlobalFlags(client,usage),when:"Provide valid schedule arguments"}]}),2):(output_manager_default.fatal(message),2)}function validateScheduleNameAndNamespace(client,args,namespaceFlag,usage){let[name]=args;if(!name)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,"A schedule name is required")};if(args.length!==1)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,`Expected one schedule name. Usage: ${getCommandName(usage)}`)};let namespace=namespaceFlag??DEFAULT_SCHEDULE_NAMESPACE,nameError=validateScheduleIdentifier(name,"Schedule name"),namespaceError=validateScheduleIdentifier(namespace,"Namespace"),error=nameError??namespaceError;return error?{valid:!1,exitCode:invalidScheduleArguments(client,usage,error)}:{valid:!0,name,namespace}}function parseScheduleOutput(client,usage,flags){let result=validateJsonOutput(flags);return result.valid?{valid:!0,json:result.jsonOutput||client.nonInteractive}:{valid:!1,exitCode:invalidScheduleArguments(client,usage,result.error)}}function writeScheduleMutationResult(client,schedule,message,json){if(json){let value=client.nonInteractive?{status:AGENT_STATUS.OK,schedule,message}:schedule;client.stdout.write(`${JSON.stringify(value,null,2)}
258
+ `),await offerAutoPromote(client,projectId,version,!!existingStagingVersion,{teamId,skipPrompts}),0}catch(e){let error=e;return client.nonInteractive&&outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.ROUTE_CREATE_FAILED,message:"Route creation failed for this project. See hint for next steps.",hint:error.message||"Use `vercel routes list --diff` to inspect staged routes, then adjust options and retry.",next:[{command:withGlobalFlags2(client,"routes list --diff"),when:"to inspect staged state"}]},1),output_manager_default.error(error.message||"Failed to create route"),1}}var COMMAND_CONFIG5={list:getCommandAliases(listSubcommand5),"list-versions":getCommandAliases(listVersionsSubcommand2),inspect:getCommandAliases(inspectSubcommand4),add:getCommandAliases(addSubcommand3),update:getCommandAliases(editSubcommand),remove:getCommandAliases(deleteSubcommand2),enable:getCommandAliases(enableSubcommand),disable:getCommandAliases(disableSubcommand),move:getCommandAliases(reorderSubcommand),export:getCommandAliases(exportSubcommand),publish:getCommandAliases(publishSubcommand),restore:getCommandAliases(restoreSubcommand2),"discard-staging":getCommandAliases(discardSubcommand)};async function main4(client){let telemetry=new RoutesTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(routesCommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification,{permissive:!0})}catch(err){return printError(err),2}let subArgs=parsedArgs.args.slice(1),{subcommand,args,subcommandOriginal}=getSubcommand2(subArgs,COMMAND_CONFIG5),needHelp=parsedArgs.flags["--help"];if(!subcommand&&needHelp)return telemetry.trackCliFlagHelp("routes"),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),0;function printHelp(command2){output_manager_default.print(help(command2,{stream:client.stderr,parent:routesCommand,columns:client.stderr.columns}))}switch(subcommand&&!needHelp&&telemetry.trackCliOptionProject(getProjectOptionFromArgs(args)),subcommand){case"list":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listSubcommand5),0):(telemetry.trackCliSubcommandList(subcommandOriginal),list3(client,args));case"list-versions":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(listVersionsSubcommand2),0):(telemetry.trackCliSubcommandListVersions(subcommandOriginal),subcommandOriginal==="ls-versions"&&warnDeprecatedSubcommand(client,"routes ls-versions","routes list-versions"),listVersions2(client,args));case"inspect":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(inspectSubcommand4),0):(telemetry.trackCliSubcommandInspect(subcommandOriginal),inspect3(client,args));case"add":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(addSubcommand3),0):(telemetry.trackCliSubcommandAdd(subcommandOriginal),add3(client,args));case"update":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(editSubcommand),0):(telemetry.trackCliSubcommandUpdate(subcommandOriginal),subcommandOriginal==="edit"&&warnDeprecatedSubcommand(client,"routes edit","routes update"),(await import("./chunks/edit-LLRI57RF.js")).default(client,args));case"remove":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(deleteSubcommand2),0):(telemetry.trackCliSubcommandRemove(subcommandOriginal),subcommandOriginal==="delete"&&warnDeprecatedSubcommand(client,"routes delete","routes remove"),(await import("./chunks/delete-3SN6XFOW.js")).default(client,args));case"enable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(enableSubcommand),0):(telemetry.trackCliSubcommandEnable(subcommandOriginal),(await import("./chunks/enable-TFA6XWAA.js")).default(client,args));case"disable":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(disableSubcommand),0):(telemetry.trackCliSubcommandDisable(subcommandOriginal),(await import("./chunks/disable-UUV5MYYH.js")).default(client,args));case"move":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(reorderSubcommand),0):(telemetry.trackCliSubcommandMove(subcommandOriginal),subcommandOriginal==="reorder"&&warnDeprecatedSubcommand(client,"routes reorder","routes move"),(await import("./chunks/reorder-PQU2BQEE.js")).default(client,args));case"export":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(exportSubcommand),0):(telemetry.trackCliSubcommandExport(subcommandOriginal),(await import("./chunks/export-AI2O22W5.js")).default(client,args));case"publish":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(publishSubcommand),0):(telemetry.trackCliSubcommandPublish(subcommandOriginal),(await import("./chunks/publish-N6E7VTRK.js")).default(client,args));case"restore":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(restoreSubcommand2),0):(telemetry.trackCliSubcommandRestore(subcommandOriginal),(await import("./chunks/restore-U5A3BEFQ.js")).default(client,args));case"discard-staging":return needHelp?(telemetry.trackCliFlagHelp("routes",subcommandOriginal),printHelp(discardSubcommand),0):(telemetry.trackCliSubcommandDiscardStaging(subcommandOriginal),(await import("./chunks/discard-Y6ZITZ2P.js")).default(client,args));default:return output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG5)),output_manager_default.print(help(routesCommand,{stream:client.stderr,columns:client.stderr.columns})),2}}var SchedulesTelemetryClient=class extends TelemetryClient{trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliSubcommandInspect(actual){this.trackCliSubcommand({subcommand:"inspect",value:actual})}trackCliSubcommandList(actual){this.trackCliSubcommand({subcommand:"list",value:actual})}trackCliSubcommandCreate(actual){this.trackCliSubcommand({subcommand:"create",value:actual})}trackCliSubcommandUpdate(actual){this.trackCliSubcommand({subcommand:"update",value:actual})}trackCliSubcommandEnable(actual){this.trackCliSubcommand({subcommand:"enable",value:actual})}trackCliSubcommandDisable(actual){this.trackCliSubcommand({subcommand:"disable",value:actual})}trackCliSubcommandInvoke(actual){this.trackCliSubcommand({subcommand:"invoke",value:actual})}trackCliSubcommandDelete(actual){this.trackCliSubcommand({subcommand:"delete",value:actual})}trackCliSubcommandExecutions(actual){this.trackCliSubcommand({subcommand:"executions",value:actual})}trackCliSubcommandExecutionsList(actual){this.trackCliSubcommand({subcommand:"executions:list",value:actual})}};var import_ms8=__toESM(require_ms(),1);var SchedulesActionTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFor(duration){duration&&this.trackCliOption({option:"for",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};function asSentence(value){let trimmed=value.trim();return/[.!?]$/.test(trimmed)?trimmed:`${trimmed}.`}function apiErrorDetail(error){let message=error.serverMessage?.trim();return message&&message!=="Response Error"?asSentence(message):void 0}function requestDescription(context){return context.action==="list"?`list schedules in namespace ${context.namespace}`:context.action==="list-executions"?`list executions for schedule ${context.namespace}/${context.name}`:`${context.action} schedule ${context.namespace}/${context.name}`}function ambiguousInvokeError(local){return{reason:AGENT_REASON.API_ERROR,message:"The schedule invocation may have been accepted, but the CLI did not receive confirmation. Check whether the schedule ran before invoking it again."+(local?` Inspect the ${getCommandName("dev")} output for local executions.`:""),retryable:!1,userActionRequired:!0}}function getSchedulesError(client,error,context){if(!isAPIError(error))return context.action==="invoke"?ambiguousInvokeError(context.local):context.local?{reason:AGENT_REASON.API_ERROR,message:`${error instanceof Error?asSentence(error.message):"Failed to connect to local Schedules."} Check the local session and restart ${getCommandName("dev")} in this project if needed.`,retryable:!1,userActionRequired:!0}:{reason:AGENT_REASON.API_ERROR,message:"Failed to connect to the Schedules API. Check your connection and try again.",retryable:!0};let serverMessage=error.serverMessage?.trim().toLowerCase();if(context.local&&context.action==="invoke"&&error.status>=500)return ambiguousInvokeError(!0);if(context.local&&(error.status===401||error.status===402||error.status===403||/(?:project|session)_(?:mismatch|not_found|expired)/.test(error.code??"")||/^(?:local )?(?:project|session)\b/.test(serverMessage??"")))return{reason:AGENT_REASON.API_ERROR,message:`${apiErrorDetail(error)??"The local Schedules session is unavailable."} Restart ${getCommandName("dev")} in this project and use its local session.`,retryable:!1,userActionRequired:!0};if(error.code==="schedule_already_exists")return{reason:AGENT_REASON.SCHEDULE_ALREADY_EXISTS,message:context.name?`Schedule ${context.namespace}/${context.name} already exists. Choose a different name or update the existing schedule.`:"The schedule already exists. Choose a different name or update the existing schedule.",retryable:!1};if(error.code==="schedule_single_at_passed")return{reason:AGENT_REASON.SCHEDULE_SINGLE_AT_PASSED,message:context.name?`Schedule ${context.namespace}/${context.name} has passed its scheduled time and can't be modified. Delete it or create a new schedule.`:"The schedule has passed its scheduled time and can't be modified. Delete it or create a new schedule.",retryable:!1};if(error.code==="schedule_already_active"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.SCHEDULE_ALREADY_ACTIVE,message:context.name?`Schedule ${context.namespace}/${context.name} is already enabled without an end time. Disable it first, then enable it with --until or --for.`:"The schedule is already enabled without an end time. Disable it first, then enable it with --until or --for.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes","--until","--for"]}),when:"Disable the schedule before enabling it with an end time"}]}}}if(error.code==="static_schedule"){let schedule=context.name?[quoteArg(context.name),`--namespace ${quoteArg(context.namespace)}`,...context.trackArgs??[]].join(" "):void 0;return{reason:AGENT_REASON.STATIC_SCHEDULE,message:context.name?`Static schedule ${context.namespace}/${context.name} can't be updated or deleted. Enable or disable it instead.`:"Static schedules can't be updated or deleted. Enable or disable them instead.",retryable:!1,...schedule&&{next:[{command:buildCommandWithGlobalFlags(client.argv,`schedules enable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Enable the static schedule"},{command:buildCommandWithGlobalFlags(client.argv,`schedules disable ${schedule}`,void 0,{excludeFlags:["--yes"]}),when:"Disable the static schedule"}]}}}if(error.code==="invalid_cron_expression")return{reason:AGENT_REASON.INVALID_CRON_EXPRESSION,message:`${apiErrorDetail(error)??"The cron expression is invalid."} Check \`--cron\` and try again.`,retryable:!1};if(error.code==="invalid_jitter")return{reason:AGENT_REASON.INVALID_JITTER,message:apiErrorDetail(error)??"The schedule jitter setting is invalid.",retryable:!1};if(error.code==="jitter_exceeds_cadence")return{reason:AGENT_REASON.JITTER_EXCEEDS_CADENCE,message:`${apiErrorDetail(error)??"The schedule jitter exceeds the interval between runs."} Increase the interval between runs.`,retryable:!1};if(error.code==="single_at_too_soon")return{reason:AGENT_REASON.SINGLE_AT_TOO_SOON,message:`${apiErrorDetail(error)??"The one-time schedule is too soon."} Choose a later value for \`--at\`.`,retryable:!1};if(error.code==="payload_too_large")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_TOO_LARGE,message:`${apiErrorDetail(error)??"The schedule payload is too large."} Reduce the value passed to \`--payload\` and try again.`,retryable:!1};if(error.code==="payload_store_failed")return{reason:AGENT_REASON.SCHEDULE_PAYLOAD_STORE_FAILED,message:"Failed to store the schedule payload. Try again later.",retryable:!0};if(error.code==="service_unavailable")return{reason:AGENT_REASON.SCHEDULE_SERVICE_UNAVAILABLE,message:"Schedule execution history is temporarily unavailable. Try again later.",retryable:!0};if(error.code==="service_error")return{reason:AGENT_REASON.SCHEDULE_SERVICE_ERROR,message:error.status>=500?"Failed to load schedule execution history. Try again later.":"Failed to load schedule execution history. Choose a shorter time range and try again.",retryable:error.status>=500};if(error.status===400){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.INVALID_ARGUMENTS,message:`The Schedules API rejected the request.${detail2?` ${detail2}`:""}`,retryable:!1}}if(error.status===401&&error.code==="missing_team_param")return{reason:AGENT_REASON.MISSING_SCOPE,message:"Schedules requires a team project. Run `vercel link` to link a project owned by a team.",retryable:!1,userActionRequired:!0};if(error.status===401){let tokenSource=client.authConfig.tokenSource;return{reason:AGENT_REASON.LOGIN_REQUIRED,message:tokenSource==="env"?"Schedules API authentication failed. Replace VERCEL_TOKEN, or unset it to use your saved login.":tokenSource==="flag"?"Schedules API authentication failed. Replace the token passed to `--token`.":`Schedules API authentication failed. Run ${getCommandName("login")} and try again.`,retryable:!1,userActionRequired:!0}}if(error.status===402){let detail2=apiErrorDetail(error);return{reason:AGENT_REASON.PLAN_UPGRADE_REQUIRED,message:`Schedules isn't available for this team.${detail2?` ${detail2}`:""} Ask a team owner to review the requirement.`,retryable:!1,userActionRequired:!0}}if(error.status===403&&error.code==="not_enabled"||!context.local&&error.status===404&&(serverMessage==="not found"||serverMessage==="not found."))return{reason:AGENT_REASON.SCHEDULES_NOT_ENABLED,message:"Vercel Schedules is not enabled for this team.",retryable:!1,userActionRequired:!0};if(error.status===403)return{reason:AGENT_REASON.PERMISSION_DENIED,message:"Can't access Schedules with the current credentials and team. Check the token and selected team. If both are correct, ask a team owner for access.",retryable:!1,userActionRequired:!0};if(error.status===404&&(serverMessage==="project not found"||serverMessage==="project not found."))return{reason:AGENT_REASON.PROJECT_NOT_FOUND,message:"The linked project isn't available to this team. Run `vercel link` to update the project link.",retryable:!1,userActionRequired:!0};if(error.status===404&&context.action!=="create"&&context.action!=="list"&&context.name)return{reason:AGENT_REASON.NOT_FOUND,message:`Schedule not found: ${context.namespace}/${context.name}.`,retryable:!1};if(error.status===429){let retryAfterMs=typeof error.retryAfterMs=="number"&&error.retryAfterMs>0?error.retryAfterMs:void 0;return{reason:AGENT_REASON.RATE_LIMITED,message:retryAfterMs===void 0?"The Schedules API request limit was reached. Wait and try again.":`The Schedules API request limit was reached. Try again in ${Math.ceil(retryAfterMs/1e3)} second${retryAfterMs>1e3?"s":""}.`,retryable:!0,...retryAfterMs&&{retryAfterMs}}}if(error.status>=500)return context.action==="invoke"?ambiguousInvokeError(context.local):{reason:AGENT_REASON.API_ERROR,message:context.local?`Local Schedules is unavailable. Check the ${getCommandName("dev")} output and restart the local session if needed.`:"The Schedules API is temporarily unavailable. Try again later.",retryable:!0};let detail=apiErrorDetail(error);return{reason:AGENT_REASON.API_ERROR,message:`Failed to ${requestDescription(context)}.${detail?` ${detail}`:""}`,retryable:!1}}function handleSchedulesApiError(client,error,context){let details=getSchedulesError(client,error,context);return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,...details},1),1):(output_manager_default.fatal(details.message),1)}var DEFAULT_SCHEDULES_BASE_URL="https://vercel-schedules.com",DEFAULT_SCHEDULE_NAMESPACE="default",DEFAULT_SCHEDULES_LIMIT=20,SCHEDULES_REQUEST_SOURCE_HEADER="x-vss-client",LocalSchedulesError=class extends Error{constructor(message){super(message),this.name="LocalSchedulesError"}};function sanitizeSchedule(schedule){let{trackId:_trackId,...publicSchedule}=schedule;return publicSchedule}var SchedulesClient=class{constructor(client,options){this.client=client;this.options=options;if("local"in options){if(!isLocalSchedulesOrigin(options.local.origin))throw new LocalSchedulesError("Local Schedules requires an HTTP 127.0.0.1 endpoint with a valid port.");this.baseUrl=new URL(options.local.origin);return}this.baseUrl=new URL(options.baseUrl??process.env.VERCEL_SCHEDULE_BASE_URL??DEFAULT_SCHEDULES_BASE_URL)}get localOrigin(){return"local"in this.options?this.baseUrl.origin:void 0}async request(path,options={}){let url=new URL(path,this.baseUrl);if("local"in this.options){let session=this.options.local;url.searchParams.set("projectId",session.projectId);let response;try{response=await directFetch(url.href,{method:options.method??"GET",headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli",...options.body===void 0?{}:{"content-type":"application/json"}},body:options.body===void 0?void 0:JSON.stringify(options.body),redirect:"manual",signal:AbortSignal.timeout(3e4)})}catch{throw new LocalSchedulesError(`Could not reach local Schedules at ${session.origin}. No cloud request was made.`)}if(response.status>=300&&response.status<400||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session changed or returned an unexpected response. Restart vercel dev and try again.");if(!response.ok)throw await responseError(response);if(response.status===204)return;try{return await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned an invalid JSON response.")}}url.searchParams.set("projectId",this.options.projectId),this.options.environment!==void 0&&url.searchParams.set("env",this.options.environment),this.options.gitBranch!==void 0&&url.searchParams.set("branch",this.options.gitBranch),this.options.user!==void 0&&url.searchParams.set("user",this.options.user);let headers=new globalThis.Headers(options.headers);return headers.set(SCHEDULES_REQUEST_SOURCE_HEADER,"cli"),this.client.fetch(url.href,{...options,headers,accountId:this.options.ownerId,useCurrentTeam:!1})}schedulePath(name,namespace,suffix=""){return`${`/v1/schedules/${encodeURIComponent(name)}${suffix}`}?${new URLSearchParams({namespace})}`}async create({target,...params}){let schedule=await this.request("/v1/schedules",{method:"POST",bailOn429:!0,body:{...params,target:{type:"queue",topic:target.topic}}});return sanitizeSchedule(schedule)}async get({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){let schedule=await this.request(this.schedulePath(name,namespace),{bailOn429:!0});return sanitizeSchedule(schedule)}async list({namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT}={}){let searchParams=new URLSearchParams({namespace,limit:String(limit)});cursor!==void 0&&searchParams.set("cursor",cursor);let response=await this.request(`/v1/schedules?${searchParams}`,{bailOn429:!0});return{data:response.data.map(sanitizeSchedule),cursor:response.cursor}}async update({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,target,...params}){let schedule=await this.request(this.schedulePath(name,namespace),{method:"PATCH",bailOn429:!0,body:{...params,...target?{target:{type:"queue",topic:target.topic}}:{}}});return sanitizeSchedule(schedule)}async delete({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.request(this.schedulePath(name,namespace),{method:"DELETE",bailOn429:!0})}async enable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,activeUntil}){return this.changeState(name,namespace,"enable",activeUntil===void 0?void 0:{until:activeUntil})}async disable({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){return this.changeState(name,namespace,"disable")}async changeState(name,namespace,action,body){let schedule=await this.request(this.schedulePath(name,namespace,`/${action}`),{method:"POST",bailOn429:!0,...body&&{body}});return sanitizeSchedule(schedule)}async invoke({name,namespace=DEFAULT_SCHEDULE_NAMESPACE}){await this.request(this.schedulePath(name,namespace,"/invoke"),{method:"POST",bailOn429:!0,retry:{retries:0}})}async listExecutions({name,namespace=DEFAULT_SCHEDULE_NAMESPACE,cursor,limit=DEFAULT_SCHEDULES_LIMIT,sort,from,to,executionId}){if("local"in this.options)throw new LocalSchedulesError("Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.");let searchParams=new URLSearchParams({limit:String(limit)});return cursor!==void 0&&searchParams.set("cursor",cursor),sort!==void 0&&searchParams.set("sort",sort),from!==void 0&&searchParams.set("from",String(from)),to!==void 0&&searchParams.set("to",String(to)),executionId!==void 0&&searchParams.set("executionId",executionId),this.request(`${this.schedulePath(name,namespace,"/executions")}&${searchParams}`,{bailOn429:!0})}};async function createLocalSchedulesClient(client){let sessions=await readLocalSchedulesSessions(client.cwd);if(sessions.length===0)throw new LocalSchedulesError("No running local Schedules session was found in this directory. Start vercel dev here, or use --cwd to select its project directory.");if(sessions.length>1)throw new LocalSchedulesError("Multiple vercel dev sessions are running in this directory. Stop the extra instances before using schedules --local.");let[session]=sessions,response;try{response=await directFetch(`${session.origin}/v1/info`,{headers:{authorization:`Bearer ${DEV_RESOURCE_TOKEN}`,[LOCAL_SCHEDULES_SESSION_HEADER]:session.id,[SCHEDULES_REQUEST_SOURCE_HEADER]:"cli"},redirect:"manual",signal:AbortSignal.timeout(2e3)})}catch{throw new LocalSchedulesError(`The local Schedules session at ${session.origin} is unavailable. Restart vercel dev in this directory. No cloud request was made.`)}if(!response.ok||response.headers.get(LOCAL_SCHEDULES_SESSION_HEADER)!==session.id)throw await response.body?.cancel(),new LocalSchedulesError("The local Schedules session is stale, not ready, or incompatible. Restart vercel dev in this directory.");let info;try{info=await response.json()}catch{throw new LocalSchedulesError("The local Schedules session returned invalid metadata. Restart vercel dev in this directory.")}if(!info||info.version!==session.version||info.id!==session.id||info.pid!==session.pid||info.cwd!==session.cwd||info.origin!==session.origin||info.projectId!==session.projectId)throw new LocalSchedulesError("The local Schedules session does not match this project instance. Restart vercel dev in this directory.");return new SchedulesClient(client,{local:session})}var import_ms7=__toESM(require_ms(),1),MAX_IDENTIFIER_LENGTH=256,IDENTIFIER_PATTERN=/^[0-9A-Za-z][0-9A-Za-z._-]*$/,MAX_QUEUE_TOPIC_LENGTH=256,QUEUE_TOPIC_PATTERN=/^[A-Za-z0-9_-]+$/,MAX_JITTER_MINUTES=15,LOCAL_MINUTE_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/,LOCAL_SECOND_DATETIME_PATTERN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})$/,TIMEZONE_PATTERN=/^[A-Za-z][A-Za-z0-9_+/-]*$/;function validateScheduleIdentifier(value,label){if(value.length>MAX_IDENTIFIER_LENGTH)return`${label} must be at most ${MAX_IDENTIFIER_LENGTH} characters.`;if(!IDENTIFIER_PATTERN.test(value))return`${label} must start with a letter or number and can contain only letters, numbers, periods, underscores, and hyphens.`}function validateScheduleTimezone(value){if(value!==void 0){if(value.length===0||value.length>50||!TIMEZONE_PATTERN.test(value))return"`--timezone` must be a valid IANA timezone.";try{new Intl.DateTimeFormat("en-US",{timeZone:value})}catch{return"`--timezone` must be a valid IANA timezone."}}}function validateScheduleQueueTopic(value){if(value.length>MAX_QUEUE_TOPIC_LENGTH||!QUEUE_TOPIC_PATTERN.test(value))return"`--topic` must be 1\u2013256 characters and contain only letters, numbers, underscores, and hyphens."}function normalizeLocalDatetime(value){let secondMatch=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(secondMatch){if(secondMatch[6]!=="00")return}else LOCAL_MINUTE_DATETIME_PATTERN.test(value)&&(value=`${value}:00`);let match=LOCAL_SECOND_DATETIME_PATTERN.exec(value);if(!match)return;let[,yearValue,monthValue,dayValue,hourValue,minuteValue]=match,year=Number(yearValue),month=Number(monthValue),day=Number(dayValue),hour=Number(hourValue),minute=Number(minuteValue),daysInMonth=[31,year%4===0&&(year%100!==0||year%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];if(!(month<1||month>12||day<1||day>daysInMonth[month-1]||hour<0||hour>23||minute<0||minute>59))return value}function parseScheduleExpression(cron,at,required){if(cron!==void 0&&at!==void 0)return{valid:!1,error:"Use either `--cron` or `--at`, not both."};if(cron!==void 0)return cron.trim()?{valid:!0,value:{type:"cron",cron}}:{valid:!1,error:"`--cron` cannot be empty."};if(at!==void 0){let normalized=normalizeLocalDatetime(at);return normalized===void 0?{valid:!1,error:"`--at` must use YYYY-MM-DDTHH:mm or YYYY-MM-DDTHH:mm:00 without a timezone suffix. Use `--timezone` to select the timezone."}:{valid:!0,value:{type:"single",at:normalized}}}return required?{valid:!1,error:"A schedule expression is required. Use `--cron` or `--at`."}:{valid:!0,value:void 0}}function validateJitter(value){return!Number.isInteger(value)||value<1||value>MAX_JITTER_MINUTES?{valid:!1,error:"`--jitter` must be an integer between 1 and 15."}:{valid:!0,value}}function parseCreateJitter(value){return value===void 0?{valid:!0,value:void 0}:validateJitter(value)}function parseUpdateJitter(value){return value===void 0?{valid:!0,value:void 0}:value==="none"?{valid:!0,value:null}:validateJitter(Number(value))}function parseSchedulePayload(value){if(value===void 0)return{valid:!0,value:void 0};try{return{valid:!0,value:JSON.parse(value)}}catch{return{valid:!1,error:"`--payload` must be valid JSON."}}}var UNIX_MILLISECONDS_PATTERN=/^\d+$/,ISO_DATE_PATTERN=/^(\d{4})-(\d{2})-(\d{2})/,DURATION_PATTERN=/^\d+(?:\.\d+)?\s*[a-z]+$/i;function parseEnableUntil(until,duration,now=Date.now()){if(until!==void 0&&duration!==void 0)return{valid:!1,error:"`--until` and `--for` cannot be used together."};if(duration!==void 0){let durationMs=DURATION_PATTERN.test(duration.trim())?(0,import_ms7.default)(duration.trim()):void 0;return durationMs===void 0||!(durationMs>0)?{valid:!1,error:"`--for` must be a duration such as 30m, 5h, or 10s."}:{valid:!0,value:now+durationMs}}if(until===void 0)return{valid:!0,value:void 0};let untilMs,isoDate=ISO_DATE_PATTERN.exec(until);if(UNIX_MILLISECONDS_PATTERN.test(until))untilMs=Number(until);else if(isoDate){let[,year,month,day]=isoDate.map(Number),daysInMonth=new Date(Date.UTC(year,month,0)).getUTCDate();untilMs=day>=1&&day<=daysInMonth?Date.parse(until):NaN}else return{valid:!1,error:DURATION_PATTERN.test(until.trim())?`\`--until\` must be a time, not a duration. Use \`--for ${until.trim()}\` instead.`:"`--until` must be an ISO 8601 time or Unix milliseconds."};return Number.isFinite(untilMs)?untilMs<=now?{valid:!1,error:"`--until` must be in the future."}:{valid:!0,value:untilMs}:{valid:!1,error:"`--until` must be an ISO 8601 time or Unix milliseconds."}}var routingFlags2=getFlagsSpecification([...schedulesCommand.subcommands.flatMap(command2=>[...command2.options]),...executionsListSubcommand.options]);function takeScheduleCommand(argv){return takeCommand(argv,routingFlags2)}function scheduleCommandWithGlobalFlags(client,usage){let local=!1;try{local=!!parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags["--local"]}catch{}return buildCommandWithGlobalFlags(client.argv,`${usage}${local?" --local":""}`,void 0,{excludeFlags:local?["--scope","--team"]:[]})}function validateLocalScheduleFlags(client,flags,usage){if(flags["--environment"]!==void 0&&flags["--git-branch"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --git-branch, not both.");if(flags["--environment"]!==void 0&&flags["--user"]!==void 0)return invalidScheduleArguments(client,usage,"Use either --environment or --user, not both.");if(!flags["--local"])return;for(let flag of["--environment","--git-branch","--user"])if(flags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`);let originalFlags;try{originalFlags=parseArguments(client.argv.slice(2),routingFlags2,{permissive:!0}).flags}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}for(let flag of["--scope","--team","--token"])if(flags[flag]!==void 0||originalFlags[flag]!==void 0)return invalidScheduleArguments(client,usage,`Cannot combine --local with ${flag}. Local Schedules uses the current vercel dev session.`)}function unsupportedLocalExecutions(client){let message="Execution history is not supported for local Schedules. Inspect the vercel dev output for local executions.";return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}async function resolveSchedulesClient(client,flags){if(flags["--local"])try{let schedules=await createLocalSchedulesClient(client);return output_manager_default.log(`Using local Schedules at ${schedules.localOrigin}`),schedules}catch(error){let message=error instanceof Error?error.message:String(error);return client.nonInteractive?outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.API_ERROR,message,retryable:!1}):output_manager_default.fatal(message),1}let link=await requireProjectContext(client,"schedules");return typeof link=="number"?link:new SchedulesClient(client,{ownerId:link.org.id,projectId:link.project.id,environment:flags["--environment"]==="production"?void 0:flags["--environment"],gitBranch:flags["--git-branch"],user:flags["--user"]})}function scheduleTrackArgs(flags){let args=[];return flags["--environment"]!==void 0&&flags["--environment"]!=="production"&&args.push(`--environment ${quoteArg(flags["--environment"])}`),flags["--git-branch"]!==void 0&&args.push(`--git-branch ${quoteArg(flags["--git-branch"])}`),flags["--user"]!==void 0&&args.push(`--user ${quoteArg(flags["--user"])}`),args}function invalidScheduleArguments(client,usage,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:scheduleCommandWithGlobalFlags(client,usage),when:"Provide valid schedule arguments"}]}),2):(output_manager_default.fatal(message),2)}function validateScheduleNameAndNamespace(client,args,namespaceFlag,usage){let[name]=args;if(!name)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,"A schedule name is required")};if(args.length!==1)return{valid:!1,exitCode:invalidScheduleArguments(client,usage,`Expected one schedule name. Usage: ${getCommandName(usage)}`)};let namespace=namespaceFlag??DEFAULT_SCHEDULE_NAMESPACE,nameError=validateScheduleIdentifier(name,"Schedule name"),namespaceError=validateScheduleIdentifier(namespace,"Namespace"),error=nameError??namespaceError;return error?{valid:!1,exitCode:invalidScheduleArguments(client,usage,error)}:{valid:!0,name,namespace}}function parseScheduleOutput(client,usage,flags){let result=validateJsonOutput(flags);return result.valid?{valid:!0,json:result.jsonOutput||client.nonInteractive}:{valid:!1,exitCode:invalidScheduleArguments(client,usage,result.error)}}function writeScheduleMutationResult(client,schedule,message,json){if(json){let value=client.nonInteractive?{status:AGENT_STATUS.OK,schedule,message}:schedule;client.stdout.write(`${JSON.stringify(value,null,2)}
259
259
  `)}else output_manager_default.success(message);return 0}async function runScheduleAction(client,argv,action){let subcommand=action==="enable"?enableSubcommand2:action==="disable"?disableSubcommand2:invokeSubcommand,usage=`schedules ${action} <name>`,telemetry=new SchedulesActionTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(subcommand.options))}catch(error){return invalidScheduleArguments(client,usage,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs,enableFlags=flags;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,usage);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliOptionUntil(enableFlags["--until"]),telemetry.trackCliOptionFor(enableFlags["--for"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],usage);if(!identifier.valid)return identifier.exitCode;let outputMode=parseScheduleOutput(client,usage,flags);if(!outputMode.valid)return outputMode.exitCode;let activeUntil=parseEnableUntil(enableFlags["--until"],enableFlags["--for"]);if(!activeUntil.valid)return invalidScheduleArguments(client,usage,activeUntil.error);let schedulesClient=await resolveSchedulesClient(client,flags);if(typeof schedulesClient=="number")return schedulesClient;let presentParticiple=action==="enable"?"Enabling":action==="disable"?"Disabling":"Invoking";outputMode.json||output_manager_default.spinner(`${presentParticiple} schedule\u2026`);let schedule;try{action==="enable"?schedule=await schedulesClient.enable({...identifier,activeUntil:activeUntil.value}):action==="disable"?schedule=await schedulesClient.disable(identifier):await schedulesClient.invoke(identifier)}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action,local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}output_manager_default.stopSpinner();let pastTense=action==="enable"?"Enabled":action==="disable"?"Disabled":"Invoked",enabledUntil=schedule?.activeUntil??activeUntil.value,message=action==="enable"&&enabledUntil!==void 0?`${pastTense} schedule ${identifier.namespace}/${identifier.name} until ${new Date(enabledUntil).toISOString()} (in ${(0,import_ms8.default)(Math.max(enabledUntil-Date.now(),1e3),{long:!0})}).`:`${pastTense} schedule ${identifier.namespace}/${identifier.name}.`;if(schedule)return writeScheduleMutationResult(client,schedule,message,outputMode.json);if(outputMode.json){let result=client.nonInteractive?{status:AGENT_STATUS.OK,message}:{invoked:!0,name:identifier.name,namespace:identifier.namespace};client.stdout.write(`${JSON.stringify(result,null,2)}
260
260
  `)}else output_manager_default.success(message);return 0}var SchedulesCreateTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionCron(cron){cron&&this.trackCliOption({option:"cron",value:this.redactedValue})}trackCliOptionAt(at){at&&this.trackCliOption({option:"at",value:this.redactedValue})}trackCliOptionTimezone(timezone){timezone&&this.trackCliOption({option:"timezone",value:timezone})}trackCliOptionJitter(jitter){jitter!==void 0&&this.trackCliOption({option:"jitter",value:String(jitter)})}trackCliOptionTopic(topic){topic&&this.trackCliOption({option:"topic",value:this.redactedValue})}trackCliOptionPayload(payload){payload!==void 0&&this.trackCliOption({option:"payload",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE14="schedules create <name> --cron <expression> --topic <topic>";async function create(client,argv){let telemetry=new SchedulesCreateTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(createSubcommand2.options))}catch(error){return invalidScheduleArguments(client,USAGE14,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,USAGE14);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliOptionCron(flags["--cron"]),telemetry.trackCliOptionAt(flags["--at"]),telemetry.trackCliOptionTimezone(flags["--timezone"]),telemetry.trackCliOptionJitter(flags["--jitter"]),telemetry.trackCliOptionTopic(flags["--topic"]),telemetry.trackCliOptionPayload(flags["--payload"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],USAGE14);if(!identifier.valid)return identifier.exitCode;let expression=parseScheduleExpression(flags["--cron"],flags["--at"],!0);if(!expression.valid)return invalidScheduleArguments(client,USAGE14,expression.error);let topic=flags["--topic"];if(!topic?.trim())return invalidScheduleArguments(client,USAGE14,"A target queue topic is required. Use `--topic`.");let topicError=validateScheduleQueueTopic(topic);if(topicError)return invalidScheduleArguments(client,USAGE14,topicError);let jitter=parseCreateJitter(flags["--jitter"]);if(!jitter.valid)return invalidScheduleArguments(client,USAGE14,jitter.error);let timezoneError=validateScheduleTimezone(flags["--timezone"]);if(timezoneError)return invalidScheduleArguments(client,USAGE14,timezoneError);let payload=parseSchedulePayload(flags["--payload"]);if(!payload.valid)return invalidScheduleArguments(client,USAGE14,payload.error);let outputMode=parseScheduleOutput(client,USAGE14,flags);if(!outputMode.valid)return outputMode.exitCode;let schedules=await resolveSchedulesClient(client,flags);if(typeof schedules=="number")return schedules;outputMode.json||output_manager_default.spinner("Creating schedule\u2026");let schedule;try{schedule=await schedules.create({name:identifier.name,namespace:identifier.namespace,expression:expression.value,target:{topic},...flags["--timezone"]!==void 0&&{timezone:flags["--timezone"]},...jitter.value!==void 0&&{jitter:jitter.value},...flags["--payload"]!==void 0&&{payload:payload.value}})}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action:"create",local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}return output_manager_default.stopSpinner(),writeScheduleMutationResult(client,schedule,`Created schedule ${identifier.namespace}/${identifier.name}.`,outputMode.json)}var SchedulesDeleteTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliFlagYes(yes){yes&&this.trackCliFlag("yes")}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE15="schedules delete <name> --yes";async function deleteSchedule(client,argv){let telemetry=new SchedulesDeleteTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(deleteSubcommand3.options))}catch(error){return invalidScheduleArguments(client,USAGE15,error instanceof Error?error.message:String(error))}let{args,flags}=parsedArgs;telemetry.trackCliFlagLocal(flags["--local"]);let conflict=validateLocalScheduleFlags(client,flags,USAGE15);if(conflict!==void 0)return conflict;telemetry.trackCliArgumentName(args[0]),telemetry.trackCliOptionNamespace(flags["--namespace"]),telemetry.trackCliOptionEnvironment(flags["--environment"]),telemetry.trackCliOptionGitBranch(flags["--git-branch"]),telemetry.trackCliOptionUser(flags["--user"]),telemetry.trackCliFlagYes(flags["--yes"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]);let identifier=validateScheduleNameAndNamespace(client,args,flags["--namespace"],USAGE15);if(!identifier.valid)return identifier.exitCode;let outputMode=parseScheduleOutput(client,USAGE15,flags);if(!outputMode.valid)return outputMode.exitCode;let skipConfirmation=flags["--yes"]??!1;if(client.nonInteractive&&!skipConfirmation)return outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:flags["--local"]?"Deleting a local schedule requires confirmation. Re-run with `--yes`.":"Deleting a schedule requires confirmation. Re-run with `--yes`.",next:[{command:flags["--local"]?scheduleCommandWithGlobalFlags(client,`schedules delete ${quoteArg(identifier.name)} --namespace ${quoteArg(identifier.namespace)} --yes`):buildCommandWithYes(client.argv)}]},1),1;let schedules=await resolveSchedulesClient(client,flags);if(typeof schedules=="number")return schedules;let target=flags["--local"]?"local schedule":"schedule";if(!skipConfirmation&&!await client.input.confirm(`Delete ${target} ${identifier.namespace}/${identifier.name}? This cannot be undone.`,!1))return output_manager_default.log("Canceled"),0;outputMode.json||output_manager_default.spinner("Deleting schedule\u2026");let deletedScheduleId;try{deletedScheduleId=(await schedules.delete(identifier)).scheduleId}catch(error){return output_manager_default.stopSpinner(),handleSchedulesApiError(client,error,{action:"delete",local:flags["--local"],name:identifier.name,namespace:identifier.namespace,trackArgs:scheduleTrackArgs(flags)})}output_manager_default.stopSpinner();let message=`Deleted ${target} ${identifier.namespace}/${identifier.name}.`;if(outputMode.json){let deleted={name:identifier.name,namespace:identifier.namespace,scheduleId:deletedScheduleId},result=client.nonInteractive?{status:AGENT_STATUS.OK,deleted,message}:{deleted:!0,...deleted};client.stdout.write(`${JSON.stringify(result,null,2)}
261
261
  `)}else output_manager_default.success(message);return 0}var import_chalk37=__toESM(require_source(),1);var SchedulesListExecutionsTelemetryClient=class extends TelemetryClient{trackCliArgumentName(name){name&&this.trackCliArgument({arg:"name",value:this.redactedValue})}trackCliOptionEnvironment(environment){environment&&this.trackCliOption({option:"environment",value:this.redactedValue})}trackCliOptionGitBranch(gitBranch){gitBranch&&this.trackCliOption({option:"git-branch",value:this.redactedValue})}trackCliOptionUser(user){user&&this.trackCliOption({option:"user",value:this.redactedValue})}trackCliOptionNamespace(namespace){namespace&&this.trackCliOption({option:"namespace",value:this.redactedValue})}trackCliOptionLimit(limit){limit!==void 0&&this.trackCliOption({option:"limit",value:String(limit)})}trackCliOptionNext(next){next&&this.trackCliOption({option:"next",value:this.redactedValue})}trackCliOptionSort(sort){sort&&this.trackCliOption({option:"sort",value:sort})}trackCliOptionSince(since){since&&this.trackCliOption({option:"since",value:this.redactedValue})}trackCliOptionUntil(until){until&&this.trackCliOption({option:"until",value:this.redactedValue})}trackCliOptionFrom(from){from!==void 0&&this.trackCliOption({option:"from",value:String(from)})}trackCliOptionTo(to){to!==void 0&&this.trackCliOption({option:"to",value:String(to)})}trackCliOptionExecution(execution){execution&&this.trackCliOption({option:"execution",value:this.redactedValue})}trackCliOptionExecutionId(executionId){executionId&&this.trackCliOption({option:"execution-id",value:this.redactedValue})}trackCliOptionFormat(format2){format2&&this.trackCliOption({option:"format",value:format2})}trackCliFlagLocal(local){local&&this.trackCliFlag("local")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE16="schedules executions list <name>",MAX_EXECUTION_RANGE_MS=30*864e5;function invalidArguments(client,message){return client.nonInteractive?(outputAgentError(client,{status:AGENT_STATUS.ERROR,reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,USAGE16),when:"List schedule executions with valid options"}]}),2):(output_manager_default.fatal(message),2)}function capitalize(value){return`${value.charAt(0).toUpperCase()}${value.slice(1)}`}function formatExecutionStatus(status){return status==="succeeded"?import_chalk37.default.green("Succeeded"):status==="failed"?import_chalk37.default.red("Failed"):import_chalk37.default.gray("Unavailable")}function formatPercentage2(value){return value===null?import_chalk37.default.gray("-"):`${Number((value*100).toFixed(2))}%`}function formatDuration(value){return value===null?import_chalk37.default.gray("-"):value<1e3?`${Math.round(value)}ms`:value<6e4?`${Number((value/1e3).toFixed(1))}s`:`${Number((value/6e4).toFixed(1))}m`}function formatInvocationCount(value){return`${value} invocation${value===1?"":"s"}`}function executionMetrics(metrics){return[formatAlignedLabel("Range",`${formatDate(metrics.from)} \u2013 ${formatDate(metrics.to)}`),formatAlignedLabel("Recorded",formatInvocationCount(metrics.recordedInvocations)),formatAlignedLabel("Failed",formatInvocationCount(metrics.failedInvocations)),formatAlignedLabel("Error Rate",formatPercentage2(metrics.errorRate)),formatAlignedLabel("Avg Duration",formatDuration(metrics.averageDurationMs))].join(`