tabstax-cli 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +110 -0
  2. package/bin/hey.js +2 -0
  3. package/dist/__tests__/api.test.d.ts +6 -0
  4. package/dist/__tests__/api.test.d.ts.map +1 -0
  5. package/dist/__tests__/api.test.js +146 -0
  6. package/dist/__tests__/api.test.js.map +1 -0
  7. package/dist/__tests__/config.test.d.ts +6 -0
  8. package/dist/__tests__/config.test.d.ts.map +1 -0
  9. package/dist/__tests__/config.test.js +78 -0
  10. package/dist/__tests__/config.test.js.map +1 -0
  11. package/dist/__tests__/output.test.d.ts +6 -0
  12. package/dist/__tests__/output.test.d.ts.map +1 -0
  13. package/dist/__tests__/output.test.js +104 -0
  14. package/dist/__tests__/output.test.js.map +1 -0
  15. package/dist/commands/add.d.ts +12 -0
  16. package/dist/commands/add.d.ts.map +1 -0
  17. package/dist/commands/add.js +76 -0
  18. package/dist/commands/add.js.map +1 -0
  19. package/dist/commands/auth.d.ts +11 -0
  20. package/dist/commands/auth.d.ts.map +1 -0
  21. package/dist/commands/auth.js +135 -0
  22. package/dist/commands/auth.js.map +1 -0
  23. package/dist/commands/context.d.ts +15 -0
  24. package/dist/commands/context.d.ts.map +1 -0
  25. package/dist/commands/context.js +75 -0
  26. package/dist/commands/context.js.map +1 -0
  27. package/dist/commands/done.d.ts +13 -0
  28. package/dist/commands/done.d.ts.map +1 -0
  29. package/dist/commands/done.js +76 -0
  30. package/dist/commands/done.js.map +1 -0
  31. package/dist/commands/edit.d.ts +27 -0
  32. package/dist/commands/edit.d.ts.map +1 -0
  33. package/dist/commands/edit.js +170 -0
  34. package/dist/commands/edit.js.map +1 -0
  35. package/dist/commands/list.d.ts +11 -0
  36. package/dist/commands/list.d.ts.map +1 -0
  37. package/dist/commands/list.js +112 -0
  38. package/dist/commands/list.js.map +1 -0
  39. package/dist/commands/remove.d.ts +9 -0
  40. package/dist/commands/remove.d.ts.map +1 -0
  41. package/dist/commands/remove.js +69 -0
  42. package/dist/commands/remove.js.map +1 -0
  43. package/dist/index.d.ts +7 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +113 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib/api.d.ts +69 -0
  48. package/dist/lib/api.d.ts.map +1 -0
  49. package/dist/lib/api.js +303 -0
  50. package/dist/lib/api.js.map +1 -0
  51. package/dist/lib/config.d.ts +51 -0
  52. package/dist/lib/config.d.ts.map +1 -0
  53. package/dist/lib/config.js +131 -0
  54. package/dist/lib/config.js.map +1 -0
  55. package/dist/lib/output.d.ts +37 -0
  56. package/dist/lib/output.d.ts.map +1 -0
  57. package/dist/lib/output.js +209 -0
  58. package/dist/lib/output.js.map +1 -0
  59. package/package.json +64 -0
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Authentication commands for Hey CLI
3
+ * hey login, hey logout, hey whoami
4
+ */
5
+ import { createInterface } from 'readline';
6
+ import { config } from '../lib/config.js';
7
+ import { api } from '../lib/api.js';
8
+ import { printSuccess, printError, printInfo } from '../lib/output.js';
9
+ async function prompt(question, hidden = false) {
10
+ const rl = createInterface({
11
+ input: process.stdin,
12
+ output: process.stdout,
13
+ });
14
+ return new Promise((resolve) => {
15
+ if (hidden && process.stdin.isTTY) {
16
+ // Hide password input
17
+ process.stdout.write(question);
18
+ let password = '';
19
+ process.stdin.setRawMode(true);
20
+ process.stdin.resume();
21
+ process.stdin.setEncoding('utf8');
22
+ const onData = (char) => {
23
+ if (char === '\n' || char === '\r' || char === '\u0004') {
24
+ process.stdin.setRawMode(false);
25
+ process.stdin.pause();
26
+ process.stdin.removeListener('data', onData);
27
+ rl.close();
28
+ console.log();
29
+ resolve(password);
30
+ }
31
+ else if (char === '\u0003') {
32
+ // Ctrl+C
33
+ process.exit();
34
+ }
35
+ else if (char === '\u007F' || char === '\b') {
36
+ // Backspace
37
+ password = password.slice(0, -1);
38
+ }
39
+ else {
40
+ password += char;
41
+ }
42
+ };
43
+ process.stdin.on('data', onData);
44
+ }
45
+ else {
46
+ rl.question(question, (answer) => {
47
+ rl.close();
48
+ resolve(answer);
49
+ });
50
+ }
51
+ });
52
+ }
53
+ export async function login(options) {
54
+ try {
55
+ if (options.token) {
56
+ // Direct token login
57
+ config.setAuth({
58
+ accessToken: options.token,
59
+ expiresAt: null,
60
+ userEmail: 'unknown',
61
+ userId: 'unknown',
62
+ });
63
+ api.resetClient();
64
+ printSuccess('Logged in with token');
65
+ return;
66
+ }
67
+ // Interactive login
68
+ console.log('Login to TabStax');
69
+ console.log();
70
+ const email = await prompt('Email: ');
71
+ const password = await prompt('Password: ', true);
72
+ if (!email || !password) {
73
+ printError('Email and password required');
74
+ process.exit(1);
75
+ }
76
+ const result = await api.signIn(email, password);
77
+ printSuccess(`Logged in as ${result.email}`);
78
+ }
79
+ catch (error) {
80
+ const message = error instanceof Error ? error.message : 'Login failed';
81
+ printError(message);
82
+ process.exit(1);
83
+ }
84
+ }
85
+ export async function logout() {
86
+ await api.signOut();
87
+ printSuccess('Logged out');
88
+ }
89
+ export async function whoami() {
90
+ const auth = config.getAuth();
91
+ if (!config.isAuthenticated()) {
92
+ printError('Not logged in. Run: hey login');
93
+ process.exit(1);
94
+ }
95
+ console.log(`Email: ${auth.userEmail}`);
96
+ console.log(`User ID: ${auth.userId}`);
97
+ console.log(`Config: ${config.path}`);
98
+ if (auth.expiresAt) {
99
+ const expiry = new Date(auth.expiresAt);
100
+ const isExpired = expiry.getTime() < Date.now();
101
+ if (isExpired) {
102
+ printInfo('Token expired. Run: hey login');
103
+ }
104
+ else {
105
+ console.log(`Expires: ${expiry.toLocaleString()}`);
106
+ }
107
+ }
108
+ }
109
+ export async function status() {
110
+ const auth = config.getAuth();
111
+ const context = config.getContext();
112
+ const limits = config.getLimits();
113
+ console.log('Hey CLI Status');
114
+ console.log();
115
+ // Auth status
116
+ if (config.isAuthenticated()) {
117
+ printSuccess(`Logged in as ${auth.userEmail}`);
118
+ }
119
+ else {
120
+ printError('Not logged in');
121
+ }
122
+ // Context
123
+ if (context.lastProject) {
124
+ console.log(`Default project: ${context.lastProject}`);
125
+ }
126
+ else {
127
+ console.log('Default project: (none)');
128
+ }
129
+ // Limits
130
+ console.log(`Action limit: ${limits.maxActionsPerStax} per stax`);
131
+ // Config path
132
+ console.log();
133
+ console.log(`Config: ${config.path}`);
134
+ }
135
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Context commands for Hey CLI
3
+ * hey use <project> - sets default project
4
+ */
5
+ /**
6
+ * Set default project context
7
+ * hey use <project>
8
+ */
9
+ export declare function use(projectName: string): Promise<void>;
10
+ /**
11
+ * Show current context
12
+ * hey which
13
+ */
14
+ export declare function which(): Promise<void>;
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;;GAGG;AACH,wBAAsB,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC5D;AAED;;;GAGG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqB3C"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Context commands for Hey CLI
3
+ * hey use <project> - sets default project
4
+ */
5
+ import { config } from '../lib/config.js';
6
+ import { api } from '../lib/api.js';
7
+ import { printSuccess, printError, printWarning, printInfo, } from '../lib/output.js';
8
+ function requireAuth() {
9
+ if (!config.isAuthenticated()) {
10
+ printError('Not logged in. Run: hey login');
11
+ process.exit(1);
12
+ }
13
+ }
14
+ /**
15
+ * Set default project context
16
+ * hey use <project>
17
+ */
18
+ export async function use(projectName) {
19
+ requireAuth();
20
+ try {
21
+ // Find the stax
22
+ const matches = await api.fuzzyFindStax(projectName);
23
+ if (matches.length === 0) {
24
+ printError(`Project "${projectName}" not found`);
25
+ const allStax = await api.getAllStax();
26
+ if (allStax.length > 0) {
27
+ console.log();
28
+ console.log('Available projects:');
29
+ allStax.slice(0, 10).forEach(s => console.log(` - ${s.name}`));
30
+ }
31
+ process.exit(1);
32
+ }
33
+ if (matches.length > 1) {
34
+ printWarning(`Multiple matches for "${projectName}":`);
35
+ matches.forEach(s => console.log(` - ${s.name}`));
36
+ console.log();
37
+ console.log('Be more specific.');
38
+ process.exit(1);
39
+ }
40
+ const stax = matches[0];
41
+ // Update context
42
+ config.setLastProject(stax.name, stax.id);
43
+ printSuccess(`Default project set to: ${stax.name}`);
44
+ printInfo('Future commands will use this project unless specified otherwise.');
45
+ }
46
+ catch (error) {
47
+ const message = error instanceof Error ? error.message : 'Failed to set project';
48
+ printError(message);
49
+ process.exit(1);
50
+ }
51
+ }
52
+ /**
53
+ * Show current context
54
+ * hey which
55
+ */
56
+ export async function which() {
57
+ const context = config.getContext();
58
+ const auth = config.getAuth();
59
+ if (!config.isAuthenticated()) {
60
+ printError('Not logged in. Run: hey login');
61
+ process.exit(1);
62
+ }
63
+ console.log('Current context:');
64
+ console.log();
65
+ if (context.lastProject) {
66
+ console.log(` Project: ${context.lastProject}`);
67
+ }
68
+ else {
69
+ console.log(' Project: (none set)');
70
+ printInfo('Use: hey use <project> to set default project');
71
+ }
72
+ console.log(` User: ${auth.userEmail}`);
73
+ console.log(` Config: ${config.path}`);
74
+ }
75
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Done command for Hey CLI
3
+ * hey done <n> - marks action #n as completed (becomes breadcrumb)
4
+ */
5
+ export interface DoneOptions {
6
+ project?: string;
7
+ }
8
+ export declare function done(index: string, options?: DoneOptions): Promise<void>;
9
+ /**
10
+ * Quick done: hey done (completes first action)
11
+ */
12
+ export declare function doneFirst(options?: DoneOptions): Promise<void>;
13
+ //# sourceMappingURL=done.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"done.d.ts","sourceRoot":"","sources":["../../src/commands/done.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AASD,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoElF;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAExE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Done command for Hey CLI
3
+ * hey done <n> - marks action #n as completed (becomes breadcrumb)
4
+ */
5
+ import { config } from '../lib/config.js';
6
+ import { api } from '../lib/api.js';
7
+ import { printSuccess, printError, printWarning, formatBreadcrumb, } from '../lib/output.js';
8
+ function requireAuth() {
9
+ if (!config.isAuthenticated()) {
10
+ printError('Not logged in. Run: hey login');
11
+ process.exit(1);
12
+ }
13
+ }
14
+ export async function done(index, options = {}) {
15
+ requireAuth();
16
+ try {
17
+ const context = config.getContext();
18
+ const projectName = options.project ?? context.lastProject;
19
+ if (!projectName) {
20
+ printError('No project specified. Use: hey done -p <project> <n> or hey use <project>');
21
+ process.exit(1);
22
+ }
23
+ // Parse index (1-based for user, 0-based internally)
24
+ const num = parseInt(index, 10);
25
+ if (isNaN(num) || num < 1) {
26
+ printError('Invalid action number. Use: hey done <n> where n is 1, 2, 3...');
27
+ process.exit(1);
28
+ }
29
+ // Find the stax
30
+ const matches = await api.fuzzyFindStax(projectName);
31
+ if (matches.length === 0) {
32
+ printError(`Project "${projectName}" not found`);
33
+ process.exit(1);
34
+ }
35
+ if (matches.length > 1) {
36
+ printWarning(`Multiple matches for "${projectName}":`);
37
+ matches.forEach(s => console.log(` - ${s.name}`));
38
+ console.log();
39
+ console.log('Be more specific or use: hey use <project>');
40
+ process.exit(1);
41
+ }
42
+ const stax = matches[0];
43
+ // Get current actions
44
+ const actions = await api.getActions(stax.id, false);
45
+ if (actions.length === 0) {
46
+ printWarning(`${stax.name} has no pending actions`);
47
+ process.exit(0);
48
+ }
49
+ if (num > actions.length) {
50
+ printError(`Action #${num} not found. ${stax.name} has ${actions.length} actions.`);
51
+ console.log();
52
+ console.log('Current actions:');
53
+ actions.forEach((a, i) => console.log(` ${i + 1}. ${a.content}`));
54
+ process.exit(1);
55
+ }
56
+ // Complete the action
57
+ const actionToComplete = actions[num - 1];
58
+ const completed = await api.completeAction(actionToComplete.id);
59
+ // Update context
60
+ config.setLastProject(stax.name, stax.id);
61
+ printSuccess(`Completed action #${num}`);
62
+ console.log(formatBreadcrumb(completed));
63
+ }
64
+ catch (error) {
65
+ const message = error instanceof Error ? error.message : 'Failed to complete action';
66
+ printError(message);
67
+ process.exit(1);
68
+ }
69
+ }
70
+ /**
71
+ * Quick done: hey done (completes first action)
72
+ */
73
+ export async function doneFirst(options = {}) {
74
+ await done('1', options);
75
+ }
76
+ //# sourceMappingURL=done.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"done.js","sourceRoot":"","sources":["../../src/commands/done.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Edit commands for Hey CLI
3
+ * hey edit <n> "new text" - edits action content
4
+ * hey pri <project> <priority> - sets project priority
5
+ * hey mv <n> <m> - moves action from position n to m
6
+ */
7
+ export interface EditOptions {
8
+ project?: string;
9
+ }
10
+ export interface PriorityOptions {
11
+ }
12
+ /**
13
+ * Edit action content
14
+ * hey edit <n> "new content"
15
+ */
16
+ export declare function edit(index: string, content: string, options?: EditOptions): Promise<void>;
17
+ /**
18
+ * Set project priority
19
+ * hey pri <project> <must|should|good|meh>
20
+ */
21
+ export declare function priority(projectName: string, level: string): Promise<void>;
22
+ /**
23
+ * Move action position
24
+ * hey mv <from> <to>
25
+ */
26
+ export declare function move(fromIndex: string, toIndex: string, options?: EditOptions): Promise<void>;
27
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;CAE/B;AASD;;;GAGG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyDnG;AAED;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChF;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEvG"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Edit commands for Hey CLI
3
+ * hey edit <n> "new text" - edits action content
4
+ * hey pri <project> <priority> - sets project priority
5
+ * hey mv <n> <m> - moves action from position n to m
6
+ */
7
+ import { config } from '../lib/config.js';
8
+ import { api } from '../lib/api.js';
9
+ import { printSuccess, printError, printWarning, formatAction, formatPriorityWithLabel, } from '../lib/output.js';
10
+ function requireAuth() {
11
+ if (!config.isAuthenticated()) {
12
+ printError('Not logged in. Run: hey login');
13
+ process.exit(1);
14
+ }
15
+ }
16
+ /**
17
+ * Edit action content
18
+ * hey edit <n> "new content"
19
+ */
20
+ export async function edit(index, content, options = {}) {
21
+ requireAuth();
22
+ try {
23
+ const context = config.getContext();
24
+ const projectName = options.project ?? context.lastProject;
25
+ if (!projectName) {
26
+ printError('No project specified. Use: hey edit -p <project> <n> "text"');
27
+ process.exit(1);
28
+ }
29
+ const num = parseInt(index, 10);
30
+ if (isNaN(num) || num < 1) {
31
+ printError('Invalid action number. Use: hey edit <n> "new text"');
32
+ process.exit(1);
33
+ }
34
+ // Find the stax
35
+ const matches = await api.fuzzyFindStax(projectName);
36
+ if (matches.length === 0) {
37
+ printError(`Project "${projectName}" not found`);
38
+ process.exit(1);
39
+ }
40
+ if (matches.length > 1) {
41
+ printWarning(`Multiple matches for "${projectName}":`);
42
+ matches.forEach(s => console.log(` - ${s.name}`));
43
+ process.exit(1);
44
+ }
45
+ const stax = matches[0];
46
+ // Get current actions
47
+ const actions = await api.getActions(stax.id, false);
48
+ if (num > actions.length) {
49
+ printError(`Action #${num} not found. ${stax.name} has ${actions.length} actions.`);
50
+ process.exit(1);
51
+ }
52
+ // Edit the action
53
+ const actionToEdit = actions[num - 1];
54
+ const updated = await api.editAction(actionToEdit.id, content);
55
+ // Update context
56
+ config.setLastProject(stax.name, stax.id);
57
+ printSuccess(`Updated action #${num}`);
58
+ console.log(formatAction(updated, num - 1));
59
+ }
60
+ catch (error) {
61
+ const message = error instanceof Error ? error.message : 'Failed to edit action';
62
+ printError(message);
63
+ process.exit(1);
64
+ }
65
+ }
66
+ /**
67
+ * Set project priority
68
+ * hey pri <project> <must|should|good|meh>
69
+ */
70
+ export async function priority(projectName, level) {
71
+ requireAuth();
72
+ const validPriorities = ['must', 'should', 'good', 'meh'];
73
+ if (!validPriorities.includes(level.toLowerCase())) {
74
+ printError(`Invalid priority. Use: must, should, good, or meh`);
75
+ console.log();
76
+ console.log('Priorities:');
77
+ console.log(' must - Critical, do today');
78
+ console.log(' should - Important, do this week');
79
+ console.log(' good - Nice to have');
80
+ console.log(' meh - Low priority');
81
+ process.exit(1);
82
+ }
83
+ try {
84
+ // Find the stax
85
+ const matches = await api.fuzzyFindStax(projectName);
86
+ if (matches.length === 0) {
87
+ printError(`Project "${projectName}" not found`);
88
+ process.exit(1);
89
+ }
90
+ if (matches.length > 1) {
91
+ printWarning(`Multiple matches for "${projectName}":`);
92
+ matches.forEach(s => console.log(` - ${s.name}`));
93
+ process.exit(1);
94
+ }
95
+ const stax = matches[0];
96
+ // Set priority
97
+ const priorityValue = level.toLowerCase();
98
+ await api.setAttentionBlock(stax.id, priorityValue);
99
+ // Update context
100
+ config.setLastProject(stax.name, stax.id);
101
+ printSuccess(`Set ${stax.name} priority to ${formatPriorityWithLabel(priorityValue)}`);
102
+ }
103
+ catch (error) {
104
+ const message = error instanceof Error ? error.message : 'Failed to set priority';
105
+ printError(message);
106
+ process.exit(1);
107
+ }
108
+ }
109
+ /**
110
+ * Move action position
111
+ * hey mv <from> <to>
112
+ */
113
+ export async function move(fromIndex, toIndex, options = {}) {
114
+ requireAuth();
115
+ try {
116
+ const context = config.getContext();
117
+ const projectName = options.project ?? context.lastProject;
118
+ if (!projectName) {
119
+ printError('No project specified. Use: hey mv -p <project> <from> <to>');
120
+ process.exit(1);
121
+ }
122
+ const from = parseInt(fromIndex, 10);
123
+ const to = parseInt(toIndex, 10);
124
+ if (isNaN(from) || isNaN(to) || from < 1 || to < 1) {
125
+ printError('Invalid positions. Use: hey mv <from> <to> where both are 1, 2, 3...');
126
+ process.exit(1);
127
+ }
128
+ // Find the stax
129
+ const matches = await api.fuzzyFindStax(projectName);
130
+ if (matches.length === 0) {
131
+ printError(`Project "${projectName}" not found`);
132
+ process.exit(1);
133
+ }
134
+ if (matches.length > 1) {
135
+ printWarning(`Multiple matches for "${projectName}":`);
136
+ matches.forEach(s => console.log(` - ${s.name}`));
137
+ process.exit(1);
138
+ }
139
+ const stax = matches[0];
140
+ // Get current actions
141
+ const actions = await api.getActions(stax.id, false);
142
+ if (from > actions.length || to > actions.length) {
143
+ printError(`Invalid positions. ${stax.name} has ${actions.length} actions.`);
144
+ process.exit(1);
145
+ }
146
+ // Reorder locally and update positions
147
+ const reordered = [...actions];
148
+ const [moved] = reordered.splice(from - 1, 1);
149
+ reordered.splice(to - 1, 0, moved);
150
+ // Update positions in DB
151
+ for (let i = 0; i < reordered.length; i++) {
152
+ if (reordered[i].position !== i) {
153
+ await api.updateActionPosition(reordered[i].id, i);
154
+ }
155
+ }
156
+ // Update context
157
+ config.setLastProject(stax.name, stax.id);
158
+ printSuccess(`Moved action #${from} to position #${to}`);
159
+ // Show new order
160
+ console.log();
161
+ console.log('New order:');
162
+ reordered.forEach((a, i) => console.log(formatAction(a, i)));
163
+ }
164
+ catch (error) {
165
+ const message = error instanceof Error ? error.message : 'Failed to move action';
166
+ printError(message);
167
+ process.exit(1);
168
+ }
169
+ }
170
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * List commands for Hey CLI
3
+ * hey ls, hey ls stax, hey ls <project>
4
+ */
5
+ export interface ListOptions {
6
+ all?: boolean;
7
+ done?: boolean;
8
+ count?: string;
9
+ }
10
+ export declare function list(target?: string, options?: ListOptions): Promise<void>;
11
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AASD,wBAAsB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBpF"}