nixelo 0.0.1
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/README.md +98 -0
- package/dist/commands/apiKeys.d.ts +3 -0
- package/dist/commands/apiKeys.d.ts.map +1 -0
- package/dist/commands/apiKeys.js +200 -0
- package/dist/commands/apiKeys.js.map +1 -0
- package/dist/commands/auth.d.ts +7 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +201 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/automations.d.ts +3 -0
- package/dist/commands/automations.d.ts.map +1 -0
- package/dist/commands/automations.js +302 -0
- package/dist/commands/automations.js.map +1 -0
- package/dist/commands/commandTree.d.ts +10 -0
- package/dist/commands/commandTree.d.ts.map +1 -0
- package/dist/commands/commandTree.js +36 -0
- package/dist/commands/commandTree.js.map +1 -0
- package/dist/commands/completion.d.ts +6 -0
- package/dist/commands/completion.d.ts.map +1 -0
- package/dist/commands/completion.js +101 -0
- package/dist/commands/completion.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +133 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/documents.d.ts +3 -0
- package/dist/commands/documents.d.ts.map +1 -0
- package/dist/commands/documents.js +200 -0
- package/dist/commands/documents.js.map +1 -0
- package/dist/commands/fields.d.ts +3 -0
- package/dist/commands/fields.d.ts.map +1 -0
- package/dist/commands/fields.js +199 -0
- package/dist/commands/fields.js.map +1 -0
- package/dist/commands/filters.d.ts +3 -0
- package/dist/commands/filters.d.ts.map +1 -0
- package/dist/commands/filters.js +243 -0
- package/dist/commands/filters.js.map +1 -0
- package/dist/commands/global.d.ts +5 -0
- package/dist/commands/global.d.ts.map +1 -0
- package/dist/commands/global.js +42 -0
- package/dist/commands/global.js.map +1 -0
- package/dist/commands/index.d.ts +23 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +23 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/invites.d.ts +3 -0
- package/dist/commands/invites.d.ts.map +1 -0
- package/dist/commands/invites.js +113 -0
- package/dist/commands/invites.js.map +1 -0
- package/dist/commands/issues/filter.d.ts +19 -0
- package/dist/commands/issues/filter.d.ts.map +1 -0
- package/dist/commands/issues/filter.js +72 -0
- package/dist/commands/issues/filter.js.map +1 -0
- package/dist/commands/issues/options.d.ts +33 -0
- package/dist/commands/issues/options.d.ts.map +1 -0
- package/dist/commands/issues/options.js +68 -0
- package/dist/commands/issues/options.js.map +1 -0
- package/dist/commands/issues/output.d.ts +12 -0
- package/dist/commands/issues/output.d.ts.map +1 -0
- package/dist/commands/issues/output.js +285 -0
- package/dist/commands/issues/output.js.map +1 -0
- package/dist/commands/issues.d.ts +3 -0
- package/dist/commands/issues.d.ts.map +1 -0
- package/dist/commands/issues.js +483 -0
- package/dist/commands/issues.js.map +1 -0
- package/dist/commands/labels.d.ts +3 -0
- package/dist/commands/labels.d.ts.map +1 -0
- package/dist/commands/labels.js +222 -0
- package/dist/commands/labels.js.map +1 -0
- package/dist/commands/notifications.d.ts +3 -0
- package/dist/commands/notifications.d.ts.map +1 -0
- package/dist/commands/notifications.js +127 -0
- package/dist/commands/notifications.js.map +1 -0
- package/dist/commands/projects.d.ts +5 -0
- package/dist/commands/projects.d.ts.map +1 -0
- package/dist/commands/projects.js +749 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/registerAll.d.ts +3 -0
- package/dist/commands/registerAll.d.ts.map +1 -0
- package/dist/commands/registerAll.js +54 -0
- package/dist/commands/registerAll.js.map +1 -0
- package/dist/commands/sprints.d.ts +3 -0
- package/dist/commands/sprints.d.ts.map +1 -0
- package/dist/commands/sprints.js +359 -0
- package/dist/commands/sprints.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +206 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/teams.d.ts +3 -0
- package/dist/commands/teams.d.ts.map +1 -0
- package/dist/commands/teams.js +435 -0
- package/dist/commands/teams.js.map +1 -0
- package/dist/commands/templates.d.ts +3 -0
- package/dist/commands/templates.d.ts.map +1 -0
- package/dist/commands/templates.js +264 -0
- package/dist/commands/templates.js.map +1 -0
- package/dist/commands/time.d.ts +3 -0
- package/dist/commands/time.d.ts.map +1 -0
- package/dist/commands/time.js +191 -0
- package/dist/commands/time.js.map +1 -0
- package/dist/commands/tokens.d.ts +3 -0
- package/dist/commands/tokens.d.ts.map +1 -0
- package/dist/commands/tokens.js +76 -0
- package/dist/commands/tokens.js.map +1 -0
- package/dist/commands/users.d.ts +5 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +160 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/commands/version.d.ts +3 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +17 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/commands/webhooks.d.ts +3 -0
- package/dist/commands/webhooks.d.ts.map +1 -0
- package/dist/commands/webhooks.js +407 -0
- package/dist/commands/webhooks.js.map +1 -0
- package/dist/commands/workspaces.d.ts +3 -0
- package/dist/commands/workspaces.d.ts.map +1 -0
- package/dist/commands/workspaces.js +424 -0
- package/dist/commands/workspaces.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +20 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +80 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/convex.d.ts +1243 -0
- package/dist/lib/convex.d.ts.map +1 -0
- package/dist/lib/convex.js +675 -0
- package/dist/lib/convex.js.map +1 -0
- package/dist/lib/options.d.ts +10 -0
- package/dist/lib/options.d.ts.map +1 -0
- package/dist/lib/options.js +79 -0
- package/dist/lib/options.js.map +1 -0
- package/dist/lib/output.d.ts +19 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +60 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/project-key.d.ts +5 -0
- package/dist/lib/project-key.d.ts.map +1 -0
- package/dist/lib/project-key.js +56 -0
- package/dist/lib/project-key.js.map +1 -0
- package/dist/lib/prompt.d.ts +5 -0
- package/dist/lib/prompt.d.ts.map +1 -0
- package/dist/lib/prompt.js +28 -0
- package/dist/lib/prompt.js.map +1 -0
- package/dist/lib/user-picker.d.ts +4 -0
- package/dist/lib/user-picker.d.ts.map +1 -0
- package/dist/lib/user-picker.js +57 -0
- package/dist/lib/user-picker.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { createLabel, listLabels, removeLabel, updateLabel } from "../lib/convex.js";
|
|
2
|
+
import { parsePositiveIntegerOption, readOptionalText, readRequiredText } from "../lib/options.js";
|
|
3
|
+
import { getActiveOutputFormat, printError, printJson, printOutput, printRows } from "../lib/output.js";
|
|
4
|
+
import { resolveRequiredProjectKey } from "../lib/project-key.js";
|
|
5
|
+
import { requireConfirmation } from "../lib/prompt.js";
|
|
6
|
+
import { addOutputOptions } from "./global.js";
|
|
7
|
+
const LABEL_COLUMNS = [
|
|
8
|
+
{ header: "name", value: label => label.name },
|
|
9
|
+
{ header: "color", value: label => label.color },
|
|
10
|
+
{ header: "description", value: label => label.description },
|
|
11
|
+
{ header: "groupId", value: label => label.groupId },
|
|
12
|
+
{ header: "displayOrder", value: label => label.displayOrder },
|
|
13
|
+
{ header: "id", value: label => label.id }
|
|
14
|
+
];
|
|
15
|
+
const LABEL_REMOVE_COLUMNS = [
|
|
16
|
+
{ header: "id", value: label => label.id },
|
|
17
|
+
{ header: "name", value: label => label.name },
|
|
18
|
+
{ header: "deleted", value: label => label.deleted },
|
|
19
|
+
{ header: "cleanupPending", value: label => label.cleanupPending }
|
|
20
|
+
];
|
|
21
|
+
function printLabelsResult(labels, projectKey) {
|
|
22
|
+
const format = getActiveOutputFormat();
|
|
23
|
+
if (!labels) {
|
|
24
|
+
if (format === "json") {
|
|
25
|
+
printJson(null);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
if (format === "csv") {
|
|
29
|
+
printRows([], LABEL_COLUMNS, format);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
printOutput(`Project ${projectKey} not found.`);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (labels.length === 0) {
|
|
36
|
+
if (format === "json") {
|
|
37
|
+
printJson([]);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (format === "csv") {
|
|
41
|
+
printRows(labels, LABEL_COLUMNS, format);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
printOutput("No labels found.");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (format !== "table") {
|
|
48
|
+
printRows(labels, LABEL_COLUMNS, format);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (const label of labels) {
|
|
52
|
+
const description = label.description ? ` ${label.description}` : "";
|
|
53
|
+
printOutput(` ${label.name} ${label.color}${description}`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function printLabelCreateResult(label) {
|
|
57
|
+
const format = getActiveOutputFormat();
|
|
58
|
+
if (format === "json") {
|
|
59
|
+
printJson(label);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
if (format === "csv") {
|
|
63
|
+
printRows([label], LABEL_COLUMNS, format);
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
printOutput(`Created label ${label.name}: ${label.color}`);
|
|
67
|
+
}
|
|
68
|
+
function printLabelUpdateResult(label, id) {
|
|
69
|
+
const format = getActiveOutputFormat();
|
|
70
|
+
if (!label) {
|
|
71
|
+
if (format === "json") {
|
|
72
|
+
printJson(null);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (format === "csv") {
|
|
76
|
+
printRows([], LABEL_COLUMNS, format);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
printOutput(`Label ${id} not found.`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (format === "json") {
|
|
83
|
+
printJson(label);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (format === "csv") {
|
|
87
|
+
printRows([label], LABEL_COLUMNS, format);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
printOutput(`Updated label ${label.name}: ${label.color}`);
|
|
91
|
+
}
|
|
92
|
+
function printLabelRemoveResult(result, id) {
|
|
93
|
+
const format = getActiveOutputFormat();
|
|
94
|
+
if (!result) {
|
|
95
|
+
if (format === "json") {
|
|
96
|
+
printJson(null);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (format === "csv") {
|
|
100
|
+
printRows([], LABEL_REMOVE_COLUMNS, format);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
printOutput(`Label ${id} not found.`);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (format === "json") {
|
|
107
|
+
printJson(result);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
if (format === "csv") {
|
|
111
|
+
printRows([result], LABEL_REMOVE_COLUMNS, format);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const cleanup = result.cleanupPending ? " Cleanup pending." : "";
|
|
115
|
+
printOutput(`Removed label ${result.name}.${cleanup}`);
|
|
116
|
+
}
|
|
117
|
+
function readLabelUpdateInput(opts) {
|
|
118
|
+
if (opts.description !== undefined && opts.clearDescription) {
|
|
119
|
+
throw new Error("Use either --description or --clear-description, not both.");
|
|
120
|
+
}
|
|
121
|
+
if (opts.group !== undefined && opts.clearGroup) {
|
|
122
|
+
throw new Error("Use either --group or --clear-group, not both.");
|
|
123
|
+
}
|
|
124
|
+
const input = {};
|
|
125
|
+
const name = readOptionalText(opts.name, "Label name", "--name");
|
|
126
|
+
if (name !== undefined)
|
|
127
|
+
input.name = name;
|
|
128
|
+
const color = readOptionalText(opts.color, "Label color", "--color");
|
|
129
|
+
if (color !== undefined)
|
|
130
|
+
input.color = color;
|
|
131
|
+
const description = readOptionalText(opts.description, "Label description", "--description");
|
|
132
|
+
if (description !== undefined)
|
|
133
|
+
input.description = description;
|
|
134
|
+
if (opts.clearDescription)
|
|
135
|
+
input.description = null;
|
|
136
|
+
const groupId = readOptionalText(opts.group, "Label group ID", "--group");
|
|
137
|
+
if (groupId !== undefined)
|
|
138
|
+
input.groupId = groupId;
|
|
139
|
+
if (opts.clearGroup)
|
|
140
|
+
input.groupId = null;
|
|
141
|
+
if (Object.keys(input).length === 0) {
|
|
142
|
+
throw new Error("At least one update flag is required.");
|
|
143
|
+
}
|
|
144
|
+
return input;
|
|
145
|
+
}
|
|
146
|
+
export function registerLabelsCommands(program) {
|
|
147
|
+
const labelsCmd = program.command("labels").description("Manage labels");
|
|
148
|
+
addOutputOptions(labelsCmd.command("list"))
|
|
149
|
+
.option("-p, --project <key>", "Project key; defaults to config.defaultProject")
|
|
150
|
+
.option("-n, --limit <number>", "Max labels", "20")
|
|
151
|
+
.description("List project labels")
|
|
152
|
+
.action(async (opts) => {
|
|
153
|
+
try {
|
|
154
|
+
const projectKey = await resolveRequiredProjectKey(opts.project);
|
|
155
|
+
printLabelsResult(await listLabels(projectKey, { limit: parsePositiveIntegerOption(opts.limit) }), projectKey);
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
159
|
+
process.exit(1);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
addOutputOptions(labelsCmd.command("create"))
|
|
163
|
+
.option("-p, --project <key>", "Project key; defaults to config.defaultProject")
|
|
164
|
+
.option("-n, --name <name>", "Label name")
|
|
165
|
+
.option("--color <color>", "Label color")
|
|
166
|
+
.option("--group <id>", "Label group ID")
|
|
167
|
+
.option("-d, --description <text>", "Label description")
|
|
168
|
+
.description("Create a project label")
|
|
169
|
+
.action(async (opts) => {
|
|
170
|
+
try {
|
|
171
|
+
const projectKey = await resolveRequiredProjectKey(opts.project);
|
|
172
|
+
const description = opts.description?.trim();
|
|
173
|
+
const groupId = opts.group?.trim();
|
|
174
|
+
printLabelCreateResult(await createLabel({
|
|
175
|
+
projectKey,
|
|
176
|
+
name: readRequiredText(opts.name, "Label name", "--name"),
|
|
177
|
+
color: readRequiredText(opts.color, "Label color", "--color"),
|
|
178
|
+
description: description || undefined,
|
|
179
|
+
groupId: groupId || undefined
|
|
180
|
+
}));
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
addOutputOptions(labelsCmd.command("update"))
|
|
188
|
+
.argument("<id>", "Label ID")
|
|
189
|
+
.option("-n, --name <name>", "Label name")
|
|
190
|
+
.option("--color <color>", "Label color")
|
|
191
|
+
.option("--group <id>", "Label group ID")
|
|
192
|
+
.option("--clear-group", "Remove label group")
|
|
193
|
+
.option("-d, --description <text>", "Label description")
|
|
194
|
+
.option("--clear-description", "Remove label description")
|
|
195
|
+
.description("Update a project label")
|
|
196
|
+
.action(async (id, opts) => {
|
|
197
|
+
try {
|
|
198
|
+
const labelId = readRequiredText(id, "Label ID", "<id>");
|
|
199
|
+
printLabelUpdateResult(await updateLabel(labelId, readLabelUpdateInput(opts)), labelId);
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
addOutputOptions(labelsCmd.command("remove"))
|
|
207
|
+
.argument("<id>", "Label ID")
|
|
208
|
+
.option("-y, --yes", "Confirm label removal")
|
|
209
|
+
.description("Remove a project label")
|
|
210
|
+
.action(async (id, opts) => {
|
|
211
|
+
try {
|
|
212
|
+
const labelId = readRequiredText(id, "Label ID", "<id>");
|
|
213
|
+
await requireConfirmation(`Remove label ${labelId}?`, opts.yes === true);
|
|
214
|
+
printLabelRemoveResult(await removeLabel(labelId), labelId);
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=labels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/commands/labels.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/commands/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsFxC,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmDnE"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { dismissNotification, listNotifications, markNotificationRead } from "../lib/convex.js";
|
|
2
|
+
import { parsePositiveIntegerOption } from "../lib/options.js";
|
|
3
|
+
import { getActiveOutputFormat, printError, printJson, printOutput, printRows } from "../lib/output.js";
|
|
4
|
+
import { addOutputOptions } from "./global.js";
|
|
5
|
+
const NOTIFICATION_COLUMNS = [
|
|
6
|
+
{ header: "id", value: notification => notification.id },
|
|
7
|
+
{ header: "createdAt", value: notification => notification.createdAt },
|
|
8
|
+
{ header: "read", value: notification => notification.isRead },
|
|
9
|
+
{ header: "type", value: notification => notification.type },
|
|
10
|
+
{ header: "title", value: notification => notification.title },
|
|
11
|
+
{ header: "message", value: notification => notification.message },
|
|
12
|
+
{ header: "actor", value: notification => notification.actorName ?? "" }
|
|
13
|
+
];
|
|
14
|
+
const NOTIFICATION_READ_COLUMNS = [
|
|
15
|
+
{ header: "id", value: notification => notification.id },
|
|
16
|
+
{ header: "read", value: notification => notification.isRead },
|
|
17
|
+
{ header: "title", value: notification => notification.title }
|
|
18
|
+
];
|
|
19
|
+
const NOTIFICATION_DISMISS_COLUMNS = [
|
|
20
|
+
{ header: "id", value: notification => notification.id },
|
|
21
|
+
{ header: "archived", value: notification => notification.isArchived },
|
|
22
|
+
{ header: "title", value: notification => notification.title }
|
|
23
|
+
];
|
|
24
|
+
function printNotifications(result) {
|
|
25
|
+
const format = getActiveOutputFormat();
|
|
26
|
+
if (format === "json") {
|
|
27
|
+
printJson(result);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (format === "csv") {
|
|
31
|
+
printRows(result.notifications, NOTIFICATION_COLUMNS, format);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (result.notifications.length === 0) {
|
|
35
|
+
printOutput("No notifications found.");
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
printRows(result.notifications, NOTIFICATION_COLUMNS, format);
|
|
39
|
+
if (result.truncated)
|
|
40
|
+
printOutput("Results truncated; increase --limit.");
|
|
41
|
+
}
|
|
42
|
+
function printNotificationRead(result, id) {
|
|
43
|
+
const format = getActiveOutputFormat();
|
|
44
|
+
if (!result) {
|
|
45
|
+
if (format === "json")
|
|
46
|
+
printJson(null);
|
|
47
|
+
else if (format === "csv")
|
|
48
|
+
printRows([], NOTIFICATION_READ_COLUMNS, format);
|
|
49
|
+
else
|
|
50
|
+
printOutput(`Notification ${id} not found or inaccessible.`);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (format === "json")
|
|
54
|
+
printJson(result);
|
|
55
|
+
else if (format === "table")
|
|
56
|
+
printOutput(`Marked notification ${result.title} (${result.id}) as read.`);
|
|
57
|
+
else
|
|
58
|
+
printRows([result], NOTIFICATION_READ_COLUMNS, format);
|
|
59
|
+
}
|
|
60
|
+
function printNotificationDismiss(result, id) {
|
|
61
|
+
const format = getActiveOutputFormat();
|
|
62
|
+
if (!result) {
|
|
63
|
+
if (format === "json")
|
|
64
|
+
printJson(null);
|
|
65
|
+
else if (format === "csv")
|
|
66
|
+
printRows([], NOTIFICATION_DISMISS_COLUMNS, format);
|
|
67
|
+
else
|
|
68
|
+
printOutput(`Notification ${id} not found or inaccessible.`);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (format === "json")
|
|
72
|
+
printJson(result);
|
|
73
|
+
else if (format === "table")
|
|
74
|
+
printOutput(`Dismissed notification ${result.title} (${result.id}).`);
|
|
75
|
+
else
|
|
76
|
+
printRows([result], NOTIFICATION_DISMISS_COLUMNS, format);
|
|
77
|
+
}
|
|
78
|
+
export function registerNotificationCommands(program) {
|
|
79
|
+
const notificationsCmd = program.command("notifications").description("Manage notifications");
|
|
80
|
+
addOutputOptions(notificationsCmd.command("list"))
|
|
81
|
+
.option("-n, --limit <number>", "Maximum notifications", "20")
|
|
82
|
+
.description("List inbox notifications")
|
|
83
|
+
.action(async (opts) => {
|
|
84
|
+
try {
|
|
85
|
+
printNotifications(await listNotifications({ limit: parsePositiveIntegerOption(opts.limit) }));
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
addOutputOptions(notificationsCmd.command("unread"))
|
|
93
|
+
.option("-n, --limit <number>", "Maximum notifications", "20")
|
|
94
|
+
.description("List unread inbox notifications")
|
|
95
|
+
.action(async (opts) => {
|
|
96
|
+
try {
|
|
97
|
+
printNotifications(await listNotifications({ limit: parsePositiveIntegerOption(opts.limit), unread: true }));
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
addOutputOptions(notificationsCmd.command("read").argument("<id>", "Notification ID"))
|
|
105
|
+
.description("Mark an inbox notification as read")
|
|
106
|
+
.action(async (id) => {
|
|
107
|
+
try {
|
|
108
|
+
printNotificationRead(await markNotificationRead(id), id);
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
addOutputOptions(notificationsCmd.command("dismiss").argument("<id>", "Notification ID"))
|
|
116
|
+
.description("Archive an inbox notification")
|
|
117
|
+
.action(async (id) => {
|
|
118
|
+
try {
|
|
119
|
+
printNotificationDismiss(await dismissNotification(id), id);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
printError("Failed:", error instanceof Error ? error.message : error);
|
|
123
|
+
process.exit(1);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/commands/notifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { ProjectStats } from "../lib/convex.js";
|
|
3
|
+
export declare function printProjectStatsResult(stats: ProjectStats | null, key: string): void;
|
|
4
|
+
export declare function registerProjectsCommands(program: Command): void;
|
|
5
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAOV,YAAY,EAKb,MAAM,kBAAkB,CAAA;AA0kBzB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAqBrF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8Q/D"}
|