vercel 59.11.2 → 59.12.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 (173) hide show
  1. package/dist/chunks/{add-BKSHWTPX.js → add-OO3JGLZW.js} +23 -18
  2. package/dist/chunks/{add-HPLJZFM2.js → add-RTXDASSS.js} +23 -18
  3. package/dist/chunks/add-XGO6LHMD.js +221 -0
  4. package/dist/chunks/{build-V4ZLAJWB.js → build-JINV2UD4.js} +23 -18
  5. package/dist/chunks/{chunk-NGGLYKNU.js → chunk-26CU4Q3C.js} +3 -115
  6. package/dist/chunks/{chunk-QFAS4OVW.js → chunk-2JIX6UMI.js} +3 -84
  7. package/dist/chunks/chunk-2NIDTSQJ.js +305 -0
  8. package/dist/chunks/chunk-32XSMM3W.js +49 -0
  9. package/dist/chunks/chunk-332LMJLZ.js +16014 -0
  10. package/dist/chunks/{chunk-RO44KX6Y.js → chunk-3BB2HOO2.js} +12 -7
  11. package/dist/chunks/{chunk-HDBQPBL6.js → chunk-3F25W3GA.js} +13 -9
  12. package/dist/chunks/{chunk-AYLY3ZVL.js → chunk-3VM7HWF6.js} +2 -2
  13. package/dist/chunks/chunk-4IALDGB7.js +22 -0
  14. package/dist/chunks/{chunk-MTWHQEXI.js → chunk-4TUMNBEE.js} +7 -5
  15. package/dist/chunks/{chunk-5XECIWME.js → chunk-5NF5HOBJ.js} +5 -3
  16. package/dist/chunks/chunk-6E6KPBXY.js +43 -0
  17. package/dist/chunks/{chunk-ASBP32T6.js → chunk-7MRDIPJY.js} +1 -1
  18. package/dist/chunks/chunk-ABSZNJQO.js +522 -0
  19. package/dist/chunks/{chunk-7ST552E3.js → chunk-AKLTIZCU.js} +1 -1
  20. package/dist/chunks/{chunk-ONRLTUP2.js → chunk-AV747POV.js} +43 -36
  21. package/dist/chunks/chunk-B5XLQKHI.js +849 -0
  22. package/dist/chunks/{chunk-BMKU5KEL.js → chunk-CV5YC2EN.js} +1 -1
  23. package/dist/chunks/{chunk-TPATD2MM.js → chunk-CZ5QQRXD.js} +14 -6
  24. package/dist/chunks/{chunk-2EAIC3SH.js → chunk-E47NARDE.js} +8 -8
  25. package/dist/chunks/{chunk-XM3LOQIX.js → chunk-EDMW7SBH.js} +76 -92
  26. package/dist/chunks/{chunk-QAT3CW4G.js → chunk-EFYMIIER.js} +2 -2
  27. package/dist/chunks/chunk-ELZ6WQQA.js +81 -0
  28. package/dist/chunks/{chunk-FKDO3CM4.js → chunk-EOLGLGXJ.js} +17 -13
  29. package/dist/chunks/chunk-FRVG4OW3.js +7438 -0
  30. package/dist/chunks/chunk-G5FBSUL4.js +822 -0
  31. package/dist/chunks/chunk-GDOUDU6O.js +74 -0
  32. package/dist/chunks/{chunk-OQ3C5VXZ.js → chunk-GVNCVKCI.js} +4 -2
  33. package/dist/chunks/chunk-HB4UKFDO.js +1295 -0
  34. package/dist/chunks/{chunk-FRAXI2WT.js → chunk-HD4DR3DA.js} +4 -3
  35. package/dist/chunks/{chunk-DWIC7MRV.js → chunk-HKHXKSXQ.js} +1 -1
  36. package/dist/chunks/{chunk-6JPVTPTU.js → chunk-HM24ZWQL.js} +4 -4
  37. package/dist/chunks/chunk-HR2MP4XF.js +324 -0
  38. package/dist/chunks/chunk-HRXRELD3.js +338 -0
  39. package/dist/chunks/{chunk-IJ4X426J.js → chunk-IIMSID24.js} +1 -1
  40. package/dist/chunks/{chunk-B4TXCKXE.js → chunk-JOXNBQ7W.js} +10 -8
  41. package/dist/chunks/{chunk-O75LSD3C.js → chunk-JSD4EZL3.js} +1 -1
  42. package/dist/chunks/{chunk-7AEEQOD4.js → chunk-K3RED3VO.js} +1 -1
  43. package/dist/chunks/chunk-KAF4WFF3.js +257 -0
  44. package/dist/chunks/{chunk-3T7WSWZH.js → chunk-KFWQ3EFH.js} +1 -1
  45. package/dist/chunks/{chunk-6CZZ3SH3.js → chunk-KNO327AW.js} +2 -2
  46. package/dist/chunks/{chunk-L3UXB2CW.js → chunk-KW7BS25T.js} +1 -1
  47. package/dist/chunks/{chunk-2NJJ2K5S.js → chunk-L6B6BRHH.js} +6 -6
  48. package/dist/chunks/{chunk-FZRBF25Y.js → chunk-LDV2R4P4.js} +4 -4
  49. package/dist/chunks/chunk-MADFAH3O.js +14059 -0
  50. package/dist/chunks/{chunk-OO3OF6MK.js → chunk-MDGPZHSM.js} +151 -26
  51. package/dist/chunks/{chunk-XRWOTCDO.js → chunk-ND5CF2H3.js} +1 -1
  52. package/dist/chunks/{chunk-6TBDHUXK.js → chunk-NDY3JDOU.js} +21 -15
  53. package/dist/chunks/{chunk-RKDCNQ4S.js → chunk-NW34PW6V.js} +3 -105
  54. package/dist/chunks/{chunk-C5HKWXRR.js → chunk-OAMU5QO6.js} +1 -1
  55. package/dist/chunks/{chunk-RSJBU3ON.js → chunk-OJHDGHOB.js} +35 -27
  56. package/dist/chunks/chunk-P7VSBDR4.js +827 -0
  57. package/dist/chunks/chunk-PEC3CQSK.js +90 -0
  58. package/dist/chunks/{chunk-KJBZ5ZST.js → chunk-PIMIVJYK.js} +1 -0
  59. package/dist/chunks/chunk-PNGVSHR3.js +40 -0
  60. package/dist/chunks/chunk-PP5GKSIX.js +137 -0
  61. package/dist/chunks/chunk-QB2UHSUB.js +58 -0
  62. package/dist/chunks/chunk-QIUK4Z7Q.js +79 -0
  63. package/dist/chunks/chunk-RN6V5ODW.js +114 -0
  64. package/dist/chunks/chunk-RNK3LXLR.js +1288 -0
  65. package/dist/chunks/chunk-RVBZ64EQ.js +52 -0
  66. package/dist/chunks/{chunk-WA2SJE5S.js → chunk-SWO66HE2.js} +4 -4
  67. package/dist/chunks/{chunk-NBW3BWOJ.js → chunk-TDGK45FB.js} +2 -2
  68. package/dist/chunks/{chunk-WNAKOXGK.js → chunk-TO7QZGYK.js} +1 -1
  69. package/dist/chunks/{chunk-QDV5LZ4Q.js → chunk-UA55I7M6.js} +12 -8
  70. package/dist/chunks/{chunk-FWKSJYDV.js → chunk-UG2WOB5L.js} +1 -1
  71. package/dist/chunks/chunk-UJPVHLL5.js +233 -0
  72. package/dist/chunks/chunk-V4RMJKQP.js +36 -0
  73. package/dist/chunks/chunk-VJSREJVM.js +875 -0
  74. package/dist/chunks/chunk-VUS2JQB2.js +121 -0
  75. package/dist/chunks/{chunk-4KVJ2M4J.js → chunk-WPBCUXMZ.js} +582 -37
  76. package/dist/chunks/chunk-WSZ5E4WH.js +92 -0
  77. package/dist/chunks/{chunk-Q5K5DEOK.js → chunk-WT2Y7FRD.js} +42 -28
  78. package/dist/chunks/chunk-WT6C2ALC.js +18188 -0
  79. package/dist/chunks/chunk-X6TGUHFD.js +59 -0
  80. package/dist/chunks/{chunk-ZSFEACZU.js → chunk-XFF5TGRA.js} +1 -1
  81. package/dist/chunks/chunk-XNIZGCN5.js +58 -0
  82. package/dist/chunks/chunk-XPJLPUKO.js +117 -0
  83. package/dist/chunks/{chunk-FXD67VN5.js → chunk-XUAWTW4W.js} +1 -1
  84. package/dist/chunks/chunk-YPMFZRTN.js +417 -0
  85. package/dist/chunks/chunk-YRESLJCW.js +1536 -0
  86. package/dist/chunks/{chunk-I526H4AS.js → chunk-YS76T533.js} +2 -2
  87. package/dist/chunks/{chunk-52QYYTM5.js → chunk-ZDU2NODC.js} +3 -127
  88. package/dist/chunks/chunk-ZW6HETRE.js +97 -0
  89. package/dist/chunks/{clear-IYGWCNXT.js → clear-GQTDYSKJ.js} +23 -18
  90. package/dist/chunks/{compile-vercel-config-NEEBZRUJ.js → compile-vercel-config-URVMKDVW.js} +8 -11
  91. package/dist/chunks/{config-6DS6BBR2.js → config-MSVQR5T6.js} +23 -18
  92. package/dist/chunks/{config-NTB5EMV4.js → config-OAXY4J6P.js} +23 -18
  93. package/dist/chunks/config-validator.mjs +1 -1
  94. package/dist/chunks/{delete-LSGID5FV.js → delete-57QO64HD.js} +19 -14
  95. package/dist/chunks/{delete-LLC2OGHA.js → delete-XN6ESD7C.js} +16 -12
  96. package/dist/chunks/detect-projects-ODNU4PK2.js +18 -0
  97. package/dist/chunks/detect-services-UPY4LTBZ.js +40 -0
  98. package/dist/chunks/{disable-H4EXEQK7.js → disable-BYI46V7B.js} +17 -13
  99. package/dist/chunks/{discard-FG6VKHWN.js → discard-IIQL44ZZ.js} +17 -13
  100. package/dist/chunks/{edit-BZJSGUHT.js → edit-BRNS3OR4.js} +19 -15
  101. package/dist/chunks/{edit-YE7D3CPJ.js → edit-JTW7XZH7.js} +17 -13
  102. package/dist/chunks/{enable-6ESD4QTE.js → enable-CH5FSQMR.js} +17 -13
  103. package/dist/chunks/{exec-XH4K34JM.js → exec-4IPHZ55G.js} +9 -5
  104. package/dist/chunks/{export-QWSJROLG.js → export-6WHQOWKM.js} +16 -13
  105. package/dist/chunks/{image-LTHQMKFG.js → image-ZSLYATWG.js} +11 -8
  106. package/dist/chunks/{import-builders-6O7ILGQJ.js → import-builders-FNMYJZGG.js} +18 -13
  107. package/dist/chunks/{inspect-2C4ZSNYC.js → inspect-4RDZSYWU.js} +27 -23
  108. package/dist/chunks/{inspect-N6SMHV3Z.js → inspect-7WQXZWET.js} +18 -14
  109. package/dist/chunks/{inspect-F7KCTHIL.js → inspect-CGXTNMMO.js} +19 -15
  110. package/dist/chunks/{inspect-ICKNCDMT.js → inspect-XJ7BYLZ5.js} +18 -14
  111. package/dist/chunks/{inspect-TWDPMXZ5.js → inspect-Z2MBTTB7.js} +18 -14
  112. package/dist/chunks/{list-NWTIJF3L.js → list-65LW6OTM.js} +20 -16
  113. package/dist/chunks/{list-DS7ZOUXA.js → list-7W3PHRB6.js} +25 -21
  114. package/dist/chunks/{list-IPGQVBJO.js → list-KS22Y57L.js} +16 -14
  115. package/dist/chunks/{login-F7A7ONKC.js → login-NXULVQZ2.js} +23 -18
  116. package/dist/chunks/{ls-2QW3ZSM6.js → ls-35EOVEIQ.js} +24 -18
  117. package/dist/chunks/{ls-XINES6PL.js → ls-5GKS5QRW.js} +24 -18
  118. package/dist/chunks/ls-ADYFYYIW.js +204 -0
  119. package/dist/chunks/{ls-D4TUDBIH.js → ls-DZYN3SNS.js} +24 -18
  120. package/dist/chunks/{ls-LSJEUPFX.js → ls-HVQOGBGV.js} +23 -16
  121. package/dist/chunks/{ls-NBDX3MKN.js → ls-I2PWG7YN.js} +24 -18
  122. package/dist/chunks/{open-VRQDWZAW.js → open-H34HXJHP.js} +18 -13
  123. package/dist/chunks/{permissions-6C5C7TEV.js → permissions-ZPPEPKVE.js} +14 -11
  124. package/dist/chunks/{publish-GVIZPNLN.js → publish-NRMKXHAU.js} +17 -13
  125. package/dist/chunks/pull-WUT3XTZX.js +45 -0
  126. package/dist/chunks/{push-EFZ5P5Z6.js → push-WFNCEA5J.js} +23 -18
  127. package/dist/chunks/{query-GBS2PIT4.js → query-2FQM3F7N.js} +23 -20
  128. package/dist/chunks/{reorder-TN65IFRL.js → reorder-GYCT7L3C.js} +17 -13
  129. package/dist/chunks/{reply-DYVEV3PY.js → reply-RFEXNYZ7.js} +17 -13
  130. package/dist/chunks/{resolve-JAWFBPUM.js → resolve-ZFGT7W6Z.js} +16 -12
  131. package/dist/chunks/resolve-deployment-framework-preset-NPE6RLV3.js +36 -0
  132. package/dist/chunks/{restore-TJVMHUBQ.js → restore-JAXPMYL5.js} +17 -13
  133. package/dist/chunks/rm-CLKQN5E4.js +162 -0
  134. package/dist/chunks/{rm-HQ5CYNJA.js → rm-JPV5V2SH.js} +23 -18
  135. package/dist/chunks/{rm-7XACNZ2U.js → rm-N7SGFQOA.js} +23 -18
  136. package/dist/chunks/{rm-REJVXALW.js → rm-UQJ4CZJH.js} +23 -18
  137. package/dist/chunks/{rm-CBPNMSRP.js → rm-ZUQ4U454.js} +24 -17
  138. package/dist/chunks/{routes-2OLIBRYX.js → routes-QVMBXOSX.js} +7 -3
  139. package/dist/chunks/rule-inspect-HI3YY7OY.js +123 -0
  140. package/dist/chunks/{rules-VGV4M4KY.js → rules-DA3Q64M4.js} +15 -12
  141. package/dist/chunks/{schema-GMTQOQCV.js → schema-R3C4CXJ6.js} +20 -18
  142. package/dist/chunks/schema-UYYFV3JB.js +381 -0
  143. package/dist/chunks/{set-Z5FO2FCC.js → set-TOJPGW4J.js} +21 -14
  144. package/dist/chunks/setup-and-link-DRYXQOH4.js +65 -0
  145. package/dist/chunks/{tags-SDRXWJ63.js → tags-TNLVFNVI.js} +10 -7
  146. package/dist/chunks/{types-JGANJ5EQ.js → types-4GAJ7XQQ.js} +9 -7
  147. package/dist/chunks/update-X6JB3NPI.js +224 -0
  148. package/dist/chunks/vlt-builder-importer-USCFHWPL.js +322 -0
  149. package/dist/commands/build/index.js +86 -49
  150. package/dist/commands/deploy/index.js +76 -67
  151. package/dist/commands/dev/index.js +98 -52
  152. package/dist/commands/env/index.js +68 -44
  153. package/dist/commands/link/index.js +49 -28
  154. package/dist/commands/list/index.js +33 -22
  155. package/dist/commands-bulk.js +8715 -3581
  156. package/dist/help.js +1 -1
  157. package/dist/index.js +74 -42
  158. package/dist/runtime-assets/node-preloads/next-dev-websocket.cjs +6 -0
  159. package/dist/version.mjs +1 -1
  160. package/package.json +52 -48
  161. package/dist/chunks/add-RBW7QITR.js +0 -219
  162. package/dist/chunks/chunk-26XDDLXM.js +0 -144
  163. package/dist/chunks/chunk-5GGUB4EO.js +0 -31
  164. package/dist/chunks/chunk-MXLA3VQS.js +0 -20
  165. package/dist/chunks/chunk-OTXE7MHI.js +0 -96
  166. package/dist/chunks/chunk-RSEAADCE.js +0 -138
  167. package/dist/chunks/chunk-WYU64FLP.js +0 -62123
  168. package/dist/chunks/chunk-XNFHNTS2.js +0 -2939
  169. package/dist/chunks/ls-RNGO257R.js +0 -193
  170. package/dist/chunks/rm-5B5VHWWN.js +0 -170
  171. package/dist/chunks/rule-inspect-ZSTDDFID.js +0 -281
  172. package/dist/chunks/schema-45SJNY5L.js +0 -427
  173. package/dist/chunks/update-JBQBC3IV.js +0 -233
@@ -0,0 +1,305 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ humanizeReference,
9
+ renderAlertTable
10
+ } from "./chunk-GDOUDU6O.js";
11
+ import {
12
+ formatDate
13
+ } from "./chunk-GZLPFESR.js";
14
+ import {
15
+ truncateEnd,
16
+ truncateMiddle
17
+ } from "./chunk-ND5CF2H3.js";
18
+ import {
19
+ printAlignedLabel
20
+ } from "./chunk-MADFAH3O.js";
21
+ import {
22
+ buildCommandWithGlobalFlags,
23
+ quoteArg
24
+ } from "./chunk-26CU4Q3C.js";
25
+ import {
26
+ output_manager_default
27
+ } from "./chunk-2JIX6UMI.js";
28
+ import {
29
+ require_source
30
+ } from "./chunk-S7KYDPEM.js";
31
+ import {
32
+ __toESM
33
+ } from "./chunk-TZ2YI2VH.js";
34
+
35
+ // src/commands/alerts/rules/format.ts
36
+ var import_chalk = __toESM(require_source(), 1);
37
+ function formatBoolean(value) {
38
+ return value ? "yes" : "no";
39
+ }
40
+ function formatOperator(operator) {
41
+ return {
42
+ gt: ">",
43
+ gte: ">=",
44
+ lt: "<",
45
+ lte: "<="
46
+ }[operator] ?? operator;
47
+ }
48
+ function formatPublicRuleScope(rule) {
49
+ const scope = rule.ruleScope;
50
+ if (scope.type === "all")
51
+ return "all projects";
52
+ if (scope.type === "project")
53
+ return `project: ${scope.projectId}`;
54
+ return `${scope.type}: ${scope.projectIds.join(", ")}`;
55
+ }
56
+ function formatMetricSelection(metric) {
57
+ const modifiers = [
58
+ metric.per ? `per ${metric.per}` : void 0,
59
+ metric.normalize ? `normalize ${metric.normalize}` : void 0,
60
+ metric.dimensions?.length ? `dimensions ${metric.dimensions.join(", ")}` : void 0
61
+ ].filter(Boolean);
62
+ return `${metric.aggregation} ${metric.metric}${modifiers.length ? ` (${modifiers.join("; ")})` : ""}`;
63
+ }
64
+ function formatCustomTrigger(trigger) {
65
+ const minimum = trigger.minimum ? `; minimum ${trigger.minimum.output} >= ${trigger.minimum.threshold}` : "";
66
+ if (trigger.type === "anomaly") {
67
+ return `${trigger.output} anomaly at ${trigger.standardDeviations} standard deviations${minimum}`;
68
+ }
69
+ return `${trigger.output} ${formatOperator(trigger.operator)} ${trigger.threshold}${minimum}`;
70
+ }
71
+ function formatCustomCondition(rule) {
72
+ if (!rule.querySupported)
73
+ return "Query unavailable via API";
74
+ const query = rule.evaluation.query;
75
+ const output = query.outputs[0];
76
+ const selection = query.formulas?.[output] ? `${output} = ${query.formulas[output]}` : query.metrics[output] ? formatMetricSelection(query.metrics[output]) : output;
77
+ return `${selection}; ${formatCustomTrigger(rule.trigger)}; ${rule.evaluation.window}`;
78
+ }
79
+ function formatBuiltInCondition(rule) {
80
+ const triggers = rule.triggers.mode === "all" ? "all triggers" : rule.triggers.items.map((trigger) => humanizeReference(trigger.type)).join(", ");
81
+ return `${triggers}; minimum ${rule.matchMinimumSeverityLevel}`;
82
+ }
83
+ function formatRuleCondition(rule) {
84
+ return rule.type === "built-in" ? formatBuiltInCondition(rule) : formatCustomCondition(rule);
85
+ }
86
+ function printRules(rules) {
87
+ const rows = [
88
+ ["Name", "Rule ID", "Type", "Scope", "Condition"].map(
89
+ (header) => import_chalk.default.cyan(header)
90
+ ),
91
+ ...rules.map((rule) => [
92
+ import_chalk.default.bold(truncateEnd(rule.name, 36)),
93
+ import_chalk.default.dim(rule.id),
94
+ rule.isDefault ? `${rule.type} (default)` : rule.type,
95
+ truncateMiddle(formatPublicRuleScope(rule), 38),
96
+ truncateEnd(formatRuleCondition(rule), 72)
97
+ ])
98
+ ];
99
+ output_manager_default.print(`
100
+ ${renderAlertTable(rows, 2)}
101
+ `);
102
+ }
103
+ function commonRows(rule) {
104
+ return [
105
+ ["Name", rule.name],
106
+ ["Rule ID", rule.id],
107
+ ["Type", rule.type],
108
+ ["Scope", formatPublicRuleScope(rule)],
109
+ ["Default", formatBoolean(rule.isDefault)],
110
+ ...rule.createdAt ? [["Created", formatDate(rule.createdAt)]] : [],
111
+ ...rule.updatedAt ? [["Updated", formatDate(rule.updatedAt)]] : []
112
+ ];
113
+ }
114
+ function notificationRows(rule) {
115
+ return [
116
+ [
117
+ "Team owner notifications",
118
+ formatBoolean(rule.notificationSettings.enableTeamOwnerNotifications)
119
+ ],
120
+ ...rule.notificationSettings.incidentIoRoutingKey ? [
121
+ [
122
+ "Incident.io routing key",
123
+ rule.notificationSettings.incidentIoRoutingKey
124
+ ]
125
+ ] : []
126
+ ];
127
+ }
128
+ function printBuiltInRule(rule) {
129
+ output_manager_default.print(`${import_chalk.default.cyan("Built-in conditions")}
130
+
131
+ `);
132
+ if (rule.triggers.mode === "all") {
133
+ output_manager_default.print(
134
+ `${renderAlertTable(
135
+ [
136
+ ["Minimum severity", rule.matchMinimumSeverityLevel],
137
+ ["Triggers", "all built-in triggers"]
138
+ ],
139
+ 3
140
+ )}
141
+ `
142
+ );
143
+ } else {
144
+ output_manager_default.print(
145
+ `${renderAlertTable(
146
+ [["Minimum severity", rule.matchMinimumSeverityLevel]],
147
+ 3
148
+ )}
149
+
150
+ ${renderAlertTable(
151
+ [
152
+ ["Trigger", "Filter"].map((header) => import_chalk.default.cyan(header)),
153
+ ...rule.triggers.items.map((trigger) => [
154
+ trigger.type,
155
+ trigger.filter || "-"
156
+ ])
157
+ ],
158
+ 3
159
+ )}
160
+ `
161
+ );
162
+ }
163
+ }
164
+ function metricRows(rule) {
165
+ return Object.entries(rule.evaluation.query.metrics).map(
166
+ ([alias, metric]) => [
167
+ alias,
168
+ metric.metric,
169
+ metric.aggregation,
170
+ [
171
+ metric.per ? `per ${metric.per}` : void 0,
172
+ metric.normalize ? `normalize ${metric.normalize}` : void 0,
173
+ metric.dimensions?.join(", ")
174
+ ].filter(Boolean).join("; ") || "-",
175
+ metric.filter || "-"
176
+ ]
177
+ );
178
+ }
179
+ function printCustomRule(rule) {
180
+ output_manager_default.print(`${import_chalk.default.cyan("Custom alert")}
181
+
182
+ `);
183
+ if (!rule.querySupported) {
184
+ output_manager_default.print(
185
+ " Query unavailable via API. You can update metadata, delete the rule, or recreate it with a supported query.\n"
186
+ );
187
+ output_manager_default.print(`
188
+ ${renderAlertTable([["Severity", rule.severity]], 3)}
189
+ `);
190
+ return;
191
+ }
192
+ const query = rule.evaluation.query;
193
+ output_manager_default.print(
194
+ `${renderAlertTable(
195
+ [
196
+ ["Severity", rule.severity],
197
+ ["Window", rule.evaluation.window],
198
+ ["Output", query.outputs[0]],
199
+ ...query.formulas ? Object.entries(query.formulas).map(([alias, formula]) => [
200
+ `Formula ${alias}`,
201
+ formula
202
+ ]) : [],
203
+ ...query.groupBy?.length ? [["Group By", query.groupBy.join(", ")]] : [],
204
+ ...query.filter ? [["Query Filter", query.filter]] : []
205
+ ],
206
+ 3
207
+ )}
208
+ `
209
+ );
210
+ output_manager_default.print(`
211
+ ${import_chalk.default.cyan("Metrics")}
212
+
213
+ `);
214
+ output_manager_default.print(
215
+ `${renderAlertTable(
216
+ [
217
+ ["Alias", "Metric", "Aggregation", "Modifiers", "Filter"].map(
218
+ (header) => import_chalk.default.cyan(header)
219
+ ),
220
+ ...metricRows(rule)
221
+ ],
222
+ 3
223
+ )}
224
+ `
225
+ );
226
+ output_manager_default.print(`
227
+ ${import_chalk.default.cyan("Trigger")}
228
+
229
+ `);
230
+ output_manager_default.print(
231
+ `${renderAlertTable(
232
+ [
233
+ ["Type", rule.trigger.type],
234
+ ["Output", rule.trigger.output],
235
+ ...rule.trigger.type === "threshold" ? [
236
+ ["Operator", rule.trigger.operator],
237
+ ["Threshold", String(rule.trigger.threshold)]
238
+ ] : [["Standard Deviations", String(rule.trigger.standardDeviations)]],
239
+ ...rule.trigger.minimum ? [
240
+ ["Minimum Output", rule.trigger.minimum.output],
241
+ ["Minimum Threshold", String(rule.trigger.minimum.threshold)]
242
+ ] : []
243
+ ],
244
+ 3
245
+ )}
246
+ `
247
+ );
248
+ }
249
+ function printRule(rule) {
250
+ output_manager_default.print(
251
+ `
252
+ ${import_chalk.default.bold("Alert rule")} ${import_chalk.default.cyan(rule.id)}
253
+ ${renderAlertTable(
254
+ commonRows(rule),
255
+ 3
256
+ )}
257
+
258
+ ${import_chalk.default.cyan("Notifications")}
259
+
260
+ ${renderAlertTable(
261
+ notificationRows(rule),
262
+ 3
263
+ )}
264
+
265
+ `
266
+ );
267
+ if (rule.type === "built-in")
268
+ printBuiltInRule(rule);
269
+ else
270
+ printCustomRule(rule);
271
+ }
272
+ function printRulePreview(rule) {
273
+ printAlignedLabel("Name", rule.name);
274
+ printAlignedLabel("Rule ID", rule.id);
275
+ printAlignedLabel("Type", rule.type);
276
+ printAlignedLabel("Scope", formatPublicRuleScope(rule));
277
+ }
278
+ function printRuleDeletionReceipt(ruleId) {
279
+ output_manager_default.print("\n");
280
+ printAlignedLabel("Deleted", ruleId, { gutter: "\u2713" });
281
+ }
282
+ function printRuleMutationReceipt(action, rule, argv) {
283
+ output_manager_default.print("\n");
284
+ printAlignedLabel(action, rule.name, { gutter: "\u2713" });
285
+ printAlignedLabel("Rule ID", rule.id);
286
+ printAlignedLabel("Type", rule.type);
287
+ printAlignedLabel("Scope", formatPublicRuleScope(rule));
288
+ if (action !== "Deleted") {
289
+ printAlignedLabel(
290
+ "Inspect",
291
+ buildCommandWithGlobalFlags(
292
+ argv,
293
+ `alerts rules inspect ${quoteArg(rule.id)}`
294
+ )
295
+ );
296
+ }
297
+ }
298
+
299
+ export {
300
+ printRules,
301
+ printRule,
302
+ printRulePreview,
303
+ printRuleDeletionReceipt,
304
+ printRuleMutationReceipt
305
+ };
@@ -0,0 +1,49 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import {
8
+ require_json_parse_better_errors
9
+ } from "./chunk-6E6KPBXY.js";
10
+ import {
11
+ require_lib
12
+ } from "./chunk-MADFAH3O.js";
13
+ import {
14
+ CantParseJSONFile
15
+ } from "./chunk-CV5YC2EN.js";
16
+ import {
17
+ require_dist
18
+ } from "./chunk-ZW6HETRE.js";
19
+ import {
20
+ __toESM
21
+ } from "./chunk-TZ2YI2VH.js";
22
+
23
+ // src/util/read-json-file.ts
24
+ var import_fs_extra = __toESM(require_lib(), 1);
25
+ var import_json_parse_better_errors = __toESM(require_json_parse_better_errors(), 1);
26
+ var import_error_utils = __toESM(require_dist(), 1);
27
+ async function readJSONFile(file) {
28
+ const content = await readFileSafe(file);
29
+ if (content === null) {
30
+ return content;
31
+ }
32
+ try {
33
+ const json = (0, import_json_parse_better_errors.default)(content);
34
+ return json;
35
+ } catch (error) {
36
+ return new CantParseJSONFile(file, (0, import_error_utils.errorToString)(error));
37
+ }
38
+ }
39
+ async function readFileSafe(file) {
40
+ try {
41
+ return await import_fs_extra.default.readFile(file, "utf8");
42
+ } catch (_) {
43
+ return null;
44
+ }
45
+ }
46
+
47
+ export {
48
+ readJSONFile
49
+ };