vercel 54.14.2 → 54.14.5

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 (52) hide show
  1. package/dist/chunks/{add-PKT6ULVJ.js → add-5Z2AAQMM.js} +4 -4
  2. package/dist/chunks/{chunk-G3NXHUFT.js → chunk-25XEQWUS.js} +1 -1
  3. package/dist/chunks/{chunk-JISJDGJF.js → chunk-2GOVUIMY.js} +1 -1
  4. package/dist/chunks/{chunk-Z3X747P6.js → chunk-2N7NBUQX.js} +1 -1
  5. package/dist/chunks/{chunk-IPWWE7PB.js → chunk-45S2Y3TD.js} +1 -1
  6. package/dist/chunks/{chunk-2XEEOHHH.js → chunk-6ABEFMPX.js} +1 -1
  7. package/dist/chunks/{chunk-4BFK3C7V.js → chunk-6H2YVMJJ.js} +1 -1
  8. package/dist/chunks/{chunk-O7RJHL34.js → chunk-6R3YPU76.js} +203 -6
  9. package/dist/chunks/chunk-BRQ6PX3U.js +593 -0
  10. package/dist/chunks/{chunk-3BR246Y6.js → chunk-EBIX223X.js} +2 -11
  11. package/dist/chunks/{chunk-2HN6DLIY.js → chunk-ETVOM3IR.js} +1 -1
  12. package/dist/chunks/{chunk-372SHB43.js → chunk-IXTKPQYW.js} +3 -3
  13. package/dist/chunks/{chunk-FEYVO2US.js → chunk-JLLN34XF.js} +90 -32
  14. package/dist/chunks/{chunk-O4V7CMVO.js → chunk-KSSRTKN4.js} +7 -5
  15. package/dist/chunks/{chunk-2ZSXQQXI.js → chunk-MOVGWTDQ.js} +8 -18
  16. package/dist/chunks/{chunk-SDZ5ICZL.js → chunk-PSG6ZBGQ.js} +1 -1
  17. package/dist/chunks/{chunk-FLW73SZ3.js → chunk-PXJA4KXE.js} +2 -2
  18. package/dist/chunks/{chunk-YLGMXYFG.js → chunk-R5MIXAJF.js} +2 -2
  19. package/dist/chunks/{chunk-J7BMPRCU.js → chunk-X23JL3ZL.js} +1 -1
  20. package/dist/chunks/{chunk-ILJH44MK.js → chunk-YE3C5CUX.js} +1 -1
  21. package/dist/chunks/{chunk-LQR3CHMH.js → chunk-YIAUEFUY.js} +211 -787
  22. package/dist/chunks/{chunk-OHIZ4SVU.js → chunk-ZR4XADWC.js} +15 -3
  23. package/dist/chunks/{compile-vercel-config-3LV7J3IZ.js → compile-vercel-config-UMUHH55E.js} +1 -1
  24. package/dist/chunks/{delete-GFW6Y6TZ.js → delete-NO2U3UGV.js} +2 -2
  25. package/dist/chunks/{disable-PGRAS2ZL.js → disable-AGDDHVKZ.js} +2 -2
  26. package/dist/chunks/{discard-S6N5Q4G5.js → discard-Q5HML52L.js} +2 -2
  27. package/dist/chunks/{edit-TICKX4ZV.js → edit-HSHJAKHM.js} +3 -3
  28. package/dist/chunks/{enable-L3BYWN6S.js → enable-YMJAXOGA.js} +2 -2
  29. package/dist/chunks/{export-NXS33U5T.js → export-RCACOTPE.js} +2 -2
  30. package/dist/chunks/{inspect-OOI5JN3Y.js → inspect-OJHOQHD2.js} +3 -3
  31. package/dist/chunks/{list-77WL6463.js → list-LLUDMAWA.js} +3 -3
  32. package/dist/chunks/{list-6EHRL2D4.js → list-R7V2P6TM.js} +2 -2
  33. package/dist/chunks/{ls-PBSOEXFG.js → ls-KAI6V7SU.js} +4 -4
  34. package/dist/chunks/{publish-CU2THVYW.js → publish-KCYVRDAT.js} +2 -2
  35. package/dist/chunks/{query-HEATRYAK.js → query-MBJLAQRX.js} +3 -3
  36. package/dist/chunks/{reorder-IQVKSM3H.js → reorder-C5BJWFJM.js} +2 -2
  37. package/dist/chunks/{restore-RDEOBGAS.js → restore-F63NO7XP.js} +2 -2
  38. package/dist/chunks/{rm-MCSGTU4J.js → rm-HT7YO3JX.js} +4 -4
  39. package/dist/chunks/{rule-inspect-3YK2XSL3.js → rule-inspect-IHEUI5JT.js} +4 -4
  40. package/dist/chunks/{rules-F4MRDDHM.js → rules-ZUBTVSNC.js} +6 -6
  41. package/dist/chunks/{schema-65C5EBJ7.js → schema-VAQSZY2H.js} +3 -3
  42. package/dist/chunks/{update-XB4WSRGY.js → update-BS5FBLIP.js} +4 -4
  43. package/dist/commands/build/index.js +53 -29
  44. package/dist/commands/deploy/index.js +12 -11
  45. package/dist/commands/dev/index.js +69 -22
  46. package/dist/commands/env/index.js +8 -6
  47. package/dist/commands/link/index.js +8 -15
  48. package/dist/commands/list/index.js +3 -3
  49. package/dist/commands-bulk.js +621 -101
  50. package/dist/index.js +9 -9
  51. package/dist/version.mjs +1 -1
  52. package/package.json +15 -15
@@ -31,7 +31,7 @@ import {
31
31
  runInteractiveEditLoop,
32
32
  stripQuotes,
33
33
  validateActionFlags
34
- } from "./chunks/chunk-Z3X747P6.js";
34
+ } from "./chunks/chunk-2N7NBUQX.js";
35
35
  import {
36
36
  getRouteVersions
37
37
  } from "./chunks/chunk-AHU7WNL2.js";
@@ -48,7 +48,7 @@ import {
48
48
  parsePosition,
49
49
  parseSubcommandArgs,
50
50
  withGlobalFlags
51
- } from "./chunks/chunk-J7BMPRCU.js";
51
+ } from "./chunks/chunk-X23JL3ZL.js";
52
52
  import {
53
53
  normalizeRepeatableStringFilters
54
54
  } from "./chunks/chunk-D7MGZH35.js";
@@ -64,11 +64,11 @@ import {
64
64
  resolveOpenApiTagForTeamsCli,
65
65
  setAutoUpdate,
66
66
  tryOpenApiFallback
67
- } from "./chunks/chunk-FEYVO2US.js";
67
+ } from "./chunks/chunk-JLLN34XF.js";
68
68
  import {
69
69
  getUpdateCommand,
70
70
  isGlobal
71
- } from "./chunks/chunk-IPWWE7PB.js";
71
+ } from "./chunks/chunk-45S2Y3TD.js";
72
72
  import {
73
73
  Now,
74
74
  collectContactInformation,
@@ -89,14 +89,14 @@ import {
89
89
  require_format,
90
90
  require_jsonlines,
91
91
  setupDomain
92
- } from "./chunks/chunk-2ZSXQQXI.js";
92
+ } from "./chunks/chunk-MOVGWTDQ.js";
93
93
  import {
94
94
  getGlobalPathConfig,
95
95
  persistAuthConfig,
96
96
  readLocalConfig,
97
97
  sleep,
98
98
  writeToConfigFile
99
- } from "./chunks/chunk-OHIZ4SVU.js";
99
+ } from "./chunks/chunk-ZR4XADWC.js";
100
100
  import "./chunks/chunk-V5P25P7F.js";
101
101
  import {
102
102
  ellipsis,
@@ -124,7 +124,7 @@ import {
124
124
  import {
125
125
  formatEnvironment,
126
126
  validateLsArgs
127
- } from "./chunks/chunk-2HN6DLIY.js";
127
+ } from "./chunks/chunk-ETVOM3IR.js";
128
128
  import {
129
129
  validateJsonOutput
130
130
  } from "./chunks/chunk-XPKWKPWA.js";
@@ -286,6 +286,7 @@ import {
286
286
  overrideSubcommand,
287
287
  overviewSubcommand,
288
288
  prepareSubcommand,
289
+ presignSubcommand,
289
290
  priceSubcommand,
290
291
  proSubcommand,
291
292
  projectCommand,
@@ -346,6 +347,7 @@ import {
346
347
  searchSubcommand,
347
348
  setSubcommand,
348
349
  setSubcommand2,
350
+ signedTokenSubcommand,
349
351
  skillsCommand,
350
352
  speedInsightsSubcommand,
351
353
  splitSubcommand,
@@ -383,11 +385,11 @@ import {
383
385
  webAnalyticsSubcommand,
384
386
  webhooksCommand,
385
387
  whoamiCommand
386
- } from "./chunks/chunk-O7RJHL34.js";
388
+ } from "./chunks/chunk-6R3YPU76.js";
387
389
  import {
388
390
  metricsCommand,
389
391
  schemaSubcommand
390
- } from "./chunks/chunk-ILJH44MK.js";
392
+ } from "./chunks/chunk-YE3C5CUX.js";
391
393
  import {
392
394
  addSubcommand as addSubcommand9,
393
395
  deleteSubcommand,
@@ -425,11 +427,15 @@ import {
425
427
  import "./chunks/chunk-IJJOI63T.js";
426
428
  import {
427
429
  main
428
- } from "./chunks/chunk-O4V7CMVO.js";
429
- import "./chunks/chunk-2XEEOHHH.js";
430
+ } from "./chunks/chunk-KSSRTKN4.js";
431
+ import "./chunks/chunk-IB5L4LKZ.js";
432
+ import "./chunks/chunk-6ABEFMPX.js";
430
433
  import {
431
434
  require_execa
432
435
  } from "./chunks/chunk-YI3JV6GM.js";
436
+ import {
437
+ autoInstallVercelPlugin
438
+ } from "./chunks/chunk-BRQ6PX3U.js";
433
439
  import {
434
440
  stamp_default
435
441
  } from "./chunks/chunk-64IF634X.js";
@@ -438,26 +444,25 @@ import {
438
444
  } from "./chunks/chunk-VXYGCOKL.js";
439
445
  import {
440
446
  ensureLink
441
- } from "./chunks/chunk-YLGMXYFG.js";
442
- import "./chunks/chunk-372SHB43.js";
447
+ } from "./chunks/chunk-R5MIXAJF.js";
448
+ import "./chunks/chunk-IXTKPQYW.js";
443
449
  import {
444
450
  AGENT_ACTION,
445
451
  AGENT_REASON,
446
452
  AGENT_STATUS
447
453
  } from "./chunks/chunk-LJ5WXXG6.js";
448
- import "./chunks/chunk-4BFK3C7V.js";
449
- import "./chunks/chunk-SDZ5ICZL.js";
454
+ import "./chunks/chunk-6H2YVMJJ.js";
455
+ import "./chunks/chunk-PSG6ZBGQ.js";
450
456
  import {
451
457
  detectExplicitScope,
452
458
  getScope
453
- } from "./chunks/chunk-G3NXHUFT.js";
459
+ } from "./chunks/chunk-25XEQWUS.js";
454
460
  import {
455
461
  help
456
462
  } from "./chunks/chunk-AWD3IGXU.js";
457
463
  import {
458
464
  STANDARD_ENVIRONMENTS,
459
465
  VERCEL_CONFIG_EXTENSIONS,
460
- autoInstallVercelPlugin,
461
466
  checkExistsAndConnect,
462
467
  createEnvObject,
463
468
  createGitMeta,
@@ -500,7 +505,7 @@ import {
500
505
  selectAndParseRemoteUrl,
501
506
  selectOrg,
502
507
  ua_default
503
- } from "./chunks/chunk-LQR3CHMH.js";
508
+ } from "./chunks/chunk-YIAUEFUY.js";
504
509
  import {
505
510
  TelemetryClient
506
511
  } from "./chunks/chunk-HIYWSGI7.js";
@@ -881,7 +886,7 @@ async function activity(client) {
881
886
  return 0;
882
887
  }
883
888
  telemetry2.trackCliSubcommandLs(subcommandOriginal);
884
- const listFn = (await import("./chunks/list-6EHRL2D4.js")).default;
889
+ const listFn = (await import("./chunks/list-R7V2P6TM.js")).default;
885
890
  return listFn(client, telemetry2);
886
891
  }
887
892
  }
@@ -1984,17 +1989,17 @@ async function alerts(client) {
1984
1989
  switch (subcommand) {
1985
1990
  case "inspect": {
1986
1991
  telemetry2.trackCliSubcommandInspect(subcommandOriginal);
1987
- const inspectFn = (await import("./chunks/inspect-OOI5JN3Y.js")).default;
1992
+ const inspectFn = (await import("./chunks/inspect-OJHOQHD2.js")).default;
1988
1993
  return inspectFn(client, args);
1989
1994
  }
1990
1995
  case "rules": {
1991
1996
  telemetry2.trackCliSubcommandRules(args[0] ?? "ls");
1992
- const rulesFn = (await import("./chunks/rules-F4MRDDHM.js")).default;
1997
+ const rulesFn = (await import("./chunks/rules-ZUBTVSNC.js")).default;
1993
1998
  return rulesFn(client, args);
1994
1999
  }
1995
2000
  default: {
1996
2001
  telemetry2.trackCliSubcommandLs(subcommandOriginal);
1997
- const listFn = (await import("./chunks/list-77WL6463.js")).default;
2002
+ const listFn = (await import("./chunks/list-LLUDMAWA.js")).default;
1998
2003
  return listFn(client, telemetry2);
1999
2004
  }
2000
2005
  }
@@ -3507,10 +3512,10 @@ async function list4(client, argv, auth) {
3507
3512
  const tablePrint = table(
3508
3513
  [
3509
3514
  headers.map((header) => import_chalk16.default.dim(header)),
3510
- ...list16.blobs.map((blob7) => {
3511
- urls.push(blob7.url);
3512
- const uploadedAt = (0, import_ms5.default)(Date.now() - new Date(blob7.uploadedAt).getTime());
3513
- return [uploadedAt, String(blob7.size), blob7.pathname, blob7.url];
3515
+ ...list16.blobs.map((blob9) => {
3516
+ urls.push(blob9.url);
3517
+ const uploadedAt = (0, import_ms5.default)(Date.now() - new Date(blob9.uploadedAt).getTime());
3518
+ return [uploadedAt, String(blob9.size), blob9.pathname, blob9.url];
3514
3519
  })
3515
3520
  ],
3516
3521
  { hsep: 5 }
@@ -3534,6 +3539,170 @@ ${tablePrint}
3534
3539
  return 0;
3535
3540
  }
3536
3541
 
3542
+ // src/util/telemetry/commands/blob/presign.ts
3543
+ var BlobPresignTelemetryClient = class extends TelemetryClient {
3544
+ trackCliArgumentPathname(value) {
3545
+ if (value) {
3546
+ this.trackCliArgument({
3547
+ arg: "pathname",
3548
+ value: this.redactedValue
3549
+ });
3550
+ }
3551
+ }
3552
+ trackCliOptionAccess(value) {
3553
+ if (value) {
3554
+ this.trackCliOption({
3555
+ option: "access",
3556
+ value
3557
+ });
3558
+ }
3559
+ }
3560
+ trackCliOptionOperation(value) {
3561
+ if (value) {
3562
+ this.trackCliOption({
3563
+ option: "operation",
3564
+ value
3565
+ });
3566
+ }
3567
+ }
3568
+ trackCliOptionDelegationToken(value) {
3569
+ if (value) {
3570
+ this.trackCliOption({
3571
+ option: "delegation-token",
3572
+ value: this.redactedValue
3573
+ });
3574
+ }
3575
+ }
3576
+ trackCliOptionClientSigningToken(value) {
3577
+ if (value) {
3578
+ this.trackCliOption({
3579
+ option: "client-signing-token",
3580
+ value: this.redactedValue
3581
+ });
3582
+ }
3583
+ }
3584
+ trackCliOptionValidUntil(value) {
3585
+ if (value !== void 0) {
3586
+ this.trackCliOption({
3587
+ option: "valid-until",
3588
+ value: String(value)
3589
+ });
3590
+ }
3591
+ }
3592
+ trackCliOptionValidFor(value) {
3593
+ if (value) {
3594
+ this.trackCliOption({
3595
+ option: "valid-for",
3596
+ value
3597
+ });
3598
+ }
3599
+ }
3600
+ trackCliOptionIfMatch(value) {
3601
+ if (value) {
3602
+ this.trackCliOption({
3603
+ option: "if-match",
3604
+ value: this.redactedValue
3605
+ });
3606
+ }
3607
+ }
3608
+ trackCliFlagAllowOverwrite(value) {
3609
+ if (value) {
3610
+ this.trackCliFlag("allow-overwrite");
3611
+ }
3612
+ }
3613
+ trackCliFlagAddRandomSuffix(value) {
3614
+ if (value) {
3615
+ this.trackCliFlag("add-random-suffix");
3616
+ }
3617
+ }
3618
+ trackCliOptionCacheControlMaxAge(value) {
3619
+ if (value !== void 0) {
3620
+ this.trackCliOption({
3621
+ option: "cache-control-max-age",
3622
+ value: String(value)
3623
+ });
3624
+ }
3625
+ }
3626
+ trackCliOptionAllowedContentType(value) {
3627
+ if (value && value.length > 0) {
3628
+ this.trackCliOption({
3629
+ option: "allowed-content-type",
3630
+ value: value.join(",")
3631
+ });
3632
+ }
3633
+ }
3634
+ trackCliOptionMaximumSizeInBytes(value) {
3635
+ if (value !== void 0) {
3636
+ this.trackCliOption({
3637
+ option: "maximum-size-in-bytes",
3638
+ value: String(value)
3639
+ });
3640
+ }
3641
+ }
3642
+ trackCliFlagJson(value) {
3643
+ if (value) {
3644
+ this.trackCliFlag("json");
3645
+ }
3646
+ }
3647
+ };
3648
+
3649
+ // src/util/telemetry/commands/blob/signed-token.ts
3650
+ var BlobSignedTokenTelemetryClient = class extends TelemetryClient {
3651
+ trackCliOptionPathname(value) {
3652
+ if (value) {
3653
+ this.trackCliOption({
3654
+ option: "pathname",
3655
+ value: this.redactedValue
3656
+ });
3657
+ }
3658
+ }
3659
+ trackCliOptionOperation(value) {
3660
+ if (value && value.length > 0) {
3661
+ this.trackCliOption({
3662
+ option: "operation",
3663
+ value: value.join(",")
3664
+ });
3665
+ }
3666
+ }
3667
+ trackCliOptionValidUntil(value) {
3668
+ if (value !== void 0) {
3669
+ this.trackCliOption({
3670
+ option: "valid-until",
3671
+ value: String(value)
3672
+ });
3673
+ }
3674
+ }
3675
+ trackCliOptionValidFor(value) {
3676
+ if (value) {
3677
+ this.trackCliOption({
3678
+ option: "valid-for",
3679
+ value
3680
+ });
3681
+ }
3682
+ }
3683
+ trackCliOptionAllowedContentType(value) {
3684
+ if (value && value.length > 0) {
3685
+ this.trackCliOption({
3686
+ option: "allowed-content-type",
3687
+ value: value.join(",")
3688
+ });
3689
+ }
3690
+ }
3691
+ trackCliOptionMaximumSizeInBytes(value) {
3692
+ if (value !== void 0) {
3693
+ this.trackCliOption({
3694
+ option: "maximum-size-in-bytes",
3695
+ value: String(value)
3696
+ });
3697
+ }
3698
+ }
3699
+ trackCliFlagJson(value) {
3700
+ if (value) {
3701
+ this.trackCliFlag("json");
3702
+ }
3703
+ }
3704
+ };
3705
+
3537
3706
  // src/util/telemetry/commands/blob/index.ts
3538
3707
  var BlobTelemetryClient = class extends TelemetryClient {
3539
3708
  trackCliSubcommandList(actual) {
@@ -3566,6 +3735,18 @@ var BlobTelemetryClient = class extends TelemetryClient {
3566
3735
  value: actual
3567
3736
  });
3568
3737
  }
3738
+ trackCliSubcommandSignedToken(actual) {
3739
+ this.trackCliSubcommand({
3740
+ subcommand: "signed-token",
3741
+ value: actual
3742
+ });
3743
+ }
3744
+ trackCliSubcommandPresign(actual) {
3745
+ this.trackCliSubcommand({
3746
+ subcommand: "presign",
3747
+ value: actual
3748
+ });
3749
+ }
3569
3750
  trackCliSubcommandCreateStore(actual) {
3570
3751
  this.trackCliSubcommand({
3571
3752
  subcommand: "create-store",
@@ -5152,6 +5333,319 @@ async function emptyStore(client, argv, auth) {
5152
5333
  }
5153
5334
  }
5154
5335
 
5336
+ // src/commands/blob/presign.ts
5337
+ import * as blob7 from "@vercel/blob";
5338
+
5339
+ // src/util/blob/validity.ts
5340
+ var import_ms7 = __toESM(require_ms(), 1);
5341
+ function resolveBlobValidUntil({
5342
+ validUntil,
5343
+ validFor
5344
+ }) {
5345
+ if (validUntil !== void 0 && validFor !== void 0) {
5346
+ return {
5347
+ error: "The --valid-until and --valid-for flags are mutually exclusive. Pass only one."
5348
+ };
5349
+ }
5350
+ if (validFor === void 0) {
5351
+ return { validUntil };
5352
+ }
5353
+ const durationMs = (0, import_ms7.default)(validFor);
5354
+ if (durationMs === void 0 || durationMs <= 0) {
5355
+ return {
5356
+ error: `Invalid --valid-for value "${validFor}". Use values like "15m", "1h", or "7d".`
5357
+ };
5358
+ }
5359
+ return { validUntil: Date.now() + durationMs };
5360
+ }
5361
+
5362
+ // src/util/blob/operations.ts
5363
+ var BLOB_OPERATIONS = ["get", "head", "put", "delete"];
5364
+ var UPLOAD_CONSTRAINT_FLAGS_ERROR = "The flags --allowed-content-type and --maximum-size-in-bytes can only be used with --operation put.";
5365
+ var PRESIGN_UPLOAD_ONLY_FLAGS_ERROR = "The flags --allowed-content-type, --maximum-size-in-bytes, --allow-overwrite, --add-random-suffix, and --cache-control-max-age can only be used with --operation put.";
5366
+ function isBlobOperation(value) {
5367
+ return BLOB_OPERATIONS.includes(value);
5368
+ }
5369
+ function parseBlobOperation(operation, defaultOperation = "get") {
5370
+ const operationValue = operation ?? defaultOperation;
5371
+ if (!isBlobOperation(operationValue)) {
5372
+ output_manager_default.error(
5373
+ `Invalid operation value: '${operationValue}'. Must be one of: get, head, put, delete.`
5374
+ );
5375
+ return null;
5376
+ }
5377
+ return operationValue;
5378
+ }
5379
+ function parseBlobOperations(operations) {
5380
+ if (!operations || operations.length === 0) {
5381
+ return void 0;
5382
+ }
5383
+ const invalidOperation = operations.find((operation) => {
5384
+ return !isBlobOperation(operation);
5385
+ });
5386
+ if (invalidOperation) {
5387
+ output_manager_default.error(
5388
+ `Invalid operation value: '${invalidOperation}'. Must be one of: get, head, put, delete.`
5389
+ );
5390
+ return null;
5391
+ }
5392
+ return operations;
5393
+ }
5394
+ function allowsUploadConstraints(operations) {
5395
+ return operations === void 0 || operations.includes("put");
5396
+ }
5397
+ function hasUploadConstraintFlags(options) {
5398
+ const { allowedContentTypes, maximumSizeInBytes } = options;
5399
+ return Boolean(
5400
+ allowedContentTypes && allowedContentTypes.length > 0 || maximumSizeInBytes !== void 0
5401
+ );
5402
+ }
5403
+ function hasPresignUploadOnlyFlags(options) {
5404
+ return hasUploadConstraintFlags(options) || Boolean(
5405
+ options.allowOverwrite || options.addRandomSuffix || options.cacheControlMaxAge !== void 0
5406
+ );
5407
+ }
5408
+
5409
+ // src/commands/blob/presign.ts
5410
+ function writePresignOutput(params) {
5411
+ const { client, asJson, operation, presignedUrl, validUntil } = params;
5412
+ if (asJson) {
5413
+ client.stdout.write(
5414
+ `${JSON.stringify(
5415
+ {
5416
+ operation,
5417
+ presignedUrl,
5418
+ ...validUntil !== void 0 ? { validUntil } : {}
5419
+ },
5420
+ null,
5421
+ 2
5422
+ )}
5423
+ `
5424
+ );
5425
+ } else {
5426
+ client.stdout.write(`${presignedUrl}
5427
+ `);
5428
+ }
5429
+ }
5430
+ async function presign(client, argv, auth) {
5431
+ const telemetryClient = new BlobPresignTelemetryClient({
5432
+ opts: {
5433
+ store: client.telemetryEventStore
5434
+ }
5435
+ });
5436
+ const flagsSpecification = getFlagsSpecification(presignSubcommand.options);
5437
+ let parsedArgs;
5438
+ try {
5439
+ parsedArgs = parseArguments(argv, flagsSpecification);
5440
+ } catch (err) {
5441
+ printError(err);
5442
+ return 1;
5443
+ }
5444
+ const {
5445
+ flags,
5446
+ args: [pathname]
5447
+ } = parsedArgs;
5448
+ const {
5449
+ "--access": accessFlag,
5450
+ "--operation": operationFlag,
5451
+ "--delegation-token": delegationTokenFlag,
5452
+ "--client-signing-token": clientSigningTokenFlag,
5453
+ "--valid-until": validUntil,
5454
+ "--valid-for": validFor,
5455
+ "--if-match": ifMatch,
5456
+ "--allow-overwrite": allowOverwrite,
5457
+ "--add-random-suffix": addRandomSuffix,
5458
+ "--cache-control-max-age": cacheControlMaxAge,
5459
+ "--allowed-content-type": allowedContentTypes,
5460
+ "--maximum-size-in-bytes": maximumSizeInBytes,
5461
+ "--json": asJson
5462
+ } = flags;
5463
+ if (!pathname) {
5464
+ output_manager_default.error("Missing required argument: pathname");
5465
+ return 1;
5466
+ }
5467
+ const access3 = parseAccessFlag(accessFlag);
5468
+ if (!access3) {
5469
+ return 1;
5470
+ }
5471
+ const operation = parseBlobOperation(operationFlag);
5472
+ if (!operation) {
5473
+ return 1;
5474
+ }
5475
+ const validity = resolveBlobValidUntil({ validUntil, validFor });
5476
+ if (validity.error) {
5477
+ output_manager_default.error(validity.error);
5478
+ return 1;
5479
+ }
5480
+ if (Boolean(delegationTokenFlag) !== Boolean(clientSigningTokenFlag)) {
5481
+ output_manager_default.error(
5482
+ "The --delegation-token and --client-signing-token flags must be passed together. Pass both, or pass neither to issue a token automatically."
5483
+ );
5484
+ return 1;
5485
+ }
5486
+ if (operation !== "put" && hasPresignUploadOnlyFlags({
5487
+ allowedContentTypes,
5488
+ maximumSizeInBytes,
5489
+ allowOverwrite,
5490
+ addRandomSuffix,
5491
+ cacheControlMaxAge
5492
+ })) {
5493
+ output_manager_default.error(PRESIGN_UPLOAD_ONLY_FLAGS_ERROR);
5494
+ return 1;
5495
+ }
5496
+ if (operation === "get" || operation === "head") {
5497
+ if (ifMatch) {
5498
+ output_manager_default.error(
5499
+ "The --if-match flag can only be used with --operation put or --operation delete."
5500
+ );
5501
+ return 1;
5502
+ }
5503
+ }
5504
+ telemetryClient.trackCliArgumentPathname(pathname);
5505
+ telemetryClient.trackCliOptionAccess(accessFlag);
5506
+ telemetryClient.trackCliOptionOperation(operationFlag);
5507
+ telemetryClient.trackCliOptionDelegationToken(delegationTokenFlag);
5508
+ telemetryClient.trackCliOptionClientSigningToken(clientSigningTokenFlag);
5509
+ telemetryClient.trackCliOptionValidUntil(validUntil);
5510
+ telemetryClient.trackCliOptionValidFor(validFor);
5511
+ telemetryClient.trackCliOptionIfMatch(ifMatch);
5512
+ telemetryClient.trackCliFlagAllowOverwrite(allowOverwrite);
5513
+ telemetryClient.trackCliFlagAddRandomSuffix(addRandomSuffix);
5514
+ telemetryClient.trackCliOptionCacheControlMaxAge(cacheControlMaxAge);
5515
+ telemetryClient.trackCliOptionAllowedContentType(allowedContentTypes);
5516
+ telemetryClient.trackCliOptionMaximumSizeInBytes(maximumSizeInBytes);
5517
+ telemetryClient.trackCliFlagJson(asJson);
5518
+ try {
5519
+ output_manager_default.debug("Generating presigned URL");
5520
+ output_manager_default.spinner("Generating presigned URL");
5521
+ const signedToken2 = delegationTokenFlag && clientSigningTokenFlag ? {
5522
+ delegationToken: delegationTokenFlag,
5523
+ clientSigningToken: clientSigningTokenFlag
5524
+ } : await blob7.issueSignedToken({
5525
+ ...blobOpts(auth),
5526
+ pathname,
5527
+ operations: [operation],
5528
+ validUntil: validity.validUntil,
5529
+ ...operation === "put" ? {
5530
+ allowedContentTypes,
5531
+ maximumSizeInBytes
5532
+ } : {}
5533
+ });
5534
+ const presigned = await blob7.presignUrl(
5535
+ {
5536
+ delegationToken: signedToken2.delegationToken,
5537
+ clientSigningToken: signedToken2.clientSigningToken
5538
+ },
5539
+ {
5540
+ operation,
5541
+ pathname,
5542
+ access: access3,
5543
+ validUntil: validity.validUntil,
5544
+ ...operation === "put" ? {
5545
+ allowedContentTypes,
5546
+ maximumSizeInBytes,
5547
+ allowOverwrite,
5548
+ addRandomSuffix,
5549
+ cacheControlMaxAge,
5550
+ ifMatch
5551
+ } : operation === "delete" ? { ifMatch } : {}
5552
+ }
5553
+ );
5554
+ output_manager_default.stopSpinner();
5555
+ writePresignOutput({
5556
+ client,
5557
+ asJson,
5558
+ operation,
5559
+ presignedUrl: presigned.presignedUrl,
5560
+ validUntil: ("validUntil" in signedToken2 ? signedToken2.validUntil : void 0) ?? validity.validUntil
5561
+ });
5562
+ return 0;
5563
+ } catch (err) {
5564
+ output_manager_default.stopSpinner();
5565
+ printError(err);
5566
+ return 1;
5567
+ }
5568
+ }
5569
+
5570
+ // src/commands/blob/signed-token.ts
5571
+ import * as blob8 from "@vercel/blob";
5572
+ function formatSignedToken(result) {
5573
+ return `delegationToken=${result.delegationToken}
5574
+ clientSigningToken=${result.clientSigningToken}
5575
+ validUntil=${result.validUntil} (${new Date(result.validUntil).toISOString()})
5576
+ `;
5577
+ }
5578
+ async function signedToken(client, argv, auth) {
5579
+ const telemetryClient = new BlobSignedTokenTelemetryClient({
5580
+ opts: {
5581
+ store: client.telemetryEventStore
5582
+ }
5583
+ });
5584
+ const flagsSpecification = getFlagsSpecification(
5585
+ signedTokenSubcommand.options
5586
+ );
5587
+ let parsedArgs;
5588
+ try {
5589
+ parsedArgs = parseArguments(argv, flagsSpecification);
5590
+ } catch (err) {
5591
+ printError(err);
5592
+ return 1;
5593
+ }
5594
+ const { flags } = parsedArgs;
5595
+ const {
5596
+ "--pathname": pathname,
5597
+ "--operation": operationValues,
5598
+ "--valid-until": validUntil,
5599
+ "--valid-for": validFor,
5600
+ "--allowed-content-type": allowedContentTypes,
5601
+ "--maximum-size-in-bytes": maximumSizeInBytes,
5602
+ "--json": asJson
5603
+ } = flags;
5604
+ const operations = parseBlobOperations(operationValues);
5605
+ if (operations === null) {
5606
+ return 1;
5607
+ }
5608
+ const validity = resolveBlobValidUntil({ validUntil, validFor });
5609
+ if (validity.error) {
5610
+ output_manager_default.error(validity.error);
5611
+ return 1;
5612
+ }
5613
+ if (!allowsUploadConstraints(operations) && hasUploadConstraintFlags({ allowedContentTypes, maximumSizeInBytes })) {
5614
+ output_manager_default.error(UPLOAD_CONSTRAINT_FLAGS_ERROR);
5615
+ return 1;
5616
+ }
5617
+ telemetryClient.trackCliOptionPathname(pathname);
5618
+ telemetryClient.trackCliOptionOperation(operationValues);
5619
+ telemetryClient.trackCliOptionValidUntil(validUntil);
5620
+ telemetryClient.trackCliOptionValidFor(validFor);
5621
+ telemetryClient.trackCliOptionAllowedContentType(allowedContentTypes);
5622
+ telemetryClient.trackCliOptionMaximumSizeInBytes(maximumSizeInBytes);
5623
+ telemetryClient.trackCliFlagJson(asJson);
5624
+ try {
5625
+ output_manager_default.debug("Issuing signed token");
5626
+ output_manager_default.spinner("Issuing signed token");
5627
+ const result = await blob8.issueSignedToken({
5628
+ ...blobOpts(auth),
5629
+ pathname,
5630
+ operations,
5631
+ validUntil: validity.validUntil,
5632
+ ...allowsUploadConstraints(operations) ? { allowedContentTypes, maximumSizeInBytes } : {}
5633
+ });
5634
+ output_manager_default.stopSpinner();
5635
+ if (asJson) {
5636
+ client.stdout.write(`${JSON.stringify(result, null, 2)}
5637
+ `);
5638
+ } else {
5639
+ client.stdout.write(formatSignedToken(result));
5640
+ }
5641
+ return 0;
5642
+ } catch (err) {
5643
+ output_manager_default.stopSpinner();
5644
+ printError(err);
5645
+ return 1;
5646
+ }
5647
+ }
5648
+
5155
5649
  // src/commands/blob/index.ts
5156
5650
  var COMMAND_CONFIG7 = {
5157
5651
  list: getCommandAliases(listSubcommand18),
@@ -5159,6 +5653,8 @@ var COMMAND_CONFIG7 = {
5159
5653
  get: getCommandAliases(getSubcommand3),
5160
5654
  del: getCommandAliases(delSubcommand),
5161
5655
  copy: getCommandAliases(copySubcommand),
5656
+ "signed-token": getCommandAliases(signedTokenSubcommand),
5657
+ presign: getCommandAliases(presignSubcommand),
5162
5658
  "create-store": getCommandAliases(createStoreSubcommand),
5163
5659
  "delete-store": getCommandAliases(deleteStoreSubcommand),
5164
5660
  "get-store": getCommandAliases(getStoreInfoSubcommand),
@@ -5262,6 +5758,30 @@ async function main3(client) {
5262
5758
  return 1;
5263
5759
  }
5264
5760
  return copy2(client, args, token2);
5761
+ case "signed-token":
5762
+ if (needHelp) {
5763
+ telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
5764
+ printHelp(signedTokenSubcommand);
5765
+ return 2;
5766
+ }
5767
+ telemetry2.trackCliSubcommandSignedToken(subcommandOriginal);
5768
+ if (!token2.success) {
5769
+ printError(token2.error);
5770
+ return 1;
5771
+ }
5772
+ return signedToken(client, args, token2);
5773
+ case "presign":
5774
+ if (needHelp) {
5775
+ telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
5776
+ printHelp(presignSubcommand);
5777
+ return 2;
5778
+ }
5779
+ telemetry2.trackCliSubcommandPresign(subcommandOriginal);
5780
+ if (!token2.success) {
5781
+ printError(token2.error);
5782
+ return 1;
5783
+ }
5784
+ return presign(client, args, token2);
5265
5785
  case "create-store":
5266
5786
  if (needHelp) {
5267
5787
  telemetry2.trackCliFlagHelp("blob", subcommandOriginal);
@@ -9626,7 +10146,7 @@ async function runStartOrder(client, cns, contextName, stamp, { fallingBack = fa
9626
10146
 
9627
10147
  // src/commands/certs/ls.ts
9628
10148
  var import_chalk39 = __toESM(require_source(), 1);
9629
- var import_ms7 = __toESM(require_ms(), 1);
10149
+ var import_ms8 = __toESM(require_ms(), 1);
9630
10150
 
9631
10151
  // src/util/certs/get-certs.ts
9632
10152
  async function getCerts(client, next, limit = 20) {
@@ -9749,18 +10269,18 @@ function formatCertFirstCn(time, cert, cn, multiple) {
9749
10269
  formatCertCn(cn, multiple),
9750
10270
  formatExpirationDate(new Date(cert.expiration)),
9751
10271
  cert.autoRenew ? "yes" : "no",
9752
- import_chalk39.default.gray((0, import_ms7.default)(time.getTime() - new Date(cert.created).getTime()))
10272
+ import_chalk39.default.gray((0, import_ms8.default)(time.getTime() - new Date(cert.created).getTime()))
9753
10273
  ];
9754
10274
  }
9755
10275
  function formatExpirationDate(date) {
9756
10276
  const diff2 = date.getTime() - Date.now();
9757
- return diff2 < 0 ? import_chalk39.default.gray(`${(0, import_ms7.default)(-diff2)} ago`) : import_chalk39.default.gray(`in ${(0, import_ms7.default)(diff2)}`);
10277
+ return diff2 < 0 ? import_chalk39.default.gray(`${(0, import_ms8.default)(-diff2)} ago`) : import_chalk39.default.gray(`in ${(0, import_ms8.default)(diff2)}`);
9758
10278
  }
9759
10279
  var ls_default = ls2;
9760
10280
 
9761
10281
  // src/commands/certs/rm.ts
9762
10282
  var import_chalk40 = __toESM(require_source(), 1);
9763
- var import_ms8 = __toESM(require_ms(), 1);
10283
+ var import_ms9 = __toESM(require_ms(), 1);
9764
10284
  var import_pluralize4 = __toESM(require_pluralize(), 1);
9765
10285
 
9766
10286
  // src/util/certs/delete-cert-by-id.ts
@@ -9910,7 +10430,7 @@ function formatCertRow(cert) {
9910
10430
  return [
9911
10431
  cert.uid,
9912
10432
  import_chalk40.default.bold(cert.cns ? cert.cns.join(", ") : "\u2013"),
9913
- ...cert.created ? [import_chalk40.default.gray(`${(0, import_ms8.default)(Date.now() - new Date(cert.created).getTime())} ago`)] : []
10433
+ ...cert.created ? [import_chalk40.default.gray(`${(0, import_ms9.default)(Date.now() - new Date(cert.created).getTime())} ago`)] : []
9914
10434
  ];
9915
10435
  }
9916
10436
  var rm_default = rm2;
@@ -12903,7 +13423,7 @@ async function importZone(client, argv) {
12903
13423
 
12904
13424
  // src/commands/dns/ls.ts
12905
13425
  var import_chalk54 = __toESM(require_source(), 1);
12906
- var import_ms9 = __toESM(require_ms(), 1);
13426
+ var import_ms10 = __toESM(require_ms(), 1);
12907
13427
 
12908
13428
  // src/util/dns/get-domain-dns-records.ts
12909
13429
  async function getDomainDNSRecords(client, domain2, apiVersion = 3, nextTimestamp, limit = 20) {
@@ -13156,7 +13676,7 @@ function getDNSRecordsTable(dnsRecords) {
13156
13676
  }
13157
13677
  function getDNSRecordRow(record) {
13158
13678
  const isSystemRecord = record.creator === "system";
13159
- const createdAt = `${(0, import_ms9.default)(
13679
+ const createdAt = `${(0, import_ms10.default)(
13160
13680
  Date.now() - new Date(Number(record.createdAt)).getTime()
13161
13681
  )} ago`;
13162
13682
  const priority = record.mxPriority || record.priority || null;
@@ -13172,7 +13692,7 @@ function getDNSRecordRow(record) {
13172
13692
 
13173
13693
  // src/commands/dns/rm.ts
13174
13694
  var import_chalk55 = __toESM(require_source(), 1);
13175
- var import_ms10 = __toESM(require_ms(), 1);
13695
+ var import_ms11 = __toESM(require_ms(), 1);
13176
13696
 
13177
13697
  // src/util/dns/delete-dns-record-by-id.ts
13178
13698
  async function deleteDNSRecordById(client, domain2, recordId) {
@@ -13356,7 +13876,7 @@ function getDeleteTableRow(domainName, record) {
13356
13876
  `${recordName} ${record.type} ${record.value} ${record.mxPriority || ""}`
13357
13877
  ),
13358
13878
  import_chalk55.default.gray(
13359
- `${(0, import_ms10.default)(Date.now() - new Date(Number(record.createdAt)).getTime())} ago`
13879
+ `${(0, import_ms11.default)(Date.now() - new Date(Number(record.createdAt)).getTime())} ago`
13360
13880
  )
13361
13881
  ];
13362
13882
  }
@@ -14438,7 +14958,7 @@ async function fetchInformation({
14438
14958
  }
14439
14959
 
14440
14960
  // src/commands/domains/ls.ts
14441
- var import_ms11 = __toESM(require_ms(), 1);
14961
+ var import_ms12 = __toESM(require_ms(), 1);
14442
14962
  var import_chalk63 = __toESM(require_source(), 1);
14443
14963
  var import_pluralize5 = __toESM(require_pluralize(), 1);
14444
14964
 
@@ -14554,7 +15074,7 @@ function formatDomainsTable(domains2) {
14554
15074
  const current = Date.now();
14555
15075
  const rows = domains2.map((domain2) => {
14556
15076
  const expiration = formatDateWithoutTime(domain2.expiresAt);
14557
- const age = domain2.createdAt ? (0, import_ms11.default)(current - domain2.createdAt) : "-";
15077
+ const age = domain2.createdAt ? (0, import_ms12.default)(current - domain2.createdAt) : "-";
14558
15078
  return [
14559
15079
  domain2.name,
14560
15080
  getDomainRegistrar(domain2),
@@ -23868,7 +24388,7 @@ var FlagsTelemetryClient = class extends TelemetryClient {
23868
24388
 
23869
24389
  // src/commands/flags/ls.ts
23870
24390
  var import_chalk101 = __toESM(require_source(), 1);
23871
- var import_ms12 = __toESM(require_ms(), 1);
24391
+ var import_ms13 = __toESM(require_ms(), 1);
23872
24392
  var import_pluralize8 = __toESM(require_pluralize(), 1);
23873
24393
 
23874
24394
  // src/util/flags/get-flags.ts
@@ -23991,7 +24511,7 @@ function printFlagsTable(flags) {
23991
24511
  flag.kind,
23992
24512
  flag.state === "active" ? import_chalk101.default.green(flag.state) : import_chalk101.default.gray(flag.state),
23993
24513
  String(flag.variants.length),
23994
- (0, import_ms12.default)(now - flag.updatedAt) + " ago"
24514
+ (0, import_ms13.default)(now - flag.updatedAt) + " ago"
23995
24515
  ]);
23996
24516
  const table3 = formatTable(
23997
24517
  headers,
@@ -24017,7 +24537,7 @@ var FlagsInspectTelemetryClient = class extends TelemetryClient {
24017
24537
 
24018
24538
  // src/util/flags/print-flag-details.ts
24019
24539
  var import_chalk103 = __toESM(require_source(), 1);
24020
- var import_ms13 = __toESM(require_ms(), 1);
24540
+ var import_ms14 = __toESM(require_ms(), 1);
24021
24541
 
24022
24542
  // src/util/flags/dashboard-url.ts
24023
24543
  function getFlagDashboardUrl(orgSlug, projectName, flagSlug) {
@@ -24367,7 +24887,7 @@ function formatRolloutOutcome(outcome, variants) {
24367
24887
  const stages = outcome.slots.map((slot) => {
24368
24888
  const percentage = slot.promille / 1e3;
24369
24889
  const formattedPercentage = Number.isInteger(percentage) ? String(percentage) : String(Number(percentage.toFixed(3)));
24370
- return `${formattedPercentage}% for ${(0, import_ms13.default)(slot.durationMs, { long: true })}`;
24890
+ return `${formattedPercentage}% for ${(0, import_ms14.default)(slot.durationMs, { long: true })}`;
24371
24891
  }).join(", ");
24372
24892
  return `${formatEnvironmentVariantSummary(
24373
24893
  fromVariant,
@@ -26074,7 +26594,7 @@ var import_fast_deep_equal4 = __toESM(require_fast_deep_equal(), 1);
26074
26594
 
26075
26595
  // src/util/flags/rollout.ts
26076
26596
  var import_chalk111 = __toESM(require_source(), 1);
26077
- var import_ms14 = __toESM(require_ms(), 1);
26597
+ var import_ms15 = __toESM(require_ms(), 1);
26078
26598
  function resolveFlagRollout(flag, settings, options) {
26079
26599
  const currentRollout = options.currentOutcome?.type === "rollout" ? options.currentOutcome : void 0;
26080
26600
  const baseSelector = options.baseSelector || formatFlagBucketingBaseSelector(currentRollout?.base);
@@ -26226,7 +26746,7 @@ function parseStageDuration(value) {
26226
26746
  if (/^\d+(s|ms)$/i.test(value)) {
26227
26747
  return void 0;
26228
26748
  }
26229
- const durationMs = (0, import_ms14.default)(/^\d+$/.test(value) ? `${value}m` : value);
26749
+ const durationMs = (0, import_ms15.default)(/^\d+$/.test(value) ? `${value}m` : value);
26230
26750
  if (durationMs === void 0 || durationMs <= 0) {
26231
26751
  return void 0;
26232
26752
  }
@@ -26243,7 +26763,7 @@ function resolveRolloutStartTimestamp(start, currentStartTimestamp) {
26243
26763
  if (start === "now") {
26244
26764
  return Date.now();
26245
26765
  }
26246
- const relativeDurationMs = (0, import_ms14.default)(start);
26766
+ const relativeDurationMs = (0, import_ms15.default)(start);
26247
26767
  if (relativeDurationMs !== void 0) {
26248
26768
  if (relativeDurationMs <= 0) {
26249
26769
  throw new Error(
@@ -26262,7 +26782,7 @@ function resolveRolloutStartTimestamp(start, currentStartTimestamp) {
26262
26782
  }
26263
26783
  function formatRolloutStages(slots) {
26264
26784
  return `${slots.map(
26265
- (slot) => `${formatPromille(slot.promille)} for ${(0, import_ms14.default)(slot.durationMs, { long: true })}`
26785
+ (slot) => `${formatPromille(slot.promille)} for ${(0, import_ms15.default)(slot.durationMs, { long: true })}`
26266
26786
  ).join(", ")}, then 100% indefinitely`;
26267
26787
  }
26268
26788
  function formatPromille(promille) {
@@ -27260,7 +27780,7 @@ var FlagsSdkKeysRmTelemetryClient = class extends TelemetryClient {
27260
27780
 
27261
27781
  // src/commands/flags/sdk-keys-ls.ts
27262
27782
  var import_chalk118 = __toESM(require_source(), 1);
27263
- var import_ms15 = __toESM(require_ms(), 1);
27783
+ var import_ms16 = __toESM(require_ms(), 1);
27264
27784
 
27265
27785
  // src/util/flags/sdk-keys.ts
27266
27786
  async function getSdkKeys(client, projectId) {
@@ -27376,7 +27896,7 @@ function printSdkKeysTable(keys) {
27376
27896
  key.environment,
27377
27897
  key.label || import_chalk118.default.dim("-"),
27378
27898
  key.partialKeyValue || import_chalk118.default.dim("-"),
27379
- (0, import_ms15.default)(now - key.createdAt) + " ago"
27899
+ (0, import_ms16.default)(now - key.createdAt) + " ago"
27380
27900
  ]);
27381
27901
  const table3 = formatTable(
27382
27902
  headers,
@@ -29010,7 +29530,7 @@ async function main19(client) {
29010
29530
  // src/commands/inspect/index.ts
29011
29531
  var import_error_utils10 = __toESM(require_dist(), 1);
29012
29532
  var import_chalk127 = __toESM(require_source(), 1);
29013
- var import_ms16 = __toESM(require_ms(), 1);
29533
+ var import_ms17 = __toESM(require_ms(), 1);
29014
29534
  var import_title2 = __toESM(require_lib2(), 1);
29015
29535
  import { URL as URL2 } from "url";
29016
29536
 
@@ -29378,7 +29898,7 @@ async function inspect4(client) {
29378
29898
  telemetry2.trackCliFlagWait(parsedArguments.flags["--wait"]);
29379
29899
  telemetry2.trackCliOptionFormat(parsedArguments.flags["--format"]);
29380
29900
  telemetry2.trackCliFlagJson(parsedArguments.flags["--json"]);
29381
- const timeout = (0, import_ms16.default)(parsedArguments.flags["--timeout"] ?? "3m");
29901
+ const timeout = (0, import_ms17.default)(parsedArguments.flags["--timeout"] ?? "3m");
29382
29902
  if (timeout === void 0) {
29383
29903
  error(`Invalid timeout "${parsedArguments.flags["--timeout"]}"`);
29384
29904
  return 1;
@@ -29429,7 +29949,7 @@ async function inspect4(client) {
29429
29949
  break;
29430
29950
  }
29431
29951
  if (Date.now() > until) {
29432
- warn(`stopped waiting after ${(0, import_ms16.default)(timeout, { long: true })}`);
29952
+ warn(`stopped waiting after ${(0, import_ms17.default)(timeout, { long: true })}`);
29433
29953
  abortController?.abort();
29434
29954
  break;
29435
29955
  }
@@ -30052,7 +30572,7 @@ function mapClaimUrlError(error, resource) {
30052
30572
  }
30053
30573
 
30054
30574
  // src/util/integration-resource/poll-for-claim.ts
30055
- var import_ms17 = __toESM(require_ms(), 1);
30575
+ var import_ms18 = __toESM(require_ms(), 1);
30056
30576
 
30057
30577
  // src/util/integration-resource/get-resource.ts
30058
30578
  async function getResource(client, resourceId) {
@@ -30103,7 +30623,7 @@ async function pollForClaim(client, resourceId, options = {}) {
30103
30623
  return { status: "cancelled" };
30104
30624
  }
30105
30625
  output_manager_default.error(
30106
- `Claim did not complete within ${(0, import_ms17.default)(timeoutMs, { long: true })}.`
30626
+ `Claim did not complete within ${(0, import_ms18.default)(timeoutMs, { long: true })}.`
30107
30627
  );
30108
30628
  output_manager_default.log(SANDBOX_CLAIM_IN_PROGRESS_MSG);
30109
30629
  return { status: "timeout" };
@@ -35555,7 +36075,7 @@ var import_chalk149 = __toESM(require_source(), 1);
35555
36075
  var import_format21 = __toESM(require_format(), 1);
35556
36076
 
35557
36077
  // src/util/logs-v2.ts
35558
- var import_ms18 = __toESM(require_ms(), 1);
36078
+ var import_ms19 = __toESM(require_ms(), 1);
35559
36079
  var LOG_LEVEL_SEVERITY = {
35560
36080
  info: 0,
35561
36081
  warning: 1,
@@ -35577,7 +36097,7 @@ function getDisplayLog(logs2, requestedLevels) {
35577
36097
  }
35578
36098
  function parseRelativeTime(input) {
35579
36099
  const now = Date.now();
35580
- const msValue = (0, import_ms18.default)(input);
36100
+ const msValue = (0, import_ms19.default)(input);
35581
36101
  if (typeof msValue === "number") {
35582
36102
  return now - msValue;
35583
36103
  }
@@ -37180,7 +37700,7 @@ async function metrics(client) {
37180
37700
  return 0;
37181
37701
  }
37182
37702
  telemetry2.trackCliSubcommandSchema(subcommandOriginal);
37183
- const schemaFn = (await import("./chunks/schema-65C5EBJ7.js")).default;
37703
+ const schemaFn = (await import("./chunks/schema-VAQSZY2H.js")).default;
37184
37704
  return schemaFn(client, telemetry2);
37185
37705
  }
37186
37706
  default: {
@@ -37193,7 +37713,7 @@ async function metrics(client) {
37193
37713
  output_manager_default.print(help(metricsCommand, { columns: client.stderr.columns }));
37194
37714
  return 2;
37195
37715
  }
37196
- const queryFn = (await import("./chunks/query-HEATRYAK.js")).default;
37716
+ const queryFn = (await import("./chunks/query-MBJLAQRX.js")).default;
37197
37717
  return queryFn(client, telemetry2);
37198
37718
  }
37199
37719
  }
@@ -39604,7 +40124,7 @@ async function openCommandHandler(client) {
39604
40124
 
39605
40125
  // src/commands/project/add.ts
39606
40126
  var import_chalk156 = __toESM(require_source(), 1);
39607
- var import_ms19 = __toESM(require_ms(), 1);
40127
+ var import_ms20 = __toESM(require_ms(), 1);
39608
40128
 
39609
40129
  // src/util/telemetry/commands/project/add.ts
39610
40130
  var ProjectAddTelemetryClient = class extends TelemetryClient {
@@ -39666,7 +40186,7 @@ async function add9(client, argv) {
39666
40186
  throw err;
39667
40187
  }
39668
40188
  }
39669
- const elapsed2 = (0, import_ms19.default)(Date.now() - start);
40189
+ const elapsed2 = (0, import_ms20.default)(Date.now() - start);
39670
40190
  const { contextName } = await getScope(client);
39671
40191
  output_manager_default.log(
39672
40192
  `${import_chalk156.default.cyan("Success!")} Project ${import_chalk156.default.bold(
@@ -40416,7 +40936,7 @@ async function inspect5(client, argv) {
40416
40936
  }
40417
40937
 
40418
40938
  // src/commands/project/list.ts
40419
- var import_ms20 = __toESM(require_ms(), 1);
40939
+ var import_ms21 = __toESM(require_ms(), 1);
40420
40940
  var import_chalk160 = __toESM(require_source(), 1);
40421
40941
 
40422
40942
  // src/util/telemetry/commands/project/list.ts
@@ -40508,7 +41028,7 @@ async function list11(client, argv) {
40508
41028
  method: "GET"
40509
41029
  });
40510
41030
  output_manager_default.stopSpinner();
40511
- const elapsed2 = (0, import_ms20.default)(Date.now() - start);
41031
+ const elapsed2 = (0, import_ms21.default)(Date.now() - start);
40512
41032
  if (flags.json) {
40513
41033
  outputJson4(client, projectList, {
40514
41034
  pagination,
@@ -40596,7 +41116,7 @@ function printProjectsTable(projectList) {
40596
41116
  [
40597
41117
  import_chalk160.default.bold(project.name),
40598
41118
  getLatestProdUrl(project),
40599
- import_chalk160.default.gray((0, import_ms20.default)(Date.now() - project.updatedAt)),
41119
+ import_chalk160.default.gray((0, import_ms21.default)(Date.now() - project.updatedAt)),
40600
41120
  project.nodeVersion ?? ""
40601
41121
  ]
40602
41122
  ])
@@ -40794,7 +41314,7 @@ async function accessGroups(client, argv) {
40794
41314
 
40795
41315
  // src/commands/project/rename.ts
40796
41316
  var import_chalk163 = __toESM(require_source(), 1);
40797
- var import_ms21 = __toESM(require_ms(), 1);
41317
+ var import_ms22 = __toESM(require_ms(), 1);
40798
41318
 
40799
41319
  // src/util/telemetry/commands/project/rename.ts
40800
41320
  var ProjectRenameTelemetryClient = class extends TelemetryClient {
@@ -40869,7 +41389,7 @@ async function rename(client, argv) {
40869
41389
  }
40870
41390
  throw err;
40871
41391
  }
40872
- const elapsed2 = (0, import_ms21.default)(Date.now() - start);
41392
+ const elapsed2 = (0, import_ms22.default)(Date.now() - start);
40873
41393
  output_manager_default.log(
40874
41394
  `${import_chalk163.default.cyan("Success!")} Project ${import_chalk163.default.bold(
40875
41395
  project.name
@@ -40882,7 +41402,7 @@ async function rename(client, argv) {
40882
41402
 
40883
41403
  // src/commands/project/rm.ts
40884
41404
  var import_chalk164 = __toESM(require_source(), 1);
40885
- var import_ms22 = __toESM(require_ms(), 1);
41405
+ var import_ms23 = __toESM(require_ms(), 1);
40886
41406
 
40887
41407
  // src/util/telemetry/commands/project/rm.ts
40888
41408
  var ProjectRmTelemetryClient = class extends TelemetryClient {
@@ -40943,7 +41463,7 @@ async function rm8(client, argv) {
40943
41463
  return 1;
40944
41464
  }
40945
41465
  }
40946
- const elapsed2 = (0, import_ms22.default)(Date.now() - start);
41466
+ const elapsed2 = (0, import_ms23.default)(Date.now() - start);
40947
41467
  output_manager_default.log(
40948
41468
  `${import_chalk164.default.cyan("Success!")} Project ${import_chalk164.default.bold(name)} removed ${import_chalk164.default.gray(
40949
41469
  `[${elapsed2}]`
@@ -41835,7 +42355,7 @@ async function main25(client) {
41835
42355
  }
41836
42356
 
41837
42357
  // src/commands/promote/index.ts
41838
- var import_ms25 = __toESM(require_ms(), 1);
42358
+ var import_ms26 = __toESM(require_ms(), 1);
41839
42359
  var import_error_utils15 = __toESM(require_dist(), 1);
41840
42360
 
41841
42361
  // src/commands/promote/request-promote.ts
@@ -41912,11 +42432,11 @@ async function getProjectByDeployment({
41912
42432
  }
41913
42433
 
41914
42434
  // src/commands/promote/request-promote.ts
41915
- var import_ms24 = __toESM(require_ms(), 1);
42435
+ var import_ms25 = __toESM(require_ms(), 1);
41916
42436
 
41917
42437
  // src/commands/promote/status.ts
41918
42438
  var import_chalk169 = __toESM(require_source(), 1);
41919
- var import_ms23 = __toESM(require_ms(), 1);
42439
+ var import_ms24 = __toESM(require_ms(), 1);
41920
42440
 
41921
42441
  // src/util/alias/render-alias-status.ts
41922
42442
  var import_chalk168 = __toESM(require_source(), 1);
@@ -41953,8 +42473,8 @@ async function promoteStatus({
41953
42473
  project,
41954
42474
  timeout = "3m"
41955
42475
  }) {
41956
- const recentThreshold = Date.now() - (0, import_ms23.default)("3m");
41957
- const promoteTimeout = Date.now() + (0, import_ms23.default)(timeout);
42476
+ const recentThreshold = Date.now() - (0, import_ms24.default)("3m");
42477
+ const promoteTimeout = Date.now() + (0, import_ms24.default)(timeout);
41958
42478
  let counter = 0;
41959
42479
  let spinnerMessage = deployment ? "Promote in progress" : `Checking promotion status of ${project.name}`;
41960
42480
  if (!contextName) {
@@ -42171,7 +42691,7 @@ async function requestPromote({
42171
42691
  );
42172
42692
  return 0;
42173
42693
  }
42174
- if (timeout !== void 0 && (0, import_ms24.default)(timeout) === 0) {
42694
+ if (timeout !== void 0 && (0, import_ms25.default)(timeout) === 0) {
42175
42695
  output_manager_default.log(
42176
42696
  `Successfully requested promote of ${import_chalk170.default.bold(project.name)} to ${deployment.url} (${deployment.id})`
42177
42697
  );
@@ -42242,7 +42762,7 @@ var promote_default = async (client) => {
42242
42762
  const yes = parsedArgs.flags["--yes"] ?? false;
42243
42763
  telemetry2.trackCliFlagYes(parsedArgs.flags["--yes"]);
42244
42764
  const timeout = parsedArgs.flags["--timeout"];
42245
- if (timeout && (0, import_ms25.default)(timeout) === void 0) {
42765
+ if (timeout && (0, import_ms26.default)(timeout) === void 0) {
42246
42766
  output_manager_default.error(`Invalid timeout "${timeout}"`);
42247
42767
  return 1;
42248
42768
  }
@@ -42911,7 +43431,7 @@ function formatRedirectsTable(redirects, actionSymbol) {
42911
43431
 
42912
43432
  // src/commands/redirects/list-versions.ts
42913
43433
  var import_chalk174 = __toESM(require_source(), 1);
42914
- var import_ms26 = __toESM(require_ms(), 1);
43434
+ var import_ms27 = __toESM(require_ms(), 1);
42915
43435
  var import_pluralize10 = __toESM(require_pluralize(), 1);
42916
43436
  async function listVersions(client, argv) {
42917
43437
  const parsed = await parseSubcommandArgs3(argv, listVersionsSubcommand);
@@ -42953,7 +43473,7 @@ function sortVersions(versions) {
42953
43473
  function formatVersionsTable(versions) {
42954
43474
  const now = Date.now();
42955
43475
  const rows = versions.map((version) => {
42956
- const age = (0, import_ms26.default)(now - version.lastModified);
43476
+ const age = (0, import_ms27.default)(now - version.lastModified);
42957
43477
  let status3 = "";
42958
43478
  if (version.isStaging) {
42959
43479
  status3 = import_chalk174.default.yellow("Staging");
@@ -44591,7 +45111,7 @@ async function main26(client) {
44591
45111
 
44592
45112
  // src/commands/remove/index.ts
44593
45113
  var import_chalk180 = __toESM(require_source(), 1);
44594
- var import_ms27 = __toESM(require_ms(), 1);
45114
+ var import_ms28 = __toESM(require_ms(), 1);
44595
45115
  var import_pluralize11 = __toESM(require_pluralize(), 1);
44596
45116
 
44597
45117
  // src/util/url.ts
@@ -44872,7 +45392,7 @@ function readConfirmation4(deployments, projects) {
44872
45392
  );
44873
45393
  const deploymentTable = table(
44874
45394
  deployments.map((depl) => {
44875
- const time = import_chalk180.default.gray(`${(0, import_ms27.default)(Date.now() - depl.createdAt)} ago`);
45395
+ const time = import_chalk180.default.gray(`${(0, import_ms28.default)(Date.now() - depl.createdAt)} ago`);
44876
45396
  const url = depl.url ? import_chalk180.default.underline(`https://${depl.url}`) : "";
44877
45397
  return [` ${depl.id}`, url, time];
44878
45398
  }),
@@ -44923,15 +45443,15 @@ function deploymentsAndProjects(deployments, projects, conjunction = "and") {
44923
45443
 
44924
45444
  // src/commands/rollback/index.ts
44925
45445
  var import_error_utils17 = __toESM(require_dist(), 1);
44926
- var import_ms30 = __toESM(require_ms(), 1);
45446
+ var import_ms31 = __toESM(require_ms(), 1);
44927
45447
 
44928
45448
  // src/commands/rollback/request-rollback.ts
44929
45449
  var import_chalk182 = __toESM(require_source(), 1);
44930
- var import_ms29 = __toESM(require_ms(), 1);
45450
+ var import_ms30 = __toESM(require_ms(), 1);
44931
45451
 
44932
45452
  // src/commands/rollback/status.ts
44933
45453
  var import_chalk181 = __toESM(require_source(), 1);
44934
- var import_ms28 = __toESM(require_ms(), 1);
45454
+ var import_ms29 = __toESM(require_ms(), 1);
44935
45455
  async function rollbackStatus({
44936
45456
  client,
44937
45457
  contextName,
@@ -44939,8 +45459,8 @@ async function rollbackStatus({
44939
45459
  project,
44940
45460
  timeout = "3m"
44941
45461
  }) {
44942
- const recentThreshold = Date.now() - (0, import_ms28.default)("3m");
44943
- const rollbackTimeout = Date.now() + (0, import_ms28.default)(timeout);
45462
+ const recentThreshold = Date.now() - (0, import_ms29.default)("3m");
45463
+ const rollbackTimeout = Date.now() + (0, import_ms29.default)(timeout);
44944
45464
  let counter = 0;
44945
45465
  let spinnerMessage = deployment ? "Rollback in progress" : `Checking rollback status of ${project.name}`;
44946
45466
  if (!contextName) {
@@ -45096,7 +45616,7 @@ async function requestRollback({
45096
45616
  // required
45097
45617
  method: "POST"
45098
45618
  });
45099
- if (timeout !== void 0 && (0, import_ms29.default)(timeout) === 0) {
45619
+ if (timeout !== void 0 && (0, import_ms30.default)(timeout) === 0) {
45100
45620
  output_manager_default.log(
45101
45621
  `Successfully requested rollback of ${import_chalk182.default.bold(project.name)} to ${deployment.url} (${deployment.id})`
45102
45622
  );
@@ -45167,7 +45687,7 @@ var rollback_default = async (client) => {
45167
45687
  return 2;
45168
45688
  }
45169
45689
  const timeout = parsedArgs.flags["--timeout"];
45170
- if (timeout && (0, import_ms30.default)(timeout) === void 0) {
45690
+ if (timeout && (0, import_ms31.default)(timeout) === void 0) {
45171
45691
  output_manager_default.error(`Invalid timeout "${timeout}"`);
45172
45692
  return 1;
45173
45693
  }
@@ -45281,7 +45801,7 @@ async function startRollingRelease({
45281
45801
  }
45282
45802
 
45283
45803
  // src/commands/rolling-release/configure-rolling-release.ts
45284
- var import_ms31 = __toESM(require_ms(), 1);
45804
+ var import_ms32 = __toESM(require_ms(), 1);
45285
45805
  function parseDuration(value) {
45286
45806
  if (!value) {
45287
45807
  return void 0;
@@ -45289,7 +45809,7 @@ function parseDuration(value) {
45289
45809
  if (/^\d+(s|ms)$/i.test(value)) {
45290
45810
  return void 0;
45291
45811
  }
45292
- const milliseconds = (0, import_ms31.default)(/^\d+$/.test(value) ? `${value}m` : value);
45812
+ const milliseconds = (0, import_ms32.default)(/^\d+$/.test(value) ? `${value}m` : value);
45293
45813
  if (milliseconds === void 0 || milliseconds <= 0) {
45294
45814
  return void 0;
45295
45815
  }
@@ -46415,7 +46935,7 @@ function formatExpandedRoutes(routes2) {
46415
46935
 
46416
46936
  // src/commands/routes/list-versions.ts
46417
46937
  var import_chalk184 = __toESM(require_source(), 1);
46418
- var import_ms32 = __toESM(require_ms(), 1);
46938
+ var import_ms33 = __toESM(require_ms(), 1);
46419
46939
  async function listVersions2(client, argv) {
46420
46940
  const parsed = await parseSubcommandArgs(
46421
46941
  argv,
@@ -46497,7 +47017,7 @@ function getRelativeTime(timestamp) {
46497
47017
  if (diff2 < 1e3) {
46498
47018
  return "just now";
46499
47019
  }
46500
- return (0, import_ms32.default)(diff2, { long: true }) + " ago";
47020
+ return (0, import_ms33.default)(diff2, { long: true }) + " ago";
46501
47021
  }
46502
47022
 
46503
47023
  // src/commands/routes/inspect.ts
@@ -48094,7 +48614,7 @@ async function main27(client) {
48094
48614
  return 2;
48095
48615
  }
48096
48616
  telemetry2.trackCliSubcommandEdit(subcommandOriginal);
48097
- return (await import("./chunks/edit-TICKX4ZV.js")).default(client, args);
48617
+ return (await import("./chunks/edit-HSHJAKHM.js")).default(client, args);
48098
48618
  case "delete":
48099
48619
  if (needHelp) {
48100
48620
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48102,7 +48622,7 @@ async function main27(client) {
48102
48622
  return 2;
48103
48623
  }
48104
48624
  telemetry2.trackCliSubcommandDelete(subcommandOriginal);
48105
- return (await import("./chunks/delete-GFW6Y6TZ.js")).default(client, args);
48625
+ return (await import("./chunks/delete-NO2U3UGV.js")).default(client, args);
48106
48626
  case "enable":
48107
48627
  if (needHelp) {
48108
48628
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48110,7 +48630,7 @@ async function main27(client) {
48110
48630
  return 2;
48111
48631
  }
48112
48632
  telemetry2.trackCliSubcommandEnable(subcommandOriginal);
48113
- return (await import("./chunks/enable-L3BYWN6S.js")).default(client, args);
48633
+ return (await import("./chunks/enable-YMJAXOGA.js")).default(client, args);
48114
48634
  case "disable":
48115
48635
  if (needHelp) {
48116
48636
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48118,7 +48638,7 @@ async function main27(client) {
48118
48638
  return 2;
48119
48639
  }
48120
48640
  telemetry2.trackCliSubcommandDisable(subcommandOriginal);
48121
- return (await import("./chunks/disable-PGRAS2ZL.js")).default(client, args);
48641
+ return (await import("./chunks/disable-AGDDHVKZ.js")).default(client, args);
48122
48642
  case "reorder":
48123
48643
  if (needHelp) {
48124
48644
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48126,7 +48646,7 @@ async function main27(client) {
48126
48646
  return 2;
48127
48647
  }
48128
48648
  telemetry2.trackCliSubcommandReorder(subcommandOriginal);
48129
- return (await import("./chunks/reorder-IQVKSM3H.js")).default(client, args);
48649
+ return (await import("./chunks/reorder-C5BJWFJM.js")).default(client, args);
48130
48650
  case "export":
48131
48651
  if (needHelp) {
48132
48652
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48134,7 +48654,7 @@ async function main27(client) {
48134
48654
  return 2;
48135
48655
  }
48136
48656
  telemetry2.trackCliSubcommandExport(subcommandOriginal);
48137
- return (await import("./chunks/export-NXS33U5T.js")).default(client, args);
48657
+ return (await import("./chunks/export-RCACOTPE.js")).default(client, args);
48138
48658
  case "publish":
48139
48659
  if (needHelp) {
48140
48660
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48142,7 +48662,7 @@ async function main27(client) {
48142
48662
  return 2;
48143
48663
  }
48144
48664
  telemetry2.trackCliSubcommandPublish(subcommandOriginal);
48145
- return (await import("./chunks/publish-CU2THVYW.js")).default(client, args);
48665
+ return (await import("./chunks/publish-KCYVRDAT.js")).default(client, args);
48146
48666
  case "restore":
48147
48667
  if (needHelp) {
48148
48668
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48150,7 +48670,7 @@ async function main27(client) {
48150
48670
  return 2;
48151
48671
  }
48152
48672
  telemetry2.trackCliSubcommandRestore(subcommandOriginal);
48153
- return (await import("./chunks/restore-RDEOBGAS.js")).default(client, args);
48673
+ return (await import("./chunks/restore-F63NO7XP.js")).default(client, args);
48154
48674
  case "discard-staging":
48155
48675
  if (needHelp) {
48156
48676
  telemetry2.trackCliFlagHelp("routes", subcommandOriginal);
@@ -48158,7 +48678,7 @@ async function main27(client) {
48158
48678
  return 2;
48159
48679
  }
48160
48680
  telemetry2.trackCliSubcommandDiscardStaging(subcommandOriginal);
48161
- return (await import("./chunks/discard-S6N5Q4G5.js")).default(client, args);
48681
+ return (await import("./chunks/discard-Q5HML52L.js")).default(client, args);
48162
48682
  default:
48163
48683
  output_manager_default.error(getInvalidSubcommand(COMMAND_CONFIG36));
48164
48684
  output_manager_default.print(help(routesCommand, { columns: client.stderr.columns }));
@@ -48634,7 +49154,7 @@ function runCommand(cmd2, args) {
48634
49154
  }
48635
49155
 
48636
49156
  // src/commands/target/list.ts
48637
- var import_ms33 = __toESM(require_ms(), 1);
49157
+ var import_ms34 = __toESM(require_ms(), 1);
48638
49158
  var import_chalk188 = __toESM(require_source(), 1);
48639
49159
  function formatBranchMatcher(branchMatcher) {
48640
49160
  if (branchMatcher?.type === "equals") {
@@ -48705,7 +49225,7 @@ async function list14(client, argv) {
48705
49225
  accountId: link.org.id
48706
49226
  });
48707
49227
  output_manager_default.stopSpinner();
48708
- const elapsed2 = (0, import_ms33.default)(Date.now() - start);
49228
+ const elapsed2 = (0, import_ms34.default)(Date.now() - start);
48709
49229
  result = withDefaultEnvironmentsIncluded(result);
48710
49230
  if (asJson) {
48711
49231
  const jsonOutput = {
@@ -48737,7 +49257,7 @@ async function list14(client, argv) {
48737
49257
  BRANCH_TRACKING_MAP[target.type](link.project, target),
48738
49258
  TYPE_MAP[target.type],
48739
49259
  import_chalk188.default.gray(
48740
- target.updatedAt > 0 ? (0, import_ms33.default)(Date.now() - target.updatedAt) : "-"
49260
+ target.updatedAt > 0 ? (0, import_ms34.default)(Date.now() - target.updatedAt) : "-"
48741
49261
  )
48742
49262
  ]
48743
49263
  ];
@@ -52562,7 +53082,7 @@ async function processCharges(response, breakdownPeriod, groupByDimension, conte
52562
53082
  }
52563
53083
 
52564
53084
  // src/commands/webhooks/ls.ts
52565
- var import_ms34 = __toESM(require_ms(), 1);
53085
+ var import_ms35 = __toESM(require_ms(), 1);
52566
53086
  var import_chalk202 = __toESM(require_source(), 1);
52567
53087
  var import_pluralize13 = __toESM(require_pluralize(), 1);
52568
53088
 
@@ -52666,7 +53186,7 @@ async function ls9(client, argv) {
52666
53186
  function formatWebhooksTable(webhooks) {
52667
53187
  const current = Date.now();
52668
53188
  const rows = webhooks.map((webhook) => {
52669
- const age = webhook.createdAt ? (0, import_ms34.default)(current - webhook.createdAt) : "-";
53189
+ const age = webhook.createdAt ? (0, import_ms35.default)(current - webhook.createdAt) : "-";
52670
53190
  const eventsDisplay = webhook.events.length > 2 ? `${webhook.events.slice(0, 2).join(", ")} +${webhook.events.length - 2}` : webhook.events.join(", ");
52671
53191
  return [webhook.id, webhook.url, eventsDisplay, import_chalk202.default.gray(age)];
52672
53192
  });