@alertee/cli 0.3.1 → 0.5.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/api.d.ts +180 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +25 -2
- package/dist/api.js.map +1 -1
- package/dist/commands/alert-groups/add-email-group.d.ts +9 -0
- package/dist/commands/alert-groups/add-email-group.d.ts.map +1 -0
- package/dist/commands/alert-groups/add-email-group.js +33 -0
- package/dist/commands/alert-groups/add-email-group.js.map +1 -0
- package/dist/commands/alert-groups/add-webhook.d.ts +8 -0
- package/dist/commands/alert-groups/add-webhook.d.ts.map +1 -0
- package/dist/commands/alert-groups/add-webhook.js +64 -0
- package/dist/commands/alert-groups/add-webhook.js.map +1 -0
- package/dist/commands/alert-groups/create.d.ts +11 -0
- package/dist/commands/alert-groups/create.d.ts.map +1 -0
- package/dist/commands/alert-groups/create.js +31 -0
- package/dist/commands/alert-groups/create.js.map +1 -0
- package/dist/commands/alert-groups/delete.d.ts +5 -0
- package/dist/commands/alert-groups/delete.d.ts.map +1 -0
- package/dist/commands/alert-groups/delete.js +35 -0
- package/dist/commands/alert-groups/delete.js.map +1 -0
- package/dist/commands/alert-groups/list.d.ts +5 -0
- package/dist/commands/alert-groups/list.d.ts.map +1 -0
- package/dist/commands/alert-groups/list.js +35 -0
- package/dist/commands/alert-groups/list.js.map +1 -0
- package/dist/commands/alert-groups/recipients.d.ts +5 -0
- package/dist/commands/alert-groups/recipients.d.ts.map +1 -0
- package/dist/commands/alert-groups/recipients.js +62 -0
- package/dist/commands/alert-groups/recipients.js.map +1 -0
- package/dist/commands/alert-groups/remove-recipient.d.ts +8 -0
- package/dist/commands/alert-groups/remove-recipient.d.ts.map +1 -0
- package/dist/commands/alert-groups/remove-recipient.js +33 -0
- package/dist/commands/alert-groups/remove-recipient.js.map +1 -0
- package/dist/commands/alert-groups/resolve.d.ts +6 -0
- package/dist/commands/alert-groups/resolve.d.ts.map +1 -0
- package/dist/commands/alert-groups/resolve.js +27 -0
- package/dist/commands/alert-groups/resolve.js.map +1 -0
- package/dist/commands/alert-groups/test.d.ts +3 -0
- package/dist/commands/alert-groups/test.d.ts.map +1 -0
- package/dist/commands/alert-groups/test.js +24 -0
- package/dist/commands/alert-groups/test.js.map +1 -0
- package/dist/commands/alert-groups/update.d.ts +12 -0
- package/dist/commands/alert-groups/update.d.ts.map +1 -0
- package/dist/commands/alert-groups/update.js +46 -0
- package/dist/commands/alert-groups/update.js.map +1 -0
- package/dist/commands/checks/create.d.ts +25 -1
- package/dist/commands/checks/create.d.ts.map +1 -1
- package/dist/commands/checks/create.js +141 -88
- package/dist/commands/checks/create.js.map +1 -1
- package/dist/commands/checks/update.d.ts +3 -2
- package/dist/commands/checks/update.d.ts.map +1 -1
- package/dist/commands/checks/update.js +79 -19
- package/dist/commands/checks/update.js.map +1 -1
- package/dist/commands/connections/create.d.ts +14 -0
- package/dist/commands/connections/create.d.ts.map +1 -0
- package/dist/commands/connections/create.js +52 -0
- package/dist/commands/connections/create.js.map +1 -0
- package/dist/commands/connections/delete.d.ts +5 -0
- package/dist/commands/connections/delete.d.ts.map +1 -0
- package/dist/commands/connections/delete.js +35 -0
- package/dist/commands/connections/delete.js.map +1 -0
- package/dist/commands/connections/resolve.d.ts +9 -0
- package/dist/commands/connections/resolve.d.ts.map +1 -0
- package/dist/commands/connections/resolve.js +30 -0
- package/dist/commands/connections/resolve.js.map +1 -0
- package/dist/commands/connections/test.d.ts +3 -0
- package/dist/commands/connections/test.d.ts.map +1 -0
- package/dist/commands/connections/test.js +28 -0
- package/dist/commands/connections/test.js.map +1 -0
- package/dist/commands/email-groups/add.d.ts +3 -0
- package/dist/commands/email-groups/add.d.ts.map +1 -0
- package/dist/commands/email-groups/add.js +23 -0
- package/dist/commands/email-groups/add.js.map +1 -0
- package/dist/commands/email-groups/create.d.ts +8 -0
- package/dist/commands/email-groups/create.d.ts.map +1 -0
- package/dist/commands/email-groups/create.js +28 -0
- package/dist/commands/email-groups/create.js.map +1 -0
- package/dist/commands/email-groups/delete.d.ts +5 -0
- package/dist/commands/email-groups/delete.d.ts.map +1 -0
- package/dist/commands/email-groups/delete.js +35 -0
- package/dist/commands/email-groups/delete.js.map +1 -0
- package/dist/commands/email-groups/list.d.ts +5 -0
- package/dist/commands/email-groups/list.d.ts.map +1 -0
- package/dist/commands/email-groups/list.js +36 -0
- package/dist/commands/email-groups/list.js.map +1 -0
- package/dist/commands/email-groups/members.d.ts +5 -0
- package/dist/commands/email-groups/members.d.ts.map +1 -0
- package/dist/commands/email-groups/members.js +42 -0
- package/dist/commands/email-groups/members.js.map +1 -0
- package/dist/commands/email-groups/remove.d.ts +3 -0
- package/dist/commands/email-groups/remove.d.ts.map +1 -0
- package/dist/commands/email-groups/remove.js +19 -0
- package/dist/commands/email-groups/remove.js.map +1 -0
- package/dist/commands/email-groups/resolve.d.ts +6 -0
- package/dist/commands/email-groups/resolve.d.ts.map +1 -0
- package/dist/commands/email-groups/resolve.js +27 -0
- package/dist/commands/email-groups/resolve.js.map +1 -0
- package/dist/commands/org/create.d.ts +12 -0
- package/dist/commands/org/create.d.ts.map +1 -0
- package/dist/commands/org/create.js +33 -0
- package/dist/commands/org/create.js.map +1 -0
- package/dist/commands/org/list.d.ts +5 -0
- package/dist/commands/org/list.d.ts.map +1 -0
- package/dist/commands/org/list.js +35 -0
- package/dist/commands/org/list.js.map +1 -0
- package/dist/index.js +159 -3
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +343 -2
- package/dist/mcp.js.map +1 -1
- package/dist/prompts.d.ts +15 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +25 -0
- package/dist/prompts.js.map +1 -0
- package/dist/uuid.d.ts +13 -0
- package/dist/uuid.d.ts.map +1 -0
- package/dist/uuid.js +13 -0
- package/dist/uuid.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/checks/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,9 @@ export interface UpdateCheckOptions {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Edit a check's common fields via PATCH (partial update — only the flags you
|
|
12
|
-
* pass change).
|
|
13
|
-
*
|
|
12
|
+
* pass change). With no flags at a terminal it drops into an interactive editor
|
|
13
|
+
* for the same fields. Condition editing is left to the web UI / MCP, where the
|
|
14
|
+
* full condition object can be expressed.
|
|
14
15
|
*/
|
|
15
16
|
export declare function updateCheck(nameOrId: string, opts: UpdateCheckOptions): Promise<void>;
|
|
16
17
|
//# sourceMappingURL=update.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAID;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,IAAI,CAAC,CAoCf"}
|
|
@@ -1,37 +1,35 @@
|
|
|
1
|
+
import { checkbox, input, select } from '@inquirer/prompts';
|
|
1
2
|
import { createClient } from '../../api.js';
|
|
2
3
|
import { requireConfig, requireOrg, resolveWebUrl } from '../../config.js';
|
|
4
|
+
import { INTERVAL_CHOICES } from '../../intervals.js';
|
|
5
|
+
import { isInteractive } from '../../prompts.js';
|
|
3
6
|
import { resolveCheckId } from './resolve.js';
|
|
7
|
+
const ALERT_LEVELS = ['info', 'warning', 'error', 'critical'];
|
|
4
8
|
/**
|
|
5
9
|
* Edit a check's common fields via PATCH (partial update — only the flags you
|
|
6
|
-
* pass change).
|
|
7
|
-
*
|
|
10
|
+
* pass change). With no flags at a terminal it drops into an interactive editor
|
|
11
|
+
* for the same fields. Condition editing is left to the web UI / MCP, where the
|
|
12
|
+
* full condition object can be expressed.
|
|
8
13
|
*/
|
|
9
14
|
export async function updateCheck(nameOrId, opts) {
|
|
10
15
|
const config = requireConfig();
|
|
11
16
|
requireOrg(config);
|
|
12
17
|
const client = createClient(config);
|
|
13
|
-
const body = {};
|
|
14
|
-
if (opts.name !== undefined)
|
|
15
|
-
body.name = opts.name;
|
|
16
|
-
if (opts.query !== undefined)
|
|
17
|
-
body.query = opts.query;
|
|
18
|
-
if (opts.labelQuery !== undefined)
|
|
19
|
-
body.label_query = opts.labelQuery;
|
|
20
|
-
if (opts.interval !== undefined)
|
|
21
|
-
body.interval = opts.interval;
|
|
22
|
-
if (opts.alertLevel !== undefined)
|
|
23
|
-
body.alert_level = opts.alertLevel;
|
|
24
|
-
if (opts.pause)
|
|
25
|
-
body.enabled = false;
|
|
26
|
-
if (opts.resume)
|
|
27
|
-
body.enabled = true;
|
|
28
18
|
if (opts.pause && opts.resume) {
|
|
29
19
|
console.error('Pass only one of --pause or --resume.');
|
|
30
20
|
process.exit(1);
|
|
31
21
|
}
|
|
22
|
+
let body = buildBody(opts);
|
|
32
23
|
if (Object.keys(body).length === 0) {
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
if (!isInteractive()) {
|
|
25
|
+
console.error('Nothing to update. Pass at least one of --name, --query, --label-query, --interval, --alert-level, --pause, --resume.');
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
body = await promptForChanges();
|
|
29
|
+
if (Object.keys(body).length === 0) {
|
|
30
|
+
console.log('Nothing selected. Aborted.');
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
35
33
|
}
|
|
36
34
|
const id = await resolveCheckId(client, nameOrId);
|
|
37
35
|
try {
|
|
@@ -44,4 +42,66 @@ export async function updateCheck(nameOrId, opts) {
|
|
|
44
42
|
process.exit(1);
|
|
45
43
|
}
|
|
46
44
|
}
|
|
45
|
+
function buildBody(opts) {
|
|
46
|
+
const body = {};
|
|
47
|
+
if (opts.name !== undefined)
|
|
48
|
+
body.name = opts.name;
|
|
49
|
+
if (opts.query !== undefined)
|
|
50
|
+
body.query = opts.query;
|
|
51
|
+
if (opts.labelQuery !== undefined)
|
|
52
|
+
body.label_query = opts.labelQuery;
|
|
53
|
+
if (opts.interval !== undefined)
|
|
54
|
+
body.interval = opts.interval;
|
|
55
|
+
if (opts.alertLevel !== undefined)
|
|
56
|
+
body.alert_level = opts.alertLevel;
|
|
57
|
+
if (opts.pause)
|
|
58
|
+
body.enabled = false;
|
|
59
|
+
if (opts.resume)
|
|
60
|
+
body.enabled = true;
|
|
61
|
+
return body;
|
|
62
|
+
}
|
|
63
|
+
async function promptForChanges() {
|
|
64
|
+
const fields = await checkbox({
|
|
65
|
+
message: 'What do you want to change?',
|
|
66
|
+
choices: [
|
|
67
|
+
{ name: 'Name', value: 'name' },
|
|
68
|
+
{ name: 'Query', value: 'query' },
|
|
69
|
+
{ name: 'Label query', value: 'labelQuery' },
|
|
70
|
+
{ name: 'Interval', value: 'interval' },
|
|
71
|
+
{ name: 'Alert level', value: 'alertLevel' },
|
|
72
|
+
{ name: 'Enabled / paused', value: 'enabled' },
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
const body = {};
|
|
76
|
+
for (const field of fields) {
|
|
77
|
+
if (field === 'name') {
|
|
78
|
+
body.name = await input({ message: 'New name:', validate: (v) => v.trim().length > 0 || 'Required' });
|
|
79
|
+
}
|
|
80
|
+
else if (field === 'query') {
|
|
81
|
+
body.query = await input({ message: 'New SQL query:', validate: (v) => v.trim().length > 0 || 'Required' });
|
|
82
|
+
}
|
|
83
|
+
else if (field === 'labelQuery') {
|
|
84
|
+
body.label_query = await input({ message: 'New label query (name -> label):' });
|
|
85
|
+
}
|
|
86
|
+
else if (field === 'interval') {
|
|
87
|
+
body.interval = await select({ message: 'New interval:', choices: INTERVAL_CHOICES });
|
|
88
|
+
}
|
|
89
|
+
else if (field === 'alertLevel') {
|
|
90
|
+
body.alert_level = await select({
|
|
91
|
+
message: 'New alert level:',
|
|
92
|
+
choices: ALERT_LEVELS.map((l) => ({ name: l, value: l })),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else if (field === 'enabled') {
|
|
96
|
+
body.enabled = await select({
|
|
97
|
+
message: 'State:',
|
|
98
|
+
choices: [
|
|
99
|
+
{ name: 'Enabled', value: true },
|
|
100
|
+
{ name: 'Paused', value: false },
|
|
101
|
+
],
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return body;
|
|
106
|
+
}
|
|
47
107
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAY7C
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/checks/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface CreateConnectionOptions {
|
|
2
|
+
name?: string;
|
|
3
|
+
type?: string;
|
|
4
|
+
/** The database connection URI / connection string. */
|
|
5
|
+
uri?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Create a database connection in the linked organization. The URI is sent to
|
|
9
|
+
* the API over HTTPS and encrypted server-side with the org key — the CLI never
|
|
10
|
+
* stores it. The backend tests the connection before saving, so a bad URI or
|
|
11
|
+
* unreachable host fails here rather than silently saving.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createConnection(opts?: CreateConnectionOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/create.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqDxF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { input, password, select } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { requireValue } from '../../prompts.js';
|
|
5
|
+
const TYPE_CHOICES = [
|
|
6
|
+
{ name: 'PostgreSQL', value: 'postgres' },
|
|
7
|
+
{ name: 'ClickHouse', value: 'clickhouse' },
|
|
8
|
+
];
|
|
9
|
+
const VALID_TYPES = ['postgres', 'postgresql', 'clickhouse'];
|
|
10
|
+
/**
|
|
11
|
+
* Create a database connection in the linked organization. The URI is sent to
|
|
12
|
+
* the API over HTTPS and encrypted server-side with the org key — the CLI never
|
|
13
|
+
* stores it. The backend tests the connection before saving, so a bad URI or
|
|
14
|
+
* unreachable host fails here rather than silently saving.
|
|
15
|
+
*/
|
|
16
|
+
export async function createConnection(opts = {}) {
|
|
17
|
+
const config = requireConfig();
|
|
18
|
+
requireOrg(config);
|
|
19
|
+
const client = createClient(config);
|
|
20
|
+
const name = await requireValue(opts.name, () => input({
|
|
21
|
+
message: 'Connection name:',
|
|
22
|
+
validate: (v) => v.trim().length > 0 || 'Required',
|
|
23
|
+
}), 'Connection name required. Pass --name.');
|
|
24
|
+
let type = await requireValue(opts.type, () => select({ message: 'Database type:', choices: TYPE_CHOICES }), 'Database type required. Pass --type postgres|clickhouse.');
|
|
25
|
+
type = type.toLowerCase();
|
|
26
|
+
if (!VALID_TYPES.includes(type)) {
|
|
27
|
+
console.error(`Unsupported --type "${type}". Use postgres or clickhouse.`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
const connectionString = await requireValue(opts.uri, () => password({
|
|
31
|
+
message: 'Connection URI (e.g. postgres://user:pass@host:5432/db — hidden):',
|
|
32
|
+
mask: true,
|
|
33
|
+
validate: (v) => v.trim().length > 0 || 'Required',
|
|
34
|
+
}), 'Connection URI required. Pass --uri "postgres://user:pass@host:5432/db".');
|
|
35
|
+
console.log('Testing connection…');
|
|
36
|
+
let conn;
|
|
37
|
+
try {
|
|
38
|
+
const resp = await client.upsertConnection({
|
|
39
|
+
name,
|
|
40
|
+
type,
|
|
41
|
+
connection_string: connectionString,
|
|
42
|
+
});
|
|
43
|
+
conn = resp.connection;
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.error('Failed to create connection:', err.message);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
console.log(`Connection "${conn.name}" created (${conn.id}).`);
|
|
50
|
+
console.log('Next: alertee checks create');
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/connections/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE;IACzC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;CAC5C,CAAA;AACD,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAS5D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgC,EAAE;IACvE,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,MAAM,YAAY,CAC7B,IAAI,CAAC,IAAI,EACT,GAAG,EAAE,CACH,KAAK,CAAC;QACJ,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU;KAC3D,CAAC,EACJ,wCAAwC,CACzC,CAAA;IAED,IAAI,IAAI,GAAG,MAAM,YAAY,CAC3B,IAAI,CAAC,IAAI,EACT,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAClE,0DAA0D,CAC3D,CAAA;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,uBAAuB,IAAI,gCAAgC,CAAC,CAAA;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,YAAY,CACzC,IAAI,CAAC,GAAG,EACR,GAAG,EAAE,CACH,QAAQ,CAAC;QACP,OAAO,EAAE,mEAAmE;QAC5E,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU;KAC3D,CAAC,EACJ,0EAA0E,CAC3E,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;IAClC,IAAI,IAAuE,CAAA;IAC3E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACzC,IAAI;YACJ,IAAI;YACJ,iBAAiB,EAAE,gBAAgB;SACpC,CAAC,CAAA;QACF,IAAI,GAAG,IAAI,CAAC,UAAU,CAAA;IACxB,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,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAC9D,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/delete.ts"],"names":[],"mappings":"AAMA,kFAAkF;AAClF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { isInteractive } from '../../prompts.js';
|
|
5
|
+
import { resolveConnectionId } from './resolve.js';
|
|
6
|
+
/** Delete a connection (by name or ID). Prompts for confirmation unless --yes. */
|
|
7
|
+
export async function deleteConnection(nameOrId, opts = {}) {
|
|
8
|
+
const config = requireConfig();
|
|
9
|
+
requireOrg(config);
|
|
10
|
+
const client = createClient(config);
|
|
11
|
+
const id = await resolveConnectionId(client, nameOrId);
|
|
12
|
+
if (!opts.yes) {
|
|
13
|
+
if (!isInteractive()) {
|
|
14
|
+
console.error('Refusing to delete without confirmation. Pass --yes.');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const ok = await confirm({
|
|
18
|
+
message: `Delete connection "${nameOrId}"? Checks using it will stop working.`,
|
|
19
|
+
default: false,
|
|
20
|
+
});
|
|
21
|
+
if (!ok) {
|
|
22
|
+
console.log('Aborted.');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
await client.deleteConnection(id);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error('Failed to delete connection:', err.message);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
console.log(`Deleted connection ${id}.`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/connections/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,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,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;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,sBAAsB,QAAQ,uCAAuC;YAC9E,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,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACnC,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;IACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;AAC1C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { createClient } from '../../api.js';
|
|
2
|
+
type Client = ReturnType<typeof createClient>;
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a connection argument that may be either a UUID or a
|
|
5
|
+
* (case-insensitive) name. Exits with a helpful message on no/ambiguous match.
|
|
6
|
+
*/
|
|
7
|
+
export declare function resolveConnectionId(client: Client, nameOrId: string): Promise<string>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAEhD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAK7C;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
2
|
+
/**
|
|
3
|
+
* Resolve a connection argument that may be either a UUID or a
|
|
4
|
+
* (case-insensitive) name. Exits with a helpful message on no/ambiguous match.
|
|
5
|
+
*/
|
|
6
|
+
export async function resolveConnectionId(client, nameOrId) {
|
|
7
|
+
if (UUID_RE.test(nameOrId.trim())) {
|
|
8
|
+
return nameOrId.trim();
|
|
9
|
+
}
|
|
10
|
+
let connections;
|
|
11
|
+
try {
|
|
12
|
+
connections = (await client.listConnections()).connections;
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error('Failed to list connections:', err.message);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
const needle = nameOrId.trim().toLowerCase();
|
|
19
|
+
const matches = connections.filter((c) => c.name.toLowerCase() === needle);
|
|
20
|
+
if (matches.length === 0) {
|
|
21
|
+
console.error(`No connection named "${nameOrId}". Run \`alertee connections list\`.`);
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
if (matches.length > 1) {
|
|
25
|
+
console.error(`"${nameOrId}" matches ${matches.length} connections; pass the ID instead.`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
return matches[0].id;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../../src/commands/connections/resolve.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GACX,iEAAiE,CAAA;AAEnE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAc,EACd,QAAgB;IAEhB,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,IAAI,WAA8E,CAAA;IAClF,IAAI,CAAC;QACH,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,WAAW,CAAA;IAC5D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAA;IAE1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,wBAAwB,QAAQ,sCAAsC,CAAC,CAAA;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,aAAa,OAAO,CAAC,MAAM,oCAAoC,CAAC,CAAA;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/commands/connections/test.ts"],"names":[],"mappings":"AAIA,oEAAoE;AACpE,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { resolveConnectionId } from './resolve.js';
|
|
4
|
+
/** Re-test an existing connection's credentials (by name or ID). */
|
|
5
|
+
export async function testConnection(nameOrId) {
|
|
6
|
+
const config = requireConfig();
|
|
7
|
+
requireOrg(config);
|
|
8
|
+
const client = createClient(config);
|
|
9
|
+
const id = await resolveConnectionId(client, nameOrId);
|
|
10
|
+
let res;
|
|
11
|
+
try {
|
|
12
|
+
res = await client.testConnection(id);
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error('Failed to test connection:', err.message);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
if (!res.success) {
|
|
19
|
+
console.error(`✗ Connection failed: ${res.error ?? 'unknown error'}`);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
console.log('✓ Connection OK');
|
|
23
|
+
if (res.permissions?.length)
|
|
24
|
+
console.log(`Permissions: ${res.permissions.join(', ')}`);
|
|
25
|
+
if (res.warning)
|
|
26
|
+
console.log(`Warning: ${res.warning}`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/connections/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,GAAsD,CAAA;IAC1D,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC9B,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtF,IAAI,GAAG,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;AACzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/email-groups/add.ts"],"names":[],"mappings":"AAIA,yEAAyE;AACzE,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,IAAI,CAAC,CAkBf"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { resolveEmailGroupId } from './resolve.js';
|
|
4
|
+
/** Add one or more email addresses to an email group (by name or ID). */
|
|
5
|
+
export async function addEmailGroupMembers(nameOrId, emails) {
|
|
6
|
+
if (!emails || emails.length === 0) {
|
|
7
|
+
console.error('Pass at least one email address: alertee email-groups add <group> a@b.com c@d.com');
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
const config = requireConfig();
|
|
11
|
+
requireOrg(config);
|
|
12
|
+
const client = createClient(config);
|
|
13
|
+
const id = await resolveEmailGroupId(client, nameOrId);
|
|
14
|
+
try {
|
|
15
|
+
await client.addEmailGroupMembers(id, emails);
|
|
16
|
+
}
|
|
17
|
+
catch (err) {
|
|
18
|
+
console.error('Failed to add members:', err.message);
|
|
19
|
+
process.exit(1);
|
|
20
|
+
}
|
|
21
|
+
console.log(`Added ${emails.length} ${emails.length === 1 ? 'address' : 'addresses'} to the group.`);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/email-groups/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,MAAgB;IAEhB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,mFAAmF,CAAC,CAAA;QAClG,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;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC/C,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;IACD,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,gBAAgB,CAAC,CAAA;AACtG,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface CreateEmailGroupOptions {
|
|
2
|
+
description?: string;
|
|
3
|
+
/** Initial member emails. */
|
|
4
|
+
email?: string[];
|
|
5
|
+
}
|
|
6
|
+
/** Create an email group (recipient list), optionally with initial emails. */
|
|
7
|
+
export declare function createEmailGroup(name: string | undefined, opts?: CreateEmailGroupOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/email-groups/create.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,8EAA8E;AAC9E,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,IAAI,CAAC,CA2Bf"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { input } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { requireValue } from '../../prompts.js';
|
|
5
|
+
/** Create an email group (recipient list), optionally with initial emails. */
|
|
6
|
+
export async function createEmailGroup(name, opts = {}) {
|
|
7
|
+
const config = requireConfig();
|
|
8
|
+
requireOrg(config);
|
|
9
|
+
const client = createClient(config);
|
|
10
|
+
const resolvedName = await requireValue(name, () => input({ message: 'Email group name:', validate: (v) => v.trim().length > 0 || 'Required' }), 'Email group name required. Pass it as an argument: alertee email-groups create "<name>"');
|
|
11
|
+
let group;
|
|
12
|
+
try {
|
|
13
|
+
group = await client.createEmailGroup({
|
|
14
|
+
name: resolvedName,
|
|
15
|
+
description: opts.description,
|
|
16
|
+
auto_add_members: false,
|
|
17
|
+
is_default: false,
|
|
18
|
+
members: opts.email,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
console.error('Failed to create email group:', err.message);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
console.log(`Created email group "${group.name}" (${group.id}).`);
|
|
26
|
+
console.log('Attach it to an alert group: alertee alert-groups add-email-group <group> --email-group "' + group.name + '"');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/email-groups/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAQ/C,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAwB,EACxB,OAAgC,EAAE;IAElC,MAAM,MAAM,GAAG,aAAa,EAAE,CAAA;IAC9B,UAAU,CAAC,MAAM,CAAC,CAAA;IAClB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,IAAI,EACJ,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,EACzG,yFAAyF,CAC1F,CAAA;IAED,IAAI,KAA0D,CAAA;IAC9D,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;YACpC,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK;SACpB,CAAC,CAAA;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,IAAI,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,2FAA2F,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;AAC7H,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/email-groups/delete.ts"],"names":[],"mappings":"AAMA,oFAAoF;AACpF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { confirm } from '@inquirer/prompts';
|
|
2
|
+
import { createClient } from '../../api.js';
|
|
3
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
4
|
+
import { isInteractive } from '../../prompts.js';
|
|
5
|
+
import { resolveEmailGroupId } from './resolve.js';
|
|
6
|
+
/** Delete an email group (by name or ID). Prompts for confirmation unless --yes. */
|
|
7
|
+
export async function deleteEmailGroup(nameOrId, opts = {}) {
|
|
8
|
+
const config = requireConfig();
|
|
9
|
+
requireOrg(config);
|
|
10
|
+
const client = createClient(config);
|
|
11
|
+
const id = await resolveEmailGroupId(client, nameOrId);
|
|
12
|
+
if (!opts.yes) {
|
|
13
|
+
if (!isInteractive()) {
|
|
14
|
+
console.error('Refusing to delete without confirmation. Pass --yes.');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const ok = await confirm({
|
|
18
|
+
message: `Delete email group "${nameOrId}"? Alert groups using it lose those recipients.`,
|
|
19
|
+
default: false,
|
|
20
|
+
});
|
|
21
|
+
if (!ok) {
|
|
22
|
+
console.log('Aborted.');
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
await client.deleteEmailGroup(id);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
console.error('Failed to delete email group:', err.message);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
console.log(`Deleted email group ${id}.`);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=delete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/commands/email-groups/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,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,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;IACnC,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;YACvB,OAAO,EAAE,uBAAuB,QAAQ,iDAAiD;YACzF,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,gBAAgB,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/email-groups/list.ts"],"names":[],"mappings":"AAIA,sEAAsE;AACtE,wBAAsB,eAAe,CAAC,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCnF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { createClient } from '../../api.js';
|
|
2
|
+
import { requireConfig, requireOrg } from '../../config.js';
|
|
3
|
+
import { printJson, resolveFormat } from '../../output.js';
|
|
4
|
+
/** List email groups (recipient lists) in the linked organization. */
|
|
5
|
+
export async function listEmailGroups(opts = {}) {
|
|
6
|
+
const format = resolveFormat(opts.format);
|
|
7
|
+
const config = requireConfig();
|
|
8
|
+
requireOrg(config);
|
|
9
|
+
const client = createClient(config);
|
|
10
|
+
let groups;
|
|
11
|
+
try {
|
|
12
|
+
groups = (await client.listEmailGroups()).groups;
|
|
13
|
+
}
|
|
14
|
+
catch (err) {
|
|
15
|
+
console.error('Failed to list email groups:', err.message);
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
if (format === 'json') {
|
|
19
|
+
printJson(groups);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
if (groups.length === 0) {
|
|
23
|
+
console.log('No email groups found.');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const nameWidth = Math.max(4, ...groups.map((g) => g.name.length));
|
|
27
|
+
const header = ` ${'NAME'.padEnd(nameWidth)} MEMBERS ID`;
|
|
28
|
+
console.log(header);
|
|
29
|
+
console.log('─'.repeat(header.length));
|
|
30
|
+
for (const g of groups) {
|
|
31
|
+
const marker = g.is_default ? '*' : ' ';
|
|
32
|
+
const count = g.auto_add_members ? 'auto' : String(g.member_count ?? 0);
|
|
33
|
+
console.log(`${marker} ${g.name.padEnd(nameWidth)} ${count.padEnd(7)} ${g.id}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=list.js.map
|