@doist/todoist-cli 1.64.0 → 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 (80) 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 +344 -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 +1 -1
  45. package/dist/lib/output.d.ts.map +1 -1
  46. package/dist/lib/output.js +15 -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/refs.d.ts +2 -1
  53. package/dist/lib/refs.d.ts.map +1 -1
  54. package/dist/lib/refs.js +6 -1
  55. package/dist/lib/refs.js.map +1 -1
  56. package/dist/lib/skills/content.d.ts +1 -1
  57. package/dist/lib/skills/content.d.ts.map +1 -1
  58. package/dist/lib/skills/content.js +20 -0
  59. package/dist/lib/skills/content.js.map +1 -1
  60. package/dist/lib/urls.d.ts +2 -0
  61. package/dist/lib/urls.d.ts.map +1 -1
  62. package/dist/lib/urls.js +6 -0
  63. package/dist/lib/urls.js.map +1 -1
  64. package/dist/lib/user-records.d.ts +17 -0
  65. package/dist/lib/user-records.d.ts.map +1 -0
  66. package/dist/lib/user-records.js +84 -0
  67. package/dist/lib/user-records.js.map +1 -0
  68. package/dist/lib/users.d.ts +20 -20
  69. package/dist/lib/users.d.ts.map +1 -1
  70. package/dist/lib/users.js +41 -51
  71. package/dist/lib/users.js.map +1 -1
  72. package/package.json +7 -7
  73. package/dist/commands/auth/token-view.d.ts +0 -2
  74. package/dist/commands/auth/token-view.d.ts.map +0 -1
  75. package/dist/commands/auth/token-view.js +0 -13
  76. package/dist/commands/auth/token-view.js.map +0 -1
  77. package/dist/lib/secure-store.d.ts +0 -25
  78. package/dist/lib/secure-store.d.ts.map +0 -1
  79. package/dist/lib/secure-store.js +0 -72
  80. package/dist/lib/secure-store.js.map +0 -1
package/dist/lib/auth.js CHANGED
@@ -1,19 +1,17 @@
1
- import { accountForUser, createSecureStore, LEGACY_ACCOUNT_NAME, SECURE_STORE_DESCRIPTION, SecureStoreUnavailableError, } from './secure-store.js';
1
+ import { createSecureStore, SecureStoreUnavailableError } from '@doist/cli-core/auth';
2
2
  export { AUTH_FLAG_ORDER, CONFIG_VERSION, getConfigPath, readConfig, writeConfig, } from './config.js';
3
- import { CONFIG_VERSION, getConfigPath, readConfig, writeConfig, } from './config.js';
3
+ import { accountForUser, SERVICE_NAME, TOKEN_ENV_VAR } from './auth-store.js';
4
+ import { readConfig } from './config.js';
4
5
  import { CliError } from './errors.js';
5
6
  import { getRequestedUserRef } from './global-args.js';
6
- import { findUserByRef, getDefaultUser, getStoredUsers, NoUserSelectedError, removeStoredUser, setDefaultUser as setDefaultUserInConfig, upsertStoredUser, UserNotFoundError, } from './users.js';
7
- export const TOKEN_ENV_VAR = 'TODOIST_API_TOKEN';
7
+ import { findUserByRef, getStoredUsers, NoUserSelectedError, UserNotFoundError } from './users.js';
8
+ export { TOKEN_ENV_VAR } from './auth-store.js';
8
9
  export class NoTokenError extends CliError {
9
10
  constructor() {
10
11
  super('NO_TOKEN', `No API token found. Set ${TOKEN_ENV_VAR} or run \`td auth login\` or \`td auth token <token>\`.`, ['Set TODOIST_API_TOKEN or run: td auth login'], 'info');
11
12
  this.name = 'NoTokenError';
12
13
  }
13
14
  }
14
- // ---------------------------------------------------------------------------
15
- // Public API — used by api/core, uploads, stats, doctor, auth subcommands
16
- // ---------------------------------------------------------------------------
17
15
  /**
18
16
  * Resolve which stored user this invocation should act as, and load their
19
17
  * token. Honors `--user <ref>`, then `user.defaultUser`, then a single stored
@@ -27,60 +25,18 @@ export class NoTokenError extends CliError {
27
25
  export async function resolveActiveUser(opts = {}) {
28
26
  const envToken = process.env[TOKEN_ENV_VAR];
29
27
  if (envToken) {
30
- return {
31
- id: 'env',
32
- email: '',
33
- token: envToken,
34
- authMode: 'unknown',
35
- source: 'env',
36
- };
28
+ return { id: 'env', email: '', token: envToken, authMode: 'unknown', source: 'env' };
37
29
  }
38
30
  const config = await readConfig();
39
31
  const users = getStoredUsers(config);
40
- const requestedRef = opts.ref ?? getRequestedUserRef();
41
- // Gate the legacy fallback on the *absence* of `config.users` rather than
42
- // an empty array. A v2 config that has been logged out (`users: []`) must
43
- // not silently fall back to a stale `api-token` keyring entry — that
44
- // would let a forgotten v1 credential reauthenticate the next command.
45
- const isLegacyShape = !Array.isArray(config.users);
32
+ const ref = opts.ref ?? getRequestedUserRef();
46
33
  if (users.length === 0) {
47
- if (requestedRef) {
48
- // Asked for a specific user, but the store is empty — same error
49
- // as missing user, scoped to the request.
50
- throw new UserNotFoundError(requestedRef);
51
- }
52
- if (isLegacyShape) {
53
- return resolveLegacyToken(config);
54
- }
55
- throw new NoTokenError();
56
- }
57
- let target;
58
- if (requestedRef) {
59
- const found = findUserByRef(config, requestedRef);
60
- if (!found)
61
- throw new UserNotFoundError(requestedRef);
62
- target = found.user;
63
- }
64
- else if (config.user?.defaultUser) {
65
- const found = findUserByRef(config, config.user.defaultUser);
66
- if (!found) {
67
- // Default points at a missing user — treat like no default.
68
- if (users.length === 1) {
69
- target = users[0];
70
- }
71
- else {
72
- throw new NoUserSelectedError();
73
- }
74
- }
75
- else {
76
- target = found.user;
77
- }
34
+ throw ref ? new UserNotFoundError(ref) : new NoTokenError();
78
35
  }
79
- else if (users.length === 1) {
80
- target = users[0];
81
- }
82
- else {
83
- throw new NoUserSelectedError();
36
+ const target = ref ? (findUserByRef(config, ref)?.user ?? null) : pickDefault(config, users);
37
+ if (!target) {
38
+ // ref miss when records exist, or multi-user no-default.
39
+ throw ref ? new UserNotFoundError(ref) : new NoUserSelectedError();
84
40
  }
85
41
  const { token, source } = await loadTokenForStoredUser(target);
86
42
  return {
@@ -93,337 +49,67 @@ export async function resolveActiveUser(opts = {}) {
93
49
  source,
94
50
  };
95
51
  }
96
- /**
97
- * Backwards-compatible no-arg accessor for the active user's token. Most call
98
- * sites (uploads, stats, api/core) only need the bearer string.
99
- */
52
+ function pickDefault(config, users) {
53
+ const defaultId = config.user?.defaultUser;
54
+ if (defaultId) {
55
+ const found = users.find((u) => u.id === defaultId);
56
+ if (found)
57
+ return found;
58
+ // Default points at a missing user — fall through to single-user fallback.
59
+ }
60
+ return users.length === 1 ? users[0] : null;
61
+ }
62
+ /** Bearer-only shortcut. Most call sites (SDK, uploads, stats) only need this. */
100
63
  export async function getApiToken() {
101
- const resolved = await resolveActiveUser();
102
- return resolved.token;
64
+ return (await resolveActiveUser()).token;
103
65
  }
104
66
  /**
105
- * Like `resolveActiveUser` but returns whichever credentials are at hand
106
- * without mutating storage. Useful for `td doctor` / `td config view` where
107
- * we want to inspect (and report on) what would be used.
67
+ * Like `resolveActiveUser` but bundles the rendering metadata `td doctor` /
68
+ * `td config view` want. Lets `SecureStoreUnavailableError` propagate so the
69
+ * diagnostic surfaces can distinguish "missing token" from "broken keyring".
108
70
  */
109
71
  export async function probeApiToken() {
110
72
  const resolved = await resolveActiveUser();
111
- return {
112
- token: resolved.token,
113
- metadata: resolvedToMetadata(resolved),
114
- };
73
+ return { token: resolved.token, metadata: resolvedToMetadata(resolved) };
115
74
  }
116
75
  export async function getAuthMetadata() {
117
76
  try {
118
- const resolved = await resolveActiveUser();
119
- return resolvedToMetadata(resolved);
77
+ return resolvedToMetadata(await resolveActiveUser());
120
78
  }
121
79
  catch (error) {
122
- // Metadata callers (e.g. `ensureWriteAllowed`, scope-error
123
- // remediation) need a sensible default rather than a hard failure
124
- // when credentials are missing or the keyring is offline. Diagnostic
125
- // commands use `probeApiToken` for that — it intentionally lets
126
- // `SecureStoreUnavailableError` propagate so it can be reported.
80
+ // Permission/scope callers need a sensible default rather than a hard
81
+ // failure when credentials are missing or the keyring is offline.
127
82
  if (error instanceof NoTokenError || error instanceof SecureStoreUnavailableError) {
128
83
  return { authMode: 'unknown', source: 'secure-store' };
129
84
  }
130
85
  throw error;
131
86
  }
132
87
  }
133
- /**
134
- * Add or update a user record. Stores the token in the OS credential manager
135
- * under `user-<id>` when available, falls back to per-user plaintext in config.
136
- * Sets `defaultUser` automatically if this is the first user being stored.
137
- */
138
- export async function upsertUser(input) {
139
- if (!input.token || input.token.trim().length < 10) {
140
- throw new CliError('INVALID_TOKEN', 'Invalid token: Token must be at least 10 characters');
141
- }
142
- if (!input.id) {
143
- throw new CliError('INVALID_USER', 'Cannot store user record: missing id');
144
- }
145
- if (!input.email) {
146
- throw new CliError('INVALID_USER', 'Cannot store user record: missing email');
147
- }
148
- const trimmedToken = input.token.trim();
149
- const config = await readConfig();
150
- const previouslyExisted = getStoredUsers(config).some((u) => u.id === input.id);
151
- // Always set the first user as the default — even if `config.user.defaultUser`
152
- // points at a stale/orphaned id, that pointer would otherwise wedge multi-user
153
- // resolution on subsequent logins.
154
- const shouldSetDefault = getStoredUsers(config).length === 0;
155
- const baseRecord = {
156
- id: input.id,
157
- email: input.email,
158
- auth_mode: input.authMode,
159
- auth_scope: input.authScope,
160
- auth_flags: input.authFlags,
161
- };
162
- const secureStore = createSecureStore(accountForUser(input.id));
163
- let storedSecurely = false;
164
- try {
165
- await secureStore.setSecret(trimmedToken);
166
- storedSecurely = true;
167
- }
168
- catch (error) {
169
- if (!(error instanceof SecureStoreUnavailableError))
170
- throw error;
171
- }
172
- const userRecord = storedSecurely
173
- ? baseRecord
174
- : { ...baseRecord, api_token: trimmedToken };
175
- let next = ensureV2Shape(config);
176
- next = upsertStoredUser(next, userRecord).config;
177
- if (shouldSetDefault) {
178
- next = setDefaultUserInConfig(next, input.id);
179
- }
180
- next = stripLegacyAuthFields(next);
181
- try {
182
- await writeConfig(next);
183
- }
184
- catch (error) {
185
- // Config write is the source of truth — without it, later commands
186
- // can't resolve the user even though the keyring holds the secret.
187
- // Roll the keyring back so we don't leak credentials for a non-stored
188
- // account, then surface the failure.
189
- if (storedSecurely) {
190
- try {
191
- await secureStore.deleteSecret();
192
- }
193
- catch {
194
- // best effort — the original error is what the user needs
195
- }
196
- }
197
- const detail = error instanceof Error && error.message ? `: ${error.message}` : '';
198
- throw new CliError('CONFIG_WRITE_FAILED', `Could not persist account record to ${getConfigPath()}${detail}`, ['Check file permissions on ~/.config/todoist-cli/, then re-run the command']);
199
- }
200
- return {
201
- storage: storedSecurely ? 'secure-store' : 'config-file',
202
- warning: storedSecurely ? undefined : buildFallbackWarning('token saved as plaintext in'),
203
- replaced: previouslyExisted,
204
- };
205
- }
206
- /**
207
- * Remove the active user (resolved via `--user` or default). For multi-user
208
- * installs without a default, callers must pass `--user <ref>` to disambiguate.
209
- */
210
- export async function clearApiToken(opts = {}) {
211
- const config = await readConfig();
212
- const users = getStoredUsers(config);
213
- const requestedRef = opts.ref ?? getRequestedUserRef();
214
- // No users stored yet — fall through to legacy logout only on a v1-shaped
215
- // config (no `users` key at all). Empty `users: []` is an already-clean
216
- // v2 install; treat it as a no-op rather than poking the legacy keyring.
217
- //
218
- // A `requestedRef` always wins over the legacy fallback: a caller asking
219
- // for a specific account on a legacy install should see `USER_NOT_FOUND`,
220
- // not have their legacy token silently wiped (matches `resolveActiveUser`
221
- // above and prevents `td auth logout --user missing@x` from clearing the
222
- // wrong credential).
223
- if (users.length === 0) {
224
- if (requestedRef) {
225
- throw new UserNotFoundError(requestedRef);
226
- }
227
- if (!Array.isArray(config.users)) {
228
- return clearLegacyToken(config);
229
- }
230
- throw new NoTokenError();
231
- }
232
- let target;
233
- if (requestedRef) {
234
- const found = findUserByRef(config, requestedRef);
235
- if (!found)
236
- throw new UserNotFoundError(requestedRef);
237
- target = found.user;
238
- }
239
- else {
240
- const def = getDefaultUser(config);
241
- if (def) {
242
- target = def;
243
- }
244
- else if (users.length === 1) {
245
- target = users[0];
246
- }
247
- else {
248
- throw new NoUserSelectedError();
249
- }
250
- }
251
- return removeUserById(target.id);
252
- }
253
- /**
254
- * Remove a specific user by id. Used by `td user remove` and as the underlying
255
- * primitive for `clearApiToken`.
256
- *
257
- * Order matters: write the new config first (the source of truth) and only
258
- * then delete the secret. If the config update fails the keyring is untouched,
259
- * so the user remains fully functional and a retry will simply re-attempt
260
- * the same operation. A keyring delete failure after a successful config
261
- * update leaves an orphan secret that the keyring's own service can clean up
262
- * later — the CLI no longer references it.
263
- */
264
- export async function removeUserById(id) {
265
- const config = await readConfig();
266
- const next = stripLegacyAuthFields(removeStoredUser(ensureV2Shape(config), id));
267
- try {
268
- await writeConfig(next);
269
- }
270
- catch (error) {
271
- const detail = error instanceof Error && error.message ? `: ${error.message}` : '';
272
- throw new CliError('CONFIG_WRITE_FAILED', `Could not update ${getConfigPath()}${detail}`, [
273
- 'Check file permissions on ~/.config/todoist-cli/, then re-run the command',
274
- ]);
275
- }
276
- const secureStore = createSecureStore(accountForUser(id));
277
- try {
278
- await secureStore.deleteSecret();
279
- }
280
- catch (error) {
281
- if (!(error instanceof SecureStoreUnavailableError))
282
- throw error;
283
- return {
284
- storage: 'config-file',
285
- warning: buildFallbackWarning('local auth state cleared in'),
286
- };
287
- }
288
- return { storage: 'secure-store' };
289
- }
290
- export async function setDefaultUserId(id) {
291
- const config = ensureV2Shape(await readConfig());
292
- const found = findUserByRef(config, id);
293
- if (!found)
294
- throw new UserNotFoundError(id);
295
- await writeConfig(stripLegacyAuthFields(setDefaultUserInConfig(config, found.user.id)));
296
- }
297
88
  export async function listStoredUsers() {
298
- const config = await readConfig();
299
- return getStoredUsers(config);
89
+ return getStoredUsers(await readConfig());
300
90
  }
301
- // ---------------------------------------------------------------------------
302
- // Internal helpers
303
- // ---------------------------------------------------------------------------
304
- export async function loadTokenForStoredUser(user) {
91
+ async function loadTokenForStoredUser(user) {
305
92
  if (user.api_token?.trim()) {
306
93
  return { token: user.api_token.trim(), source: 'config-file' };
307
94
  }
308
- const secureStore = createSecureStore(accountForUser(user.id));
309
- // Re-throw `SecureStoreUnavailableError` rather than collapsing it into
310
- // `NoTokenError`. A stored v2 user with the keyring offline is *not* the
311
- // same situation as no credentials at all — `td doctor` and `td config
312
- // view` both have dedicated handling for the unavailable-store case and
313
- // should report the keyring failure rather than misleadingly say the user
314
- // has no saved credentials.
315
- const stored = await secureStore.getSecret();
316
- if (stored?.trim()) {
95
+ // Let `SecureStoreUnavailableError` propagate — a stored v2 user with the
96
+ // keyring offline is not the same situation as no credentials at all.
97
+ const stored = await createSecureStore({
98
+ serviceName: SERVICE_NAME,
99
+ account: accountForUser(user.id),
100
+ }).getSecret();
101
+ if (stored?.trim())
317
102
  return { token: stored.trim(), source: 'secure-store' };
318
- }
319
- throw new NoTokenError();
320
- }
321
- /**
322
- * v1 fallback: when there are no v2 users in the config, see if a legacy
323
- * single-user token is present (config plaintext or legacy `api-token`
324
- * keyring entry). Returns it as a synthetic ResolvedUser so the CLI keeps
325
- * working until postinstall (or `td auth login`) migrates the install.
326
- */
327
- async function resolveLegacyToken(config) {
328
- const legacyToken = typeof config.api_token === 'string' ? config.api_token.trim() : '';
329
- if (legacyToken) {
330
- return {
331
- id: 'legacy',
332
- email: '',
333
- token: legacyToken,
334
- authMode: config.auth_mode ?? 'unknown',
335
- authScope: config.auth_scope,
336
- authFlags: config.auth_flags,
337
- source: 'config-file',
338
- };
339
- }
340
- if (config.pendingSecureStoreClear) {
341
- // v1 logout state: nothing to restore. Surface as the same NoTokenError
342
- // the v1 path used to throw.
343
- throw new NoTokenError();
344
- }
345
- const secureStore = createSecureStore(LEGACY_ACCOUNT_NAME);
346
- try {
347
- const stored = await secureStore.getSecret();
348
- if (stored?.trim()) {
349
- return {
350
- id: 'legacy',
351
- email: '',
352
- token: stored.trim(),
353
- authMode: config.auth_mode ?? 'unknown',
354
- authScope: config.auth_scope,
355
- authFlags: config.auth_flags,
356
- source: 'secure-store',
357
- };
358
- }
359
- }
360
- catch (error) {
361
- if (!(error instanceof SecureStoreUnavailableError))
362
- throw error;
363
- }
364
103
  throw new NoTokenError();
365
104
  }
366
- async function clearLegacyToken(config) {
367
- const secureStore = createSecureStore(LEGACY_ACCOUNT_NAME);
368
- try {
369
- await secureStore.deleteSecret();
370
- const cleaned = stripLegacyAuthFields(config);
371
- try {
372
- await writeConfig(cleaned);
373
- }
374
- catch (error) {
375
- return {
376
- storage: 'secure-store',
377
- warning: buildConfigCleanupWarning('Secure-store token was removed,', error),
378
- };
379
- }
380
- return { storage: 'secure-store' };
381
- }
382
- catch (error) {
383
- if (!(error instanceof SecureStoreUnavailableError))
384
- throw error;
385
- }
386
- const cleared = {
387
- ...stripLegacyAuthFields(config),
388
- pendingSecureStoreClear: true,
389
- };
390
- try {
391
- await writeConfig(cleared);
392
- }
393
- catch {
394
- // best-effort
395
- }
396
- return {
397
- storage: 'config-file',
398
- warning: buildFallbackWarning('local auth state cleared in'),
399
- };
400
- }
401
- function ensureV2Shape(config) {
402
- const next = { ...config, config_version: CONFIG_VERSION };
403
- if (!Array.isArray(next.users)) {
404
- next.users = [];
405
- }
406
- return next;
407
- }
408
- function stripLegacyAuthFields(config) {
409
- const { api_token: _t, auth_mode: _m, auth_scope: _s, auth_flags: _f, pendingSecureStoreClear: _p, ...rest } = config;
410
- return rest;
411
- }
412
105
  function resolvedToMetadata(resolved) {
413
106
  return {
414
107
  authMode: resolved.authMode,
415
108
  authScope: resolved.authScope,
416
109
  authFlags: resolved.authFlags,
417
110
  source: resolved.source,
418
- userId: resolved.id === 'env' || resolved.id === 'legacy' ? undefined : resolved.id,
111
+ userId: resolved.id === 'env' ? undefined : resolved.id,
419
112
  email: resolved.email || undefined,
420
113
  };
421
114
  }
422
- function buildFallbackWarning(action) {
423
- return `${SECURE_STORE_DESCRIPTION} unavailable; ${action} ${getConfigPath()}`;
424
- }
425
- function buildConfigCleanupWarning(prefix, error) {
426
- const detail = error instanceof Error && error.message ? ` (${error.message})` : '';
427
- return `${prefix} but could not update ${getConfigPath()}${detail}`;
428
- }
429
115
  //# sourceMappingURL=auth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,GAC9B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACH,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,GAMd,MAAM,aAAa,CAAA;AAEpB,OAAO,EACH,cAAc,EACd,aAAa,EACb,UAAU,EACV,WAAW,GAKd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EACH,aAAa,EACb,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,IAAI,sBAAsB,EACxC,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,YAAY,CAAA;AAEnB,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAA;AA8BhD,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACtC;QACI,KAAK,CACD,UAAU,EACV,2BAA2B,aAAa,yDAAyD,EACjG,CAAC,6CAA6C,CAAC,EAC/C,MAAM,CACT,CAAA;QACD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAA;IAC9B,CAAC;CACJ;AASD,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAyB,EAAE;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACX,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,KAAK;SAChB,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAAA;IAEtD,0EAA0E;IAC1E,0EAA0E;IAC1E,qEAAqE;IACrE,uEAAuE;IACvE,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,YAAY,EAAE,CAAC;YACf,iEAAiE;YACjE,0CAA0C;YAC1C,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC7C,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAChB,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACrC,CAAC;QACD,MAAM,IAAI,YAAY,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,MAAkB,CAAA;IACtB,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QACjD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACrD,MAAM,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,4DAA4D;YAC5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,mBAAmB,EAAE,CAAA;YACnC,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,KAAK,CAAC,IAAI,CAAA;QACvB,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACrB,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,mBAAmB,EAAE,CAAA;IACnC,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAA;IAC9D,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK;QACL,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;QACvC,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,MAAM;KACT,CAAA;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAC1C,OAAO,QAAQ,CAAC,KAAK,CAAA;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IAC/B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAC1C,OAAO;QACH,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACzC,CAAA;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;QAC1C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,2DAA2D;QAC3D,kEAAkE;QAClE,qEAAqE;QACrE,gEAAgE;QAChE,iEAAiE;QACjE,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,YAAY,2BAA2B,EAAE,CAAC;YAChF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;QAC1D,CAAC;QACD,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,KAAsB;IAEtB,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,qDAAqD,CAAC,CAAA;IAC9F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,sCAAsC,CAAC,CAAA;IAC9E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,yCAAyC,CAAC,CAAA;IACjF,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACvC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAA;IAC/E,+EAA+E;IAC/E,+EAA+E;IAC/E,mCAAmC;IACnC,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAe;QAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,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;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/D,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,CAAA;QACzC,cAAc,GAAG,IAAI,CAAA;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC;YAAE,MAAM,KAAK,CAAA;IACpE,CAAC;IAED,MAAM,UAAU,GAAe,cAAc;QACzC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAA;IAEhD,IAAI,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAChC,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CAAA;IAChD,IAAI,gBAAgB,EAAE,CAAC;QACnB,IAAI,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;IACjD,CAAC;IACD,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAElC,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,qCAAqC;QACrC,IAAI,cAAc,EAAE,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,WAAW,CAAC,YAAY,EAAE,CAAA;YACpC,CAAC;YAAC,MAAM,CAAC;gBACL,0DAA0D;YAC9D,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,MAAM,IAAI,QAAQ,CACd,qBAAqB,EACrB,uCAAuC,aAAa,EAAE,GAAG,MAAM,EAAE,EACjE,CAAC,2EAA2E,CAAC,CAChF,CAAA;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa;QACxD,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,6BAA6B,CAAC;QACzF,QAAQ,EAAE,iBAAiB;KAC9B,CAAA;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB,EAAE;IAC3D,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,mBAAmB,EAAE,CAAA;IAEtD,0EAA0E;IAC1E,wEAAwE;IACxE,yEAAyE;IACzE,EAAE;IACF,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC7C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,YAAY,EAAE,CAAA;IAC5B,CAAC;IAED,IAAI,MAAkB,CAAA;IACtB,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QACjD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAA;QACrD,MAAM,GAAG,KAAK,CAAC,IAAI,CAAA;IACvB,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,CAAA;QAChB,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,mBAAmB,EAAE,CAAA;QACnC,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AACpC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAU;IAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,IAAI,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAE/E,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAClF,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,oBAAoB,aAAa,EAAE,GAAG,MAAM,EAAE,EAAE;YACtF,2EAA2E;SAC9E,CAAC,CAAA;IACN,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAA;IACzD,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,YAAY,EAAE,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC;YAAE,MAAM,KAAK,CAAA;QAChE,OAAO;YACH,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,oBAAoB,CAAC,6BAA6B,CAAC;SAC/D,CAAA;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAU;IAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,UAAU,EAAE,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAA;IAC3C,MAAM,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACjC,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,IAAgB;IAEhB,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAA;IAClE,CAAC;IACD,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9D,wEAAwE;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,0EAA0E;IAC1E,4BAA4B;IAC5B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAA;IAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACjB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAC3D,CAAC;IACD,MAAM,IAAI,YAAY,EAAE,CAAA;AAC5B,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAc;IAC5C,MAAM,WAAW,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IACvF,IAAI,WAAW,EAAE,CAAC;QACd,OAAO;YACH,EAAE,EAAE,QAAQ;YACZ,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;YACvC,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;YAC5B,MAAM,EAAE,aAAa;SACxB,CAAA;IACL,CAAC;IAED,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACjC,wEAAwE;QACxE,6BAA6B;QAC7B,MAAM,IAAI,YAAY,EAAE,CAAA;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAA;IAC1D,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,CAAA;QAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO;gBACH,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,EAAE;gBACT,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE;gBACpB,QAAQ,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;gBACvC,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,MAAM,EAAE,cAAc;aACzB,CAAA;QACL,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC;YAAE,MAAM,KAAK,CAAA;IACpE,CAAC;IAED,MAAM,IAAI,YAAY,EAAE,CAAA;AAC5B,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc;IAC1C,MAAM,WAAW,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAA;IAE1D,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,YAAY,EAAE,CAAA;QAChC,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAA;QAC7C,IAAI,CAAC;YACD,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,yBAAyB,CAAC,iCAAiC,EAAE,KAAK,CAAC;aAC/E,CAAA;QACL,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,KAAK,YAAY,2BAA2B,CAAC;YAAE,MAAM,KAAK,CAAA;IACpE,CAAC;IAED,MAAM,OAAO,GAAW;QACpB,GAAG,qBAAqB,CAAC,MAAM,CAAC;QAChC,uBAAuB,EAAE,IAAI;KAChC,CAAA;IACD,IAAI,CAAC;QACD,MAAM,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACL,cAAc;IAClB,CAAC;IACD,OAAO;QACH,OAAO,EAAE,aAAa;QACtB,OAAO,EAAE,oBAAoB,CAAC,6BAA6B,CAAC;KAC/D,CAAA;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACjC,MAAM,IAAI,GAAW,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACnB,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc;IACzC,MAAM,EACF,SAAS,EAAE,EAAE,EACb,SAAS,EAAE,EAAE,EACb,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,EAAE,EACd,uBAAuB,EAAE,EAAE,EAC3B,GAAG,IAAI,EACV,GAAG,MAAM,CAAA;IACV,OAAO,IAAI,CAAA;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAsB;IAC9C,OAAO;QACH,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QACnF,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,SAAS;KACrC,CAAA;AACL,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IACxC,OAAO,GAAG,wBAAwB,iBAAiB,MAAM,IAAI,aAAa,EAAE,EAAE,CAAA;AAClF,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAc,EAAE,KAAc;IAC7D,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,OAAO,GAAG,MAAM,yBAAyB,aAAa,EAAE,GAAG,MAAM,EAAE,CAAA;AACvE,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
@@ -68,5 +68,13 @@ export type StrictReadResult = {
68
68
  */
69
69
  export declare function readConfigStrict(): Promise<StrictReadResult>;
70
70
  export declare function writeConfig(config: Config): Promise<void>;
71
+ /**
72
+ * Strip the v1 top-level auth fields. Called on every v2 config write so a
73
+ * stale `api_token` / `auth_mode` / `auth_flags` from a pre-migration config
74
+ * can't outlive a successful multi-user write. Single source of truth for
75
+ * the list — the keyring/migration paths and the v2-shape normalizer all
76
+ * delegate here.
77
+ */
78
+ export declare function stripLegacyAuthFields(config: Config): Config;
71
79
  export declare function validateConfigForDoctor(config: Record<string, unknown>): string[];
72
80
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAA;AAC7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpD,MAAM,WAAW,gBAAgB;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,qDAAsD,CAAA;AAClF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,QAAQ,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,eAAO,MAAM,cAAc,EAAG,CAAU,CAAA;AAExC,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,EAAE,CAAC,EAAE,gBAAgB,CAAA;IACrB,SAAS,CAAC,EAAE,eAAe,CAAA;IAG3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,QAAQ,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;CAC1B;AAgCD,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,QAAQ,CAA4B,CAAA;AAGzE,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAIlD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1F;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA+BlE;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAOD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CA6KjF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAA;AAC7D,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,aAAa,CAAA;AAEpD,MAAM,WAAW,gBAAgB;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,qDAAsD,CAAA;AAClF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AAEvD;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,QAAQ,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,eAAO,MAAM,cAAc,EAAG,CAAU,CAAA;AAExC,MAAM,WAAW,MAAO,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,aAAa,CAAA;IAC9B,EAAE,CAAC,EAAE,gBAAgB,CAAA;IACrB,SAAS,CAAC,EAAE,eAAe,CAAA;IAG3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,EAAE,QAAQ,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;CAC1B;AAgCD,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,QAAQ,CAA4B,CAAA;AAGzE,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAIlD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1F;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA+BlE;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAU5D;AAOD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CA6KjF"}
@@ -82,6 +82,17 @@ export async function readConfigStrict() {
82
82
  export async function writeConfig(config) {
83
83
  await writeConfigCore(getConfigPath(), config, { deleteWhenEmpty: true });
84
84
  }
85
+ /**
86
+ * Strip the v1 top-level auth fields. Called on every v2 config write so a
87
+ * stale `api_token` / `auth_mode` / `auth_flags` from a pre-migration config
88
+ * can't outlive a successful multi-user write. Single source of truth for
89
+ * the list — the keyring/migration paths and the v2-shape normalizer all
90
+ * delegate here.
91
+ */
92
+ export function stripLegacyAuthFields(config) {
93
+ const { api_token: _t, auth_mode: _m, auth_scope: _s, auth_flags: _f, pendingSecureStoreClear: _p, ...rest } = config;
94
+ return rest;
95
+ }
85
96
  // Keep this validator ad-hoc for now: it is only used by `td doctor`, and the
86
97
  // config schema is still small enough that adding a runtime validation
87
98
  // dependency would be heavier than the problem. If more config or payload
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * One-time migration of v1 single-user auth state into the v2 multi-user
3
- * shape. Invoked from `src/postinstall.ts` so existing installs upgrade
4
- * transparently. Best-effort: any failure (offline, invalid token, keyring
5
- * unavailable) leaves the v1 state untouched so the runtime fallback in
6
- * `resolveActiveUser` can keep serving the legacy token until the next
7
- * upgrade attempt or `td auth login`.
3
+ * shape. Delegates to `@doist/cli-core/auth`'s generic `migrateLegacyAuth`,
4
+ * supplying only the todoist-specific bits: the durable migration marker
5
+ * (`config_version === CONFIG_VERSION`), how to read the v1 plaintext token,
6
+ * how to identify the user behind a v1 token, and how to clean up the
7
+ * top-level legacy fields after a successful migration.
8
+ *
9
+ * Invoked from `src/postinstall.ts`. Best-effort: any failure leaves v1 state
10
+ * untouched so `resolveActiveUser`'s legacy fallback keeps serving the token
11
+ * until the next attempt.
8
12
  */
9
13
  export interface MigrateAuthResult {
10
14
  status: 'already-migrated' | 'no-legacy-state' | 'migrated' | 'skipped';
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-auth.d.ts","sourceRoot":"","sources":["../../src/lib/migrate-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAA;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,cAAc;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAC3B;AASD,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyF7F"}
1
+ {"version":3,"file":"migrate-auth.d.ts","sourceRoot":"","sources":["../../src/lib/migrate-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAmBH,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAA;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,cAAc;IACpB,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CAC3B;AAID,wBAAsB,iBAAiB,CAAC,IAAI,GAAE,cAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyD7F"}