@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
@@ -1,11 +1,23 @@
1
- import { clearApiToken, loadTokenForStoredUser, setDefaultUserId, TOKEN_ENV_VAR, upsertUser, } from './auth.js';
2
- import { readConfig } from './config.js';
3
- import { findUserByRef, getEffectiveDefaultUser, getStoredUsers } from './users.js';
1
+ import { createKeyringTokenStore, } from '@doist/cli-core/auth';
2
+ import { getConfigPath } from './config.js';
3
+ import { createTodoistUserRecordStore } from './user-records.js';
4
+ import { matchUserRef } from './users.js';
5
+ /**
6
+ * Persisted identifiers for the keyring/config ABI. Shared with the read-side
7
+ * resolver (`auth.ts`) and the postinstall migration (`migrate-auth.ts`) so
8
+ * a rename can't silently desynchronise the three paths that touch the OS
9
+ * credential manager.
10
+ */
11
+ export const SERVICE_NAME = 'todoist-cli';
12
+ export const LEGACY_ACCOUNT = 'api-token';
13
+ export const TOKEN_ENV_VAR = 'TODOIST_API_TOKEN';
14
+ export function accountForUser(id) {
15
+ return `user-${id}`;
16
+ }
4
17
  /**
5
18
  * Single source of truth for the `TodoistAccount` field layout. Used by the
6
- * auth provider's `validateToken` (post-handshake) and the token-store
7
- * `active()` adapter (post-read) so the persisted shape stays aligned with
8
- * what `set()` later disassembles via `accountToUpsertInput`.
19
+ * auth provider's `validateToken` (post-handshake), the migration helper,
20
+ * and the `UserRecordStore` adapter's record account mapping.
9
21
  */
10
22
  export function toTodoistAccount(input) {
11
23
  return {
@@ -17,84 +29,41 @@ export function toTodoistAccount(input) {
17
29
  auth_flags: input.authFlags,
18
30
  };
19
31
  }
20
- /** Inverse of `toTodoistAccount` — feeds the upsert path that owns persistence. */
21
- export function accountToUpsertInput(account, token) {
22
- return {
23
- id: account.id,
24
- email: account.email,
25
- token,
26
- authMode: account.auth_mode,
27
- authScope: account.auth_scope,
28
- authFlags: account.auth_flags,
29
- };
30
- }
31
- function storedUserToAccount(user) {
32
- return toTodoistAccount({
33
- id: user.id,
34
- email: user.email,
35
- authMode: user.auth_mode ?? 'unknown',
36
- authScope: user.auth_scope,
37
- authFlags: user.auth_flags,
38
- });
39
- }
32
+ /**
33
+ * cli-core's keyring-backed `TokenStore`, wired to todoist-cli's
34
+ * `UserRecordStore` adapter. Two Todoist-specific overlays on top of the
35
+ * defaults:
36
+ *
37
+ * - `active()` short-circuits to `null` when `TODOIST_API_TOKEN` is set.
38
+ * The env var is the canonical override across the CLI; without this
39
+ * short-circuit, `td auth status` would render the stored account while
40
+ * `getAuthMetadata()` reports `source: 'env'` (wrong account, right
41
+ * diagnostic).
42
+ * - `accountForUser` / `matchAccount` are passed explicitly. `matchAccount`
43
+ * delegates to `matchUserRef` so the keyring-store path and the
44
+ * config-driven `findUserByRef` path share one matcher (case-insensitive
45
+ * email + trim).
46
+ */
40
47
  export function createTodoistTokenStore() {
41
- let lastStorageResult;
42
- let lastClearResult;
48
+ const inner = createKeyringTokenStore({
49
+ serviceName: SERVICE_NAME,
50
+ userRecords: createTodoistUserRecordStore(),
51
+ recordsLocation: getConfigPath(),
52
+ accountForUser,
53
+ matchAccount: (account, ref) => matchUserRef({ id: account.id, email: account.email }, ref),
54
+ });
43
55
  return {
44
- /**
45
- * Pure view of persisted state. Returns `null` when `TODOIST_API_TOKEN`
46
- * is in play (env tokens don't represent a persisted account), when
47
- * nothing is stored, or when `ref` does not match any stored account
48
- * — cli-core's resolver layer translates the miss into a typed error.
49
- * With `ref`, returns that specific stored account; without, returns
50
- * the default-or-only account.
51
- *
52
- * Token-load failures (broken keyring, missing secret) propagate as
53
- * typed errors once a user was matched — collapsing them to `null`
54
- * would make a real account look like an unknown `ref` to cli-core.
55
- */
56
- async active(ref) {
56
+ active: async (ref) => {
57
57
  if (process.env[TOKEN_ENV_VAR])
58
58
  return null;
59
- const config = await readConfig();
60
- const target = ref !== undefined
61
- ? (findUserByRef(config, ref)?.user ?? null)
62
- : getEffectiveDefaultUser(config);
63
- if (!target)
64
- return null;
65
- const { token } = await loadTokenForStoredUser(target);
66
- return { token, account: storedUserToAccount(target) };
67
- },
68
- async set(account, token) {
69
- const { replaced: _replaced, ...result } = await upsertUser(accountToUpsertInput(account, token));
70
- lastStorageResult = result;
71
- },
72
- async clear(ref) {
73
- lastClearResult = await clearApiToken({ ref });
74
- },
75
- async list() {
76
- const config = await readConfig();
77
- const users = getStoredUsers(config);
78
- if (users.length === 0)
79
- return [];
80
- const defaultId = getEffectiveDefaultUser(config)?.id;
81
- return users.map((user) => ({
82
- account: storedUserToAccount(user),
83
- isDefault: user.id === defaultId,
84
- }));
85
- },
86
- async setDefault(ref) {
87
- // `setDefaultUserId` accepts any ref (id or email) and throws
88
- // `UserNotFoundError` (a `CliError` with code `USER_NOT_FOUND`)
89
- // when the ref does not match any stored account.
90
- await setDefaultUserId(ref);
91
- },
92
- getLastStorageResult() {
93
- return lastStorageResult;
94
- },
95
- getLastClearResult() {
96
- return lastClearResult;
59
+ return inner.active(ref);
97
60
  },
61
+ set: (account, token) => inner.set(account, token),
62
+ clear: (ref) => inner.clear(ref),
63
+ list: () => inner.list(),
64
+ setDefault: (ref) => inner.setDefault(ref),
65
+ getLastStorageResult: () => inner.getLastStorageResult(),
66
+ getLastClearResult: () => inner.getLastClearResult(),
98
67
  };
99
68
  }
100
69
  //# sourceMappingURL=auth-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-store.js","sourceRoot":"","sources":["../../src/lib/auth-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,uBAAuB,GAE1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAgC,aAAa,EAAE,MAAM,aAAa,CAAA;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AACzC,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAA;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AAChD,MAAM,UAAU,cAAc,CAAC,EAAU;IACrC,OAAO,QAAQ,EAAE,EAAE,CAAA;AACvB,CAAC;AAsBD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA0B;IACvD,OAAO;QACH,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,QAAQ;QACzB,UAAU,EAAE,KAAK,CAAC,SAAS;QAC3B,UAAU,EAAE,KAAK,CAAC,SAAS;KAC9B,CAAA;AACL,CAAC;AAID;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,uBAAuB;IACnC,MAAM,KAAK,GAAG,uBAAuB,CAAiB;QAClD,WAAW,EAAE,YAAY;QACzB,WAAW,EAAE,4BAA4B,EAAE;QAC3C,eAAe,EAAE,aAAa,EAAE;QAChC,cAAc;QACd,YAAY,EAAE,CAAC,OAAuB,EAAE,GAAe,EAAE,EAAE,CACvD,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC;KAClE,CAAC,CAAA;IACF,OAAO;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAClB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;gBAAE,OAAO,IAAI,CAAA;YAC3C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC;QAClD,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QAChC,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;QACxB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAC1C,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,oBAAoB,EAAE;QACxD,kBAAkB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE;KACvD,CAAA;AACL,CAAC"}
@@ -1,7 +1,8 @@
1
+ export type { TokenStorageLocation, TokenStorageResult } from '@doist/cli-core/auth';
1
2
  export { AUTH_FLAG_ORDER, CONFIG_VERSION, getConfigPath, readConfig, writeConfig, type AuthFlag, type AuthMode, type Config, type StoredUser, type UpdateChannel, } from './config.js';
2
3
  import { type AuthFlag, type AuthMode, type StoredUser } from './config.js';
3
4
  import { CliError } from './errors.js';
4
- export declare const TOKEN_ENV_VAR = "TODOIST_API_TOKEN";
5
+ export { TOKEN_ENV_VAR } from './auth-store.js';
5
6
  export interface AuthMetadata {
6
7
  authMode: AuthMode;
7
8
  authScope?: string;
@@ -19,22 +20,9 @@ export interface ResolvedUser {
19
20
  authFlags?: AuthFlag[];
20
21
  source: AuthMetadata['source'];
21
22
  }
22
- export interface UpsertUserInput {
23
- id: string;
24
- email: string;
25
- token: string;
26
- authMode?: AuthMode;
27
- authScope?: string;
28
- authFlags?: AuthFlag[];
29
- }
30
23
  export declare class NoTokenError extends CliError {
31
24
  constructor();
32
25
  }
33
- export type TokenStorageLocation = 'secure-store' | 'config-file';
34
- export interface TokenStorageResult {
35
- storage: TokenStorageLocation;
36
- warning?: string;
37
- }
38
26
  /**
39
27
  * Resolve which stored user this invocation should act as, and load their
40
28
  * token. Honors `--user <ref>`, then `user.defaultUser`, then a single stored
@@ -48,52 +36,17 @@ export interface TokenStorageResult {
48
36
  export declare function resolveActiveUser(opts?: {
49
37
  ref?: string;
50
38
  }): Promise<ResolvedUser>;
51
- /**
52
- * Backwards-compatible no-arg accessor for the active user's token. Most call
53
- * sites (uploads, stats, api/core) only need the bearer string.
54
- */
39
+ /** Bearer-only shortcut. Most call sites (SDK, uploads, stats) only need this. */
55
40
  export declare function getApiToken(): Promise<string>;
56
41
  /**
57
- * Like `resolveActiveUser` but returns whichever credentials are at hand
58
- * without mutating storage. Useful for `td doctor` / `td config view` where
59
- * we want to inspect (and report on) what would be used.
42
+ * Like `resolveActiveUser` but bundles the rendering metadata `td doctor` /
43
+ * `td config view` want. Lets `SecureStoreUnavailableError` propagate so the
44
+ * diagnostic surfaces can distinguish "missing token" from "broken keyring".
60
45
  */
61
46
  export declare function probeApiToken(): Promise<{
62
47
  token: string;
63
48
  metadata: AuthMetadata;
64
49
  }>;
65
50
  export declare function getAuthMetadata(): Promise<AuthMetadata>;
66
- /**
67
- * Add or update a user record. Stores the token in the OS credential manager
68
- * under `user-<id>` when available, falls back to per-user plaintext in config.
69
- * Sets `defaultUser` automatically if this is the first user being stored.
70
- */
71
- export declare function upsertUser(input: UpsertUserInput): Promise<TokenStorageResult & {
72
- replaced: boolean;
73
- }>;
74
- /**
75
- * Remove the active user (resolved via `--user` or default). For multi-user
76
- * installs without a default, callers must pass `--user <ref>` to disambiguate.
77
- */
78
- export declare function clearApiToken(opts?: {
79
- ref?: string;
80
- }): Promise<TokenStorageResult>;
81
- /**
82
- * Remove a specific user by id. Used by `td user remove` and as the underlying
83
- * primitive for `clearApiToken`.
84
- *
85
- * Order matters: write the new config first (the source of truth) and only
86
- * then delete the secret. If the config update fails the keyring is untouched,
87
- * so the user remains fully functional and a retry will simply re-attempt
88
- * the same operation. A keyring delete failure after a successful config
89
- * update leaves an orphan secret that the keyring's own service can clean up
90
- * later — the CLI no longer references it.
91
- */
92
- export declare function removeUserById(id: string): Promise<TokenStorageResult>;
93
- export declare function setDefaultUserId(id: string): Promise<void>;
94
51
  export declare function listStoredUsers(): Promise<StoredUser[]>;
95
- export declare function loadTokenForStoredUser(user: StoredUser): Promise<{
96
- token: string;
97
- source: 'secure-store' | 'config-file';
98
- }>;
99
52
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EACH,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,aAAa,GACrB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAc,KAAK,UAAU,EAAE,MAAM,aAAa,CAAA;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAItC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,MAAM,EAAE,KAAK,GAAG,cAAc,GAAG,aAAa,CAAA;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;CACjC;AAED,qBAAa,YAAa,SAAQ,QAAQ;;CAUzC;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA8B1F;AAeD,kFAAkF;AAClF,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAEnD;AAED;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,CAAC,CAGxF;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAW7D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAE7D"}