vercel 51.3.0 → 51.5.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 (55) hide show
  1. package/dist/chunks/{add-3MIOUOZC.js → add-RNQLGEYS.js} +4 -4
  2. package/dist/chunks/{chunk-NCQBQGI6.js → chunk-4DR2FV6O.js} +1 -1
  3. package/dist/chunks/{chunk-4VP55L4V.js → chunk-537JTK2U.js} +9 -24
  4. package/dist/chunks/{chunk-RRYVGOVK.js → chunk-5NTBJ33M.js} +1 -1
  5. package/dist/chunks/{chunk-4WRHMYCG.js → chunk-5VKKTHMP.js} +4 -4
  6. package/dist/chunks/{chunk-2JQVASXJ.js → chunk-6C33Y3DC.js} +3 -3
  7. package/dist/chunks/{chunk-T7CL42FK.js → chunk-6CWW4JIG.js} +3 -3
  8. package/dist/chunks/{chunk-BAUYQ7AR.js → chunk-7MF47FW3.js} +1 -1
  9. package/dist/chunks/{chunk-NE34PEHL.js → chunk-7ZDERWUW.js} +2 -2
  10. package/dist/chunks/{chunk-FNFZO3WQ.js → chunk-AUSDBXUD.js} +2 -2
  11. package/dist/chunks/{chunk-4RBF6ZDU.js → chunk-BHDZCUTT.js} +13 -31
  12. package/dist/chunks/{chunk-UB325PS7.js → chunk-BRQBLRFB.js} +1 -1
  13. package/dist/chunks/{chunk-RHXEHBO3.js → chunk-D2D4FJ6S.js} +2 -2
  14. package/dist/chunks/{chunk-BU3JMDDH.js → chunk-DKFFXOHJ.js} +2 -2
  15. package/dist/chunks/{chunk-JEON5XEH.js → chunk-FBY3IEDZ.js} +5 -5
  16. package/dist/chunks/{chunk-OFUQPP26.js → chunk-HNU5CXW4.js} +1 -1
  17. package/dist/chunks/{chunk-4ZWTYJSP.js → chunk-HQXVCOH6.js} +1 -1
  18. package/dist/chunks/{chunk-APGVHLAW.js → chunk-L2JUC7NX.js} +1 -1
  19. package/dist/chunks/{chunk-GYBFQLYR.js → chunk-NKJC5SI4.js} +1 -1
  20. package/dist/chunks/{chunk-R2BVH5SQ.js → chunk-O7SQKNIT.js} +1 -1
  21. package/dist/chunks/{chunk-CZXW3DJH.js → chunk-P56KWLXY.js} +1 -1
  22. package/dist/chunks/{chunk-ELUNQCFN.js → chunk-QIHIANBF.js} +5 -3
  23. package/dist/chunks/{chunk-ZS5VKEZL.js → chunk-RJD5NYGF.js} +1 -1
  24. package/dist/chunks/{chunk-VMTOBGCO.js → chunk-SG4QOQTF.js} +311 -79
  25. package/dist/chunks/{compile-vercel-config-A2SLMCWK.js → compile-vercel-config-ZVY7LBE3.js} +1 -1
  26. package/dist/chunks/{delete-SEQBCYWT.js → delete-SKTJMJNP.js} +2 -2
  27. package/dist/chunks/{disable-GRM5DJGU.js → disable-AG7I6DPV.js} +2 -2
  28. package/dist/chunks/{discard-IVQWWSPI.js → discard-LUK6LBLT.js} +2 -2
  29. package/dist/chunks/{edit-YTMZBT4Y.js → edit-3BR5HP3U.js} +3 -3
  30. package/dist/chunks/{enable-SSU3MG6J.js → enable-4JNLOKSM.js} +2 -2
  31. package/dist/chunks/{export-INCDZTYW.js → export-YLZ6QSHG.js} +2 -2
  32. package/dist/chunks/{inspect-QMY2ZE6J.js → inspect-HUJLUQAV.js} +3 -3
  33. package/dist/chunks/{list-MMIBPSB3.js → list-EPU4SB3E.js} +2 -2
  34. package/dist/chunks/{list-FF4VGSZ2.js → list-RMA56KYZ.js} +3 -3
  35. package/dist/chunks/{ls-TYEDISJD.js → ls-7HHDYE6F.js} +4 -4
  36. package/dist/chunks/{publish-OJQCVDL5.js → publish-6YE4OUDI.js} +2 -2
  37. package/dist/chunks/{query-LACPOOBL.js → query-X6Q4ZSZO.js} +8 -6
  38. package/dist/chunks/{reorder-TBFWHFQZ.js → reorder-VFM23ESC.js} +2 -2
  39. package/dist/chunks/{restore-5LUZRUME.js → restore-VX34SXVF.js} +2 -2
  40. package/dist/chunks/{rm-LDXY2G45.js → rm-5KXF2PY3.js} +4 -4
  41. package/dist/chunks/{rule-inspect-THIN6POX.js → rule-inspect-JG7AE5TI.js} +4 -4
  42. package/dist/chunks/{rules-4ZH7VTGC.js → rules-XRJBT22L.js} +6 -6
  43. package/dist/chunks/{schema-OK4OOI2N.js → schema-IMD4VV73.js} +51 -21
  44. package/dist/chunks/{update-EXPUPEH6.js → update-4FMWTIJK.js} +4 -4
  45. package/dist/commands/build/index.js +18 -29
  46. package/dist/commands/deploy/index.js +25 -25
  47. package/dist/commands/dev/index.js +23 -22
  48. package/dist/commands/env/index.js +6 -6
  49. package/dist/commands/link/index.js +8 -8
  50. package/dist/commands/list/index.js +3 -3
  51. package/dist/commands-bulk.js +2912 -1432
  52. package/dist/help.js +1 -1
  53. package/dist/index.js +41 -20
  54. package/dist/version.mjs +1 -1
  55. package/package.json +21 -21
@@ -11,7 +11,7 @@ import {
11
11
  findSourceVercelConfigFile,
12
12
  getVercelConfigPath,
13
13
  normalizeConfig
14
- } from "./chunk-4VP55L4V.js";
14
+ } from "./chunk-537JTK2U.js";
15
15
  import "./chunk-U3WLEFHU.js";
16
16
  import "./chunk-CGTXAXZ4.js";
17
17
  import "./chunk-CO5D46AG.js";
@@ -15,7 +15,7 @@ import {
15
15
  parseSubcommandArgs,
16
16
  resolveRoutes,
17
17
  withGlobalFlags
18
- } from "./chunk-OFUQPP26.js";
18
+ } from "./chunk-HNU5CXW4.js";
19
19
  import {
20
20
  deleteSubcommand
21
21
  } from "./chunk-CRZM5WM2.js";
@@ -23,7 +23,7 @@ import {
23
23
  AGENT_REASON,
24
24
  AGENT_STATUS
25
25
  } from "./chunk-E3NE4SKN.js";
26
- import "./chunk-4VP55L4V.js";
26
+ import "./chunk-537JTK2U.js";
27
27
  import "./chunk-U3WLEFHU.js";
28
28
  import {
29
29
  outputAgentError
@@ -17,12 +17,12 @@ import {
17
17
  parseSubcommandArgs,
18
18
  resolveRoute,
19
19
  withGlobalFlags
20
- } from "./chunk-OFUQPP26.js";
20
+ } from "./chunk-HNU5CXW4.js";
21
21
  import {
22
22
  disableSubcommand
23
23
  } from "./chunk-CRZM5WM2.js";
24
24
  import "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  outputAgentError
@@ -17,12 +17,12 @@ import {
17
17
  parseSubcommandArgs,
18
18
  printDiffSummary,
19
19
  withGlobalFlags
20
- } from "./chunk-OFUQPP26.js";
20
+ } from "./chunk-HNU5CXW4.js";
21
21
  import {
22
22
  discardSubcommand
23
23
  } from "./chunk-CRZM5WM2.js";
24
24
  import "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  outputAgentError
@@ -19,7 +19,7 @@ import {
19
19
  printRouteConfig,
20
20
  routingRuleToCurrentRoute,
21
21
  runInteractiveEditLoop
22
- } from "./chunk-RRYVGOVK.js";
22
+ } from "./chunk-5NTBJ33M.js";
23
23
  import {
24
24
  getRouteVersions
25
25
  } from "./chunk-AHU7WNL2.js";
@@ -31,12 +31,12 @@ import {
31
31
  resolveRoute,
32
32
  shellQuoteRouteIdentifierForSuggestion,
33
33
  withGlobalFlags
34
- } from "./chunk-OFUQPP26.js";
34
+ } from "./chunk-HNU5CXW4.js";
35
35
  import {
36
36
  editSubcommand
37
37
  } from "./chunk-CRZM5WM2.js";
38
38
  import "./chunk-E3NE4SKN.js";
39
- import "./chunk-4VP55L4V.js";
39
+ import "./chunk-537JTK2U.js";
40
40
  import "./chunk-U3WLEFHU.js";
41
41
  import {
42
42
  outputAgentError
@@ -17,12 +17,12 @@ import {
17
17
  parseSubcommandArgs,
18
18
  resolveRoute,
19
19
  withGlobalFlags
20
- } from "./chunk-OFUQPP26.js";
20
+ } from "./chunk-HNU5CXW4.js";
21
21
  import {
22
22
  enableSubcommand
23
23
  } from "./chunk-CRZM5WM2.js";
24
24
  import "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  outputAgentError
@@ -9,12 +9,12 @@ import {
9
9
  getRoutes,
10
10
  parseSubcommandArgs,
11
11
  withGlobalFlags
12
- } from "./chunk-OFUQPP26.js";
12
+ } from "./chunk-HNU5CXW4.js";
13
13
  import {
14
14
  exportSubcommand
15
15
  } from "./chunk-CRZM5WM2.js";
16
16
  import "./chunk-E3NE4SKN.js";
17
- import "./chunk-4VP55L4V.js";
17
+ import "./chunk-537JTK2U.js";
18
18
  import "./chunk-U3WLEFHU.js";
19
19
  import {
20
20
  outputAgentError
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  emitAlertsScopeError
9
- } from "./chunk-NE34PEHL.js";
9
+ } from "./chunk-7ZDERWUW.js";
10
10
  import {
11
11
  handleValidationError,
12
12
  outputError,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-HTOH3MSD.js";
15
15
  import {
16
16
  getScope
17
- } from "./chunk-APGVHLAW.js";
17
+ } from "./chunk-L2JUC7NX.js";
18
18
  import {
19
19
  validateJsonOutput
20
20
  } from "./chunk-XPKWKPWA.js";
@@ -28,7 +28,7 @@ import {
28
28
  import {
29
29
  getLinkedProject,
30
30
  getProjectByNameOrId
31
- } from "./chunk-4VP55L4V.js";
31
+ } from "./chunk-537JTK2U.js";
32
32
  import "./chunk-U3WLEFHU.js";
33
33
  import {
34
34
  buildCommandWithGlobalFlags,
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-EOZFDJSY.js";
19
19
  import {
20
20
  getScope
21
- } from "./chunk-APGVHLAW.js";
21
+ } from "./chunk-L2JUC7NX.js";
22
22
  import {
23
23
  validateJsonOutput
24
24
  } from "./chunk-XPKWKPWA.js";
@@ -28,7 +28,7 @@ import {
28
28
  import {
29
29
  getLinkedProject,
30
30
  getProjectByNameOrId
31
- } from "./chunk-4VP55L4V.js";
31
+ } from "./chunk-537JTK2U.js";
32
32
  import "./chunk-U3WLEFHU.js";
33
33
  import "./chunk-CGTXAXZ4.js";
34
34
  import "./chunk-CO5D46AG.js";
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
6
6
  const __dirname = __dirname_(__filename);
7
7
  import {
8
8
  resolveAlertsScope
9
- } from "./chunk-NE34PEHL.js";
9
+ } from "./chunk-7ZDERWUW.js";
10
10
  import {
11
11
  handleValidationError,
12
12
  normalizeRepeatableStringFilters,
@@ -16,7 +16,7 @@ import {
16
16
  validateTimeBound,
17
17
  validateTimeOrder
18
18
  } from "./chunk-HTOH3MSD.js";
19
- import "./chunk-APGVHLAW.js";
19
+ import "./chunk-L2JUC7NX.js";
20
20
  import {
21
21
  validateJsonOutput
22
22
  } from "./chunk-XPKWKPWA.js";
@@ -30,7 +30,7 @@ import {
30
30
  import {
31
31
  table
32
32
  } from "./chunk-GE6G37P4.js";
33
- import "./chunk-4VP55L4V.js";
33
+ import "./chunk-537JTK2U.js";
34
34
  import "./chunk-U3WLEFHU.js";
35
35
  import {
36
36
  buildCommandWithGlobalFlags,
@@ -9,10 +9,10 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesCollectionPath
12
- } from "./chunk-4ZWTYJSP.js";
13
- import "./chunk-NE34PEHL.js";
12
+ } from "./chunk-HQXVCOH6.js";
13
+ import "./chunk-7ZDERWUW.js";
14
14
  import "./chunk-HTOH3MSD.js";
15
- import "./chunk-APGVHLAW.js";
15
+ import "./chunk-L2JUC7NX.js";
16
16
  import {
17
17
  validateJsonOutput
18
18
  } from "./chunk-XPKWKPWA.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  AGENT_REASON
24
24
  } from "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  outputAgentError
@@ -17,12 +17,12 @@ import {
17
17
  parseSubcommandArgs,
18
18
  printDiffSummary,
19
19
  withGlobalFlags
20
- } from "./chunk-OFUQPP26.js";
20
+ } from "./chunk-HNU5CXW4.js";
21
21
  import {
22
22
  publishSubcommand
23
23
  } from "./chunk-CRZM5WM2.js";
24
24
  import "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  outputAgentError
@@ -21,20 +21,20 @@ import {
21
21
  } from "./chunk-A3NYPUKZ.js";
22
22
  import {
23
23
  getScope
24
- } from "./chunk-APGVHLAW.js";
24
+ } from "./chunk-L2JUC7NX.js";
25
25
  import {
26
26
  validateJsonOutput
27
27
  } from "./chunk-XPKWKPWA.js";
28
28
  import {
29
29
  metricsCommand
30
- } from "./chunk-4RBF6ZDU.js";
30
+ } from "./chunk-BHDZCUTT.js";
31
31
  import {
32
32
  table
33
33
  } from "./chunk-GE6G37P4.js";
34
34
  import {
35
35
  getLinkedProject,
36
36
  getProjectByNameOrId
37
- } from "./chunk-4VP55L4V.js";
37
+ } from "./chunk-537JTK2U.js";
38
38
  import "./chunk-U3WLEFHU.js";
39
39
  import "./chunk-CGTXAXZ4.js";
40
40
  import {
@@ -70,7 +70,7 @@ function validateRequiredMetric(metric) {
70
70
  return {
71
71
  valid: false,
72
72
  code: "MISSING_METRIC",
73
- message: "Missing required flag --metric. Specify the metric to query.\n\nRun 'vercel metrics schema' to see available metrics."
73
+ message: "Missing required metric. Specify the metric to query.\n\nRun 'vercel metrics schema' to see available metrics."
74
74
  };
75
75
  }
76
76
 
@@ -799,13 +799,15 @@ async function query(client, telemetry) {
799
799
  return 1;
800
800
  }
801
801
  const flags = parsedArgs.flags;
802
+ const positionalArgs = parsedArgs.args.slice(1);
803
+ const positionalMetric = positionalArgs[0] === "query" ? positionalArgs[1] : positionalArgs[0];
802
804
  const formatResult = validateJsonOutput(flags);
803
805
  if (!formatResult.valid) {
804
806
  output_manager_default.error(formatResult.error);
805
807
  return 1;
806
808
  }
807
809
  const jsonOutput = formatResult.jsonOutput;
808
- const metricFlag = flags["--metric"];
810
+ const metricFlag = positionalMetric;
809
811
  const aggregationFlag = flags["--aggregation"];
810
812
  const groupBy = flags["--group-by"] ?? [];
811
813
  const limit = flags["--limit"];
@@ -815,7 +817,7 @@ async function query(client, telemetry) {
815
817
  const granularity = flags["--granularity"];
816
818
  const project = flags["--project"];
817
819
  const all = flags["--all"];
818
- telemetry.trackCliOptionMetric(metricFlag);
820
+ telemetry.trackCliArgumentMetricId(metricFlag);
819
821
  telemetry.trackCliOptionAggregation(aggregationFlag);
820
822
  telemetry.trackCliOptionGroupBy(groupBy.length > 0 ? groupBy : void 0);
821
823
  telemetry.trackCliOptionLimit(limit);
@@ -16,12 +16,12 @@ import {
16
16
  resolveRoute,
17
17
  shellQuoteRouteIdentifierForSuggestion,
18
18
  withGlobalFlags
19
- } from "./chunk-OFUQPP26.js";
19
+ } from "./chunk-HNU5CXW4.js";
20
20
  import {
21
21
  reorderSubcommand
22
22
  } from "./chunk-CRZM5WM2.js";
23
23
  import "./chunk-E3NE4SKN.js";
24
- import "./chunk-4VP55L4V.js";
24
+ import "./chunk-537JTK2U.js";
25
25
  import "./chunk-U3WLEFHU.js";
26
26
  import {
27
27
  outputAgentError
@@ -19,12 +19,12 @@ import {
19
19
  printDiffSummary,
20
20
  validateRequiredArgs,
21
21
  withGlobalFlags
22
- } from "./chunk-OFUQPP26.js";
22
+ } from "./chunk-HNU5CXW4.js";
23
23
  import {
24
24
  restoreSubcommand
25
25
  } from "./chunk-CRZM5WM2.js";
26
26
  import "./chunk-E3NE4SKN.js";
27
- import "./chunk-4VP55L4V.js";
27
+ import "./chunk-537JTK2U.js";
28
28
  import "./chunk-U3WLEFHU.js";
29
29
  import {
30
30
  outputAgentError
@@ -9,10 +9,10 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesItemPath
12
- } from "./chunk-4ZWTYJSP.js";
13
- import "./chunk-NE34PEHL.js";
12
+ } from "./chunk-HQXVCOH6.js";
13
+ import "./chunk-7ZDERWUW.js";
14
14
  import "./chunk-HTOH3MSD.js";
15
- import "./chunk-APGVHLAW.js";
15
+ import "./chunk-L2JUC7NX.js";
16
16
  import {
17
17
  validateJsonOutput
18
18
  } from "./chunk-XPKWKPWA.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  AGENT_REASON
24
24
  } from "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  buildCommandWithGlobalFlags,
@@ -9,10 +9,10 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesItemPath
12
- } from "./chunk-4ZWTYJSP.js";
13
- import "./chunk-NE34PEHL.js";
12
+ } from "./chunk-HQXVCOH6.js";
13
+ import "./chunk-7ZDERWUW.js";
14
14
  import "./chunk-HTOH3MSD.js";
15
- import "./chunk-APGVHLAW.js";
15
+ import "./chunk-L2JUC7NX.js";
16
16
  import {
17
17
  validateJsonOutput
18
18
  } from "./chunk-XPKWKPWA.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  AGENT_REASON
24
24
  } from "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  buildCommandWithGlobalFlags,
@@ -31,7 +31,7 @@ var RULES_CONFIG = {
31
31
  };
32
32
  async function rules(client, argv) {
33
33
  if (argv.length === 0) {
34
- const lsFn = (await import("./ls-TYEDISJD.js")).default;
34
+ const lsFn = (await import("./ls-7HHDYE6F.js")).default;
35
35
  return lsFn(client, []);
36
36
  }
37
37
  const { subcommand, args, subcommandOriginal } = getSubcommand(
@@ -64,15 +64,15 @@ async function rules(client, argv) {
64
64
  }
65
65
  switch (subcommand) {
66
66
  case "ls":
67
- return (await import("./ls-TYEDISJD.js")).default(client, args);
67
+ return (await import("./ls-7HHDYE6F.js")).default(client, args);
68
68
  case "add":
69
- return (await import("./add-3MIOUOZC.js")).default(client, args);
69
+ return (await import("./add-RNQLGEYS.js")).default(client, args);
70
70
  case "inspect":
71
- return (await import("./rule-inspect-THIN6POX.js")).default(client, args);
71
+ return (await import("./rule-inspect-JG7AE5TI.js")).default(client, args);
72
72
  case "rm":
73
- return (await import("./rm-LDXY2G45.js")).default(client, args);
73
+ return (await import("./rm-5KXF2PY3.js")).default(client, args);
74
74
  case "update":
75
- return (await import("./update-EXPUPEH6.js")).default(client, args);
75
+ return (await import("./update-4FMWTIJK.js")).default(client, args);
76
76
  default:
77
77
  output_manager_default.error(`Unhandled rules subcommand: ${String(subcommandOriginal)}`);
78
78
  return 1;
@@ -17,17 +17,17 @@ import {
17
17
  } from "./chunk-G6RXZLQ2.js";
18
18
  import {
19
19
  getScope
20
- } from "./chunk-APGVHLAW.js";
20
+ } from "./chunk-L2JUC7NX.js";
21
21
  import {
22
22
  validateJsonOutput
23
23
  } from "./chunk-XPKWKPWA.js";
24
24
  import {
25
25
  schemaSubcommand
26
- } from "./chunk-4RBF6ZDU.js";
26
+ } from "./chunk-BHDZCUTT.js";
27
27
  import "./chunk-GE6G37P4.js";
28
28
  import {
29
29
  require_pluralize
30
- } from "./chunk-4VP55L4V.js";
30
+ } from "./chunk-537JTK2U.js";
31
31
  import "./chunk-U3WLEFHU.js";
32
32
  import "./chunk-CGTXAXZ4.js";
33
33
  import "./chunk-CO5D46AG.js";
@@ -57,14 +57,16 @@ async function schema(client, telemetry) {
57
57
  return 1;
58
58
  }
59
59
  const flags = parsedArgs.flags;
60
+ const positionalArgs = parsedArgs.args.slice(1);
61
+ const positionalMetric = positionalArgs[0] === "schema" ? positionalArgs[1] : positionalArgs[0];
60
62
  const formatResult = validateJsonOutput(flags);
61
63
  if (!formatResult.valid) {
62
64
  output_manager_default.error(formatResult.error);
63
65
  return 1;
64
66
  }
65
67
  const jsonOutput = formatResult.jsonOutput;
66
- const metric = flags["--metric"];
67
- telemetry.trackCliOptionMetric(metric);
68
+ const metric = positionalMetric;
69
+ telemetry.trackCliArgumentMetricId(metric);
68
70
  telemetry.trackCliOptionFormat(flags["--format"]);
69
71
  const { team } = await getScope(client);
70
72
  if (!team) {
@@ -129,26 +131,54 @@ function formatMetricsTable(metrics) {
129
131
  if (metrics.length === 0) {
130
132
  return null;
131
133
  }
132
- return indent_default(
134
+ const dimensionsByMetric = metrics.map(
135
+ (metric) => metric.dimensions.map((dimension) => dimension.name)
136
+ );
137
+ const sharedDimensions = dimensionsByMetric[0].filter(
138
+ (dimension) => dimensionsByMetric.every(
139
+ (metricDimensions) => metricDimensions.includes(dimension)
140
+ )
141
+ );
142
+ const rows = metrics.map((metric) => {
143
+ const extraDimensions = metric.dimensions.map((dimension) => dimension.name).filter((dimension) => !sharedDimensions.includes(dimension)).map((dimension) => `+${dimension}`);
144
+ const aggregations = metric.aggregations.map(
145
+ (aggregation) => aggregation === metric.defaultAggregation ? `${aggregation} (default)` : aggregation
146
+ ).join(", ");
147
+ return {
148
+ metric: metric.id,
149
+ description: metric.description,
150
+ unit: metric.unit,
151
+ aggregations,
152
+ extraDimensions
153
+ };
154
+ });
155
+ const hasExtraDimensions = rows.some((row) => row.extraDimensions.length > 0);
156
+ const tableHeaders = hasExtraDimensions ? ["Metric", "Description", "Unit", "Aggregations", "Dimensions"] : ["Metric", "Description", "Unit", "Aggregations"];
157
+ const tableRows = rows.map(
158
+ (row) => hasExtraDimensions ? [
159
+ row.metric,
160
+ row.description,
161
+ row.unit,
162
+ row.aggregations,
163
+ row.extraDimensions.join(", ") || "\u2014"
164
+ ] : [row.metric, row.description, row.unit, row.aggregations]
165
+ );
166
+ const sharedDimensionsLine = sharedDimensions.length > 0 ? metrics.length === 1 ? `Dimensions:
167
+ ${sharedDimensions.join(", ")}` : `Shared dimensions:
168
+ ${sharedDimensions.join(", ")}` : null;
169
+ const table = indent_default(
133
170
  formatTable(
134
- ["Metric", "Description", "Dimensions", "Unit", "Aggregations"],
135
- ["l", "l", "l", "l", "l"],
136
- [
137
- {
138
- rows: metrics.map((metric) => [
139
- metric.id,
140
- metric.description,
141
- metric.dimensions.map((dimension) => dimension.name).join(", ") || "\u2014",
142
- metric.unit,
143
- metric.aggregations.map(
144
- (aggregation) => aggregation === metric.defaultAggregation ? `${aggregation} (default)` : aggregation
145
- ).join(", ")
146
- ])
147
- }
148
- ]
171
+ tableHeaders,
172
+ hasExtraDimensions ? ["l", "l", "l", "l", "l"] : ["l", "l", "l", "l"],
173
+ [{ rows: tableRows }]
149
174
  ),
150
175
  1
151
176
  );
177
+ return sharedDimensionsLine ? `
178
+ ${table}
179
+
180
+ ${sharedDimensionsLine}` : `
181
+ ${table}`;
152
182
  }
153
183
  export {
154
184
  schema as default
@@ -9,10 +9,10 @@ import {
9
9
  handleRulesApiError,
10
10
  parseRulesFlagsAndScope,
11
11
  rulesItemPath
12
- } from "./chunk-4ZWTYJSP.js";
13
- import "./chunk-NE34PEHL.js";
12
+ } from "./chunk-HQXVCOH6.js";
13
+ import "./chunk-7ZDERWUW.js";
14
14
  import "./chunk-HTOH3MSD.js";
15
- import "./chunk-APGVHLAW.js";
15
+ import "./chunk-L2JUC7NX.js";
16
16
  import {
17
17
  validateJsonOutput
18
18
  } from "./chunk-XPKWKPWA.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  AGENT_REASON
24
24
  } from "./chunk-E3NE4SKN.js";
25
- import "./chunk-4VP55L4V.js";
25
+ import "./chunk-537JTK2U.js";
26
26
  import "./chunk-U3WLEFHU.js";
27
27
  import {
28
28
  buildCommandWithGlobalFlags,
@@ -10,17 +10,17 @@ import {
10
10
  isLambda,
11
11
  staticFiles,
12
12
  writeBuildResult
13
- } from "../../chunks/chunk-BU3JMDDH.js";
13
+ } from "../../chunks/chunk-DKFFXOHJ.js";
14
14
  import {
15
15
  require_semver
16
16
  } from "../../chunks/chunk-IB5L4LKZ.js";
17
17
  import {
18
18
  pullCommandLogic
19
- } from "../../chunks/chunk-4WRHMYCG.js";
19
+ } from "../../chunks/chunk-5VKKTHMP.js";
20
20
  import {
21
21
  pickOverrides,
22
22
  readProjectSettings
23
- } from "../../chunks/chunk-UB325PS7.js";
23
+ } from "../../chunks/chunk-BRQBLRFB.js";
24
24
  import {
25
25
  AGENT_REASON,
26
26
  AGENT_STATUS
@@ -28,13 +28,13 @@ import {
28
28
  import {
29
29
  ua_default
30
30
  } from "../../chunks/chunk-4PQA6H63.js";
31
- import "../../chunks/chunk-BAUYQ7AR.js";
32
- import "../../chunks/chunk-FNFZO3WQ.js";
33
- import "../../chunks/chunk-RHXEHBO3.js";
34
- import "../../chunks/chunk-GYBFQLYR.js";
31
+ import "../../chunks/chunk-7MF47FW3.js";
32
+ import "../../chunks/chunk-AUSDBXUD.js";
33
+ import "../../chunks/chunk-D2D4FJ6S.js";
34
+ import "../../chunks/chunk-NKJC5SI4.js";
35
35
  import {
36
36
  buildCommand
37
- } from "../../chunks/chunk-ZS5VKEZL.js";
37
+ } from "../../chunks/chunk-RJD5NYGF.js";
38
38
  import {
39
39
  help
40
40
  } from "../../chunks/chunk-LDXYSGPZ.js";
@@ -58,7 +58,7 @@ import {
58
58
  require_minimatch,
59
59
  resolveProjectCwd,
60
60
  validateConfig
61
- } from "../../chunks/chunk-4VP55L4V.js";
61
+ } from "../../chunks/chunk-537JTK2U.js";
62
62
  import {
63
63
  TelemetryClient
64
64
  } from "../../chunks/chunk-U3WLEFHU.js";
@@ -1054,7 +1054,8 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
1054
1054
  name: service.name,
1055
1055
  type: service.type,
1056
1056
  routePrefix: typeof serviceRoutePrefix === "string" ? serviceRoutePrefix : void 0,
1057
- workspace: typeof serviceWorkspace === "string" ? serviceWorkspace : void 0
1057
+ workspace: typeof serviceWorkspace === "string" ? serviceWorkspace : void 0,
1058
+ schedule: service.schedule
1058
1059
  }
1059
1060
  } : void 0
1060
1061
  };
@@ -1194,6 +1195,12 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
1194
1195
  if (service?.type === "worker" && "output" in buildResult) {
1195
1196
  attachWorkerServiceTrigger(buildResult.output, service);
1196
1197
  }
1198
+ if (service?.type === "cron" && !("crons" in buildResult && buildResult.crons?.length)) {
1199
+ throw new NowBuildError2({
1200
+ code: "CRON_SERVICE_NO_CRONS",
1201
+ message: `Cron service "${service.name}" did not produce any cron entries. The builder "${builderPkg.name}" may not support cron services.`
1202
+ });
1203
+ }
1197
1204
  let mergedBuildResult = buildResult;
1198
1205
  if ("buildOutputPath" in buildResult) {
1199
1206
  const buildOutputConfigPath = join2(
@@ -1388,9 +1395,8 @@ async function doBuild(client, project, buildsJson, cwd, outputDir, span, standa
1388
1395
  builds: builderRoutes
1389
1396
  });
1390
1397
  const mergedImages = mergeImages(localConfig.images, buildResults.values());
1391
- const serviceCrons = getServiceCrons(detectedServices);
1392
1398
  const mergedCrons = mergeCrons(
1393
- [...localConfig.crons || [], ...serviceCrons],
1399
+ localConfig.crons || [],
1394
1400
  buildResults.values()
1395
1401
  );
1396
1402
  const mergedWildcard = mergeWildcard(buildResults.values());
@@ -1664,23 +1670,6 @@ function mergeImages(images, buildResults) {
1664
1670
  }
1665
1671
  return images;
1666
1672
  }
1667
- function getServiceCrons(services) {
1668
- if (!services || services.length === 0) {
1669
- return [];
1670
- }
1671
- const crons = [];
1672
- for (const service of services) {
1673
- if (service.type !== "cron" || typeof service.schedule !== "string") {
1674
- continue;
1675
- }
1676
- const cronEntrypoint = service.entrypoint || service.builder.src || "index";
1677
- crons.push({
1678
- path: (0, import_fs_detectors2.getInternalServiceCronPath)(service.name, cronEntrypoint),
1679
- schedule: service.schedule
1680
- });
1681
- }
1682
- return crons;
1683
- }
1684
1673
  function mergeCrons(crons = [], buildResults) {
1685
1674
  for (const result of buildResults) {
1686
1675
  if ("crons" in result && result.crons) {