checkly 9.2.0 → 9.3.0-prerelease-fa81627

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.
@@ -0,0 +1,273 @@
1
+ import chalk from 'chalk';
2
+ import logSymbols from 'log-symbols';
3
+ import { escapeMdCell, formatMs, heading, padColumn, renderAdaptiveTable, renderCommandHints, renderDetailFields, } from './render.js';
4
+ // --- Shared helpers ---
5
+ export function checkRunMeasures(metrics) {
6
+ for (const meter of metrics.meters) {
7
+ if (meter.meterType === 'CHECK_RUN')
8
+ return meter.measures;
9
+ }
10
+ return undefined;
11
+ }
12
+ export function aiInvocationMeasures(metrics) {
13
+ for (const meter of metrics.meters) {
14
+ if (meter.meterType === 'AI_INVOCATION')
15
+ return meter.measures;
16
+ }
17
+ return undefined;
18
+ }
19
+ function dash(format) {
20
+ return format === 'terminal' ? chalk.dim('-') : '-';
21
+ }
22
+ function formatNumber(value, format) {
23
+ if (value === null || value === undefined)
24
+ return dash(format);
25
+ return Number.isInteger(value)
26
+ ? value.toLocaleString('en-US')
27
+ : value.toLocaleString('en-US', { maximumFractionDigits: 2 });
28
+ }
29
+ function formatPercent(value, format) {
30
+ if (value === null || value === undefined)
31
+ return dash(format);
32
+ return `${value.toLocaleString('en-US', { maximumFractionDigits: 2 })}%`;
33
+ }
34
+ function dateRange(from, to) {
35
+ return `${from} → ${to}`;
36
+ }
37
+ function sectionHeading(text, format) {
38
+ return heading(format === 'md' ? text : text.toUpperCase(), 2, format);
39
+ }
40
+ function renderMeasureList(entries, format) {
41
+ if (format === 'md') {
42
+ return [
43
+ '| Measure | Value |',
44
+ '| --- | --- |',
45
+ ...entries.map(entry => `| ${entry.label} | ${escapeMdCell(entry.value)} |`),
46
+ ].join('\n');
47
+ }
48
+ const labelWidth = Math.max(0, ...entries.map(entry => entry.label.length)) + 3;
49
+ return entries
50
+ .map(entry => `${chalk.dim(padColumn(`${entry.label}:`, labelWidth, 'left', false))}${entry.value}`)
51
+ .join('\n');
52
+ }
53
+ // --- Terms detail ---
54
+ const termsDetailFields = [
55
+ { label: 'Organization', value: terms => terms.name },
56
+ { label: 'Contract period', value: terms => dateRange(terms.contractStartDate, terms.contractEndDate) },
57
+ { label: 'Usage start date', value: terms => terms.usageStartDate },
58
+ { label: 'Credit budget', value: (terms, fmt) => formatNumber(terms.creditBudget, fmt) },
59
+ { label: 'Standard credits / unit', value: (terms, fmt) => formatNumber(terms.standardCreditsPerUnit, fmt) },
60
+ { label: 'Premium credits / unit', value: (terms, fmt) => formatNumber(terms.premiumCreditsPerUnit, fmt) },
61
+ { label: 'Accounts', value: terms => String(terms.accounts.length) },
62
+ { label: 'ID', value: terms => terms.id },
63
+ ];
64
+ function buildAccountColumns(format) {
65
+ if (format === 'md') {
66
+ return [
67
+ { header: 'Name', value: account => account.name },
68
+ { header: 'ID', value: account => account.id },
69
+ ];
70
+ }
71
+ return [
72
+ { header: 'Name', minWidth: 12, maxWidth: 40, value: account => account.name },
73
+ { header: 'ID', width: 38, value: account => chalk.dim(account.id) },
74
+ ];
75
+ }
76
+ export function formatUsageTermsDetail(terms, format) {
77
+ const lines = [];
78
+ lines.push(renderDetailFields(`Usage terms: ${terms.name}`, termsDetailFields, terms, format));
79
+ lines.push('');
80
+ lines.push(sectionHeading('Accounts', format));
81
+ if (format === 'md')
82
+ lines.push('');
83
+ lines.push(renderAdaptiveTable(buildAccountColumns(format), terms.accounts, format));
84
+ return lines.join('\n');
85
+ }
86
+ // --- Warnings ---
87
+ export function formatUsageWarnings(warnings, format) {
88
+ if (warnings.length === 0)
89
+ return '';
90
+ if (format === 'md') {
91
+ return warnings.map(warning => `> **Warning (${warning.code}):** ${warning.message}`).join('\n');
92
+ }
93
+ return warnings
94
+ .map(warning => `${logSymbols.warning} ${chalk.yellow(warning.message)} ${chalk.dim(`(${warning.code})`)}`)
95
+ .join('\n');
96
+ }
97
+ function creditsLabel(metrics, format) {
98
+ const { used, percentOfBudget } = metrics.credits;
99
+ if (used === null)
100
+ return dash(format);
101
+ const usedLabel = formatNumber(used, format);
102
+ return percentOfBudget === null ? usedLabel : `${usedLabel} (${formatPercent(percentOfBudget, format)} of budget)`;
103
+ }
104
+ const summaryHeaderFields = [
105
+ { label: 'Period', value: view => dateRange(view.summary.period.from, view.summary.period.to) },
106
+ {
107
+ label: 'Contract',
108
+ value: view => (view.terms ? dateRange(view.terms.contractStartDate, view.terms.contractEndDate) : null),
109
+ },
110
+ {
111
+ label: 'Progress',
112
+ value: view => {
113
+ const { weeksSinceStart, weeksRemaining } = view.summary.projections;
114
+ return `${weeksSinceStart} weeks since usage start, ${weeksRemaining} remaining`;
115
+ },
116
+ },
117
+ { label: 'Credit budget', value: (view, fmt) => (view.terms ? formatNumber(view.terms.creditBudget, fmt) : null) },
118
+ { label: 'Credits used', value: (view, fmt) => creditsLabel(view.summary.totals, fmt) },
119
+ { label: 'Remaining credits', value: (view, fmt) => formatNumber(view.summary.projections.remainingCredits, fmt) },
120
+ { label: 'Usage terms ID', value: view => view.summary.usageTermsId },
121
+ ];
122
+ function checkRunEntries(metrics, format) {
123
+ const measures = checkRunMeasures(metrics);
124
+ if (!measures)
125
+ return [{ label: 'Check runs', value: dash(format) }];
126
+ return [
127
+ { label: 'Total runs', value: formatNumber(measures.totalRuns, format) },
128
+ { label: 'Final runs', value: formatNumber(measures.finalRuns, format) },
129
+ { label: 'Retry runs', value: formatNumber(measures.retryRuns, format) },
130
+ { label: 'Cancelled runs', value: formatNumber(measures.cancelledRuns, format) },
131
+ { label: 'Degraded runs', value: formatNumber(measures.degradedRuns, format) },
132
+ { label: 'Failed runs', value: formatNumber(measures.failedRuns, format) },
133
+ { label: 'Error runs', value: formatNumber(measures.errorRuns, format) },
134
+ { label: 'Aborted runs', value: formatNumber(measures.abortedRuns, format) },
135
+ { label: 'Over max response time runs', value: formatNumber(measures.overMaxResponseTimeRuns, format) },
136
+ { label: 'Multi-step requests', value: formatNumber(measures.multiStepRequests, format) },
137
+ { label: 'Playwright billable duration', value: formatMs(measures.playwrightBillableDurationMs) },
138
+ { label: 'Standard billable units', value: formatNumber(measures.standardBillableUnits, format) },
139
+ { label: 'Premium billable units', value: formatNumber(measures.premiumBillableUnits, format) },
140
+ ];
141
+ }
142
+ function resolveEntries(metrics, format) {
143
+ const measures = aiInvocationMeasures(metrics);
144
+ if (!measures)
145
+ return [{ label: 'Invocations', value: dash(format) }];
146
+ return [
147
+ { label: 'Invocations', value: formatNumber(measures.invocations, format) },
148
+ { label: 'Duration', value: formatMs(measures.durationMs) },
149
+ ];
150
+ }
151
+ function toProjectionRow(label, window) {
152
+ return {
153
+ window: label,
154
+ creditsUsed: window.usage.credits.used,
155
+ annualPercent: window.projectedAnnualPercentOfBudget,
156
+ creditsAtEnd: window.projectedCreditsAtContractEnd,
157
+ percentAtEnd: window.projectedPercentAtContractEnd,
158
+ weeksUntilExhausted: window.projectedWeeksUntilExhausted,
159
+ };
160
+ }
161
+ function buildProjectionColumns() {
162
+ return [
163
+ { header: 'Window', width: 20, value: row => row.window },
164
+ { header: 'Credits used', width: 14, align: 'right', value: (row, fmt) => formatNumber(row.creditsUsed, fmt) },
165
+ {
166
+ header: 'Annual % of budget',
167
+ width: 20,
168
+ align: 'right',
169
+ value: (row, fmt) => formatPercent(row.annualPercent, fmt),
170
+ },
171
+ {
172
+ header: 'Credits at contract end',
173
+ width: 25,
174
+ align: 'right',
175
+ value: (row, fmt) => formatNumber(row.creditsAtEnd, fmt),
176
+ },
177
+ { header: '% at contract end', width: 19, align: 'right', value: (row, fmt) => formatPercent(row.percentAtEnd, fmt) },
178
+ {
179
+ header: 'Weeks until exhausted',
180
+ width: 23,
181
+ align: 'right',
182
+ value: (row, fmt) => formatNumber(row.weeksUntilExhausted, fmt),
183
+ },
184
+ ];
185
+ }
186
+ export function formatUsageSummary(summary, format, terms) {
187
+ const view = { summary, terms };
188
+ const title = terms ? `Usage: ${terms.name}` : 'Usage summary';
189
+ const { windows } = summary.projections;
190
+ const projectionRows = [
191
+ toProjectionRow('Since usage start', windows.sinceStart),
192
+ toProjectionRow('Last 30 days', windows.last30Days),
193
+ toProjectionRow('Last 7 days', windows.last7Days),
194
+ toProjectionRow('Last 1 day', windows.last1Day),
195
+ ];
196
+ // Markdown needs a blank line between a heading and the table that follows it.
197
+ const headingGap = format === 'md' ? [''] : [];
198
+ const lines = [];
199
+ lines.push(renderDetailFields(title, summaryHeaderFields, view, format));
200
+ lines.push('');
201
+ lines.push(sectionHeading('Check runs', format), ...headingGap);
202
+ lines.push(renderMeasureList(checkRunEntries(summary.totals, format), format));
203
+ lines.push('');
204
+ lines.push(sectionHeading('Resolve', format), ...headingGap);
205
+ lines.push(renderMeasureList(resolveEntries(summary.totals, format), format));
206
+ lines.push('');
207
+ lines.push(sectionHeading('Projections (as of today)', format), ...headingGap);
208
+ lines.push(renderAdaptiveTable(buildProjectionColumns(), projectionRows, format));
209
+ return lines.join('\n');
210
+ }
211
+ function periodLabel(row, interval) {
212
+ return interval === 'day' ? row.periodStart : dateRange(row.periodStart, row.periodEnd);
213
+ }
214
+ function buildSeriesColumns(format, options) {
215
+ const accountLabel = (row, fmt) => {
216
+ if (!row.accountId)
217
+ return dash(fmt);
218
+ return options.accountNames?.get(row.accountId) ?? row.accountId;
219
+ };
220
+ const columns = [
221
+ { header: 'Period', width: options.interval === 'day' ? 12 : 25, value: row => periodLabel(row, options.interval) },
222
+ ];
223
+ if (options.groupBy.includes('account')) {
224
+ // 15 keeps a 13-character prefix on narrow terminals; the terminal view has no ID column to fall back on.
225
+ columns.push({ header: 'Account', minWidth: 15, maxWidth: 40, value: (row, fmt) => accountLabel(row, fmt) });
226
+ if (format === 'md') {
227
+ columns.push({ header: 'Account ID', value: (row, fmt) => row.accountId ?? dash(fmt) });
228
+ }
229
+ }
230
+ if (options.groupBy.includes('checkType')) {
231
+ columns.push({ header: 'Check type', width: 13, value: (row, fmt) => row.checkType ?? dash(fmt) });
232
+ }
233
+ columns.push({
234
+ header: 'Total runs',
235
+ width: 12,
236
+ align: 'right',
237
+ value: (row, fmt) => formatNumber(checkRunMeasures(row)?.totalRuns, fmt),
238
+ }, {
239
+ header: 'Standard units',
240
+ width: 16,
241
+ align: 'right',
242
+ value: (row, fmt) => formatNumber(checkRunMeasures(row)?.standardBillableUnits, fmt),
243
+ }, {
244
+ header: 'Premium units',
245
+ width: 15,
246
+ align: 'right',
247
+ value: (row, fmt) => formatNumber(checkRunMeasures(row)?.premiumBillableUnits, fmt),
248
+ }, { header: 'Credits', width: 10, align: 'right', value: (row, fmt) => formatNumber(row.credits.used, fmt) }, {
249
+ header: '% of budget',
250
+ width: 13,
251
+ align: 'right',
252
+ value: (row, fmt) => formatPercent(row.credits.percentOfBudget, fmt),
253
+ }, {
254
+ header: 'Resolve invocations',
255
+ width: 21,
256
+ align: 'right',
257
+ value: (row, fmt) => formatNumber(aiInvocationMeasures(row)?.invocations, fmt),
258
+ });
259
+ return columns;
260
+ }
261
+ export function formatUsageSeries(rows, format, options) {
262
+ return renderAdaptiveTable(buildSeriesColumns(format, options), rows, format);
263
+ }
264
+ export function formatUsageSeriesPaginationInfo(count, nextId) {
265
+ const base = `${count} usage row${count !== 1 ? 's' : ''}`;
266
+ return chalk.dim(nextId ? `Showing ${base} (more available)` : `Showing ${base}`);
267
+ }
268
+ export function formatUsageSeriesNavigationHints(nextId, seriesCommand) {
269
+ if (!nextId)
270
+ return '';
271
+ return renderCommandHints([{ label: 'Next page', command: `${seriesCommand} --cursor ${nextId}` }], { gap: 1 });
272
+ }
273
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/formatters/usage.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,8 @@ export default class ChecklyHelpClass extends Help {
15
15
  .map(c => [c.id.replace(/:/g, ' '), this.summary(c)]);
16
16
  const formatCommandsWithTopics = (commands) => {
17
17
  const explicitTopics = new Map(topics.map(t => [t.name, t.description]));
18
- const topicNames = new Set(topics.map(t => t.name));
18
+ // Nested topics (e.g. account:usage) are listed under their parent's help, not at the root.
19
+ const topicNames = new Set(topics.map(t => t.name).filter(name => !name.includes(':')));
19
20
  for (const command of commands) {
20
21
  const separatorIndex = command.id.indexOf(':');
21
22
  if (separatorIndex > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAA;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAW,IAAI,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,QAAQ,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEvD,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,IAAI;IACtC,iBAAiB,CAAE,QAAiC,EAC5D,MAAoB;QACpB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QAEpC,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACxD,MAAM,kBAAkB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QAE/D,MAAM,2BAA2B,GAAG,CAAC,QAAiC,EAAE,EAAE,CACxE,QAAQ;YACN,8DAA8D;aAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAEzD,MAAM,wBAAwB,GAAG,CAAC,QAAiC,EAAE,EAAE;YACrE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;YACxE,4FAA4F;YAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAE/F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,cAAc,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC9C,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBACvB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAA;gBACrD,CAAC;YACH,CAAC;YAED,4EAA4E;YAC5E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACrF,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC;iBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACtC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAEhD,OAAO,QAAQ;gBACb,8DAA8D;iBAC7D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;iBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjC,MAAM,CAAC,SAAS,CAAC;iBACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAA;QAED,MAAM,KAAK,GAAG,CAAC,QAAkC,EAAE,EAAE,CACnD,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;YACxB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,WAAW,EAAE,CAAC;SACf,CAAC,CAAA;QAEJ,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC,CAAC;cAClF,IAAI,GAAG,IAAI;cACX,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,KAAK,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;IAC9F,CAAC;IAEM,YAAY;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAA;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,GAAG,CACN,KAAK,KAAK,YAAY;gBACpB,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,gBAAgB;gBACpC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,UAAU,KAAK,KAAK,CAC3C,CAAA;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,SAAS,GAAG,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,CAAC;aACrG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,IAAI,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;YAC1D,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACZ,IAAI,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAA;YAC1E,IAAI,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAA;YACtE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;QAC3B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEZ,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAA;YACxE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAC3C;;;;;KAKD,CAAC,CAAC,CAAA;QAEH,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CACpC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,EAC3C;YACE,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,WAAW,EAAE,CAAC;SACf,CAAC,CAAA;QACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,iBAAiB,GAAG,IAAI,GAAG,cAAc,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAEZ,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE;YAC9D,OAAO,WAAW,GAAG,GAAG,OAAO,CAAC,WAAW,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;QAC7F,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAA;QAClD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import type { UsageRangeParams, UsageTermsParams } from '../rest/usage.js';
2
+ export declare function usageTermsFlags(): {
3
+ to: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
4
+ };
5
+ export declare function usageRangeFlags(): {
6
+ from: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ 'account-id': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ 'check-type': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ to: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ };
11
+ export declare function parseDateOnly(value: string | undefined, label: string): string | undefined;
12
+ interface UsageTermsFlagValues {
13
+ to?: string;
14
+ }
15
+ interface UsageRangeFlagValues extends UsageTermsFlagValues {
16
+ 'from'?: string;
17
+ 'account-id'?: string[];
18
+ 'check-type'?: string[];
19
+ }
20
+ export declare function usageTermsParams(flags: UsageTermsFlagValues): UsageTermsParams;
21
+ export declare function usageRangeParams(flags: UsageRangeFlagValues): UsageRangeParams;
22
+ export interface UsageErrorContext {
23
+ /** The --to flag as given, when the user pinned the terms to a date. */
24
+ to?: string;
25
+ }
26
+ export declare function describeUsageError(err: unknown, context?: UsageErrorContext): string | undefined;
27
+ export {};
@@ -0,0 +1,102 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { allCheckTypes } from '../constants.js';
3
+ import { ApiError, ForbiddenError, UnauthorizedError } from '../rest/errors.js';
4
+ const DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
5
+ export function usageTermsFlags() {
6
+ return {
7
+ to: Flags.string({
8
+ description: 'End date (YYYY-MM-DD, inclusive). Defaults to today. Selects the usage terms that cover this date.',
9
+ }),
10
+ };
11
+ }
12
+ export function usageRangeFlags() {
13
+ return {
14
+ ...usageTermsFlags(),
15
+ 'from': Flags.string({
16
+ description: 'Start date (YYYY-MM-DD, inclusive). Defaults to the usage start date of the terms.',
17
+ }),
18
+ 'account-id': Flags.string({
19
+ description: 'Only include these account IDs. Repeat the flag or comma-separate values.',
20
+ multiple: true,
21
+ delimiter: ',',
22
+ }),
23
+ 'check-type': Flags.string({
24
+ description: 'Only include these check types. Repeat the flag or comma-separate values.',
25
+ multiple: true,
26
+ delimiter: ',',
27
+ options: allCheckTypes,
28
+ }),
29
+ };
30
+ }
31
+ export function parseDateOnly(value, label) {
32
+ if (value === undefined)
33
+ return undefined;
34
+ const trimmed = value.trim();
35
+ const error = new Error(`${label} must be a valid calendar date in YYYY-MM-DD format.`);
36
+ if (!DATE_ONLY_PATTERN.test(trimmed))
37
+ throw error;
38
+ // Date.UTC rolls 2026-02-30 over to March 2nd, so round-trip the parts.
39
+ const [year, month, day] = trimmed.split('-').map(Number);
40
+ const parsed = new Date(Date.UTC(year, month - 1, day));
41
+ if (parsed.getUTCFullYear() !== year || parsed.getUTCMonth() !== month - 1 || parsed.getUTCDate() !== day) {
42
+ throw error;
43
+ }
44
+ return trimmed;
45
+ }
46
+ export function usageTermsParams(flags) {
47
+ return {
48
+ to: parseDateOnly(flags.to, '--to'),
49
+ };
50
+ }
51
+ export function usageRangeParams(flags) {
52
+ const from = parseDateOnly(flags['from'], '--from');
53
+ const terms = usageTermsParams(flags);
54
+ if (from && terms.to && from > terms.to) {
55
+ throw new Error('--from must be on or before --to.');
56
+ }
57
+ return {
58
+ ...terms,
59
+ from,
60
+ accountIds: flags['account-id'],
61
+ checkTypes: flags['check-type'],
62
+ };
63
+ }
64
+ export function describeUsageError(err, context = {}) {
65
+ if (!(err instanceof ApiError))
66
+ return undefined;
67
+ // The usage API adds `code` to its error body; ErrorData does not declare it.
68
+ const code = err.data.code;
69
+ switch (code) {
70
+ case 'NO_USAGE_TERMS':
71
+ // With an explicit --to the organization may well have a contract; it just does not cover that date.
72
+ if (context.to) {
73
+ return `No usage terms cover this account on ${context.to}. `
74
+ + 'Run "checkly account usage terms" to see the contract dates, then pick a --to date inside them.';
75
+ }
76
+ return 'No usage terms cover this account for the requested date. '
77
+ + 'Usage reporting is available to accounts that belong to an organization with a usage contract.';
78
+ case 'USAGE_TERMS_CONFLICT':
79
+ return 'More than one set of usage terms covers the requested date. '
80
+ + 'Pick a --to date that only one contract covers.';
81
+ case 'ACCOUNT_NOT_IN_USAGE_TERMS': {
82
+ // API error messages carry no trailing punctuation, so supply the sentence break.
83
+ const message = /[.!?]$/.test(err.message) ? err.message : `${err.message}.`;
84
+ return `${message} Run "checkly account usage terms" to list the accounts covered by the terms.`;
85
+ }
86
+ case 'INVALID_CURSOR':
87
+ return 'The --cursor value is invalid or was issued for different flags. '
88
+ + 'Re-run the original command with the same flags (including --from and --to) and use the cursor it prints.';
89
+ case 'INVALID_RANGE':
90
+ return err.message;
91
+ case 'USAGE_STORE_UNAVAILABLE':
92
+ return 'The usage store is temporarily unavailable. Try again in a few minutes.';
93
+ }
94
+ if (err instanceof UnauthorizedError) {
95
+ return 'Usage reporting requires a user or service API key; legacy account API keys are not accepted.';
96
+ }
97
+ if (err instanceof ForbiddenError) {
98
+ return 'Usage reporting requires the Owner or Admin role on this account.';
99
+ }
100
+ return undefined;
101
+ }
102
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/helpers/usage.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ import AlertChannels from './alert-channels.js';
28
28
  import AlertNotifications from './alert-notifications.js';
29
29
  import Rca from './rca.js';
30
30
  import Cancel from './cancel.js';
31
+ import Usage from './usage.js';
31
32
  export declare function getDefaults(): {
32
33
  baseURL: string;
33
34
  accountId: string;
@@ -67,3 +68,4 @@ export declare const alertChannels: AlertChannels;
67
68
  export declare const alertNotifications: AlertNotifications;
68
69
  export declare const rca: Rca;
69
70
  export declare const cancel: Cancel;
71
+ export declare const usage: Usage;
package/dist/rest/api.js CHANGED
@@ -31,6 +31,7 @@ import AlertChannels from './alert-channels.js';
31
31
  import AlertNotifications from './alert-notifications.js';
32
32
  import Rca from './rca.js';
33
33
  import Cancel from './cancel.js';
34
+ import Usage from './usage.js';
34
35
  import { handleErrorResponse, UnauthorizedError } from './errors.js';
35
36
  import { createRetryInterceptor } from './retry.js';
36
37
  import { detectOperator } from '../helpers/cli-mode.js';
@@ -125,4 +126,5 @@ export const alertChannels = new AlertChannels(api);
125
126
  export const alertNotifications = new AlertNotifications(api);
126
127
  export const rca = new Rca(api);
127
128
  export const cancel = new Cancel(api);
129
+ export const usage = new Usage(api);
128
130
  //# sourceMappingURL=api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/rest/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/rest/api.ts"],"names":[],"mappings":"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"}