vercel 59.9.1 → 59.11.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 (86) hide show
  1. package/dist/chunks/{add-6YKY5LGR.js → add-CFRVNBKX.js} +2 -2
  2. package/dist/chunks/{add-QZ5FW7LT.js → add-E45DFT3J.js} +5 -5
  3. package/dist/chunks/{add-DGK2A56E.js → add-O3GSKZUF.js} +2 -2
  4. package/dist/chunks/{build-YFUXHSMU.js → build-2NTE7JWK.js} +2 -2
  5. package/dist/chunks/{chunk-52P3DIMH.js → chunk-3GGEPBAK.js} +1 -1
  6. package/dist/chunks/{chunk-I7ZVTKXM.js → chunk-3UKQ5L3J.js} +1 -1
  7. package/dist/chunks/{chunk-LDZFKXIR.js → chunk-4KVJ2M4J.js} +143 -5
  8. package/dist/chunks/{chunk-XN75ARAD.js → chunk-4Z4HV3CA.js} +1 -1
  9. package/dist/chunks/{chunk-T3MRP74K.js → chunk-5JU7QOUH.js} +1 -1
  10. package/dist/chunks/{chunk-DSBOE2OV.js → chunk-6C2JTP4X.js} +1 -1
  11. package/dist/chunks/{chunk-LD3Q3MUI.js → chunk-CD7QO7KM.js} +5 -6
  12. package/dist/chunks/{chunk-FME4CIZL.js → chunk-G42BDXTR.js} +2 -2
  13. package/dist/chunks/{chunk-3E62ATUY.js → chunk-GS2PZFXH.js} +1 -1
  14. package/dist/chunks/{chunk-PIFTX5CY.js → chunk-HLON6KMA.js} +2 -2
  15. package/dist/chunks/{chunk-IWNFDR3C.js → chunk-JCWJUILX.js} +107 -8
  16. package/dist/chunks/{chunk-QWOCOZMS.js → chunk-LKXKVRDU.js} +1 -1
  17. package/dist/chunks/{chunk-OHQJEOP7.js → chunk-TBFROLYC.js} +78 -13
  18. package/dist/chunks/{chunk-FEQJSISH.js → chunk-U6PIXADP.js} +1 -1
  19. package/dist/chunks/{chunk-H43VTKRO.js → chunk-UAPPUXE4.js} +4 -4
  20. package/dist/chunks/{chunk-ZCAFRSCD.js → chunk-UCSXLBZP.js} +1 -1
  21. package/dist/chunks/{chunk-HK2IYHVR.js → chunk-UXEZ4J3R.js} +32 -19
  22. package/dist/chunks/{chunk-62XYUSRS.js → chunk-XJ5UBNNI.js} +1 -1
  23. package/dist/chunks/{chunk-22GK226I.js → chunk-XS4YBHGW.js} +2 -2
  24. package/dist/chunks/{chunk-2TXLG52H.js → chunk-XV7KBXHP.js} +1 -1
  25. package/dist/chunks/{chunk-PGTGT7AU.js → chunk-YPK2XMZG.js} +2 -2
  26. package/dist/chunks/{chunk-7PMXNOZH.js → chunk-ZH2JS7S6.js} +1 -1
  27. package/dist/chunks/{clear-LHNLYPZB.js → clear-YUJE24VB.js} +2 -2
  28. package/dist/chunks/{compile-vercel-config-6KPIBWNU.js → compile-vercel-config-GFR7RASU.js} +1 -1
  29. package/dist/chunks/{config-CNP7P3VD.js → config-XXTDK74C.js} +4 -4
  30. package/dist/chunks/{config-UETLVP5G.js → config-Y7IOHFIF.js} +2 -2
  31. package/dist/chunks/config-validator.mjs +1 -1
  32. package/dist/chunks/{delete-MB7H2LWR.js → delete-7WTEHQCN.js} +2 -2
  33. package/dist/chunks/{delete-BYCZJBHH.js → delete-CLDQ7Y54.js} +2 -2
  34. package/dist/chunks/{disable-OCDW6U2Q.js → disable-2ATYGRFD.js} +2 -2
  35. package/dist/chunks/{discard-DWPG5UX5.js → discard-OVE3QLQN.js} +2 -2
  36. package/dist/chunks/{edit-NOZXPAV3.js → edit-5DPGZZZO.js} +3 -3
  37. package/dist/chunks/{edit-ATX4K4OL.js → edit-K3LYFSD5.js} +2 -2
  38. package/dist/chunks/{enable-BO5DALIP.js → enable-HGE4W5HS.js} +2 -2
  39. package/dist/chunks/{export-RS6X5DZW.js → export-7JV3B73T.js} +2 -2
  40. package/dist/chunks/{image-QCNVSQFC.js → image-OAZPRIVV.js} +3 -3
  41. package/dist/chunks/{import-builders-H4VASUQQ.js → import-builders-AAFVLI5J.js} +2 -2
  42. package/dist/chunks/{inspect-LZUSSUNE.js → inspect-27PTSMPS.js} +2 -2
  43. package/dist/chunks/{inspect-XXHIV73A.js → inspect-FHG6BBPK.js} +2 -2
  44. package/dist/chunks/{inspect-HHXFMDN2.js → inspect-IY7LHGUX.js} +2 -2
  45. package/dist/chunks/{inspect-BOLFZZBM.js → inspect-OS3EMH6V.js} +3 -3
  46. package/dist/chunks/{inspect-GPLZZEW2.js → inspect-URZIMJYC.js} +2 -2
  47. package/dist/chunks/{list-XDRILJOZ.js → list-6D7LW4DE.js} +3 -3
  48. package/dist/chunks/{list-THFMP23I.js → list-KRQD3OK4.js} +2 -2
  49. package/dist/chunks/{list-H7ED7LCU.js → list-QJWC733B.js} +1 -1
  50. package/dist/chunks/{login-6KR5DCYM.js → login-UD6MYSNY.js} +2 -2
  51. package/dist/chunks/{ls-5RGCKNYB.js → ls-GIWVQKCG.js} +3 -3
  52. package/dist/chunks/{ls-GRY6G2OR.js → ls-L5J3CS43.js} +2 -2
  53. package/dist/chunks/{ls-LXVF34KZ.js → ls-PCEHXUR6.js} +2 -2
  54. package/dist/chunks/{ls-PKN53PLB.js → ls-VIA7AUIV.js} +2 -2
  55. package/dist/chunks/{ls-5QFIXKF3.js → ls-XGBTCRRR.js} +2 -2
  56. package/dist/chunks/{ls-CBFHIORN.js → ls-ZPDAOUHY.js} +2 -2
  57. package/dist/chunks/{open-Q7GEQR5J.js → open-TII7T3VH.js} +2 -2
  58. package/dist/chunks/{permissions-6SA56V2A.js → permissions-JWRTNLAF.js} +4 -4
  59. package/dist/chunks/{publish-TYGP2WTZ.js → publish-QPNQWBA3.js} +2 -2
  60. package/dist/chunks/{push-5KTXEM2H.js → push-PKPE6E5Q.js} +2 -2
  61. package/dist/chunks/{query-DSYDUL7N.js → query-IOG4LPJZ.js} +1 -1
  62. package/dist/chunks/{reorder-BEQAMXC3.js → reorder-HZOC3DN4.js} +2 -2
  63. package/dist/chunks/{reply-GSQ5PVE4.js → reply-TDPC3HKD.js} +2 -2
  64. package/dist/chunks/{resolve-AG4SS62T.js → resolve-IF3CVXHB.js} +2 -2
  65. package/dist/chunks/{restore-LARYR55K.js → restore-M6B5E5OX.js} +2 -2
  66. package/dist/chunks/{rm-FPAFEN2E.js → rm-6PV64BEM.js} +2 -2
  67. package/dist/chunks/{rm-ZKG56ZEW.js → rm-KJZAMWB5.js} +2 -2
  68. package/dist/chunks/{rm-F5SIKHU2.js → rm-RMSGUZSC.js} +2 -2
  69. package/dist/chunks/{rm-GPHZ3GID.js → rm-VAGUMQMB.js} +3 -3
  70. package/dist/chunks/{rm-FG63ON57.js → rm-ZOBZUVKY.js} +2 -2
  71. package/dist/chunks/{rule-inspect-JS4BK6GZ.js → rule-inspect-BKT5BO6Y.js} +3 -3
  72. package/dist/chunks/{rules-SMIGLNUR.js → rules-PTSN2QS7.js} +6 -6
  73. package/dist/chunks/{schema-FRSEAOYM.js → schema-KEAV2ESA.js} +1 -1
  74. package/dist/chunks/{set-E46SNNNI.js → set-NACUZBNP.js} +2 -2
  75. package/dist/chunks/{tags-CMBXR3FL.js → tags-CF3VZ4P7.js} +2 -2
  76. package/dist/chunks/{update-M5WXFGQ4.js → update-AMHBMC5O.js} +5 -5
  77. package/dist/commands/build/index.js +508 -63
  78. package/dist/commands/deploy/index.js +7 -7
  79. package/dist/commands/dev/index.js +6 -6
  80. package/dist/commands/env/index.js +6 -6
  81. package/dist/commands/link/index.js +2 -2
  82. package/dist/commands/list/index.js +2 -2
  83. package/dist/commands-bulk.js +2677 -1849
  84. package/dist/index.js +22 -8
  85. package/dist/version.mjs +1 -1
  86. package/package.json +49 -49
@@ -17,7 +17,7 @@ import {
17
17
  emitVcrArgParseError,
18
18
  resolveVcrScope,
19
19
  validateVcrJsonOutput
20
- } from "./chunk-T3MRP74K.js";
20
+ } from "./chunk-5JU7QOUH.js";
21
21
  import "./chunk-WNAKOXGK.js";
22
22
  import {
23
23
  outputError
@@ -27,7 +27,7 @@ import {
27
27
  permissionsAddSubcommand
28
28
  } from "./chunk-EZKW5YJ2.js";
29
29
  import "./chunk-5XECIWME.js";
30
- import "./chunk-OHQJEOP7.js";
30
+ import "./chunk-TBFROLYC.js";
31
31
  import "./chunk-FXD67VN5.js";
32
32
  import "./chunk-XNFHNTS2.js";
33
33
  import {
@@ -8,21 +8,21 @@ import {
8
8
  parseCustomAlertQueryBody,
9
9
  resolveCustomAlertProjectName,
10
10
  setMissingCustomAlertProjectScope
11
- } from "./chunk-PIFTX5CY.js";
11
+ } from "./chunk-HLON6KMA.js";
12
12
  import {
13
13
  emitRulesArgParseError,
14
14
  handleRulesApiError,
15
15
  parseRulesFlagsAndScope,
16
16
  rulesCollectionPath
17
- } from "./chunk-FEQJSISH.js";
17
+ } from "./chunk-U6PIXADP.js";
18
18
  import {
19
19
  isCustomAlertRule
20
20
  } from "./chunk-26XDDLXM.js";
21
- import "./chunk-ZCAFRSCD.js";
21
+ import "./chunk-UCSXLBZP.js";
22
22
  import "./chunk-A3NYPUKZ.js";
23
23
  import "./chunk-3T7WSWZH.js";
24
24
  import "./chunk-FGDKMNEN.js";
25
- import "./chunk-52P3DIMH.js";
25
+ import "./chunk-3GGEPBAK.js";
26
26
  import "./chunk-AINIBIP4.js";
27
27
  import "./chunk-XRWOTCDO.js";
28
28
  import {
@@ -31,7 +31,7 @@ import {
31
31
  import {
32
32
  rulesAddSubcommand
33
33
  } from "./chunk-XM3LOQIX.js";
34
- import "./chunk-OHQJEOP7.js";
34
+ import "./chunk-TBFROLYC.js";
35
35
  import "./chunk-FXD67VN5.js";
36
36
  import "./chunk-XNFHNTS2.js";
37
37
  import {
@@ -9,7 +9,7 @@ import {
9
9
  handleVcrApiError,
10
10
  resolveVcrScope,
11
11
  validateVcrJsonOutput
12
- } from "./chunk-T3MRP74K.js";
12
+ } from "./chunk-5JU7QOUH.js";
13
13
  import "./chunk-WNAKOXGK.js";
14
14
  import {
15
15
  outputError
@@ -22,7 +22,7 @@ import "./chunk-EZKW5YJ2.js";
22
22
  import "./chunk-NFU4XJIR.js";
23
23
  import "./chunk-3HZLXCVL.js";
24
24
  import "./chunk-5XECIWME.js";
25
- import "./chunk-OHQJEOP7.js";
25
+ import "./chunk-TBFROLYC.js";
26
26
  import "./chunk-FXD67VN5.js";
27
27
  import "./chunk-XNFHNTS2.js";
28
28
  import {
@@ -23,7 +23,7 @@ import {
23
23
  runEngine,
24
24
  splitPassthrough,
25
25
  validateVcrChoice
26
- } from "./chunk-T3MRP74K.js";
26
+ } from "./chunk-5JU7QOUH.js";
27
27
  import "./chunk-WNAKOXGK.js";
28
28
  import {
29
29
  outputError
@@ -36,7 +36,7 @@ import "./chunk-EZKW5YJ2.js";
36
36
  import "./chunk-NFU4XJIR.js";
37
37
  import "./chunk-3HZLXCVL.js";
38
38
  import "./chunk-5XECIWME.js";
39
- import "./chunk-OHQJEOP7.js";
39
+ import "./chunk-TBFROLYC.js";
40
40
  import "./chunk-FXD67VN5.js";
41
41
  import "./chunk-XNFHNTS2.js";
42
42
  import {
@@ -37,7 +37,7 @@ import {
37
37
  useKeypress,
38
38
  usePrefix,
39
39
  useState
40
- } from "./chunk-OHQJEOP7.js";
40
+ } from "./chunk-TBFROLYC.js";
41
41
  import {
42
42
  require_load_json_file
43
43
  } from "./chunk-XNFHNTS2.js";
@@ -8,7 +8,7 @@ import {
8
8
  VERCEL_DIR,
9
9
  VERCEL_DIR_PROJECT,
10
10
  require_lib
11
- } from "./chunk-OHQJEOP7.js";
11
+ } from "./chunk-TBFROLYC.js";
12
12
  import {
13
13
  require_dist
14
14
  } from "./chunk-QFAS4OVW.js";
@@ -3102,6 +3102,57 @@ var detachSubcommand = {
3102
3102
  }
3103
3103
  ]
3104
3104
  };
3105
+ var contactsAddSubcommand = {
3106
+ name: "add",
3107
+ aliases: [],
3108
+ description: "Add a phone contact that a connector may message",
3109
+ arguments: [
3110
+ {
3111
+ name: "connector",
3112
+ required: true
3113
+ }
3114
+ ],
3115
+ options: [
3116
+ {
3117
+ name: "phone-number",
3118
+ shorthand: null,
3119
+ type: String,
3120
+ argument: "PHONE",
3121
+ deprecated: false,
3122
+ description: "Contact phone number in E.164 format (e.g. +12025551234)"
3123
+ },
3124
+ formatOption,
3125
+ jsonOption
3126
+ ],
3127
+ examples: [
3128
+ {
3129
+ name: "Add a contact by connector ID",
3130
+ value: `${packageName} connect contacts add scl_abc123 --phone-number +12025551234`
3131
+ },
3132
+ {
3133
+ name: "Add a contact by connector UID",
3134
+ value: `${packageName} connect contacts add linq/support --phone-number +12025551234`
3135
+ },
3136
+ {
3137
+ name: "Output the verification result as JSON",
3138
+ value: `${packageName} connect contacts add scl_abc123 --phone-number +12025551234 --json`
3139
+ }
3140
+ ]
3141
+ };
3142
+ var contactsSubcommand = {
3143
+ name: "contacts",
3144
+ aliases: [],
3145
+ description: "Manage phone contacts for connectors",
3146
+ arguments: [],
3147
+ options: [],
3148
+ subcommands: [contactsAddSubcommand],
3149
+ examples: [
3150
+ {
3151
+ name: "Add a contact",
3152
+ value: `${packageName} connect contacts add scl_abc123 --phone-number +12025551234`
3153
+ }
3154
+ ]
3155
+ };
3105
3156
  var connexCommand = {
3106
3157
  name: "connect",
3107
3158
  aliases: [],
@@ -3117,7 +3168,8 @@ var connexCommand = {
3117
3168
  detachSubcommand,
3118
3169
  removeSubcommand4,
3119
3170
  revokeTokensSubcommand,
3120
- openSubcommand
3171
+ openSubcommand,
3172
+ contactsSubcommand
3121
3173
  ],
3122
3174
  examples: [
3123
3175
  {
@@ -4986,6 +5038,18 @@ var firewallCommand = {
4986
5038
  ]
4987
5039
  };
4988
5040
 
5041
+ // src/util/flags/attribute-types.ts
5042
+ var TIMESTAMP_IDENTIFY_HELP = "Pass Timestamp values as epoch milliseconds in identify() / evaluation context";
5043
+ function isTimestampAttributeType(type) {
5044
+ return type === "timestamp";
5045
+ }
5046
+ function isBucketingAttribute(attribute) {
5047
+ return !isTimestampAttributeType(attribute.type);
5048
+ }
5049
+ function getFlagAttributeType(settings, kind, attribute) {
5050
+ return settings?.entities.find((entity) => entity.kind === kind)?.attributes.find((candidate) => candidate.key === attribute)?.type;
5051
+ }
5052
+
4989
5053
  // src/util/flags/comparators.ts
4990
5054
  var FLAG_CONDITION_COMPARATORS = [
4991
5055
  "eq",
@@ -5039,11 +5103,18 @@ var FLAG_CONDITION_COMPARATOR_LABELS = {
5039
5103
  lt: "is less than",
5040
5104
  lte: "is less than or equal to"
5041
5105
  };
5106
+ var TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS = {
5107
+ gt: "is after",
5108
+ gte: "is on or after",
5109
+ lt: "is before",
5110
+ lte: "is on or before"
5111
+ };
5042
5112
  var LEGACY_FLAG_CONDITION_COMPARATOR_LABELS = {
5043
5113
  notContains: FLAG_CONDITION_COMPARATOR_LABELS["!contains"]
5044
5114
  };
5045
5115
  function formatFlagConditionComparator(comparator, options) {
5046
- const label = FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? LEGACY_FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? comparator;
5116
+ const timestampLabel = options?.attributeType === "timestamp" ? TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS[comparator] : void 0;
5117
+ const label = timestampLabel ?? FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? LEGACY_FLAG_CONDITION_COMPARATOR_LABELS[comparator] ?? comparator;
5047
5118
  if (options?.ignoreCase) {
5048
5119
  return `${label} (case-insensitive)`;
5049
5120
  }
@@ -5066,7 +5137,7 @@ function isFlagEvaluationsGranularity(value) {
5066
5137
  }
5067
5138
 
5068
5139
  // src/commands/flags/command.ts
5069
- var segmentRuleOperatorDescription = `Valid operators: ${formatFlagConditionComparatorList()}`;
5140
+ var segmentRuleOperatorDescription = `Valid operators: ${formatFlagConditionComparatorList()}. Timestamp attributes also accept after, before, on-or-after, and on-or-before with an ISO 8601 date and time (for example 2026-04-16T09:00:00Z) or epoch milliseconds. after and before are exclusive; use on-or-after or on-or-before for inclusive boundaries. Date/times without a timezone use this machine's timezone. ${TIMESTAMP_IDENTIFY_HELP}`;
5070
5141
  var listSubcommand11 = {
5071
5142
  name: "list",
5072
5143
  aliases: ["ls"],
@@ -5582,6 +5653,58 @@ var setSubcommand2 = {
5582
5653
  }
5583
5654
  ]
5584
5655
  };
5656
+ var useTargetingSubcommand = {
5657
+ name: "use-targeting",
5658
+ aliases: [],
5659
+ description: "Enable targeting for a feature flag environment; keeps the current fallthrough unless --default-variant is set",
5660
+ arguments: [
5661
+ {
5662
+ name: "flag",
5663
+ required: true
5664
+ }
5665
+ ],
5666
+ options: [
5667
+ projectOption,
5668
+ {
5669
+ name: "environment",
5670
+ shorthand: "e",
5671
+ type: String,
5672
+ deprecated: false,
5673
+ description: "The environment to enable targeting in (production, preview, or development)",
5674
+ argument: "ENV"
5675
+ },
5676
+ {
5677
+ name: "default-variant",
5678
+ shorthand: null,
5679
+ type: String,
5680
+ deprecated: false,
5681
+ description: "Replace the fallthrough with this variant when no targeting rules match",
5682
+ argument: "VARIANT"
5683
+ },
5684
+ {
5685
+ name: "message",
5686
+ shorthand: null,
5687
+ type: String,
5688
+ deprecated: false,
5689
+ description: "Optional revision message for the update",
5690
+ argument: "TEXT"
5691
+ }
5692
+ ],
5693
+ examples: [
5694
+ {
5695
+ name: "Enable targeting and keep the current fallthrough",
5696
+ value: `${packageName} flags use-targeting my-feature --environment production`
5697
+ },
5698
+ {
5699
+ name: "Enable targeting with a static default Off",
5700
+ value: `${packageName} flags use-targeting my-feature --environment production --default-variant false`
5701
+ },
5702
+ {
5703
+ name: "Enable targeting with a string default",
5704
+ value: `${packageName} flags use-targeting welcome-message -e production --default-variant control`
5705
+ }
5706
+ ]
5707
+ };
5585
5708
  var splitSubcommand = {
5586
5709
  name: "split",
5587
5710
  aliases: [],
@@ -5904,6 +6027,10 @@ var rulesAddSubcommand3 = {
5904
6027
  name: "Add a segment rule",
5905
6028
  value: `${packageName} flags rules add my-feature -e production --condition segment:eq:seg_beta123 --variant on`
5906
6029
  },
6030
+ {
6031
+ name: "Add a rule with a timestamp condition",
6032
+ value: `${packageName} flags rules add my-feature -e production --condition user.signupAt:after:2026-04-16T09:00:00Z --variant on`
6033
+ },
5907
6034
  {
5908
6035
  name: "Add a split rule at the top",
5909
6036
  value: `${packageName} flags rules add my-feature -e production --condition user.plan:eq:pro --by user.userId --weight off=90 --weight on=10 --position 1`
@@ -6344,8 +6471,8 @@ var segmentsCreateSubcommand = {
6344
6471
  value: `${packageName} flags segments create beta-users --label "Beta users" --add include:user.id=user_123 --add include:user.id=user_456`
6345
6472
  },
6346
6473
  {
6347
- name: "Create a segment from rules",
6348
- value: `${packageName} flags segments create enterprise-users --label "Enterprise users" --add rule:user.plan:eq:enterprise`
6474
+ name: "Create a segment using a timestamp condition",
6475
+ value: `${packageName} flags segments create early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`
6349
6476
  },
6350
6477
  {
6351
6478
  name: "Create a segment from full JSON data",
@@ -6433,6 +6560,10 @@ var segmentsUpdateSubcommand = {
6433
6560
  {
6434
6561
  name: "Add and remove rules",
6435
6562
  value: `${packageName} flags segments update enterprise-users --add rule:user.email:ends-with:@company.com --remove rule:user.plan:eq:pro`
6563
+ },
6564
+ {
6565
+ name: "Add a timestamp condition",
6566
+ value: `${packageName} flags segments update early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`
6436
6567
  }
6437
6568
  ]
6438
6569
  };
@@ -6655,6 +6786,7 @@ var flagsCommand = {
6655
6786
  openSubcommand2,
6656
6787
  updateSubcommand3,
6657
6788
  setSubcommand2,
6789
+ useTargetingSubcommand,
6658
6790
  splitSubcommand,
6659
6791
  rolloutSubcommand,
6660
6792
  removeSubcommand8,
@@ -12389,6 +12521,8 @@ export {
12389
12521
  openSubcommand,
12390
12522
  attachSubcommand,
12391
12523
  detachSubcommand,
12524
+ contactsAddSubcommand,
12525
+ contactsSubcommand,
12392
12526
  connexCommand,
12393
12527
  contractCommand,
12394
12528
  addSubcommand3 as addSubcommand2,
@@ -12453,6 +12587,9 @@ export {
12453
12587
  systemMitigationsResumeSubcommand,
12454
12588
  systemMitigationsSubcommand,
12455
12589
  firewallCommand,
12590
+ isTimestampAttributeType,
12591
+ isBucketingAttribute,
12592
+ getFlagAttributeType,
12456
12593
  FLAG_CONDITION_LIST_COMPARATORS,
12457
12594
  FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,
12458
12595
  formatFlagConditionComparatorList,
@@ -12469,6 +12606,7 @@ export {
12469
12606
  openSubcommand2,
12470
12607
  updateSubcommand3,
12471
12608
  setSubcommand2,
12609
+ useTargetingSubcommand,
12472
12610
  splitSubcommand,
12473
12611
  rolloutSubcommand,
12474
12612
  rulesListSubcommand3,
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  resolveProjectContext
9
- } from "./chunk-OHQJEOP7.js";
9
+ } from "./chunk-TBFROLYC.js";
10
10
  import {
11
11
  AGENT_REASON,
12
12
  AGENT_STATUS,
@@ -20,7 +20,7 @@ import {
20
20
  getLinkedProject,
21
21
  getProjectByNameOrId,
22
22
  getScope
23
- } from "./chunk-OHQJEOP7.js";
23
+ } from "./chunk-TBFROLYC.js";
24
24
  import {
25
25
  AGENT_REASON,
26
26
  buildCommandWithGlobalFlags,
@@ -8,7 +8,7 @@ import {
8
8
  formatCondition,
9
9
  formatTransform,
10
10
  isTargetTransform
11
- } from "./chunk-XN75ARAD.js";
11
+ } from "./chunk-4Z4HV3CA.js";
12
12
  import {
13
13
  output_manager_default
14
14
  } from "./chunk-QFAS4OVW.js";
@@ -7,14 +7,14 @@ const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  getUpdateCommandInfo,
9
9
  isGlobal
10
- } from "./chunk-HK2IYHVR.js";
10
+ } from "./chunk-UXEZ4J3R.js";
11
11
  import {
12
12
  progress,
13
13
  require_ci_info
14
- } from "./chunk-22GK226I.js";
14
+ } from "./chunk-XS4YBHGW.js";
15
15
  import {
16
16
  writeToConfigFile
17
- } from "./chunk-52P3DIMH.js";
17
+ } from "./chunk-3GGEPBAK.js";
18
18
  import {
19
19
  getGlobalPathConfig
20
20
  } from "./chunk-AINIBIP4.js";
@@ -24,7 +24,7 @@ import {
24
24
  import {
25
25
  apiCommand,
26
26
  listSubcommand4 as listSubcommand
27
- } from "./chunk-LDZFKXIR.js";
27
+ } from "./chunk-4KVJ2M4J.js";
28
28
  import {
29
29
  require_semver
30
30
  } from "./chunk-IB5L4LKZ.js";
@@ -36,7 +36,7 @@ import {
36
36
  require_mkdirp,
37
37
  require_pump,
38
38
  require_tar_stream
39
- } from "./chunk-OHQJEOP7.js";
39
+ } from "./chunk-TBFROLYC.js";
40
40
  import {
41
41
  TelemetryClient,
42
42
  getInstallRoot,
@@ -3475,7 +3475,6 @@ export {
3475
3475
  installAndLinkPrBinary,
3476
3476
  listInstalledVersions,
3477
3477
  getLinkedVersion,
3478
- isLinkedToPrBuild,
3479
3478
  setPinnedVersion,
3480
3479
  getPinnedVersion,
3481
3480
  getPrBuildSha,
@@ -7,14 +7,14 @@ const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  login,
9
9
  require_ci_info
10
- } from "./chunk-22GK226I.js";
10
+ } from "./chunk-XS4YBHGW.js";
11
11
  import {
12
12
  getGlobalPathConfig
13
13
  } from "./chunk-AINIBIP4.js";
14
14
  import {
15
15
  humanizePath,
16
16
  param
17
- } from "./chunk-OHQJEOP7.js";
17
+ } from "./chunk-TBFROLYC.js";
18
18
  import {
19
19
  printError
20
20
  } from "./chunk-AYLY3ZVL.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-C5HKWXRR.js";
10
10
  import {
11
11
  ALIGNED_LABEL_WIDTH
12
- } from "./chunk-OHQJEOP7.js";
12
+ } from "./chunk-TBFROLYC.js";
13
13
  import {
14
14
  require_ms
15
15
  } from "./chunk-GGP5R3FU.js";
@@ -6,10 +6,10 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  isJSONObject
9
- } from "./chunk-52P3DIMH.js";
9
+ } from "./chunk-3GGEPBAK.js";
10
10
  import {
11
11
  getProjectByNameOrId
12
- } from "./chunk-OHQJEOP7.js";
12
+ } from "./chunk-TBFROLYC.js";
13
13
  import {
14
14
  AGENT_REASON,
15
15
  outputAgentError
@@ -9,7 +9,7 @@ import {
9
9
  require_dist2 as require_dist3,
10
10
  require_dist4,
11
11
  require_lib
12
- } from "./chunk-OHQJEOP7.js";
12
+ } from "./chunk-TBFROLYC.js";
13
13
  import {
14
14
  output_manager_default,
15
15
  require_dist
@@ -8058,13 +8058,22 @@ var require_merge = __commonJS({
8058
8058
  merge: () => merge
8059
8059
  });
8060
8060
  module.exports = __toCommonJS(merge_exports);
8061
- var import_path = __require("path");
8061
+ var import_node_path = __require("path");
8062
+ var import_promises = __require("fs/promises");
8062
8063
  var import_error_utils = require_dist();
8063
8064
  var import_fs_extra = require_lib();
8064
- async function merge(source, destination, ignoreFilter, sourceRoot) {
8065
+ var mergeQueue = Promise.resolve();
8066
+ function merge(source, destination, ignoreFilter, sourceRoot) {
8067
+ const run = () => mergeImpl(source, destination, ignoreFilter, sourceRoot);
8068
+ const result = mergeQueue.then(run, run);
8069
+ mergeQueue = result.catch(() => {
8070
+ });
8071
+ return result;
8072
+ }
8073
+ async function mergeImpl(source, destination, ignoreFilter, sourceRoot) {
8065
8074
  const root = sourceRoot || source;
8066
8075
  if (ignoreFilter) {
8067
- const relPath = (0, import_path.relative)(root, source);
8076
+ const relPath = (0, import_node_path.relative)(root, source);
8068
8077
  if (relPath && !ignoreFilter(relPath)) {
8069
8078
  await (0, import_fs_extra.remove)(source);
8070
8079
  return;
@@ -8075,7 +8084,7 @@ var require_merge = __commonJS({
8075
8084
  );
8076
8085
  if ((0, import_error_utils.isErrnoException)(destStat)) {
8077
8086
  if (destStat.code === "ENOENT") {
8078
- await (0, import_fs_extra.move)(source, destination);
8087
+ await publishNew(source, destination, ignoreFilter, root);
8079
8088
  return;
8080
8089
  }
8081
8090
  throw destStat;
@@ -8090,15 +8099,105 @@ var require_merge = __commonJS({
8090
8099
  } else {
8091
8100
  await Promise.all(
8092
8101
  contents.map(
8093
- (name) => merge((0, import_path.join)(source, name), (0, import_path.join)(destination, name), ignoreFilter, root)
8102
+ (name) => mergeImpl(
8103
+ (0, import_node_path.join)(source, name),
8104
+ (0, import_node_path.join)(destination, name),
8105
+ ignoreFilter,
8106
+ root
8107
+ )
8094
8108
  )
8095
8109
  );
8096
8110
  await (0, import_fs_extra.rmdir)(source);
8097
8111
  return;
8098
8112
  }
8099
8113
  }
8100
- await (0, import_fs_extra.remove)(destination);
8101
- await (0, import_fs_extra.move)(source, destination);
8114
+ await overwrite(source, destination, ignoreFilter, root);
8115
+ }
8116
+ async function publishNew(source, destination, ignoreFilter, root) {
8117
+ let renameError;
8118
+ try {
8119
+ try {
8120
+ await (0, import_promises.rename)(source, destination);
8121
+ return;
8122
+ } catch (err) {
8123
+ if ((0, import_error_utils.isErrnoException)(err) && err.code === "ENOENT") {
8124
+ await (0, import_fs_extra.mkdirp)((0, import_node_path.dirname)(destination));
8125
+ await (0, import_promises.rename)(source, destination);
8126
+ return;
8127
+ }
8128
+ throw err;
8129
+ }
8130
+ } catch (err) {
8131
+ renameError = err;
8132
+ }
8133
+ if ((0, import_error_utils.isErrnoException)(renameError) && renameError.code === "EXDEV") {
8134
+ const tmp = tmpName(destination);
8135
+ try {
8136
+ await (0, import_fs_extra.move)(source, tmp);
8137
+ } catch (err) {
8138
+ await (0, import_fs_extra.remove)(tmp).catch(() => void 0);
8139
+ throw err;
8140
+ }
8141
+ try {
8142
+ await (0, import_promises.rename)(tmp, destination);
8143
+ } catch {
8144
+ const relPrefix = (0, import_node_path.relative)(root, source);
8145
+ try {
8146
+ await mergeImpl(
8147
+ tmp,
8148
+ destination,
8149
+ ignoreFilter && ((path) => ignoreFilter((0, import_node_path.join)(relPrefix, path))),
8150
+ tmp
8151
+ );
8152
+ } catch (err) {
8153
+ await (0, import_fs_extra.remove)(tmp).catch(() => void 0);
8154
+ throw err;
8155
+ }
8156
+ }
8157
+ return;
8158
+ }
8159
+ const destinationAppeared = await (0, import_fs_extra.stat)(destination).then(
8160
+ () => true,
8161
+ () => false
8162
+ );
8163
+ if (!destinationAppeared) {
8164
+ throw renameError;
8165
+ }
8166
+ await mergeImpl(source, destination, ignoreFilter, root);
8167
+ }
8168
+ async function overwrite(source, destination, ignoreFilter, root) {
8169
+ const tmp = tmpName(destination);
8170
+ try {
8171
+ await (0, import_fs_extra.move)(source, tmp);
8172
+ } catch (err) {
8173
+ await (0, import_fs_extra.remove)(tmp).catch(() => void 0);
8174
+ throw err;
8175
+ }
8176
+ try {
8177
+ await (0, import_promises.rename)(tmp, destination);
8178
+ return;
8179
+ } catch {
8180
+ }
8181
+ try {
8182
+ await (0, import_fs_extra.remove)(destination);
8183
+ await (0, import_promises.rename)(tmp, destination);
8184
+ } catch {
8185
+ const relPrefix = (0, import_node_path.relative)(root, source);
8186
+ try {
8187
+ await mergeImpl(
8188
+ tmp,
8189
+ destination,
8190
+ ignoreFilter && ((path) => ignoreFilter((0, import_node_path.join)(relPrefix, path))),
8191
+ tmp
8192
+ );
8193
+ } catch (err) {
8194
+ await (0, import_fs_extra.remove)(tmp).catch(() => void 0);
8195
+ throw err;
8196
+ }
8197
+ }
8198
+ }
8199
+ function tmpName(destination) {
8200
+ return `${destination}.tmp-${process.pid}-${Math.random().toString(36).slice(2)}`;
8102
8201
  }
8103
8202
  }
8104
8203
  });
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  STANDARD_ENVIRONMENTS
9
- } from "./chunk-OHQJEOP7.js";
9
+ } from "./chunk-TBFROLYC.js";
10
10
  import {
11
11
  require_lib
12
12
  } from "./chunk-Q2DGFCO7.js";