@doist/todoist-cli 1.67.1 → 1.69.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 (98) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +10 -0
  3. package/dist/commands/auth/status.js +3 -3
  4. package/dist/commands/auth/status.js.map +1 -1
  5. package/dist/commands/auth/store-wrap.js +1 -1
  6. package/dist/commands/auth/store-wrap.js.map +1 -1
  7. package/dist/commands/billing/format.d.ts +28 -0
  8. package/dist/commands/billing/format.d.ts.map +1 -0
  9. package/dist/commands/billing/format.js +89 -0
  10. package/dist/commands/billing/format.js.map +1 -0
  11. package/dist/commands/billing/index.d.ts +3 -0
  12. package/dist/commands/billing/index.d.ts.map +1 -0
  13. package/dist/commands/billing/index.js +45 -0
  14. package/dist/commands/billing/index.js.map +1 -0
  15. package/dist/commands/billing/plan.d.ts +3 -0
  16. package/dist/commands/billing/plan.d.ts.map +1 -0
  17. package/dist/commands/billing/plan.js +22 -0
  18. package/dist/commands/billing/plan.js.map +1 -0
  19. package/dist/commands/billing/prices.d.ts +3 -0
  20. package/dist/commands/billing/prices.d.ts.map +1 -0
  21. package/dist/commands/billing/prices.js +22 -0
  22. package/dist/commands/billing/prices.js.map +1 -0
  23. package/dist/commands/billing/pricing.d.ts +7 -0
  24. package/dist/commands/billing/pricing.d.ts.map +1 -0
  25. package/dist/commands/billing/pricing.js +43 -0
  26. package/dist/commands/billing/pricing.js.map +1 -0
  27. package/dist/commands/billing/subscription.d.ts +3 -0
  28. package/dist/commands/billing/subscription.d.ts.map +1 -0
  29. package/dist/commands/billing/subscription.js +37 -0
  30. package/dist/commands/billing/subscription.js.map +1 -0
  31. package/dist/commands/config/view.js +3 -3
  32. package/dist/commands/config/view.js.map +1 -1
  33. package/dist/commands/doctor.js +1 -1
  34. package/dist/commands/doctor.js.map +1 -1
  35. package/dist/commands/user/aliases.d.ts +11 -0
  36. package/dist/commands/user/aliases.d.ts.map +1 -0
  37. package/dist/commands/user/aliases.js +11 -0
  38. package/dist/commands/user/aliases.js.map +1 -0
  39. package/dist/commands/user/current.d.ts +15 -4
  40. package/dist/commands/user/current.d.ts.map +1 -1
  41. package/dist/commands/user/current.js +58 -29
  42. package/dist/commands/user/current.js.map +1 -1
  43. package/dist/commands/user/index.d.ts.map +1 -1
  44. package/dist/commands/user/index.js +25 -30
  45. package/dist/commands/user/index.js.map +1 -1
  46. package/dist/commands/user/list.d.ts +14 -5
  47. package/dist/commands/user/list.d.ts.map +1 -1
  48. package/dist/commands/user/list.js +33 -39
  49. package/dist/commands/user/list.js.map +1 -1
  50. package/dist/commands/user/project-account.d.ts +17 -0
  51. package/dist/commands/user/project-account.d.ts.map +1 -0
  52. package/dist/commands/user/project-account.js +18 -0
  53. package/dist/commands/user/project-account.js.map +1 -0
  54. package/dist/commands/user/remove.d.ts +12 -1
  55. package/dist/commands/user/remove.d.ts.map +1 -1
  56. package/dist/commands/user/remove.js +28 -28
  57. package/dist/commands/user/remove.js.map +1 -1
  58. package/dist/commands/user/use.d.ts +10 -1
  59. package/dist/commands/user/use.d.ts.map +1 -1
  60. package/dist/commands/user/use.js +13 -15
  61. package/dist/commands/user/use.js.map +1 -1
  62. package/dist/index.js +29 -8
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/api/core.d.ts.map +1 -1
  65. package/dist/lib/api/core.js +12 -1
  66. package/dist/lib/api/core.js.map +1 -1
  67. package/dist/lib/auth-flags.d.ts +3 -0
  68. package/dist/lib/auth-flags.d.ts.map +1 -1
  69. package/dist/lib/auth-flags.js +5 -0
  70. package/dist/lib/auth-flags.js.map +1 -1
  71. package/dist/lib/auth-store.d.ts.map +1 -1
  72. package/dist/lib/auth-store.js +19 -2
  73. package/dist/lib/auth-store.js.map +1 -1
  74. package/dist/lib/auth.d.ts.map +1 -1
  75. package/dist/lib/auth.js +4 -12
  76. package/dist/lib/auth.js.map +1 -1
  77. package/dist/lib/completion.js +7 -6
  78. package/dist/lib/completion.js.map +1 -1
  79. package/dist/lib/config.d.ts +1 -1
  80. package/dist/lib/config.d.ts.map +1 -1
  81. package/dist/lib/config.js +1 -1
  82. package/dist/lib/config.js.map +1 -1
  83. package/dist/lib/oauth-scopes.d.ts +8 -1
  84. package/dist/lib/oauth-scopes.d.ts.map +1 -1
  85. package/dist/lib/oauth-scopes.js +10 -3
  86. package/dist/lib/oauth-scopes.js.map +1 -1
  87. package/dist/lib/permissions.d.ts.map +1 -1
  88. package/dist/lib/permissions.js +6 -0
  89. package/dist/lib/permissions.js.map +1 -1
  90. package/dist/lib/skills/content.d.ts +1 -1
  91. package/dist/lib/skills/content.d.ts.map +1 -1
  92. package/dist/lib/skills/content.js +28 -10
  93. package/dist/lib/skills/content.js.map +1 -1
  94. package/dist/lib/users.d.ts +14 -0
  95. package/dist/lib/users.d.ts.map +1 -1
  96. package/dist/lib/users.js +30 -2
  97. package/dist/lib/users.js.map +1 -1
  98. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Back-compat aliases for the `accounts` command group (renamed from `user`).
3
+ *
4
+ * Shared between the real Commander command (`commands/user/index.ts`, via
5
+ * `.aliases()`) and the lazy-loader/​completion dispatcher (`src/index.ts`),
6
+ * which resolve different paths and would otherwise drift if the list were
7
+ * duplicated. Kept in this dependency-free module so `src/index.ts` can import
8
+ * it without eagerly pulling in the command implementation.
9
+ */
10
+ export declare const ACCOUNT_COMMAND_ALIASES: string[];
11
+ //# sourceMappingURL=aliases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aliases.d.ts","sourceRoot":"","sources":["../../../src/commands/user/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,UAAoB,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Back-compat aliases for the `accounts` command group (renamed from `user`).
3
+ *
4
+ * Shared between the real Commander command (`commands/user/index.ts`, via
5
+ * `.aliases()`) and the lazy-loader/​completion dispatcher (`src/index.ts`),
6
+ * which resolve different paths and would otherwise drift if the list were
7
+ * duplicated. Kept in this dependency-free module so `src/index.ts` can import
8
+ * it without eagerly pulling in the command implementation.
9
+ */
10
+ export const ACCOUNT_COMMAND_ALIASES = ['user', 'users'];
11
+ //# sourceMappingURL=aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aliases.js","sourceRoot":"","sources":["../../../src/commands/user/aliases.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA"}
@@ -1,5 +1,16 @@
1
- export interface CurrentUserOptions {
2
- json?: boolean;
3
- }
4
- export declare function currentUserCommand(options: CurrentUserOptions): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ import type { TodoistTokenStore } from '../../lib/auth-store.js';
3
+ /**
4
+ * Attach `td accounts current` via cli-core's `attachAccountCurrentCommand`.
5
+ *
6
+ * A signed-in stored account resolves through `store.activeAccount()` and is
7
+ * rendered by `renderText` / `renderJson`. The env-token and legacy
8
+ * single-user sources live outside the store (so `activeAccount()` returns
9
+ * `null` for them — env via the adapter's short-circuit, legacy because it has
10
+ * no record), and are rendered in `onNotAuthenticated` via the read-side
11
+ * resolver. The stored-case `--json` `source` is read off the account (the
12
+ * adapter's `activeAccount` annotates `secure-store` vs `config-file`); the
13
+ * env/legacy sources come from the fallback branch.
14
+ */
15
+ export declare function attachTodoistUserCurrentCommand(parent: Command, store: TodoistTokenStore): Command;
5
16
  //# sourceMappingURL=current.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCnF"}
1
+ {"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAIhF;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC3C,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,iBAAiB,GACzB,OAAO,CAgDT"}
@@ -1,32 +1,61 @@
1
+ import { formatJson, formatNdjson } from '@doist/cli-core';
2
+ import { attachAccountCurrentCommand } from '@doist/cli-core/auth';
1
3
  import chalk from 'chalk';
2
- import { readConfig, resolveActiveUser } from '../../lib/auth.js';
3
- import { getDefaultUserId } from '../../lib/users.js';
4
- export async function currentUserCommand(options) {
5
- const resolved = await resolveActiveUser();
6
- const config = await readConfig();
7
- const defaultId = getDefaultUserId(config);
8
- const isDefault = resolved.id === defaultId;
9
- if (options.json) {
10
- console.log(JSON.stringify({
11
- id: resolved.id === 'env' || resolved.id === 'legacy' ? null : resolved.id,
12
- email: resolved.email || null,
13
- source: resolved.source,
14
- isDefault,
15
- authMode: resolved.authMode,
16
- authScope: resolved.authScope,
17
- authFlags: resolved.authFlags,
18
- }, null, 2));
19
- return;
20
- }
21
- if (resolved.source === 'env') {
22
- console.log(chalk.dim('Using TODOIST_API_TOKEN environment variable (no stored user).'));
23
- return;
24
- }
25
- if (resolved.id === 'legacy') {
26
- console.log(chalk.dim('Using legacy single-user credentials. Run `td auth login` to migrate to a stored account.'));
27
- return;
28
- }
29
- const marker = isDefault ? chalk.green(' (default)') : '';
30
- console.log(`${resolved.email} ${chalk.dim(`(id:${resolved.id})`)}${marker}`);
4
+ import { resolveActiveUser } from '../../lib/auth.js';
5
+ import { projectAccount } from './project-account.js';
6
+ /**
7
+ * Attach `td accounts current` via cli-core's `attachAccountCurrentCommand`.
8
+ *
9
+ * A signed-in stored account resolves through `store.activeAccount()` and is
10
+ * rendered by `renderText` / `renderJson`. The env-token and legacy
11
+ * single-user sources live outside the store (so `activeAccount()` returns
12
+ * `null` for them — env via the adapter's short-circuit, legacy because it has
13
+ * no record), and are rendered in `onNotAuthenticated` via the read-side
14
+ * resolver. The stored-case `--json` `source` is read off the account (the
15
+ * adapter's `activeAccount` annotates `secure-store` vs `config-file`); the
16
+ * env/legacy sources come from the fallback branch.
17
+ */
18
+ export function attachTodoistUserCurrentCommand(parent, store) {
19
+ return attachAccountCurrentCommand(parent, {
20
+ store,
21
+ description: 'Show the active account (resolved from --user, default, or single login)',
22
+ renderText: ({ account, isDefault }) => {
23
+ const marker = isDefault ? chalk.green(' (default)') : '';
24
+ return `${account.email} ${chalk.dim(`(id:${account.id})`)}${marker}`;
25
+ },
26
+ renderJson: ({ account, isDefault }) => ({
27
+ ...projectAccount(account, isDefault),
28
+ source: account.source ?? 'secure-store',
29
+ }),
30
+ onNotAuthenticated: async ({ view }) => {
31
+ // Nothing resolved in the store, so the active credential is
32
+ // out-of-store (TODOIST_API_TOKEN or legacy single-user creds) — or
33
+ // there's nothing at all, in which case `resolveActiveUser` throws
34
+ // `NoTokenError`, matching the previous behaviour.
35
+ const resolved = await resolveActiveUser();
36
+ if (view.json || view.ndjson) {
37
+ const payload = {
38
+ id: resolved.id === 'env' || resolved.id === 'legacy' ? null : resolved.id,
39
+ email: resolved.email || null,
40
+ source: resolved.source,
41
+ isDefault: false,
42
+ authMode: resolved.authMode,
43
+ authScope: resolved.authScope,
44
+ authFlags: resolved.authFlags,
45
+ };
46
+ console.log(view.json ? formatJson(payload) : formatNdjson([payload]));
47
+ return;
48
+ }
49
+ if (resolved.source === 'env') {
50
+ console.log(chalk.dim('Using TODOIST_API_TOKEN environment variable (no stored user).'));
51
+ return;
52
+ }
53
+ if (resolved.id === 'legacy') {
54
+ console.log(chalk.dim('Using legacy single-user credentials. Run `td auth login` to migrate to a stored account.'));
55
+ return;
56
+ }
57
+ console.log(`${resolved.email} ${chalk.dim(`(id:${resolved.id})`)}`);
58
+ },
59
+ });
31
60
  }
32
61
  //# sourceMappingURL=current.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"current.js","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAChE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAA;IAE3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACP,IAAI,CAAC,SAAS,CACV;YACI,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAChC,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAA;QACD,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAA;QACxF,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,2FAA2F,CAC9F,CACJ,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;AACjF,CAAC"}
1
+ {"version":3,"file":"current.js","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,+BAA+B,CAC3C,MAAe,EACf,KAAwB;IAExB,OAAO,2BAA2B,CAAiB,MAAM,EAAE;QACvD,KAAK;QACL,WAAW,EAAE,0EAA0E;QACvF,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;YACnC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACzD,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAA;QACzE,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;YACrC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;YACrC,MAAM,EAAG,OAAO,CAAC,MAA6B,IAAI,cAAc;SACnE,CAAC;QACF,kBAAkB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;YACnC,6DAA6D;YAC7D,oEAAoE;YACpE,mEAAmE;YACnE,mDAAmD;YACnD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAG;oBACZ,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;oBAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;oBAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,SAAS,EAAE,KAAK;oBAChB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAChC,CAAA;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;gBACtE,OAAM;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAC9E,CAAA;gBACD,OAAM;YACV,CAAC;YACD,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,2FAA2F,CAC9F,CACJ,CAAA;gBACD,OAAM;YACV,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;QACxE,CAAC;KACJ,CAAC,CAAA;AACN,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAsC1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2B1D"}
@@ -1,35 +1,30 @@
1
- import { currentUserCommand } from './current.js';
2
- import { listUsersCommand } from './list.js';
3
- import { removeUserCommand } from './remove.js';
4
- import { useUserCommand } from './use.js';
1
+ import { createTodoistTokenStore } from '../../lib/auth-store.js';
2
+ import { ACCOUNT_COMMAND_ALIASES } from './aliases.js';
3
+ import { attachTodoistUserCurrentCommand } from './current.js';
4
+ import { attachTodoistUserListCommand } from './list.js';
5
+ import { attachTodoistUserRemoveCommand } from './remove.js';
6
+ import { attachTodoistUserUseCommand } from './use.js';
5
7
  export function registerUserCommand(program) {
6
- const user = program.command('user').description('Manage stored Todoist accounts (multi-user)');
7
- user.command('list')
8
- .description('List all stored Todoist accounts')
9
- .option('--json', 'Output as JSON')
10
- .option('--ndjson', 'Output as newline-delimited JSON')
11
- .action(listUsersCommand);
12
- user.command('use <ref>')
13
- .description('Set the default account used when --user is not provided')
14
- .action((ref) => useUserCommand(ref));
15
- // `default` is an explicit alias for `use` — same behavior, different verb.
16
- user.command('default <ref>')
17
- .description('Alias of `td user use <ref>`')
18
- .action((ref) => useUserCommand(ref));
19
- user.command('current')
20
- .description('Show the active account (resolved from --user, default, or single login)')
21
- .option('--json', 'Output as JSON')
22
- .action(currentUserCommand);
23
- user.command('remove <ref>')
24
- .description('Remove a stored account (deletes its token and config entry)')
25
- .action((ref) => removeUserCommand(ref));
26
- user.addHelpText('after', `
8
+ // Renamed from `user` to `accounts`; `user`/`users` stay as aliases so
9
+ // existing scripts (and the docs that long said `td user …`) keep working.
10
+ const account = program
11
+ .command('accounts')
12
+ .aliases(ACCOUNT_COMMAND_ALIASES)
13
+ .description('Manage stored Todoist accounts (multi-user)');
14
+ // All four subcommands delegate to cli-core's generic account attachers
15
+ // (list/use/current/remove), consuming the `TokenStore` contract directly.
16
+ const store = createTodoistTokenStore();
17
+ attachTodoistUserListCommand(account, store);
18
+ attachTodoistUserUseCommand(account, store);
19
+ attachTodoistUserCurrentCommand(account, store);
20
+ attachTodoistUserRemoveCommand(account, store);
21
+ account.addHelpText('after', `
27
22
  Examples:
28
- $ td auth login # add an account (sets it as default if first)
29
- $ td user list # see all stored accounts
30
- $ td user use scott@doist.com # set default
31
- $ td user current # show the active account
23
+ $ td auth login # add an account (sets it as default if first)
24
+ $ td accounts list # see all stored accounts
25
+ $ td accounts use scott@doist.com # set default
26
+ $ td accounts current # show the active account
32
27
  $ td --user other@example.com task list # one-off override
33
- $ td user remove old@example.com`);
28
+ $ td accounts remove old@example.com`);
34
29
  }
35
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEpD,IAAI,CAAC,WAAW,CACZ,OAAO,EACP;;;;;;;mCAO2B,CAC9B,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAA;AAEtD,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/D,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,KAAK,GAAG,uBAAuB,EAAE,CAAA;IACvC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC5C,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC3C,+BAA+B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC/C,8BAA8B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAE9C,OAAO,CAAC,WAAW,CACf,OAAO,EACP;;;;;;;uCAO+B,CAClC,CAAA;AACL,CAAC"}
@@ -1,6 +1,15 @@
1
- export interface ListUsersOptions {
2
- json?: boolean;
3
- ndjson?: boolean;
4
- }
5
- export declare function listUsersCommand(options: ListUsersOptions): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ import type { TodoistTokenStore } from '../../lib/auth-store.js';
3
+ /**
4
+ * Attach `td accounts list` via cli-core's generic `attachAccountListCommand`,
5
+ * which reads `store.list()` and owns the `{ accounts, default }` machine
6
+ * envelope. The Todoist overrides keep human output identical to the
7
+ * hand-rolled version (`<email> (id:<id>)` + a default marker that respects
8
+ * `--accessible`) and flatten each machine entry via `projectAccount`.
9
+ *
10
+ * `isDefault` now reflects the store's *effective* default (a lone account
11
+ * counts as default even with no pinned `defaultUser`), matching what
12
+ * `active()` would resolve.
13
+ */
14
+ export declare function attachTodoistUserListCommand(parent: Command, store: TodoistTokenStore): Command;
6
15
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAcD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6B/E"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAIhF;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAoB/F"}
@@ -1,43 +1,37 @@
1
- import { formatJson, formatNdjson, printEmpty } from '@doist/cli-core';
1
+ import { attachAccountListCommand } from '@doist/cli-core/auth';
2
2
  import chalk from 'chalk';
3
- import { listStoredUsers, readConfig } from '../../lib/auth.js';
4
3
  import { isAccessible } from '../../lib/global-args.js';
5
- import { getDefaultUserId } from '../../lib/users.js';
6
- function projectUser(u, defaultId) {
7
- return {
8
- id: u.id,
9
- email: u.email,
10
- isDefault: u.id === defaultId,
11
- authMode: u.auth_mode,
12
- authScope: u.auth_scope,
13
- authFlags: u.auth_flags,
14
- storage: u.api_token ? 'config-file' : 'secure-store',
15
- };
16
- }
17
- export async function listUsersCommand(options) {
18
- const users = await listStoredUsers();
19
- const config = await readConfig();
20
- const defaultId = getDefaultUserId(config);
21
- if (users.length === 0) {
22
- printEmpty({
23
- options,
24
- message: chalk.dim('No stored Todoist accounts. Run `td auth login` to add one.'),
25
- });
26
- return;
27
- }
28
- if (options.json) {
29
- console.log(formatJson(users.map((u) => projectUser(u, defaultId))));
30
- return;
31
- }
32
- if (options.ndjson) {
33
- console.log(formatNdjson(users.map((u) => projectUser(u, defaultId))));
34
- return;
35
- }
36
- const accessible = isAccessible();
37
- for (const u of users) {
38
- const isDefault = u.id === defaultId;
39
- const marker = isDefault ? (accessible ? ' [default]' : chalk.green(' (default)')) : '';
40
- console.log(`${u.email} ${chalk.dim(`(id:${u.id})`)}${marker}`);
41
- }
4
+ import { projectAccount } from './project-account.js';
5
+ /**
6
+ * Attach `td accounts list` via cli-core's generic `attachAccountListCommand`,
7
+ * which reads `store.list()` and owns the `{ accounts, default }` machine
8
+ * envelope. The Todoist overrides keep human output identical to the
9
+ * hand-rolled version (`<email> (id:<id>)` + a default marker that respects
10
+ * `--accessible`) and flatten each machine entry via `projectAccount`.
11
+ *
12
+ * `isDefault` now reflects the store's *effective* default (a lone account
13
+ * counts as default even with no pinned `defaultUser`), matching what
14
+ * `active()` would resolve.
15
+ */
16
+ export function attachTodoistUserListCommand(parent, store) {
17
+ return attachAccountListCommand(parent, {
18
+ store,
19
+ description: 'List all stored Todoist accounts',
20
+ renderText: ({ accounts }) => {
21
+ if (accounts.length === 0) {
22
+ return chalk.dim('No stored Todoist accounts. Run `td auth login` to add one.');
23
+ }
24
+ const accessible = isAccessible();
25
+ return accounts.map(({ account, isDefault }) => {
26
+ const marker = isDefault
27
+ ? accessible
28
+ ? ' [default]'
29
+ : chalk.green(' (default)')
30
+ : '';
31
+ return `${account.email} ${chalk.dim(`(id:${account.id})`)}${marker}`;
32
+ });
33
+ },
34
+ renderJson: ({ account, isDefault }) => projectAccount(account, isDefault),
35
+ });
42
36
  }
43
37
  //# sourceMappingURL=list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACtE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmB,MAAM,mBAAmB,CAAA;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAOrD,SAAS,WAAW,CAAC,CAAa,EAAE,SAA6B;IAC7D,OAAO;QACH,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,SAAS;QAC7B,QAAQ,EAAE,CAAC,CAAC,SAAS;QACrB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,SAAS,EAAE,CAAC,CAAC,UAAU;QACvB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc;KACxD,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC5D,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAE1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,UAAU,CAAC;YACP,OAAO;YACP,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC;SACpF,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACpE,OAAM;IACV,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACtE,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,YAAY,EAAE,CAAA;IACjC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,KAAK,SAAS,CAAA;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;IACnE,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/user/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAe,EAAE,KAAwB;IAClF,OAAO,wBAAwB,CAAiB,MAAM,EAAE;QACpD,KAAK;QACL,WAAW,EAAE,kCAAkC;QAC/C,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;YACzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;YACnF,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,EAAE,CAAA;YACjC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,SAAS;oBACpB,CAAC,CAAC,UAAU;wBACR,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC/B,CAAC,CAAC,EAAE,CAAA;gBACR,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAA;YACzE,CAAC,CAAC,CAAA;QACN,CAAC;QACD,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC;KAC7E,CAAC,CAAA;AACN,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { TodoistAccount } from '../../lib/auth-store.js';
2
+ /**
3
+ * Shared `TodoistAccount` → CLI JSON projection used by `accounts list` and
4
+ * `accounts current` so their per-account machine payloads can't drift. The
5
+ * stored config keys (`auth_mode`, …) are flattened to the camelCase field
6
+ * names the CLI has always surfaced; `label` (a duplicate of `email`) is
7
+ * dropped. `accounts current` extends the result with a `source` field.
8
+ */
9
+ export declare function projectAccount(account: TodoistAccount, isDefault: boolean): {
10
+ id: string;
11
+ email: string;
12
+ isDefault: boolean;
13
+ authMode: import("../../lib/config.js").AuthMode;
14
+ authScope: string | undefined;
15
+ authFlags: ("read-only" | "app-management" | "backups" | "billing")[] | undefined;
16
+ };
17
+ //# sourceMappingURL=project-account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-account.d.ts","sourceRoot":"","sources":["../../../src/commands/user/project-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,OAAO;;;;;;;EASzE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared `TodoistAccount` → CLI JSON projection used by `accounts list` and
3
+ * `accounts current` so their per-account machine payloads can't drift. The
4
+ * stored config keys (`auth_mode`, …) are flattened to the camelCase field
5
+ * names the CLI has always surfaced; `label` (a duplicate of `email`) is
6
+ * dropped. `accounts current` extends the result with a `source` field.
7
+ */
8
+ export function projectAccount(account, isDefault) {
9
+ return {
10
+ id: account.id,
11
+ email: account.email,
12
+ isDefault,
13
+ authMode: account.auth_mode,
14
+ authScope: account.auth_scope,
15
+ authFlags: account.auth_flags,
16
+ };
17
+ }
18
+ //# sourceMappingURL=project-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-account.js","sourceRoot":"","sources":["../../../src/commands/user/project-account.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAuB,EAAE,SAAkB;IACtE,OAAO;QACH,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS;QACT,QAAQ,EAAE,OAAO,CAAC,SAAS;QAC3B,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,SAAS,EAAE,OAAO,CAAC,UAAU;KAChC,CAAA;AACL,CAAC"}
@@ -1,2 +1,13 @@
1
- export declare function removeUserCommand(ref: string | undefined): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ import type { TodoistTokenStore } from '../../lib/auth-store.js';
3
+ /**
4
+ * Attach `td accounts remove <ref>` via cli-core's `attachAccountRemoveCommand`.
5
+ *
6
+ * `store.clear(ref)` resolves the ref and deletes by the canonical `account.id`
7
+ * in one token-free step (so a record whose secret is unreadable stays
8
+ * removable), returning the removed account plus whether it was the default — a
9
+ * miss surfaces as `ACCOUNT_NOT_FOUND`. The Todoist hook surfaces the
10
+ * keyring-fallback warning that the `TokenStore.clear` contract can't carry.
11
+ */
12
+ export declare function attachTodoistUserRemoveCommand(parent: Command, store: TodoistTokenStore): Command;
2
13
  //# sourceMappingURL=remove.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAsBjG"}
@@ -1,31 +1,31 @@
1
+ import { attachAccountRemoveCommand } from '@doist/cli-core/auth';
1
2
  import chalk from 'chalk';
2
- import { createTodoistTokenStore } from '../../lib/auth-store.js';
3
- import { readConfig } from '../../lib/auth.js';
4
- import { CliError } from '../../lib/errors.js';
5
- import { isQuiet } from '../../lib/global-args.js';
6
- import { getDefaultUserId, requireUserByRef } from '../../lib/users.js';
7
- export async function removeUserCommand(ref) {
8
- if (!ref) {
9
- throw new CliError('MISSING_REF', 'Please provide a user id or email: `td user remove <id|email>`');
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).
15
- const config = await readConfig();
16
- const { user } = requireUserByRef(config, ref);
17
- const wasDefault = getDefaultUserId(config) === user.id;
18
- const store = createTodoistTokenStore();
19
- await store.clear(user.id);
20
- if (!isQuiet()) {
21
- console.log(chalk.green('✓'), `Removed ${user.email}`);
22
- if (wasDefault) {
23
- console.log(chalk.dim('Cleared default account. Set a new one with `td user use <id|email>`.'));
24
- }
25
- }
26
- const result = store.getLastClearResult();
27
- if (result?.warning) {
28
- console.error(chalk.yellow('Warning:'), result.warning);
29
- }
3
+ /**
4
+ * Attach `td accounts remove <ref>` via cli-core's `attachAccountRemoveCommand`.
5
+ *
6
+ * `store.clear(ref)` resolves the ref and deletes by the canonical `account.id`
7
+ * in one token-free step (so a record whose secret is unreadable stays
8
+ * removable), returning the removed account plus whether it was the default — a
9
+ * miss surfaces as `ACCOUNT_NOT_FOUND`. The Todoist hook surfaces the
10
+ * keyring-fallback warning that the `TokenStore.clear` contract can't carry.
11
+ */
12
+ export function attachTodoistUserRemoveCommand(parent, store) {
13
+ return attachAccountRemoveCommand(parent, {
14
+ store,
15
+ description: 'Remove a stored account (deletes its token and config entry)',
16
+ renderText: ({ account, wasDefault }) => {
17
+ const lines = [`${chalk.green('✓')} Removed ${account.email ?? account.id}`];
18
+ if (wasDefault) {
19
+ lines.push(chalk.dim('Cleared default account. Set a new one with `td accounts use <id|email>`.'));
20
+ }
21
+ return lines;
22
+ },
23
+ onRemoved: () => {
24
+ const result = store.getLastClearResult();
25
+ if (result?.warning) {
26
+ console.error(chalk.yellow('Warning:'), result.warning);
27
+ }
28
+ },
29
+ });
30
30
  }
31
31
  //# sourceMappingURL=remove.js.map
@@ -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,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
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB;;;;;;;;GAQG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAe,EAAE,KAAwB;IACpF,OAAO,0BAA0B,CAAiB,MAAM,EAAE;QACtD,KAAK;QACL,WAAW,EAAE,8DAA8D;QAC3E,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5E,IAAI,UAAU,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CACN,KAAK,CAAC,GAAG,CACL,2EAA2E,CAC9E,CACJ,CAAA;YACL,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;QACD,SAAS,EAAE,GAAG,EAAE;YACZ,MAAM,MAAM,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAA;YACzC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;YAC3D,CAAC;QACL,CAAC;KACJ,CAAC,CAAA;AACN,CAAC"}
@@ -1,2 +1,11 @@
1
- export declare function useUserCommand(ref: string | undefined): Promise<void>;
1
+ import type { Command } from 'commander';
2
+ import type { TodoistTokenStore } from '../../lib/auth-store.js';
3
+ /**
4
+ * Attach `td accounts use <ref>` (alias `td accounts default <ref>`) via cli-core's
5
+ * generic `attachAccountUseCommand`, which calls `store.setDefault(ref)` and
6
+ * owns the success line / `--json` (`{ ok, default }`) / silent-`--ndjson`
7
+ * output. `setDefault`'s `CliError('ACCOUNT_NOT_FOUND', …)` on a ref miss
8
+ * propagates to the top-level handler unchanged.
9
+ */
10
+ export declare function attachTodoistUserUseCommand(parent: Command, store: TodoistTokenStore): Command;
2
11
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/user/use.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEhF;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAK9F"}