vercel 59.25.2 → 59.25.4

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 (112) hide show
  1. package/dist/chunks/{add-S7UAQFMS.js → add-6MVD3GYU.js} +1 -1
  2. package/dist/chunks/{add-SAOTFJXH.js → add-B6SKHP6R.js} +1 -1
  3. package/dist/chunks/{add-I6OSDG7H.js → add-Y34MSA3T.js} +1 -1
  4. package/dist/chunks/{build-BQESAY3M.js → build-PC5EQP2P.js} +1 -1
  5. package/dist/chunks/{chunk-N2KPEDSI.js → chunk-26LYRNMQ.js} +1 -1
  6. package/dist/chunks/{chunk-YQ2O2NIF.js → chunk-3YEWE5MO.js} +1 -1
  7. package/dist/chunks/{chunk-IQZ4RZCG.js → chunk-47BI2WLV.js} +1 -1
  8. package/dist/chunks/{chunk-OILNJ2J2.js → chunk-4M7CX4YK.js} +1 -1
  9. package/dist/chunks/{chunk-DM5B3RL5.js → chunk-4NAYJHLI.js} +1 -1
  10. package/dist/chunks/{chunk-IFLDELCH.js → chunk-643SKD3D.js} +1 -1
  11. package/dist/chunks/{chunk-YSN4YTUY.js → chunk-67ADLWX4.js} +1 -1
  12. package/dist/chunks/{chunk-OBMNRGJT.js → chunk-CDK22NA2.js} +1 -1
  13. package/dist/chunks/{chunk-SIQZNFAH.js → chunk-DUZUOQVB.js} +1 -1
  14. package/dist/chunks/{chunk-AAD7Z4WP.js → chunk-F7UV4YLV.js} +2 -2
  15. package/dist/chunks/{chunk-HFFYL7RZ.js → chunk-FVIQMWYR.js} +1 -1
  16. package/dist/chunks/{chunk-B6RDQTJF.js → chunk-GA65WALP.js} +1 -1
  17. package/dist/chunks/{chunk-TBKDCQGQ.js → chunk-GJZRIDFC.js} +1 -1
  18. package/dist/chunks/{chunk-CJE2WOKF.js → chunk-JUUECT2E.js} +1 -1
  19. package/dist/chunks/{chunk-Q3DGBC7N.js → chunk-M3HTK4NR.js} +1 -1
  20. package/dist/chunks/{chunk-55GJZFU7.js → chunk-MAWP4YIY.js} +1 -1
  21. package/dist/chunks/{chunk-CGUVZZE7.js → chunk-MXCU7XDC.js} +1 -1
  22. package/dist/chunks/{chunk-IHLGZY7E.js → chunk-OICV3NTQ.js} +1 -1
  23. package/dist/chunks/{chunk-5TPZVSS5.js → chunk-P6C5L7KC.js} +3 -3
  24. package/dist/chunks/{chunk-2UN7VRFD.js → chunk-PSPKPQRS.js} +1 -1
  25. package/dist/chunks/{chunk-ADRTPMZX.js → chunk-Q22JZSWD.js} +1 -1
  26. package/dist/chunks/{chunk-5RZGGOSU.js → chunk-Q6O7GA7P.js} +1 -1
  27. package/dist/chunks/{chunk-DRKY4FD3.js → chunk-Q7UVAEN3.js} +1 -1
  28. package/dist/chunks/{chunk-TKIRQYH5.js → chunk-QMO7LJLU.js} +1 -1
  29. package/dist/chunks/{chunk-LFI3BSDC.js → chunk-T6A5HA5U.js} +1 -1
  30. package/dist/chunks/{chunk-PSLDCFUV.js → chunk-TF6R2AK2.js} +1 -1
  31. package/dist/chunks/{chunk-WPM4TQDF.js → chunk-TFG7RTGQ.js} +1 -1
  32. package/dist/chunks/{chunk-J43KZUZH.js → chunk-TGR6YHGO.js} +1 -1
  33. package/dist/chunks/chunk-TOHAMRDX.js +65 -0
  34. package/dist/chunks/{chunk-QHU7NQI5.js → chunk-UFFYFZAM.js} +1 -1
  35. package/dist/chunks/{chunk-MNN5SBQF.js → chunk-UOHEF2JZ.js} +1 -1
  36. package/dist/chunks/{chunk-ZC4LOS3A.js → chunk-UWLDK7LJ.js} +1 -1
  37. package/dist/chunks/{chunk-L6PCGBYI.js → chunk-VTQUMQ2P.js} +1 -1
  38. package/dist/chunks/{chunk-NO52HJTS.js → chunk-XJUAWZU2.js} +2 -2
  39. package/dist/chunks/{chunk-F2YV6NXW.js → chunk-ZY3FVURC.js} +1 -1
  40. package/dist/chunks/{clear-OLTGPRJ5.js → clear-HVRCYR7Y.js} +1 -1
  41. package/dist/chunks/{compile-vercel-config-NKOWFZZG.js → compile-vercel-config-C6HK4CET.js} +1 -1
  42. package/dist/chunks/{config-CZOTS44A.js → config-IGE3P5DW.js} +1 -1
  43. package/dist/chunks/{config-DF4DBQSB.js → config-OWBQ7UMH.js} +1 -1
  44. package/dist/chunks/{delete-5QARUXY7.js → delete-44OXGSMJ.js} +1 -1
  45. package/dist/chunks/{delete-MTZHX4LY.js → delete-7TLDNY3R.js} +1 -1
  46. package/dist/chunks/{detect-projects-BTDKBOU4.js → detect-projects-MUTN7PJG.js} +1 -1
  47. package/dist/chunks/{detect-services-K72FCUKE.js → detect-services-YFGQZSKL.js} +1 -1
  48. package/dist/chunks/{disable-5PFOEZKB.js → disable-CAXQ5K7P.js} +1 -1
  49. package/dist/chunks/{discard-XDKXFPA5.js → discard-VK4JVVUI.js} +1 -1
  50. package/dist/chunks/{edit-WJSAUDWF.js → edit-OUEGHFNI.js} +1 -1
  51. package/dist/chunks/{edit-YHZH2MYH.js → edit-QQYOUSYT.js} +1 -1
  52. package/dist/chunks/{enable-NYSTJC2H.js → enable-J3JXIEXT.js} +1 -1
  53. package/dist/chunks/{export-ZKT6EB42.js → export-V6BO2IPM.js} +1 -1
  54. package/dist/chunks/{generate-cert-for-deploy-UEYQIDXM.js → generate-cert-for-deploy-MICLCYMH.js} +1 -1
  55. package/dist/chunks/{image-2SK4J4O4.js → image-2XS5KWHL.js} +1 -1
  56. package/dist/chunks/{import-builders-UBNV7HJX.js → import-builders-P5BVQ6XV.js} +1 -1
  57. package/dist/chunks/{inspect-M6ZJQF6V.js → inspect-4BJNJTCC.js} +1 -1
  58. package/dist/chunks/{inspect-Y6BQY3VA.js → inspect-FFSXZNJX.js} +1 -1
  59. package/dist/chunks/{inspect-S6AT7LNW.js → inspect-NGKRKYFJ.js} +1 -1
  60. package/dist/chunks/{inspect-MCDQHBHZ.js → inspect-WEURPPD2.js} +1 -1
  61. package/dist/chunks/{inspect-DVBCOD7K.js → inspect-XASVKP45.js} +1 -1
  62. package/dist/chunks/{list-6GSMWNLA.js → list-DMNKMHHX.js} +1 -1
  63. package/dist/chunks/{list-373ZPONO.js → list-P35Q5I52.js} +1 -1
  64. package/dist/chunks/{list-PPFTGAC6.js → list-WZZJBBRG.js} +1 -1
  65. package/dist/chunks/{login-RQ4VYI5A.js → login-5OBK5VD6.js} +1 -1
  66. package/dist/chunks/{logs-TMTBVNCC.js → logs-VRRUJRHE.js} +1 -1
  67. package/dist/chunks/{ls-XYOHKCZP.js → ls-6RY2JL5Y.js} +1 -1
  68. package/dist/chunks/{ls-ZVLXMLGD.js → ls-J6HN2ZV6.js} +1 -1
  69. package/dist/chunks/{ls-X3GP2IRA.js → ls-KDS7XXBR.js} +1 -1
  70. package/dist/chunks/{ls-W7TJY3RN.js → ls-PFPQ4FVQ.js} +1 -1
  71. package/dist/chunks/{ls-MNTDNVC5.js → ls-URHGCRIJ.js} +1 -1
  72. package/dist/chunks/{ls-3BRR7JIX.js → ls-YLEQL3HD.js} +1 -1
  73. package/dist/chunks/{ls-NXJRIM6O.js → ls-ZQ7XIDOR.js} +1 -1
  74. package/dist/chunks/{mutate-QJREWJEH.js → mutate-YBYD3KNW.js} +1 -1
  75. package/dist/chunks/{notifications-D57XNFN2.js → notifications-SB5JHLTX.js} +1 -1
  76. package/dist/chunks/{open-6ERMTBK7.js → open-A6XQS4I6.js} +1 -1
  77. package/dist/chunks/{permissions-KKF5YWC3.js → permissions-C4UXCLJM.js} +1 -1
  78. package/dist/chunks/{publish-W53JMHOA.js → publish-TEH23DH4.js} +1 -1
  79. package/dist/chunks/{pull-JDBB2JO5.js → pull-75Z4DDJE.js} +1 -1
  80. package/dist/chunks/{purchase-domain-if-available-RHJZ6U72.js → purchase-domain-if-available-MMZA2NKN.js} +1 -1
  81. package/dist/chunks/{push-DLROWCQ4.js → push-MVETL2WL.js} +1 -1
  82. package/dist/chunks/{query-R2OKVWWT.js → query-SZHNXTY4.js} +1 -1
  83. package/dist/chunks/{reorder-YD4ENV5L.js → reorder-QLBFRK7S.js} +1 -1
  84. package/dist/chunks/{reply-TCDHRSGG.js → reply-YAQS5FVC.js} +1 -1
  85. package/dist/chunks/{resolve-ZEC456YB.js → resolve-HANE4JO2.js} +1 -1
  86. package/dist/chunks/{restore-RH6YGGXG.js → restore-4JNAT7IE.js} +1 -1
  87. package/dist/chunks/{rm-G6EOLSCZ.js → rm-ARC7WDLH.js} +1 -1
  88. package/dist/chunks/{rm-UGEBIUFV.js → rm-CVCPQXJI.js} +1 -1
  89. package/dist/chunks/{rm-3M5ADIDW.js → rm-JWNSB3XZ.js} +1 -1
  90. package/dist/chunks/{rm-SHCFLXHI.js → rm-LYOMGU2M.js} +1 -1
  91. package/dist/chunks/{rm-PCTYRCOB.js → rm-ZSFTT5HX.js} +1 -1
  92. package/dist/chunks/{rule-inspect-TED7H6MG.js → rule-inspect-3RVLM4SD.js} +1 -1
  93. package/dist/chunks/{rules-DGGA3QHB.js → rules-NYBEYE3C.js} +1 -1
  94. package/dist/chunks/{schema-H6XU3F2A.js → schema-XAUOL37J.js} +1 -1
  95. package/dist/chunks/{schema-22D2HKSJ.js → schema-Y7A5YQQX.js} +1 -1
  96. package/dist/chunks/{set-7UAH7RCL.js → set-CTR3K32H.js} +1 -1
  97. package/dist/chunks/{setup-and-link-NHQPSPPZ.js → setup-and-link-DHQEQNHY.js} +1 -1
  98. package/dist/chunks/{tags-OYKSDCSO.js → tags-Y6NFCY2R.js} +1 -1
  99. package/dist/chunks/{update-OIQ44IMN.js → update-SPG6HQBN.js} +1 -1
  100. package/dist/chunks/vlt-builder-importer-6DGKK72W.js +11 -0
  101. package/dist/commands/build/index.js +1 -1
  102. package/dist/commands/deploy/index.js +4 -4
  103. package/dist/commands/dev/index.js +2 -2
  104. package/dist/commands/env/index.js +1 -1
  105. package/dist/commands/link/index.js +1 -1
  106. package/dist/commands/list/index.js +1 -1
  107. package/dist/commands-bulk.js +9 -9
  108. package/dist/index.js +1 -1
  109. package/dist/version.mjs +1 -1
  110. package/package.json +19 -19
  111. package/dist/chunks/chunk-QRBAWXHP.js +0 -65
  112. package/dist/chunks/vlt-builder-importer-YVCYYRVV.js +0 -11
@@ -4,5 +4,5 @@ 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{imagePath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepositoryAndImageId,resolveVcrScope,validateVcrJsonOutput}from"./chunk-PSLDCFUV.js";import"./chunk-FA6O7FPC.js";import"./chunk-HWWHR7H3.js";import"./chunk-2I64AYHG.js";import"./chunk-QTKJC2O5.js";import"./chunk-D4MW3RDW.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{imageRmSubcommand}from"./chunk-N3N5UHIL.js";import"./chunk-SOJCELXH.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import{buildCommandWithYes,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(imageRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr image rm <repository> <imageId> --project <name-or-id>"),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],imageId=parsedArgs.args[1],project=parsedArgs.flags["--project"],skipConfirmation=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionProject(project),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);let missingArgs=requireVcrRepositoryAndImageId(client,repository,imageId,fr.jsonOutput,"vcr image rm <repository> <imageId>");if(typeof missingArgs=="number")return missingArgs;let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;if(!skipConfirmation&&(outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Deleting an image is permanent. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Delete image ${imageId} from ${repository}? This cannot be undone.`,!1)))return output_manager_default.log("Canceled"),0;let path=imagePath(scope,repository,imageId);output_manager_default.spinner("Deleting image...");try{return await client.fetch(path,{method:"DELETE"}),fr.jsonOutput?client.stdout.write(`${JSON.stringify({imageId,repository,deleted:!0},null,2)}
7
+ import{imagePath}from"./chunk-DFVNL5ML.js";import{emitVcrArgParseError,handleVcrApiError,requireVcrRepositoryAndImageId,resolveVcrScope,validateVcrJsonOutput}from"./chunk-TF6R2AK2.js";import"./chunk-FA6O7FPC.js";import"./chunk-HWWHR7H3.js";import"./chunk-2I64AYHG.js";import"./chunk-QTKJC2O5.js";import"./chunk-D4MW3RDW.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{imageRmSubcommand}from"./chunk-N3N5UHIL.js";import"./chunk-SOJCELXH.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import{buildCommandWithYes,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function rm(client,argv,telemetry){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(imageRmSubcommand.options))}catch(err){return emitVcrArgParseError(client,err,"vcr image rm <repository> <imageId> --project <name-or-id>"),printError(err),1}let fr=validateVcrJsonOutput(client,parsedArgs.flags);if(typeof fr=="number")return fr;let repository=parsedArgs.args[0],imageId=parsedArgs.args[1],project=parsedArgs.flags["--project"],skipConfirmation=!!parsedArgs.flags["--yes"];telemetry.trackCliOptionProject(project),telemetry.trackCliFlagYes(parsedArgs.flags["--yes"]),telemetry.trackCliOptionFormat(parsedArgs.flags["--format"]);let missingArgs=requireVcrRepositoryAndImageId(client,repository,imageId,fr.jsonOutput,"vcr image rm <repository> <imageId>");if(typeof missingArgs=="number")return missingArgs;let scope=await resolveVcrScope(client,{project,jsonOutput:fr.jsonOutput});if(typeof scope=="number")return scope;if(!skipConfirmation&&(outputAgentError(client,{status:"error",reason:AGENT_REASON.CONFIRMATION_REQUIRED,message:"Deleting an image is permanent. Re-run with --yes.",next:[{command:buildCommandWithYes(client.argv)}]},1),!await client.input.confirm(`Delete image ${imageId} from ${repository}? This cannot be undone.`,!1)))return output_manager_default.log("Canceled"),0;let path=imagePath(scope,repository,imageId);output_manager_default.spinner("Deleting image...");try{return await client.fetch(path,{method:"DELETE"}),fr.jsonOutput?client.stdout.write(`${JSON.stringify({imageId,repository,deleted:!0},null,2)}
8
8
  `):output_manager_default.success(`Image ${imageId} deleted`),0}catch(err){if(isAPIError(err))return handleVcrApiError(client,err,fr.jsonOutput);throw err}finally{output_manager_default.stopSpinner()}}export{rm as default};
@@ -4,5 +4,5 @@ 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{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RULE_LIMIT,confirmationRequired,formatRuleLine,formatRuleTarget,handleTracingApiError,invalidArguments,isRuleEnvironment,readProjectTracing,resolveConfigScope,ruleNotFound,subcommandArguments,writeConfigJson,writeSamplingRules}from"./chunk-J43KZUZH.js";import"./chunk-F2YV6NXW.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-HFFYL7RZ.js";import"./chunk-IFLDELCH.js";import"./chunk-T4LZS75P.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{rmSubcommand}from"./chunk-IVWPQYIH.js";import{help}from"./chunk-V6IKQCOT.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import{buildCommandWithGlobalFlags}from"./chunk-KCARCOP5.js";import{quoteArg}from"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigRmTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagDefault(defaultOnly){defaultOnly&&this.trackCliFlag("default")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config rm <environment> [requestPath]";function matches(row,environment,selector){if(row.environment!==environment)return!1;switch(selector.kind){case"exact":return row.requestPath===selector.requestPath;case"default":return row.requestPath===null;case"every":return!0}}function describeSelection(environment,selector){switch(selector.kind){case"exact":return formatRuleTarget(environment,selector.requestPath);case"default":return formatRuleTarget(environment,null);case"every":return environment}}function ruleWord(count){return count===1?"rule":"rules"}function canConfirm(client){return!client.nonInteractive&&!client.isAgent&&client.stdin.isTTY===!0}function commandToRunByHand(client,environment,pathArg,defaultFlag){let template=["traces config rm",environment,...pathArg!==void 0?[quoteArg(pathArg)]:[],...defaultFlag?["--default"]:[]].join(" ");return buildCommandWithGlobalFlags(client.argv,template,void 0,{excludeFlags:["--non-interactive"],preserveProject:!0})}async function rm(client){let telemetry=new TracesConfigRmTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(rmSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0],defaultFlag=!!flags["--default"];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliFlagDefault(flags["--default"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0)return output_manager_default.print(help(rmSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);if(pathArg!==void 0&&defaultFlag)return invalidArguments(client,"`--default` selects the rule that has no path prefix, so it cannot be combined with a path prefix.");if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let selector=pathArg!==void 0?{kind:"exact",requestPath:pathArg}:defaultFlag?{kind:"default"}:{kind:"every"},formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;asJson||output_manager_default.spinner("Fetching trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let removed=entries.filter(entry=>matches(entry.row,environmentArg,selector)).map(entry=>entry.row),kept=entries.filter(entry=>!matches(entry.row,environmentArg,selector));if(removed.length===0)return ruleNotFound(client,`No trace sampling rule matches ${describeSelection(environmentArg,selector)} on ${project.name}.`);let removedLines=removed.map(formatRuleLine);output_manager_default.log(`The following ${removed.length} ${ruleWord(removed.length)} will be removed from ${import_chalk.default.bold(project.name)}:`);for(let line of removedLines)output_manager_default.print(` ${line}
7
+ import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RULE_LIMIT,confirmationRequired,formatRuleLine,formatRuleTarget,handleTracingApiError,invalidArguments,isRuleEnvironment,readProjectTracing,resolveConfigScope,ruleNotFound,subcommandArguments,writeConfigJson,writeSamplingRules}from"./chunk-TGR6YHGO.js";import"./chunk-ZY3FVURC.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-FVIQMWYR.js";import"./chunk-643SKD3D.js";import"./chunk-T4LZS75P.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{rmSubcommand}from"./chunk-IVWPQYIH.js";import{help}from"./chunk-V6IKQCOT.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import{buildCommandWithGlobalFlags}from"./chunk-KCARCOP5.js";import{quoteArg}from"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigRmTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagDefault(defaultOnly){defaultOnly&&this.trackCliFlag("default")}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config rm <environment> [requestPath]";function matches(row,environment,selector){if(row.environment!==environment)return!1;switch(selector.kind){case"exact":return row.requestPath===selector.requestPath;case"default":return row.requestPath===null;case"every":return!0}}function describeSelection(environment,selector){switch(selector.kind){case"exact":return formatRuleTarget(environment,selector.requestPath);case"default":return formatRuleTarget(environment,null);case"every":return environment}}function ruleWord(count){return count===1?"rule":"rules"}function canConfirm(client){return!client.nonInteractive&&!client.isAgent&&client.stdin.isTTY===!0}function commandToRunByHand(client,environment,pathArg,defaultFlag){let template=["traces config rm",environment,...pathArg!==void 0?[quoteArg(pathArg)]:[],...defaultFlag?["--default"]:[]].join(" ");return buildCommandWithGlobalFlags(client.argv,template,void 0,{excludeFlags:["--non-interactive"],preserveProject:!0})}async function rm(client){let telemetry=new TracesConfigRmTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(rmSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0],defaultFlag=!!flags["--default"];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliFlagDefault(flags["--default"]),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0)return output_manager_default.print(help(rmSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);if(pathArg!==void 0&&defaultFlag)return invalidArguments(client,"`--default` selects the rule that has no path prefix, so it cannot be combined with a path prefix.");if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let selector=pathArg!==void 0?{kind:"exact",requestPath:pathArg}:defaultFlag?{kind:"default"}:{kind:"every"},formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;asJson||output_manager_default.spinner("Fetching trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let removed=entries.filter(entry=>matches(entry.row,environmentArg,selector)).map(entry=>entry.row),kept=entries.filter(entry=>!matches(entry.row,environmentArg,selector));if(removed.length===0)return ruleNotFound(client,`No trace sampling rule matches ${describeSelection(environmentArg,selector)} on ${project.name}.`);let removedLines=removed.map(formatRuleLine);output_manager_default.log(`The following ${removed.length} ${ruleWord(removed.length)} will be removed from ${import_chalk.default.bold(project.name)}:`);for(let line of removedLines)output_manager_default.print(` ${line}
8
8
  `);if(!canConfirm(client))return confirmationRequired(client,`Removing ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name} needs a confirmation, and this session cannot prompt for one. Rules at risk: ${removedLines.join(", ")}.`,[{command:commandToRunByHand(client,environmentArg,pathArg,defaultFlag),when:"Run this in a terminal and answer the prompt"}]);if(!await client.input.confirm(`Remove ${removed.length} trace sampling ${ruleWord(removed.length)}?`,!1))return output_manager_default.log("Canceled."),0;asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");try{await writeSamplingRules({client,...scope,tracing,rules:kept.map(entry=>entry.rule)})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let message=`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${project.name}. ${kept.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:removed,envelope:{removed,ruleCount:kept.length,ruleLimit:RULE_LIMIT},message,next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every remaining sampling rule"}]}),0):(output_manager_default.success(`Removed ${removed.length} trace sampling ${ruleWord(removed.length)} from ${import_chalk.default.bold(project.name)}. ${kept.length} of ${RULE_LIMIT} rules.`),0)}export{rm as default};
@@ -4,5 +4,5 @@ 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{printRule}from"./chunk-YG6LPJFT.js";import"./chunk-7PNYOSDU.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,resolveRulesTeam}from"./chunk-LFI3BSDC.js";import"./chunk-IHLGZY7E.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-FA6O7FPC.js";import"./chunk-GHAY4PSD.js";import"./chunk-TBKDCQGQ.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-MBL6TXEJ.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesInspectSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function inspectRule(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesInspectSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules inspect <rule-id>"),printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let ruleId=parsedArgs.args[0];if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing rule ID. Example: ${packageName} alerts rules inspect <rule-id>`);let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule\u2026");try{let rule=await fetchRule(client,scope,ruleId);return format.jsonOutput?client.stdout.write(`${JSON.stringify({rule},null,2)}
7
+ import{printRule}from"./chunk-YG6LPJFT.js";import"./chunk-7PNYOSDU.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,resolveRulesTeam}from"./chunk-T6A5HA5U.js";import"./chunk-OICV3NTQ.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-FA6O7FPC.js";import"./chunk-GHAY4PSD.js";import"./chunk-GJZRIDFC.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-MBL6TXEJ.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesInspectSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function inspectRule(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesInspectSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules inspect <rule-id>"),printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let ruleId=parsedArgs.args[0];if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing rule ID. Example: ${packageName} alerts rules inspect <rule-id>`);let scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule\u2026");try{let rule=await fetchRule(client,scope,ruleId);return format.jsonOutput?client.stdout.write(`${JSON.stringify({rule},null,2)}
8
8
  `):printRule(rule),0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{inspectRule as default};
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{getSubcommand}from"./chunk-ETV3C2CV.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var RULES_CONFIG={ls:["ls","list"],schema:["schema"],add:["add","create"],inspect:["inspect","get"],rm:["rm","remove","delete"],update:["update","patch"],notifications:["notifications"]};async function rules(client,argv){if(argv.length===0||argv[0]?.startsWith("-")){let lsFn=(await import("./ls-W7TJY3RN.js")).default;return lsFn(client,argv)}let{subcommand,args,subcommandOriginal}=getSubcommand(argv,RULES_CONFIG);if(subcommand==null)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:`Unknown "alerts rules" subcommand "${argv[0]}".`,next:[{command:buildCommandWithGlobalFlags(client.argv,"alerts rules --help"),when:"Show valid rules subcommands"}]},1),output_manager_default.error(`Unknown "alerts rules" subcommand "${argv[0]}". Run \`vercel alerts rules --help\`.`),1;switch(subcommand){case"ls":return(await import("./ls-W7TJY3RN.js")).default(client,args);case"schema":return(await import("./schema-H6XU3F2A.js")).default(client,args);case"add":return(await import("./add-I6OSDG7H.js")).default(client,args);case"inspect":return(await import("./rule-inspect-TED7H6MG.js")).default(client,args);case"rm":return(await import("./rm-UGEBIUFV.js")).default(client,args);case"update":return(await import("./update-OIQ44IMN.js")).default(client,args);case"notifications":return(await import("./notifications-D57XNFN2.js")).default(client,args);default:return output_manager_default.error(`Unhandled rules subcommand: ${String(subcommandOriginal)}`),1}}export{rules as default};
7
+ import{getSubcommand}from"./chunk-ETV3C2CV.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var RULES_CONFIG={ls:["ls","list"],schema:["schema"],add:["add","create"],inspect:["inspect","get"],rm:["rm","remove","delete"],update:["update","patch"],notifications:["notifications"]};async function rules(client,argv){if(argv.length===0||argv[0]?.startsWith("-")){let lsFn=(await import("./ls-PFPQ4FVQ.js")).default;return lsFn(client,argv)}let{subcommand,args,subcommandOriginal}=getSubcommand(argv,RULES_CONFIG);if(subcommand==null)return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message:`Unknown "alerts rules" subcommand "${argv[0]}".`,next:[{command:buildCommandWithGlobalFlags(client.argv,"alerts rules --help"),when:"Show valid rules subcommands"}]},1),output_manager_default.error(`Unknown "alerts rules" subcommand "${argv[0]}". Run \`vercel alerts rules --help\`.`),1;switch(subcommand){case"ls":return(await import("./ls-PFPQ4FVQ.js")).default(client,args);case"schema":return(await import("./schema-XAUOL37J.js")).default(client,args);case"add":return(await import("./add-Y34MSA3T.js")).default(client,args);case"inspect":return(await import("./rule-inspect-3RVLM4SD.js")).default(client,args);case"rm":return(await import("./rm-CVCPQXJI.js")).default(client,args);case"update":return(await import("./update-SPG6HQBN.js")).default(client,args);case"notifications":return(await import("./notifications-SB5JHLTX.js")).default(client,args);default:return output_manager_default.error(`Unhandled rules subcommand: ${String(subcommandOriginal)}`),1}}export{rules as default};
@@ -4,7 +4,7 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{handleRulesApiError,outputRulesError,resolveRulesTeam,rulesSchemaPath}from"./chunk-LFI3BSDC.js";import"./chunk-IHLGZY7E.js";import{indent_default}from"./chunk-GZNDA6SV.js";import"./chunk-FA6O7FPC.js";import"./chunk-TBKDCQGQ.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import{formatTable}from"./chunk-UED2PPFP.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesSchemaSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function schema(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesSchemaSubcommand.options))}catch(error){return printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let value=parsedArgs.flags["--type"];if(value!==void 0&&value!=="built-in"&&value!=="custom")return outputRulesError(client,format.jsonOutput,"INVALID_RULE_TYPE",`Invalid rule type "${String(value)}". Expected a supported rule type.`);let type=value,scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule schema\u2026");try{let document=await client.fetch(rulesSchemaPath(scope.teamId,type));if(format.jsonOutput)return client.stdout.write(`${JSON.stringify(document,null,2)}
7
+ import{handleRulesApiError,outputRulesError,resolveRulesTeam,rulesSchemaPath}from"./chunk-T6A5HA5U.js";import"./chunk-OICV3NTQ.js";import{indent_default}from"./chunk-GZNDA6SV.js";import"./chunk-FA6O7FPC.js";import"./chunk-GJZRIDFC.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import{formatTable}from"./chunk-UED2PPFP.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesSchemaSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";async function schema(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesSchemaSubcommand.options))}catch(error){return printError(error),1}let format=validateJsonOutput(parsedArgs.flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let value=parsedArgs.flags["--type"];if(value!==void 0&&value!=="built-in"&&value!=="custom")return outputRulesError(client,format.jsonOutput,"INVALID_RULE_TYPE",`Invalid rule type "${String(value)}". Expected a supported rule type.`);let type=value,scope=await resolveRulesTeam(client,format.jsonOutput);if(typeof scope=="number")return scope;output_manager_default.spinner("Fetching alert rule schema\u2026");try{let document=await client.fetch(rulesSchemaPath(scope.teamId,type));if(format.jsonOutput)return client.stdout.write(`${JSON.stringify(document,null,2)}
8
8
  `),0;if(!type)return printSchemaIndex(document.ruleTypes),0;let ruleSchema=document.ruleTypes.find(item=>item.type===type);return ruleSchema?(printSchema(ruleSchema),0):outputRulesError(client,!1,"INVALID_SCHEMA_RESPONSE",`The API did not return the ${type} alert rule schema.`)}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}function printSchemaIndex(ruleTypes){output_manager_default.log("Alert rule schemas"),output_manager_default.print(`${formatRows(["Type","Description"],ruleTypes.map(item=>[item.type,item.description]))}
9
9
  Run \`${packageName} alerts rules schema --type <type>\` for fields and examples.
10
10
  `)}function printSchema(schema2){output_manager_default.log(`Alert rule schema: ${schema2.type}`),output_manager_default.print(`${schema2.description}
@@ -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{fetchCatalogMetricDetailOrExit,fetchCombinedMetricListOrExit,fetchCustomMetricDetailOrExit,fetchMetricCatalogListOrExit,fetchMetricDetailOrExit,formatErrorJson}from"./chunk-2R6NQXTQ.js";import{indent_default}from"./chunk-GZNDA6SV.js";import{formatTable}from"./chunk-UED2PPFP.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{schemaSubcommand}from"./chunk-WUZD4KBL.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{getScope}from"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import{require_pluralize}from"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_pluralize=__toESM(require_pluralize(),1);async function schema(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(schemaSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err,client),1}let flags=parsedArgs.flags,positionalArgs=parsedArgs.args.slice(1),positionalMetric=positionalArgs[0]==="schema"?positionalArgs[1]:positionalArgs[0],formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput,metric=positionalMetric;telemetry.trackCliArgumentMetricId(metric),telemetry.trackCliOptionFormat(flags["--format"]);let{team}=await getScope(client);if(!team){let message="The metrics schema API request was not authorized. Run `vercel login` to authenticate and `vercel switch` to select a team, then try again.";return jsonOutput?client.stdout.write(formatErrorJson("SCHEMA_UNAUTHORIZED",message)):output_manager_default.error(message),1}let useMetricsV1=!process.env.FF_LEGACY_METRICS;if(metric){let isPlatformMetric=metric.startsWith("vercel."),detail;if(useMetricsV1){let result=await fetchCatalogMetricDetailOrExit(client,team.id,jsonOutput,metric,isPlatformMetric?"system":"custom");if(typeof result=="number")return result;detail=result}else if(isPlatformMetric){let result=await fetchMetricDetailOrExit(client,team.id,metric,jsonOutput);if(typeof result=="number")return result;detail=result}else{let result=await fetchCustomMetricDetailOrExit(client,team.id,jsonOutput,metric);if(typeof result=="number")return result;detail=result}if(detail.length===0){let message=`No metrics match "${metric}". Run \`vercel metrics schema\` to see available metrics.`;return jsonOutput?client.stdout.write(formatErrorJson("METRIC_NOT_FOUND",message)):output_manager_default.error(message),1}if(jsonOutput)return client.stdout.write(JSON.stringify(detail,null,2)),0;output_manager_default.log(`Metric: ${metric}`);let metricsTable=formatMetricsTable(toDisplayMetrics(detail));return metricsTable&&(output_manager_default.print(metricsTable),output_manager_default.print(`
7
+ import{fetchCatalogMetricDetailOrExit,fetchCombinedMetricListOrExit,fetchCustomMetricDetailOrExit,fetchMetricCatalogListOrExit,fetchMetricDetailOrExit,formatErrorJson}from"./chunk-2R6NQXTQ.js";import{indent_default}from"./chunk-GZNDA6SV.js";import{formatTable}from"./chunk-UED2PPFP.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import{schemaSubcommand}from"./chunk-WUZD4KBL.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import{getScope}from"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import{require_pluralize}from"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_pluralize=__toESM(require_pluralize(),1);async function schema(client,telemetry){let parsedArgs,flagsSpecification=getFlagsSpecification(schemaSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err,client),1}let flags=parsedArgs.flags,positionalArgs=parsedArgs.args.slice(1),positionalMetric=positionalArgs[0]==="schema"?positionalArgs[1]:positionalArgs[0],formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let jsonOutput=formatResult.jsonOutput,metric=positionalMetric;telemetry.trackCliArgumentMetricId(metric),telemetry.trackCliOptionFormat(flags["--format"]);let{team}=await getScope(client);if(!team){let message="The metrics schema API request was not authorized. Run `vercel login` to authenticate and `vercel switch` to select a team, then try again.";return jsonOutput?client.stdout.write(formatErrorJson("SCHEMA_UNAUTHORIZED",message)):output_manager_default.error(message),1}let useMetricsV1=!process.env.FF_LEGACY_METRICS;if(metric){let isPlatformMetric=metric.startsWith("vercel."),detail;if(useMetricsV1){let result=await fetchCatalogMetricDetailOrExit(client,team.id,jsonOutput,metric,isPlatformMetric?"system":"custom");if(typeof result=="number")return result;detail=result}else if(isPlatformMetric){let result=await fetchMetricDetailOrExit(client,team.id,metric,jsonOutput);if(typeof result=="number")return result;detail=result}else{let result=await fetchCustomMetricDetailOrExit(client,team.id,jsonOutput,metric);if(typeof result=="number")return result;detail=result}if(detail.length===0){let message=`No metrics match "${metric}". Run \`vercel metrics schema\` to see available metrics.`;return jsonOutput?client.stdout.write(formatErrorJson("METRIC_NOT_FOUND",message)):output_manager_default.error(message),1}if(jsonOutput)return client.stdout.write(JSON.stringify(detail,null,2)),0;output_manager_default.log(`Metric: ${metric}`);let metricsTable=formatMetricsTable(toDisplayMetrics(detail));return metricsTable&&(output_manager_default.print(metricsTable),output_manager_default.print(`
8
8
  `)),0}let metricsOrExitCode=useMetricsV1?await fetchMetricCatalogListOrExit(client,team.id,jsonOutput):await fetchCombinedMetricListOrExit(client,team.id,jsonOutput);return typeof metricsOrExitCode=="number"?metricsOrExitCode:(jsonOutput?client.stdout.write(JSON.stringify(metricsOrExitCode,null,2)):(output_manager_default.log(`${(0,import_pluralize.default)("Metric",metricsOrExitCode.length,!0)} found`),output_manager_default.print(formatMetricListTable(metricsOrExitCode)),output_manager_default.print(`
9
9
  `)),0)}function formatMetricListTable(metrics){return indent_default(formatTable(["Metric","Description"],["l","l"],[{rows:metrics.map(metric=>[metric.id,metric.description])}]),1)}function toDisplayMetrics(metrics){return metrics.map(metric=>{let dimensions=metric.dimensions.map(dimension=>typeof dimension=="string"?dimension:dimension.name);return{id:metric.id,description:metric.description,dimensions,unit:metric.unit,aggregations:metric.aggregations.map(aggregation=>"defaultAggregation"in metric&&aggregation===metric.defaultAggregation?`${aggregation} (default)`:aggregation)}})}function formatMetricsTable(metrics){if(metrics.length===0)return null;let dimensionsByMetric=metrics.map(metric=>metric.dimensions),sharedDimensions=dimensionsByMetric[0].filter(dimension=>dimensionsByMetric.every(metricDimensions=>metricDimensions.includes(dimension))),rows=metrics.map(metric=>{let extraDimensions=metric.dimensions.filter(dimension=>!sharedDimensions.includes(dimension)).map(dimension=>`+${dimension}`),aggregations=metric.aggregations.join(", ");return{metric:metric.id,description:metric.description,unit:metric.unit,aggregations,extraDimensions}}),hasExtraDimensions=rows.some(row=>row.extraDimensions.length>0),tableHeaders=hasExtraDimensions?["Metric","Description","Unit","Aggregations","Dimensions"]:["Metric","Description","Unit","Aggregations"],tableRows=rows.map(row=>hasExtraDimensions?[row.metric,row.description,row.unit,row.aggregations,row.extraDimensions.join(", ")||"\u2014"]:[row.metric,row.description,row.unit,row.aggregations]),sharedDimensionsLine=sharedDimensions.length>0?metrics.length===1?`Dimensions:
10
10
  ${sharedDimensions.join(", ")}`:`Shared dimensions:
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RATE_ERROR,RULE_LIMIT,formatRate,formatRuleTarget,handleTracingApiError,hasSameKey,invalidArguments,isRuleEnvironment,parseSampleRate,readProjectTracing,resolveConfigScope,subcommandArguments,toApiRate,toRule,writeConfigJson,writeSamplingRules}from"./chunk-J43KZUZH.js";import"./chunk-F2YV6NXW.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-HFFYL7RZ.js";import"./chunk-IFLDELCH.js";import"./chunk-T4LZS75P.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{setSubcommand}from"./chunk-IVWPQYIH.js";import{help}from"./chunk-V6IKQCOT.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigSetTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRate(rate){rate&&this.trackCliArgument({arg:"rate",value:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config set <environment> <rate> [requestPath]";async function set(client){let telemetry=new TracesConfigSetTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(setSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,rateArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRate(rateArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0||rateArg===void 0)return output_manager_default.print(help(setSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);let sampleRate=parseSampleRate(rateArg);if(sampleRate===void 0)return invalidArguments(client,`${RATE_ERROR} Received: ${rateArg}`);if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;let rule={environment:environmentArg,requestPath:pathArg??null,sampleRate};asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}let existingIndex=entries.findIndex(entry=>hasSameKey(entry.row,rule)),previous=existingIndex===-1?void 0:entries[existingIndex].row,nextRules=existingIndex===-1?[...entries.map(entry=>entry.rule),toRule(rule)]:entries.map((entry,index)=>index===existingIndex?{...entry.rule,rate:toApiRate(rule.sampleRate)}:entry.rule);if(nextRules.length>RULE_LIMIT)return output_manager_default.stopSpinner(),invalidArguments(client,`A project can have at most ${RULE_LIMIT} trace sampling rules, and ${project.name} already has ${entries.length}. Remove one with ${getCommandName("traces config rm <environment> [requestPath]")} first.`);try{await writeSamplingRules({client,...scope,tracing,rules:nextRules})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let target=formatRuleTarget(rule.environment,rule.requestPath),wasClause=previous?` (was ${formatRate(previous.sampleRate)})`:"",successLine=subject=>`Set ${subject} to ${formatRate(rule.sampleRate)}${wasClause}. ${nextRules.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:rule,envelope:{rule,previousSampleRate:previous?.sampleRate??null,ruleCount:nextRules.length,ruleLimit:RULE_LIMIT},message:successLine(target),next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every sampling rule"}]}),0):(output_manager_default.success(successLine(import_chalk.default.bold(target))),0)}export{set as default};
7
+ import{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RATE_ERROR,RULE_LIMIT,formatRate,formatRuleTarget,handleTracingApiError,hasSameKey,invalidArguments,isRuleEnvironment,parseSampleRate,readProjectTracing,resolveConfigScope,subcommandArguments,toApiRate,toRule,writeConfigJson,writeSamplingRules}from"./chunk-TGR6YHGO.js";import"./chunk-ZY3FVURC.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-FVIQMWYR.js";import"./chunk-643SKD3D.js";import"./chunk-T4LZS75P.js";import{tracesCommand}from"./chunk-M5AV545M.js";import{setSubcommand}from"./chunk-IVWPQYIH.js";import{help}from"./chunk-V6IKQCOT.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import{TelemetryClient}from"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import{getCommandName,getCommandNamePlain}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import{require_source}from"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import{__toESM}from"./chunk-6L236MNA.js";var import_chalk=__toESM(require_source(),1);var TracesConfigSetTelemetryClient=class extends TelemetryClient{trackCliArgumentEnvironment(environment){environment&&this.trackCliArgument({arg:"environment",value:isRuleEnvironment(environment)?environment:this.redactedValue})}trackCliArgumentRate(rate){rate&&this.trackCliArgument({arg:"rate",value:this.redactedValue})}trackCliArgumentRequestPath(requestPath){requestPath&&this.trackCliArgument({arg:"requestPath",value:this.redactedValue})}trackCliFlagJson(json){json&&this.trackCliFlag("json")}};var USAGE="traces config set <environment> <rate> [requestPath]";async function set(client){let telemetry=new TracesConfigSetTelemetryClient({opts:{store:client.telemetryEventStore}}),parsedArgs,flagsSpecification=getFlagsSpecification(setSubcommand.options);try{parsedArgs=parseArguments(client.argv.slice(2),flagsSpecification)}catch(err){return printError(err),1}let{flags}=parsedArgs,[environmentArg,rateArg,...pathArgs]=subcommandArguments(parsedArgs.args),pathArg=pathArgs[0];if(telemetry.trackCliArgumentEnvironment(environmentArg),telemetry.trackCliArgumentRate(rateArg),telemetry.trackCliArgumentRequestPath(pathArg),telemetry.trackCliOptionFormat(flags["--format"]),telemetry.trackCliFlagJson(flags["--json"]),telemetry.trackCliOptionProject(flags["--project"]),environmentArg===void 0||rateArg===void 0)return output_manager_default.print(help(setSubcommand,{parent:{...tracesCommand,name:"traces config"},columns:client.stderr.columns})),2;if(pathArgs.length>1)return output_manager_default.error(`Too many arguments. Usage: ${getCommandName(USAGE)}`),2;if(!isRuleEnvironment(environmentArg))return invalidArguments(client,`${ENVIRONMENT_ERROR} Received: ${environmentArg}`);let sampleRate=parseSampleRate(rateArg);if(sampleRate===void 0)return invalidArguments(client,`${RATE_ERROR} Received: ${rateArg}`);if(pathArg!==void 0&&pathArg.trim()==="")return invalidArguments(client,EMPTY_PATH_ERROR);let formatResult=validateJsonOutput(flags);if(!formatResult.valid)return output_manager_default.error(formatResult.error),1;let asJson=formatResult.jsonOutput||client.nonInteractive,scope=await resolveConfigScope(client,{project:flags["--project"]});if("exitCode"in scope)return scope.exitCode;let rule={environment:environmentArg,requestPath:pathArg??null,sampleRate};asJson||output_manager_default.spinner("Updating trace sampling rules\u2026");let project,tracing,entries;try{({project,tracing,entries}=await readProjectTracing({client,...scope}))}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}let existingIndex=entries.findIndex(entry=>hasSameKey(entry.row,rule)),previous=existingIndex===-1?void 0:entries[existingIndex].row,nextRules=existingIndex===-1?[...entries.map(entry=>entry.rule),toRule(rule)]:entries.map((entry,index)=>index===existingIndex?{...entry.rule,rate:toApiRate(rule.sampleRate)}:entry.rule);if(nextRules.length>RULE_LIMIT)return output_manager_default.stopSpinner(),invalidArguments(client,`A project can have at most ${RULE_LIMIT} trace sampling rules, and ${project.name} already has ${entries.length}. Remove one with ${getCommandName("traces config rm <environment> [requestPath]")} first.`);try{await writeSamplingRules({client,...scope,tracing,rules:nextRules})}catch(err){return output_manager_default.stopSpinner(),handleTracingApiError(client,err)}output_manager_default.stopSpinner();let target=formatRuleTarget(rule.environment,rule.requestPath),wasClause=previous?` (was ${formatRate(previous.sampleRate)})`:"",successLine=subject=>`Set ${subject} to ${formatRate(rule.sampleRate)}${wasClause}. ${nextRules.length} of ${RULE_LIMIT} rules.`;return asJson?(writeConfigJson(client,{project,bare:rule,envelope:{rule,previousSampleRate:previous?.sampleRate??null,ruleCount:nextRules.length,ruleLimit:RULE_LIMIT},message:successLine(target),next:[{command:getCommandNamePlain("traces config ls"),when:"Read back every sampling rule"}]}),0):(output_manager_default.success(successLine(import_chalk.default.bold(target))),0)}export{set as default};
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{applyGitConnectIntent,connectGitRepository,resolveGitConnectIntent,setupAndLink,shouldPromptForRootDirectory}from"./chunk-ADRTPMZX.js";import"./chunk-OBMNRGJT.js";import"./chunk-B6RDQTJF.js";import"./chunk-7RR7MIMT.js";import"./chunk-QHJLRTVY.js";import"./chunk-3B4P7YHO.js";import"./chunk-5RZGGOSU.js";import"./chunk-DM5B3RL5.js";import"./chunk-XQQGQ55A.js";import"./chunk-2H77IRPI.js";import"./chunk-OHDEHZLX.js";import"./chunk-M2W3HKV3.js";import"./chunk-PHW54NU5.js";import"./chunk-YSN4YTUY.js";import"./chunk-QRBAWXHP.js";import"./chunk-IQZ4RZCG.js";import"./chunk-P2O5DOYE.js";import"./chunk-L3JDEHCQ.js";import"./chunk-CJE2WOKF.js";import"./chunk-HFFYL7RZ.js";import"./chunk-H4FTGLWV.js";import"./chunk-ULLWCOYC.js";import"./chunk-N6CNMMSZ.js";import"./chunk-I46LFJJG.js";import"./chunk-QHU7NQI5.js";import"./chunk-IFLDELCH.js";import"./chunk-T4LZS75P.js";import"./chunk-KK4AJES5.js";import"./chunk-KUVMCIR4.js";import"./chunk-SOJCELXH.js";import"./chunk-SXUEGVWB.js";import"./chunk-6BZCSVH6.js";import"./chunk-6TAQ6OWD.js";import"./chunk-R3B67TKQ.js";import"./chunk-C5KVTG2O.js";import"./chunk-6NPXWN5F.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import"./chunk-N5AIKGEO.js";import"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{applyGitConnectIntent,connectGitRepository,setupAndLink as default,resolveGitConnectIntent,shouldPromptForRootDirectory};
7
+ import{applyGitConnectIntent,connectGitRepository,resolveGitConnectIntent,setupAndLink,shouldPromptForRootDirectory}from"./chunk-Q22JZSWD.js";import"./chunk-CDK22NA2.js";import"./chunk-GA65WALP.js";import"./chunk-7RR7MIMT.js";import"./chunk-QHJLRTVY.js";import"./chunk-3B4P7YHO.js";import"./chunk-Q6O7GA7P.js";import"./chunk-4NAYJHLI.js";import"./chunk-XQQGQ55A.js";import"./chunk-2H77IRPI.js";import"./chunk-OHDEHZLX.js";import"./chunk-M2W3HKV3.js";import"./chunk-PHW54NU5.js";import"./chunk-67ADLWX4.js";import"./chunk-TOHAMRDX.js";import"./chunk-47BI2WLV.js";import"./chunk-P2O5DOYE.js";import"./chunk-L3JDEHCQ.js";import"./chunk-JUUECT2E.js";import"./chunk-FVIQMWYR.js";import"./chunk-H4FTGLWV.js";import"./chunk-ULLWCOYC.js";import"./chunk-N6CNMMSZ.js";import"./chunk-I46LFJJG.js";import"./chunk-UFFYFZAM.js";import"./chunk-643SKD3D.js";import"./chunk-T4LZS75P.js";import"./chunk-KK4AJES5.js";import"./chunk-KUVMCIR4.js";import"./chunk-SOJCELXH.js";import"./chunk-SXUEGVWB.js";import"./chunk-6BZCSVH6.js";import"./chunk-6TAQ6OWD.js";import"./chunk-R3B67TKQ.js";import"./chunk-C5KVTG2O.js";import"./chunk-6NPXWN5F.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-A5VLP25I.js";import"./chunk-RCTYVKM5.js";import"./chunk-7T6TL3GQ.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import"./chunk-N5AIKGEO.js";import"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";export{applyGitConnectIntent,connectGitRepository,setupAndLink as default,resolveGitConnectIntent,shouldPromptForRootDirectory};
@@ -4,4 +4,4 @@ import { dirname as __dirname_ } from 'node:path';
4
4
  const require = __createRequire(import.meta.url);
5
5
  const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
- import{getInvalidSubcommand}from"./chunk-TG2RCYTH.js";import{getSubcommand}from"./chunk-ETV3C2CV.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var TAGS_CONFIG={ls:["ls","list"],inspect:["inspect","get"]};async function tags(client,argv,telemetry){let{subcommand,args}=getSubcommand(argv,TAGS_CONFIG);if(subcommand==null){let message=argv.length===0?getInvalidSubcommand(TAGS_CONFIG):`Unknown "vcr tag" subcommand "${argv[0]}".`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr tag --help"),when:"Show valid tag subcommands"}]},1),output_manager_default.error(`${message} Run \`vercel vcr tag --help\`.`),1}switch(subcommand){case"ls":return(await import("./ls-ZVLXMLGD.js")).default(client,args,telemetry);case"inspect":return(await import("./inspect-MCDQHBHZ.js")).default(client,args,telemetry);default:return output_manager_default.error(`Unhandled tags subcommand: ${subcommand}`),1}}export{tags as default};
7
+ import{getInvalidSubcommand}from"./chunk-TG2RCYTH.js";import{getSubcommand}from"./chunk-ETV3C2CV.js";import{AGENT_REASON}from"./chunk-T4LZS75P.js";import{buildCommandWithGlobalFlags,outputAgentError}from"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import"./chunk-JAJW3P42.js";import"./chunk-VOZEB6PD.js";import"./chunk-RINZXCDJ.js";import"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";var TAGS_CONFIG={ls:["ls","list"],inspect:["inspect","get"]};async function tags(client,argv,telemetry){let{subcommand,args}=getSubcommand(argv,TAGS_CONFIG);if(subcommand==null){let message=argv.length===0?getInvalidSubcommand(TAGS_CONFIG):`Unknown "vcr tag" subcommand "${argv[0]}".`;return outputAgentError(client,{status:"error",reason:AGENT_REASON.INVALID_ARGUMENTS,message,next:[{command:buildCommandWithGlobalFlags(client.argv,"vcr tag --help"),when:"Show valid tag subcommands"}]},1),output_manager_default.error(`${message} Run \`vercel vcr tag --help\`.`),1}switch(subcommand){case"ls":return(await import("./ls-J6HN2ZV6.js")).default(client,args,telemetry);case"inspect":return(await import("./inspect-WEURPPD2.js")).default(client,args,telemetry);default:return output_manager_default.error(`Unhandled tags subcommand: ${subcommand}`),1}}export{tags as default};
@@ -4,5 +4,5 @@ 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{printRuleMutationReceipt}from"./chunk-YG6LPJFT.js";import"./chunk-7PNYOSDU.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,readRuleBody,resolveRulesProject,resolveRulesTeam,rulesItemPath}from"./chunk-LFI3BSDC.js";import"./chunk-IHLGZY7E.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-FA6O7FPC.js";import"./chunk-GHAY4PSD.js";import"./chunk-TBKDCQGQ.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-MBL6TXEJ.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesUpdateSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-OILNJ2J2.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-5TPZVSS5.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";function sameScope(left,right){return JSON.stringify(left)===JSON.stringify(right)}function scopeForRule(client,type,scope,flags,jsonOutput){return flags["--project"]?type==="custom"?{type:"project",projectId:scope.projectId}:{type:"include",projectIds:[scope.projectId]}:type==="custom"?outputRulesError(client,jsonOutput,"INVALID_SCOPE","Custom alert rules must target one project. Use --project <name-or-id>."):{type:"all"}}async function resolveUpdateScope(client,flags,jsonOutput,ruleId){return flags["--project"]&&flags["--all"]?outputRulesError(client,jsonOutput,"MUTUAL_EXCLUSIVITY","Cannot specify both --all and --project. Use one or the other."):flags["--project"]?resolveRulesProject(client,flags["--project"],jsonOutput,`alerts rules update ${ruleId}`):resolveRulesTeam(client,jsonOutput)}function writeRuleResult(client,jsonOutput,action,rule){jsonOutput?client.stdout.write(`${JSON.stringify({rule},null,2)}
7
+ import{printRuleMutationReceipt}from"./chunk-YG6LPJFT.js";import"./chunk-7PNYOSDU.js";import{emitRulesArgParseError,fetchRule,handleRulesApiError,outputRulesError,readRuleBody,resolveRulesProject,resolveRulesTeam,rulesItemPath}from"./chunk-T6A5HA5U.js";import"./chunk-OICV3NTQ.js";import"./chunk-6PFC3KWQ.js";import"./chunk-GZNDA6SV.js";import"./chunk-WRILLB46.js";import"./chunk-FA6O7FPC.js";import"./chunk-GHAY4PSD.js";import"./chunk-GJZRIDFC.js";import"./chunk-TRTEXGVN.js";import"./chunk-T3GQAMBJ.js";import"./chunk-MBL6TXEJ.js";import"./chunk-QTKJC2O5.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-P2O5DOYE.js";import"./chunk-T4LZS75P.js";import{rulesUpdateSubcommand}from"./chunk-OAKO6LVS.js";import"./chunk-6TAQ6OWD.js";import"./chunk-WPS6JZF6.js";import"./chunk-4M7CX4YK.js";import"./chunk-JSKGZLE4.js";import"./chunk-RCTYVKM5.js";import"./chunk-GHM7V3GG.js";import"./chunk-5XJNPXQK.js";import{printError}from"./chunk-N5AIKGEO.js";import{parseArguments}from"./chunk-WWB66KP5.js";import"./chunk-MY4MONOH.js";import"./chunk-P6C5L7KC.js";import"./chunk-F2ZWW2IO.js";import"./chunk-B4ATVYZW.js";import"./chunk-PPCFQQSU.js";import"./chunk-BRK4OB4B.js";import"./chunk-OSCCYU74.js";import"./chunk-KCARCOP5.js";import"./chunk-BKV35LVB.js";import{getFlagsSpecification}from"./chunk-JAJW3P42.js";import"./chunk-YMM3VY3J.js";import"./chunk-SM5JI6QM.js";import"./chunk-VOZEB6PD.js";import{isAPIError}from"./chunk-RINZXCDJ.js";import{packageName}from"./chunk-FI772UVH.js";import{output_manager_default}from"./chunk-EWWFNMPZ.js";import"./chunk-QGIQK47P.js";import"./chunk-AVSPFBLM.js";import"./chunk-XCJDGQO7.js";import"./chunk-YPTLSODC.js";import"./chunk-7HL2RPUO.js";import"./chunk-U7KCDTCH.js";import"./chunk-N3ZZ7FHQ.js";import"./chunk-GU6VIFR5.js";import"./chunk-6L236MNA.js";function sameScope(left,right){return JSON.stringify(left)===JSON.stringify(right)}function scopeForRule(client,type,scope,flags,jsonOutput){return flags["--project"]?type==="custom"?{type:"project",projectId:scope.projectId}:{type:"include",projectIds:[scope.projectId]}:type==="custom"?outputRulesError(client,jsonOutput,"INVALID_SCOPE","Custom alert rules must target one project. Use --project <name-or-id>."):{type:"all"}}async function resolveUpdateScope(client,flags,jsonOutput,ruleId){return flags["--project"]&&flags["--all"]?outputRulesError(client,jsonOutput,"MUTUAL_EXCLUSIVITY","Cannot specify both --all and --project. Use one or the other."):flags["--project"]?resolveRulesProject(client,flags["--project"],jsonOutput,`alerts rules update ${ruleId}`):resolveRulesTeam(client,jsonOutput)}function writeRuleResult(client,jsonOutput,action,rule){jsonOutput?client.stdout.write(`${JSON.stringify({rule},null,2)}
8
8
  `):printRuleMutationReceipt(action,rule,client.argv)}async function update(client,argv){let parsedArgs;try{parsedArgs=parseArguments(argv,getFlagsSpecification(rulesUpdateSubcommand.options))}catch(error){return emitRulesArgParseError(client,error,"alerts rules update <rule-id> --project <name-or-id>"),printError(error),1}let flags=parsedArgs.flags,format=validateJsonOutput(flags);if(!format.valid)return outputRulesError(client,!1,"INVALID_ARGUMENTS",format.error);let ruleId=parsedArgs.args[0];if(!ruleId)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS",`Missing rule ID. Example: ${packageName} alerts rules update <rule-id> --body <file>`);let hasScopeFlag=!!(flags["--project"]||flags["--all"]);if(!flags["--body"]&&!hasScopeFlag)return outputRulesError(client,format.jsonOutput,"MISSING_ARGUMENTS","Provide --body <PATH>, --project <name-or-id>, or --all.");let body=flags["--body"]?readRuleBody(client,flags["--body"],format.jsonOutput):{};if(typeof body=="number")return body;if(Object.hasOwn(body,"type")&&body.type!=="built-in"&&body.type!=="custom")return outputRulesError(client,format.jsonOutput,"INVALID_RULE_TYPE","When provided, update body type must be a supported rule type.");if(hasScopeFlag&&Object.hasOwn(body,"ruleScope"))return outputRulesError(client,format.jsonOutput,"SCOPE_CONFLICT","Specify rule scope either in the body or with --project/--all, not both.");let scope=await resolveUpdateScope(client,flags,format.jsonOutput,ruleId);if(typeof scope=="number")return scope;try{let existing;if(hasScopeFlag){output_manager_default.spinner("Fetching alert rule\u2026"),existing=await fetchRule(client,scope,ruleId);let desiredScope=scopeForRule(client,existing.type,scope,flags,format.jsonOutput);if(typeof desiredScope=="number")return desiredScope;if(!sameScope(existing.ruleScope,desiredScope))body.ruleScope=desiredScope;else if(Object.keys(body).length===0)return output_manager_default.stopSpinner(),writeRuleResult(client,format.jsonOutput,"Unchanged",existing),0}output_manager_default.spinner("Updating alert rule\u2026");let response=await client.fetch(rulesItemPath(scope.teamId,ruleId),{method:"PATCH",body});return writeRuleResult(client,format.jsonOutput,"Updated",response.rule),0}catch(error){if(isAPIError(error))return handleRulesApiError(client,error,format.jsonOutput);throw error}finally{output_manager_default.stopSpinner()}}export{update as default};
@@ -0,0 +1,11 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{require_cli_config}from"./chunk-BRK4OB4B.js";import{__toESM}from"./chunk-6L236MNA.js";var import_cli_config=__toESM(require_cli_config(),1);import{createHash,randomBytes}from"node:crypto";import{link,lstat,mkdir,open,readFile,rename,rm,unlink,writeFile}from"node:fs/promises";import{join}from"node:path";import{install}from"@vltpkg/graph";import{PackageInfoClient}from"@vltpkg/package-info";import{PackageJson}from"@vltpkg/package-json";import{PathScurry}from"path-scurry";var LOCK_RETRY_MS=50,LOCK_WAIT_MS=5*60*1e3,LOCK_EMPTY_GRACE_MS=1e3,REMOVE_MAX_RETRIES=5,REMOVE_RETRY_DELAY_MS=100,TARBALL_FETCH_TIMEOUT_MS=2*60*1e3,activeInstallations=new Map;function compareKeys(a,b){return a<b?-1:a>b?1:0}function canonicalize(value){return Array.isArray(value)?value.map(canonicalize):value&&typeof value=="object"?Object.fromEntries(Object.entries(value).sort(([a],[b])=>compareKeys(a,b)).map(([key,child])=>[key,canonicalize(child)])):value}function validateGraph(graph){let{hash,...contents}=graph;if(createHash("sha256").update(JSON.stringify(canonicalize(contents))).digest("hex")!==hash)throw new Error(`The embedded vlt Builder graph for ${graph.name} is invalid.`)}async function wait(ms){await new Promise(resolve=>setTimeout(resolve,ms))}function hasErrorCode(error,code){return error instanceof Error&&"code"in error&&error.code===code}function isProcessAlive(pid){try{return process.kill(pid,0),!0}catch(error){return hasErrorCode(error,"EPERM")}}async function isLockHolderAlive(path){try{let pid=Number.parseInt((await readFile(path,"utf8")).trim(),10);return Number.isInteger(pid)&&pid>0&&isProcessAlive(pid)}catch{return!1}}async function tryStealStaleLock(path,emptyGraceMs){let first;try{first=await lstat(path)}catch{return!0}if(first.size===0&&Date.now()-first.mtimeMs<emptyGraceMs||await isLockHolderAlive(path))return!1;let second;try{second=await lstat(path)}catch{return!0}if(second.dev!==first.dev||second.ino!==first.ino||second.mtimeMs!==first.mtimeMs||second.size!==first.size)return!1;try{return await unlink(path),!0}catch{return!1}}async function acquireLock(path,{waitMs=LOCK_WAIT_MS,emptyGraceMs=LOCK_EMPTY_GRACE_MS}={}){await mkdir(join(path,".."),{recursive:!0});let startedAt=Date.now();for(;;){let tmp=`${path}.${process.pid}-${randomBytes(6).toString("hex")}`;await writeFile(tmp,`${process.pid}
8
+ `,{flag:"wx"});try{return await link(tmp,path),await unlink(tmp).catch(()=>{}),await open(path,"r")}catch(error){if(await unlink(tmp).catch(()=>{}),!hasErrorCode(error,"EEXIST"))throw error;if(await tryStealStaleLock(path,emptyGraceMs))continue;if(Date.now()-startedAt>waitMs)throw new Error(`Timed out waiting for vlt Builder lock "${path}".`);await wait(LOCK_RETRY_MS)}}}async function removeInstallation(path){await rm(path,{recursive:!0,force:!0,maxRetries:REMOVE_MAX_RETRIES,retryDelay:REMOVE_RETRY_DELAY_MS})}async function installationComplete(root,graph){try{return(await readFile(join(root,".vercel-builder-graph"),"utf8")).trim()===graph.hash}catch{return!1}}var EmbeddedPackageInfoClient=class extends PackageInfoClient{constructor(options,fetchTimeoutMs=TARBALL_FETCH_TIMEOUT_MS){super(options);this.fetchTimeoutMs=fetchTimeoutMs}async extract(...args){let[rawSpec,target,rawOptions={}]=args,spec=rawSpec,options=rawOptions,type=spec.final?.type;if((type==="registry"||type==="remote")&&options.resolved){if(!options.integrity)throw new Error(`Missing integrity for Builder dependency ${options.resolved}`);let response;try{response=await fetch(options.resolved,{signal:AbortSignal.timeout(this.fetchTimeoutMs)})}catch(error){throw error instanceof Error&&(error.name==="TimeoutError"||error.name==="AbortError")?new Error(`Timed out downloading Builder dependency ${options.resolved}`):error}if(!response.ok)throw new Error(`Could not download Builder dependency ${options.resolved}: ${response.status}`);let bytes=Buffer.from(await response.arrayBuffer()),integrity=`sha512-${createHash("sha512").update(new Uint8Array(bytes)).digest("base64")}`;if(options.integrity!==integrity)throw new Error(`Integrity check failed for Builder dependency ${options.resolved}`);return await(await PackageInfoClient.prototype.getTarPool.call(this)).unpack(new Uint8Array(bytes),target),{resolved:options.resolved,integrity,spec:rawSpec}}return super.extract(...args)}};async function reifyGraph(root,graph,packageInfoFactory){let packageJson=new PackageJson,packageInfo=packageInfoFactory({...graph.lockfile.options,projectRoot:root,packageJson});await install({...graph.lockfile.options,projectRoot:root,packageJson,packageInfo,scurry:new PathScurry(root),allowScripts:":not(*)",frozenLockfile:!0,cleanInstall:!0})}async function ensureGraph(graph,cacheRoot,packageInfoFactory){validateGraph(graph);let root=join(cacheRoot,graph.hash),active=activeInstallations.get(root);if(active)return active;let installation=(async()=>{if(await installationComplete(root,graph))return root;let lockPath=join(cacheRoot,"locks",`${graph.hash}.lock`),lock=await acquireLock(lockPath),temporaryRoot;try{return await installationComplete(root,graph)||(await removeInstallation(root),temporaryRoot=process.platform==="win32"?root:join(cacheRoot,"tmp",`${graph.hash}-${process.pid}-${randomBytes(6).toString("hex")}`),await mkdir(temporaryRoot,{recursive:!0}),await writeFile(join(temporaryRoot,"package.json"),`${JSON.stringify(graph.manifest,null,2)}
9
+ `),await writeFile(join(temporaryRoot,"vlt-lock.json"),`${JSON.stringify(graph.lockfile,null,2)}
10
+ `),await reifyGraph(temporaryRoot,graph,packageInfoFactory),await writeFile(join(temporaryRoot,".vercel-builder-graph"),`${graph.hash}
11
+ `),temporaryRoot!==root&&(await mkdir(join(root,".."),{recursive:!0}),await rename(temporaryRoot,root)),temporaryRoot=void 0),root}finally{await lock.close(),await unlink(lockPath).catch(()=>{}),temporaryRoot&&await removeInstallation(temporaryRoot)}})();activeInstallations.set(root,installation);let clearInstallation=()=>{activeInstallations.get(root)===installation&&activeInstallations.delete(root)};return installation.then(clearInstallation,clearInstallation),installation}function createVltBuilderImporter({graphs,loadGraphs=async()=>graphs,require:require2,cacheRoot=join((0,import_cli_config.getCachePath)(),"builders-vlt"),packageInfoFactory=options=>new EmbeddedPackageInfoClient(options),debug=()=>{}}){return async function(specs){if(specs.size===0)return new Map;let loadedGraphs=await loadGraphs();if(loadedGraphs.schemaVersion!==1)throw new Error("The embedded vlt Builder graph index is invalid.");let builders=new Map;return await Promise.all([...specs].map(async([spec,name])=>{let graph=loadedGraphs.builders[name];if(!graph)throw new Error(`No pinned vlt graph exists for ${name}.`);let root=await ensureGraph(graph,cacheRoot,packageInfoFactory),pkgPath=require2.resolve(`${name}/package.json`,{paths:[root]}),pkg=JSON.parse(await readFile(pkgPath,"utf8"));if(pkg.name!==name||pkg.version!==graph.version)throw new Error(`The vlt Builder graph materialized ${String(pkg.name)}@${String(pkg.version)} instead of ${name}@${graph.version}.`);let path=require2.resolve(name,{paths:[root]});debug(`Resolved ${name}@${graph.version} with vlt from ${root}`),builders.set(spec,{path,pkgPath,pkg:{...pkg,name},builder:require2(path),dynamicallyInstalled:!0})})),builders}}export{EmbeddedPackageInfoClient,TARBALL_FETCH_TIMEOUT_MS,acquireLock,createVltBuilderImporter};