vercel 59.9.1 → 59.10.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.
- package/dist/chunks/{add-QZ5FW7LT.js → add-IJZ2Q46B.js} +5 -5
- package/dist/chunks/{add-DGK2A56E.js → add-KYLIIWQV.js} +2 -2
- package/dist/chunks/{add-6YKY5LGR.js → add-SGSXZWCH.js} +2 -2
- package/dist/chunks/{build-YFUXHSMU.js → build-PKOCHFHL.js} +2 -2
- package/dist/chunks/{chunk-LDZFKXIR.js → chunk-4KVJ2M4J.js} +143 -5
- package/dist/chunks/{chunk-HK2IYHVR.js → chunk-53J6IECW.js} +32 -19
- package/dist/chunks/{chunk-62XYUSRS.js → chunk-5BZWQDNJ.js} +1 -1
- package/dist/chunks/{chunk-3E62ATUY.js → chunk-5JNGHAUT.js} +1 -1
- package/dist/chunks/{chunk-I7ZVTKXM.js → chunk-7TYA36S5.js} +1 -1
- package/dist/chunks/{chunk-QWOCOZMS.js → chunk-AXNMBJKD.js} +1 -1
- package/dist/chunks/{chunk-PGTGT7AU.js → chunk-FNYNYZAZ.js} +2 -2
- package/dist/chunks/{chunk-O26N2UPI.js → chunk-GGPE5377.js} +1 -1
- package/dist/chunks/{chunk-FEQJSISH.js → chunk-GRINZMFI.js} +1 -1
- package/dist/chunks/{chunk-XN75ARAD.js → chunk-KTCVGTRQ.js} +1 -1
- package/dist/chunks/{chunk-H43VTKRO.js → chunk-LCDVMLKI.js} +4 -4
- package/dist/chunks/{chunk-FME4CIZL.js → chunk-MHO3EJAF.js} +2 -2
- package/dist/chunks/{chunk-2TXLG52H.js → chunk-O6VHU65V.js} +1 -1
- package/dist/chunks/{chunk-LD3Q3MUI.js → chunk-OBPBFJFP.js} +5 -6
- package/dist/chunks/{chunk-52P3DIMH.js → chunk-QQ77K4QW.js} +1 -1
- package/dist/chunks/{chunk-7PMXNOZH.js → chunk-SRVP2UST.js} +1 -1
- package/dist/chunks/{chunk-T3MRP74K.js → chunk-UTWU4DZF.js} +1 -1
- package/dist/chunks/{chunk-IWNFDR3C.js → chunk-VV5XULGR.js} +107 -8
- package/dist/chunks/{chunk-PIFTX5CY.js → chunk-WC3XNI4B.js} +2 -2
- package/dist/chunks/{chunk-ZCAFRSCD.js → chunk-X6TBTUZZ.js} +1 -1
- package/dist/chunks/{chunk-22GK226I.js → chunk-YLNIMGMQ.js} +2 -2
- package/dist/chunks/{chunk-DSBOE2OV.js → chunk-Z2RKD7LL.js} +1 -1
- package/dist/chunks/{chunk-OHQJEOP7.js → chunk-Z44PATWW.js} +4 -4
- package/dist/chunks/{clear-LHNLYPZB.js → clear-J6TY2J3M.js} +2 -2
- package/dist/chunks/{compile-vercel-config-6KPIBWNU.js → compile-vercel-config-WVGNTJXO.js} +1 -1
- package/dist/chunks/{config-CNP7P3VD.js → config-3JDOCLH7.js} +4 -4
- package/dist/chunks/{config-UETLVP5G.js → config-5T7XV4JE.js} +2 -2
- package/dist/chunks/config-validator.mjs +1 -1
- package/dist/chunks/{constants-WEQVJSYS.js → constants-YMCRE6IG.js} +1 -1
- package/dist/chunks/{delete-MB7H2LWR.js → delete-EPPNTNEW.js} +2 -2
- package/dist/chunks/{delete-BYCZJBHH.js → delete-XQOAWEZV.js} +2 -2
- package/dist/chunks/{disable-OCDW6U2Q.js → disable-U5YAPWPA.js} +2 -2
- package/dist/chunks/{discard-DWPG5UX5.js → discard-OCUCCXKO.js} +2 -2
- package/dist/chunks/{edit-ATX4K4OL.js → edit-CD7EXAO3.js} +2 -2
- package/dist/chunks/{edit-NOZXPAV3.js → edit-PNRGHNGQ.js} +3 -3
- package/dist/chunks/{enable-BO5DALIP.js → enable-25RH2LVW.js} +2 -2
- package/dist/chunks/{export-RS6X5DZW.js → export-YSGEUXJW.js} +2 -2
- package/dist/chunks/{image-QCNVSQFC.js → image-4ZKCR4HL.js} +3 -3
- package/dist/chunks/{import-builders-H4VASUQQ.js → import-builders-FQ2LOIWC.js} +2 -2
- package/dist/chunks/{inspect-BOLFZZBM.js → inspect-3K2EDYL6.js} +3 -3
- package/dist/chunks/{inspect-LZUSSUNE.js → inspect-F5DJM5DL.js} +2 -2
- package/dist/chunks/{inspect-HHXFMDN2.js → inspect-K2NJD2AI.js} +2 -2
- package/dist/chunks/{inspect-XXHIV73A.js → inspect-WRBFJUSY.js} +2 -2
- package/dist/chunks/{inspect-GPLZZEW2.js → inspect-ZC4GRGTE.js} +2 -2
- package/dist/chunks/{list-H7ED7LCU.js → list-B7C56Z7B.js} +1 -1
- package/dist/chunks/{list-XDRILJOZ.js → list-PUFYWIOF.js} +3 -3
- package/dist/chunks/{list-THFMP23I.js → list-Z6VHQQBW.js} +2 -2
- package/dist/chunks/{login-6KR5DCYM.js → login-ZYUF7JZQ.js} +2 -2
- package/dist/chunks/{ls-5QFIXKF3.js → ls-2OUQUKPT.js} +2 -2
- package/dist/chunks/{ls-LXVF34KZ.js → ls-ALX26ARH.js} +2 -2
- package/dist/chunks/{ls-GRY6G2OR.js → ls-FNOL7XTY.js} +2 -2
- package/dist/chunks/{ls-5RGCKNYB.js → ls-PRY6OV4B.js} +3 -3
- package/dist/chunks/{ls-PKN53PLB.js → ls-SQRTT5RH.js} +2 -2
- package/dist/chunks/{ls-CBFHIORN.js → ls-TBBLZ766.js} +2 -2
- package/dist/chunks/{open-Q7GEQR5J.js → open-673AJXYY.js} +2 -2
- package/dist/chunks/{permissions-6SA56V2A.js → permissions-B6SFNLN4.js} +4 -4
- package/dist/chunks/{publish-TYGP2WTZ.js → publish-TPJHZ2PJ.js} +2 -2
- package/dist/chunks/{push-5KTXEM2H.js → push-3WD5IPXP.js} +2 -2
- package/dist/chunks/{query-DSYDUL7N.js → query-ZXOJQZ7G.js} +1 -1
- package/dist/chunks/{reorder-BEQAMXC3.js → reorder-SUFOQGPC.js} +2 -2
- package/dist/chunks/{reply-GSQ5PVE4.js → reply-YOVUA6ZF.js} +2 -2
- package/dist/chunks/{resolve-AG4SS62T.js → resolve-OQ7P74JY.js} +2 -2
- package/dist/chunks/{restore-LARYR55K.js → restore-BD5XJOE7.js} +2 -2
- package/dist/chunks/{rm-F5SIKHU2.js → rm-4KAI42EX.js} +2 -2
- package/dist/chunks/{rm-FPAFEN2E.js → rm-4UIILZLP.js} +2 -2
- package/dist/chunks/{rm-FG63ON57.js → rm-5TY3QJUZ.js} +2 -2
- package/dist/chunks/{rm-GPHZ3GID.js → rm-EKVIZG2N.js} +3 -3
- package/dist/chunks/{rm-ZKG56ZEW.js → rm-XAMQUW3J.js} +2 -2
- package/dist/chunks/{rule-inspect-JS4BK6GZ.js → rule-inspect-XZZE54SW.js} +3 -3
- package/dist/chunks/{rules-SMIGLNUR.js → rules-SF5FBWFF.js} +6 -6
- package/dist/chunks/{schema-FRSEAOYM.js → schema-3HRYA6AT.js} +1 -1
- package/dist/chunks/{set-E46SNNNI.js → set-T4IYLXET.js} +2 -2
- package/dist/chunks/{tags-CMBXR3FL.js → tags-EZKT46VN.js} +2 -2
- package/dist/chunks/{update-M5WXFGQ4.js → update-OE7Y2J5I.js} +5 -5
- package/dist/commands/build/index.js +505 -63
- package/dist/commands/deploy/index.js +7 -7
- package/dist/commands/dev/index.js +6 -6
- package/dist/commands/env/index.js +3 -3
- package/dist/commands/link/index.js +2 -2
- package/dist/commands/list/index.js +2 -2
- package/dist/commands-bulk.js +2669 -1841
- package/dist/index.js +9 -9
- package/dist/version.mjs +1 -1
- package/package.json +50 -50
|
@@ -8,21 +8,21 @@ import {
|
|
|
8
8
|
parseCustomAlertQueryBody,
|
|
9
9
|
resolveCustomAlertProjectName,
|
|
10
10
|
setMissingCustomAlertProjectScope
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WC3XNI4B.js";
|
|
12
12
|
import {
|
|
13
13
|
emitRulesArgParseError,
|
|
14
14
|
handleRulesApiError,
|
|
15
15
|
parseRulesFlagsAndScope,
|
|
16
16
|
rulesCollectionPath
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-GRINZMFI.js";
|
|
18
18
|
import {
|
|
19
19
|
isCustomAlertRule
|
|
20
20
|
} from "./chunk-26XDDLXM.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-X6TBTUZZ.js";
|
|
22
22
|
import "./chunk-A3NYPUKZ.js";
|
|
23
23
|
import "./chunk-3T7WSWZH.js";
|
|
24
24
|
import "./chunk-FGDKMNEN.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-QQ77K4QW.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-
|
|
34
|
+
import "./chunk-Z44PATWW.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-
|
|
12
|
+
} from "./chunk-UTWU4DZF.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-
|
|
25
|
+
import "./chunk-Z44PATWW.js";
|
|
26
26
|
import "./chunk-FXD67VN5.js";
|
|
27
27
|
import "./chunk-XNFHNTS2.js";
|
|
28
28
|
import {
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
emitVcrArgParseError,
|
|
18
18
|
resolveVcrScope,
|
|
19
19
|
validateVcrJsonOutput
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UTWU4DZF.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-
|
|
30
|
+
import "./chunk-Z44PATWW.js";
|
|
31
31
|
import "./chunk-FXD67VN5.js";
|
|
32
32
|
import "./chunk-XNFHNTS2.js";
|
|
33
33
|
import {
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
runEngine,
|
|
24
24
|
splitPassthrough,
|
|
25
25
|
validateVcrChoice
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-UTWU4DZF.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-
|
|
39
|
+
import "./chunk-Z44PATWW.js";
|
|
40
40
|
import "./chunk-FXD67VN5.js";
|
|
41
41
|
import "./chunk-XNFHNTS2.js";
|
|
42
42
|
import {
|
|
@@ -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
|
|
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
|
|
6348
|
-
value: `${packageName} flags segments create
|
|
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
|
require_lib
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-Z44PATWW.js";
|
|
10
10
|
import {
|
|
11
11
|
isNativeBinaryInstall
|
|
12
12
|
} from "./chunk-XNFHNTS2.js";
|
|
@@ -139,15 +139,21 @@ async function isGlobalByPrefix(installPath) {
|
|
|
139
139
|
return true;
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
|
+
function asPackageManager(cliType) {
|
|
143
|
+
if (cliType === "npm" || cliType === "pnpm" || cliType === "yarn" || cliType === "bun" || cliType === "vlt") {
|
|
144
|
+
return cliType;
|
|
145
|
+
}
|
|
146
|
+
return "npm";
|
|
147
|
+
}
|
|
142
148
|
async function resolveInstall() {
|
|
143
149
|
const pkg = isNativeBinaryInstall() ? nativePackageName : packageName;
|
|
144
150
|
const installPath = await (0, import_fs_extra.realpath)(resolve(__dirname));
|
|
145
151
|
if (await isPnpmHomeInstall(installPath)) {
|
|
146
|
-
return {
|
|
152
|
+
return { packageManager: "pnpm", global: true, assumed: false };
|
|
147
153
|
}
|
|
148
154
|
const globalCliType = await detectGlobalCliType(installPath, pkg);
|
|
149
155
|
if (globalCliType) {
|
|
150
|
-
return {
|
|
156
|
+
return { packageManager: globalCliType, global: true, assumed: false };
|
|
151
157
|
}
|
|
152
158
|
let lockfileCliType;
|
|
153
159
|
try {
|
|
@@ -161,11 +167,13 @@ async function resolveInstall() {
|
|
|
161
167
|
} catch (_) {
|
|
162
168
|
}
|
|
163
169
|
if (!lockfileCliType) {
|
|
164
|
-
return {
|
|
170
|
+
return { packageManager: "npm", global: true, assumed: true };
|
|
165
171
|
}
|
|
172
|
+
const packageManager = asPackageManager(lockfileCliType);
|
|
166
173
|
return {
|
|
167
|
-
|
|
168
|
-
global: isGlobalByPath(installPath) || await isGlobalByPrefix(installPath)
|
|
174
|
+
packageManager,
|
|
175
|
+
global: isGlobalByPath(installPath) || await isGlobalByPrefix(installPath),
|
|
176
|
+
assumed: packageManager !== lockfileCliType
|
|
169
177
|
};
|
|
170
178
|
}
|
|
171
179
|
async function isGlobal() {
|
|
@@ -180,30 +188,35 @@ async function getUpdateCommandInfo() {
|
|
|
180
188
|
const pkgAndVersion = `${nativeInstall ? nativePackageName : packageName}@latest`;
|
|
181
189
|
if (nativeInstall) {
|
|
182
190
|
const segments = process.execPath.split(sep);
|
|
183
|
-
let
|
|
191
|
+
let packageManager2 = "npm";
|
|
184
192
|
if (segments.includes("pnpm") || segments.includes(".pnpm")) {
|
|
185
|
-
|
|
193
|
+
packageManager2 = "pnpm";
|
|
186
194
|
} else if (segments.includes("yarn") || segments.includes(".yarn")) {
|
|
187
|
-
|
|
195
|
+
packageManager2 = "yarn";
|
|
188
196
|
}
|
|
189
|
-
const install2 =
|
|
190
|
-
const force =
|
|
191
|
-
const allowBuild2 = pnpmAllowBuildFlag(
|
|
197
|
+
const install2 = packageManager2 === "yarn" ? "global add" : "i -g";
|
|
198
|
+
const force = packageManager2 === "npm" ? " --force" : "";
|
|
199
|
+
const allowBuild2 = pnpmAllowBuildFlag(packageManager2, nativePackageName);
|
|
192
200
|
return {
|
|
193
|
-
command: `${
|
|
194
|
-
global: true
|
|
201
|
+
command: `${packageManager2} ${install2} ${pkgAndVersion}${force}${allowBuild2}`,
|
|
202
|
+
global: true,
|
|
203
|
+
packageManager: packageManager2,
|
|
204
|
+
// Native path detection only positively identifies pnpm/yarn.
|
|
205
|
+
assumed: packageManager2 === "npm"
|
|
195
206
|
};
|
|
196
207
|
}
|
|
197
|
-
const {
|
|
198
|
-
const yarn =
|
|
208
|
+
const { packageManager, global, assumed } = await resolveInstall();
|
|
209
|
+
const yarn = packageManager === "yarn";
|
|
199
210
|
let install = yarn ? "add" : "i";
|
|
200
211
|
if (global) {
|
|
201
212
|
install = yarn ? "global add" : "i -g";
|
|
202
213
|
}
|
|
203
|
-
const allowBuild = global ? pnpmAllowBuildFlag(
|
|
214
|
+
const allowBuild = global ? pnpmAllowBuildFlag(packageManager, "esbuild") : "";
|
|
204
215
|
return {
|
|
205
|
-
command: `${
|
|
206
|
-
global
|
|
216
|
+
command: `${packageManager} ${install} ${pkgAndVersion}${allowBuild}`,
|
|
217
|
+
global,
|
|
218
|
+
packageManager,
|
|
219
|
+
assumed
|
|
207
220
|
};
|
|
208
221
|
}
|
|
209
222
|
function pnpmAllowBuildFlag(cliType, pkg) {
|
|
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
writeProjectSettings
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7TYA36S5.js";
|
|
10
10
|
import {
|
|
11
11
|
autoInstallVercelPlugin
|
|
12
12
|
} from "./chunk-7AEEQOD4.js";
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
envPullCommandLogic,
|
|
27
27
|
humanizePath,
|
|
28
28
|
parseTarget
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-Z44PATWW.js";
|
|
30
30
|
import {
|
|
31
31
|
TelemetryClient
|
|
32
32
|
} from "./chunk-XNFHNTS2.js";
|
|
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
|
|
8
8
|
// src/util/constants.ts
|
|
9
|
-
var SENTRY_DSN =
|
|
9
|
+
var SENTRY_DSN = void 0;
|
|
10
10
|
var BUILD_LABEL = void 0;
|
|
11
11
|
|
|
12
12
|
export {
|
|
@@ -9,19 +9,19 @@ import {
|
|
|
9
9
|
} from "./chunk-PRWJUY5U.js";
|
|
10
10
|
import {
|
|
11
11
|
progress
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YLNIMGMQ.js";
|
|
13
13
|
import {
|
|
14
14
|
isJSONObject,
|
|
15
15
|
printIndications,
|
|
16
16
|
require_dist as require_dist2,
|
|
17
17
|
sleep
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-QQ77K4QW.js";
|
|
19
19
|
import {
|
|
20
20
|
suggestNextCommands
|
|
21
21
|
} from "./chunk-7ST552E3.js";
|
|
22
22
|
import {
|
|
23
23
|
CommandTimeout
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-4KVJ2M4J.js";
|
|
25
25
|
import {
|
|
26
26
|
stamp_default
|
|
27
27
|
} from "./chunk-64IF634X.js";
|
|
@@ -35,7 +35,7 @@ import {
|
|
|
35
35
|
require_dist as require_dist3,
|
|
36
36
|
require_pluralize,
|
|
37
37
|
ua_default
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-Z44PATWW.js";
|
|
39
39
|
import {
|
|
40
40
|
withGlobalFlags
|
|
41
41
|
} from "./chunk-NGGLYKNU.js";
|
|
@@ -7,14 +7,14 @@ const __dirname = __dirname_(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
login,
|
|
9
9
|
require_ci_info
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YLNIMGMQ.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-
|
|
17
|
+
} from "./chunk-Z44PATWW.js";
|
|
18
18
|
import {
|
|
19
19
|
printError
|
|
20
20
|
} from "./chunk-AYLY3ZVL.js";
|
|
@@ -7,14 +7,14 @@ const __dirname = __dirname_(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
getUpdateCommandInfo,
|
|
9
9
|
isGlobal
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-53J6IECW.js";
|
|
11
11
|
import {
|
|
12
12
|
progress,
|
|
13
13
|
require_ci_info
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YLNIMGMQ.js";
|
|
15
15
|
import {
|
|
16
16
|
writeToConfigFile
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-QQ77K4QW.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-
|
|
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-
|
|
39
|
+
} from "./chunk-Z44PATWW.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,
|