@alertee/cli 0.1.0 → 0.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 (72) hide show
  1. package/dist/api.d.ts +110 -4
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +7 -0
  4. package/dist/api.js.map +1 -1
  5. package/dist/browser.d.ts +3 -0
  6. package/dist/browser.d.ts.map +1 -0
  7. package/dist/browser.js +19 -0
  8. package/dist/browser.js.map +1 -0
  9. package/dist/commands/checks/create.d.ts.map +1 -1
  10. package/dist/commands/checks/create.js +80 -15
  11. package/dist/commands/checks/create.js.map +1 -1
  12. package/dist/commands/checks/delete.d.ts +4 -0
  13. package/dist/commands/checks/delete.d.ts.map +1 -0
  14. package/dist/commands/checks/delete.js +29 -0
  15. package/dist/commands/checks/delete.js.map +1 -0
  16. package/dist/commands/checks/get.d.ts +4 -0
  17. package/dist/commands/checks/get.d.ts.map +1 -0
  18. package/dist/commands/checks/get.js +34 -0
  19. package/dist/commands/checks/get.js.map +1 -0
  20. package/dist/commands/checks/history.d.ts +5 -0
  21. package/dist/commands/checks/history.d.ts.map +1 -0
  22. package/dist/commands/checks/history.js +39 -0
  23. package/dist/commands/checks/history.js.map +1 -0
  24. package/dist/commands/checks/list.d.ts +3 -1
  25. package/dist/commands/checks/list.d.ts.map +1 -1
  26. package/dist/commands/checks/list.js +11 -8
  27. package/dist/commands/checks/list.js.map +1 -1
  28. package/dist/commands/checks/open.d.ts +2 -0
  29. package/dist/commands/checks/open.d.ts.map +1 -0
  30. package/dist/commands/checks/open.js +8 -0
  31. package/dist/commands/checks/open.js.map +1 -0
  32. package/dist/commands/checks/quiet.d.ts +10 -0
  33. package/dist/commands/checks/quiet.d.ts.map +1 -0
  34. package/dist/commands/checks/quiet.js +40 -0
  35. package/dist/commands/checks/quiet.js.map +1 -0
  36. package/dist/commands/checks/resolve.d.ts +9 -0
  37. package/dist/commands/checks/resolve.d.ts.map +1 -0
  38. package/dist/commands/checks/resolve.js +30 -0
  39. package/dist/commands/checks/resolve.js.map +1 -0
  40. package/dist/commands/checks/run.d.ts +4 -0
  41. package/dist/commands/checks/run.d.ts.map +1 -0
  42. package/dist/commands/checks/run.js +31 -0
  43. package/dist/commands/checks/run.js.map +1 -0
  44. package/dist/commands/checks/snooze.d.ts +7 -0
  45. package/dist/commands/checks/snooze.d.ts.map +1 -0
  46. package/dist/commands/checks/snooze.js +29 -0
  47. package/dist/commands/checks/snooze.js.map +1 -0
  48. package/dist/commands/checks/update.d.ts +16 -0
  49. package/dist/commands/checks/update.d.ts.map +1 -0
  50. package/dist/commands/checks/update.js +47 -0
  51. package/dist/commands/checks/update.js.map +1 -0
  52. package/dist/commands/connections/list.d.ts +4 -0
  53. package/dist/commands/connections/list.d.ts.map +1 -0
  54. package/dist/commands/connections/list.js +34 -0
  55. package/dist/commands/connections/list.js.map +1 -0
  56. package/dist/commands/login.d.ts.map +1 -1
  57. package/dist/commands/login.js +1 -17
  58. package/dist/commands/login.js.map +1 -1
  59. package/dist/config.d.ts +5 -0
  60. package/dist/config.d.ts.map +1 -1
  61. package/dist/config.js +10 -0
  62. package/dist/config.js.map +1 -1
  63. package/dist/index.js +97 -3
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp.d.ts.map +1 -1
  66. package/dist/mcp.js +303 -15
  67. package/dist/mcp.js.map +1 -1
  68. package/dist/output.d.ts +7 -0
  69. package/dist/output.d.ts.map +1 -0
  70. package/dist/output.js +15 -0
  71. package/dist/output.js.map +1 -0
  72. package/package.json +1 -1
package/dist/api.d.ts CHANGED
@@ -16,9 +16,28 @@ export declare function createClient(config: Config): {
16
16
  listChecks: () => Promise<{
17
17
  checks: CheckItem[];
18
18
  }>;
19
+ getCheck: (id: string) => Promise<{
20
+ check: CheckItem;
21
+ }>;
22
+ getCheckHistory: (id: string, hours: number) => Promise<{
23
+ results: CheckResultItem[];
24
+ }>;
25
+ runCheck: (id: string) => Promise<RunCheckResult>;
19
26
  createCheck: (body: CreateCheckBody) => Promise<{
20
27
  check: CheckItem;
21
28
  }>;
29
+ patchCheck: (id: string, body: PatchCheckBody) => Promise<{
30
+ success: boolean;
31
+ }>;
32
+ deleteCheck: (id: string) => Promise<{
33
+ success: boolean;
34
+ }>;
35
+ snoozeCheck: (id: string, body: SnoozeCheckBody) => Promise<{
36
+ item: KnowledgeItem;
37
+ }>;
38
+ setCheckQuietWindow: (id: string, body: QuietWindowBody) => Promise<{
39
+ item?: KnowledgeItem;
40
+ }>;
22
41
  };
23
42
  export interface TokenItem {
24
43
  id: string;
@@ -62,16 +81,103 @@ export interface CheckItem {
62
81
  CheckStatus: string;
63
82
  Valid: boolean;
64
83
  } | null;
84
+ Query?: string;
85
+ CheckType?: {
86
+ String: string;
87
+ Valid: boolean;
88
+ } | null;
89
+ Enabled?: {
90
+ Bool: boolean;
91
+ Valid: boolean;
92
+ } | null;
93
+ }
94
+ /** A single check run (check.CheckResult — explicit PascalCase json tags). */
95
+ export interface CheckResultItem {
96
+ ID: string;
97
+ CheckID: string;
98
+ Status: string;
99
+ CheckedAt: string;
100
+ CreatedAt: string;
101
+ Details?: unknown;
102
+ Results?: unknown;
103
+ }
104
+ export interface RunCheckResult {
105
+ success: boolean;
106
+ error?: string;
107
+ result?: CheckResultItem;
108
+ }
109
+ /**
110
+ * A check condition. For single-value checks set `type` (the comparison) and
111
+ * `value` (the threshold). For grid (multi-dimensional) checks set
112
+ * `evaluation_type`; for any_cell/all_cells also set `type`+`value` as the
113
+ * per-cell comparison. `severity`/`custom_message`/`dimension_column` are
114
+ * grid-only and optional.
115
+ */
116
+ export interface ConditionBody {
117
+ type?: string;
118
+ value?: string;
119
+ evaluation_type?: 'any_cell' | 'all_cells' | 'dimension_missing' | 'dimension_added';
120
+ severity?: 'info' | 'warning' | 'critical';
121
+ custom_message?: string;
122
+ dimension_column?: string;
65
123
  }
66
124
  export interface CreateCheckBody {
67
125
  name: string;
68
126
  connection_id: string;
69
127
  query: string;
70
- condition: {
71
- type: string;
72
- value: string;
73
- };
128
+ condition: ConditionBody;
74
129
  interval: string;
75
130
  alert_group_id?: string;
131
+ alert_level?: string;
132
+ /** Optional name->label mapping query for grid checks. */
133
+ label_query?: string;
134
+ }
135
+ /**
136
+ * PATCH /checks/:id is a partial update — only the fields present are changed,
137
+ * everything else is left untouched (the backend merges against the stored
138
+ * check). Send just what you want to change.
139
+ */
140
+ export interface PatchCheckBody {
141
+ name?: string;
142
+ query?: string;
143
+ condition?: ConditionBody;
144
+ enabled?: boolean;
145
+ check_type?: string;
146
+ alert_group_id?: string;
147
+ justification?: string;
148
+ alert_level?: string;
149
+ interval?: string;
150
+ schedule?: string;
151
+ alerts_enabled?: boolean;
152
+ grace_period_enabled?: boolean;
153
+ grace_period?: number;
154
+ grace_period_type?: string;
155
+ grace_period_window?: number;
156
+ label_query?: string;
157
+ }
158
+ /** A knowledge_item as returned by the knowledge service (subset we surface). */
159
+ export interface KnowledgeItem {
160
+ id: string;
161
+ kind: string;
162
+ subject: string;
163
+ confidence: string;
164
+ created_by: string;
165
+ valid_from: string;
166
+ valid_until?: string | null;
167
+ }
168
+ /** POST /knowledge/checks/:id/snooze */
169
+ export interface SnoozeCheckBody {
170
+ timezone?: string;
171
+ until?: string;
172
+ reason?: string;
173
+ }
174
+ /** POST /knowledge/checks/:id/quiet */
175
+ export interface QuietWindowBody {
176
+ timezone?: string;
177
+ reason?: string;
178
+ weekdays?: boolean;
179
+ before?: string;
180
+ after?: string;
181
+ clear?: boolean;
76
182
  }
77
183
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAA6C,MAAM,aAAa,CAAA;AAE/E,qBAAa,QAAS,SAAQ,KAAK;aAEf,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM;;gBAoCnB,SAAS,EAAE;;;uBAIJ,OAAO,EAAE;;;qBAIX,cAAc,EAAE;;;gBAIrB,SAAS,EAAE;;wBAEX,eAAe;eAChB,SAAS;;EAE/B;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;IAC1D,UAAU,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAA;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -46,7 +46,14 @@ export function createClient(config) {
46
46
  listConnections: () => request('GET', '/connections'),
47
47
  // Checks
48
48
  listChecks: () => request('GET', '/checks'),
49
+ getCheck: (id) => request('GET', `/checks/${id}`),
50
+ getCheckHistory: (id, hours) => request('GET', `/checks/${id}/history?hours=${hours}`),
51
+ runCheck: (id) => request('POST', '/checks/run', { check_id: id }),
49
52
  createCheck: (body) => request('POST', '/checks', body),
53
+ patchCheck: (id, body) => request('PATCH', `/checks/${id}`, body),
54
+ deleteCheck: (id) => request('DELETE', `/checks/${id}`),
55
+ snoozeCheck: (id, body) => request('POST', `/knowledge/checks/${id}/snooze`, body),
56
+ setCheckQuietWindow: (id, body) => request('POST', `/knowledge/checks/${id}/quiet`, body),
50
57
  };
51
58
  }
52
59
  //# sourceMappingURL=api.js.map
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/E,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEf;IADlB,YACkB,MAAc,EAC9B,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAA;QAHE,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,YAAY,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE;QAC/D,cAAc,EAAE,kBAAkB;KACnC,CAAA;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,mBAAmB,CAAC,GAAG,KAAK,CAAA;IACtC,CAAC;IAED,KAAK,UAAU,OAAO,CACpB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;YAC3C,MAAM;YACN,OAAO;YACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU,CAAA;YACxB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAA;gBACtD,IAAI,GAAG,CAAC,OAAO;oBAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAA;QAC7C,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAA;IACjC,CAAC;IAED,OAAO;QACL,OAAO;QACP,UAAU,EAAE,GAAG,EAAE,CACf,OAAO,CAA0B,KAAK,EAAE,cAAc,CAAC;QAEzD,gBAAgB;QAChB,iBAAiB,EAAE,GAAG,EAAE,CACtB,OAAO,CAA+B,KAAK,EAAE,gBAAgB,CAAC;QAEhE,cAAc;QACd,eAAe,EAAE,GAAG,EAAE,CACpB,OAAO,CAAoC,KAAK,EAAE,cAAc,CAAC;QAEnE,SAAS;QACT,UAAU,EAAE,GAAG,EAAE,CACf,OAAO,CAA0B,KAAK,EAAE,SAAS,CAAC;QAEpD,WAAW,EAAE,CAAC,IAAqB,EAAE,EAAE,CACrC,OAAO,CAAuB,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC;KACzD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Open a URL in the user's default browser, cross-platform. Best-effort. */
2
+ export declare function openBrowser(url: string): void;
3
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAY7C"}
@@ -0,0 +1,19 @@
1
+ import { spawn } from 'node:child_process';
2
+ /** Open a URL in the user's default browser, cross-platform. Best-effort. */
3
+ export function openBrowser(url) {
4
+ try {
5
+ if (process.platform === 'darwin') {
6
+ spawn('open', [url], { detached: true, stdio: 'ignore' }).unref();
7
+ }
8
+ else if (process.platform === 'win32') {
9
+ spawn('cmd', ['/c', 'start', '', url], { detached: true, stdio: 'ignore' }).unref();
10
+ }
11
+ else {
12
+ spawn('xdg-open', [url], { detached: true, stdio: 'ignore' }).unref();
13
+ }
14
+ }
15
+ catch {
16
+ // Browser couldn't be opened automatically; callers should print the URL.
17
+ }
18
+ }
19
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAE1C,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAClC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACnE,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACxC,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACrF,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAA;QACvE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;IAC5E,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAsEjD"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAcA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAoIjD"}
@@ -1,7 +1,15 @@
1
- import { input, number, select } from '@inquirer/prompts';
1
+ import { confirm, input, number, select } from '@inquirer/prompts';
2
2
  import { createClient } from '../../api.js';
3
3
  import { requireConfig, resolveOrgId, resolveWebUrl, usingEnvToken } from '../../config.js';
4
4
  import { INTERVAL_CHOICES } from '../../intervals.js';
5
+ const CELL_COMPARISONS = [
6
+ { name: 'Greater than', value: 'greater_than' },
7
+ { name: 'Less than', value: 'less_than' },
8
+ { name: 'Greater than or equal', value: 'greater_or_equal' },
9
+ { name: 'Less than or equal', value: 'less_or_equal' },
10
+ { name: 'Equal to', value: 'equals' },
11
+ { name: 'Not equal to', value: 'not_equals' },
12
+ ];
5
13
  export async function createCheck() {
6
14
  const config = requireConfig();
7
15
  if (!resolveOrgId(config) && !usingEnvToken()) {
@@ -28,23 +36,79 @@ export async function createCheck() {
28
36
  message: 'Database connection:',
29
37
  choices: connections.map((c) => ({ name: `${c.name} (${c.type})`, value: c.id })),
30
38
  });
31
- const query = await input({
32
- message: 'SQL query (must return a single numeric value):',
33
- validate: (v) => v.trim().length > 0 || 'Query is required',
34
- });
35
- const conditionType = await select({
36
- message: 'Condition type:',
39
+ const mode = await select({
40
+ message: 'Evaluation:',
37
41
  choices: [
38
- { name: 'Greater than', value: 'greater_than' },
39
- { name: 'Less than', value: 'less_than' },
40
- { name: 'Equal to', value: 'equals' },
41
- { name: 'Not equal to', value: 'not_equals' },
42
+ { name: 'Single value (query returns one number)', value: 'single' },
43
+ { name: 'Multi-dimensional / grid (query returns name + value rows)', value: 'grid' },
42
44
  ],
43
45
  });
44
- const threshold = await number({
45
- message: 'Threshold value:',
46
- validate: (v) => v !== undefined || 'Required',
46
+ const query = await input({
47
+ message: mode === 'grid'
48
+ ? 'SQL query (must return `name` and `value` columns, one row per dimension):'
49
+ : 'SQL query (must return a single numeric value):',
50
+ validate: (v) => v.trim().length > 0 || 'Query is required',
47
51
  });
52
+ let condition;
53
+ let labelQuery;
54
+ if (mode === 'grid') {
55
+ const evaluationType = await select({
56
+ message: 'Grid evaluation type:',
57
+ choices: [
58
+ { name: 'Any cell meets a condition', value: 'any_cell' },
59
+ { name: 'All cells meet a condition', value: 'all_cells' },
60
+ { name: 'A dimension goes missing', value: 'dimension_missing' },
61
+ { name: 'A new dimension appears', value: 'dimension_added' },
62
+ ],
63
+ });
64
+ condition = { evaluation_type: evaluationType };
65
+ if (evaluationType === 'any_cell' || evaluationType === 'all_cells') {
66
+ const comparison = await select({
67
+ message: 'Per-cell comparison:',
68
+ choices: CELL_COMPARISONS,
69
+ });
70
+ const threshold = await number({
71
+ message: 'Threshold value:',
72
+ validate: (v) => v !== undefined || 'Required',
73
+ });
74
+ condition.type = comparison;
75
+ condition.value = String(threshold);
76
+ }
77
+ condition.severity = await select({
78
+ message: 'Cell severity when matched:',
79
+ choices: [
80
+ { name: 'Warning', value: 'warning' },
81
+ { name: 'Critical', value: 'critical' },
82
+ { name: 'Info', value: 'info' },
83
+ ],
84
+ });
85
+ const wantsLabels = await confirm({
86
+ message: 'Add a label query (map dimension keys to display names)?',
87
+ default: false,
88
+ });
89
+ if (wantsLabels) {
90
+ labelQuery = await input({
91
+ message: 'Label query (must return `name` and `label` columns):',
92
+ validate: (v) => v.trim().length > 0 || 'Label query is required',
93
+ });
94
+ }
95
+ }
96
+ else {
97
+ const conditionType = await select({
98
+ message: 'Condition type:',
99
+ choices: [
100
+ { name: 'Greater than', value: 'greater_than' },
101
+ { name: 'Less than', value: 'less_than' },
102
+ { name: 'Equal to', value: 'equals' },
103
+ { name: 'Not equal to', value: 'not_equals' },
104
+ ],
105
+ });
106
+ const threshold = await number({
107
+ message: 'Threshold value:',
108
+ validate: (v) => v !== undefined || 'Required',
109
+ });
110
+ condition = { type: conditionType, value: String(threshold) };
111
+ }
48
112
  const interval = await select({
49
113
  message: 'Check interval:',
50
114
  choices: INTERVAL_CHOICES,
@@ -54,8 +118,9 @@ export async function createCheck() {
54
118
  name,
55
119
  connection_id: connectionId,
56
120
  query,
57
- condition: { type: conditionType, value: String(threshold) },
121
+ condition,
58
122
  interval,
123
+ label_query: labelQuery,
59
124
  });
60
125
  console.log(`\nCheck created: ${resp.check.ID}`);
61
126
  console.log(`View at: ${resolveWebUrl()}/checks/${resp.check.ID}`);
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,uCAAuC;IACvC,IAAI,WAAyD,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAA;QAC3C,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAA;QACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;IAEpD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;QAChC,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAClF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;QACxB,OAAO,EAAE,iDAAiD;QAC1D,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB;KACpE,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;QACjC,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;YAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;YACzC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;YACrC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;SAC9C;KACF,CAAC,CAAA;IAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;QAC7B,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU;KACnE,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACpC,IAAI;YACJ,aAAa,EAAE,YAAY;YAC3B,KAAK;YACL,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE;YAC5D,QAAQ;SACT,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAiB,YAAY,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,gBAAgB,GAAG;IACvB,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;IAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IACzC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,kBAAkB,EAAE;IAC5D,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,eAAe,EAAE;IACtD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;CAC9C,CAAA;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,uCAAuC;IACvC,IAAI,WAAyD,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,CAAA;QAC3C,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAA;QACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAA;IAEpD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC;QAChC,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;KAClF,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;QACxB,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,yCAAyC,EAAE,KAAK,EAAE,QAAQ,EAAE;YACpE,EAAE,IAAI,EAAE,4DAA4D,EAAE,KAAK,EAAE,MAAM,EAAE;SACtF;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;QACxB,OAAO,EACL,IAAI,KAAK,MAAM;YACb,CAAC,CAAC,4EAA4E;YAC9E,CAAC,CAAC,iDAAiD;QACvD,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB;KACpE,CAAC,CAAA;IAEF,IAAI,SAAwB,CAAA;IAC5B,IAAI,UAA8B,CAAA;IAElC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC;YAClC,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,UAAU,EAAE;gBACzD,EAAE,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,WAAW,EAAE;gBAC1D,EAAE,IAAI,EAAE,0BAA0B,EAAE,KAAK,EAAE,mBAAmB,EAAE;gBAChE,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,iBAAiB,EAAE;aAC9D;SACF,CAAC,CAAA;QAEF,SAAS,GAAG,EAAE,eAAe,EAAE,cAAkD,EAAE,CAAA;QAEnF,IAAI,cAAc,KAAK,UAAU,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC;gBAC9B,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,gBAAgB;aAC1B,CAAC,CAAA;YACF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;gBAC7B,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU;aACnE,CAAC,CAAA;YACF,SAAS,CAAC,IAAI,GAAG,UAAU,CAAA;YAC3B,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;QACrC,CAAC;QAED,SAAS,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC;YAChC,OAAO,EAAE,6BAA6B;YACtC,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;gBACrC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;gBACvC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;aAChC;SACF,CAAC,CAAA;QAEF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC;YAChC,OAAO,EAAE,0DAA0D;YACnE,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,KAAK,CAAC;gBACvB,OAAO,EAAE,uDAAuD;gBAChE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,yBAAyB;aAC1E,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;YACjC,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE;gBAC/C,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;gBACzC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACrC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE;aAC9C;SACF,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;YAC7B,OAAO,EAAE,kBAAkB;YAC3B,QAAQ,EAAE,CAAC,CAAqB,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,UAAU;SACnE,CAAC,CAAA;QACF,SAAS,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;IAC/D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;YACpC,IAAI;YACJ,aAAa,EAAE,YAAY;YAC3B,KAAK;YACL,SAAS;YACT,QAAQ;YACR,WAAW,EAAE,UAAU;SACxB,CAAC,CAAA;QACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function deleteCheck(nameOrId: string, opts?: {
2
+ yes?: boolean;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/delete.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -0,0 +1,29 @@
1
+ import { confirm } from '@inquirer/prompts';
2
+ import { createClient } from '../../api.js';
3
+ import { requireConfig, requireOrg } from '../../config.js';
4
+ import { resolveCheckId } from './resolve.js';
5
+ export async function deleteCheck(nameOrId, opts = {}) {
6
+ const config = requireConfig();
7
+ requireOrg(config);
8
+ const client = createClient(config);
9
+ const id = await resolveCheckId(client, nameOrId);
10
+ if (!opts.yes) {
11
+ const ok = await confirm({
12
+ message: `Delete check ${id}? This cannot be undone.`,
13
+ default: false,
14
+ });
15
+ if (!ok) {
16
+ console.log('Aborted.');
17
+ return;
18
+ }
19
+ }
20
+ try {
21
+ await client.deleteCheck(id);
22
+ console.log(`Deleted check ${id}`);
23
+ }
24
+ catch (err) {
25
+ console.error('Failed to delete check:', err.message);
26
+ process.exit(1);
27
+ }
28
+ }
29
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/checks/delete.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,OAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEjD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,gBAAgB,EAAE,0BAA0B;YACrD,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC5B,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getCheck(id: string, opts?: {
2
+ format?: string;
3
+ }): Promise<void>;
4
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/get.ts"],"names":[],"mappings":"AAKA,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Bf"}
@@ -0,0 +1,34 @@
1
+ import { createClient } from '../../api.js';
2
+ import { requireConfig, requireOrg } from '../../config.js';
3
+ import { formatInterval } from '../../intervals.js';
4
+ import { printJson, resolveFormat } from '../../output.js';
5
+ export async function getCheck(id, opts = {}) {
6
+ const format = resolveFormat(opts.format);
7
+ const config = requireConfig();
8
+ requireOrg(config);
9
+ const client = createClient(config);
10
+ let data;
11
+ try {
12
+ data = await client.getCheck(id);
13
+ }
14
+ catch (err) {
15
+ console.error('Failed to fetch check:', err.message);
16
+ process.exit(1);
17
+ }
18
+ const c = data.check;
19
+ if (format === 'json') {
20
+ printJson(c);
21
+ return;
22
+ }
23
+ console.log(`Name: ${c.Name ?? '—'}`);
24
+ console.log(`ID: ${c.ID}`);
25
+ console.log(`Status: ${c.LastStatus?.Valid ? c.LastStatus.CheckStatus : '—'}`);
26
+ console.log(`Interval: ${c.Interval?.Valid ? formatInterval(c.Interval.CheckInterval) : '—'}`);
27
+ console.log(`Type: ${c.CheckType?.Valid ? c.CheckType.String : 'sql'}`);
28
+ console.log(`Connection: ${c.ConnectionID}`);
29
+ if (c.Query) {
30
+ console.log('Query:');
31
+ console.log(` ${c.Query.replace(/\n/g, '\n ')}`);
32
+ }
33
+ }
34
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../src/commands/checks/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,EAAU,EACV,OAA4B,EAAE;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,IAAiD,CAAA;IACrD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;IACpB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,CAAC,CAAC,CAAA;QACZ,OAAM;IACR,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;IAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IACjG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;IAC9E,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,YAAY,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;IACpD,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function checkHistory(id: string, opts?: {
2
+ hours?: string;
3
+ format?: string;
4
+ }): Promise<void>;
5
+ //# sourceMappingURL=history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/history.ts"],"names":[],"mappings":"AAIA,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,OAAO,CAAC,IAAI,CAAC,CAsCf"}
@@ -0,0 +1,39 @@
1
+ import { createClient } from '../../api.js';
2
+ import { requireConfig, requireOrg } from '../../config.js';
3
+ import { printJson, resolveFormat } from '../../output.js';
4
+ export async function checkHistory(id, opts = {}) {
5
+ const format = resolveFormat(opts.format);
6
+ const hours = opts.hours ? Number(opts.hours) : 24;
7
+ if (!Number.isFinite(hours) || hours <= 0) {
8
+ console.error('--hours must be a positive number');
9
+ process.exit(1);
10
+ }
11
+ const config = requireConfig();
12
+ requireOrg(config);
13
+ const client = createClient(config);
14
+ let data;
15
+ try {
16
+ data = await client.getCheckHistory(id, hours);
17
+ }
18
+ catch (err) {
19
+ console.error('Failed to fetch history:', err.message);
20
+ process.exit(1);
21
+ }
22
+ const results = data.results;
23
+ if (format === 'json') {
24
+ printJson(results);
25
+ return;
26
+ }
27
+ if (results.length === 0) {
28
+ console.log(`No runs in the last ${hours}h.`);
29
+ return;
30
+ }
31
+ const header = 'CHECKED AT STATUS';
32
+ console.log(header);
33
+ console.log('─'.repeat(header.length));
34
+ for (const r of results) {
35
+ const when = new Date(r.CheckedAt).toLocaleString();
36
+ console.log(`${when.padEnd(22)} ${r.Status ?? '—'}`);
37
+ }
38
+ }
39
+ //# sourceMappingURL=history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../../src/commands/checks/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAU,EACV,OAA4C,EAAE;IAE9C,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAClD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,IAAI,IAAwD,CAAA;IAC5D,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC5B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,OAAO,CAAC,CAAA;QAClB,OAAM;IACR,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,IAAI,CAAC,CAAA;QAC7C,OAAM;IACR,CAAC;IAED,MAAM,MAAM,GAAG,+BAA+B,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAA;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;AACH,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare function listChecks(): Promise<void>;
1
+ export declare function listChecks(opts?: {
2
+ format?: string;
3
+ }): Promise<void>;
2
4
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/list.ts"],"names":[],"mappings":"AAIA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAgChD"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/list.ts"],"names":[],"mappings":"AAKA,wBAAsB,UAAU,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAmC9E"}
@@ -1,12 +1,11 @@
1
1
  import { createClient } from '../../api.js';
2
- import { requireConfig, resolveOrgId, usingEnvToken } from '../../config.js';
2
+ import { requireConfig, requireOrg } from '../../config.js';
3
3
  import { formatInterval } from '../../intervals.js';
4
- export async function listChecks() {
4
+ import { printJson, resolveFormat } from '../../output.js';
5
+ export async function listChecks(opts = {}) {
6
+ const format = resolveFormat(opts.format);
5
7
  const config = requireConfig();
6
- if (!resolveOrgId(config) && !usingEnvToken()) {
7
- console.error('No organization linked. Run: alertee link (or set ALERTEE_ORG)');
8
- process.exit(1);
9
- }
8
+ requireOrg(config);
10
9
  const client = createClient(config);
11
10
  let data;
12
11
  try {
@@ -17,19 +16,23 @@ export async function listChecks() {
17
16
  process.exit(1);
18
17
  }
19
18
  const checks = data.checks;
19
+ if (format === 'json') {
20
+ printJson(checks);
21
+ return;
22
+ }
20
23
  if (checks.length === 0) {
21
24
  console.log('No checks found.');
22
25
  return;
23
26
  }
24
27
  const nameWidth = Math.max(4, ...checks.map((c) => (c.Name ?? '').length));
25
- const header = `${'NAME'.padEnd(nameWidth)} STATUS INTERVAL`;
28
+ const header = `${'NAME'.padEnd(nameWidth)} ${'STATUS'.padEnd(10)} ${'INTERVAL'.padEnd(8)} ID`;
26
29
  console.log(header);
27
30
  console.log('─'.repeat(header.length));
28
31
  for (const c of checks) {
29
32
  const name = c.Name ?? '(unnamed)';
30
33
  const status = c.LastStatus?.Valid ? c.LastStatus.CheckStatus : '—';
31
34
  const interval = c.Interval?.Valid ? formatInterval(c.Interval.CheckInterval) : '—';
32
- console.log(`${name.padEnd(nameWidth)} ${status.padEnd(12)} ${interval}`);
35
+ console.log(`${name.padEnd(nameWidth)} ${status.padEnd(10)} ${interval.padEnd(8)} ${c.ID}`);
33
36
  }
34
37
  }
35
38
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/checks/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,IAAmD,CAAA;IACvD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAA;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,WAAW,CAAA;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAA;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/checks/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE1D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAA4B,EAAE;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAElB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,IAAmD,CAAA;IACvD,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC1B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,SAAS,CAAC,MAAM,CAAC,CAAA;QACjB,OAAM;IACR,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;QAC/B,OAAM;IACR,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;IACjG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,WAAW,CAAA;QAClC,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAA;QACnE,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAChG,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function openCheck(id: string): void;
2
+ //# sourceMappingURL=open.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/open.ts"],"names":[],"mappings":"AAGA,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAI1C"}
@@ -0,0 +1,8 @@
1
+ import { openBrowser } from '../../browser.js';
2
+ import { resolveWebUrl } from '../../config.js';
3
+ export function openCheck(id) {
4
+ const url = `${resolveWebUrl()}/checks/${id}`;
5
+ console.log(`Opening ${url}`);
6
+ openBrowser(url);
7
+ }
8
+ //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/checks/open.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,UAAU,SAAS,CAAC,EAAU;IAClC,MAAM,GAAG,GAAG,GAAG,aAAa,EAAE,WAAW,EAAE,EAAE,CAAA;IAC7C,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;IAC7B,WAAW,CAAC,GAAG,CAAC,CAAA;AAClB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export declare function setQuietWindow(nameOrId: string, opts?: {
2
+ timezone?: string;
3
+ before?: string;
4
+ after?: string;
5
+ weekdays?: boolean;
6
+ reason?: string;
7
+ clear?: boolean;
8
+ format?: string;
9
+ }): Promise<void>;
10
+ //# sourceMappingURL=quiet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quiet.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/quiet.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;CACX,GACL,OAAO,CAAC,IAAI,CAAC,CAwCf"}