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,314 @@
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.formatErrorGroups = exports.formatResults = exports.formatChecks = exports.formatCheckDetail = exports.checkDetailFields = exports.formatNavigationHints = exports.formatPaginationInfo = exports.formatTypeBreakdown = exports.formatSummaryBar = exports.formatCheckType = exports.formatFrequency = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const log_symbols_1 = __importDefault(require("log-symbols"));
9
+ const render_1 = require("./render");
10
+ var render_2 = require("./render");
11
+ Object.defineProperty(exports, "formatFrequency", { enumerable: true, get: function () { return render_2.formatFrequency; } });
12
+ Object.defineProperty(exports, "formatCheckType", { enumerable: true, get: function () { return render_2.formatCheckType; } });
13
+ function resolveStatus(check, format) {
14
+ if (!check.activated)
15
+ return format === 'terminal' ? chalk_1.default.dim('inactive') : 'inactive';
16
+ if (!check.status)
17
+ return format === 'terminal' ? chalk_1.default.dim('-') : 'unknown';
18
+ const failing = check.status.hasFailures || check.status.hasErrors;
19
+ const degraded = check.status.isDegraded;
20
+ const muted = check.muted;
21
+ if (format === 'md') {
22
+ const label = failing ? 'failing' : degraded ? 'degraded' : 'passing';
23
+ return muted ? `${label} (muted)` : label;
24
+ }
25
+ if (failing)
26
+ return muted ? chalk_1.default.dim('failing') : chalk_1.default.red('failing');
27
+ if (degraded)
28
+ return muted ? chalk_1.default.dim('degraded') : chalk_1.default.yellow('degraded');
29
+ return muted ? chalk_1.default.dim('passing') : chalk_1.default.green('passing');
30
+ }
31
+ function boolSymbol(value, format) {
32
+ if (format === 'md')
33
+ return value ? 'yes' : '-';
34
+ return value ? chalk_1.default.green('yes') : chalk_1.default.dim('-');
35
+ }
36
+ // --- Summary bar (terminal only) ---
37
+ function formatSummaryBar(statuses, totalChecks, activeCheckIds) {
38
+ const counted = activeCheckIds
39
+ ? statuses.filter(s => activeCheckIds.has(s.checkId))
40
+ : statuses;
41
+ const passing = counted.filter(s => !s.hasFailures && !s.hasErrors && !s.isDegraded).length;
42
+ const degraded = counted.filter(s => s.isDegraded && !s.hasFailures && !s.hasErrors).length;
43
+ const failing = counted.filter(s => s.hasFailures || s.hasErrors).length;
44
+ const parts = [];
45
+ if (passing > 0)
46
+ parts.push(chalk_1.default.green(`${log_symbols_1.default.success} ${passing} passing`));
47
+ if (degraded > 0)
48
+ parts.push(chalk_1.default.yellow(`${log_symbols_1.default.warning} ${degraded} degraded`));
49
+ if (failing > 0)
50
+ parts.push(chalk_1.default.red(`${log_symbols_1.default.error} ${failing} failing`));
51
+ const displayTotal = activeCheckIds ? activeCheckIds.size : totalChecks;
52
+ const total = chalk_1.default.dim(`(${displayTotal} total checks)`);
53
+ if (parts.length === 0)
54
+ return total;
55
+ return parts.join(' ') + ' ' + total;
56
+ }
57
+ exports.formatSummaryBar = formatSummaryBar;
58
+ // --- Type breakdown (terminal only) ---
59
+ function formatTypeBreakdown(checks, activeCheckIds) {
60
+ const filtered = activeCheckIds ? checks.filter(c => activeCheckIds.has(c.id)) : checks;
61
+ const counts = new Map();
62
+ for (const check of filtered) {
63
+ counts.set(check.checkType, (counts.get(check.checkType) || 0) + 1);
64
+ }
65
+ const parts = [...counts.entries()]
66
+ .sort((a, b) => b[1] - a[1])
67
+ .map(([type, count]) => `${type}: ${count}`);
68
+ return chalk_1.default.dim(parts.join(' '));
69
+ }
70
+ exports.formatTypeBreakdown = formatTypeBreakdown;
71
+ // --- Pagination info (terminal only) ---
72
+ function formatPaginationInfo(pagination) {
73
+ const { page, limit, total } = pagination;
74
+ const start = (page - 1) * limit + 1;
75
+ const end = Math.min(page * limit, total);
76
+ const totalPages = Math.ceil(total / limit);
77
+ return chalk_1.default.dim(`Showing ${start}-${end} of ${total} checks (page ${page}/${totalPages})`);
78
+ }
79
+ exports.formatPaginationInfo = formatPaginationInfo;
80
+ // --- Navigation hints (terminal only) ---
81
+ function formatNavigationHints(pagination, activeFilters) {
82
+ const { page, limit, total } = pagination;
83
+ const totalPages = Math.ceil(total / limit);
84
+ const lines = [];
85
+ if (page < totalPages) {
86
+ lines.push(` ${chalk_1.default.dim('Next page:')} checkly checks list --page ${page + 1}`);
87
+ }
88
+ if (page > 1) {
89
+ lines.push(` ${chalk_1.default.dim('Prev page:')} checkly checks list --page ${page - 1}`);
90
+ }
91
+ lines.push(` ${chalk_1.default.dim('View check:')} checkly checks get <id>`);
92
+ if (activeFilters.length === 0) {
93
+ lines.push(` ${chalk_1.default.dim('Filter:')} checkly checks list --tag <tag> --type <type> --search <name>`);
94
+ }
95
+ return lines.join('\n');
96
+ }
97
+ exports.formatNavigationHints = formatNavigationHints;
98
+ // --- Check detail fields ---
99
+ exports.checkDetailFields = [
100
+ { label: 'Type', value: c => (0, render_1.formatCheckType)(c.checkType) },
101
+ { label: 'Status', value: (c, fmt) => resolveStatus(c, fmt) },
102
+ { label: 'Active', value: (c, fmt) => boolSymbol(c.activated, fmt) },
103
+ { label: 'Muted', value: (c, fmt) => boolSymbol(c.muted, fmt) },
104
+ { label: 'Frequency', value: c => `Every ${(0, render_1.formatFrequency)(c.frequency)}` },
105
+ {
106
+ label: 'Locations',
107
+ value: (c, fmt) => {
108
+ const locations = [
109
+ ...(c.locations || []),
110
+ ...(c.privateLocations || []).map(l => `${l} (private)`),
111
+ ];
112
+ if (locations.length === 0)
113
+ return fmt === 'terminal' ? chalk_1.default.dim('-') : '-';
114
+ return locations.join(', ');
115
+ },
116
+ },
117
+ {
118
+ label: 'Tags',
119
+ value: (c, fmt) => {
120
+ if (c.tags.length === 0)
121
+ return fmt === 'terminal' ? chalk_1.default.dim('-') : '-';
122
+ return c.tags.join(', ');
123
+ },
124
+ },
125
+ {
126
+ label: 'Source',
127
+ value: (c, fmt) => {
128
+ if (fmt === 'md')
129
+ return null;
130
+ if (c.scriptPath)
131
+ return `${chalk_1.default.cyan('code')} ${chalk_1.default.dim('→')} ${c.scriptPath}`;
132
+ return chalk_1.default.dim('UI');
133
+ },
134
+ },
135
+ {
136
+ label: 'URL',
137
+ value: (c, fmt) => {
138
+ if (fmt === 'md')
139
+ return null;
140
+ return c.request?.url ?? null;
141
+ },
142
+ },
143
+ {
144
+ label: 'SSL',
145
+ value: (c, fmt) => {
146
+ if (c.status?.sslDaysRemaining == null) {
147
+ return fmt === 'md' ? '-' : null;
148
+ }
149
+ const ssl = c.status.sslDaysRemaining;
150
+ const display = `${ssl} days remaining`;
151
+ if (fmt === 'md')
152
+ return display;
153
+ return ssl <= 14 ? chalk_1.default.red(display) : ssl <= 30 ? chalk_1.default.yellow(display) : chalk_1.default.green(display);
154
+ },
155
+ },
156
+ {
157
+ label: 'Deployed',
158
+ value: (c, fmt) => {
159
+ if (!c.updated_at)
160
+ return fmt === 'md' ? '-' : null;
161
+ return new Date(c.updated_at).toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' });
162
+ },
163
+ },
164
+ {
165
+ label: 'Group',
166
+ value: (c, fmt) => c.groupId != null ? String(c.groupId) : (fmt === 'terminal' ? chalk_1.default.dim('-') : '-'),
167
+ },
168
+ {
169
+ label: 'Created',
170
+ value: (c, fmt) => {
171
+ if (!c.created_at)
172
+ return fmt === 'terminal' ? chalk_1.default.dim('-') : '-';
173
+ return new Date(c.created_at).toISOString().slice(0, 10);
174
+ },
175
+ },
176
+ { label: 'ID', value: c => c.id },
177
+ ];
178
+ function formatCheckDetail(check, format) {
179
+ return (0, render_1.renderDetailFields)(check.name, exports.checkDetailFields, check, format);
180
+ }
181
+ exports.formatCheckDetail = formatCheckDetail;
182
+ function buildCheckColumns(checks, format, options = {}) {
183
+ if (format === 'md') {
184
+ return [
185
+ { header: 'Name', value: c => c.name },
186
+ { header: 'Type', value: c => (0, render_1.formatCheckType)(c.checkType) },
187
+ { header: 'Status', value: (c, fmt) => resolveStatus(c, fmt) },
188
+ { header: 'Freq', value: c => (0, render_1.formatFrequency)(c.frequency) },
189
+ { header: 'Tags', value: c => c.tags.length > 0 ? c.tags.join(', ') : '-' },
190
+ { header: 'ID', value: c => c.id },
191
+ ];
192
+ }
193
+ const { showId = false } = options;
194
+ const termWidth = process.stdout.columns || 120;
195
+ const fixedWidth = 12 + 10 + 6;
196
+ const idReserve = showId ? 38 : 0;
197
+ const available = termWidth - fixedWidth - idReserve;
198
+ const longestName = Math.max(4, ...checks.map(c => (0, render_1.visWidth)(c.name)));
199
+ const nameWidth = Math.min(longestName + 2, 42);
200
+ const tagWidth = Math.max(8, available - nameWidth);
201
+ const columns = [
202
+ {
203
+ header: 'Name',
204
+ width: nameWidth,
205
+ value: c => (0, render_1.truncateToWidth)(c.name, nameWidth - 2),
206
+ },
207
+ {
208
+ header: 'Type',
209
+ width: 12,
210
+ value: c => (0, render_1.formatCheckType)(c.checkType),
211
+ },
212
+ {
213
+ header: 'Status',
214
+ width: 10,
215
+ value: (c, fmt) => resolveStatus(c, fmt),
216
+ },
217
+ {
218
+ header: 'Freq',
219
+ width: 6,
220
+ value: c => (0, render_1.formatFrequency)(c.frequency),
221
+ },
222
+ ];
223
+ columns.push({
224
+ header: 'Tags',
225
+ ...(showId && { width: tagWidth }),
226
+ value: c => {
227
+ const tags = c.tags.length > 0 ? c.tags.join(', ') : chalk_1.default.dim('-');
228
+ return (0, render_1.truncateToWidth)(tags, tagWidth - 2);
229
+ },
230
+ });
231
+ if (showId) {
232
+ columns.push({ header: 'ID', value: c => chalk_1.default.dim(c.id) });
233
+ }
234
+ return columns;
235
+ }
236
+ function formatChecks(checks, format, options = {}) {
237
+ const columns = buildCheckColumns(checks, format, options);
238
+ let result = (0, render_1.renderTable)(columns, checks, format);
239
+ if (format === 'md' && options.pagination) {
240
+ const { page, limit, total } = options.pagination;
241
+ const totalPages = Math.ceil(total / limit);
242
+ result += `\n\n*Showing page ${page}/${totalPages} (${total} total checks)*`;
243
+ }
244
+ return result;
245
+ }
246
+ exports.formatChecks = formatChecks;
247
+ // --- Results table ---
248
+ function buildResultColumns(format) {
249
+ if (format === 'md') {
250
+ return [
251
+ { header: 'Time', value: r => r.startedAt },
252
+ { header: 'Location', value: r => r.runLocation },
253
+ { header: 'Status', value: (r, fmt) => (0, render_1.resolveResultStatus)(r, fmt) },
254
+ { header: 'Response Time', value: r => (0, render_1.formatMs)(r.responseTime) },
255
+ { header: 'ID', value: r => r.id },
256
+ ];
257
+ }
258
+ return [
259
+ { header: 'Time', width: 14, value: r => (0, render_1.timeAgo)(r.startedAt) },
260
+ { header: 'Location', width: 16, value: r => r.runLocation },
261
+ { header: 'Status', width: 10, value: (r, fmt) => (0, render_1.resolveResultStatus)(r, fmt) },
262
+ { header: 'Response Time', width: 16, value: r => (0, render_1.formatMs)(r.responseTime) },
263
+ { header: 'Result ID', value: r => chalk_1.default.dim(r.id) },
264
+ ];
265
+ }
266
+ function formatResults(results, format) {
267
+ return (0, render_1.renderTable)(buildResultColumns(format), results, format);
268
+ }
269
+ exports.formatResults = formatResults;
270
+ // --- Error groups ---
271
+ function buildErrorGroupColumns(format) {
272
+ if (format === 'md') {
273
+ return [
274
+ {
275
+ header: 'Error',
276
+ value: eg => {
277
+ const msg = (0, render_1.stripAnsi)(eg.cleanedErrorMessage).replace(/\n/g, ' ').replace(/\s+/g, ' ').trim();
278
+ return msg.length > 80 ? msg.substring(0, 79) + '…' : msg;
279
+ },
280
+ },
281
+ { header: 'First Seen', value: eg => eg.firstSeen },
282
+ { header: 'Last Seen', value: eg => eg.lastSeen },
283
+ { header: 'ID', value: eg => eg.id },
284
+ ];
285
+ }
286
+ return [
287
+ {
288
+ header: 'Error',
289
+ width: 60,
290
+ value: eg => chalk_1.default.red((0, render_1.truncateError)(eg.cleanedErrorMessage, 58)),
291
+ },
292
+ {
293
+ header: 'First Seen',
294
+ width: 14,
295
+ value: eg => chalk_1.default.dim((0, render_1.timeAgo)(eg.firstSeen)),
296
+ },
297
+ {
298
+ header: 'Last Seen',
299
+ value: eg => chalk_1.default.dim((0, render_1.timeAgo)(eg.lastSeen)),
300
+ },
301
+ ];
302
+ }
303
+ function formatErrorGroups(errorGroups, format) {
304
+ const active = errorGroups.filter(eg => !eg.archivedUntilNextEvent);
305
+ if (active.length === 0)
306
+ return '';
307
+ const columns = buildErrorGroupColumns(format);
308
+ const title = format === 'md'
309
+ ? '## Error Groups\n\n'
310
+ : chalk_1.default.bold('ERROR GROUPS') + '\n';
311
+ return title + (0, render_1.renderTable)(columns, active, format);
312
+ }
313
+ exports.formatErrorGroups = formatErrorGroups;
314
+ //# sourceMappingURL=checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../../src/formatters/checks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export type OutputFormat = 'terminal' | 'md';
2
+ export declare function stripAnsi(value: string): string;
3
+ export declare function visWidth(value: string): number;
4
+ export declare function padColumn(value: string, width: number): string;
5
+ export declare function truncateToWidth(value: string, maxWidth: number): string;
6
+ export declare function heading(text: string, level: number, format: OutputFormat): string;
7
+ export declare function formatMs(ms: number): string;
8
+ export declare function timeAgo(dateStr: string): string;
9
+ export declare function formatFrequency(minutes: number | undefined | null): string;
10
+ export declare function formatCheckType(checkType: string): string;
11
+ export declare function formatDate(dateStr: string | null | undefined, format: OutputFormat): string;
12
+ export declare function resolveResultStatus(result: {
13
+ hasErrors: boolean;
14
+ hasFailures: boolean;
15
+ isDegraded: boolean | null;
16
+ }, format: OutputFormat): string;
17
+ export declare function truncateError(msg: string, maxLen: number): string;
18
+ export interface DetailField<T> {
19
+ label: string;
20
+ value: (item: T, format: OutputFormat) => string | null;
21
+ }
22
+ export interface ColumnDef<T> {
23
+ header: string;
24
+ width?: number;
25
+ value: (item: T, format: OutputFormat) => string;
26
+ }
27
+ export declare function renderDetailFields<T>(title: string, fields: DetailField<T>[], item: T, format: OutputFormat): string;
28
+ export declare function renderTable<T>(columns: ColumnDef<T>[], rows: T[], format: OutputFormat): string;
@@ -0,0 +1,168 @@
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.renderTable = exports.renderDetailFields = exports.truncateError = exports.resolveResultStatus = exports.formatDate = exports.formatCheckType = exports.formatFrequency = exports.timeAgo = exports.formatMs = exports.heading = exports.truncateToWidth = exports.padColumn = exports.visWidth = exports.stripAnsi = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const string_width_1 = __importDefault(require("string-width"));
9
+ // eslint-disable-next-line no-control-regex
10
+ const ANSI_REGEX = /\u001B\[[0-9;]*m/g;
11
+ function stripAnsi(value) {
12
+ return value.replace(ANSI_REGEX, '');
13
+ }
14
+ exports.stripAnsi = stripAnsi;
15
+ function visWidth(value) {
16
+ return (0, string_width_1.default)(stripAnsi(value));
17
+ }
18
+ exports.visWidth = visWidth;
19
+ function padColumn(value, width) {
20
+ const padding = Math.max(0, width - visWidth(value));
21
+ return value + ' '.repeat(padding);
22
+ }
23
+ exports.padColumn = padColumn;
24
+ function truncateToWidth(value, maxWidth) {
25
+ const stripped = stripAnsi(value);
26
+ if (visWidth(stripped) <= maxWidth)
27
+ return value;
28
+ let result = '';
29
+ let width = 0;
30
+ for (const char of stripped) {
31
+ const charWidth = (0, string_width_1.default)(char);
32
+ if (width + charWidth + 1 > maxWidth)
33
+ break;
34
+ result += char;
35
+ width += charWidth;
36
+ }
37
+ return result + '…';
38
+ }
39
+ exports.truncateToWidth = truncateToWidth;
40
+ function heading(text, level, format) {
41
+ if (format === 'md')
42
+ return `${'#'.repeat(level)} ${text}`;
43
+ return chalk_1.default.bold(text);
44
+ }
45
+ exports.heading = heading;
46
+ function formatMs(ms) {
47
+ const rounded = Math.round(ms);
48
+ if (rounded < 1000)
49
+ return `${rounded}ms`;
50
+ return `${(ms / 1000).toFixed(2)}s`;
51
+ }
52
+ exports.formatMs = formatMs;
53
+ function timeAgo(dateStr) {
54
+ const now = Date.now();
55
+ const then = new Date(dateStr).getTime();
56
+ const diffMs = now - then;
57
+ const diffSec = Math.floor(diffMs / 1000);
58
+ if (diffSec < 60)
59
+ return `${diffSec}s ago`;
60
+ const diffMin = Math.floor(diffSec / 60);
61
+ if (diffMin < 60)
62
+ return `${diffMin}m ago`;
63
+ const diffHrs = Math.floor(diffMin / 60);
64
+ if (diffHrs < 24)
65
+ return `${diffHrs}h ago`;
66
+ const diffDays = Math.floor(diffHrs / 24);
67
+ if (diffDays < 30)
68
+ return `${diffDays}d ago`;
69
+ const diffMonths = Math.floor(diffDays / 30);
70
+ return `${diffMonths}mo ago`;
71
+ }
72
+ exports.timeAgo = timeAgo;
73
+ function formatFrequency(minutes) {
74
+ if (minutes === undefined || minutes === null)
75
+ return '-';
76
+ if (minutes === 0)
77
+ return '<1m';
78
+ if (minutes < 60)
79
+ return `${minutes}m`;
80
+ if (minutes % 60 === 0)
81
+ return `${minutes / 60}h`;
82
+ return `${minutes}m`;
83
+ }
84
+ exports.formatFrequency = formatFrequency;
85
+ function formatCheckType(checkType) {
86
+ return checkType;
87
+ }
88
+ exports.formatCheckType = formatCheckType;
89
+ function formatDate(dateStr, format) {
90
+ if (!dateStr)
91
+ return format === 'terminal' ? chalk_1.default.dim('-') : '-';
92
+ const d = new Date(dateStr);
93
+ return d.toISOString().replace('T', ' ').replace(/\.\d+Z$/, ' UTC');
94
+ }
95
+ exports.formatDate = formatDate;
96
+ function resolveResultStatus(result, format) {
97
+ const label = result.hasErrors ? 'error' : result.hasFailures ? 'failing' : result.isDegraded ? 'degraded' : 'passing';
98
+ if (format === 'md')
99
+ return label;
100
+ if (label === 'error' || label === 'failing')
101
+ return chalk_1.default.red(label);
102
+ if (label === 'degraded')
103
+ return chalk_1.default.yellow(label);
104
+ return chalk_1.default.green(label);
105
+ }
106
+ exports.resolveResultStatus = resolveResultStatus;
107
+ function truncateError(msg, maxLen) {
108
+ const clean = stripAnsi(msg).replace(/\n/g, ' ').replace(/\s+/g, ' ').trim();
109
+ if (clean.length <= maxLen)
110
+ return clean;
111
+ return clean.substring(0, maxLen - 1) + '…';
112
+ }
113
+ exports.truncateError = truncateError;
114
+ function renderDetailFields(title, fields, item, format) {
115
+ if (format === 'md') {
116
+ const lines = [
117
+ `# ${title}`,
118
+ '',
119
+ '| Field | Value |',
120
+ '| --- | --- |',
121
+ ];
122
+ for (const field of fields) {
123
+ const val = field.value(item, format);
124
+ if (val != null) {
125
+ lines.push(`| ${field.label} | ${val} |`);
126
+ }
127
+ }
128
+ return lines.join('\n');
129
+ }
130
+ // Terminal: compute visible fields, then align labels
131
+ const resolved = [];
132
+ for (const field of fields) {
133
+ const val = field.value(item, format);
134
+ if (val != null) {
135
+ resolved.push({ label: field.label, value: val });
136
+ }
137
+ }
138
+ const maxLabelLen = Math.max(0, ...resolved.map(f => f.label.length));
139
+ const padWidth = maxLabelLen + 3; // "label:" + at least 2 spaces
140
+ const lines = [chalk_1.default.bold(title), ''];
141
+ for (const { label: lbl, value } of resolved) {
142
+ const labelStr = `${lbl}:`;
143
+ const padding = ' '.repeat(padWidth - labelStr.length);
144
+ lines.push(`${chalk_1.default.dim(labelStr)}${padding}${value}`);
145
+ }
146
+ return lines.join('\n');
147
+ }
148
+ exports.renderDetailFields = renderDetailFields;
149
+ function renderTable(columns, rows, format) {
150
+ if (format === 'md') {
151
+ const header = '| ' + columns.map(c => c.header).join(' | ') + ' |';
152
+ const separator = '| ' + columns.map(() => '---').join(' | ') + ' |';
153
+ const dataRows = rows.map(row => '| ' + columns.map(c => c.value(row, format)).join(' | ') + ' |');
154
+ return [header, separator, ...dataRows].join('\n');
155
+ }
156
+ // Terminal
157
+ const headerParts = columns.map((col, i) => {
158
+ const text = chalk_1.default.bold(col.header.toUpperCase());
159
+ return (i < columns.length - 1 && col.width) ? padColumn(text, col.width) : text;
160
+ });
161
+ const dataRows = rows.map(row => columns.map((col, i) => {
162
+ const val = col.value(row, format);
163
+ return (i < columns.length - 1 && col.width) ? padColumn(val, col.width) : val;
164
+ }).join(''));
165
+ return [headerParts.join(''), ...dataRows].join('\n');
166
+ }
167
+ exports.renderTable = renderTable;
168
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/formatters/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { StatusPage } from '../rest/status-pages';
2
+ import { type OutputFormat } from './render';
3
+ export declare function formatStatusPagesExpanded(statusPages: StatusPage[], format: OutputFormat): string;
4
+ export declare function formatStatusPagesCompact(statusPages: StatusPage[], format: OutputFormat): string;
5
+ export declare function formatCursorPaginationInfo(count: number, nextId: string | null): string;
6
+ export declare function formatCursorNavigationHints(nextId: string | null): string;
7
+ export declare function formatStatusPageDetail(sp: StatusPage, format: OutputFormat): string;