vercel 59.12.0 → 59.14.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 (106) hide show
  1. package/dist/chunks/{add-XGO6LHMD.js → add-EQZRT4XL.js} +11 -11
  2. package/dist/chunks/{add-OO3JGLZW.js → add-KMDROZC3.js} +4 -4
  3. package/dist/chunks/{add-RTXDASSS.js → add-QPJ3XMBV.js} +4 -4
  4. package/dist/chunks/{build-JINV2UD4.js → build-W4HPTAOB.js} +4 -4
  5. package/dist/chunks/{chunk-YRESLJCW.js → chunk-2LCFOK66.js} +8 -8
  6. package/dist/chunks/{chunk-3BB2HOO2.js → chunk-4WG2MYCI.js} +3 -3
  7. package/dist/chunks/{chunk-2NIDTSQJ.js → chunk-5EIV6LPQ.js} +1 -1
  8. package/dist/chunks/{chunk-YPMFZRTN.js → chunk-653QRQAD.js} +1 -1
  9. package/dist/chunks/{chunk-ELZ6WQQA.js → chunk-67CRVWDF.js} +3 -3
  10. package/dist/chunks/{chunk-KNO327AW.js → chunk-75VENWDN.js} +1 -1
  11. package/dist/chunks/{chunk-VJSREJVM.js → chunk-7NRNFV77.js} +1 -1
  12. package/dist/chunks/{chunk-MADFAH3O.js → chunk-AJ5HUOWB.js} +2 -2
  13. package/dist/chunks/{chunk-32XSMM3W.js → chunk-AQ6P3IGG.js} +1 -1
  14. package/dist/chunks/{chunk-HR2MP4XF.js → chunk-B5NH7SLK.js} +5 -5
  15. package/dist/chunks/{chunk-QIUK4Z7Q.js → chunk-CAHP7UGE.js} +2 -2
  16. package/dist/chunks/{chunk-WPBCUXMZ.js → chunk-CFDDM4TX.js} +285 -19
  17. package/dist/chunks/{chunk-UA55I7M6.js → chunk-CXFY6A6W.js} +3 -3
  18. package/dist/chunks/{chunk-SWO66HE2.js → chunk-D5SMZXVO.js} +1 -1
  19. package/dist/chunks/{chunk-MDGPZHSM.js → chunk-EWBCSDTM.js} +3 -3
  20. package/dist/chunks/{chunk-OJHDGHOB.js → chunk-F2QLCXCF.js} +6 -6
  21. package/dist/chunks/{chunk-RNK3LXLR.js → chunk-FVF4UHDM.js} +4 -4
  22. package/dist/chunks/{chunk-O26N2UPI.js → chunk-GGPE5377.js} +1 -1
  23. package/dist/chunks/{chunk-QB2UHSUB.js → chunk-J7JKZM4T.js} +1 -1
  24. package/dist/chunks/{chunk-PP5GKSIX.js → chunk-JC2O346E.js} +4 -4
  25. package/dist/chunks/{chunk-KAF4WFF3.js → chunk-JZXJZX7O.js} +2 -2
  26. package/dist/chunks/{chunk-TDGK45FB.js → chunk-LERVNZTD.js} +1 -1
  27. package/dist/chunks/{chunk-LDV2R4P4.js → chunk-LYAAQDNS.js} +1 -1
  28. package/dist/chunks/{chunk-L6B6BRHH.js → chunk-M5I6INNF.js} +2 -2
  29. package/dist/chunks/{chunk-WT6C2ALC.js → chunk-N6HP5BLI.js} +2 -0
  30. package/dist/chunks/{chunk-3F25W3GA.js → chunk-OCIZ6ZYA.js} +4 -4
  31. package/dist/chunks/{chunk-NDY3JDOU.js → chunk-ORQZKIIB.js} +4 -4
  32. package/dist/chunks/{chunk-EOLGLGXJ.js → chunk-RBF2NPUP.js} +3 -3
  33. package/dist/chunks/{chunk-CZ5QQRXD.js → chunk-RDTRWLWB.js} +3 -3
  34. package/dist/chunks/{chunk-VUS2JQB2.js → chunk-RNSMTWA6.js} +1 -0
  35. package/dist/chunks/{chunk-X6TGUHFD.js → chunk-RTJASENB.js} +3 -3
  36. package/dist/chunks/{chunk-ABSZNJQO.js → chunk-SM3F3PYJ.js} +1 -1
  37. package/dist/chunks/{chunk-AV747POV.js → chunk-TSBUHSN7.js} +5 -5
  38. package/dist/chunks/{chunk-JOXNBQ7W.js → chunk-TSFWMUCY.js} +2 -2
  39. package/dist/chunks/{chunk-E47NARDE.js → chunk-UNKHOYMF.js} +2 -2
  40. package/dist/chunks/{chunk-WT2Y7FRD.js → chunk-UOVWUSLG.js} +6 -6
  41. package/dist/chunks/{chunk-WSZ5E4WH.js → chunk-VGKSIKCC.js} +1 -1
  42. package/dist/chunks/{chunk-UJPVHLL5.js → chunk-W7FGI2GZ.js} +4 -4
  43. package/dist/chunks/{clear-GQTDYSKJ.js → clear-4IACMLFU.js} +4 -4
  44. package/dist/chunks/{compile-vercel-config-URVMKDVW.js → compile-vercel-config-PQQ3OCLV.js} +2 -2
  45. package/dist/chunks/{config-OAXY4J6P.js → config-BQQKMQBP.js} +4 -4
  46. package/dist/chunks/{config-MSVQR5T6.js → config-OCPNHXQL.js} +4 -4
  47. package/dist/chunks/{constants-WEQVJSYS.js → constants-YMCRE6IG.js} +1 -1
  48. package/dist/chunks/{delete-XN6ESD7C.js → delete-HRKIYPCO.js} +6 -6
  49. package/dist/chunks/{delete-57QO64HD.js → delete-P2UL3KTU.js} +6 -6
  50. package/dist/chunks/{detect-services-UPY4LTBZ.js → detect-services-U7QGT7VO.js} +6 -6
  51. package/dist/chunks/{disable-BYI46V7B.js → disable-3NYMICQ3.js} +6 -6
  52. package/dist/chunks/{discard-IIQL44ZZ.js → discard-RNVEJUK3.js} +6 -6
  53. package/dist/chunks/{edit-JTW7XZH7.js → edit-63S2RQHR.js} +6 -6
  54. package/dist/chunks/{edit-BRNS3OR4.js → edit-CTENFZ7H.js} +7 -7
  55. package/dist/chunks/{enable-CH5FSQMR.js → enable-WILWXAHV.js} +6 -6
  56. package/dist/chunks/{export-6WHQOWKM.js → export-YHGV3EPK.js} +6 -6
  57. package/dist/chunks/{image-ZSLYATWG.js → image-MWKS2YMB.js} +4 -4
  58. package/dist/chunks/{import-builders-FNMYJZGG.js → import-builders-H55X5VYD.js} +4 -4
  59. package/dist/chunks/{inspect-4RDZSYWU.js → inspect-JTJMK6TO.js} +4 -4
  60. package/dist/chunks/{inspect-CGXTNMMO.js → inspect-KBIPLMGR.js} +7 -7
  61. package/dist/chunks/{inspect-XJ7BYLZ5.js → inspect-OP26FDBY.js} +4 -4
  62. package/dist/chunks/{inspect-Z2MBTTB7.js → inspect-SW4UMWTB.js} +4 -4
  63. package/dist/chunks/{inspect-7WQXZWET.js → inspect-WPLZPVBO.js} +4 -4
  64. package/dist/chunks/{list-65LW6OTM.js → list-HE7DWAWH.js} +7 -7
  65. package/dist/chunks/{list-7W3PHRB6.js → list-OUG7WCT7.js} +4 -4
  66. package/dist/chunks/{list-KS22Y57L.js → list-QUSEURJZ.js} +2 -2
  67. package/dist/chunks/{login-NXULVQZ2.js → login-MIIQJVF3.js} +4 -4
  68. package/dist/chunks/{ls-HVQOGBGV.js → ls-24N3DUK4.js} +7 -7
  69. package/dist/chunks/{ls-35EOVEIQ.js → ls-3Y7KEFKT.js} +4 -4
  70. package/dist/chunks/{ls-5GKS5QRW.js → ls-75F5HIJ5.js} +4 -4
  71. package/dist/chunks/{ls-ADYFYYIW.js → ls-REN6X2X5.js} +11 -11
  72. package/dist/chunks/{ls-DZYN3SNS.js → ls-W4STUDXK.js} +4 -4
  73. package/dist/chunks/{ls-I2PWG7YN.js → ls-Z4CTSD6C.js} +4 -4
  74. package/dist/chunks/{open-H34HXJHP.js → open-ARMCLPBK.js} +6 -6
  75. package/dist/chunks/{permissions-ZPPEPKVE.js → permissions-JKI67F62.js} +5 -5
  76. package/dist/chunks/{publish-NRMKXHAU.js → publish-SMSQ7OX2.js} +6 -6
  77. package/dist/chunks/{pull-WUT3XTZX.js → pull-4QZJZELD.js} +8 -8
  78. package/dist/chunks/{push-WFNCEA5J.js → push-T6IYQY2J.js} +4 -4
  79. package/dist/chunks/{query-2FQM3F7N.js → query-CP3JK5LW.js} +2 -2
  80. package/dist/chunks/{reorder-GYCT7L3C.js → reorder-RAWKFGLV.js} +6 -6
  81. package/dist/chunks/{reply-RFEXNYZ7.js → reply-235UHUD4.js} +6 -6
  82. package/dist/chunks/{resolve-ZFGT7W6Z.js → resolve-5KCLN7QV.js} +6 -6
  83. package/dist/chunks/{restore-JAXPMYL5.js → restore-D24WAUAN.js} +6 -6
  84. package/dist/chunks/{rm-CLKQN5E4.js → rm-DBQDXSOC.js} +11 -11
  85. package/dist/chunks/{rm-JPV5V2SH.js → rm-G5INO77R.js} +4 -4
  86. package/dist/chunks/{rm-N7SGFQOA.js → rm-NLKSEKZ5.js} +4 -4
  87. package/dist/chunks/{rm-ZUQ4U454.js → rm-QV76CJA4.js} +7 -7
  88. package/dist/chunks/{rm-UQJ4CZJH.js → rm-TZ4PDDUK.js} +4 -4
  89. package/dist/chunks/{rule-inspect-HI3YY7OY.js → rule-inspect-76MC7I2D.js} +11 -11
  90. package/dist/chunks/{rules-DA3Q64M4.js → rules-IDUXVTPG.js} +8 -8
  91. package/dist/chunks/{schema-R3C4CXJ6.js → schema-AV6BHGKY.js} +2 -2
  92. package/dist/chunks/{schema-UYYFV3JB.js → schema-QJVQTNB4.js} +10 -10
  93. package/dist/chunks/{set-TOJPGW4J.js → set-L5NFQSCF.js} +7 -7
  94. package/dist/chunks/{setup-and-link-DRYXQOH4.js → setup-and-link-USSVDKCM.js} +16 -16
  95. package/dist/chunks/{tags-TNLVFNVI.js → tags-2NLUU4EC.js} +3 -3
  96. package/dist/chunks/{update-X6JB3NPI.js → update-WGLBB65M.js} +11 -11
  97. package/dist/commands/build/index.js +31 -24
  98. package/dist/commands/deploy/index.js +16 -16
  99. package/dist/commands/dev/index.js +21 -21
  100. package/dist/commands/env/index.js +9 -9
  101. package/dist/commands/link/index.js +9 -9
  102. package/dist/commands/list/index.js +2 -2
  103. package/dist/commands-bulk.js +5214 -1968
  104. package/dist/index.js +15 -15
  105. package/dist/version.mjs +1 -1
  106. package/package.json +16 -16
@@ -733,8 +733,16 @@ var createSubcommand = {
733
733
  shorthand: null,
734
734
  type: Number,
735
735
  argument: "AMOUNT",
736
+ deprecated: true,
737
+ description: "DEPRECATED: Use --limit instead"
738
+ },
739
+ {
740
+ name: "limit",
741
+ shorthand: null,
742
+ type: Number,
743
+ argument: "AMOUNT",
736
744
  deprecated: false,
737
- description: "Quota budget amount in dollars (minimum 1)"
745
+ description: "Quota budget limit in dollars (minimum 1)"
738
746
  },
739
747
  {
740
748
  name: "refresh-period",
@@ -789,11 +797,11 @@ var createSubcommand = {
789
797
  },
790
798
  {
791
799
  name: "Create an API key with a budget",
792
- value: `${packageName} ai-gateway api-keys create --name my-key --budget 500 --refresh-period monthly`
800
+ value: `${packageName} ai-gateway api-keys create --name my-key --limit 500 --refresh-period monthly`
793
801
  },
794
802
  {
795
803
  name: "Create a key that expires and alerts on spend",
796
- value: `${packageName} ai-gateway api-keys create --budget 500 --alert-thresholds 75,100 --expiration 90d`
804
+ value: `${packageName} ai-gateway api-keys create --limit 500 --alert-thresholds 75,100 --expiration 90d`
797
805
  },
798
806
  {
799
807
  name: "Create a ZDR-exempt key (team owners only)",
@@ -1025,7 +1033,7 @@ var rulesSubcommand = {
1025
1033
  var setupSubcommand = {
1026
1034
  name: "setup",
1027
1035
  aliases: [],
1028
- description: "Connect local coding agents (Claude Code, Codex, OpenCode, Pi) to the AI Gateway",
1036
+ description: "Connect local coding agents to the AI Gateway",
1029
1037
  arguments: [],
1030
1038
  options: [
1031
1039
  {
@@ -1034,7 +1042,7 @@ var setupSubcommand = {
1034
1042
  type: [String],
1035
1043
  argument: "NAME",
1036
1044
  deprecated: false,
1037
- description: "Coding agent to configure, repeatable (claude-code, codex, opencode, pi)"
1045
+ description: "Coding agent to configure, repeatable; omit to pick from the detected agents"
1038
1046
  },
1039
1047
  {
1040
1048
  name: "all",
@@ -1162,27 +1170,27 @@ var setupSubcommand = {
1162
1170
  examples: [
1163
1171
  {
1164
1172
  name: "Connect all detected coding agents (creates a key)",
1165
- value: `${packageName} ai-gateway coding-agents setup`
1173
+ value: `${packageName} ai-gateway setup`
1166
1174
  },
1167
1175
  {
1168
1176
  name: "Emit a prompt to hand to a coding agent instead of writing files",
1169
- value: `${packageName} ai-gateway coding-agents setup --apply prompt --yes`
1177
+ value: `${packageName} ai-gateway setup --apply prompt --yes`
1170
1178
  },
1171
1179
  {
1172
1180
  name: "Connect specific agents with a budgeted key",
1173
- value: `${packageName} ai-gateway coding-agents setup --agent claude-code --budget 500 --refresh-period monthly`
1181
+ value: `${packageName} ai-gateway setup --agent claude-code --budget 500 --refresh-period monthly`
1174
1182
  },
1175
1183
  {
1176
1184
  name: "Rotate the key on an already-configured setup",
1177
- value: `${packageName} ai-gateway coding-agents setup --reconfigure`
1185
+ value: `${packageName} ai-gateway setup --reconfigure`
1178
1186
  },
1179
1187
  {
1180
1188
  name: "Reuse an existing key and preview changes only",
1181
- value: `${packageName} ai-gateway coding-agents setup --key <key> --dry-run`
1189
+ value: `${packageName} ai-gateway setup --key <key> --dry-run`
1182
1190
  },
1183
1191
  {
1184
1192
  name: "Point an agent at a different gateway base URL",
1185
- value: `${packageName} ai-gateway coding-agents setup --agent codex --base-url https://preview.ai-gateway.vercel.sh/v1`
1193
+ value: `${packageName} ai-gateway setup --agent codex --base-url https://preview.ai-gateway.vercel.sh/v1`
1186
1194
  }
1187
1195
  ]
1188
1196
  };
@@ -1230,10 +1238,17 @@ var modelsSubcommand = {
1230
1238
  options: [],
1231
1239
  examples: []
1232
1240
  };
1241
+ var budgetDefaultOption = {
1242
+ name: "default",
1243
+ shorthand: null,
1244
+ type: Boolean,
1245
+ deprecated: false,
1246
+ description: "Target the default budget for the scope, applied to resources of that scope without their own budget"
1247
+ };
1233
1248
  var budgetsSetSubcommand = {
1234
1249
  name: "set",
1235
1250
  aliases: [],
1236
- description: "Create or update an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>)",
1251
+ description: "Create or update an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",
1237
1252
  arguments: [
1238
1253
  { name: "scope", required: true },
1239
1254
  { name: "name", required: false }
@@ -1255,6 +1270,7 @@ var budgetsSetSubcommand = {
1255
1270
  deprecated: false,
1256
1271
  description: "Budget refresh cadence: daily, weekly, monthly, or none (default: monthly)"
1257
1272
  },
1273
+ budgetDefaultOption,
1258
1274
  formatOption,
1259
1275
  jsonOption
1260
1276
  ],
@@ -1274,18 +1290,22 @@ var budgetsSetSubcommand = {
1274
1290
  {
1275
1291
  name: "Set an API key's budget",
1276
1292
  value: `${packageName} ai-gateway budgets set api-key my-key --limit 50`
1293
+ },
1294
+ {
1295
+ name: "Set the default budget for team members without their own",
1296
+ value: `${packageName} ai-gateway budgets set user --default --limit 50 --refresh-period monthly`
1277
1297
  }
1278
1298
  ]
1279
1299
  };
1280
1300
  var budgetsInspectSubcommand = {
1281
1301
  name: "inspect",
1282
1302
  aliases: [],
1283
- description: "Show one AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>)",
1303
+ description: "Show one AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",
1284
1304
  arguments: [
1285
1305
  { name: "scope", required: true },
1286
1306
  { name: "name", required: false }
1287
1307
  ],
1288
- options: [formatOption, jsonOption],
1308
+ options: [budgetDefaultOption, formatOption, jsonOption],
1289
1309
  examples: [
1290
1310
  {
1291
1311
  name: "Inspect a user's budget",
@@ -1294,6 +1314,10 @@ var budgetsInspectSubcommand = {
1294
1314
  {
1295
1315
  name: "Inspect a project budget as JSON",
1296
1316
  value: `${packageName} ai-gateway budgets inspect project my-project --format json`
1317
+ },
1318
+ {
1319
+ name: "Inspect the per-member default budget",
1320
+ value: `${packageName} ai-gateway budgets inspect user --default`
1297
1321
  }
1298
1322
  ]
1299
1323
  };
@@ -1302,23 +1326,49 @@ var budgetsListSubcommand = {
1302
1326
  aliases: ["ls"],
1303
1327
  description: "List AI Gateway budgets",
1304
1328
  arguments: [],
1305
- options: [formatOption, jsonOption],
1329
+ options: [
1330
+ {
1331
+ name: "scope-type",
1332
+ shorthand: null,
1333
+ type: String,
1334
+ argument: "SCOPE",
1335
+ deprecated: false,
1336
+ description: "Only list budgets for one scope: team, project, user, or api-key"
1337
+ },
1338
+ {
1339
+ name: "defaults",
1340
+ shorthand: null,
1341
+ type: Boolean,
1342
+ deprecated: false,
1343
+ description: "List the team's default budgets instead of individual budgets"
1344
+ },
1345
+ formatOption,
1346
+ jsonOption
1347
+ ],
1306
1348
  examples: [
1307
1349
  {
1308
1350
  name: "List budgets",
1309
1351
  value: `${packageName} ai-gateway budgets ls`
1352
+ },
1353
+ {
1354
+ name: "List user budgets",
1355
+ value: `${packageName} ai-gateway budgets ls --scope-type user`
1356
+ },
1357
+ {
1358
+ name: "List the default budgets",
1359
+ value: `${packageName} ai-gateway budgets ls --defaults`
1310
1360
  }
1311
1361
  ]
1312
1362
  };
1313
1363
  var budgetsRemoveSubcommand = {
1314
1364
  name: "remove",
1315
1365
  aliases: ["rm", "delete"],
1316
- description: "Remove an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>)",
1366
+ description: "Remove an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",
1317
1367
  arguments: [
1318
1368
  { name: "scope", required: true },
1319
1369
  { name: "name", required: false }
1320
1370
  ],
1321
- options: [yesOption, formatOption, jsonOption],
1371
+ options: [yesOption, budgetDefaultOption, formatOption, jsonOption],
1322
1372
  examples: [
1323
1373
  {
1324
1374
  name: "Remove the team budget",
@@ -1335,6 +1385,10 @@ var budgetsRemoveSubcommand = {
1335
1385
  {
1336
1386
  name: "Remove an API key's budget",
1337
1387
  value: `${packageName} ai-gateway budgets rm api-key my-key`
1388
+ },
1389
+ {
1390
+ name: "Remove the default budget for API keys",
1391
+ value: `${packageName} ai-gateway budgets rm api-key --default`
1338
1392
  }
1339
1393
  ]
1340
1394
  };
@@ -1469,6 +1523,9 @@ var budgetsDefaultsRemoveSubcommand = {
1469
1523
  var budgetsDefaultsSubcommand = {
1470
1524
  name: "defaults",
1471
1525
  aliases: [],
1526
+ // Deprecated: kept routable, hidden from help. `--default` on budgets
1527
+ // set|inspect|remove and `budgets ls --defaults` replace it.
1528
+ hidden: true,
1472
1529
  description: "Manage AI Gateway budget defaults (per-project, per-api-key, and per-member spend limits applied by default)",
1473
1530
  arguments: [],
1474
1531
  subcommands: [
@@ -1562,7 +1619,7 @@ var aiGatewayCommand = {
1562
1619
  apiKeysSubcommand,
1563
1620
  budgetsSubcommand,
1564
1621
  rulesSubcommand,
1565
- codingAgentsSubcommand,
1622
+ setupSubcommand,
1566
1623
  modelsSubcommand,
1567
1624
  leaderboardSubcommand
1568
1625
  ],
@@ -5276,6 +5333,19 @@ var firewallCommand = {
5276
5333
 
5277
5334
  // src/util/flags/attribute-types.ts
5278
5335
  var TIMESTAMP_IDENTIFY_HELP = "Pass Timestamp values as epoch milliseconds in identify() / evaluation context";
5336
+ var FLAG_ATTRIBUTE_TYPES = [
5337
+ "string",
5338
+ "number",
5339
+ "boolean",
5340
+ "stringArray",
5341
+ "timestamp"
5342
+ ];
5343
+ function isFlagAttributeType(type) {
5344
+ return FLAG_ATTRIBUTE_TYPES.includes(type);
5345
+ }
5346
+ function formatFlagAttributeTypeList() {
5347
+ return FLAG_ATTRIBUTE_TYPES.join(", ");
5348
+ }
5279
5349
  function isTimestampAttributeType(type) {
5280
5350
  return type === "timestamp";
5281
5351
  }
@@ -6905,6 +6975,189 @@ var segmentsSubcommand = {
6905
6975
  options: [],
6906
6976
  examples: []
6907
6977
  };
6978
+ var attributeTypeDescription = `Valid types: ${formatFlagAttributeTypeList()}`;
6979
+ var entitiesListSubcommand = {
6980
+ name: "list",
6981
+ aliases: ["ls"],
6982
+ description: "List the feature flag entities for the current project",
6983
+ arguments: [],
6984
+ options: [
6985
+ projectOption,
6986
+ {
6987
+ name: "json",
6988
+ shorthand: null,
6989
+ type: Boolean,
6990
+ deprecated: false,
6991
+ description: "Output in JSON format"
6992
+ }
6993
+ ],
6994
+ examples: [
6995
+ {
6996
+ name: "List all entities",
6997
+ value: `${packageName} flags entities ls`
6998
+ },
6999
+ {
7000
+ name: "List entities as JSON",
7001
+ value: `${packageName} flags entities ls --json`
7002
+ }
7003
+ ]
7004
+ };
7005
+ var entitiesCreateSubcommand = {
7006
+ name: "create",
7007
+ aliases: ["add"],
7008
+ description: "Create a feature flag entity",
7009
+ arguments: [
7010
+ {
7011
+ name: "kind",
7012
+ required: true
7013
+ }
7014
+ ],
7015
+ options: [
7016
+ projectOption,
7017
+ {
7018
+ name: "label",
7019
+ shorthand: "l",
7020
+ type: String,
7021
+ deprecated: false,
7022
+ description: "Human-readable label for the entity",
7023
+ argument: "LABEL"
7024
+ },
7025
+ {
7026
+ name: "attribute",
7027
+ shorthand: "a",
7028
+ type: [String],
7029
+ deprecated: false,
7030
+ description: `Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,
7031
+ argument: "KEY:TYPE"
7032
+ },
7033
+ {
7034
+ name: "json",
7035
+ shorthand: null,
7036
+ type: Boolean,
7037
+ deprecated: false,
7038
+ description: "Output the created entity as JSON"
7039
+ }
7040
+ ],
7041
+ examples: [
7042
+ {
7043
+ name: "Create a user entity with attributes",
7044
+ value: `${packageName} flags entities create user --label User --attribute id:string --attribute plan:string`
7045
+ },
7046
+ {
7047
+ name: "Create a team entity with a string array attribute",
7048
+ value: `${packageName} flags entities create team --attribute id:string --attribute features:stringArray`
7049
+ }
7050
+ ]
7051
+ };
7052
+ var entitiesUpdateSubcommand = {
7053
+ name: "update",
7054
+ aliases: [],
7055
+ description: "Update a feature flag entity and its attributes",
7056
+ arguments: [
7057
+ {
7058
+ name: "kind",
7059
+ required: true
7060
+ }
7061
+ ],
7062
+ options: [
7063
+ projectOption,
7064
+ {
7065
+ name: "label",
7066
+ shorthand: "l",
7067
+ type: String,
7068
+ deprecated: false,
7069
+ description: "New human-readable label for the entity",
7070
+ argument: "LABEL"
7071
+ },
7072
+ {
7073
+ name: "add-attribute",
7074
+ shorthand: null,
7075
+ type: [String],
7076
+ deprecated: false,
7077
+ description: `Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,
7078
+ argument: "KEY:TYPE"
7079
+ },
7080
+ {
7081
+ name: "remove-attribute",
7082
+ shorthand: null,
7083
+ type: [String],
7084
+ deprecated: false,
7085
+ description: "Remove an attribute by key; repeatable. Fails when flags or segments still reference it",
7086
+ argument: "KEY"
7087
+ },
7088
+ {
7089
+ name: "set-attribute-type",
7090
+ shorthand: null,
7091
+ type: [String],
7092
+ deprecated: false,
7093
+ description: `Change the type of an attribute as KEY:TYPE; repeatable. Changing the type also removes existing value labels. Fails when flags or segments still reference it. ${attributeTypeDescription}`,
7094
+ argument: "KEY:TYPE"
7095
+ },
7096
+ {
7097
+ name: "json",
7098
+ shorthand: null,
7099
+ type: Boolean,
7100
+ deprecated: false,
7101
+ description: "Output the updated entity as JSON"
7102
+ }
7103
+ ],
7104
+ examples: [
7105
+ {
7106
+ name: "Change the entity label",
7107
+ value: `${packageName} flags entities update user --label "End user"`
7108
+ },
7109
+ {
7110
+ name: "Add and remove attributes",
7111
+ value: `${packageName} flags entities update user --add-attribute email:string --remove-attribute legacyId`
7112
+ },
7113
+ {
7114
+ name: "Change an attribute type",
7115
+ value: `${packageName} flags entities update user --set-attribute-type signupAt:timestamp`
7116
+ }
7117
+ ]
7118
+ };
7119
+ var entitiesRemoveSubcommand = {
7120
+ name: "remove",
7121
+ aliases: ["rm"],
7122
+ description: "Delete a feature flag entity. Fails when flags or segments still reference it",
7123
+ arguments: [
7124
+ {
7125
+ name: "kind",
7126
+ required: true
7127
+ }
7128
+ ],
7129
+ options: [
7130
+ projectOption,
7131
+ {
7132
+ ...yesOption,
7133
+ description: "Skip the confirmation prompt when deleting an entity"
7134
+ }
7135
+ ],
7136
+ examples: [
7137
+ {
7138
+ name: "Delete an entity",
7139
+ value: `${packageName} flags entities rm device`
7140
+ },
7141
+ {
7142
+ name: "Delete without confirmation",
7143
+ value: `${packageName} flags entities rm device --yes`
7144
+ }
7145
+ ]
7146
+ };
7147
+ var entitiesSubcommand = {
7148
+ name: "entities",
7149
+ aliases: [],
7150
+ description: "Manage the entity schema used for flag targeting",
7151
+ arguments: [],
7152
+ subcommands: [
7153
+ entitiesListSubcommand,
7154
+ entitiesCreateSubcommand,
7155
+ entitiesUpdateSubcommand,
7156
+ entitiesRemoveSubcommand
7157
+ ],
7158
+ options: [],
7159
+ examples: []
7160
+ };
6908
7161
  var sdkKeysListSubcommand = {
6909
7162
  name: "list",
6910
7163
  aliases: ["ls"],
@@ -7092,6 +7345,7 @@ var flagsCommand = {
7092
7345
  enableSubcommand,
7093
7346
  rulesSubcommand3,
7094
7347
  segmentsSubcommand,
7348
+ entitiesSubcommand,
7095
7349
  sdkKeysSubcommand,
7096
7350
  prepareSubcommand,
7097
7351
  overrideSubcommand
@@ -9683,7 +9937,7 @@ var inspectSubcommand8 = {
9683
9937
  required: false
9684
9938
  }
9685
9939
  ],
9686
- options: [yesOption],
9940
+ options: [yesOption, formatOption, jsonOption],
9687
9941
  examples: [
9688
9942
  {
9689
9943
  name: "Inspect the linked project from the current directory",
@@ -9692,6 +9946,10 @@ var inspectSubcommand8 = {
9692
9946
  {
9693
9947
  name: 'Inspect the project named "my-project"',
9694
9948
  value: `${packageName} project inspect my-project`
9949
+ },
9950
+ {
9951
+ name: "Inspect a project as JSON",
9952
+ value: `${packageName} project inspect my-project --format json`
9695
9953
  }
9696
9954
  ]
9697
9955
  };
@@ -13126,6 +13384,9 @@ export {
13126
13384
  persistentActionsInspectSubcommand,
13127
13385
  persistentActionsSubcommand,
13128
13386
  firewallCommand,
13387
+ FLAG_ATTRIBUTE_TYPES,
13388
+ isFlagAttributeType,
13389
+ formatFlagAttributeTypeList,
13129
13390
  isTimestampAttributeType,
13130
13391
  isBucketingAttribute,
13131
13392
  getFlagAttributeType,
@@ -13166,6 +13427,11 @@ export {
13166
13427
  segmentsUpdateSubcommand,
13167
13428
  segmentsRemoveSubcommand,
13168
13429
  segmentsSubcommand,
13430
+ entitiesListSubcommand,
13431
+ entitiesCreateSubcommand,
13432
+ entitiesUpdateSubcommand,
13433
+ entitiesRemoveSubcommand,
13434
+ entitiesSubcommand,
13169
13435
  sdkKeysListSubcommand,
13170
13436
  sdkKeysAddSubcommand,
13171
13437
  sdkKeysRemoveSubcommand,
@@ -10,17 +10,17 @@ import {
10
10
  } from "./chunk-KFWQ3EFH.js";
11
11
  import {
12
12
  resolveProjectContext
13
- } from "./chunk-X6TGUHFD.js";
13
+ } from "./chunk-RTJASENB.js";
14
14
  import {
15
15
  detectExplicitScope,
16
16
  getScope
17
- } from "./chunk-ABSZNJQO.js";
17
+ } from "./chunk-SM3F3PYJ.js";
18
18
  import {
19
19
  printError
20
20
  } from "./chunk-3VM7HWF6.js";
21
21
  import {
22
22
  getLinkedProject
23
- } from "./chunk-MADFAH3O.js";
23
+ } from "./chunk-AJ5HUOWB.js";
24
24
  import {
25
25
  isAPIError
26
26
  } from "./chunk-CV5YC2EN.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-4IALDGB7.js";
10
10
  import {
11
11
  require_lib
12
- } from "./chunk-MADFAH3O.js";
12
+ } from "./chunk-AJ5HUOWB.js";
13
13
  import {
14
14
  packageName
15
15
  } from "./chunk-Q2DGFCO7.js";
@@ -13,10 +13,10 @@ import {
13
13
  } from "./chunk-IB5L4LKZ.js";
14
14
  import {
15
15
  readJSONFile
16
- } from "./chunk-32XSMM3W.js";
16
+ } from "./chunk-AQ6P3IGG.js";
17
17
  import {
18
18
  VERCEL_CONFIG_EXTENSIONS
19
- } from "./chunk-YPMFZRTN.js";
19
+ } from "./chunk-653QRQAD.js";
20
20
  import {
21
21
  require_execa
22
22
  } from "./chunk-5NF5HOBJ.js";
@@ -27,7 +27,7 @@ import {
27
27
  VERCEL_DIR,
28
28
  require_lib,
29
29
  require_pluralize
30
- } from "./chunk-MADFAH3O.js";
30
+ } from "./chunk-AJ5HUOWB.js";
31
31
  import {
32
32
  CantParseJSONFile,
33
33
  code
@@ -9,22 +9,22 @@ import {
9
9
  } from "./chunk-PRWJUY5U.js";
10
10
  import {
11
11
  progress
12
- } from "./chunk-E47NARDE.js";
12
+ } from "./chunk-UNKHOYMF.js";
13
13
  import {
14
14
  isJSONObject,
15
15
  printIndications,
16
16
  require_dist as require_dist2,
17
17
  sleep
18
- } from "./chunk-WT2Y7FRD.js";
18
+ } from "./chunk-UOVWUSLG.js";
19
19
  import {
20
20
  suggestNextCommands
21
21
  } from "./chunk-AKLTIZCU.js";
22
22
  import {
23
23
  CommandTimeout
24
- } from "./chunk-WPBCUXMZ.js";
24
+ } from "./chunk-CFDDM4TX.js";
25
25
  import {
26
26
  require_dist as require_dist3
27
- } from "./chunk-WT6C2ALC.js";
27
+ } from "./chunk-N6HP5BLI.js";
28
28
  import {
29
29
  stamp_default
30
30
  } from "./chunk-64IF634X.js";
@@ -38,7 +38,7 @@ import {
38
38
  import {
39
39
  getScope,
40
40
  ua_default
41
- } from "./chunk-ABSZNJQO.js";
41
+ } from "./chunk-SM3F3PYJ.js";
42
42
  import {
43
43
  Headers,
44
44
  fetch,
@@ -53,7 +53,7 @@ import {
53
53
  param,
54
54
  printAlignedLabel,
55
55
  require_pluralize
56
- } from "./chunk-MADFAH3O.js";
56
+ } from "./chunk-AJ5HUOWB.js";
57
57
  import {
58
58
  withGlobalFlags
59
59
  } from "./chunk-26CU4Q3C.js";
@@ -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-X6TGUHFD.js";
9
+ } from "./chunk-RTJASENB.js";
10
10
  import {
11
11
  require_frameworks
12
12
  } from "./chunk-FRVG4OW3.js";
@@ -16,13 +16,13 @@ import {
16
16
  import {
17
17
  ensureLink,
18
18
  parseEnv
19
- } from "./chunk-PP5GKSIX.js";
19
+ } from "./chunk-JC2O346E.js";
20
20
  import {
21
21
  pullSubcommand
22
22
  } from "./chunk-XUAWTW4W.js";
23
23
  import {
24
24
  performDeviceCodeFlow
25
- } from "./chunk-KAF4WFF3.js";
25
+ } from "./chunk-JZXJZX7O.js";
26
26
  import {
27
27
  STANDARD_ENVIRONMENTS,
28
28
  formatProject
@@ -45,7 +45,7 @@ import {
45
45
  param,
46
46
  printAlignedLabel,
47
47
  require_lib
48
- } from "./chunk-MADFAH3O.js";
48
+ } from "./chunk-AJ5HUOWB.js";
49
49
  import {
50
50
  buildCommandWithYes,
51
51
  getPreservedArgsForEnvPull,
@@ -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 = "https://26a24e59ba954011919a524b341b6ab5@o205439.ingest.us.sentry.io/1323225";
9
+ var SENTRY_DSN = void 0;
10
10
  var BUILD_LABEL = void 0;
11
11
 
12
12
  export {
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-57RHXXXG.js";
10
10
  import {
11
11
  VERCEL_DIR
12
- } from "./chunk-MADFAH3O.js";
12
+ } from "./chunk-AJ5HUOWB.js";
13
13
  import {
14
14
  ConflictingConfigFiles,
15
15
  DeprecatedNowJson,
@@ -6,15 +6,15 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  printProjectNotFoundError
9
- } from "./chunk-ELZ6WQQA.js";
9
+ } from "./chunk-67CRVWDF.js";
10
10
  import {
11
11
  detectExplicitScope
12
- } from "./chunk-ABSZNJQO.js";
12
+ } from "./chunk-SM3F3PYJ.js";
13
13
  import {
14
14
  getLinkedProject,
15
15
  param,
16
16
  resolveProjectCwd
17
- } from "./chunk-MADFAH3O.js";
17
+ } from "./chunk-AJ5HUOWB.js";
18
18
  import {
19
19
  buildCommandWithYes,
20
20
  outputActionRequired
@@ -91,7 +91,7 @@ async function ensureLink(commandName, client, cwd, opts = {}) {
91
91
  );
92
92
  return 1;
93
93
  }
94
- const { default: setupAndLink } = await import("./setup-and-link-DRYXQOH4.js");
94
+ const { default: setupAndLink } = await import("./setup-and-link-USSVDKCM.js");
95
95
  link = await setupAndLink(client, cwd, opts);
96
96
  if (link.status === "not_linked") {
97
97
  return 0;
@@ -13,7 +13,7 @@ import {
13
13
  isOAuthError,
14
14
  processDeviceAuthorizationResponse,
15
15
  processTokenResponse
16
- } from "./chunk-ABSZNJQO.js";
16
+ } from "./chunk-SM3F3PYJ.js";
17
17
  import {
18
18
  printError
19
19
  } from "./chunk-3VM7HWF6.js";
@@ -21,7 +21,7 @@ import {
21
21
  getTeams,
22
22
  getUser,
23
23
  humanizePath
24
- } from "./chunk-MADFAH3O.js";
24
+ } from "./chunk-AJ5HUOWB.js";
25
25
  import {
26
26
  getCommandName
27
27
  } from "./chunk-Q2DGFCO7.js";
@@ -8,7 +8,7 @@ import {
8
8
  VERCEL_DIR,
9
9
  VERCEL_DIR_PROJECT,
10
10
  require_lib
11
- } from "./chunk-MADFAH3O.js";
11
+ } from "./chunk-AJ5HUOWB.js";
12
12
  import {
13
13
  require_dist
14
14
  } from "./chunk-ZW6HETRE.js";