@doist/todoist-cli 1.63.2 → 1.65.0-next.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 (85) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/commands/auth/index.d.ts.map +1 -1
  3. package/dist/commands/auth/index.js +24 -21
  4. package/dist/commands/auth/index.js.map +1 -1
  5. package/dist/commands/auth/logout.d.ts +5 -5
  6. package/dist/commands/auth/logout.js +5 -5
  7. package/dist/commands/auth/store-wrap.d.ts +19 -0
  8. package/dist/commands/auth/store-wrap.d.ts.map +1 -0
  9. package/dist/commands/auth/store-wrap.js +41 -0
  10. package/dist/commands/auth/store-wrap.js.map +1 -0
  11. package/dist/commands/auth/token.d.ts.map +1 -1
  12. package/dist/commands/auth/token.js +8 -10
  13. package/dist/commands/auth/token.js.map +1 -1
  14. package/dist/commands/config/view.d.ts.map +1 -1
  15. package/dist/commands/config/view.js +2 -1
  16. package/dist/commands/config/view.js.map +1 -1
  17. package/dist/commands/goal.d.ts +3 -0
  18. package/dist/commands/goal.d.ts.map +1 -0
  19. package/dist/commands/goal.js +344 -0
  20. package/dist/commands/goal.js.map +1 -0
  21. package/dist/commands/user/remove.d.ts.map +1 -1
  22. package/dist/commands/user/remove.js +10 -5
  23. package/dist/commands/user/remove.js.map +1 -1
  24. package/dist/commands/user/use.d.ts.map +1 -1
  25. package/dist/commands/user/use.js +6 -6
  26. package/dist/commands/user/use.js.map +1 -1
  27. package/dist/index.js +3 -1
  28. package/dist/index.js.map +1 -1
  29. package/dist/lib/auth-store.d.ts +26 -21
  30. package/dist/lib/auth-store.d.ts.map +1 -1
  31. package/dist/lib/auth-store.js +48 -74
  32. package/dist/lib/auth-store.js.map +1 -1
  33. package/dist/lib/auth.d.ts +6 -53
  34. package/dist/lib/auth.d.ts.map +1 -1
  35. package/dist/lib/auth.js +41 -349
  36. package/dist/lib/auth.js.map +1 -1
  37. package/dist/lib/config.d.ts +8 -0
  38. package/dist/lib/config.d.ts.map +1 -1
  39. package/dist/lib/config.js +11 -0
  40. package/dist/lib/config.js.map +1 -1
  41. package/dist/lib/global-args.d.ts +0 -7
  42. package/dist/lib/global-args.d.ts.map +1 -1
  43. package/dist/lib/global-args.js +0 -33
  44. package/dist/lib/global-args.js.map +1 -1
  45. package/dist/lib/migrate-auth.d.ts +9 -5
  46. package/dist/lib/migrate-auth.d.ts.map +1 -1
  47. package/dist/lib/migrate-auth.js +78 -121
  48. package/dist/lib/migrate-auth.js.map +1 -1
  49. package/dist/lib/output.d.ts +1 -1
  50. package/dist/lib/output.d.ts.map +1 -1
  51. package/dist/lib/output.js +15 -0
  52. package/dist/lib/output.js.map +1 -1
  53. package/dist/lib/pagination.d.ts +1 -0
  54. package/dist/lib/pagination.d.ts.map +1 -1
  55. package/dist/lib/pagination.js +1 -0
  56. package/dist/lib/pagination.js.map +1 -1
  57. package/dist/lib/refs.d.ts +2 -1
  58. package/dist/lib/refs.d.ts.map +1 -1
  59. package/dist/lib/refs.js +6 -1
  60. package/dist/lib/refs.js.map +1 -1
  61. package/dist/lib/skills/content.d.ts +1 -1
  62. package/dist/lib/skills/content.d.ts.map +1 -1
  63. package/dist/lib/skills/content.js +20 -0
  64. package/dist/lib/skills/content.js.map +1 -1
  65. package/dist/lib/urls.d.ts +2 -0
  66. package/dist/lib/urls.d.ts.map +1 -1
  67. package/dist/lib/urls.js +6 -0
  68. package/dist/lib/urls.js.map +1 -1
  69. package/dist/lib/user-records.d.ts +17 -0
  70. package/dist/lib/user-records.d.ts.map +1 -0
  71. package/dist/lib/user-records.js +84 -0
  72. package/dist/lib/user-records.js.map +1 -0
  73. package/dist/lib/users.d.ts +22 -15
  74. package/dist/lib/users.d.ts.map +1 -1
  75. package/dist/lib/users.js +41 -38
  76. package/dist/lib/users.js.map +1 -1
  77. package/package.json +7 -7
  78. package/dist/commands/auth/token-view.d.ts +0 -2
  79. package/dist/commands/auth/token-view.d.ts.map +0 -1
  80. package/dist/commands/auth/token-view.js +0 -13
  81. package/dist/commands/auth/token-view.js.map +0 -1
  82. package/dist/lib/secure-store.d.ts +0 -25
  83. package/dist/lib/secure-store.d.ts.map +0 -1
  84. package/dist/lib/secure-store.js +0 -72
  85. package/dist/lib/secure-store.js.map +0 -1
@@ -0,0 +1,344 @@
1
+ import chalk from 'chalk';
2
+ import { getApi } from '../lib/api/core.js';
3
+ import { CollaboratorCache, formatAssignee } from '../lib/collaborators.js';
4
+ import { isAccessible } from '../lib/global-args.js';
5
+ import { formatJson, formatNextCursorFooter, formatPaginatedJson, formatPaginatedNdjson, formatProgressBar, formatTaskRow, printDryRun, } from '../lib/output.js';
6
+ import { LIMITS, paginate } from '../lib/pagination.js';
7
+ import { resolveGoalRef } from '../lib/refs.js';
8
+ import { resolveWorkspaceRef } from '../lib/refs.js';
9
+ import { resolveTaskRef } from '../lib/refs.js';
10
+ function formatOwnerType(ownerType) {
11
+ return ownerType === 'WORKSPACE' ? 'Workspace' : 'User';
12
+ }
13
+ // ── List ──
14
+ async function listGoals(options) {
15
+ const api = await getApi();
16
+ const targetLimit = options.all
17
+ ? Number.MAX_SAFE_INTEGER
18
+ : options.limit
19
+ ? parseInt(options.limit, 10)
20
+ : LIMITS.goals;
21
+ let workspaceId;
22
+ if (options.workspace) {
23
+ const ws = await resolveWorkspaceRef(options.workspace);
24
+ workspaceId = String(ws.id);
25
+ }
26
+ const { results: goals, nextCursor } = await paginate((cursor, limit) => api.getGoals({
27
+ ownerType: workspaceId ? 'WORKSPACE' : undefined,
28
+ workspaceId,
29
+ cursor: cursor ?? undefined,
30
+ limit,
31
+ }), { limit: targetLimit });
32
+ if (options.json) {
33
+ console.log(formatPaginatedJson({ results: goals, nextCursor }, 'goal', options.full));
34
+ return;
35
+ }
36
+ if (options.ndjson) {
37
+ console.log(formatPaginatedNdjson({ results: goals, nextCursor }, 'goal', options.full));
38
+ return;
39
+ }
40
+ if (goals.length === 0) {
41
+ console.log('No goals found.');
42
+ return;
43
+ }
44
+ for (const goal of goals) {
45
+ const id = chalk.dim(goal.id.slice(0, 8));
46
+ const name = goal.isCompleted ? chalk.strikethrough(goal.name) : goal.name;
47
+ const progress = formatProgressBar(goal.progress?.percentage ?? 0, 10);
48
+ const deadline = goal.isCompleted
49
+ ? chalk.dim('completed')
50
+ : goal.deadline
51
+ ? chalk.green(goal.deadline)
52
+ : '';
53
+ console.log(`${id} ${name} ${progress} ${deadline}`);
54
+ }
55
+ console.log(formatNextCursorFooter(nextCursor));
56
+ }
57
+ // ── View ──
58
+ async function viewGoal(ref, options) {
59
+ const api = await getApi();
60
+ const goal = await resolveGoalRef(api, ref);
61
+ const targetLimit = options.all
62
+ ? Number.MAX_SAFE_INTEGER
63
+ : options.limit
64
+ ? parseInt(options.limit, 10)
65
+ : LIMITS.tasks;
66
+ const { results: tasks, nextCursor } = await paginate((cursor, limit) => api.getTasks({ goalId: goal.id, cursor: cursor ?? undefined, limit }), { limit: targetLimit });
67
+ if (options.json) {
68
+ const goalJson = JSON.parse(formatJson(goal, 'goal', options.full));
69
+ const tasksJson = JSON.parse(formatPaginatedJson({ results: tasks, nextCursor }, 'task', options.full));
70
+ console.log(JSON.stringify({ goal: goalJson, tasks: tasksJson }, null, 2));
71
+ return;
72
+ }
73
+ if (options.ndjson) {
74
+ console.log(JSON.stringify({
75
+ _type: 'goal',
76
+ ...JSON.parse(formatJson(goal, 'goal', options.full)),
77
+ }));
78
+ console.log(formatPaginatedNdjson({ results: tasks, nextCursor }, 'task', options.full));
79
+ return;
80
+ }
81
+ // Header
82
+ console.log(chalk.bold(goal.name));
83
+ console.log(chalk.dim(`ID: ${goal.id}`));
84
+ console.log(chalk.dim(`Owner: ${formatOwnerType(goal.ownerType)}`));
85
+ if (goal.description)
86
+ console.log(`Desc: ${goal.description}`);
87
+ if (goal.deadline)
88
+ console.log(`Deadline: ${chalk.green(goal.deadline)}`);
89
+ console.log(`Progress: ${formatProgressBar(goal.progress?.percentage ?? 0)} (${goal.progress?.completedTaskCount ?? 0}/${goal.progress?.totalTaskCount ?? 0})`);
90
+ if (goal.isCompleted) {
91
+ console.log(chalk.green(isAccessible() ? 'Goal completed' : '✓ Completed'));
92
+ }
93
+ console.log('');
94
+ if (tasks.length === 0) {
95
+ console.log('No linked tasks.');
96
+ console.log(formatNextCursorFooter(nextCursor));
97
+ return;
98
+ }
99
+ const { results: projects } = await api.getProjects();
100
+ const projectMap = new Map();
101
+ for (const p of projects) {
102
+ projectMap.set(p.id, p);
103
+ }
104
+ const collaboratorCache = new CollaboratorCache();
105
+ await collaboratorCache.preload(api, tasks, projectMap);
106
+ for (const task of tasks) {
107
+ const assignee = formatAssignee({
108
+ userId: task.responsibleUid,
109
+ projectId: task.projectId,
110
+ projects: projectMap,
111
+ cache: collaboratorCache,
112
+ });
113
+ console.log(formatTaskRow({
114
+ task,
115
+ projectName: projectMap.get(task.projectId)?.name,
116
+ assignee: assignee ?? undefined,
117
+ }));
118
+ console.log('');
119
+ }
120
+ console.log(formatNextCursorFooter(nextCursor));
121
+ }
122
+ async function createGoal(options) {
123
+ if (options.dryRun) {
124
+ printDryRun('create goal', {
125
+ Name: options.name,
126
+ Workspace: options.workspace,
127
+ Description: options.description,
128
+ Deadline: options.deadline,
129
+ Responsible: options.responsible,
130
+ });
131
+ return;
132
+ }
133
+ const api = await getApi();
134
+ let workspaceId;
135
+ if (options.workspace) {
136
+ const ws = await resolveWorkspaceRef(options.workspace);
137
+ workspaceId = String(ws.id);
138
+ }
139
+ const goal = await api.addGoal({
140
+ name: options.name,
141
+ workspaceId,
142
+ description: options.description ?? null,
143
+ deadline: options.deadline ?? null,
144
+ responsibleUid: options.responsible ?? null,
145
+ });
146
+ if (options.json) {
147
+ console.log(formatJson(goal, 'goal'));
148
+ return;
149
+ }
150
+ console.log(`Created: ${goal.name}`);
151
+ console.log(chalk.dim(`ID: ${goal.id}`));
152
+ }
153
+ async function updateGoal(ref, options) {
154
+ const { name, description, deadline, responsible, json, dryRun } = options;
155
+ if (!name && !description && !deadline && !responsible) {
156
+ throw new Error('No update fields specified. Use --name, --description, --deadline, or --responsible.');
157
+ }
158
+ if (dryRun) {
159
+ printDryRun('update goal', {
160
+ Ref: ref,
161
+ Name: name,
162
+ Description: description,
163
+ Deadline: deadline,
164
+ Responsible: responsible,
165
+ });
166
+ return;
167
+ }
168
+ const api = await getApi();
169
+ const goal = await resolveGoalRef(api, ref);
170
+ const args = {};
171
+ if (name)
172
+ args.name = name;
173
+ if (description)
174
+ args.description = description;
175
+ if (deadline)
176
+ args.deadline = deadline;
177
+ if (responsible)
178
+ args.responsibleUid = responsible;
179
+ const updated = await api.updateGoal(goal.id, args);
180
+ if (json) {
181
+ console.log(formatJson(updated, 'goal'));
182
+ return;
183
+ }
184
+ console.log(`Updated: ${goal.name} → ${updated.name}`);
185
+ }
186
+ // ── Delete ──
187
+ async function deleteGoal(ref, options) {
188
+ const api = await getApi();
189
+ const goal = await resolveGoalRef(api, ref);
190
+ if (options.dryRun) {
191
+ printDryRun('delete goal', { Goal: goal.name });
192
+ return;
193
+ }
194
+ if (!options.yes) {
195
+ console.log(`Would delete goal: ${goal.name}`);
196
+ console.log('Use --yes to confirm.');
197
+ return;
198
+ }
199
+ await api.deleteGoal(goal.id);
200
+ console.log(`Deleted goal: ${goal.name}`);
201
+ }
202
+ // ── Complete / Uncomplete ──
203
+ async function completeGoal(ref) {
204
+ const api = await getApi();
205
+ const goal = await resolveGoalRef(api, ref);
206
+ await api.completeGoal(goal.id);
207
+ console.log(`Completed: ${goal.name}`);
208
+ }
209
+ async function uncompleteGoal(ref) {
210
+ const api = await getApi();
211
+ const goal = await resolveGoalRef(api, ref);
212
+ await api.uncompleteGoal(goal.id);
213
+ console.log(`Reopened: ${goal.name}`);
214
+ }
215
+ // ── Link / Unlink ──
216
+ async function linkGoal(ref, options) {
217
+ const api = await getApi();
218
+ const goal = await resolveGoalRef(api, ref);
219
+ const task = await resolveTaskRef(api, options.task);
220
+ await api.linkTaskToGoal({ goalId: goal.id, taskId: task.id });
221
+ console.log(`Linked task "${task.content}" to goal "${goal.name}"`);
222
+ }
223
+ async function unlinkGoal(ref, options) {
224
+ const api = await getApi();
225
+ const goal = await resolveGoalRef(api, ref);
226
+ const task = await resolveTaskRef(api, options.task);
227
+ await api.unlinkTaskFromGoal({ goalId: goal.id, taskId: task.id });
228
+ console.log(`Unlinked task "${task.content}" from goal "${goal.name}"`);
229
+ }
230
+ // ── Register ──
231
+ export function registerGoalCommand(program) {
232
+ const goal = program.command('goal').description('Manage goals');
233
+ goal.command('view [ref]', { isDefault: true })
234
+ .description('View goal details and linked tasks')
235
+ .option('--limit <n>', 'Limit number of results (default: 300)')
236
+ .option('--all', 'Fetch all results (no limit)')
237
+ .option('--json', 'Output as JSON')
238
+ .option('--ndjson', 'Output as newline-delimited JSON')
239
+ .option('--full', 'Include all fields in JSON output')
240
+ .action((ref, options) => {
241
+ if (!ref) {
242
+ goal.help();
243
+ return;
244
+ }
245
+ return viewGoal(ref, options);
246
+ });
247
+ goal.command('list')
248
+ .description('List all accessible goals')
249
+ .option('--workspace <ref>', 'Filter to a workspace')
250
+ .option('--limit <n>', 'Limit number of results (default: 200)')
251
+ .option('--all', 'Fetch all results (no limit)')
252
+ .option('--json', 'Output as JSON')
253
+ .option('--ndjson', 'Output as newline-delimited JSON')
254
+ .option('--full', 'Include all fields in JSON output')
255
+ .action(listGoals);
256
+ const createCmd = goal
257
+ .command('create')
258
+ .description('Create a goal')
259
+ .option('--name <name>', 'Goal name (required)')
260
+ .option('--workspace <ref>', 'Workspace (omit for personal goal)')
261
+ .option('--description <desc>', 'Goal description')
262
+ .option('--deadline <date>', 'Target date (YYYY-MM-DD)')
263
+ .option('--responsible <uid>', 'Responsible user ID')
264
+ .option('--json', 'Output the created goal as JSON')
265
+ .option('--dry-run', 'Preview what would happen without executing')
266
+ .action((options) => {
267
+ if (!options.name) {
268
+ createCmd.help();
269
+ return;
270
+ }
271
+ return createGoal(options);
272
+ });
273
+ const updateCmd = goal
274
+ .command('update [ref]')
275
+ .description('Update a goal')
276
+ .option('--name <name>', 'New name')
277
+ .option('--description <desc>', 'New description')
278
+ .option('--deadline <date>', 'New deadline (YYYY-MM-DD)')
279
+ .option('--responsible <uid>', 'New responsible user ID')
280
+ .option('--json', 'Output the updated goal as JSON')
281
+ .option('--dry-run', 'Preview what would happen without executing')
282
+ .action((ref, options) => {
283
+ if (!ref) {
284
+ updateCmd.help();
285
+ return;
286
+ }
287
+ return updateGoal(ref, options);
288
+ });
289
+ const deleteCmd = goal
290
+ .command('delete [ref]')
291
+ .description('Delete a goal')
292
+ .option('--yes', 'Confirm deletion')
293
+ .option('--dry-run', 'Preview what would happen without executing')
294
+ .action((ref, options) => {
295
+ if (!ref) {
296
+ deleteCmd.help();
297
+ return;
298
+ }
299
+ return deleteGoal(ref, options);
300
+ });
301
+ const completeCmd = goal
302
+ .command('complete [ref]')
303
+ .description('Mark a goal as completed')
304
+ .action((ref) => {
305
+ if (!ref) {
306
+ completeCmd.help();
307
+ return;
308
+ }
309
+ return completeGoal(ref);
310
+ });
311
+ const uncompleteCmd = goal
312
+ .command('uncomplete [ref]')
313
+ .description('Reopen a completed goal')
314
+ .action((ref) => {
315
+ if (!ref) {
316
+ uncompleteCmd.help();
317
+ return;
318
+ }
319
+ return uncompleteGoal(ref);
320
+ });
321
+ const linkCmd = goal
322
+ .command('link [ref]')
323
+ .description('Link a task to a goal')
324
+ .option('--task <ref>', 'Task to link (required)')
325
+ .action((ref, options) => {
326
+ if (!ref || !options.task) {
327
+ linkCmd.help();
328
+ return;
329
+ }
330
+ return linkGoal(ref, options);
331
+ });
332
+ const unlinkCmd = goal
333
+ .command('unlink [ref]')
334
+ .description('Unlink a task from a goal')
335
+ .option('--task <ref>', 'Task to unlink (required)')
336
+ .action((ref, options) => {
337
+ if (!ref || !options.task) {
338
+ unlinkCmd.help();
339
+ return;
340
+ }
341
+ return unlinkGoal(ref, options);
342
+ });
343
+ }
344
+ //# sourceMappingURL=goal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goal.js","sourceRoot":"","sources":["../../src/commands/goal.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E"}
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAOA,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgC9E"}
@@ -1,5 +1,6 @@
1
1
  import chalk from 'chalk';
2
- import { readConfig, removeUserById } from '../../lib/auth.js';
2
+ import { createTodoistTokenStore } from '../../lib/auth-store.js';
3
+ import { readConfig } from '../../lib/auth.js';
3
4
  import { CliError } from '../../lib/errors.js';
4
5
  import { isQuiet } from '../../lib/global-args.js';
5
6
  import { getDefaultUserId, requireUserByRef } from '../../lib/users.js';
@@ -7,19 +8,23 @@ export async function removeUserCommand(ref) {
7
8
  if (!ref) {
8
9
  throw new CliError('MISSING_REF', 'Please provide a user id or email: `td user remove <id|email>`');
9
10
  }
11
+ // Resolve the ref against the on-disk config first so we can report
12
+ // "Removed <email>" + the "cleared default" hint with the user's actual
13
+ // email — the store's clear path is keyed by id, not email, and would
14
+ // silently no-op on miss (printing the wrong reassurance).
10
15
  const config = await readConfig();
11
16
  const { user } = requireUserByRef(config, ref);
12
17
  const wasDefault = getDefaultUserId(config) === user.id;
13
- const result = await removeUserById(user.id);
18
+ const store = createTodoistTokenStore();
19
+ await store.clear(user.id);
14
20
  if (!isQuiet()) {
15
21
  console.log(chalk.green('✓'), `Removed ${user.email}`);
16
22
  if (wasDefault) {
17
23
  console.log(chalk.dim('Cleared default account. Set a new one with `td user use <id|email>`.'));
18
24
  }
19
25
  }
20
- // Always surface partial-cleanup warnings, even with --quiet — the user
21
- // needs to know if the keyring or config wasn't fully cleared.
22
- if (result.warning) {
26
+ const result = store.getLastClearResult();
27
+ if (result?.warning) {
23
28
  console.error(chalk.yellow('Warning:'), result.warning);
24
29
  }
25
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAuB;IAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,QAAQ,CACd,aAAa,EACb,gEAAgE,CACnE,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;IAEvD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CACrF,CAAA;QACL,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAuB;IAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,QAAQ,CACd,aAAa,EACb,gEAAgE,CACnE,CAAA;IACL,CAAC;IAED,oEAAoE;IACpE,wEAAwE;IACxE,sEAAsE;IACtE,2DAA2D;IAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;IAEvD,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAA;IACvC,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE1B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CACrF,CAAA;QACL,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAA;IACzC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/user/use.ts"],"names":[],"mappings":"AAMA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAe3E"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/user/use.ts"],"names":[],"mappings":"AAKA,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB3E"}
@@ -1,17 +1,17 @@
1
1
  import chalk from 'chalk';
2
- import { readConfig, setDefaultUserId } from '../../lib/auth.js';
2
+ import { createTodoistTokenStore } from '../../lib/auth-store.js';
3
3
  import { CliError } from '../../lib/errors.js';
4
4
  import { isQuiet } from '../../lib/global-args.js';
5
- import { requireUserByRef } from '../../lib/users.js';
6
5
  export async function useUserCommand(ref) {
7
6
  if (!ref) {
8
7
  throw new CliError('MISSING_REF', 'Please provide a user id or email: `td user use <id|email>`');
9
8
  }
10
- const config = await readConfig();
11
- const { user } = requireUserByRef(config, ref);
12
- await setDefaultUserId(user.id);
9
+ // `store.setDefault(ref)` throws `CliError('ACCOUNT_NOT_FOUND', )` on miss,
10
+ // which the top-level error handler renders as the standard "not found"
11
+ // message — no pre-check needed.
12
+ await createTodoistTokenStore().setDefault(ref);
13
13
  if (!isQuiet()) {
14
- console.log(chalk.green('✓'), `Default account set to ${user.email} (id:${user.id})`);
14
+ console.log(chalk.green('✓'), `Default account set to ${ref}`);
15
15
  }
16
16
  }
17
17
  //# sourceMappingURL=use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/commands/user/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAuB;IACxD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,QAAQ,CACd,aAAa,EACb,6DAA6D,CAChE,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9C,MAAM,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,0BAA0B,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;IACzF,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/commands/user/use.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAuB;IACxD,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,QAAQ,CACd,aAAa,EACb,6DAA6D,CAChE,CAAA;IACL,CAAC;IAED,6EAA6E;IAC7E,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,uBAAuB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAE/C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,0BAA0B,GAAG,EAAE,CAAC,CAAA;IAClE,CAAC;AACL,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
+ import { stripUserFlag } from '@doist/cli-core';
2
3
  import { program } from 'commander';
3
4
  import packageJson from '../package.json' with { type: 'json' };
4
5
  import { BaseCliError, CliError } from './lib/errors.js';
5
- import { getRequestedUserRef, isJsonMode, isNdjsonMode, isRawMode, stripUserFlag, } from './lib/global-args.js';
6
+ import { getRequestedUserRef, isJsonMode, isNdjsonMode, isRawMode } from './lib/global-args.js';
6
7
  import { initializeLogger } from './lib/logger.js';
7
8
  import { preloadMarkdown } from './lib/markdown.js';
8
9
  import { formatError, formatErrorJson } from './lib/output.js';
@@ -132,6 +133,7 @@ const commands = {
132
133
  'Manage filters',
133
134
  async () => (await import('./commands/filter/index.js')).registerFilterCommand,
134
135
  ],
136
+ goal: ['Manage goals', async () => (await import('./commands/goal.js')).registerGoalCommand],
135
137
  folder: [
136
138
  'Manage workspace folders',
137
139
  async () => (await import('./commands/folder/index.js')).registerFolderCommand,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,15 @@
1
- import type { AuthAccount, TokenStore } from '@doist/cli-core/auth';
2
- import { type TokenStorageResult, type UpsertUserInput } from './auth.js';
1
+ import { type AuthAccount, type KeyringTokenStore } from '@doist/cli-core/auth';
3
2
  import { type AuthFlag, type AuthMode } from './config.js';
3
+ /**
4
+ * Persisted identifiers for the keyring/config ABI. Shared with the read-side
5
+ * resolver (`auth.ts`) and the postinstall migration (`migrate-auth.ts`) so
6
+ * a rename can't silently desynchronise the three paths that touch the OS
7
+ * credential manager.
8
+ */
9
+ export declare const SERVICE_NAME = "todoist-cli";
10
+ export declare const LEGACY_ACCOUNT = "api-token";
11
+ export declare const TOKEN_ENV_VAR = "TODOIST_API_TOKEN";
12
+ export declare function accountForUser(id: string): string;
4
13
  /**
5
14
  * Account shape stored by todoist-cli. Extends cli-core's `AuthAccount` with
6
15
  * the Todoist-specific identity + auth-mode metadata that ride alongside the
@@ -21,29 +30,25 @@ export type TodoistAccountInput = {
21
30
  };
22
31
  /**
23
32
  * Single source of truth for the `TodoistAccount` field layout. Used by the
24
- * auth provider's `validateToken` (post-handshake) and the token-store
25
- * `active()` adapter (post-read) so the persisted shape stays aligned with
26
- * what `set()` later disassembles via `accountToUpsertInput`.
33
+ * auth provider's `validateToken` (post-handshake), the migration helper,
34
+ * and the `UserRecordStore` adapter's record account mapping.
27
35
  */
28
36
  export declare function toTodoistAccount(input: TodoistAccountInput): TodoistAccount;
29
- /** Inverse of `toTodoistAccount` — feeds the upsert path that owns persistence. */
30
- export declare function accountToUpsertInput(account: TodoistAccount, token: string): UpsertUserInput;
37
+ export type TodoistTokenStore = KeyringTokenStore<TodoistAccount>;
31
38
  /**
32
- * `TokenStore<TodoistAccount>` adapter that bridges cli-core's auth runtime
33
- * (which is single-user) to todoist's existing multi-user keyring + config
34
- * store. `set()` is exercised by `runOAuthFlow` during login; `active()` and
35
- * `clear()` are wired through for completeness so the public `TokenStore`
36
- * contract is honoured — per-user reads are still driven from the
37
- * todoist-local commands (logout, status, token, …).
39
+ * cli-core's keyring-backed `TokenStore`, wired to todoist-cli's
40
+ * `UserRecordStore` adapter. Two Todoist-specific overlays on top of the
41
+ * defaults:
38
42
  *
39
- * The factory also returns `getLastStorageResult()` so the login command can
40
- * surface keyring-fallback warnings (`upsertUser` reports them via the
41
- * `TokenStorageResult` payload that `set()` would otherwise have to swallow,
42
- * since cli-core's `TokenStore.set` signature is `void`).
43
+ * - `active()` short-circuits to `null` when `TODOIST_API_TOKEN` is set.
44
+ * The env var is the canonical override across the CLI; without this
45
+ * short-circuit, `td auth status` would render the stored account while
46
+ * `getAuthMetadata()` reports `source: 'env'` (wrong account, right
47
+ * diagnostic).
48
+ * - `accountForUser` / `matchAccount` are passed explicitly. `matchAccount`
49
+ * delegates to `matchUserRef` so the keyring-store path and the
50
+ * config-driven `findUserByRef` path share one matcher (case-insensitive
51
+ * email + trim).
43
52
  */
44
- export type TodoistTokenStore = TokenStore<TodoistAccount> & {
45
- getLastStorageResult(): TokenStorageResult | undefined;
46
- getLastClearResult(): TokenStorageResult | undefined;
47
- };
48
53
  export declare function createTodoistTokenStore(): TodoistTokenStore;
49
54
  //# sourceMappingURL=auth-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAIH,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA+B,MAAM,aAAa,CAAA;AAIvF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACzB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAS3E;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAS5F;AAYD;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG;IACzD,oBAAoB,IAAI,kBAAkB,GAAG,SAAS,CAAA;IACtD,kBAAkB,IAAI,kBAAkB,GAAG,SAAS,CAAA;CACvD,CAAA;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAyD3D"}
1
+ {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,WAAW,EAEhB,KAAK,iBAAiB,EACzB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAiB,MAAM,aAAa,CAAA;AAIzE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,gBAAgB,CAAA;AACzC,eAAO,MAAM,cAAc,cAAc,CAAA;AACzC,eAAO,MAAM,aAAa,sBAAsB,CAAA;AAChD,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,QAAQ,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CACzB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAS3E;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;AAEjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAqB3D"}