@doist/twist-cli 2.39.0 → 2.41.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 (78) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/commands/account/current.d.ts +4 -0
  3. package/dist/commands/account/current.d.ts.map +1 -0
  4. package/dist/commands/account/current.js +46 -0
  5. package/dist/commands/account/current.js.map +1 -0
  6. package/dist/commands/account/helpers.d.ts +8 -0
  7. package/dist/commands/account/helpers.d.ts.map +1 -0
  8. package/dist/commands/account/helpers.js +18 -0
  9. package/dist/commands/account/helpers.js.map +1 -0
  10. package/dist/commands/account/index.d.ts +3 -0
  11. package/dist/commands/account/index.d.ts.map +1 -0
  12. package/dist/commands/account/index.js +30 -0
  13. package/dist/commands/account/index.js.map +1 -0
  14. package/dist/commands/account/list.d.ts +4 -0
  15. package/dist/commands/account/list.d.ts.map +1 -0
  16. package/dist/commands/account/list.js +30 -0
  17. package/dist/commands/account/list.js.map +1 -0
  18. package/dist/commands/account/remove.d.ts +4 -0
  19. package/dist/commands/account/remove.d.ts.map +1 -0
  20. package/dist/commands/account/remove.js +18 -0
  21. package/dist/commands/account/remove.js.map +1 -0
  22. package/dist/commands/account/use.d.ts +4 -0
  23. package/dist/commands/account/use.d.ts.map +1 -0
  24. package/dist/commands/account/use.js +13 -0
  25. package/dist/commands/account/use.js.map +1 -0
  26. package/dist/commands/auth/helpers.d.ts +1 -1
  27. package/dist/commands/auth/helpers.d.ts.map +1 -1
  28. package/dist/commands/auth/helpers.js.map +1 -1
  29. package/dist/commands/auth/store-wrap.d.ts +1 -1
  30. package/dist/commands/auth/store-wrap.d.ts.map +1 -1
  31. package/dist/commands/auth/store-wrap.js +16 -1
  32. package/dist/commands/auth/store-wrap.js.map +1 -1
  33. package/dist/commands/auth/token.d.ts.map +1 -1
  34. package/dist/commands/auth/token.js +19 -10
  35. package/dist/commands/auth/token.js.map +1 -1
  36. package/dist/commands/config/view.d.ts.map +1 -1
  37. package/dist/commands/config/view.js +17 -1
  38. package/dist/commands/config/view.js.map +1 -1
  39. package/dist/index.js +3 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/lib/auth-constants.d.ts +9 -0
  42. package/dist/lib/auth-constants.d.ts.map +1 -0
  43. package/dist/lib/auth-constants.js +9 -0
  44. package/dist/lib/auth-constants.js.map +1 -0
  45. package/dist/lib/auth-provider.d.ts +41 -7
  46. package/dist/lib/auth-provider.d.ts.map +1 -1
  47. package/dist/lib/auth-provider.js +179 -106
  48. package/dist/lib/auth-provider.js.map +1 -1
  49. package/dist/lib/auth.d.ts +13 -12
  50. package/dist/lib/auth.d.ts.map +1 -1
  51. package/dist/lib/auth.js +46 -238
  52. package/dist/lib/auth.js.map +1 -1
  53. package/dist/lib/config.d.ts +21 -1
  54. package/dist/lib/config.d.ts.map +1 -1
  55. package/dist/lib/config.js +62 -3
  56. package/dist/lib/config.js.map +1 -1
  57. package/dist/lib/errors.d.ts +1 -1
  58. package/dist/lib/errors.d.ts.map +1 -1
  59. package/dist/lib/errors.js.map +1 -1
  60. package/dist/lib/migrate-auth.d.ts +14 -0
  61. package/dist/lib/migrate-auth.d.ts.map +1 -0
  62. package/dist/lib/migrate-auth.js +61 -0
  63. package/dist/lib/migrate-auth.js.map +1 -0
  64. package/dist/lib/skills/content.d.ts +1 -1
  65. package/dist/lib/skills/content.d.ts.map +1 -1
  66. package/dist/lib/skills/content.js +3 -0
  67. package/dist/lib/skills/content.js.map +1 -1
  68. package/dist/lib/twist-account.d.ts +22 -0
  69. package/dist/lib/twist-account.d.ts.map +1 -0
  70. package/dist/lib/twist-account.js +23 -0
  71. package/dist/lib/twist-account.js.map +1 -0
  72. package/dist/lib/user-records.d.ts +15 -0
  73. package/dist/lib/user-records.d.ts.map +1 -0
  74. package/dist/lib/user-records.js +84 -0
  75. package/dist/lib/user-records.js.map +1 -0
  76. package/dist/postinstall.js +4 -0
  77. package/dist/postinstall.js.map +1 -1
  78. package/package.json +1 -1
@@ -1,6 +1,5 @@
1
- import { type AuthAccount, type AuthProvider, type TokenStore } from '@doist/cli-core/auth';
2
- import { type TokenStorageResult } from './auth.js';
3
- import type { AuthMode } from './config.js';
1
+ import { type AccountRef, type AuthAccount, type AuthProvider, type KeyringTokenStore } from '@doist/cli-core/auth';
2
+ import { type AuthMode } from './config.js';
4
3
  export declare const AUTHORIZATION_URL = "https://twist.com/oauth/authorize";
5
4
  export declare const TOKEN_URL = "https://twist.com/oauth/access_token";
6
5
  export declare const REGISTRATION_URL = "https://twist.com/oauth/register";
@@ -19,10 +18,45 @@ export type TwistAccount = AuthAccount & {
19
18
  authMode: AuthMode;
20
19
  authScope: string;
21
20
  };
21
+ export type TwistTokenStore = KeyringTokenStore<TwistAccount>;
22
22
  export declare function createTwistAuthProvider(): AuthProvider<TwistAccount>;
23
- export type TwistTokenStore = TokenStore<TwistAccount> & {
24
- getLastStorageResult(): TokenStorageResult | undefined;
25
- getLastClearResult(): TokenStorageResult | undefined;
26
- };
23
+ /**
24
+ * Accepts `42`, `id:42`, and case-insensitive labels — `parseRef` normalises
25
+ * the numeric forms. Broader than cli-core's default strict-equality matcher.
26
+ */
27
+ export declare function matchTwistAccount(account: TwistAccount, ref: AccountRef): boolean;
28
+ /**
29
+ * True when the v2 store is empty but a legacy v1 token snapshot is still
30
+ * the only thing keeping the CLI authenticated — typically because
31
+ * `migrateLegacyAuth` couldn't reach the Twist API to identify the account
32
+ * (`MigrateSkipReason: 'identify-failed'`). Account-management commands
33
+ * use this to fail with a dedicated `AUTH_MIGRATION_PENDING` envelope
34
+ * instead of a misleading `ACCOUNT_NOT_FOUND`.
35
+ */
36
+ export declare function isLegacyAuthActive(): Promise<boolean>;
37
+ /**
38
+ * Resolve a `ref` against the v2 store, returning the canonical account.
39
+ * Throws `ACCOUNT_NOT_FOUND` on a miss. Shared between the `tw account ...`
40
+ * commands and `withUserRefAware` so the same hint reaches every caller.
41
+ */
42
+ export declare function findAccountInStore(store: TwistTokenStore, ref: AccountRef): Promise<TwistAccount>;
43
+ /**
44
+ * `TWIST_API_TOKEN` short-circuits `active()` only when no explicit ref is
45
+ * supplied — cli-core's `KeyringTokenStore` doesn't know about the env var,
46
+ * and an explicit ref means the caller targets a specific stored account.
47
+ *
48
+ * `ensureMigrated()` runs on every stored-state op so `--ignore-scripts`
49
+ * installs still migrate on first command. When migration isn't conclusive:
50
+ * - `active()` falls back to the legacy snapshot, honouring `ref` so it
51
+ * can't resolve to a different account than the caller asked for.
52
+ * - `set()` / `clear()` discharge legacy state on disk first so v2 writes
53
+ * aren't shadowed by a stale v1 token on the next read.
54
+ */
27
55
  export declare function createTwistTokenStore(): TwistTokenStore;
56
+ /**
57
+ * Where the currently-active token lives. Returns `'config-file'` whenever
58
+ * a plaintext token is on disk — including the legacy `config.token` slot —
59
+ * so doctor/config-view reports the security-relevant state accurately.
60
+ */
61
+ export declare function getActiveTokenSource(): Promise<'env' | 'secure-store' | 'config-file'>;
28
62
  //# sourceMappingURL=auth-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,WAAW,EAChB,KAAK,YAAY,EAIjB,KAAK,UAAU,EAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAKH,KAAK,kBAAkB,EAC1B,MAAM,WAAW,CAAA;AAClB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAI3C,eAAO,MAAM,iBAAiB,sCAAsC,CAAA;AACpE,eAAO,MAAM,SAAS,yCAAyC,CAAA;AAC/D,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAKlE,eAAO,MAAM,iBAAiB,UAkB7B,CAAA;AAED,eAAO,MAAM,gBAAgB,UAW5B,CAAA;AAID;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAsED,wBAAgB,uBAAuB,IAAI,YAAY,CAAC,YAAY,CAAC,CA2HpE;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG;IACrD,oBAAoB,IAAI,kBAAkB,GAAG,SAAS,CAAA;IACtD,kBAAkB,IAAI,kBAAkB,GAAG,SAAS,CAAA;CACvD,CAAA;AAED,wBAAgB,qBAAqB,IAAI,eAAe,CAuHvD"}
1
+ {"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EAKjB,KAAK,iBAAiB,EAEzB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,KAAK,QAAQ,EAA0C,MAAM,aAAa,CAAA;AAOnF,eAAO,MAAM,iBAAiB,sCAAsC,CAAA;AACpE,eAAO,MAAM,SAAS,yCAAyC,CAAA;AAC/D,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAKlE,eAAO,MAAM,iBAAiB,UAkB7B,CAAA;AAED,eAAO,MAAM,gBAAgB,UAW5B,CAAA;AAID;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;AAsE7D,wBAAgB,uBAAuB,IAAI,YAAY,CAAC,YAAY,CAAC,CAsHpE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAKjF;AA8ED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAK3D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,eAAe,EACtB,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC,YAAY,CAAC,CASvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAkDvD;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,KAAK,GAAG,cAAc,GAAG,aAAa,CAAC,CAQ5F"}
@@ -1,8 +1,12 @@
1
- import { deriveChallenge, generateVerifier, SecureStoreUnavailableError, } from '@doist/cli-core/auth';
1
+ import { createKeyringTokenStore, createSecureStore, deriveChallenge, generateVerifier, } from '@doist/cli-core/auth';
2
2
  import { createWrappedTwistClient } from './api.js';
3
- import { clearApiToken, NoTokenError, probeApiToken, saveApiToken, } from './auth.js';
3
+ import { LEGACY_KEYRING_ACCOUNT, SECURE_STORE_SERVICE } from './auth-constants.js';
4
+ import { getConfig, getConfigPath, updateConfig } from './config.js';
4
5
  import { CliError } from './errors.js';
6
+ import { runMigrateLegacyAuth } from './migrate-auth.js';
5
7
  import { parseRef } from './refs.js';
8
+ import { makeTwistAccount, toTwistAccount } from './twist-account.js';
9
+ import { createTwistUserRecordStore, getDefaultUserRecord } from './user-records.js';
6
10
  export const AUTHORIZATION_URL = 'https://twist.com/oauth/authorize';
7
11
  export const TOKEN_URL = 'https://twist.com/oauth/access_token';
8
12
  export const REGISTRATION_URL = 'https://twist.com/oauth/register';
@@ -170,129 +174,198 @@ export function createTwistAuthProvider() {
170
174
  const hs = asHandshake(handshake);
171
175
  const client = createWrappedTwistClient(token);
172
176
  const user = await client.users.getSessionUser();
173
- return {
174
- id: String(user.id),
175
- label: user.name,
176
- authMode: hs.authMode ?? 'unknown',
177
- authScope: hs.authScope ?? '',
178
- };
177
+ return toTwistAccount(user, { authMode: hs.authMode, authScope: hs.authScope });
179
178
  },
180
179
  };
181
180
  }
182
- export function createTwistTokenStore() {
183
- let lastStorageResult;
184
- let lastClearResult;
185
- /**
186
- * Read the stored credential. By default `NoTokenError` collapses to
187
- * `null` (i.e. "nothing stored" is not an exception), while
188
- * `SecureStoreUnavailableError` propagates so callers see a keyring
189
- * outage as distinct from "no account". The legacy `active()` no-ref
190
- * path opts in to also tolerate the outage so headless / keyring-less
191
- * hosts keep falling through to the standard `NoTokenError` envelope
192
- * (matching the historical `getApiToken` → `showStatus()` behaviour).
193
- */
194
- async function loadStoredSnapshot(options = {}) {
195
- try {
196
- const { token, metadata } = await probeApiToken();
197
- return {
198
- token,
199
- account: {
200
- id: metadata.authUserId !== undefined ? String(metadata.authUserId) : '',
201
- label: metadata.authUserName ?? '',
202
- authMode: metadata.authMode,
203
- authScope: metadata.authScope ?? '',
204
- },
205
- };
206
- }
207
- catch (error) {
208
- if (error instanceof NoTokenError)
209
- return null;
210
- if (error instanceof SecureStoreUnavailableError) {
211
- if (options.tolerateOutage)
212
- return null;
213
- throw error;
214
- }
215
- throw error;
216
- }
181
+ /**
182
+ * Accepts `42`, `id:42`, and case-insensitive labels — `parseRef` normalises
183
+ * the numeric forms. Broader than cli-core's default strict-equality matcher.
184
+ */
185
+ export function matchTwistAccount(account, ref) {
186
+ const parsed = parseRef(ref);
187
+ if (parsed.type === 'id')
188
+ return Number(account.id) === parsed.id;
189
+ if (parsed.type === 'name')
190
+ return account.label.toLowerCase() === parsed.name.toLowerCase();
191
+ return false;
192
+ }
193
+ const TOKEN_ENV_VAR = 'TWIST_API_TOKEN';
194
+ /** True when the v2 store is the authoritative source. */
195
+ function migrationIsConclusive(result) {
196
+ return (result.status === 'migrated' ||
197
+ result.status === 'already-migrated' ||
198
+ result.status === 'no-legacy-state');
199
+ }
200
+ /**
201
+ * Synthesise a snapshot from v1 state still on disk (legacy keyring slot,
202
+ * then plaintext `config.token`). Fallback for when migration can't complete.
203
+ * Token-only users with no `authUserId` get `account.id = ''`.
204
+ */
205
+ async function readLegacyTokenSnapshot() {
206
+ const fromKeyring = await createSecureStore({
207
+ serviceName: SECURE_STORE_SERVICE,
208
+ account: LEGACY_KEYRING_ACCOUNT,
209
+ })
210
+ .getSecret()
211
+ .catch(() => null);
212
+ const config = await getConfig();
213
+ const token = fromKeyring || config.token?.trim() || null;
214
+ if (!token)
215
+ return null;
216
+ return {
217
+ token,
218
+ account: makeTwistAccount({
219
+ id: config.authUserId !== undefined ? String(config.authUserId) : '',
220
+ label: config.authUserName ?? '',
221
+ authMode: config.authMode,
222
+ authScope: config.authScope,
223
+ }),
224
+ };
225
+ }
226
+ /**
227
+ * Clear the legacy keyring slot + v1 flat config fields. Runs before a
228
+ * write/clear when migration is inconclusive so v2 writes aren't shadowed
229
+ * by a stale legacy token. Best-effort — failures leave legacy in place.
230
+ */
231
+ async function dischargeLegacyState() {
232
+ await Promise.allSettled([
233
+ createSecureStore({
234
+ serviceName: SECURE_STORE_SERVICE,
235
+ account: LEGACY_KEYRING_ACCOUNT,
236
+ }).deleteSecret(),
237
+ updateConfig({
238
+ token: undefined,
239
+ authMode: undefined,
240
+ authScope: undefined,
241
+ authUserId: undefined,
242
+ authUserName: undefined,
243
+ pendingSecureStoreClear: undefined,
244
+ }),
245
+ ]);
246
+ }
247
+ /**
248
+ * Memoised one-shot migration trigger. Resolves with `null` on rejection
249
+ * so the CLI never fails to start because of a migration error — the
250
+ * legacy snapshot fallback below handles that case. Tests reset the memo
251
+ * with `vi.resetModules()` + a dynamic re-import.
252
+ */
253
+ let migrationPromise;
254
+ function ensureMigrated() {
255
+ if (!migrationPromise) {
256
+ migrationPromise = runMigrateLegacyAuth({ silent: true }).catch(() => null);
217
257
  }
218
- /**
219
- * Match the stored account against the user-supplied `--user <ref>`,
220
- * normalising through `parseRef` so `id:42`, `42`, and a case-insensitive
221
- * label all resolve consistently with the rest of the CLI. URL refs
222
- * never apply to accounts fall through to "no match" instead of
223
- * silently accepting one.
224
- */
225
- function matchesRef(account, ref) {
226
- const parsed = parseRef(ref);
227
- if (parsed.type === 'id')
228
- return Number(account.id) === parsed.id;
229
- if (parsed.type === 'name') {
230
- return account.label.toLowerCase() === parsed.name.toLowerCase();
231
- }
258
+ return migrationPromise;
259
+ }
260
+ /**
261
+ * True when the v2 store is empty but a legacy v1 token snapshot is still
262
+ * the only thing keeping the CLI authenticated typically because
263
+ * `migrateLegacyAuth` couldn't reach the Twist API to identify the account
264
+ * (`MigrateSkipReason: 'identify-failed'`). Account-management commands
265
+ * use this to fail with a dedicated `AUTH_MIGRATION_PENDING` envelope
266
+ * instead of a misleading `ACCOUNT_NOT_FOUND`.
267
+ */
268
+ export async function isLegacyAuthActive() {
269
+ const result = await ensureMigrated();
270
+ if (result !== null && migrationIsConclusive(result))
232
271
  return false;
272
+ const legacy = await readLegacyTokenSnapshot();
273
+ return legacy !== null;
274
+ }
275
+ /**
276
+ * Resolve a `ref` against the v2 store, returning the canonical account.
277
+ * Throws `ACCOUNT_NOT_FOUND` on a miss. Shared between the `tw account ...`
278
+ * commands and `withUserRefAware` so the same hint reaches every caller.
279
+ */
280
+ export async function findAccountInStore(store, ref) {
281
+ const records = await store.list();
282
+ const match = records.find(({ account }) => matchTwistAccount(account, ref));
283
+ if (!match) {
284
+ throw new CliError('ACCOUNT_NOT_FOUND', `No stored account matches "${ref}".`, [
285
+ 'Run: tw account list',
286
+ ]);
233
287
  }
234
- /**
235
- * Single source of truth for ref-aware lookups. Returns the snapshot
236
- * when `ref` matches the stored account, throws `ACCOUNT_NOT_FOUND`
237
- * otherwise (including when nothing is stored). Storage outages
238
- * propagate so the caller sees the underlying failure rather than
239
- * a misleading "account not found".
240
- */
241
- async function resolveByRef(ref) {
242
- const snapshot = await loadStoredSnapshot();
243
- if (!snapshot || !matchesRef(snapshot.account, ref)) {
244
- throw new CliError('ACCOUNT_NOT_FOUND', `No stored account matches "${ref}".`);
288
+ return match.account;
289
+ }
290
+ /**
291
+ * `TWIST_API_TOKEN` short-circuits `active()` only when no explicit ref is
292
+ * supplied cli-core's `KeyringTokenStore` doesn't know about the env var,
293
+ * and an explicit ref means the caller targets a specific stored account.
294
+ *
295
+ * `ensureMigrated()` runs on every stored-state op so `--ignore-scripts`
296
+ * installs still migrate on first command. When migration isn't conclusive:
297
+ * - `active()` falls back to the legacy snapshot, honouring `ref` so it
298
+ * can't resolve to a different account than the caller asked for.
299
+ * - `set()` / `clear()` discharge legacy state on disk first so v2 writes
300
+ * aren't shadowed by a stale v1 token on the next read.
301
+ */
302
+ export function createTwistTokenStore() {
303
+ const inner = createKeyringTokenStore({
304
+ serviceName: SECURE_STORE_SERVICE,
305
+ userRecords: createTwistUserRecordStore(),
306
+ recordsLocation: getConfigPath(),
307
+ matchAccount: matchTwistAccount,
308
+ });
309
+ async function maybeDischargeLegacy() {
310
+ const result = await ensureMigrated();
311
+ if (result === null || !migrationIsConclusive(result)) {
312
+ await dischargeLegacyState();
245
313
  }
246
- return snapshot;
247
314
  }
248
- return {
315
+ return Object.assign(Object.create(inner), {
249
316
  async active(ref) {
250
- // No-ref legacy path — tolerate missing keyring / no token and
251
- // return null so downstream callers (status's `fetchLive`,
252
- // login's pre-flight, etc.) keep falling through to their own
253
- // `NoTokenError` envelope rather than seeing a raw keyring
254
- // error. Returning a snapshot whenever a token resolves — even
255
- // when the persisted identity is empty (env var, manual
256
- // `tw auth token`, pre-upgrade config) — also avoids a second
257
- // credential read downstream.
258
317
  if (ref === undefined) {
259
- return loadStoredSnapshot({ tolerateOutage: true });
318
+ const envToken = process.env[TOKEN_ENV_VAR];
319
+ if (envToken) {
320
+ return {
321
+ token: envToken,
322
+ account: { id: '', label: '', authMode: 'unknown', authScope: '' },
323
+ };
324
+ }
260
325
  }
261
- return resolveByRef(ref);
326
+ const result = await ensureMigrated();
327
+ if (result === null || !migrationIsConclusive(result)) {
328
+ const legacy = await readLegacyTokenSnapshot();
329
+ if (legacy && (ref === undefined || matchTwistAccount(legacy.account, ref))) {
330
+ return legacy;
331
+ }
332
+ }
333
+ return inner.active(ref);
262
334
  },
263
335
  async set(account, token) {
264
- const userId = Number(account.id);
265
- lastStorageResult = await saveApiToken(token, {
266
- authMode: account.authMode,
267
- authScope: account.authScope,
268
- authUserId: Number.isFinite(userId) ? userId : undefined,
269
- authUserName: account.label,
270
- });
336
+ await maybeDischargeLegacy();
337
+ return inner.set(account, token);
271
338
  },
272
339
  async clear(ref) {
273
- // With `ref`, validate before touching storage so a mismatch is
274
- // an `ACCOUNT_NOT_FOUND` error rather than a silent
275
- // ✓ Logged out — the upstream `attachLogoutCommand` treats any
276
- // non-throwing `clear()` as success.
277
- if (ref !== undefined) {
278
- await resolveByRef(ref);
279
- }
280
- lastClearResult = await clearApiToken();
340
+ await maybeDischargeLegacy();
341
+ return inner.clear(ref);
281
342
  },
282
343
  async list() {
283
- const snapshot = await loadStoredSnapshot();
284
- return snapshot ? [{ account: snapshot.account, isDefault: true }] : [];
344
+ await ensureMigrated();
345
+ return inner.list();
285
346
  },
286
347
  async setDefault(ref) {
287
- await resolveByRef(ref);
288
- // Single-user store — already the default once `ref` matches.
289
- },
290
- getLastStorageResult() {
291
- return lastStorageResult;
348
+ await ensureMigrated();
349
+ return inner.setDefault(ref);
292
350
  },
293
- getLastClearResult() {
294
- return lastClearResult;
295
- },
296
- };
351
+ });
352
+ }
353
+ /**
354
+ * Where the currently-active token lives. Returns `'config-file'` whenever
355
+ * a plaintext token is on disk — including the legacy `config.token` slot —
356
+ * so doctor/config-view reports the security-relevant state accurately.
357
+ */
358
+ export async function getActiveTokenSource() {
359
+ if (process.env[TOKEN_ENV_VAR])
360
+ return 'env';
361
+ const config = await getConfig();
362
+ const record = getDefaultUserRecord(config);
363
+ if (record?.fallbackToken)
364
+ return 'config-file';
365
+ if (record)
366
+ return 'secure-store';
367
+ if (config.token?.trim())
368
+ return 'config-file';
369
+ return 'secure-store';
297
370
  }
298
371
  //# sourceMappingURL=auth-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-provider.js","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-provider.js","sourceRoot":"","sources":["../../src/lib/auth-provider.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,14 @@
1
+ import { SecureStoreUnavailableError } from '@doist/cli-core/auth';
1
2
  import { type AuthMode } from './config.js';
2
3
  import { CliError } from './errors.js';
3
- export declare const SECURE_STORE_DESCRIPTION = "system credential manager";
4
- export declare class NoTokenError extends CliError {
5
- constructor();
6
- }
4
+ export { SecureStoreUnavailableError };
7
5
  export declare const TOKEN_ENV_VAR = "TWIST_API_TOKEN";
6
+ export declare const SECURE_STORE_DESCRIPTION = "system credential manager";
8
7
  export type TokenStorageLocation = 'secure-store' | 'config-file';
9
8
  export type TokenStorageResult = {
10
9
  storage: TokenStorageLocation;
11
10
  warning?: string;
12
11
  };
13
- export type SaveApiTokenOptions = {
14
- authMode?: AuthMode;
15
- authScope?: string;
16
- authUserId?: number;
17
- authUserName?: string;
18
- };
19
12
  export type AuthMetadata = {
20
13
  authMode: AuthMode;
21
14
  authScope?: string;
@@ -34,9 +27,17 @@ export type AuthProbeResult = {
34
27
  token: string;
35
28
  metadata: AuthProbeMetadata;
36
29
  };
30
+ export declare class NoTokenError extends CliError {
31
+ constructor();
32
+ }
33
+ /** Read the active token. The store wraps env-var precedence internally. */
37
34
  export declare function getApiToken(): Promise<string>;
35
+ /** Token + metadata in one round-trip for `tw config view` / `tw doctor`. */
38
36
  export declare function probeApiToken(): Promise<AuthProbeResult>;
37
+ /**
38
+ * Auth metadata for `tw auth status` and `ensureWriteAllowed`. Falls back
39
+ * to v1 flat fields when no v2 record exists so a legacy `read-only` token
40
+ * isn't reported as `'unknown'` — that would skip the local READ_ONLY guard.
41
+ */
39
42
  export declare function getAuthMetadata(): Promise<AuthMetadata>;
40
- export declare function saveApiToken(token: string, options?: SaveApiTokenOptions): Promise<TokenStorageResult>;
41
- export declare function clearApiToken(): Promise<TokenStorageResult>;
42
43
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAoD,MAAM,aAAa,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAKtC,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAMnE,qBAAa,YAAa,SAAQ,QAAQ;;CAUzC;AAED,eAAO,MAAM,aAAa,oBAAoB,CAAA;AAC9C,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAA;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,KAAK,GAAG,aAAa,GAAG,cAAc,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,iBAAiB,CAAA;CAC9B,CAAA;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA6DnD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,CAmD9D;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAc7D;AAED,wBAAsB,YAAY,CAC9B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CA6C7B;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA2BjE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAGlE,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,aAAa,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,EAAE,2BAA2B,EAAE,CAAA;AAEtC,eAAO,MAAM,aAAa,oBAAoB,CAAA;AAE9C,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AAEnE,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,aAAa,CAAA;AAEjE,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACvB,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,KAAK,GAAG,aAAa,GAAG,cAAc,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,iBAAiB,CAAA;CAC9B,CAAA;AAED,qBAAa,YAAa,SAAQ,QAAQ;;CAUzC;AAED,4EAA4E;AAC5E,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAInD;AAED,6EAA6E;AAC7E,wBAAsB,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC,CAW9D;AAED;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAe7D"}