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.
- package/dist/commands/checks/get.d.ts +18 -0
- package/dist/commands/checks/get.js +221 -0
- package/dist/commands/checks/get.js.map +1 -0
- package/dist/commands/checks/list.d.ts +15 -0
- package/dist/commands/checks/list.js +142 -0
- package/dist/commands/checks/list.js.map +1 -0
- package/dist/commands/status-pages/get.d.ts +12 -0
- package/dist/commands/status-pages/get.js +75 -0
- package/dist/commands/status-pages/get.js.map +1 -0
- package/dist/commands/status-pages/list.d.ts +12 -0
- package/dist/commands/status-pages/list.js +106 -0
- package/dist/commands/status-pages/list.js.map +1 -0
- package/dist/formatters/check-result-detail.d.ts +4 -0
- package/dist/formatters/check-result-detail.js +357 -0
- package/dist/formatters/check-result-detail.js.map +1 -0
- package/dist/formatters/checks.d.ts +28 -0
- package/dist/formatters/checks.js +314 -0
- package/dist/formatters/checks.js.map +1 -0
- package/dist/formatters/render.d.ts +28 -0
- package/dist/formatters/render.js +168 -0
- package/dist/formatters/render.js.map +1 -0
- package/dist/formatters/status-pages.d.ts +7 -0
- package/dist/formatters/status-pages.js +254 -0
- package/dist/formatters/status-pages.js.map +1 -0
- package/dist/helpers/command-style.d.ts +1 -0
- package/dist/helpers/command-style.js +12 -0
- package/dist/helpers/command-style.js.map +1 -1
- package/dist/helpers/flags.d.ts +4 -0
- package/dist/helpers/flags.js +14 -0
- package/dist/helpers/flags.js.map +1 -0
- package/dist/rest/api.d.ts +12 -0
- package/dist/rest/api.js +13 -1
- package/dist/rest/api.js.map +1 -1
- package/dist/rest/check-groups.d.ts +16 -0
- package/dist/rest/check-groups.js +13 -0
- package/dist/rest/check-groups.js.map +1 -0
- package/dist/rest/check-results.d.ts +133 -0
- package/dist/rest/check-results.js +16 -0
- package/dist/rest/check-results.js.map +1 -0
- package/dist/rest/check-statuses.d.ts +23 -0
- package/dist/rest/check-statuses.js +22 -0
- package/dist/rest/check-statuses.js.map +1 -0
- package/dist/rest/checks.d.ts +45 -0
- package/dist/rest/checks.js +48 -0
- package/dist/rest/checks.js.map +1 -0
- package/dist/rest/error-groups.d.ts +18 -0
- package/dist/rest/error-groups.js +16 -0
- package/dist/rest/error-groups.js.map +1 -0
- package/dist/rest/status-pages.d.ts +37 -0
- package/dist/rest/status-pages.js +18 -0
- package/dist/rest/status-pages.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/oclif.manifest.json +400 -125
- 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":";;;;;;AAAA,kDAAyB;AACzB,gEAAsC;AAItC,4CAA4C;AAC5C,MAAM,UAAU,GAAG,mBAAmB,CAAA;AAEtC,SAAgB,SAAS,CAAE,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AACtC,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ,CAAE,KAAa;IACrC,OAAO,IAAA,sBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAFD,4BAEC;AAED,SAAgB,SAAS,CAAE,KAAa,EAAE,KAAa;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAHD,8BAGC;AAED,SAAgB,eAAe,CAAE,KAAa,EAAE,QAAgB;IAC9D,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAA;IAChD,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAA;QACnC,IAAI,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ;YAAE,MAAK;QAC3C,MAAM,IAAI,IAAI,CAAA;QACd,KAAK,IAAI,SAAS,CAAA;IACpB,CAAC;IACD,OAAO,MAAM,GAAG,GAAG,CAAA;AACrB,CAAC;AAZD,0CAYC;AAED,SAAgB,OAAO,CAAE,IAAY,EAAE,KAAa,EAAE,MAAoB;IACxE,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAA;IAC1D,OAAO,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAHD,0BAGC;AAED,SAAgB,QAAQ,CAAE,EAAU;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC9B,IAAI,OAAO,GAAG,IAAI;QAAE,OAAO,GAAG,OAAO,IAAI,CAAA;IACzC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAA;AACrC,CAAC;AAJD,4BAIC;AAED,SAAgB,OAAO,CAAE,OAAe;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,GAAG,GAAG,IAAI,CAAA;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAEzC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACxC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAA;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACxC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,OAAO,CAAA;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IACzC,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,OAAO,CAAA;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAA;IAC5C,OAAO,GAAG,UAAU,QAAQ,CAAA;AAC9B,CAAC;AAfD,0BAeC;AAED,SAAgB,eAAe,CAAE,OAAkC;IACjE,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IACzD,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC/B,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAA;IACtC,IAAI,OAAO,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,CAAA;IACjD,OAAO,GAAG,OAAO,GAAG,CAAA;AACtB,CAAC;AAND,0CAMC;AAED,SAAgB,eAAe,CAAE,SAAiB;IAChD,OAAO,SAAS,CAAA;AAClB,CAAC;AAFD,0CAEC;AAED,SAAgB,UAAU,CAAE,OAAkC,EAAE,MAAoB;IAClF,IAAI,CAAC,OAAO;QAAE,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACjE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACrE,CAAC;AAJD,gCAIC;AAED,SAAgB,mBAAmB,CACjC,MAAgF,EAChF,MAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IACtH,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACjC,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,eAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACrE,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACpD,OAAO,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC;AATD,kDASC;AAED,SAAgB,aAAa,CAAE,GAAW,EAAE,MAAc;IACxD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC5E,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAA;AAC7C,CAAC;AAJD,sCAIC;AAeD,SAAgB,kBAAkB,CAChC,KAAa,EACb,MAAwB,EACxB,IAAO,EACP,MAAoB;IAEpB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG;YACZ,KAAK,KAAK,EAAE;YACZ,EAAE;YACF,mBAAmB;YACnB,eAAe;SAChB,CAAA;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACrC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,sDAAsD;IACtD,MAAM,QAAQ,GAA4C,EAAE,CAAA;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACrC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,CAAA,CAAC,+BAA+B;IAEhE,MAAM,KAAK,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IACrC,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,CAAA;QAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;QACtD,KAAK,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AA1CD,gDA0CC;AAED,SAAgB,WAAW,CACzB,OAAuB,EACvB,IAAS,EACT,MAAoB;IAEpB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QACnE,MAAM,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC9B,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CACjE,CAAA;QACD,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,WAAW;IACX,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;QACjD,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAClC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAChF,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CACZ,CAAA;IAED,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvD,CAAC;AA5BD,kCA4BC"}
|
|
@@ -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;
|