@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.
- package/CHANGELOG.md +12 -0
- package/dist/commands/account/current.d.ts +4 -0
- package/dist/commands/account/current.d.ts.map +1 -0
- package/dist/commands/account/current.js +46 -0
- package/dist/commands/account/current.js.map +1 -0
- package/dist/commands/account/helpers.d.ts +8 -0
- package/dist/commands/account/helpers.d.ts.map +1 -0
- package/dist/commands/account/helpers.js +18 -0
- package/dist/commands/account/helpers.js.map +1 -0
- package/dist/commands/account/index.d.ts +3 -0
- package/dist/commands/account/index.d.ts.map +1 -0
- package/dist/commands/account/index.js +30 -0
- package/dist/commands/account/index.js.map +1 -0
- package/dist/commands/account/list.d.ts +4 -0
- package/dist/commands/account/list.d.ts.map +1 -0
- package/dist/commands/account/list.js +30 -0
- package/dist/commands/account/list.js.map +1 -0
- package/dist/commands/account/remove.d.ts +4 -0
- package/dist/commands/account/remove.d.ts.map +1 -0
- package/dist/commands/account/remove.js +18 -0
- package/dist/commands/account/remove.js.map +1 -0
- package/dist/commands/account/use.d.ts +4 -0
- package/dist/commands/account/use.d.ts.map +1 -0
- package/dist/commands/account/use.js +13 -0
- package/dist/commands/account/use.js.map +1 -0
- package/dist/commands/auth/helpers.d.ts +1 -1
- package/dist/commands/auth/helpers.d.ts.map +1 -1
- package/dist/commands/auth/helpers.js.map +1 -1
- package/dist/commands/auth/store-wrap.d.ts +1 -1
- package/dist/commands/auth/store-wrap.d.ts.map +1 -1
- package/dist/commands/auth/store-wrap.js +16 -1
- package/dist/commands/auth/store-wrap.js.map +1 -1
- package/dist/commands/auth/token.d.ts.map +1 -1
- package/dist/commands/auth/token.js +19 -10
- package/dist/commands/auth/token.js.map +1 -1
- package/dist/commands/config/view.d.ts.map +1 -1
- package/dist/commands/config/view.js +17 -1
- package/dist/commands/config/view.js.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-constants.d.ts +9 -0
- package/dist/lib/auth-constants.d.ts.map +1 -0
- package/dist/lib/auth-constants.js +9 -0
- package/dist/lib/auth-constants.js.map +1 -0
- package/dist/lib/auth-provider.d.ts +41 -7
- package/dist/lib/auth-provider.d.ts.map +1 -1
- package/dist/lib/auth-provider.js +179 -106
- package/dist/lib/auth-provider.js.map +1 -1
- package/dist/lib/auth.d.ts +13 -12
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +46 -238
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/config.d.ts +21 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +62 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/errors.d.ts +1 -1
- package/dist/lib/errors.d.ts.map +1 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/migrate-auth.d.ts +14 -0
- package/dist/lib/migrate-auth.d.ts.map +1 -0
- package/dist/lib/migrate-auth.js +61 -0
- package/dist/lib/migrate-auth.js.map +1 -0
- package/dist/lib/skills/content.d.ts +1 -1
- package/dist/lib/skills/content.d.ts.map +1 -1
- package/dist/lib/skills/content.js +3 -0
- package/dist/lib/skills/content.js.map +1 -1
- package/dist/lib/twist-account.d.ts +22 -0
- package/dist/lib/twist-account.d.ts.map +1 -0
- package/dist/lib/twist-account.js +23 -0
- package/dist/lib/twist-account.js.map +1 -0
- package/dist/lib/user-records.d.ts +15 -0
- package/dist/lib/user-records.d.ts.map +1 -0
- package/dist/lib/user-records.js +84 -0
- package/dist/lib/user-records.js.map +1 -0
- package/dist/postinstall.js +4 -0
- package/dist/postinstall.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [2.41.0](https://github.com/Doist/twist-cli/compare/v2.40.0...v2.41.0) (2026-05-17)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **auth:** tw account commands + multi-account config view ([#233](https://github.com/Doist/twist-cli/issues/233)) ([5a3741f](https://github.com/Doist/twist-cli/commit/5a3741f63ae0c69a09e32727a162d4a24b710662))
|
|
6
|
+
|
|
7
|
+
## [2.40.0](https://github.com/Doist/twist-cli/compare/v2.39.0...v2.40.0) (2026-05-17)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- **auth:** schema v2 + multi-account migration foundation ([#232](https://github.com/Doist/twist-cli/issues/232)) ([8ca3382](https://github.com/Doist/twist-cli/commit/8ca3382378506ddb27cdcb521103d06bd567a3fb))
|
|
12
|
+
|
|
1
13
|
## [2.39.0](https://github.com/Doist/twist-cli/compare/v2.38.0...v2.39.0) (2026-05-16)
|
|
2
14
|
|
|
3
15
|
### Features
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../src/commands/account/current.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAGrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,wBAAsB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6ChG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { emitView } from '@doist/cli-core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { isLegacyAuthActive } from '../../lib/auth-provider.js';
|
|
4
|
+
import { TOKEN_ENV_VAR } from '../../lib/auth.js';
|
|
5
|
+
import { CliError } from '../../lib/errors.js';
|
|
6
|
+
export async function currentAccount(options, store) {
|
|
7
|
+
if (process.env[TOKEN_ENV_VAR]) {
|
|
8
|
+
emitView(options, { source: 'env' }, () => [
|
|
9
|
+
`Active token sourced from environment variable ${TOKEN_ENV_VAR} (no stored account).`,
|
|
10
|
+
]);
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const snapshot = await store.active();
|
|
14
|
+
if (!snapshot) {
|
|
15
|
+
throw new CliError('NO_TOKEN', 'No stored account is currently active.', [
|
|
16
|
+
'Run: tw auth login',
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
const { account } = snapshot;
|
|
20
|
+
// Snapshot can still be the v1 legacy fallback when migration is
|
|
21
|
+
// inconclusive — even when id/label are populated from the old flat
|
|
22
|
+
// `authUserId` / `authUserName` fields. Treat that as legacy too.
|
|
23
|
+
if (!account.id || !account.label || (await isLegacyAuthActive())) {
|
|
24
|
+
emitView(options, { source: 'legacy' }, () => [
|
|
25
|
+
'Active token is a legacy single-user session (pre-multi-account).',
|
|
26
|
+
chalk.dim('Run `tw auth status` while online to migrate it into the v2 store.'),
|
|
27
|
+
]);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
emitView(options, {
|
|
31
|
+
id: account.id,
|
|
32
|
+
label: account.label,
|
|
33
|
+
authMode: account.authMode,
|
|
34
|
+
authScope: account.authScope || undefined,
|
|
35
|
+
source: 'config',
|
|
36
|
+
}, () => {
|
|
37
|
+
const lines = [
|
|
38
|
+
`Active account: ${chalk.dim(`id:${account.id}`)} ${account.label}`,
|
|
39
|
+
` Mode: ${account.authMode}`,
|
|
40
|
+
];
|
|
41
|
+
if (account.authScope)
|
|
42
|
+
lines.push(` Scope: ${account.authScope}`);
|
|
43
|
+
return lines;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../../../src/commands/account/current.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG9C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAoB,EAAE,KAAsB;IAC7E,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC;YACvC,kDAAkD,aAAa,uBAAuB;SACzF,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAA;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,wCAAwC,EAAE;YACrE,oBAAoB;SACvB,CAAC,CAAA;IACN,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;IAE5B,iEAAiE;IACjE,oEAAoE;IACpE,kEAAkE;IAClE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAChE,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC;YAC1C,mEAAmE;YACnE,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC;SAClF,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,QAAQ,CACJ,OAAO,EACP;QACI,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;QACzC,MAAM,EAAE,QAAQ;KACnB,EACD,GAAG,EAAE;QACD,MAAM,KAAK,GAAG;YACV,mBAAmB,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE;YACpE,YAAY,OAAO,CAAC,QAAQ,EAAE;SACjC,CAAA;QACD,IAAI,OAAO,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;QAClE,OAAO,KAAK,CAAA;IAChB,CAAC,CACJ,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account-management commands operate against the v2 user-records store.
|
|
3
|
+
* When `migrateLegacyAuth` couldn't complete (typically offline), the v2
|
|
4
|
+
* store is empty and `ACCOUNT_NOT_FOUND` would be misleading — fail with
|
|
5
|
+
* a dedicated envelope so callers get an actionable hint.
|
|
6
|
+
*/
|
|
7
|
+
export declare function assertV2Available(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/account/helpers.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYvD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { isLegacyAuthActive } from '../../lib/auth-provider.js';
|
|
2
|
+
import { CliError } from '../../lib/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Account-management commands operate against the v2 user-records store.
|
|
5
|
+
* When `migrateLegacyAuth` couldn't complete (typically offline), the v2
|
|
6
|
+
* store is empty and `ACCOUNT_NOT_FOUND` would be misleading — fail with
|
|
7
|
+
* a dedicated envelope so callers get an actionable hint.
|
|
8
|
+
*/
|
|
9
|
+
export async function assertV2Available() {
|
|
10
|
+
if (await isLegacyAuthActive()) {
|
|
11
|
+
throw new CliError('AUTH_MIGRATION_PENDING', 'Cannot manage accounts while the legacy single-user token is still active. ' +
|
|
12
|
+
'The CLI could not complete the v1 → v2 auth migration (usually because Twist was unreachable).', [
|
|
13
|
+
'Run `tw auth status` while online to finish the migration',
|
|
14
|
+
'Or run `tw auth logout` followed by `tw auth login` to start fresh',
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/account/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACnC,IAAI,MAAM,kBAAkB,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,QAAQ,CACd,wBAAwB,EACxB,6EAA6E;YACzE,gGAAgG,EACpG;YACI,2DAA2D;YAC3D,oEAAoE;SACvE,CACJ,CAAA;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAcnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkC7D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createTwistTokenStore } from '../../lib/auth-provider.js';
|
|
2
|
+
import { currentAccount } from './current.js';
|
|
3
|
+
import { listAccounts } from './list.js';
|
|
4
|
+
import { removeAccount } from './remove.js';
|
|
5
|
+
import { useAccount } from './use.js';
|
|
6
|
+
function withJsonFlags(cmd) {
|
|
7
|
+
return cmd
|
|
8
|
+
.option('--json', 'Output as JSON')
|
|
9
|
+
.option('--ndjson', 'Output as newline-delimited JSON');
|
|
10
|
+
}
|
|
11
|
+
export function registerAccountCommand(program) {
|
|
12
|
+
const account = program.command('account').description('Manage stored CLI accounts');
|
|
13
|
+
const store = createTwistTokenStore();
|
|
14
|
+
withJsonFlags(account.command('list', { isDefault: true }).description('List stored CLI accounts')).action((options) => listAccounts(options, store));
|
|
15
|
+
withJsonFlags(account
|
|
16
|
+
.command('current')
|
|
17
|
+
.description('Show the currently active account (honours TWIST_API_TOKEN)')).action((options) => currentAccount(options, store));
|
|
18
|
+
withJsonFlags(account
|
|
19
|
+
.command('use <ref>')
|
|
20
|
+
.description('Set the default stored account (id, id:<n>, or display name)')).action((ref, options) => useAccount(ref, options, store));
|
|
21
|
+
withJsonFlags(account
|
|
22
|
+
.command('remove <ref>')
|
|
23
|
+
.description('Remove a stored account (clears keyring + config entry)')).action((ref, options) => removeAccount(ref, options, store));
|
|
24
|
+
account.addHelpText('after', `
|
|
25
|
+
Examples:
|
|
26
|
+
tw account # list stored accounts (default subcommand)
|
|
27
|
+
tw account use "Alan Grant" # pin Alan as the default account (id, id:N, or name)
|
|
28
|
+
tw account remove id:42 # forget id:42 (clears keyring + config entry)`);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAErC,SAAS,aAAa,CAAC,GAAY;IAC/B,OAAO,GAAG;SACL,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAA;IACpF,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAA;IAErC,aAAa,CACT,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CACvF,CAAC,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAEhE,aAAa,CACT,OAAO;SACF,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,6DAA6D,CAAC,CAClF,CAAC,MAAM,CAAC,CAAC,OAAoB,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAElE,aAAa,CACT,OAAO;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,8DAA8D,CAAC,CACnF,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,OAAoB,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAEhF,aAAa,CACT,OAAO;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,yDAAyD,CAAC,CAC9E,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,OAAoB,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAEnF,OAAO,CAAC,WAAW,CACf,OAAO,EACP;;;;kFAI0E,CAC7E,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/account/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0B9F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { formatJson, formatNdjson } from '../../lib/output.js';
|
|
3
|
+
import { assertV2Available } from './helpers.js';
|
|
4
|
+
export async function listAccounts(options, store) {
|
|
5
|
+
await assertV2Available();
|
|
6
|
+
const records = await store.list();
|
|
7
|
+
const rows = records.map(({ account, isDefault }) => ({
|
|
8
|
+
id: account.id,
|
|
9
|
+
label: account.label,
|
|
10
|
+
isDefault,
|
|
11
|
+
}));
|
|
12
|
+
if (options.json)
|
|
13
|
+
return console.log(formatJson(rows));
|
|
14
|
+
if (options.ndjson)
|
|
15
|
+
return console.log(formatNdjson(rows));
|
|
16
|
+
if (rows.length === 0) {
|
|
17
|
+
console.log('No stored accounts. Run `tw auth login` to add one.');
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
console.log(`Stored accounts (${rows.length}):`);
|
|
21
|
+
for (const row of rows) {
|
|
22
|
+
const marker = row.isDefault ? chalk.green('*') : ' ';
|
|
23
|
+
console.log(` ${marker} ${chalk.dim(`id:${row.id}`)} ${row.label}`);
|
|
24
|
+
}
|
|
25
|
+
const defaultRow = rows.find((r) => r.isDefault);
|
|
26
|
+
if (defaultRow) {
|
|
27
|
+
console.log(`Default: ${chalk.dim(`id:${defaultRow.id}`)} ${defaultRow.label}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/account/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAoB,EAAE,KAAsB;IAC3E,MAAM,iBAAiB,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS;KACZ,CAAC,CAAC,CAAA;IAEH,IAAI,OAAO,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACtD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAA;QAClE,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAA;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACrD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAChD,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,MAAM,UAAU,CAAC,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;IACpF,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type TwistTokenStore } from '../../lib/auth-provider.js';
|
|
2
|
+
import type { ViewOptions } from '../../lib/options.js';
|
|
3
|
+
export declare function removeAccount(ref: string, options: ViewOptions, store: TwistTokenStore): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=remove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/account/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { emitView } from '@doist/cli-core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { findAccountInStore } from '../../lib/auth-provider.js';
|
|
4
|
+
import { logTokenStorageResult } from '../auth/helpers.js';
|
|
5
|
+
import { assertV2Available } from './helpers.js';
|
|
6
|
+
export async function removeAccount(ref, options, store) {
|
|
7
|
+
await assertV2Available();
|
|
8
|
+
const account = await findAccountInStore(store, ref);
|
|
9
|
+
await store.clear(account.id);
|
|
10
|
+
emitView(options, { id: account.id, label: account.label, removed: true }, () => [
|
|
11
|
+
`✓ Removed account ${chalk.dim(`id:${account.id}`)} ${account.label}`,
|
|
12
|
+
]);
|
|
13
|
+
const clearResult = store.getLastClearResult();
|
|
14
|
+
if (clearResult) {
|
|
15
|
+
logTokenStorageResult(clearResult, 'Stored token removed from the system credential manager', options.json || options.ndjson);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/account/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AAErF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,aAAa,CAC/B,GAAW,EACX,OAAoB,EACpB,KAAsB;IAEtB,MAAM,iBAAiB,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAE7B,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;QAC7E,qBAAqB,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE;KACzE,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAA;IAC9C,IAAI,WAAW,EAAE,CAAC;QACd,qBAAqB,CACjB,WAAW,EACX,yDAAyD,EACzD,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CACjC,CAAA;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../../../src/commands/account/use.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACrF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,wBAAsB,UAAU,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC,CAQf"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { emitView } from '@doist/cli-core';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { findAccountInStore } from '../../lib/auth-provider.js';
|
|
4
|
+
import { assertV2Available } from './helpers.js';
|
|
5
|
+
export async function useAccount(ref, options, store) {
|
|
6
|
+
await assertV2Available();
|
|
7
|
+
const account = await findAccountInStore(store, ref);
|
|
8
|
+
await store.setDefault(account.id);
|
|
9
|
+
emitView(options, { id: account.id, label: account.label, isDefault: true }, () => [
|
|
10
|
+
`✓ Default account set to ${chalk.dim(`id:${account.id}`)} ${account.label}`,
|
|
11
|
+
]);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=use.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use.js","sourceRoot":"","sources":["../../../src/commands/account/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AAErF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC5B,GAAW,EACX,OAAoB,EACpB,KAAsB;IAEtB,MAAM,iBAAiB,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IACpD,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAElC,QAAQ,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;QAC/E,4BAA4B,KAAK,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE;KAChF,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TokenStorageResult } from '
|
|
1
|
+
import type { TokenStorageResult } from '@doist/cli-core/auth';
|
|
2
2
|
/**
|
|
3
3
|
* Surface a `TokenStorageResult` from a save/clear operation: the
|
|
4
4
|
* human-readable confirmation goes to stdout, any keyring-fallback warning
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAG9D;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,kBAAkB,EAC1B,kBAAkB,EAAE,MAAM,EAC1B,eAAe,UAAQ,GACxB,IAAI,CAON"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/auth/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/auth/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAA0B,EAC1B,kBAA0B,EAC1B,eAAe,GAAG,KAAK;IAEvB,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3D,CAAC;AACL,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { AccountRef } from '@doist/cli-core/auth';
|
|
2
|
-
import type
|
|
2
|
+
import { type TwistTokenStore } from '../../lib/auth-provider.js';
|
|
3
3
|
export declare function withUserRefAware(store: TwistTokenStore, requestedRef: AccountRef | undefined): TwistTokenStore;
|
|
4
4
|
//# sourceMappingURL=store-wrap.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-wrap.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/store-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"store-wrap.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/store-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAYrF,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE,UAAU,GAAG,SAAS,GACrC,eAAe,CAYjB"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
+
import { findAccountInStore } from '../../lib/auth-provider.js';
|
|
1
2
|
// Bridge the global `tw --user <ref>` (stripped by `src/index.ts`) into
|
|
2
3
|
// cli-core's attachers, which only see per-command `--user`. Explicit ref
|
|
3
4
|
// passed by commander wins over the captured global ref.
|
|
5
|
+
//
|
|
6
|
+
// `active()` passes the substituted ref straight through — cli-core's
|
|
7
|
+
// `KeyringTokenStore.active` returns `null` on a miss, which the attachers
|
|
8
|
+
// surface via `onNotAuthenticated` (status / token view). `clear()` does the
|
|
9
|
+
// extra existence check first via `findAccountInStore`, because cli-core's
|
|
10
|
+
// `KeyringTokenStore.clear` is a silent no-op on a non-matching ref and
|
|
11
|
+
// would otherwise let `tw --user <wrong> auth logout` print `✓ Logged out`.
|
|
4
12
|
export function withUserRefAware(store, requestedRef) {
|
|
5
13
|
return Object.assign(Object.create(store), {
|
|
6
14
|
active: (ref) => store.active(ref ?? requestedRef),
|
|
7
|
-
clear: (ref) =>
|
|
15
|
+
clear: async (ref) => {
|
|
16
|
+
if (ref === undefined && requestedRef !== undefined) {
|
|
17
|
+
const account = await findAccountInStore(store, requestedRef);
|
|
18
|
+
await store.clear(account.id);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
await store.clear(ref);
|
|
22
|
+
},
|
|
8
23
|
});
|
|
9
24
|
}
|
|
10
25
|
//# sourceMappingURL=store-wrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-wrap.js","sourceRoot":"","sources":["../../../src/commands/auth/store-wrap.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"store-wrap.js","sourceRoot":"","sources":["../../../src/commands/auth/store-wrap.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAwB,MAAM,4BAA4B,CAAA;AAErF,wEAAwE;AACxE,0EAA0E;AAC1E,yDAAyD;AACzD,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,wEAAwE;AACxE,4EAA4E;AAC5E,MAAM,UAAU,gBAAgB,CAC5B,KAAsB,EACtB,YAAoC;IAEpC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAoB,EAAE;QAC1D,MAAM,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC;QAC/D,KAAK,EAAE,KAAK,EAAE,GAAgB,EAAE,EAAE;YAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;gBAC7D,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC7B,OAAM;YACV,CAAC;YACD,MAAM,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;KACJ,CAAC,CAAA;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/token.ts"],"names":[],"mappings":"AA6BA,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/commands/auth/token.ts"],"names":[],"mappings":"AA6BA,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createInterface } from 'node:readline';
|
|
2
2
|
import chalk from 'chalk';
|
|
3
|
-
import {
|
|
3
|
+
import { createTwistTokenStore } from '../../lib/auth-provider.js';
|
|
4
4
|
import { CliError } from '../../lib/errors.js';
|
|
5
5
|
import { isNonInteractive } from '../../lib/global-args.js';
|
|
6
6
|
import { logTokenStorageResult } from './helpers.js';
|
|
@@ -30,16 +30,25 @@ export async function loginWithToken(token) {
|
|
|
30
30
|
throw new CliError('NO_TOKEN', 'Cannot prompt for token in non-interactive mode. Set the TWIST_API_TOKEN environment variable instead.');
|
|
31
31
|
}
|
|
32
32
|
token = await promptHiddenInput('API token: ');
|
|
33
|
-
if (!token.trim()) {
|
|
34
|
-
throw new CliError('NO_TOKEN', 'No token provided', [
|
|
35
|
-
'Run: tw auth token (interactive prompt)',
|
|
36
|
-
'Or set TWIST_API_TOKEN environment variable',
|
|
37
|
-
'Or use OAuth: tw auth login',
|
|
38
|
-
]);
|
|
39
|
-
}
|
|
40
33
|
}
|
|
41
|
-
const
|
|
34
|
+
const trimmed = token.trim();
|
|
35
|
+
if (!trimmed) {
|
|
36
|
+
throw new CliError('NO_TOKEN', 'No token provided', [
|
|
37
|
+
'Run: tw auth token (interactive prompt)',
|
|
38
|
+
'Or set TWIST_API_TOKEN environment variable',
|
|
39
|
+
'Or use OAuth: tw auth login',
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
// Manual token entry has no identity (no API call to resolve the user).
|
|
43
|
+
// Persist the empty-id account; `UserRecordStore.upsert` writes
|
|
44
|
+
// `authUserId: undefined` for it and the synthesised record is what later
|
|
45
|
+
// `active()` / `list()` reads will return.
|
|
46
|
+
const store = createTwistTokenStore();
|
|
47
|
+
await store.set({ id: '', label: '', authMode: 'unknown', authScope: '' }, trimmed);
|
|
42
48
|
console.log(chalk.green('✓'), 'API token saved successfully!');
|
|
43
|
-
|
|
49
|
+
const result = store.getLastStorageResult();
|
|
50
|
+
if (result) {
|
|
51
|
+
logTokenStorageResult(result, 'Token stored securely in the system credential manager');
|
|
52
|
+
}
|
|
44
53
|
}
|
|
45
54
|
//# sourceMappingURL=token.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/commands/auth/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/commands/auth/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAEpD,SAAS,iBAAiB,CAAC,MAAc;IACrC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,EAAE,GAAG,eAAe,CAAC;YACvB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAA;QACF,kFAAkF;QAClF,MAAM,SAAS,GAAI,EAAU,CAAC,cAAc,CAE3C;QAAC,EAAU,CAAC,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE;YAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;YAC9B,CAAC;QACL,CAAC,CAAA;QACD,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,EAAE,CAAC,KAAK,EAAE,CAAA;YACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAC1B,OAAO,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;IACN,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,QAAQ,CACd,UAAU,EACV,wGAAwG,CAC3G,CAAA;QACL,CAAC;QACD,KAAK,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,mBAAmB,EAAE;YAChD,yCAAyC;YACzC,6CAA6C;YAC7C,6BAA6B;SAChC,CAAC,CAAA;IACN,CAAC;IACD,wEAAwE;IACxE,gEAAgE;IAChE,0EAA0E;IAC1E,2CAA2C;IAC3C,MAAM,KAAK,GAAG,qBAAqB,EAAE,CAAA;IACrC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,+BAA+B,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAA;IAC3C,IAAI,MAAM,EAAE,CAAC;QACT,qBAAqB,CAAC,MAAM,EAAE,wDAAwD,CAAC,CAAA;IAC3F,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAuHD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B1E"}
|
|
@@ -2,6 +2,7 @@ import { SecureStoreUnavailableError } from '@doist/cli-core/auth';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import { NoTokenError, probeApiToken, SECURE_STORE_DESCRIPTION, TOKEN_ENV_VAR, } from '../../lib/auth.js';
|
|
4
4
|
import { getConfigPath, readConfigStrict } from '../../lib/config.js';
|
|
5
|
+
import { getDefaultUserRecord } from '../../lib/user-records.js';
|
|
5
6
|
function maskToken(token) {
|
|
6
7
|
if (token.length < 5)
|
|
7
8
|
return '****';
|
|
@@ -58,6 +59,18 @@ function formatConfigView(config, token, showToken, configMissing) {
|
|
|
58
59
|
const headerSuffix = configMissing ? ` ${chalk.dim('(not created yet)')}` : '';
|
|
59
60
|
lines.push(`${chalk.dim('Config file:')} ${getConfigPath()}${headerSuffix}`);
|
|
60
61
|
lines.push('');
|
|
62
|
+
const users = config.users ?? [];
|
|
63
|
+
if (users.length > 0) {
|
|
64
|
+
// Mirror runtime first-user fallback so the marker reflects the
|
|
65
|
+
// account the CLI would actually use.
|
|
66
|
+
const defaultId = getDefaultUserRecord(config)?.account.id;
|
|
67
|
+
lines.push(chalk.bold(`Authenticated accounts (${users.length})`));
|
|
68
|
+
for (const user of users) {
|
|
69
|
+
const marker = user.id === defaultId ? chalk.green('*') : ' ';
|
|
70
|
+
lines.push(` ${marker} ${chalk.dim(`id:${user.id}`)} ${user.name}`);
|
|
71
|
+
}
|
|
72
|
+
lines.push('');
|
|
73
|
+
}
|
|
61
74
|
// When a token is present, its metadata is the ground truth for the active
|
|
62
75
|
// mode/scope — this matters most for env-sourced tokens, whose scope the CLI
|
|
63
76
|
// does not know and where config.auth* may be stale from an unrelated
|
|
@@ -72,7 +85,7 @@ function formatConfigView(config, token, showToken, configMissing) {
|
|
|
72
85
|
const scopeDisplay = effectiveMode === 'unknown' && effectiveScope === undefined
|
|
73
86
|
? 'unknown'
|
|
74
87
|
: formatValue(effectiveScope);
|
|
75
|
-
lines.push(chalk.bold('Authentication'));
|
|
88
|
+
lines.push(chalk.bold('Authentication (active)'));
|
|
76
89
|
lines.push(` Token: ${renderTokenLine(token, showToken)}`);
|
|
77
90
|
lines.push(` Mode: ${formatValue(effectiveMode)}`);
|
|
78
91
|
lines.push(` Scope: ${scopeDisplay}`);
|
|
@@ -95,6 +108,9 @@ export async function viewConfig(options) {
|
|
|
95
108
|
if (output.token && !options.showToken) {
|
|
96
109
|
output.token = maskToken(output.token);
|
|
97
110
|
}
|
|
111
|
+
if (output.users && !options.showToken) {
|
|
112
|
+
output.users = output.users.map((user) => user.token ? { ...user, token: maskToken(user.token) } : user);
|
|
113
|
+
}
|
|
98
114
|
console.log(JSON.stringify(output, null, 2));
|
|
99
115
|
return;
|
|
100
116
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAEH,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,aAAa,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAe,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,7 @@ const loadChangelogCommand = async () => (await import('./commands/changelog.js'
|
|
|
28
28
|
const loadGroupsCommand = async () => (await import('./commands/groups/index.js')).registerGroupsCommand;
|
|
29
29
|
const loadDoctorCommand = async () => (await import('./commands/doctor.js')).registerDoctorCommand;
|
|
30
30
|
const loadConfigCommand = async () => (await import('./commands/config/index.js')).registerConfigCommand;
|
|
31
|
+
const loadAccountCommand = async () => (await import('./commands/account/index.js')).registerAccountCommand;
|
|
31
32
|
const commands = {
|
|
32
33
|
workspaces: ['List all workspaces', loadWorkspaceCommand],
|
|
33
34
|
workspace: ['Manage workspace', loadWorkspaceCommand],
|
|
@@ -45,6 +46,7 @@ const commands = {
|
|
|
45
46
|
react: ['Add an emoji reaction (target-type: thread, comment, message)', loadReactCommand],
|
|
46
47
|
unreact: ['Remove an emoji reaction (target-type: thread, comment, message)', loadReactCommand],
|
|
47
48
|
auth: ['Manage authentication', loadAuthCommand],
|
|
49
|
+
account: ['Manage stored CLI accounts (list, current, use, remove)', loadAccountCommand],
|
|
48
50
|
skill: ['Manage agent skill integrations', loadSkillCommand],
|
|
49
51
|
view: ['View a Twist entity by URL', loadViewCommand],
|
|
50
52
|
completion: ['Manage shell completions', loadCompletionCommand],
|
|
@@ -147,6 +149,7 @@ else {
|
|
|
147
149
|
'completion',
|
|
148
150
|
'doctor',
|
|
149
151
|
'auth',
|
|
152
|
+
'account',
|
|
150
153
|
'config',
|
|
151
154
|
'skill',
|
|
152
155
|
]);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEtE,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE,CACpC,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB,CAAA;AACtE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAA;AAC5F,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE,CAClC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB,CAAA;AACxE,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAA;AAC/F,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CACjC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAA;AACtE,MAAM,uBAAuB,GAAG,KAAK,IAAI,EAAE,CACvC,CAAC,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC,2BAA2B,CAAA;AAClF,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,CAAA;AAC/F,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE,CAClC,CAAC,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,sBAAsB,CAAA;AACxE,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAClG,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE,CACnC,CAAC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,uBAAuB,CAAA;AACpE,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,CAAA;AAC/F,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB,CAAA;AAClG,MAAM,gBAAgB,GAAG,KAAK,IAAI,EAAE,CAChC,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,oBAAoB,CAAA;AACpE,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAA;AAC5F,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE,CACrC,CAAC,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC,yBAAyB,CAAA;AAC9E,MAAM,eAAe,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC,mBAAmB,CAAA;AAClG,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CACjC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAA;AACtE,MAAM,oBAAoB,GAAG,KAAK,IAAI,EAAE,CACpC,CAAC,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,wBAAwB,CAAA;AACtE,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CACjC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAA;AACtE,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAA;AAClG,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE,CACjC,CAAC,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** OS keyring `service` identifier for every twist-cli secret. */
|
|
2
|
+
export declare const SECURE_STORE_SERVICE = "twist-cli";
|
|
3
|
+
/**
|
|
4
|
+
* Legacy single-user keyring slot. `migrateLegacyAuth` deletes it after a
|
|
5
|
+
* successful migration; the runtime token store reads it as a last resort
|
|
6
|
+
* when migration can't complete (e.g. offline `identifyAccount`).
|
|
7
|
+
*/
|
|
8
|
+
export declare const LEGACY_KEYRING_ACCOUNT = "api-token";
|
|
9
|
+
//# sourceMappingURL=auth-constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-constants.d.ts","sourceRoot":"","sources":["../../src/lib/auth-constants.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,cAAc,CAAA;AAE/C;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,cAAc,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** OS keyring `service` identifier for every twist-cli secret. */
|
|
2
|
+
export const SECURE_STORE_SERVICE = 'twist-cli';
|
|
3
|
+
/**
|
|
4
|
+
* Legacy single-user keyring slot. `migrateLegacyAuth` deletes it after a
|
|
5
|
+
* successful migration; the runtime token store reads it as a last resort
|
|
6
|
+
* when migration can't complete (e.g. offline `identifyAccount`).
|
|
7
|
+
*/
|
|
8
|
+
export const LEGACY_KEYRING_ACCOUNT = 'api-token';
|
|
9
|
+
//# sourceMappingURL=auth-constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-constants.js","sourceRoot":"","sources":["../../src/lib/auth-constants.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAA;AAE/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAA"}
|