checkly 7.2.0 → 7.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.
Files changed (54) hide show
  1. package/dist/commands/checks/get.d.ts +18 -0
  2. package/dist/commands/checks/get.js +221 -0
  3. package/dist/commands/checks/get.js.map +1 -0
  4. package/dist/commands/checks/list.d.ts +15 -0
  5. package/dist/commands/checks/list.js +142 -0
  6. package/dist/commands/checks/list.js.map +1 -0
  7. package/dist/commands/status-pages/get.d.ts +12 -0
  8. package/dist/commands/status-pages/get.js +75 -0
  9. package/dist/commands/status-pages/get.js.map +1 -0
  10. package/dist/commands/status-pages/list.d.ts +12 -0
  11. package/dist/commands/status-pages/list.js +106 -0
  12. package/dist/commands/status-pages/list.js.map +1 -0
  13. package/dist/formatters/check-result-detail.d.ts +4 -0
  14. package/dist/formatters/check-result-detail.js +357 -0
  15. package/dist/formatters/check-result-detail.js.map +1 -0
  16. package/dist/formatters/checks.d.ts +28 -0
  17. package/dist/formatters/checks.js +314 -0
  18. package/dist/formatters/checks.js.map +1 -0
  19. package/dist/formatters/render.d.ts +28 -0
  20. package/dist/formatters/render.js +168 -0
  21. package/dist/formatters/render.js.map +1 -0
  22. package/dist/formatters/status-pages.d.ts +7 -0
  23. package/dist/formatters/status-pages.js +254 -0
  24. package/dist/formatters/status-pages.js.map +1 -0
  25. package/dist/helpers/command-style.d.ts +1 -0
  26. package/dist/helpers/command-style.js +12 -0
  27. package/dist/helpers/command-style.js.map +1 -1
  28. package/dist/helpers/flags.d.ts +4 -0
  29. package/dist/helpers/flags.js +14 -0
  30. package/dist/helpers/flags.js.map +1 -0
  31. package/dist/rest/api.d.ts +12 -0
  32. package/dist/rest/api.js +13 -1
  33. package/dist/rest/api.js.map +1 -1
  34. package/dist/rest/check-groups.d.ts +16 -0
  35. package/dist/rest/check-groups.js +13 -0
  36. package/dist/rest/check-groups.js.map +1 -0
  37. package/dist/rest/check-results.d.ts +133 -0
  38. package/dist/rest/check-results.js +16 -0
  39. package/dist/rest/check-results.js.map +1 -0
  40. package/dist/rest/check-statuses.d.ts +23 -0
  41. package/dist/rest/check-statuses.js +22 -0
  42. package/dist/rest/check-statuses.js.map +1 -0
  43. package/dist/rest/checks.d.ts +45 -0
  44. package/dist/rest/checks.js +48 -0
  45. package/dist/rest/checks.js.map +1 -0
  46. package/dist/rest/error-groups.d.ts +18 -0
  47. package/dist/rest/error-groups.js +16 -0
  48. package/dist/rest/error-groups.js.map +1 -0
  49. package/dist/rest/status-pages.d.ts +37 -0
  50. package/dist/rest/status-pages.js +18 -0
  51. package/dist/rest/status-pages.js.map +1 -0
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/oclif.manifest.json +400 -125
  54. package/package.json +7 -1
@@ -0,0 +1,357 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatResultDetail = exports.resultDetailFields = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const render_1 = require("./render");
9
+ // --- Helpers ---
10
+ function label(text, width = 16) {
11
+ return chalk_1.default.dim(text.padEnd(width));
12
+ }
13
+ // --- Top-level result detail fields ---
14
+ exports.resultDetailFields = [
15
+ { label: 'Status', value: (r, fmt) => (0, render_1.resolveResultStatus)(r, fmt) },
16
+ { label: 'Location', value: r => r.runLocation },
17
+ { label: 'Response time', value: r => (0, render_1.formatMs)(r.responseTime) },
18
+ { label: 'Started', value: (r, fmt) => fmt === 'md' ? (r.startedAt || '-') : (0, render_1.formatDate)(r.startedAt, fmt) },
19
+ { label: 'Stopped', value: (r, fmt) => fmt === 'md' ? (r.stoppedAt || '-') : (0, render_1.formatDate)(r.stoppedAt, fmt) },
20
+ { label: 'Attempts', value: r => String(r.attempts) },
21
+ { label: 'Result type', value: r => r.resultType },
22
+ { label: 'ID', value: r => r.id },
23
+ ];
24
+ function formatResultDetail(result, format) {
25
+ const parts = [(0, render_1.renderDetailFields)(result.name, exports.resultDetailFields, result, format)];
26
+ if (result.apiCheckResult) {
27
+ const subLines = format === 'md'
28
+ ? formatApiResultMd(result.apiCheckResult)
29
+ : formatApiResultTerminal(result.apiCheckResult);
30
+ parts.push(subLines.join('\n'));
31
+ }
32
+ if (result.browserCheckResult) {
33
+ const subLines = format === 'md'
34
+ ? formatBrowserResultMd(result.browserCheckResult)
35
+ : formatBrowserResultTerminal(result.browserCheckResult);
36
+ parts.push(subLines.join('\n'));
37
+ }
38
+ if (result.multiStepCheckResult && format === 'terminal') {
39
+ parts.push(formatMultiStepResultTerminal(result.multiStepCheckResult).join('\n'));
40
+ }
41
+ return parts.join('\n\n');
42
+ }
43
+ exports.formatResultDetail = formatResultDetail;
44
+ // --- API check result (terminal) ---
45
+ function formatApiResultTerminal(api) {
46
+ const lines = [];
47
+ lines.push((0, render_1.heading)('REQUEST', 2, 'terminal'));
48
+ lines.push(`${label('Method:')}${api.request.method}`);
49
+ lines.push(`${label('URL:')}${api.request.url}`);
50
+ const reqHeaders = Object.entries(api.request.headers || {});
51
+ if (reqHeaders.length > 0) {
52
+ lines.push(`${label('Headers:')}`);
53
+ for (const [key, val] of reqHeaders) {
54
+ lines.push(` ${chalk_1.default.dim(key + ':')} ${val}`);
55
+ }
56
+ }
57
+ if (api.request.data) {
58
+ lines.push(`${label('Body:')}`);
59
+ lines.push(formatBody(api.request.data, ' '));
60
+ }
61
+ lines.push('');
62
+ lines.push((0, render_1.heading)('RESPONSE', 2, 'terminal'));
63
+ const reasonPhrase = (api.response.statusText || '').replace(/^\d+\s*/, '');
64
+ lines.push(`${label('Status:')}${colorStatus(api.response.status)} ${reasonPhrase}`);
65
+ const respHeaders = Object.entries(api.response.headers || {});
66
+ if (respHeaders.length > 0) {
67
+ lines.push(`${label('Headers:')}`);
68
+ for (const [key, val] of respHeaders) {
69
+ lines.push(` ${chalk_1.default.dim(key + ':')} ${val}`);
70
+ }
71
+ }
72
+ if (api.response.body) {
73
+ lines.push(`${label('Body:')}`);
74
+ lines.push(formatBody(api.response.body, ' '));
75
+ }
76
+ if (api.response.timingPhases) {
77
+ lines.push('');
78
+ lines.push((0, render_1.heading)('TIMING', 2, 'terminal'));
79
+ lines.push(formatTimingBar(api.response.timingPhases));
80
+ }
81
+ if (api.assertions && api.assertions.length > 0) {
82
+ lines.push('');
83
+ lines.push((0, render_1.heading)('ASSERTIONS', 2, 'terminal'));
84
+ for (const a of api.assertions) {
85
+ const src = a.property ? `${a.source}.${a.property}` : a.source;
86
+ lines.push(` ${chalk_1.default.dim('·')} ${src} ${a.comparison} ${a.target}`);
87
+ }
88
+ }
89
+ if (api.requestError) {
90
+ lines.push('');
91
+ lines.push((0, render_1.heading)('ERROR', 2, 'terminal'));
92
+ lines.push(chalk_1.default.red(` ${api.requestError}`));
93
+ }
94
+ if (api.jobLog) {
95
+ lines.push('');
96
+ lines.push(...formatJobLogObject(api.jobLog));
97
+ }
98
+ return lines;
99
+ }
100
+ // --- API check result (markdown) ---
101
+ function formatApiResultMd(api) {
102
+ const lines = [];
103
+ lines.push('## Request');
104
+ lines.push(`\`${api.request.method} ${api.request.url}\``);
105
+ lines.push('');
106
+ lines.push('## Response');
107
+ const mdReason = (api.response.statusText || '').replace(/^\d+\s*/, '');
108
+ lines.push(`**${api.response.status} ${mdReason}**`);
109
+ if (api.response.body) {
110
+ lines.push('');
111
+ lines.push('```json');
112
+ lines.push(api.response.body.slice(0, 2000));
113
+ lines.push('```');
114
+ }
115
+ if (api.response.timingPhases) {
116
+ const tp = api.response.timingPhases;
117
+ lines.push('');
118
+ lines.push('## Timing');
119
+ lines.push('| Phase | Duration |');
120
+ lines.push('| --- | --- |');
121
+ lines.push(`| DNS | ${(0, render_1.formatMs)(tp.dns)} |`);
122
+ lines.push(`| TCP | ${(0, render_1.formatMs)(tp.tcp)} |`);
123
+ lines.push(`| TLS | ${(0, render_1.formatMs)(tp.wait)} |`);
124
+ lines.push(`| TTFB | ${(0, render_1.formatMs)(tp.firstByte)} |`);
125
+ lines.push(`| Download | ${(0, render_1.formatMs)(tp.download)} |`);
126
+ lines.push(`| **Total** | **${(0, render_1.formatMs)(tp.total)}** |`);
127
+ }
128
+ if (api.assertions && api.assertions.length > 0) {
129
+ lines.push('');
130
+ lines.push('## Assertions');
131
+ for (const a of api.assertions) {
132
+ const src = a.property ? `${a.source}.${a.property}` : a.source;
133
+ lines.push(`- ${src} ${a.comparison} ${a.target}`);
134
+ }
135
+ }
136
+ return lines;
137
+ }
138
+ // --- Browser check result (terminal) ---
139
+ function formatBrowserResultTerminal(browser) {
140
+ const lines = [];
141
+ lines.push((0, render_1.heading)('BROWSER RESULT', 2, 'terminal'));
142
+ lines.push(`${label('Framework:')}${browser.type}`);
143
+ lines.push(`${label('Runtime:')}${browser.runtimeVersion}`);
144
+ const ts = browser.traceSummary;
145
+ const errorCounts = ts
146
+ ? [
147
+ ts.userScriptErrors > 0 ? `${ts.userScriptErrors} script` : null,
148
+ ts.consoleErrors > 0 ? `${ts.consoleErrors} console` : null,
149
+ ts.networkErrors > 0 ? `${ts.networkErrors} network` : null,
150
+ ts.documentErrors > 0 ? `${ts.documentErrors} document` : null,
151
+ ].filter(Boolean)
152
+ : [];
153
+ if (errorCounts.length > 0) {
154
+ lines.push(`${label('Errors:')}${chalk_1.default.red(errorCounts.join(', '))}`);
155
+ }
156
+ else {
157
+ lines.push(`${label('Errors:')}${chalk_1.default.green('none')}`);
158
+ }
159
+ appendErrors(lines, browser.errors);
160
+ if (browser.pages && browser.pages.length > 0) {
161
+ const vitalLines = [];
162
+ for (const page of browser.pages) {
163
+ const pageLines = [];
164
+ const vitals = page.webVitals;
165
+ if (vitals) {
166
+ const entries = Object.entries(vitals);
167
+ for (const [name, v] of entries) {
168
+ if (v && v.value != null) {
169
+ pageLines.push(` ${label(name + ':', 8)}${formatVitalValue(name, v)} ${vitalScore(v.score)}`);
170
+ }
171
+ }
172
+ }
173
+ if (pageLines.length > 0) {
174
+ if (browser.pages.length > 1) {
175
+ vitalLines.push(` ${chalk_1.default.dim(page.url)}`);
176
+ }
177
+ vitalLines.push(...pageLines);
178
+ }
179
+ }
180
+ if (vitalLines.length > 0) {
181
+ lines.push('');
182
+ lines.push((0, render_1.heading)('WEB VITALS', 2, 'terminal'));
183
+ lines.push(...vitalLines);
184
+ }
185
+ }
186
+ if (browser.jobLog && browser.jobLog.length > 0) {
187
+ lines.push('');
188
+ lines.push(...formatJobLogArray(browser.jobLog));
189
+ }
190
+ appendAssets(lines, browser);
191
+ return lines;
192
+ }
193
+ // --- Browser check result (markdown) ---
194
+ function formatBrowserResultMd(browser) {
195
+ const lines = [];
196
+ lines.push(`## Browser Result (${browser.type})`);
197
+ if (browser.pages && browser.pages.length > 0) {
198
+ lines.push('');
199
+ lines.push('### Web Vitals');
200
+ lines.push('| Metric | Value | Score |');
201
+ lines.push('| --- | --- | --- |');
202
+ for (const page of browser.pages) {
203
+ if (page.webVitals) {
204
+ for (const [name, v] of Object.entries(page.webVitals)) {
205
+ if (v && v.value != null) {
206
+ lines.push(`| ${name} | ${formatVitalValue(name, v)} | ${v.score} |`);
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+ if (browser.errors.length > 0) {
213
+ lines.push('');
214
+ lines.push('### Errors');
215
+ for (const err of browser.errors) {
216
+ lines.push(`- ${err}`);
217
+ }
218
+ }
219
+ return lines;
220
+ }
221
+ // --- Multi-step check result (terminal only — markdown has no special multi-step section) ---
222
+ function formatMultiStepResultTerminal(ms) {
223
+ const lines = [];
224
+ lines.push((0, render_1.heading)('MULTI-STEP RESULT', 2, 'terminal'));
225
+ lines.push(`${label('Runtime:')}${ms.runtimeVersion}`);
226
+ appendErrors(lines, ms.errors);
227
+ if (ms.jobLog && ms.jobLog.length > 0) {
228
+ lines.push('');
229
+ lines.push(...formatJobLogArray(ms.jobLog));
230
+ }
231
+ appendAssets(lines, ms);
232
+ return lines;
233
+ }
234
+ // --- Shared internal helpers ---
235
+ function colorStatus(code) {
236
+ if (code >= 200 && code < 300)
237
+ return chalk_1.default.green(String(code));
238
+ if (code >= 300 && code < 400)
239
+ return chalk_1.default.yellow(String(code));
240
+ return chalk_1.default.red(String(code));
241
+ }
242
+ function appendErrors(lines, errors) {
243
+ if (errors.length === 0)
244
+ return;
245
+ lines.push('', (0, render_1.heading)('ERRORS', 2, 'terminal'));
246
+ for (const err of errors)
247
+ lines.push(chalk_1.default.red(` ${err}`));
248
+ }
249
+ function appendAssets(lines, obj) {
250
+ const parts = [];
251
+ if (obj.jobAssets?.length)
252
+ parts.push(`${obj.jobAssets.length} screenshot(s)`);
253
+ if (obj.playwrightTestTraces?.length)
254
+ parts.push(`${obj.playwrightTestTraces.length} trace(s)`);
255
+ if (obj.playwrightTestVideos?.length)
256
+ parts.push(`${obj.playwrightTestVideos.length} video(s)`);
257
+ if (parts.length > 0) {
258
+ lines.push('', (0, render_1.heading)('ASSETS', 2, 'terminal'));
259
+ lines.push(` ${parts.join(', ')}`);
260
+ lines.push(chalk_1.default.dim(' Use --output json to get asset URLs'));
261
+ }
262
+ }
263
+ function formatBody(body, indent) {
264
+ let text;
265
+ try {
266
+ text = JSON.stringify(JSON.parse(body), null, 2);
267
+ }
268
+ catch {
269
+ text = body;
270
+ }
271
+ const lines = text.split('\n');
272
+ if (lines.length > 30) {
273
+ return lines.slice(0, 30).map(l => indent + l).join('\n')
274
+ + `\n${indent}${chalk_1.default.dim(`... (${lines.length - 30} more lines)`)}`;
275
+ }
276
+ return lines.map(l => indent + l).join('\n');
277
+ }
278
+ function formatTimingBar(tp) {
279
+ const phases = [
280
+ { name: 'DNS', ms: tp.dns, color: chalk_1.default.cyan },
281
+ { name: 'TCP', ms: tp.tcp, color: chalk_1.default.blue },
282
+ { name: 'TLS', ms: tp.wait, color: chalk_1.default.magenta },
283
+ { name: 'TTFB', ms: tp.firstByte, color: chalk_1.default.yellow },
284
+ { name: 'Download', ms: tp.download, color: chalk_1.default.green },
285
+ ];
286
+ const lines = [];
287
+ for (const phase of phases) {
288
+ if (phase.ms > 0) {
289
+ lines.push(` ${label(phase.name + ':', 12)}${phase.color((0, render_1.formatMs)(phase.ms))}`);
290
+ }
291
+ }
292
+ lines.push(` ${label('Total:', 12)}${chalk_1.default.bold((0, render_1.formatMs)(tp.total))}`);
293
+ return lines.join('\n');
294
+ }
295
+ function formatVitalValue(name, v) {
296
+ if (v.value == null)
297
+ return '-';
298
+ if (name === 'CLS')
299
+ return String(v.value.toFixed(3));
300
+ return (0, render_1.formatMs)(v.value);
301
+ }
302
+ function vitalScore(score) {
303
+ switch (score) {
304
+ case 'GOOD': return chalk_1.default.green('good');
305
+ case 'NEEDS_IMPROVEMENT': return chalk_1.default.yellow('needs improvement');
306
+ case 'POOR': return chalk_1.default.red('poor');
307
+ default: return chalk_1.default.dim(score);
308
+ }
309
+ }
310
+ // --- Job log formatting ---
311
+ function formatJobLogArray(log) {
312
+ const lines = [(0, render_1.heading)('JOB LOG', 2, 'terminal')];
313
+ const maxLines = 50;
314
+ const entries = log.slice(0, maxLines);
315
+ for (const entry of entries) {
316
+ const level = entry.level === 'ERROR' ? chalk_1.default.red(entry.level) : chalk_1.default.dim(entry.level);
317
+ lines.push(` ${level} ${entry.msg}`);
318
+ }
319
+ if (log.length > maxLines) {
320
+ lines.push(chalk_1.default.dim(` ... (${log.length - maxLines} more entries)`));
321
+ }
322
+ return lines;
323
+ }
324
+ function formatJobLogObject(log) {
325
+ if (!log)
326
+ return [];
327
+ if (Array.isArray(log)) {
328
+ return formatJobLogArray(log);
329
+ }
330
+ if (typeof log === 'object' && log !== null) {
331
+ const obj = log;
332
+ const phases = ['setup', 'request', 'teardown'];
333
+ const allEntries = [];
334
+ for (const phase of phases) {
335
+ const entries = obj[phase];
336
+ if (Array.isArray(entries)) {
337
+ allEntries.push(...entries);
338
+ }
339
+ }
340
+ if (allEntries.length > 0) {
341
+ return formatJobLogArray(allEntries);
342
+ }
343
+ }
344
+ const lines = [(0, render_1.heading)('JOB LOG', 2, 'terminal')];
345
+ try {
346
+ const pretty = JSON.stringify(log, null, 2);
347
+ const jsonLines = pretty.split('\n').slice(0, 50);
348
+ for (const l of jsonLines) {
349
+ lines.push(` ${l}`);
350
+ }
351
+ }
352
+ catch {
353
+ lines.push(` ${String(log)}`);
354
+ }
355
+ return lines;
356
+ }
357
+ //# sourceMappingURL=check-result-detail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-result-detail.js","sourceRoot":"","sources":["../../src/formatters/check-result-detail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Check } from '../rest/checks';
2
+ import type { CheckStatus } from '../rest/check-statuses';
3
+ import type { CheckResult } from '../rest/check-results';
4
+ import type { ErrorGroup } from '../rest/error-groups';
5
+ import { type OutputFormat, type DetailField } from './render';
6
+ export { formatFrequency, formatCheckType } from './render';
7
+ export type CheckWithStatus = Check & {
8
+ status?: CheckStatus;
9
+ };
10
+ export interface PaginationInfo {
11
+ page: number;
12
+ limit: number;
13
+ total: number;
14
+ }
15
+ export declare function formatSummaryBar(statuses: CheckStatus[], totalChecks: number, activeCheckIds?: Set<string>): string;
16
+ export declare function formatTypeBreakdown(checks: Check[], activeCheckIds?: Set<string>): string;
17
+ export declare function formatPaginationInfo(pagination: PaginationInfo): string;
18
+ export declare function formatNavigationHints(pagination: PaginationInfo, activeFilters: string[]): string;
19
+ export declare const checkDetailFields: DetailField<CheckWithStatus>[];
20
+ export declare function formatCheckDetail(check: CheckWithStatus, format: OutputFormat): string;
21
+ export interface TableOptions {
22
+ showId?: boolean;
23
+ }
24
+ export declare function formatChecks(checks: CheckWithStatus[], format: OutputFormat, options?: TableOptions & {
25
+ pagination?: PaginationInfo;
26
+ }): string;
27
+ export declare function formatResults(results: CheckResult[], format: OutputFormat): string;
28
+ export declare function formatErrorGroups(errorGroups: ErrorGroup[], format: OutputFormat): string;