@doist/todoist-cli 1.64.0 → 1.65.0-next.2

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 (83) hide show
  1. package/dist/commands/auth/index.d.ts.map +1 -1
  2. package/dist/commands/auth/index.js +24 -21
  3. package/dist/commands/auth/index.js.map +1 -1
  4. package/dist/commands/auth/logout.d.ts +5 -5
  5. package/dist/commands/auth/logout.js +5 -5
  6. package/dist/commands/auth/store-wrap.d.ts +19 -0
  7. package/dist/commands/auth/store-wrap.d.ts.map +1 -0
  8. package/dist/commands/auth/store-wrap.js +41 -0
  9. package/dist/commands/auth/store-wrap.js.map +1 -0
  10. package/dist/commands/auth/token.d.ts.map +1 -1
  11. package/dist/commands/auth/token.js +8 -10
  12. package/dist/commands/auth/token.js.map +1 -1
  13. package/dist/commands/config/view.d.ts.map +1 -1
  14. package/dist/commands/config/view.js +2 -1
  15. package/dist/commands/config/view.js.map +1 -1
  16. package/dist/commands/goal.d.ts +3 -0
  17. package/dist/commands/goal.d.ts.map +1 -0
  18. package/dist/commands/goal.js +360 -0
  19. package/dist/commands/goal.js.map +1 -0
  20. package/dist/commands/user/remove.d.ts.map +1 -1
  21. package/dist/commands/user/remove.js +10 -5
  22. package/dist/commands/user/remove.js.map +1 -1
  23. package/dist/commands/user/use.d.ts.map +1 -1
  24. package/dist/commands/user/use.js +6 -6
  25. package/dist/commands/user/use.js.map +1 -1
  26. package/dist/index.js +1 -0
  27. package/dist/index.js.map +1 -1
  28. package/dist/lib/auth-store.d.ts +26 -21
  29. package/dist/lib/auth-store.d.ts.map +1 -1
  30. package/dist/lib/auth-store.js +48 -79
  31. package/dist/lib/auth-store.js.map +1 -1
  32. package/dist/lib/auth.d.ts +6 -53
  33. package/dist/lib/auth.d.ts.map +1 -1
  34. package/dist/lib/auth.js +41 -355
  35. package/dist/lib/auth.js.map +1 -1
  36. package/dist/lib/config.d.ts +8 -0
  37. package/dist/lib/config.d.ts.map +1 -1
  38. package/dist/lib/config.js +11 -0
  39. package/dist/lib/config.js.map +1 -1
  40. package/dist/lib/migrate-auth.d.ts +9 -5
  41. package/dist/lib/migrate-auth.d.ts.map +1 -1
  42. package/dist/lib/migrate-auth.js +78 -121
  43. package/dist/lib/migrate-auth.js.map +1 -1
  44. package/dist/lib/output.d.ts +2 -1
  45. package/dist/lib/output.d.ts.map +1 -1
  46. package/dist/lib/output.js +18 -0
  47. package/dist/lib/output.js.map +1 -1
  48. package/dist/lib/pagination.d.ts +1 -0
  49. package/dist/lib/pagination.d.ts.map +1 -1
  50. package/dist/lib/pagination.js +1 -0
  51. package/dist/lib/pagination.js.map +1 -1
  52. package/dist/lib/permissions.d.ts.map +1 -1
  53. package/dist/lib/permissions.js +4 -0
  54. package/dist/lib/permissions.js.map +1 -1
  55. package/dist/lib/refs.d.ts +2 -1
  56. package/dist/lib/refs.d.ts.map +1 -1
  57. package/dist/lib/refs.js +4 -1
  58. package/dist/lib/refs.js.map +1 -1
  59. package/dist/lib/skills/content.d.ts +1 -1
  60. package/dist/lib/skills/content.d.ts.map +1 -1
  61. package/dist/lib/skills/content.js +20 -0
  62. package/dist/lib/skills/content.js.map +1 -1
  63. package/dist/lib/urls.d.ts +2 -0
  64. package/dist/lib/urls.d.ts.map +1 -1
  65. package/dist/lib/urls.js +6 -0
  66. package/dist/lib/urls.js.map +1 -1
  67. package/dist/lib/user-records.d.ts +17 -0
  68. package/dist/lib/user-records.d.ts.map +1 -0
  69. package/dist/lib/user-records.js +84 -0
  70. package/dist/lib/user-records.js.map +1 -0
  71. package/dist/lib/users.d.ts +20 -20
  72. package/dist/lib/users.d.ts.map +1 -1
  73. package/dist/lib/users.js +41 -51
  74. package/dist/lib/users.js.map +1 -1
  75. package/package.json +7 -7
  76. package/dist/commands/auth/token-view.d.ts +0 -2
  77. package/dist/commands/auth/token-view.d.ts.map +0 -1
  78. package/dist/commands/auth/token-view.js +0 -13
  79. package/dist/commands/auth/token-view.js.map +0 -1
  80. package/dist/lib/secure-store.d.ts +0 -25
  81. package/dist/lib/secure-store.d.ts.map +0 -1
  82. package/dist/lib/secure-store.js +0 -72
  83. package/dist/lib/secure-store.js.map +0 -1
@@ -0,0 +1,360 @@
1
+ import chalk from 'chalk';
2
+ import { getApi } from '../lib/api/core.js';
3
+ import { CollaboratorCache, formatAssignee } from '../lib/collaborators.js';
4
+ import { CliError } from '../lib/errors.js';
5
+ import { isAccessible, isQuiet } from '../lib/global-args.js';
6
+ import { formatJson, formatNextCursorFooter, formatPaginatedJson, formatPaginatedNdjson, formatProgressBar, formatTaskRow, printDryRun, processJsonItem, } from '../lib/output.js';
7
+ import { LIMITS, paginate } from '../lib/pagination.js';
8
+ import { resolveGoalRef, resolveTaskRef, resolveWorkspaceRef } from '../lib/refs.js';
9
+ import { fetchProjects } from '../lib/task-list.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 = processJsonItem(goal, 'goal', options.full);
69
+ const taskResults = tasks.map((t) => processJsonItem(t, 'task', options.full));
70
+ console.log(JSON.stringify({ goal: goalJson, tasks: { results: taskResults, nextCursor } }, null, 2));
71
+ return;
72
+ }
73
+ if (options.ndjson) {
74
+ console.log(JSON.stringify({ _type: 'goal', ...processJsonItem(goal, 'goal', options.full) }));
75
+ console.log(formatPaginatedNdjson({ results: tasks, nextCursor }, 'task', options.full));
76
+ return;
77
+ }
78
+ // Header
79
+ console.log(chalk.bold(goal.name));
80
+ console.log(chalk.dim(`ID: ${goal.id}`));
81
+ console.log(chalk.dim(`Owner: ${formatOwnerType(goal.ownerType)}`));
82
+ if (goal.description)
83
+ console.log(`Desc: ${goal.description}`);
84
+ if (goal.deadline)
85
+ console.log(`Deadline: ${chalk.green(goal.deadline)}`);
86
+ console.log(`Progress: ${formatProgressBar(goal.progress?.percentage ?? 0)} (${goal.progress?.completedTaskCount ?? 0}/${goal.progress?.totalTaskCount ?? 0})`);
87
+ if (goal.isCompleted) {
88
+ console.log(chalk.green(isAccessible() ? 'Goal completed' : '✓ Completed'));
89
+ }
90
+ console.log('');
91
+ if (tasks.length === 0) {
92
+ console.log('No linked tasks.');
93
+ console.log(formatNextCursorFooter(nextCursor));
94
+ return;
95
+ }
96
+ const projectMap = await fetchProjects(api);
97
+ const collaboratorCache = new CollaboratorCache();
98
+ await collaboratorCache.preload(api, tasks, projectMap);
99
+ for (const task of tasks) {
100
+ const assignee = formatAssignee({
101
+ userId: task.responsibleUid,
102
+ projectId: task.projectId,
103
+ projects: projectMap,
104
+ cache: collaboratorCache,
105
+ });
106
+ console.log(await formatTaskRow({
107
+ task,
108
+ projectName: projectMap.get(task.projectId)?.name,
109
+ assignee: assignee ?? undefined,
110
+ }));
111
+ console.log('');
112
+ }
113
+ console.log(formatNextCursorFooter(nextCursor));
114
+ }
115
+ async function createGoal(options) {
116
+ if (options.dryRun) {
117
+ printDryRun('create goal', {
118
+ Name: options.name,
119
+ Workspace: options.workspace,
120
+ Description: options.description,
121
+ Deadline: options.deadline,
122
+ Responsible: options.responsible,
123
+ });
124
+ return;
125
+ }
126
+ const api = await getApi();
127
+ let workspaceId;
128
+ if (options.workspace) {
129
+ const ws = await resolveWorkspaceRef(options.workspace);
130
+ workspaceId = String(ws.id);
131
+ }
132
+ const goal = await api.addGoal({
133
+ name: options.name,
134
+ workspaceId,
135
+ description: options.description ?? null,
136
+ deadline: options.deadline ?? null,
137
+ responsibleUid: options.responsible ?? null,
138
+ });
139
+ if (options.json) {
140
+ console.log(formatJson(goal, 'goal'));
141
+ return;
142
+ }
143
+ if (isQuiet()) {
144
+ console.log(goal.id);
145
+ return;
146
+ }
147
+ console.log(`Created: ${goal.name}`);
148
+ console.log(chalk.dim(`ID: ${goal.id}`));
149
+ }
150
+ async function updateGoal(ref, options) {
151
+ const { name, description, deadline, responsible, json, dryRun } = options;
152
+ if (name === undefined &&
153
+ description === undefined &&
154
+ deadline === undefined &&
155
+ responsible === undefined) {
156
+ throw new CliError('INVALID_ARGUMENT', '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 !== undefined)
172
+ args.name = name;
173
+ if (description !== undefined)
174
+ args.description = description;
175
+ if (deadline !== undefined)
176
+ args.deadline = deadline;
177
+ if (responsible !== undefined)
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
+ if (isQuiet())
185
+ return;
186
+ console.log(`Updated: ${goal.name} → ${updated.name}`);
187
+ }
188
+ // ── Delete ──
189
+ async function deleteGoal(ref, options) {
190
+ const api = await getApi();
191
+ const goal = await resolveGoalRef(api, ref);
192
+ if (options.dryRun) {
193
+ printDryRun('delete goal', { Goal: goal.name });
194
+ return;
195
+ }
196
+ if (!options.yes) {
197
+ console.log(`Would delete goal: ${goal.name}`);
198
+ console.log('Use --yes to confirm.');
199
+ return;
200
+ }
201
+ await api.deleteGoal(goal.id);
202
+ if (isQuiet())
203
+ return;
204
+ console.log(`Deleted goal: ${goal.name}`);
205
+ }
206
+ // ── Complete / Uncomplete ──
207
+ async function completeGoal(ref) {
208
+ const api = await getApi();
209
+ const goal = await resolveGoalRef(api, ref);
210
+ await api.completeGoal(goal.id);
211
+ if (isQuiet())
212
+ return;
213
+ console.log(`Completed: ${goal.name}`);
214
+ }
215
+ async function uncompleteGoal(ref) {
216
+ const api = await getApi();
217
+ const goal = await resolveGoalRef(api, ref);
218
+ await api.uncompleteGoal(goal.id);
219
+ if (isQuiet())
220
+ return;
221
+ console.log(`Reopened: ${goal.name}`);
222
+ }
223
+ // ── Link / Unlink ──
224
+ async function linkGoal(ref, options) {
225
+ const api = await getApi();
226
+ const [goal, task] = await Promise.all([
227
+ resolveGoalRef(api, ref),
228
+ resolveTaskRef(api, options.task),
229
+ ]);
230
+ await api.linkTaskToGoal({ goalId: goal.id, taskId: task.id });
231
+ if (isQuiet())
232
+ return;
233
+ console.log(`Linked task "${task.content}" to goal "${goal.name}"`);
234
+ }
235
+ async function unlinkGoal(ref, options) {
236
+ const api = await getApi();
237
+ const [goal, task] = await Promise.all([
238
+ resolveGoalRef(api, ref),
239
+ resolveTaskRef(api, options.task),
240
+ ]);
241
+ await api.unlinkTaskFromGoal({ goalId: goal.id, taskId: task.id });
242
+ if (isQuiet())
243
+ return;
244
+ console.log(`Unlinked task "${task.content}" from goal "${goal.name}"`);
245
+ }
246
+ // ── Register ──
247
+ export function registerGoalCommand(program) {
248
+ const goal = program.command('goal').description('Manage goals');
249
+ goal.command('view [ref]', { isDefault: true })
250
+ .description('View goal details and linked tasks')
251
+ .option('--limit <n>', 'Limit number of results (default: 300)')
252
+ .option('--all', 'Fetch all results (no limit)')
253
+ .option('--json', 'Output as JSON')
254
+ .option('--ndjson', 'Output as newline-delimited JSON')
255
+ .option('--full', 'Include all fields in JSON output')
256
+ .action((ref, options) => {
257
+ if (!ref) {
258
+ goal.help();
259
+ return;
260
+ }
261
+ return viewGoal(ref, options);
262
+ });
263
+ goal.command('list')
264
+ .description('List all accessible goals')
265
+ .option('--workspace <ref>', 'Filter to a workspace')
266
+ .option('--limit <n>', 'Limit number of results (default: 200)')
267
+ .option('--all', 'Fetch all results (no limit)')
268
+ .option('--json', 'Output as JSON')
269
+ .option('--ndjson', 'Output as newline-delimited JSON')
270
+ .option('--full', 'Include all fields in JSON output')
271
+ .action(listGoals);
272
+ const createCmd = goal
273
+ .command('create')
274
+ .description('Create a goal')
275
+ .option('--name <name>', 'Goal name (required)')
276
+ .option('--workspace <ref>', 'Workspace (omit for personal goal)')
277
+ .option('--description <desc>', 'Goal description')
278
+ .option('--deadline <date>', 'Target date (YYYY-MM-DD)')
279
+ .option('--responsible <uid>', 'Responsible user ID')
280
+ .option('--json', 'Output the created goal as JSON')
281
+ .option('--dry-run', 'Preview what would happen without executing')
282
+ .action((options) => {
283
+ if (!options.name) {
284
+ createCmd.help();
285
+ return;
286
+ }
287
+ return createGoal(options);
288
+ });
289
+ const updateCmd = goal
290
+ .command('update [ref]')
291
+ .description('Update a goal')
292
+ .option('--name <name>', 'New name')
293
+ .option('--description <desc>', 'New description')
294
+ .option('--deadline <date>', 'New deadline (YYYY-MM-DD)')
295
+ .option('--responsible <uid>', 'New responsible user ID')
296
+ .option('--json', 'Output the updated goal as JSON')
297
+ .option('--dry-run', 'Preview what would happen without executing')
298
+ .action((ref, options) => {
299
+ if (!ref) {
300
+ updateCmd.help();
301
+ return;
302
+ }
303
+ return updateGoal(ref, options);
304
+ });
305
+ const deleteCmd = goal
306
+ .command('delete [ref]')
307
+ .description('Delete a goal')
308
+ .option('--yes', 'Confirm deletion')
309
+ .option('--dry-run', 'Preview what would happen without executing')
310
+ .action((ref, options) => {
311
+ if (!ref) {
312
+ deleteCmd.help();
313
+ return;
314
+ }
315
+ return deleteGoal(ref, options);
316
+ });
317
+ const completeCmd = goal
318
+ .command('complete [ref]')
319
+ .description('Mark a goal as completed')
320
+ .action((ref) => {
321
+ if (!ref) {
322
+ completeCmd.help();
323
+ return;
324
+ }
325
+ return completeGoal(ref);
326
+ });
327
+ const uncompleteCmd = goal
328
+ .command('uncomplete [ref]')
329
+ .description('Reopen a completed goal')
330
+ .action((ref) => {
331
+ if (!ref) {
332
+ uncompleteCmd.help();
333
+ return;
334
+ }
335
+ return uncompleteGoal(ref);
336
+ });
337
+ const linkCmd = goal
338
+ .command('link [ref]')
339
+ .description('Link a task to a goal')
340
+ .option('--task <ref>', 'Task to link (required)')
341
+ .action((ref, options) => {
342
+ if (!ref || !options.task) {
343
+ linkCmd.help();
344
+ return;
345
+ }
346
+ return linkGoal(ref, options);
347
+ });
348
+ const unlinkCmd = goal
349
+ .command('unlink [ref]')
350
+ .description('Unlink a task from a goal')
351
+ .option('--task <ref>', 'Task to unlink (required)')
352
+ .action((ref, options) => {
353
+ if (!ref || !options.task) {
354
+ unlinkCmd.help();
355
+ return;
356
+ }
357
+ return unlinkGoal(ref, options);
358
+ });
359
+ }
360
+ //# 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
@@ -133,6 +133,7 @@ const commands = {
133
133
  'Manage filters',
134
134
  async () => (await import('./commands/filter/index.js')).registerFilterCommand,
135
135
  ],
136
+ goal: ['Manage goals', async () => (await import('./commands/goal.js')).registerGoalCommand],
136
137
  folder: [
137
138
  'Manage workspace folders',
138
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,EAAc,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAIH,KAAK,kBAAkB,EAGvB,KAAK,eAAe,EACvB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAA+B,MAAM,aAAa,CAAA;AAGvF;;;;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,CAoE3D"}
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"}