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.
Files changed (154) hide show
  1. package/README.md +98 -0
  2. package/dist/commands/apiKeys.d.ts +3 -0
  3. package/dist/commands/apiKeys.d.ts.map +1 -0
  4. package/dist/commands/apiKeys.js +200 -0
  5. package/dist/commands/apiKeys.js.map +1 -0
  6. package/dist/commands/auth.d.ts +7 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +201 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/automations.d.ts +3 -0
  11. package/dist/commands/automations.d.ts.map +1 -0
  12. package/dist/commands/automations.js +302 -0
  13. package/dist/commands/automations.js.map +1 -0
  14. package/dist/commands/commandTree.d.ts +10 -0
  15. package/dist/commands/commandTree.d.ts.map +1 -0
  16. package/dist/commands/commandTree.js +36 -0
  17. package/dist/commands/commandTree.js.map +1 -0
  18. package/dist/commands/completion.d.ts +6 -0
  19. package/dist/commands/completion.d.ts.map +1 -0
  20. package/dist/commands/completion.js +101 -0
  21. package/dist/commands/completion.js.map +1 -0
  22. package/dist/commands/config.d.ts +3 -0
  23. package/dist/commands/config.d.ts.map +1 -0
  24. package/dist/commands/config.js +133 -0
  25. package/dist/commands/config.js.map +1 -0
  26. package/dist/commands/documents.d.ts +3 -0
  27. package/dist/commands/documents.d.ts.map +1 -0
  28. package/dist/commands/documents.js +200 -0
  29. package/dist/commands/documents.js.map +1 -0
  30. package/dist/commands/fields.d.ts +3 -0
  31. package/dist/commands/fields.d.ts.map +1 -0
  32. package/dist/commands/fields.js +199 -0
  33. package/dist/commands/fields.js.map +1 -0
  34. package/dist/commands/filters.d.ts +3 -0
  35. package/dist/commands/filters.d.ts.map +1 -0
  36. package/dist/commands/filters.js +243 -0
  37. package/dist/commands/filters.js.map +1 -0
  38. package/dist/commands/global.d.ts +5 -0
  39. package/dist/commands/global.d.ts.map +1 -0
  40. package/dist/commands/global.js +42 -0
  41. package/dist/commands/global.js.map +1 -0
  42. package/dist/commands/index.d.ts +23 -0
  43. package/dist/commands/index.d.ts.map +1 -0
  44. package/dist/commands/index.js +23 -0
  45. package/dist/commands/index.js.map +1 -0
  46. package/dist/commands/invites.d.ts +3 -0
  47. package/dist/commands/invites.d.ts.map +1 -0
  48. package/dist/commands/invites.js +113 -0
  49. package/dist/commands/invites.js.map +1 -0
  50. package/dist/commands/issues/filter.d.ts +19 -0
  51. package/dist/commands/issues/filter.d.ts.map +1 -0
  52. package/dist/commands/issues/filter.js +72 -0
  53. package/dist/commands/issues/filter.js.map +1 -0
  54. package/dist/commands/issues/options.d.ts +33 -0
  55. package/dist/commands/issues/options.d.ts.map +1 -0
  56. package/dist/commands/issues/options.js +68 -0
  57. package/dist/commands/issues/options.js.map +1 -0
  58. package/dist/commands/issues/output.d.ts +12 -0
  59. package/dist/commands/issues/output.d.ts.map +1 -0
  60. package/dist/commands/issues/output.js +285 -0
  61. package/dist/commands/issues/output.js.map +1 -0
  62. package/dist/commands/issues.d.ts +3 -0
  63. package/dist/commands/issues.d.ts.map +1 -0
  64. package/dist/commands/issues.js +483 -0
  65. package/dist/commands/issues.js.map +1 -0
  66. package/dist/commands/labels.d.ts +3 -0
  67. package/dist/commands/labels.d.ts.map +1 -0
  68. package/dist/commands/labels.js +222 -0
  69. package/dist/commands/labels.js.map +1 -0
  70. package/dist/commands/notifications.d.ts +3 -0
  71. package/dist/commands/notifications.d.ts.map +1 -0
  72. package/dist/commands/notifications.js +127 -0
  73. package/dist/commands/notifications.js.map +1 -0
  74. package/dist/commands/projects.d.ts +5 -0
  75. package/dist/commands/projects.d.ts.map +1 -0
  76. package/dist/commands/projects.js +749 -0
  77. package/dist/commands/projects.js.map +1 -0
  78. package/dist/commands/registerAll.d.ts +3 -0
  79. package/dist/commands/registerAll.d.ts.map +1 -0
  80. package/dist/commands/registerAll.js +54 -0
  81. package/dist/commands/registerAll.js.map +1 -0
  82. package/dist/commands/sprints.d.ts +3 -0
  83. package/dist/commands/sprints.d.ts.map +1 -0
  84. package/dist/commands/sprints.js +359 -0
  85. package/dist/commands/sprints.js.map +1 -0
  86. package/dist/commands/stats.d.ts +3 -0
  87. package/dist/commands/stats.d.ts.map +1 -0
  88. package/dist/commands/stats.js +206 -0
  89. package/dist/commands/stats.js.map +1 -0
  90. package/dist/commands/teams.d.ts +3 -0
  91. package/dist/commands/teams.d.ts.map +1 -0
  92. package/dist/commands/teams.js +435 -0
  93. package/dist/commands/teams.js.map +1 -0
  94. package/dist/commands/templates.d.ts +3 -0
  95. package/dist/commands/templates.d.ts.map +1 -0
  96. package/dist/commands/templates.js +264 -0
  97. package/dist/commands/templates.js.map +1 -0
  98. package/dist/commands/time.d.ts +3 -0
  99. package/dist/commands/time.d.ts.map +1 -0
  100. package/dist/commands/time.js +191 -0
  101. package/dist/commands/time.js.map +1 -0
  102. package/dist/commands/tokens.d.ts +3 -0
  103. package/dist/commands/tokens.d.ts.map +1 -0
  104. package/dist/commands/tokens.js +76 -0
  105. package/dist/commands/tokens.js.map +1 -0
  106. package/dist/commands/users.d.ts +5 -0
  107. package/dist/commands/users.d.ts.map +1 -0
  108. package/dist/commands/users.js +160 -0
  109. package/dist/commands/users.js.map +1 -0
  110. package/dist/commands/version.d.ts +3 -0
  111. package/dist/commands/version.d.ts.map +1 -0
  112. package/dist/commands/version.js +17 -0
  113. package/dist/commands/version.js.map +1 -0
  114. package/dist/commands/webhooks.d.ts +3 -0
  115. package/dist/commands/webhooks.d.ts.map +1 -0
  116. package/dist/commands/webhooks.js +407 -0
  117. package/dist/commands/webhooks.js.map +1 -0
  118. package/dist/commands/workspaces.d.ts +3 -0
  119. package/dist/commands/workspaces.d.ts.map +1 -0
  120. package/dist/commands/workspaces.js +424 -0
  121. package/dist/commands/workspaces.js.map +1 -0
  122. package/dist/index.d.ts +8 -0
  123. package/dist/index.d.ts.map +1 -0
  124. package/dist/index.js +14 -0
  125. package/dist/index.js.map +1 -0
  126. package/dist/lib/auth.d.ts +20 -0
  127. package/dist/lib/auth.d.ts.map +1 -0
  128. package/dist/lib/auth.js +80 -0
  129. package/dist/lib/auth.js.map +1 -0
  130. package/dist/lib/convex.d.ts +1243 -0
  131. package/dist/lib/convex.d.ts.map +1 -0
  132. package/dist/lib/convex.js +675 -0
  133. package/dist/lib/convex.js.map +1 -0
  134. package/dist/lib/options.d.ts +10 -0
  135. package/dist/lib/options.d.ts.map +1 -0
  136. package/dist/lib/options.js +79 -0
  137. package/dist/lib/options.js.map +1 -0
  138. package/dist/lib/output.d.ts +19 -0
  139. package/dist/lib/output.d.ts.map +1 -0
  140. package/dist/lib/output.js +60 -0
  141. package/dist/lib/output.js.map +1 -0
  142. package/dist/lib/project-key.d.ts +5 -0
  143. package/dist/lib/project-key.d.ts.map +1 -0
  144. package/dist/lib/project-key.js +56 -0
  145. package/dist/lib/project-key.js.map +1 -0
  146. package/dist/lib/prompt.d.ts +5 -0
  147. package/dist/lib/prompt.d.ts.map +1 -0
  148. package/dist/lib/prompt.js +28 -0
  149. package/dist/lib/prompt.js.map +1 -0
  150. package/dist/lib/user-picker.d.ts +4 -0
  151. package/dist/lib/user-picker.d.ts.map +1 -0
  152. package/dist/lib/user-picker.js +57 -0
  153. package/dist/lib/user-picker.js.map +1 -0
  154. package/package.json +51 -0
@@ -0,0 +1,302 @@
1
+ import { createAutomationRule, listAutomationRules, removeAutomationRule, updateAutomationRule } 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 AUTOMATION_RULE_COLUMNS = [
8
+ { header: "id", value: rule => rule.id },
9
+ { header: "name", value: rule => rule.name },
10
+ { header: "projectKey", value: rule => rule.projectKey },
11
+ { header: "isActive", value: rule => rule.isActive },
12
+ { header: "trigger", value: rule => rule.trigger },
13
+ { header: "triggerValue", value: rule => rule.triggerValue },
14
+ { header: "actionType", value: rule => rule.actionType },
15
+ { header: "actionValue", value: rule => JSON.stringify(rule.actionValue) },
16
+ { header: "executionCount", value: rule => rule.executionCount },
17
+ { header: "updatedAt", value: rule => rule.updatedAt }
18
+ ];
19
+ const AUTOMATION_TRIGGERS = [
20
+ "status_changed",
21
+ "assignee_changed",
22
+ "priority_changed",
23
+ "issue_created",
24
+ "label_added",
25
+ "stale_in_status"
26
+ ];
27
+ const AUTOMATION_PRIORITIES = ["lowest", "low", "medium", "high", "highest"];
28
+ function isJsonObject(value) {
29
+ return typeof value === "object" && value !== null && !Array.isArray(value);
30
+ }
31
+ function isAutomationTrigger(value) {
32
+ return AUTOMATION_TRIGGERS.some(trigger => trigger === value);
33
+ }
34
+ function isAutomationPriority(value) {
35
+ return typeof value === "string" && AUTOMATION_PRIORITIES.some(priority => priority === value);
36
+ }
37
+ function readAutomationTrigger(value) {
38
+ const trigger = readRequiredText(value, "Trigger", "--trigger");
39
+ if (!isAutomationTrigger(trigger)) {
40
+ throw new Error(`Invalid trigger: ${trigger}.`);
41
+ }
42
+ return trigger;
43
+ }
44
+ function readOptionalAutomationTrigger(value) {
45
+ if (value === undefined)
46
+ return undefined;
47
+ return readAutomationTrigger(value);
48
+ }
49
+ function parseAutomationAssigneeAction(action) {
50
+ if (action.assigneeId === null)
51
+ return { type: "set_assignee", assigneeId: null };
52
+ if (typeof action.assigneeId !== "string" || !action.assigneeId.trim())
53
+ return null;
54
+ return { type: "set_assignee", assigneeId: action.assigneeId.trim() };
55
+ }
56
+ function parseAutomationPriorityAction(action) {
57
+ if (!isAutomationPriority(action.priority))
58
+ return null;
59
+ return { type: "set_priority", priority: action.priority };
60
+ }
61
+ function parseAutomationLabelAction(action) {
62
+ if (typeof action.label !== "string" || !action.label.trim())
63
+ return null;
64
+ return { type: "add_label", label: action.label.trim() };
65
+ }
66
+ function parseAutomationCommentAction(action) {
67
+ if (typeof action.comment !== "string" || !action.comment.trim())
68
+ return null;
69
+ return { type: "add_comment", comment: action.comment.trim() };
70
+ }
71
+ function parseAutomationNotificationAction(action) {
72
+ if (typeof action.message !== "string" || !action.message.trim())
73
+ return null;
74
+ if (action.recipients === undefined) {
75
+ return { type: "send_notification", message: action.message.trim() };
76
+ }
77
+ if (!Array.isArray(action.recipients) ||
78
+ action.recipients.some(recipient => typeof recipient !== "string" || !recipient.trim())) {
79
+ return null;
80
+ }
81
+ return {
82
+ type: "send_notification",
83
+ message: action.message.trim(),
84
+ recipients: action.recipients.map(recipient => recipient.trim())
85
+ };
86
+ }
87
+ function parseAutomationActionObject(action) {
88
+ switch (action.type) {
89
+ case "set_assignee":
90
+ return parseAutomationAssigneeAction(action);
91
+ case "set_priority":
92
+ return parseAutomationPriorityAction(action);
93
+ case "add_label":
94
+ return parseAutomationLabelAction(action);
95
+ case "add_comment":
96
+ return parseAutomationCommentAction(action);
97
+ case "send_notification":
98
+ return parseAutomationNotificationAction(action);
99
+ default:
100
+ return null;
101
+ }
102
+ }
103
+ function readAutomationAction(value) {
104
+ const raw = readRequiredText(value, "Action", "--action");
105
+ let action;
106
+ try {
107
+ action = JSON.parse(raw);
108
+ }
109
+ catch {
110
+ throw new Error("Action must be valid JSON.");
111
+ }
112
+ if (!isJsonObject(action))
113
+ throw new Error("Action must be a JSON object.");
114
+ const parsedAction = parseAutomationActionObject(action);
115
+ if (!parsedAction)
116
+ throw new Error("Action does not match a supported automation action shape.");
117
+ return parsedAction;
118
+ }
119
+ function assertAutomationUpdateFlags(opts) {
120
+ if (opts.description !== undefined && opts.clearDescription) {
121
+ throw new Error("Use either --description or --clear-description, not both.");
122
+ }
123
+ if (opts.triggerValue !== undefined && opts.clearTriggerValue) {
124
+ throw new Error("Use either --trigger-value or --clear-trigger-value, not both.");
125
+ }
126
+ if (opts.active && opts.inactive) {
127
+ throw new Error("Use either --active or --inactive, not both.");
128
+ }
129
+ }
130
+ function readAutomationUpdateInput(opts) {
131
+ assertAutomationUpdateFlags(opts);
132
+ const input = {};
133
+ const name = readOptionalText(opts.name, "Name", "--name");
134
+ if (name !== undefined)
135
+ input.name = name;
136
+ const description = readOptionalText(opts.description, "Description", "--description");
137
+ if (description !== undefined)
138
+ input.description = description;
139
+ if (opts.clearDescription)
140
+ input.description = null;
141
+ const trigger = readOptionalAutomationTrigger(opts.trigger);
142
+ if (trigger !== undefined)
143
+ input.trigger = trigger;
144
+ const triggerValue = readOptionalText(opts.triggerValue, "Trigger value", "--trigger-value");
145
+ if (triggerValue !== undefined)
146
+ input.triggerValue = triggerValue;
147
+ if (opts.clearTriggerValue)
148
+ input.triggerValue = null;
149
+ if (opts.action !== undefined)
150
+ input.action = readAutomationAction(opts.action);
151
+ if (opts.active)
152
+ input.isActive = true;
153
+ if (opts.inactive)
154
+ input.isActive = false;
155
+ if (Object.keys(input).length === 0) {
156
+ throw new Error("At least one update flag is required.");
157
+ }
158
+ return input;
159
+ }
160
+ function printAutomationRules(rules, projectKey) {
161
+ const format = getActiveOutputFormat();
162
+ if (rules === null) {
163
+ if (format === "json")
164
+ printJson(null);
165
+ else if (format === "csv")
166
+ printRows([], AUTOMATION_RULE_COLUMNS, format);
167
+ else
168
+ printOutput(`Project ${projectKey} not found or inaccessible.`);
169
+ return;
170
+ }
171
+ if (rules.length === 0) {
172
+ if (format === "json")
173
+ printJson([]);
174
+ else if (format === "csv")
175
+ printRows([], AUTOMATION_RULE_COLUMNS, format);
176
+ else
177
+ printOutput("No automation rules found.");
178
+ return;
179
+ }
180
+ printRows(rules, AUTOMATION_RULE_COLUMNS, format);
181
+ }
182
+ function printAutomationRuleResult(rule, id) {
183
+ const format = getActiveOutputFormat();
184
+ if (!rule) {
185
+ if (format === "json")
186
+ printJson(null);
187
+ else if (format === "csv")
188
+ printRows([], AUTOMATION_RULE_COLUMNS, format);
189
+ else
190
+ printOutput(`Automation rule ${id} not found or inaccessible.`);
191
+ return;
192
+ }
193
+ printRows([rule], AUTOMATION_RULE_COLUMNS, format);
194
+ }
195
+ const AUTOMATION_REMOVAL_COLUMNS = [
196
+ { header: "id", value: result => result.id },
197
+ { header: "name", value: result => result.name },
198
+ { header: "projectKey", value: result => result.projectKey },
199
+ { header: "deleted", value: result => result.deleted }
200
+ ];
201
+ function printAutomationRemovalResult(result, id) {
202
+ const format = getActiveOutputFormat();
203
+ if (!result) {
204
+ if (format === "json")
205
+ printJson(null);
206
+ else if (format === "csv")
207
+ printRows([], AUTOMATION_REMOVAL_COLUMNS, format);
208
+ else
209
+ printOutput(`Automation rule ${id} not found or inaccessible.`);
210
+ return;
211
+ }
212
+ if (format === "table") {
213
+ printOutput(`Removed automation rule ${result.name} (${result.id}).`);
214
+ return;
215
+ }
216
+ printRows([result], AUTOMATION_REMOVAL_COLUMNS, format);
217
+ }
218
+ export function registerAutomationCommands(program) {
219
+ const automationsCmd = program
220
+ .command("automations")
221
+ .description("Manage project automation rules");
222
+ addOutputOptions(automationsCmd.command("list"))
223
+ .option("-p, --project <key>", "Project key; defaults to config.defaultProject")
224
+ .option("-n, --limit <number>", "Max automation rules", "20")
225
+ .description("List project automation rules")
226
+ .action(async (opts) => {
227
+ try {
228
+ const projectKey = await resolveRequiredProjectKey(opts.project);
229
+ printAutomationRules(await listAutomationRules(projectKey, {
230
+ limit: parsePositiveIntegerOption(opts.limit)
231
+ }), projectKey);
232
+ }
233
+ catch (error) {
234
+ printError("Failed:", error instanceof Error ? error.message : error);
235
+ process.exit(1);
236
+ }
237
+ });
238
+ addOutputOptions(automationsCmd.command("create"))
239
+ .option("-p, --project <key>", "Project key; defaults to config.defaultProject")
240
+ .option("--name <name>", "Automation rule name")
241
+ .option("--description <description>", "Optional rule description")
242
+ .option("--trigger <trigger>", "Automation trigger")
243
+ .option("--trigger-value <value>", "Optional trigger condition value")
244
+ .option("--action <json>", "Typed automation action JSON")
245
+ .description("Create a project automation rule")
246
+ .action(async (opts) => {
247
+ try {
248
+ const projectKey = await resolveRequiredProjectKey(opts.project);
249
+ const rule = await createAutomationRule({
250
+ action: readAutomationAction(opts.action),
251
+ description: readOptionalText(opts.description, "Description", "--description"),
252
+ name: readRequiredText(opts.name, "Name", "--name"),
253
+ projectKey,
254
+ trigger: readAutomationTrigger(opts.trigger),
255
+ triggerValue: readOptionalText(opts.triggerValue, "Trigger value", "--trigger-value")
256
+ });
257
+ printAutomationRules(rule ? [rule] : null, projectKey);
258
+ }
259
+ catch (error) {
260
+ printError("Failed:", error instanceof Error ? error.message : error);
261
+ process.exit(1);
262
+ }
263
+ });
264
+ addOutputOptions(automationsCmd.command("update"))
265
+ .argument("<id>", "Automation rule ID")
266
+ .option("--name <name>", "Automation rule name")
267
+ .option("--description <description>", "Rule description")
268
+ .option("--clear-description", "Remove rule description")
269
+ .option("--trigger <trigger>", "Automation trigger")
270
+ .option("--trigger-value <value>", "Trigger condition value")
271
+ .option("--clear-trigger-value", "Remove trigger condition value")
272
+ .option("--action <json>", "Typed automation action JSON")
273
+ .option("--active", "Enable the automation rule")
274
+ .option("--inactive", "Disable the automation rule")
275
+ .description("Update a project automation rule")
276
+ .action(async (id, opts) => {
277
+ try {
278
+ const ruleId = readRequiredText(id, "Automation rule ID", "<id>");
279
+ printAutomationRuleResult(await updateAutomationRule(ruleId, readAutomationUpdateInput(opts)), ruleId);
280
+ }
281
+ catch (error) {
282
+ printError("Failed:", error instanceof Error ? error.message : error);
283
+ process.exit(1);
284
+ }
285
+ });
286
+ addOutputOptions(automationsCmd.command("remove"))
287
+ .argument("<id>", "Automation rule ID")
288
+ .option("-y, --yes", "Confirm automation rule removal")
289
+ .description("Remove a project automation rule")
290
+ .action(async (id, opts) => {
291
+ try {
292
+ const ruleId = readRequiredText(id, "Automation rule ID", "<id>");
293
+ await requireConfirmation(`Remove automation rule ${ruleId}?`, opts.yes === true);
294
+ printAutomationRemovalResult(await removeAutomationRule(ruleId), ruleId);
295
+ }
296
+ catch (error) {
297
+ printError("Failed:", error instanceof Error ? error.message : error);
298
+ process.exit(1);
299
+ }
300
+ });
301
+ }
302
+ //# sourceMappingURL=automations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automations.js","sourceRoot":"","sources":["../../src/commands/automations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Command } from "commander";
2
+ export type CommandGroup = {
3
+ children: Command[];
4
+ path: string[];
5
+ };
6
+ export declare function visibleSubcommands(command: Command): Command[];
7
+ export declare function commandGroups(root: Command): CommandGroup[];
8
+ export declare function commandLeafPaths(root: Command): string[][];
9
+ export declare function commandDescription(command: Command): string;
10
+ //# sourceMappingURL=commandTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandTree.d.ts","sourceRoot":"","sources":["../../src/commands/commandTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf,CAAA;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAG9D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,EAAE,CAa3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,EAAE,CAe1D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,36 @@
1
+ export function visibleSubcommands(command) {
2
+ const visible = new Set(command.createHelp().visibleCommands(command));
3
+ return command.commands.filter(child => visible.has(child));
4
+ }
5
+ export function commandGroups(root) {
6
+ const groups = [];
7
+ function visit(command, path) {
8
+ const children = visibleSubcommands(command);
9
+ if (children.length === 0)
10
+ return;
11
+ groups.push({ children, path });
12
+ for (const child of children)
13
+ visit(child, [...path, child.name()]);
14
+ }
15
+ visit(root, []);
16
+ return groups;
17
+ }
18
+ export function commandLeafPaths(root) {
19
+ const paths = [];
20
+ function visit(command, path) {
21
+ const children = visibleSubcommands(command);
22
+ if (children.length === 0) {
23
+ if (path.length > 0)
24
+ paths.push(path);
25
+ return;
26
+ }
27
+ for (const child of children)
28
+ visit(child, [...path, child.name()]);
29
+ }
30
+ visit(root, []);
31
+ return paths;
32
+ }
33
+ export function commandDescription(command) {
34
+ return command.summary() || command.description() || command.name();
35
+ }
36
+ //# sourceMappingURL=commandTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandTree.js","sourceRoot":"","sources":["../../src/commands/commandTree.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACtE,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,MAAM,MAAM,GAAmB,EAAE,CAAA;IAEjC,SAAS,KAAK,CAAC,OAAgB,EAAE,IAAc;QAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEjC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/B,KAAK,MAAM,KAAK,IAAI,QAAQ;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACf,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,MAAM,KAAK,GAAe,EAAE,CAAA;IAE5B,SAAS,KAAK,CAAC,OAAgB,EAAE,IAAc;QAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrC,OAAM;QACR,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IACf,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAA;AACrE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Command } from "commander";
2
+ type Shell = "bash" | "zsh" | "fish";
3
+ export declare function completionForShell(program: Command, shell: Shell): string;
4
+ export declare function registerCompletionCommand(program: Command): void;
5
+ export {};
6
+ //# sourceMappingURL=completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAA;AAwFpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,CAIzE;AAMD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAYhE"}
@@ -0,0 +1,101 @@
1
+ import { printError, printOutput } from "../lib/output.js";
2
+ import { commandDescription, commandGroups } from "./commandTree.js";
3
+ function shellSingleQuote(value) {
4
+ return `'${value.replaceAll("'", `'\\''`)}'`;
5
+ }
6
+ function fishDoubleQuote(value) {
7
+ return `"${value.replaceAll("\\", "\\\\").replaceAll('"', '\\"').replaceAll("$", "\\$")}"`;
8
+ }
9
+ function bashCompletion(program) {
10
+ const cases = commandGroups(program)
11
+ .map(({ children, path }) => {
12
+ const candidates = children.map(command => command.name()).join(" ");
13
+ return ` ${shellSingleQuote(path.join(" "))}) COMPREPLY=( $(compgen -W ${shellSingleQuote(candidates)} -- "$current") ); return 0 ;;`;
14
+ })
15
+ .join("\n");
16
+ return `# nixelo bash completion
17
+ _nixelo_completion() {
18
+ local command_path current index word
19
+ COMPREPLY=()
20
+ current="\${COMP_WORDS[COMP_CWORD]}"
21
+ command_path=""
22
+
23
+ for ((index=1; index<COMP_CWORD; index++)); do
24
+ word="\${COMP_WORDS[index]}"
25
+ [[ "$word" == -* ]] && continue
26
+ command_path="\${command_path:+$command_path }$word"
27
+ done
28
+
29
+ case "$command_path" in
30
+ ${cases}
31
+ esac
32
+ }
33
+ complete -F _nixelo_completion nixelo`;
34
+ }
35
+ function zshCompletion(program) {
36
+ const cases = commandGroups(program)
37
+ .map(({ children, path }) => {
38
+ const candidates = children
39
+ .map(command => shellSingleQuote(`${command.name()}:${commandDescription(command)}`))
40
+ .join(" ");
41
+ return ` ${shellSingleQuote(path.join(" "))}) commands=( ${candidates} ) ;;`;
42
+ })
43
+ .join("\n");
44
+ return `#compdef nixelo
45
+ _nixelo() {
46
+ local command_path index
47
+ local -a commands
48
+ command_path=""
49
+
50
+ for ((index=2; index<CURRENT; index++)); do
51
+ [[ "\${words[index]}" == -* ]] && continue
52
+ command_path="\${command_path:+$command_path }\${words[index]}"
53
+ done
54
+
55
+ case "$command_path" in
56
+ ${cases}
57
+ *) return 0 ;;
58
+ esac
59
+ _describe 'command' commands
60
+ }
61
+ _nixelo "$@"`;
62
+ }
63
+ function fishCompletion(program) {
64
+ const lines = commandGroups(program).flatMap(({ children, path }) => {
65
+ const condition = `test "(__nixelo_command_path)" = ${fishDoubleQuote(path.join(" "))}`;
66
+ return children.map(command => `complete -c nixelo -f -n ${shellSingleQuote(condition)} -a ${fishDoubleQuote(command.name())} -d ${fishDoubleQuote(commandDescription(command))}`);
67
+ });
68
+ return `function __nixelo_command_path
69
+ set -l words (commandline -opc)
70
+ if test (count $words) -le 1
71
+ return
72
+ end
73
+ string join ' ' $words[2..-1]
74
+ end
75
+
76
+ ${lines.join("\n")}`;
77
+ }
78
+ export function completionForShell(program, shell) {
79
+ if (shell === "bash")
80
+ return bashCompletion(program);
81
+ if (shell === "zsh")
82
+ return zshCompletion(program);
83
+ return fishCompletion(program);
84
+ }
85
+ function isShell(value) {
86
+ return value === "bash" || value === "zsh" || value === "fish";
87
+ }
88
+ export function registerCompletionCommand(program) {
89
+ program
90
+ .command("completion")
91
+ .argument("<shell>", "Shell: bash, zsh, or fish")
92
+ .description("Print shell completion script")
93
+ .action((shell) => {
94
+ if (!isShell(shell)) {
95
+ printError("Unsupported shell. Use bash, zsh, or fish.");
96
+ process.exit(1);
97
+ }
98
+ printOutput(completionForShell(program, shell));
99
+ });
100
+ }
101
+ //# sourceMappingURL=completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completion.js","sourceRoot":"","sources":["../../src/commands/completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerConfigCommands(program: Command): void;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAsGxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD7D"}
@@ -0,0 +1,133 @@
1
+ import { getAuthFilePath, getConfigDirPath, getConfigFilePath, loadConfig, saveConfig } from "../lib/auth.js";
2
+ import { getActiveOutputFormat, printError, printJson, printOutput, printRows } from "../lib/output.js";
3
+ import { addOutputOptions } from "./global.js";
4
+ const CONFIG_COLUMNS = [
5
+ { header: "defaultProject", value: row => row.defaultProject }
6
+ ];
7
+ const CONFIG_PATH_COLUMNS = [
8
+ { header: "name", value: row => row.name },
9
+ { header: "path", value: row => row.path }
10
+ ];
11
+ function printConfig(config) {
12
+ const format = getActiveOutputFormat();
13
+ if (format === "json") {
14
+ printJson(config);
15
+ return;
16
+ }
17
+ if (format === "csv") {
18
+ printRows([config], CONFIG_COLUMNS, format);
19
+ return;
20
+ }
21
+ printOutput(`Project: ${config.defaultProject ?? "-"}`);
22
+ }
23
+ function printConfigUpdate(config) {
24
+ if (getActiveOutputFormat() === "table") {
25
+ printOutput("Config updated:", JSON.stringify(config));
26
+ return;
27
+ }
28
+ printConfig(config);
29
+ }
30
+ function applyConfigSet(config, opts) {
31
+ if (opts.project === undefined)
32
+ throw new Error("Pass --project <key>.");
33
+ const defaultProject = opts.project.trim();
34
+ if (!defaultProject)
35
+ throw new Error("--project must not be empty.");
36
+ return { ...config, defaultProject };
37
+ }
38
+ function applyConfigClear(config, opts) {
39
+ if (!opts.project && !opts.all)
40
+ throw new Error("Pass --project or --all.");
41
+ if (opts.all && opts.project)
42
+ throw new Error("Use --all or --project, not both.");
43
+ if (opts.all)
44
+ return {};
45
+ return opts.project ? {} : config;
46
+ }
47
+ function getConfigPathRows(options) {
48
+ if (!options.auth && !options.config && !options.dir) {
49
+ return [
50
+ { name: "dir", path: getConfigDirPath() },
51
+ { name: "config", path: getConfigFilePath() },
52
+ { name: "auth", path: getAuthFilePath() }
53
+ ];
54
+ }
55
+ const rows = [];
56
+ if (options.dir)
57
+ rows.push({ name: "dir", path: getConfigDirPath() });
58
+ if (options.config)
59
+ rows.push({ name: "config", path: getConfigFilePath() });
60
+ if (options.auth)
61
+ rows.push({ name: "auth", path: getAuthFilePath() });
62
+ return rows;
63
+ }
64
+ function printConfigPathRows(rows) {
65
+ const format = getActiveOutputFormat();
66
+ if (format === "json") {
67
+ printJson(rows);
68
+ return;
69
+ }
70
+ if (format === "csv") {
71
+ printRows(rows, CONFIG_PATH_COLUMNS, format);
72
+ return;
73
+ }
74
+ for (const row of rows)
75
+ printOutput(`${row.name}: ${row.path}`);
76
+ }
77
+ export function registerConfigCommands(program) {
78
+ const configCmd = program.command("config").description("Manage CLI configuration");
79
+ addOutputOptions(configCmd.command("get").description("Show CLI defaults")).action(async () => {
80
+ try {
81
+ const config = await loadConfig();
82
+ printConfig(config);
83
+ }
84
+ catch (error) {
85
+ printError("Failed:", error instanceof Error ? error.message : error);
86
+ process.exit(1);
87
+ }
88
+ });
89
+ addOutputOptions(configCmd.command("path"))
90
+ .option("--auth", "Show auth token file path")
91
+ .option("--config", "Show defaults config file path")
92
+ .option("--dir", "Show Nixelo config directory")
93
+ .description("Show local CLI config paths")
94
+ .action((opts) => {
95
+ try {
96
+ printConfigPathRows(getConfigPathRows(opts));
97
+ }
98
+ catch (error) {
99
+ printError("Failed:", error instanceof Error ? error.message : error);
100
+ process.exit(1);
101
+ }
102
+ });
103
+ addOutputOptions(configCmd.command("set"))
104
+ .option("--project <key>", "Default project key")
105
+ .description("Configure CLI defaults")
106
+ .action(async (opts) => {
107
+ try {
108
+ const config = applyConfigSet(await loadConfig(), opts);
109
+ await saveConfig(config);
110
+ printConfigUpdate(config);
111
+ }
112
+ catch (error) {
113
+ printError("Failed:", error instanceof Error ? error.message : error);
114
+ process.exit(1);
115
+ }
116
+ });
117
+ addOutputOptions(configCmd.command("clear"))
118
+ .option("--project", "Clear default project")
119
+ .option("--all", "Clear all CLI defaults")
120
+ .description("Clear CLI defaults")
121
+ .action(async (opts) => {
122
+ try {
123
+ const config = applyConfigClear(await loadConfig(), opts);
124
+ await saveConfig(config);
125
+ printConfigUpdate(config);
126
+ }
127
+ catch (error) {
128
+ printError("Failed:", error instanceof Error ? error.message : error);
129
+ process.exit(1);
130
+ }
131
+ });
132
+ }
133
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerDocumentsCommands(program: Command): void;
3
+ //# sourceMappingURL=documents.d.ts.map