vercel 54.14.2 → 54.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/chunks/{add-PKT6ULVJ.js → add-6XHROCMP.js} +5 -5
  2. package/dist/chunks/{chunk-3BR246Y6.js → chunk-3RIVJWW5.js} +2 -11
  3. package/dist/chunks/{chunk-J7BMPRCU.js → chunk-574PHXNT.js} +9 -4
  4. package/dist/chunks/{chunk-FLW73SZ3.js → chunk-6A62YUBE.js} +3 -3
  5. package/dist/chunks/{chunk-G3NXHUFT.js → chunk-6SL223IW.js} +1 -1
  6. package/dist/chunks/{chunk-2ZSXQQXI.js → chunk-6TPH3ZBU.js} +10 -19
  7. package/dist/chunks/{chunk-2XEEOHHH.js → chunk-AG6TBL6C.js} +1 -1
  8. package/dist/chunks/chunk-BRQ6PX3U.js +593 -0
  9. package/dist/chunks/{chunk-O7RJHL34.js → chunk-CENOYXK3.js} +583 -11
  10. package/dist/chunks/{chunk-YLGMXYFG.js → chunk-DCN3SOR6.js} +2 -2
  11. package/dist/chunks/{chunk-OHIZ4SVU.js → chunk-EAEEBPMD.js} +15 -3
  12. package/dist/chunks/{chunk-2HN6DLIY.js → chunk-HSXUEJ4T.js} +1 -1
  13. package/dist/chunks/{chunk-SDZ5ICZL.js → chunk-LABX5FSJ.js} +1 -1
  14. package/dist/chunks/{chunk-JISJDGJF.js → chunk-LOPPFUV3.js} +2 -2
  15. package/dist/chunks/{chunk-O4V7CMVO.js → chunk-OEYKL4IY.js} +7 -5
  16. package/dist/chunks/{chunk-372SHB43.js → chunk-OQD4G5FW.js} +4 -4
  17. package/dist/chunks/{chunk-LJ5WXXG6.js → chunk-QH7WYDEP.js} +11 -0
  18. package/dist/chunks/{chunk-Z3X747P6.js → chunk-RHXSECUF.js} +206 -31
  19. package/dist/chunks/{chunk-LQR3CHMH.js → chunk-SFPJ3VR7.js} +421 -799
  20. package/dist/chunks/{chunk-FEYVO2US.js → chunk-TLVKY7WL.js} +90 -32
  21. package/dist/chunks/{chunk-4BFK3C7V.js → chunk-UZD3DM6V.js} +1 -1
  22. package/dist/chunks/{chunk-IPWWE7PB.js → chunk-WGH26RJV.js} +1 -1
  23. package/dist/chunks/{chunk-ILJH44MK.js → chunk-YE3C5CUX.js} +1 -1
  24. package/dist/chunks/{compile-vercel-config-3LV7J3IZ.js → compile-vercel-config-ATU3UBFK.js} +1 -1
  25. package/dist/chunks/{delete-GFW6Y6TZ.js → delete-WIN4UHQY.js} +3 -3
  26. package/dist/chunks/{disable-PGRAS2ZL.js → disable-24KUO3TS.js} +3 -3
  27. package/dist/chunks/{discard-S6N5Q4G5.js → discard-B6ATZCPD.js} +3 -3
  28. package/dist/chunks/{edit-TICKX4ZV.js → edit-DIYIVLFQ.js} +7 -7
  29. package/dist/chunks/{enable-L3BYWN6S.js → enable-BF7NKTV7.js} +3 -3
  30. package/dist/chunks/{export-NXS33U5T.js → export-HHONDN7V.js} +3 -3
  31. package/dist/chunks/{inspect-OOI5JN3Y.js → inspect-GSYKUMK5.js} +4 -4
  32. package/dist/chunks/{list-77WL6463.js → list-OSJGB5AE.js} +4 -4
  33. package/dist/chunks/{list-6EHRL2D4.js → list-PZ4DRWLO.js} +2 -2
  34. package/dist/chunks/{ls-PBSOEXFG.js → ls-QBCHGSIC.js} +5 -5
  35. package/dist/chunks/{publish-CU2THVYW.js → publish-QYPZQ66O.js} +3 -3
  36. package/dist/chunks/{query-HEATRYAK.js → query-BDMX4CF6.js} +3 -3
  37. package/dist/chunks/{reorder-IQVKSM3H.js → reorder-YDTGTTJB.js} +3 -3
  38. package/dist/chunks/{restore-RDEOBGAS.js → restore-LXO2ZBAF.js} +3 -3
  39. package/dist/chunks/{rm-MCSGTU4J.js → rm-3L7FVCDA.js} +5 -5
  40. package/dist/chunks/{rule-inspect-3YK2XSL3.js → rule-inspect-T57QBYJR.js} +5 -5
  41. package/dist/chunks/{rules-F4MRDDHM.js → rules-E5DTNMFG.js} +7 -7
  42. package/dist/chunks/{schema-65C5EBJ7.js → schema-VYVJ4GYP.js} +3 -3
  43. package/dist/chunks/{update-XB4WSRGY.js → update-LT3LZVEZ.js} +5 -5
  44. package/dist/commands/build/index.js +157 -101
  45. package/dist/commands/deploy/index.js +13 -12
  46. package/dist/commands/dev/index.js +70 -23
  47. package/dist/commands/env/index.js +8 -6
  48. package/dist/commands/link/index.js +9 -16
  49. package/dist/commands/list/index.js +3 -3
  50. package/dist/commands-bulk.js +5371 -1618
  51. package/dist/index.js +9 -9
  52. package/dist/version.mjs +1 -1
  53. package/package.json +21 -21
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  metricsCommand
9
- } from "./chunk-ILJH44MK.js";
9
+ } from "./chunk-YE3C5CUX.js";
10
10
  import {
11
11
  routesCommand
12
12
  } from "./chunk-IB56QKCM.js";
@@ -25,10 +25,10 @@ import {
25
25
  import {
26
26
  buildCommand,
27
27
  pullCommand
28
- } from "./chunk-SDZ5ICZL.js";
28
+ } from "./chunk-LABX5FSJ.js";
29
29
  import {
30
30
  envCommand
31
- } from "./chunk-LQR3CHMH.js";
31
+ } from "./chunk-SFPJ3VR7.js";
32
32
  import {
33
33
  confirmOption,
34
34
  deploymentOption,
@@ -2707,6 +2707,46 @@ var transferInSubcommand = {
2707
2707
  ],
2708
2708
  examples: []
2709
2709
  };
2710
+ var verifySubcommand = {
2711
+ name: "verify",
2712
+ aliases: [],
2713
+ description: "Check a domain's DNS configuration and explain what to fix when it is misconfigured or unverified",
2714
+ arguments: [
2715
+ {
2716
+ name: "domain",
2717
+ required: true
2718
+ }
2719
+ ],
2720
+ options: [
2721
+ projectOption,
2722
+ {
2723
+ name: "strict",
2724
+ shorthand: null,
2725
+ type: Boolean,
2726
+ deprecated: false,
2727
+ description: "Check DNS for the exact domain only, without falling back to the parent zone configuration"
2728
+ },
2729
+ formatOption
2730
+ ],
2731
+ examples: [
2732
+ {
2733
+ name: "Check why a domain is not working",
2734
+ value: `${packageName} domains verify example.com`
2735
+ },
2736
+ {
2737
+ name: "Check a domain against a specific project",
2738
+ value: `${packageName} domains verify example.com --project my-site`
2739
+ },
2740
+ {
2741
+ name: "JSON output (the exit code is non-zero when the domain is misconfigured or unverified)",
2742
+ value: `${packageName} domains verify example.com --format json`
2743
+ },
2744
+ {
2745
+ name: "Agent-friendly output with status, reason, and suggested next commands",
2746
+ value: `${packageName} domains verify example.com --non-interactive`
2747
+ }
2748
+ ]
2749
+ };
2710
2750
  var domainsCommand = {
2711
2751
  name: "domains",
2712
2752
  aliases: ["domain"],
@@ -2722,7 +2762,8 @@ var domainsCommand = {
2722
2762
  priceSubcommand,
2723
2763
  searchSubcommand,
2724
2764
  transferInSubcommand,
2725
- removeSubcommand6
2765
+ removeSubcommand6,
2766
+ verifySubcommand
2726
2767
  ],
2727
2768
  options: [],
2728
2769
  examples: []
@@ -3789,7 +3830,72 @@ var firewallCommand = {
3789
3830
  ]
3790
3831
  };
3791
3832
 
3833
+ // src/util/flags/comparators.ts
3834
+ var FLAG_CONDITION_COMPARATORS = [
3835
+ "eq",
3836
+ "!eq",
3837
+ "oneOf",
3838
+ "!oneOf",
3839
+ "containsAllOf",
3840
+ "containsAnyOf",
3841
+ "containsNoneOf",
3842
+ "startsWith",
3843
+ "endsWith",
3844
+ "contains",
3845
+ "!contains",
3846
+ "ex",
3847
+ "!ex",
3848
+ "gt",
3849
+ "gte",
3850
+ "lt",
3851
+ "lte"
3852
+ ];
3853
+ var FLAG_CONDITION_LIST_COMPARATORS = [
3854
+ "oneOf",
3855
+ "!oneOf",
3856
+ "containsAllOf",
3857
+ "containsAnyOf",
3858
+ "containsNoneOf"
3859
+ ];
3860
+ var FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS = [
3861
+ "ex",
3862
+ "!ex"
3863
+ ];
3864
+ function formatFlagConditionComparatorList() {
3865
+ return FLAG_CONDITION_COMPARATORS.join(", ");
3866
+ }
3867
+ var FLAG_CONDITION_COMPARATOR_LABELS = {
3868
+ eq: "is",
3869
+ "!eq": "is not",
3870
+ oneOf: "is in",
3871
+ "!oneOf": "is not in",
3872
+ containsAllOf: "contains all of",
3873
+ containsAnyOf: "contains any of",
3874
+ containsNoneOf: "contains none of",
3875
+ startsWith: "starts with",
3876
+ endsWith: "ends with",
3877
+ contains: "contains",
3878
+ "!contains": "does not contain",
3879
+ ex: "has any value",
3880
+ "!ex": "has no value",
3881
+ gt: "is greater than",
3882
+ gte: "is greater than or equal to",
3883
+ lt: "is less than",
3884
+ lte: "is less than or equal to"
3885
+ };
3886
+ var LEGACY_FLAG_CONDITION_COMPARATOR_LABELS = {
3887
+ notContains: FLAG_CONDITION_COMPARATOR_LABELS["!contains"]
3888
+ };
3889
+ function formatFlagConditionComparator(comparator, options) {
3890
+ const label = FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? LEGACY_FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? comparator;
3891
+ if (options?.ignoreCase) {
3892
+ return `${label} (case-insensitive)`;
3893
+ }
3894
+ return label;
3895
+ }
3896
+
3792
3897
  // src/commands/flags/command.ts
3898
+ var segmentRuleOperatorDescription = `Valid operators: ${formatFlagConditionComparatorList()}`;
3793
3899
  var listSubcommand10 = {
3794
3900
  name: "list",
3795
3901
  aliases: ["ls"],
@@ -4335,6 +4441,259 @@ var enableSubcommand = {
4335
4441
  }
4336
4442
  ]
4337
4443
  };
4444
+ var segmentsListSubcommand = {
4445
+ name: "list",
4446
+ aliases: ["ls"],
4447
+ description: "List all feature flag segments for the current project",
4448
+ arguments: [],
4449
+ options: [
4450
+ {
4451
+ name: "json",
4452
+ shorthand: null,
4453
+ type: Boolean,
4454
+ deprecated: false,
4455
+ description: "Output in JSON format"
4456
+ }
4457
+ ],
4458
+ examples: [
4459
+ {
4460
+ name: "List all segments",
4461
+ value: `${packageName} flags segments ls`
4462
+ },
4463
+ {
4464
+ name: "List segments as JSON",
4465
+ value: `${packageName} flags segments ls --json`
4466
+ }
4467
+ ]
4468
+ };
4469
+ var segmentsInspectSubcommand = {
4470
+ name: "inspect",
4471
+ aliases: [],
4472
+ description: "Display information about a feature flag segment",
4473
+ arguments: [
4474
+ {
4475
+ name: "segment",
4476
+ required: true
4477
+ }
4478
+ ],
4479
+ options: [
4480
+ {
4481
+ name: "json",
4482
+ shorthand: null,
4483
+ type: Boolean,
4484
+ deprecated: false,
4485
+ description: "Output in JSON format"
4486
+ }
4487
+ ],
4488
+ examples: [
4489
+ {
4490
+ name: "Show details of a segment",
4491
+ value: `${packageName} flags segments inspect beta-users`
4492
+ },
4493
+ {
4494
+ name: "Show segment data as JSON",
4495
+ value: `${packageName} flags segments inspect beta-users --json`
4496
+ }
4497
+ ]
4498
+ };
4499
+ var segmentsCreateSubcommand = {
4500
+ name: "create",
4501
+ aliases: ["add"],
4502
+ description: "Create a feature flag segment",
4503
+ arguments: [
4504
+ {
4505
+ name: "slug",
4506
+ required: true
4507
+ }
4508
+ ],
4509
+ options: [
4510
+ {
4511
+ name: "label",
4512
+ shorthand: "l",
4513
+ type: String,
4514
+ deprecated: false,
4515
+ description: "Human-readable label for the segment",
4516
+ argument: "LABEL"
4517
+ },
4518
+ {
4519
+ name: "description",
4520
+ shorthand: "d",
4521
+ type: String,
4522
+ deprecated: false,
4523
+ description: "Description of the segment",
4524
+ argument: "TEXT"
4525
+ },
4526
+ {
4527
+ name: "hint",
4528
+ shorthand: null,
4529
+ type: String,
4530
+ deprecated: false,
4531
+ description: "Hint describing who belongs in the segment",
4532
+ argument: "TEXT"
4533
+ },
4534
+ {
4535
+ name: "data",
4536
+ shorthand: null,
4537
+ type: String,
4538
+ deprecated: false,
4539
+ description: "Full segment data JSON with rules, include, and exclude fields",
4540
+ argument: "JSON"
4541
+ },
4542
+ {
4543
+ name: "add",
4544
+ shorthand: "a",
4545
+ type: [String],
4546
+ deprecated: false,
4547
+ description: `Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,
4548
+ argument: "TARGET"
4549
+ },
4550
+ {
4551
+ name: "json",
4552
+ shorthand: null,
4553
+ type: Boolean,
4554
+ deprecated: false,
4555
+ description: "Output the created segment as JSON"
4556
+ }
4557
+ ],
4558
+ examples: [
4559
+ {
4560
+ name: "Create a segment with included users",
4561
+ value: `${packageName} flags segments create beta-users --label "Beta users" --add include:user.id=user_123 --add include:user.id=user_456`
4562
+ },
4563
+ {
4564
+ name: "Create a segment from rules",
4565
+ value: `${packageName} flags segments create enterprise-users --label "Enterprise users" --add rule:user.plan:eq:enterprise`
4566
+ },
4567
+ {
4568
+ name: "Create a segment from full JSON data",
4569
+ value: `${packageName} flags segments create staff --label Staff --data '{"rules":[],"include":{"user":{"email":[{"value":"me@company.com"}]}},"exclude":{}}'`
4570
+ }
4571
+ ]
4572
+ };
4573
+ var segmentsUpdateSubcommand = {
4574
+ name: "update",
4575
+ aliases: [],
4576
+ description: "Update a feature flag segment",
4577
+ arguments: [
4578
+ {
4579
+ name: "segment",
4580
+ required: true
4581
+ }
4582
+ ],
4583
+ options: [
4584
+ {
4585
+ name: "label",
4586
+ shorthand: "l",
4587
+ type: String,
4588
+ deprecated: false,
4589
+ description: "New human-readable label for the segment",
4590
+ argument: "LABEL"
4591
+ },
4592
+ {
4593
+ name: "description",
4594
+ shorthand: "d",
4595
+ type: String,
4596
+ deprecated: false,
4597
+ description: "New description for the segment",
4598
+ argument: "TEXT"
4599
+ },
4600
+ {
4601
+ name: "hint",
4602
+ shorthand: null,
4603
+ type: String,
4604
+ deprecated: false,
4605
+ description: "New hint for the segment",
4606
+ argument: "TEXT"
4607
+ },
4608
+ {
4609
+ name: "data",
4610
+ shorthand: null,
4611
+ type: String,
4612
+ deprecated: false,
4613
+ description: "Replace the full segment data JSON with rules, include, and exclude fields",
4614
+ argument: "JSON"
4615
+ },
4616
+ {
4617
+ name: "add",
4618
+ shorthand: "a",
4619
+ type: [String],
4620
+ deprecated: false,
4621
+ description: `Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,
4622
+ argument: "TARGET"
4623
+ },
4624
+ {
4625
+ name: "remove",
4626
+ shorthand: null,
4627
+ type: [String],
4628
+ deprecated: false,
4629
+ description: `Remove include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE, or rule:RULE_ID; repeatable. ${segmentRuleOperatorDescription}`,
4630
+ argument: "TARGET"
4631
+ },
4632
+ {
4633
+ name: "json",
4634
+ shorthand: null,
4635
+ type: Boolean,
4636
+ deprecated: false,
4637
+ description: "Output the updated segment as JSON"
4638
+ }
4639
+ ],
4640
+ examples: [
4641
+ {
4642
+ name: "Rename a segment",
4643
+ value: `${packageName} flags segments update beta-users --label "Early access users"`
4644
+ },
4645
+ {
4646
+ name: "Add and remove included users",
4647
+ value: `${packageName} flags segments update beta-users --add include:user.id=user_789 --remove include:user.id=user_123`
4648
+ },
4649
+ {
4650
+ name: "Add and remove rules",
4651
+ value: `${packageName} flags segments update enterprise-users --add rule:user.email:ends-with:@company.com --remove rule:user.plan:eq:pro`
4652
+ }
4653
+ ]
4654
+ };
4655
+ var segmentsRemoveSubcommand = {
4656
+ name: "remove",
4657
+ aliases: ["rm"],
4658
+ description: "Delete a feature flag segment",
4659
+ arguments: [
4660
+ {
4661
+ name: "segment",
4662
+ required: true
4663
+ }
4664
+ ],
4665
+ options: [
4666
+ {
4667
+ ...yesOption,
4668
+ description: "Skip the confirmation prompt when deleting a segment"
4669
+ }
4670
+ ],
4671
+ examples: [
4672
+ {
4673
+ name: "Delete a segment",
4674
+ value: `${packageName} flags segments rm beta-users`
4675
+ },
4676
+ {
4677
+ name: "Delete without confirmation",
4678
+ value: `${packageName} flags segments rm beta-users --yes`
4679
+ }
4680
+ ]
4681
+ };
4682
+ var segmentsSubcommand = {
4683
+ name: "segments",
4684
+ aliases: [],
4685
+ description: "Manage feature flag segments",
4686
+ arguments: [],
4687
+ subcommands: [
4688
+ segmentsListSubcommand,
4689
+ segmentsInspectSubcommand,
4690
+ segmentsCreateSubcommand,
4691
+ segmentsUpdateSubcommand,
4692
+ segmentsRemoveSubcommand
4693
+ ],
4694
+ options: [],
4695
+ examples: []
4696
+ };
4338
4697
  var sdkKeysListSubcommand = {
4339
4698
  name: "list",
4340
4699
  aliases: ["ls"],
@@ -4498,9 +4857,6 @@ var flagsCommand = {
4498
4857
  name: "flags",
4499
4858
  aliases: [],
4500
4859
  description: "Manage feature flags for a Vercel project",
4501
- // Hidden during initial rollout. Will be unhidden once the feature is
4502
- // generally available and public documentation is published.
4503
- hidden: true,
4504
4860
  arguments: [],
4505
4861
  subcommands: [
4506
4862
  listSubcommand10,
@@ -4515,6 +4871,7 @@ var flagsCommand = {
4515
4871
  archiveSubcommand,
4516
4872
  disableSubcommand,
4517
4873
  enableSubcommand,
4874
+ segmentsSubcommand,
4518
4875
  sdkKeysSubcommand,
4519
4876
  prepareSubcommand,
4520
4877
  overrideSubcommand
@@ -5881,7 +6238,7 @@ var logsCommand = {
5881
6238
  shorthand: "b",
5882
6239
  type: String,
5883
6240
  deprecated: false,
5884
- description: "Filter by git branch (defaults to current branch when in a git repo)"
6241
+ description: "Filter by git branch (defaults to current branch for a linked project)"
5885
6242
  },
5886
6243
  {
5887
6244
  name: "no-branch",
@@ -5900,6 +6257,10 @@ var logsCommand = {
5900
6257
  name: "Stream live logs for a deployment ID",
5901
6258
  value: `${packageName} logs dpl_xxxxx --follow`
5902
6259
  },
6260
+ {
6261
+ name: "Stream logs for the latest production deployment of a project",
6262
+ value: `${packageName} logs --project my-app --follow`
6263
+ },
5903
6264
  {
5904
6265
  name: "Display recent logs for the linked project",
5905
6266
  value: `${packageName} logs`
@@ -8037,7 +8398,7 @@ var getSubcommand2 = {
8037
8398
  name: "view",
8038
8399
  shorthand: null,
8039
8400
  type: String,
8040
- argument: "timeline|tree|gantt",
8401
+ argument: "timeline|tree|waterfall",
8041
8402
  deprecated: false,
8042
8403
  description: "Dashboard view to open. Only valid with --open. Defaults to timeline."
8043
8404
  }
@@ -8064,8 +8425,8 @@ var getSubcommand2 = {
8064
8425
  value: `${packageName} traces get req_1234567890 --open`
8065
8426
  },
8066
8427
  {
8067
- name: "Open the trace in the Vercel Dashboard with the gantt view",
8068
- value: `${packageName} traces get req_1234567890 --open --view gantt`
8428
+ name: "Open the trace in the Vercel Dashboard with the waterfall view",
8429
+ value: `${packageName} traces get req_1234567890 --open --view waterfall`
8069
8430
  }
8070
8431
  ]
8071
8432
  };
@@ -8491,6 +8852,202 @@ var getSubcommand3 = {
8491
8852
  ],
8492
8853
  examples: []
8493
8854
  };
8855
+ var signedTokenSubcommand = {
8856
+ name: "signed-token",
8857
+ aliases: [],
8858
+ description: "Issue a short-lived signed token for Blob operations",
8859
+ arguments: [],
8860
+ options: [
8861
+ {
8862
+ name: "pathname",
8863
+ shorthand: "p",
8864
+ type: String,
8865
+ deprecated: false,
8866
+ description: 'Pathname scope for the token. Defaults to "*" when omitted',
8867
+ argument: "STRING"
8868
+ },
8869
+ {
8870
+ name: "operation",
8871
+ shorthand: "o",
8872
+ type: [String],
8873
+ deprecated: false,
8874
+ description: "Allowed operation(s): get, head, put, delete (repeatable)",
8875
+ argument: "OPERATION",
8876
+ choices: ["get", "head", "put", "delete"]
8877
+ },
8878
+ {
8879
+ name: "valid-until",
8880
+ shorthand: null,
8881
+ type: Number,
8882
+ deprecated: false,
8883
+ description: "Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",
8884
+ argument: "TIMESTAMP_MS"
8885
+ },
8886
+ {
8887
+ name: "valid-for",
8888
+ shorthand: null,
8889
+ type: String,
8890
+ deprecated: false,
8891
+ description: "Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",
8892
+ argument: "DURATION"
8893
+ },
8894
+ {
8895
+ name: "allowed-content-type",
8896
+ shorthand: null,
8897
+ type: [String],
8898
+ deprecated: false,
8899
+ description: "Allowed content type(s) for put operations (repeatable, supports wildcards)",
8900
+ argument: "MIME_TYPE"
8901
+ },
8902
+ {
8903
+ name: "maximum-size-in-bytes",
8904
+ shorthand: null,
8905
+ type: Number,
8906
+ deprecated: false,
8907
+ description: "Maximum upload size in bytes for put operations (max: 5TB)",
8908
+ argument: "BYTES"
8909
+ },
8910
+ {
8911
+ name: "json",
8912
+ shorthand: null,
8913
+ type: Boolean,
8914
+ deprecated: false,
8915
+ description: "Output signed token payload as JSON"
8916
+ }
8917
+ ],
8918
+ examples: [
8919
+ {
8920
+ name: "Issue a signed token for reads",
8921
+ value: "vercel blob signed-token --pathname media/photo.jpg --operation get"
8922
+ },
8923
+ {
8924
+ name: "Issue a signed token for uploads with constraints",
8925
+ value: "vercel blob signed-token --pathname uploads/* --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"
8926
+ }
8927
+ ]
8928
+ };
8929
+ var presignSubcommand = {
8930
+ name: "presign",
8931
+ aliases: [],
8932
+ description: "Generate a presigned URL for Blob operations",
8933
+ arguments: [
8934
+ {
8935
+ name: "pathname",
8936
+ required: true
8937
+ }
8938
+ ],
8939
+ options: [
8940
+ accessOption,
8941
+ {
8942
+ name: "operation",
8943
+ shorthand: "o",
8944
+ type: String,
8945
+ deprecated: false,
8946
+ description: "Operation for the presigned URL: get, head, put, or delete (default: get)",
8947
+ argument: "OPERATION",
8948
+ choices: ["get", "head", "put", "delete"]
8949
+ },
8950
+ {
8951
+ name: "delegation-token",
8952
+ shorthand: null,
8953
+ type: String,
8954
+ deprecated: false,
8955
+ description: "Delegation token from `vercel blob signed-token` (must be used with --client-signing-token)",
8956
+ argument: "STRING"
8957
+ },
8958
+ {
8959
+ name: "client-signing-token",
8960
+ shorthand: null,
8961
+ type: String,
8962
+ deprecated: false,
8963
+ description: "Signing secret/token from `vercel blob signed-token` (must be used with --delegation-token)",
8964
+ argument: "STRING"
8965
+ },
8966
+ {
8967
+ name: "valid-until",
8968
+ shorthand: null,
8969
+ type: Number,
8970
+ deprecated: false,
8971
+ description: "Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",
8972
+ argument: "TIMESTAMP_MS"
8973
+ },
8974
+ {
8975
+ name: "valid-for",
8976
+ shorthand: null,
8977
+ type: String,
8978
+ deprecated: false,
8979
+ description: "Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",
8980
+ argument: "DURATION"
8981
+ },
8982
+ {
8983
+ name: "if-match",
8984
+ shorthand: null,
8985
+ type: String,
8986
+ deprecated: false,
8987
+ description: "If-Match constraint for put or delete operations",
8988
+ argument: "STRING"
8989
+ },
8990
+ {
8991
+ name: "allow-overwrite",
8992
+ shorthand: null,
8993
+ type: Boolean,
8994
+ deprecated: false,
8995
+ description: "Allow overwriting existing blobs (put only)"
8996
+ },
8997
+ {
8998
+ name: "add-random-suffix",
8999
+ shorthand: null,
9000
+ type: Boolean,
9001
+ deprecated: false,
9002
+ description: "Add a random suffix to the pathname (put only)"
9003
+ },
9004
+ {
9005
+ name: "cache-control-max-age",
9006
+ shorthand: null,
9007
+ type: Number,
9008
+ deprecated: false,
9009
+ description: "Cache-Control max-age in seconds (put only)",
9010
+ argument: "SECONDS"
9011
+ },
9012
+ {
9013
+ name: "allowed-content-type",
9014
+ shorthand: null,
9015
+ type: [String],
9016
+ deprecated: false,
9017
+ description: "Allowed content type(s) for uploads (put only, repeatable)",
9018
+ argument: "MIME_TYPE"
9019
+ },
9020
+ {
9021
+ name: "maximum-size-in-bytes",
9022
+ shorthand: null,
9023
+ type: Number,
9024
+ deprecated: false,
9025
+ description: "Maximum upload size in bytes (put only, max: 5TB)",
9026
+ argument: "BYTES"
9027
+ },
9028
+ {
9029
+ name: "json",
9030
+ shorthand: null,
9031
+ type: Boolean,
9032
+ deprecated: false,
9033
+ description: "Output presign result as JSON"
9034
+ }
9035
+ ],
9036
+ examples: [
9037
+ {
9038
+ name: "Generate a presigned GET URL",
9039
+ value: "vercel blob presign media/photo.jpg --access public"
9040
+ },
9041
+ {
9042
+ name: "Generate a presigned PUT URL with upload constraints",
9043
+ value: "vercel blob presign uploads/image.jpg --access private --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"
9044
+ },
9045
+ {
9046
+ name: "Generate a presigned URL from existing signed-token output",
9047
+ value: "vercel blob presign uploads/image.jpg --access private --operation put --delegation-token <delegationToken> --client-signing-token <clientSigningToken>"
9048
+ }
9049
+ ]
9050
+ };
8494
9051
  var createStoreSubcommand = {
8495
9052
  name: "create-store",
8496
9053
  aliases: [],
@@ -8613,6 +9170,8 @@ var blobCommand = {
8613
9170
  getSubcommand3,
8614
9171
  delSubcommand,
8615
9172
  copySubcommand,
9173
+ signedTokenSubcommand,
9174
+ presignSubcommand,
8616
9175
  createStoreSubcommand,
8617
9176
  deleteStoreSubcommand,
8618
9177
  getStoreInfoSubcommand,
@@ -8908,6 +9467,7 @@ export {
8908
9467
  checkSubcommand,
8909
9468
  moveSubcommand,
8910
9469
  transferInSubcommand,
9470
+ verifySubcommand,
8911
9471
  domainsCommand,
8912
9472
  listSubcommand9,
8913
9473
  addSubcommand6 as addSubcommand5,
@@ -8945,6 +9505,10 @@ export {
8945
9505
  systemMitigationsResumeSubcommand,
8946
9506
  systemMitigationsSubcommand,
8947
9507
  firewallCommand,
9508
+ FLAG_CONDITION_LIST_COMPARATORS,
9509
+ FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,
9510
+ formatFlagConditionComparatorList,
9511
+ formatFlagConditionComparator,
8948
9512
  listSubcommand10,
8949
9513
  inspectSubcommand2,
8950
9514
  createSubcommand4,
@@ -8957,6 +9521,12 @@ export {
8957
9521
  archiveSubcommand,
8958
9522
  disableSubcommand,
8959
9523
  enableSubcommand,
9524
+ segmentsListSubcommand,
9525
+ segmentsInspectSubcommand,
9526
+ segmentsCreateSubcommand,
9527
+ segmentsUpdateSubcommand,
9528
+ segmentsRemoveSubcommand,
9529
+ segmentsSubcommand,
8960
9530
  sdkKeysListSubcommand,
8961
9531
  sdkKeysAddSubcommand,
8962
9532
  sdkKeysRemoveSubcommand,
@@ -9083,6 +9653,8 @@ export {
9083
9653
  delSubcommand,
9084
9654
  copySubcommand,
9085
9655
  getSubcommand3,
9656
+ signedTokenSubcommand,
9657
+ presignSubcommand,
9086
9658
  createStoreSubcommand,
9087
9659
  deleteStoreSubcommand,
9088
9660
  emptyStoreSubcommand,