checkly 9.2.0 → 9.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/account/usage/series.d.ts +19 -0
- package/dist/commands/account/usage/series.js +112 -0
- package/dist/commands/account/usage/series.js.map +1 -0
- package/dist/commands/account/usage/summary.d.ts +15 -0
- package/dist/commands/account/usage/summary.js +51 -0
- package/dist/commands/account/usage/summary.js.map +1 -0
- package/dist/commands/account/usage/terms.d.ts +12 -0
- package/dist/commands/account/usage/terms.js +51 -0
- package/dist/commands/account/usage/terms.js.map +1 -0
- package/dist/formatters/render.js +3 -1
- package/dist/formatters/render.js.map +1 -1
- package/dist/formatters/usage.d.ts +15 -0
- package/dist/formatters/usage.js +273 -0
- package/dist/formatters/usage.js.map +1 -0
- package/dist/help/help-extension.js +2 -1
- package/dist/help/help-extension.js.map +1 -1
- package/dist/helpers/usage.d.ts +27 -0
- package/dist/helpers/usage.js +102 -0
- package/dist/helpers/usage.js.map +1 -0
- package/dist/rest/api.d.ts +2 -0
- package/dist/rest/api.js +2 -0
- package/dist/rest/api.js.map +1 -1
- package/dist/rest/usage.d.ts +130 -0
- package/dist/rest/usage.js +38 -0
- package/dist/rest/usage.js.map +1 -0
- package/oclif.manifest.json +746 -480
- package/package.json +4 -1
|
@@ -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
|
-
|
|
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":"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,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"help-extension.js","sourceRoot":"","sources":["../../src/help/help-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/rest/api.d.ts
CHANGED
|
@@ -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
|
package/dist/rest/api.js.map
CHANGED
|
@@ -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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"}
|