vercel 60.0.1 → 60.1.3

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 (133) hide show
  1. package/dist/chunks/{add-QBCRXMR3.js → add-5INBQVKB.js} +1 -1
  2. package/dist/chunks/{add-JKIDAH7K.js → add-IEQXYKXU.js} +1 -1
  3. package/dist/chunks/{add-D6D2J6ID.js → add-QJSYPE26.js} +1 -1
  4. package/dist/chunks/{build-PP4JOW2C.js → build-Z7KM3GMP.js} +1 -1
  5. package/dist/chunks/{chunk-42IHNZIE.js → chunk-25LSRUTF.js} +1 -1
  6. package/dist/chunks/{chunk-2ZIWDSUX.js → chunk-3HLNS2I4.js} +1 -1
  7. package/dist/chunks/{chunk-3KQRJYBJ.js → chunk-3MVT26LH.js} +1 -1
  8. package/dist/chunks/{chunk-V6IKQCOT.js → chunk-5U25FWD5.js} +1 -1
  9. package/dist/chunks/{chunk-M6UYGRPW.js → chunk-7CTHRXTG.js} +1 -1
  10. package/dist/chunks/{chunk-YG6LPJFT.js → chunk-7QVVD3WT.js} +1 -1
  11. package/dist/chunks/{chunk-7JAKGIQ6.js → chunk-B6PMTBCU.js} +1 -1
  12. package/dist/chunks/{chunk-GK5C5TE5.js → chunk-BEGUGOL7.js} +1 -1
  13. package/dist/chunks/{chunk-SGU7YIY3.js → chunk-BHVHQKUZ.js} +1 -1
  14. package/dist/chunks/chunk-CN4SCEIP.js +7 -0
  15. package/dist/chunks/{chunk-Q5VLP2LY.js → chunk-D2ZPYXZ6.js} +1 -1
  16. package/dist/chunks/chunk-DKV4IVH5.js +7 -0
  17. package/dist/chunks/{chunk-CD4FLZED.js → chunk-DV4Z4WSD.js} +1 -1
  18. package/dist/chunks/{chunk-77WAICTF.js → chunk-E3EJLJFQ.js} +1 -1
  19. package/dist/chunks/{chunk-WUH5HYCX.js → chunk-FZKWLGRG.js} +1 -1
  20. package/dist/chunks/{chunk-ZWYU5SBC.js → chunk-GL7HB5ZK.js} +1 -1
  21. package/dist/chunks/{chunk-G77TCKNI.js → chunk-HJ3E752K.js} +1 -1
  22. package/dist/chunks/{chunk-LNOX5GIA.js → chunk-IS43O66T.js} +1 -1
  23. package/dist/chunks/{chunk-GZBSABCA.js → chunk-JM3BFUXX.js} +1 -1
  24. package/dist/chunks/{chunk-4S6WFNRF.js → chunk-JZUVWAOK.js} +2 -2
  25. package/dist/chunks/{chunk-FXZ6TVIP.js → chunk-KOOED3TJ.js} +2 -2
  26. package/dist/chunks/chunk-LAYFSD5A.js +7 -0
  27. package/dist/chunks/{chunk-4OKKSZVX.js → chunk-LFQTA3CF.js} +1 -1
  28. package/dist/chunks/{chunk-KTB75ID3.js → chunk-M5Y335WI.js} +1 -1
  29. package/dist/chunks/{chunk-6A6LV2S2.js → chunk-MDZ2JJP3.js} +1 -1
  30. package/dist/chunks/{chunk-IXN5A5WZ.js → chunk-NR367IWV.js} +1 -1
  31. package/dist/chunks/{chunk-JMNAVONO.js → chunk-OCWSKPV4.js} +1 -1
  32. package/dist/chunks/{chunk-YMLWTVT5.js → chunk-QLS2XUFL.js} +1 -1
  33. package/dist/chunks/{chunk-RB3NPNPD.js → chunk-QVAZWF3J.js} +1 -1
  34. package/dist/chunks/{chunk-LLXCLOZO.js → chunk-R7ZRVA7E.js} +2 -2
  35. package/dist/chunks/{chunk-HMB4MZOB.js → chunk-RMYQX7NP.js} +1 -1
  36. package/dist/chunks/{chunk-C6QYMZ3S.js → chunk-TAG2AZXS.js} +1 -1
  37. package/dist/chunks/{chunk-RLCFE3MK.js → chunk-TTKDYUJD.js} +3 -3
  38. package/dist/chunks/{chunk-25MLFUQD.js → chunk-TTMLSKF7.js} +1 -1
  39. package/dist/chunks/{chunk-EOIRBY3F.js → chunk-U6AYMUHX.js} +2 -2
  40. package/dist/chunks/{chunk-URI72S7J.js → chunk-UFZ4W2PA.js} +1 -1
  41. package/dist/chunks/{chunk-VVWALKUM.js → chunk-UO2ECTIU.js} +1 -1
  42. package/dist/chunks/{chunk-STO2JRII.js → chunk-V54UKUGF.js} +1 -1
  43. package/dist/chunks/{chunk-S74YKDNZ.js → chunk-VCB6KNW3.js} +1 -1
  44. package/dist/chunks/chunk-W26LLGQV.js +7 -0
  45. package/dist/chunks/{chunk-2HZGNTI4.js → chunk-WH6M54KF.js} +1 -1
  46. package/dist/chunks/{chunk-TKBORMUF.js → chunk-WKZ6JSGZ.js} +1 -1
  47. package/dist/chunks/chunk-YXBDDHPL.js +9 -0
  48. package/dist/chunks/{chunk-LUVIR6F2.js → chunk-YXTE2H6I.js} +1 -1
  49. package/dist/chunks/{clear-TQFWNYKK.js → clear-AZWSIGIF.js} +1 -1
  50. package/dist/chunks/{compile-vercel-config-YY3CODZP.js → compile-vercel-config-56X2X4Z3.js} +1 -1
  51. package/dist/chunks/{config-2327CWL2.js → config-A53AXEGB.js} +1 -1
  52. package/dist/chunks/{config-VZQLRHHA.js → config-NGVEJABO.js} +1 -1
  53. package/dist/chunks/config-validator.mjs +1 -1
  54. package/dist/chunks/{constants-NCE2LWSS.js → constants-G4UYVLOF.js} +1 -1
  55. package/dist/chunks/{delete-MPLEIGYN.js → delete-LX44AJYC.js} +1 -1
  56. package/dist/chunks/{delete-L45TA4WK.js → delete-TA6UVDSJ.js} +1 -1
  57. package/dist/chunks/{detect-projects-3AFQ2AC5.js → detect-projects-LEVGWMQE.js} +1 -1
  58. package/dist/chunks/{detect-services-7QL6RPKV.js → detect-services-KO3GQ2ZK.js} +1 -1
  59. package/dist/chunks/{disable-WY6N4R7I.js → disable-E7TU3QIX.js} +1 -1
  60. package/dist/chunks/{discard-3VYFSUTH.js → discard-SVF5HBYG.js} +1 -1
  61. package/dist/chunks/{edit-VOZ4IKZI.js → edit-2RLFRAOJ.js} +1 -1
  62. package/dist/chunks/{edit-FCPWK252.js → edit-VCOF42GW.js} +1 -1
  63. package/dist/chunks/{enable-IJ7UEQ3G.js → enable-H6RL2XIW.js} +1 -1
  64. package/dist/chunks/{export-L4D4GCJI.js → export-JW3FFP7N.js} +1 -1
  65. package/dist/chunks/{generate-cert-for-deploy-GSWBCLZX.js → generate-cert-for-deploy-25UQ2477.js} +1 -1
  66. package/dist/chunks/{image-ORGBK7MR.js → image-MHAVMOJB.js} +1 -1
  67. package/dist/chunks/{import-builders-N4XIYEW5.js → import-builders-5UODCCVF.js} +1 -1
  68. package/dist/chunks/{inspect-377IAEIY.js → inspect-43UJHR4K.js} +1 -1
  69. package/dist/chunks/{inspect-V6IX3MOJ.js → inspect-HJF2XFBX.js} +1 -1
  70. package/dist/chunks/{inspect-F4OENUQT.js → inspect-KBJ7F64J.js} +1 -1
  71. package/dist/chunks/{inspect-GTALMRKE.js → inspect-LIGFVYDM.js} +1 -1
  72. package/dist/chunks/{inspect-2EMBEQHZ.js → inspect-VETXDYUD.js} +1 -1
  73. package/dist/chunks/{list-57XWFXDW.js → list-EGYYRTG5.js} +1 -1
  74. package/dist/chunks/{list-GKXJQRX6.js → list-KAGIR3PD.js} +1 -1
  75. package/dist/chunks/{list-5ZBTU324.js → list-NAABRL7N.js} +1 -1
  76. package/dist/chunks/{login-MQXAAFBP.js → login-MZ67I5ZB.js} +1 -1
  77. package/dist/chunks/{login-VJZGWSOW.js → login-X3KPMMEP.js} +1 -1
  78. package/dist/chunks/{logs-ZYELN5F2.js → logs-GHHH2DZA.js} +1 -1
  79. package/dist/chunks/{ls-AAU7AKS7.js → ls-7JFKEA5P.js} +1 -1
  80. package/dist/chunks/{ls-POKSXYZU.js → ls-GOLB26ER.js} +1 -1
  81. package/dist/chunks/{ls-VYEJT272.js → ls-JHJPWFMF.js} +1 -1
  82. package/dist/chunks/{ls-LMHRMNKE.js → ls-MMA5XS6S.js} +1 -1
  83. package/dist/chunks/{ls-NX3EMRFH.js → ls-QXEB3MBD.js} +1 -1
  84. package/dist/chunks/ls-UAQ2QDGG.js +8 -0
  85. package/dist/chunks/{ls-ADATML6R.js → ls-YA4OQL3F.js} +1 -1
  86. package/dist/chunks/{mutate-QMU5QHF3.js → mutate-AJYMI5UB.js} +1 -1
  87. package/dist/chunks/{notifications-OYUKYMU7.js → notifications-DKZMDRHS.js} +1 -1
  88. package/dist/chunks/{open-SNN3JPON.js → open-L5DJKOV4.js} +1 -1
  89. package/dist/chunks/{openapi-G3HACVTQ.js → openapi-7JUPKBWV.js} +1 -1
  90. package/dist/chunks/{permissions-5LSKNTW7.js → permissions-BRSVLT6O.js} +1 -1
  91. package/dist/chunks/{prompt-missing-credentials-KCPCA6L7.js → prompt-missing-credentials-PPUSNDNC.js} +1 -1
  92. package/dist/chunks/{publish-FIHJARRJ.js → publish-PXKC5GXE.js} +1 -1
  93. package/dist/chunks/{pull-2M2BJYAS.js → pull-ZBELCNJJ.js} +1 -1
  94. package/dist/chunks/{purchase-domain-if-available-VKWKDDUD.js → purchase-domain-if-available-BI7AHJMX.js} +1 -1
  95. package/dist/chunks/{push-VN6BPT3B.js → push-G4JYPC5S.js} +1 -1
  96. package/dist/chunks/{query-P35ZTMXV.js → query-JGUDFRPJ.js} +1 -1
  97. package/dist/chunks/{reorder-L4L2V3MZ.js → reorder-VTFBS2DW.js} +1 -1
  98. package/dist/chunks/{reply-XIJ54B7U.js → reply-HXGAMNR6.js} +1 -1
  99. package/dist/chunks/{resolve-W2O6M4GH.js → resolve-IGQSKGRI.js} +1 -1
  100. package/dist/chunks/{restore-OZPJHXTE.js → restore-XKLJMOKB.js} +1 -1
  101. package/dist/chunks/{rm-IM7VAVCG.js → rm-3REOGKTJ.js} +1 -1
  102. package/dist/chunks/{rm-4EUHQZ7U.js → rm-C2OYOAJY.js} +1 -1
  103. package/dist/chunks/rm-DL7NRDLF.js +8 -0
  104. package/dist/chunks/{rm-2YDLXDCB.js → rm-DTF2JN5L.js} +1 -1
  105. package/dist/chunks/{rm-HM7V26WX.js → rm-SQM4TQOV.js} +1 -1
  106. package/dist/chunks/{rule-inspect-75RUPIVB.js → rule-inspect-PQUJOWHR.js} +1 -1
  107. package/dist/chunks/{rules-PKOTTFKG.js → rules-IX7WN6XW.js} +1 -1
  108. package/dist/chunks/{schema-EPUGS3PX.js → schema-R2J4TS6Q.js} +1 -1
  109. package/dist/chunks/{schema-NJC47D5M.js → schema-WFKR7ULE.js} +1 -1
  110. package/dist/chunks/set-763MJP2G.js +7 -0
  111. package/dist/chunks/{setup-and-link-PM46H7GU.js → setup-and-link-57NI3GOM.js} +1 -1
  112. package/dist/chunks/{tags-MBJR7IQW.js → tags-FE4GVQQO.js} +1 -1
  113. package/dist/chunks/{update-TNUYPCS3.js → update-27EMACWZ.js} +1 -1
  114. package/dist/chunks/vlt-builder-importer-QEWS6M2P.js +11 -0
  115. package/dist/commands/build/index.js +1 -1
  116. package/dist/commands/deploy/index.js +4 -4
  117. package/dist/commands/dev/index.js +9 -9
  118. package/dist/commands/env/index.js +1 -1
  119. package/dist/commands/link/index.js +1 -1
  120. package/dist/commands/list/index.js +1 -1
  121. package/dist/commands-bulk.js +93 -79
  122. package/dist/index.js +2 -2
  123. package/dist/version.mjs +1 -1
  124. package/package.json +56 -56
  125. package/dist/chunks/chunk-6PFC3KWQ.js +0 -7
  126. package/dist/chunks/chunk-IRM6H42E.js +0 -7
  127. package/dist/chunks/chunk-M5AV545M.js +0 -7
  128. package/dist/chunks/chunk-UQW7M4LS.js +0 -9
  129. package/dist/chunks/chunk-VHTNAYWA.js +0 -7
  130. package/dist/chunks/ls-BVBCVIRX.js +0 -8
  131. package/dist/chunks/rm-5W45I3TO.js +0 -8
  132. package/dist/chunks/set-XWOUJJ7R.js +0 -7
  133. package/dist/chunks/vlt-builder-importer-6DGKK72W.js +0 -11
@@ -1,8 +0,0 @@
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{EMPTY_PATH_ERROR,ENVIRONMENT_ERROR,RULE_LIMIT,confirmationRequired,formatRuleLine,formatRuleTarget,handleTracingApiError,invalidArguments,isRuleEnvironment,readProjectTracing,resolveConfigScope,ruleNotFound,subcommandArguments,writeConfigJson,writeSamplingRules}from"./chunk-UQW7M4LS.js";import"./chunk-IRM6H42E.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-ZWYU5SBC.js";import"./chunk-GK5C5TE5.js";import"./chunk-WUH5HYCX.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-4OKKSZVX.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-RLCFE3MK.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
- `);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};
@@ -1,7 +0,0 @@
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{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-UQW7M4LS.js";import"./chunk-IRM6H42E.js";import{validateJsonOutput}from"./chunk-D4MW3RDW.js";import"./chunk-ZWYU5SBC.js";import"./chunk-GK5C5TE5.js";import"./chunk-WUH5HYCX.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-4OKKSZVX.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-RLCFE3MK.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};
@@ -1,11 +0,0 @@
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};