@doist/todoist-cli 1.58.0 → 1.60.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/comment/add.d.ts.map +1 -1
- package/dist/commands/comment/add.js +7 -4
- package/dist/commands/comment/add.js.map +1 -1
- package/dist/commands/config/view.d.ts.map +1 -1
- package/dist/commands/config/view.js +85 -13
- package/dist/commands/config/view.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +69 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/stats/helpers.d.ts +3 -1
- package/dist/commands/stats/helpers.d.ts.map +1 -1
- package/dist/commands/stats/helpers.js +2 -1
- package/dist/commands/stats/helpers.js.map +1 -1
- package/dist/commands/user/current.d.ts +5 -0
- package/dist/commands/user/current.d.ts.map +1 -0
- package/dist/commands/user/current.js +32 -0
- package/dist/commands/user/current.js.map +1 -0
- package/dist/commands/user/index.d.ts.map +1 -1
- package/dist/commands/user/index.js +16 -1
- package/dist/commands/user/index.js.map +1 -1
- package/dist/commands/user/remove.d.ts +2 -0
- package/dist/commands/user/remove.d.ts.map +1 -0
- package/dist/commands/user/remove.js +26 -0
- package/dist/commands/user/remove.js.map +1 -0
- package/dist/commands/view.d.ts.map +1 -1
- package/dist/commands/view.js +12 -7
- package/dist/commands/view.js.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/api/core.d.ts.map +1 -1
- package/dist/lib/api/core.js +4 -1
- package/dist/lib/api/core.js.map +1 -1
- package/dist/lib/api/stats.d.ts +1 -32
- package/dist/lib/api/stats.d.ts.map +1 -1
- package/dist/lib/api/stats.js +2 -54
- package/dist/lib/api/stats.js.map +1 -1
- package/dist/lib/migrate-auth.d.ts.map +1 -1
- package/dist/lib/migrate-auth.js +3 -2
- package/dist/lib/migrate-auth.js.map +1 -1
- package/dist/lib/oauth.d.ts.map +1 -1
- package/dist/lib/oauth.js +2 -1
- package/dist/lib/oauth.js.map +1 -1
- package/dist/lib/permissions.d.ts.map +1 -1
- package/dist/lib/permissions.js +2 -0
- package/dist/lib/permissions.js.map +1 -1
- 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 -1
- package/dist/lib/skills/content.js.map +1 -1
- package/dist/lib/usage-tracking.d.ts +9 -0
- package/dist/lib/usage-tracking.d.ts.map +1 -0
- package/dist/lib/usage-tracking.js +93 -0
- package/dist/lib/usage-tracking.js.map +1 -0
- package/package.json +2 -2
- package/dist/lib/api/uploads.d.ts +0 -10
- package/dist/lib/api/uploads.d.ts.map +0 -1
- package/dist/lib/api/uploads.js +0 -34
- package/dist/lib/api/uploads.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.60.0](https://github.com/Doist/todoist-cli/compare/v1.59.0...v1.60.0) (2026-04-30)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* track cli usage in request headers ([#302](https://github.com/Doist/todoist-cli/issues/302)) ([5c692f8](https://github.com/Doist/todoist-cli/commit/5c692f864c1bb680d171aa30a63db2cbf117f575))
|
|
6
|
+
|
|
7
|
+
## [1.59.0](https://github.com/Doist/todoist-cli/compare/v1.58.0...v1.59.0) (2026-04-28)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **user,config,doctor:** polish multi-user surface ([#301](https://github.com/Doist/todoist-cli/issues/301)) ([d36d4aa](https://github.com/Doist/todoist-cli/commit/d36d4aaf2c923a03a09a0dfb1d1c7d1e242e0458))
|
|
12
|
+
|
|
1
13
|
## [1.58.0](https://github.com/Doist/todoist-cli/compare/v1.57.0...v1.58.0) (2026-04-28)
|
|
2
14
|
|
|
3
15
|
### Features
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/comment/add.ts"],"names":[],"mappings":"AASA,UAAU,UAAU;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/comment/add.ts"],"names":[],"mappings":"AASA,UAAU,UAAU;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFhF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { basename } from 'node:path';
|
|
1
2
|
import chalk from 'chalk';
|
|
2
3
|
import { getApi } from '../../lib/api/core.js';
|
|
3
|
-
import { uploadFile } from '../../lib/api/uploads.js';
|
|
4
4
|
import { CliError } from '../../lib/errors.js';
|
|
5
5
|
import { isQuiet } from '../../lib/global-args.js';
|
|
6
6
|
import { formatJson, printDryRun } from '../../lib/output.js';
|
|
@@ -47,11 +47,14 @@ export async function addComment(ref, options) {
|
|
|
47
47
|
}
|
|
48
48
|
let attachment;
|
|
49
49
|
if (options.file) {
|
|
50
|
-
const uploadResult = await uploadFile(options.file);
|
|
50
|
+
const uploadResult = await api.uploadFile({ file: options.file });
|
|
51
|
+
if (!uploadResult.fileUrl) {
|
|
52
|
+
throw new CliError('UPLOAD_FAILED', 'Upload succeeded but no file URL was returned');
|
|
53
|
+
}
|
|
51
54
|
attachment = {
|
|
52
55
|
fileUrl: uploadResult.fileUrl,
|
|
53
|
-
fileName: uploadResult.fileName,
|
|
54
|
-
fileType: uploadResult.fileType,
|
|
56
|
+
fileName: uploadResult.fileName ?? basename(options.file),
|
|
57
|
+
fileType: uploadResult.fileType ?? undefined,
|
|
55
58
|
resourceType: uploadResult.resourceType,
|
|
56
59
|
};
|
|
57
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/comment/add.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/comment/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAW9C,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,OAAmB;IAC7D,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,uCAAuC,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,OAAe,CAAA;IACnB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,GAAG,MAAM,SAAS,EAAE,CAAA;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,+CAA+C,CAAC,CAAA;QAC1F,CAAC;IACL,CAAC;SAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC7B,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,QAAQ,CAAC,iBAAiB,EAAE,+CAA+C,CAAC,CAAA;IAC1F,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,WAAW,CAAC,aAAa,EAAE;YACvB,MAAM,EAAE,GAAG;YACX,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;YACnD,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;YACrE,IAAI,EAAE,OAAO,CAAC,IAAI;SACrB,CAAC,CAAA;QACF,OAAM;IACV,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAA;IAE1B,IAAI,UAAsD,CAAA;IAC1D,IAAI,UAAkB,CAAA;IACtB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACjD,UAAU,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAA;QACtC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAA;IAC7B,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QAC3C,UAAU,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAA;QAChC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,IAAI,UAOW,CAAA;IAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QACjE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,+CAA+C,CAAC,CAAA;QACxF,CAAC;QACD,UAAU,GAAG;YACT,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YACzD,QAAQ,EAAE,YAAY,CAAC,QAAQ,IAAI,SAAS;YAC5C,YAAY,EAAE,YAAY,CAAC,YAAY;SAC1C,CAAA;IACL,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;QACjC,GAAG,UAAU;QACb,OAAO;QACP,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;KACpC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;QAC3C,OAAM;IACV,CAAC;IAED,IAAI,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACvB,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,GAAG,CAAC,CAAA;IAC/C,IAAI,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;AAC/C,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":"AAaA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AA0LD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB1E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { NoTokenError, probeApiToken, TOKEN_ENV_VAR } from '../../lib/auth.js';
|
|
2
|
+
import { listStoredUsers, NoTokenError, probeApiToken, TOKEN_ENV_VAR, } from '../../lib/auth.js';
|
|
3
3
|
import { CONFIG_PATH, readConfigStrict } from '../../lib/config.js';
|
|
4
4
|
import { SECURE_STORE_DESCRIPTION, SecureStoreUnavailableError } from '../../lib/secure-store.js';
|
|
5
|
+
import { getDefaultUserId, NoUserSelectedError } from '../../lib/users.js';
|
|
5
6
|
function maskToken(token) {
|
|
6
7
|
if (token.length < 5)
|
|
7
8
|
return '****';
|
|
@@ -25,6 +26,8 @@ async function probeTokenPresence() {
|
|
|
25
26
|
catch (error) {
|
|
26
27
|
if (error instanceof NoTokenError)
|
|
27
28
|
return { state: 'missing' };
|
|
29
|
+
if (error instanceof NoUserSelectedError)
|
|
30
|
+
return { state: 'ambiguous' };
|
|
28
31
|
if (error instanceof SecureStoreUnavailableError) {
|
|
29
32
|
return {
|
|
30
33
|
state: 'unavailable',
|
|
@@ -52,28 +55,87 @@ function renderTokenLine(token, showToken) {
|
|
|
52
55
|
}
|
|
53
56
|
case 'unavailable':
|
|
54
57
|
return chalk.dim(`unknown — ${token.reason}`);
|
|
58
|
+
case 'ambiguous':
|
|
59
|
+
return chalk.dim('multiple stored accounts; pass --user <id|email> or set a default with `td user use`');
|
|
55
60
|
case 'missing':
|
|
56
61
|
return formatValue(undefined);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
|
-
function
|
|
64
|
+
function formatStoredUserMode(user) {
|
|
65
|
+
if (user.auth_mode === 'read-only') {
|
|
66
|
+
return `read-only (${user.auth_scope ?? 'data:read'})`;
|
|
67
|
+
}
|
|
68
|
+
if (user.auth_mode === 'read-write') {
|
|
69
|
+
return 'read-write';
|
|
70
|
+
}
|
|
71
|
+
return chalk.dim('unknown');
|
|
72
|
+
}
|
|
73
|
+
function formatConfigView(config, token, showToken, users, defaultUserId) {
|
|
60
74
|
const lines = [];
|
|
61
75
|
lines.push(`${chalk.dim('Config file:')} ${CONFIG_PATH}`);
|
|
62
76
|
lines.push('');
|
|
77
|
+
// Active-user line: who would the next command run as?
|
|
78
|
+
lines.push(chalk.bold('Authentication'));
|
|
79
|
+
if (token.state === 'present' && token.metadata.email) {
|
|
80
|
+
const isDefault = token.metadata.userId === defaultUserId;
|
|
81
|
+
const marker = token.metadata.source === 'env' ? ' (TODOIST_API_TOKEN)' : isDefault ? ' (default)' : '';
|
|
82
|
+
lines.push(` Active: ${token.metadata.email} ${chalk.dim(`(id:${token.metadata.userId ?? '—'})`)}${marker}`);
|
|
83
|
+
}
|
|
84
|
+
else if (token.state === 'present' && token.metadata.source === 'env') {
|
|
85
|
+
lines.push(` Active: ${chalk.dim('(TODOIST_API_TOKEN)')}`);
|
|
86
|
+
}
|
|
87
|
+
else if (token.state === 'present') {
|
|
88
|
+
// Token is resolvable but we don't know which Todoist account it
|
|
89
|
+
// belongs to — i.e. legacy v1 single-user credentials before
|
|
90
|
+
// postinstall migration runs.
|
|
91
|
+
lines.push(` Active: ${chalk.dim('(legacy single-user credentials)')}`);
|
|
92
|
+
}
|
|
93
|
+
else if (token.state === 'ambiguous') {
|
|
94
|
+
// `NoUserSelectedError` covers two distinct states — distinguish
|
|
95
|
+
// them so the user knows whether to set a default or fix a stale
|
|
96
|
+
// pointer.
|
|
97
|
+
const orphanedDefault = defaultUserId !== undefined && !users.some((u) => u.id === defaultUserId);
|
|
98
|
+
const reason = orphanedDefault
|
|
99
|
+
? `default points at unknown user "${defaultUserId}"`
|
|
100
|
+
: 'multiple accounts, no default';
|
|
101
|
+
lines.push(` Active: ${chalk.dim(`(none — ${reason})`)}`);
|
|
102
|
+
}
|
|
103
|
+
else if (token.state === 'missing') {
|
|
104
|
+
lines.push(` Active: ${chalk.dim('(none)')}`);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
lines.push(` Active: ${chalk.dim('(unknown)')}`);
|
|
108
|
+
}
|
|
63
109
|
// When a token is present, its metadata is the ground truth for the active
|
|
64
110
|
// mode/scope/flags — this matters most for env-sourced tokens, whose scope
|
|
65
|
-
// the CLI does not actually know
|
|
66
|
-
//
|
|
67
|
-
//
|
|
111
|
+
// the CLI does not actually know. For missing/unavailable tokens, fall
|
|
112
|
+
// back to the config file values (what the CLI would attempt once auth
|
|
113
|
+
// recovers — only relevant for legacy v1 state).
|
|
68
114
|
const effectiveMode = token.state === 'present' ? token.metadata.authMode : config.auth_mode;
|
|
69
115
|
const effectiveScope = token.state === 'present' ? token.metadata.authScope : config.auth_scope;
|
|
70
116
|
const effectiveFlags = token.state === 'present' ? token.metadata.authFlags : config.auth_flags;
|
|
71
|
-
lines.push(chalk.bold('Authentication'));
|
|
72
117
|
lines.push(` Token: ${renderTokenLine(token, showToken)}`);
|
|
73
118
|
lines.push(` Mode: ${formatValue(effectiveMode)}`);
|
|
74
119
|
lines.push(` Scope: ${formatValue(effectiveScope)}`);
|
|
75
120
|
lines.push(` Flags: ${formatValue(effectiveFlags)}`);
|
|
76
121
|
lines.push('');
|
|
122
|
+
if (users.length > 0) {
|
|
123
|
+
lines.push(chalk.bold(`Stored accounts (${users.length})`));
|
|
124
|
+
for (const u of users) {
|
|
125
|
+
const isDefault = u.id === defaultUserId;
|
|
126
|
+
const marker = isDefault ? chalk.green(' (default)') : '';
|
|
127
|
+
const storage = u.api_token
|
|
128
|
+
? chalk.yellow('plaintext fallback')
|
|
129
|
+
: chalk.dim(SECURE_STORE_DESCRIPTION);
|
|
130
|
+
lines.push(` ${u.email} ${chalk.dim(`(id:${u.id})`)}${marker}`);
|
|
131
|
+
lines.push(` Mode: ${formatStoredUserMode(u)}`);
|
|
132
|
+
if (u.auth_flags && u.auth_flags.length > 0) {
|
|
133
|
+
lines.push(` Flags: ${u.auth_flags.join(', ')}`);
|
|
134
|
+
}
|
|
135
|
+
lines.push(` Storage: ${storage}`);
|
|
136
|
+
}
|
|
137
|
+
lines.push('');
|
|
138
|
+
}
|
|
77
139
|
lines.push(chalk.bold('Updates'));
|
|
78
140
|
lines.push(` Channel: ${formatValue(config.update_channel)}`);
|
|
79
141
|
lines.push('');
|
|
@@ -86,22 +148,32 @@ function formatConfigView(config, token, showToken) {
|
|
|
86
148
|
: formatValue(undefined)}`);
|
|
87
149
|
return lines.join('\n');
|
|
88
150
|
}
|
|
151
|
+
function maskConfigForJson(config, showToken) {
|
|
152
|
+
if (showToken)
|
|
153
|
+
return config;
|
|
154
|
+
const masked = { ...config };
|
|
155
|
+
if (typeof masked.api_token === 'string') {
|
|
156
|
+
masked.api_token = maskToken(masked.api_token);
|
|
157
|
+
}
|
|
158
|
+
if (Array.isArray(masked.users)) {
|
|
159
|
+
masked.users = masked.users.map((u) => typeof u.api_token === 'string' ? { ...u, api_token: maskToken(u.api_token) } : u);
|
|
160
|
+
}
|
|
161
|
+
return masked;
|
|
162
|
+
}
|
|
89
163
|
export async function viewConfig(options) {
|
|
90
164
|
const read = await readConfigStrict();
|
|
91
165
|
const config = read.state === 'present' ? read.config : {};
|
|
92
166
|
if (options.json) {
|
|
93
|
-
|
|
94
|
-
if (output.api_token && !options.showToken) {
|
|
95
|
-
output.api_token = maskToken(output.api_token);
|
|
96
|
-
}
|
|
97
|
-
console.log(JSON.stringify(output, null, 2));
|
|
167
|
+
console.log(JSON.stringify(maskConfigForJson(config, options.showToken ?? false), null, 2));
|
|
98
168
|
return;
|
|
99
169
|
}
|
|
100
170
|
const token = await probeTokenPresence();
|
|
101
|
-
|
|
171
|
+
const users = await listStoredUsers();
|
|
172
|
+
const defaultUserId = getDefaultUserId(config);
|
|
173
|
+
if (read.state === 'missing' && token.state === 'missing' && users.length === 0) {
|
|
102
174
|
console.log(`${chalk.dim('Config file:')} ${CONFIG_PATH} ${chalk.dim('(not created yet)')}`);
|
|
103
175
|
return;
|
|
104
176
|
}
|
|
105
|
-
console.log(formatConfigView(config, token, options.showToken ?? false));
|
|
177
|
+
console.log(formatConfigView(config, token, options.showToken ?? false, users, defaultUserId));
|
|
106
178
|
}
|
|
107
179
|
//# sourceMappingURL=view.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBnC,UAAU,aAAa;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;CACpB;AAkVD,wBAAsB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBxE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAO5D"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -2,10 +2,11 @@ import { readFile } from 'node:fs/promises';
|
|
|
2
2
|
import chalk from 'chalk';
|
|
3
3
|
import packageJson from '../../package.json' with { type: 'json' };
|
|
4
4
|
import { createApiForToken } from '../lib/api/core.js';
|
|
5
|
-
import { CONFIG_PATH, NoTokenError, TOKEN_ENV_VAR, probeApiToken } from '../lib/auth.js';
|
|
5
|
+
import { CONFIG_PATH, listStoredUsers, NoTokenError, readConfig, TOKEN_ENV_VAR, probeApiToken, } from '../lib/auth.js';
|
|
6
6
|
import { validateConfigForDoctor } from '../lib/config.js';
|
|
7
7
|
import { LoadingSpinner } from '../lib/spinner.js';
|
|
8
8
|
import { compareVersions, fetchLatestVersion, getConfiguredUpdateChannel, isNewer, } from '../lib/update.js';
|
|
9
|
+
import { getDefaultUserId, NoUserSelectedError } from '../lib/users.js';
|
|
9
10
|
function summarize(checks) {
|
|
10
11
|
return checks.reduce((summary, check) => {
|
|
11
12
|
if (check.status === 'pass')
|
|
@@ -120,6 +121,13 @@ async function checkAuthentication(offline) {
|
|
|
120
121
|
message: `No Todoist credentials found. Set ${TOKEN_ENV_VAR} or run td auth login`,
|
|
121
122
|
};
|
|
122
123
|
}
|
|
124
|
+
if (error instanceof NoUserSelectedError) {
|
|
125
|
+
return {
|
|
126
|
+
name: 'auth',
|
|
127
|
+
status: 'warn',
|
|
128
|
+
message: 'Multiple stored Todoist accounts but no default. Set one with `td user use <id|email>` or pass --user.',
|
|
129
|
+
};
|
|
130
|
+
}
|
|
123
131
|
const message = error instanceof Error ? error.message : String(error);
|
|
124
132
|
return {
|
|
125
133
|
name: 'auth',
|
|
@@ -218,10 +226,70 @@ async function checkForUpdates(offline) {
|
|
|
218
226
|
};
|
|
219
227
|
}
|
|
220
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Returns 0–3 `users` checks: a summary of stored accounts plus optional
|
|
231
|
+
* warnings for missing/orphaned defaults and plaintext-fallback storage. Both
|
|
232
|
+
* warnings can fire on the same install, so we emit them as separate checks
|
|
233
|
+
* rather than collapsing into one.
|
|
234
|
+
*/
|
|
235
|
+
async function checkStoredUsers() {
|
|
236
|
+
const users = await listStoredUsers();
|
|
237
|
+
if (users.length === 0)
|
|
238
|
+
return [];
|
|
239
|
+
const config = await readConfig();
|
|
240
|
+
const defaultId = getDefaultUserId(config);
|
|
241
|
+
// Mirror `resolveActiveUser`: a `defaultUser` pointer only counts when
|
|
242
|
+
// it actually resolves to a stored user.
|
|
243
|
+
const defaultResolved = defaultId ? users.find((u) => u.id === defaultId)?.email : undefined;
|
|
244
|
+
const hasUsableDefault = Boolean(defaultResolved);
|
|
245
|
+
// TODOIST_API_TOKEN bypasses the resolver entirely — multi-user state
|
|
246
|
+
// can't break commands while it's set, so don't raise the default warning.
|
|
247
|
+
const envTokenSet = Boolean(process.env[TOKEN_ENV_VAR]);
|
|
248
|
+
const plaintext = users.filter((u) => u.api_token).map((u) => u.email);
|
|
249
|
+
const baseDetails = {
|
|
250
|
+
count: users.length,
|
|
251
|
+
defaultUserId: defaultId,
|
|
252
|
+
defaultUserResolved: hasUsableDefault,
|
|
253
|
+
envTokenSet,
|
|
254
|
+
plaintextFallbackEmails: plaintext,
|
|
255
|
+
};
|
|
256
|
+
const checks = [];
|
|
257
|
+
// Always emit the summary first so output reads top-down: state, then
|
|
258
|
+
// any warnings about that state.
|
|
259
|
+
checks.push({
|
|
260
|
+
name: 'users',
|
|
261
|
+
status: 'pass',
|
|
262
|
+
message: users.length === 1
|
|
263
|
+
? `1 stored account (${users[0].email})`
|
|
264
|
+
: `${users.length} stored accounts; default is ${defaultResolved ?? (envTokenSet ? '(TODOIST_API_TOKEN)' : '(none)')}`,
|
|
265
|
+
details: baseDetails,
|
|
266
|
+
});
|
|
267
|
+
if (users.length > 1 && !hasUsableDefault && !envTokenSet) {
|
|
268
|
+
const reason = defaultId
|
|
269
|
+
? `default points at unknown user "${defaultId}"`
|
|
270
|
+
: 'no default selected';
|
|
271
|
+
checks.push({
|
|
272
|
+
name: 'users',
|
|
273
|
+
status: 'warn',
|
|
274
|
+
message: `${reason}. Commands without --user will error`,
|
|
275
|
+
details: baseDetails,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
if (plaintext.length > 0) {
|
|
279
|
+
checks.push({
|
|
280
|
+
name: 'users',
|
|
281
|
+
status: 'warn',
|
|
282
|
+
message: `${plaintext.length} account(s) using plaintext fallback storage: ${plaintext.join(', ')}`,
|
|
283
|
+
details: baseDetails,
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
return checks;
|
|
287
|
+
}
|
|
221
288
|
async function runDoctorChecks(options) {
|
|
222
289
|
return [
|
|
223
290
|
checkNodeVersion(),
|
|
224
291
|
await checkConfigFile(),
|
|
292
|
+
...(await checkStoredUsers()),
|
|
225
293
|
await checkAuthentication(Boolean(options.offline)),
|
|
226
294
|
await checkForUpdates(Boolean(options.offline)),
|
|
227
295
|
].filter((check) => check !== null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ProductivityStats } from '@doist/todoist-sdk';
|
|
2
|
+
type Streak = ProductivityStats['goals']['currentDailyStreak'];
|
|
2
3
|
export declare function formatTrend(trend: string): string;
|
|
3
4
|
export declare function formatStreak(current: Streak, max: Streak): string;
|
|
4
5
|
export declare function formatGoalProgress(completed: number, goal: number, label: string): string;
|
|
@@ -6,4 +7,5 @@ export declare function getTodayCompleted(stats: ProductivityStats): number;
|
|
|
6
7
|
export declare function getThisWeekCompleted(stats: ProductivityStats): number;
|
|
7
8
|
export declare function formatStatsView(stats: ProductivityStats): string;
|
|
8
9
|
export declare function formatStatsJson(stats: ProductivityStats, full: boolean): object;
|
|
10
|
+
export {};
|
|
9
11
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG/E,KAAK,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAE9D,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAIlE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAgChE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CA6B/E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DAY_OF_WEEK_TO_API } from '@doist/todoist-sdk';
|
|
1
2
|
import chalk from 'chalk';
|
|
2
3
|
export function formatTrend(trend) {
|
|
3
4
|
switch (trend) {
|
|
@@ -78,7 +79,7 @@ export function formatStatsJson(stats, full) {
|
|
|
78
79
|
goals: {
|
|
79
80
|
...base.goals,
|
|
80
81
|
karmaDisabled: stats.goals.karmaDisabled,
|
|
81
|
-
ignoreDays: stats.goals.ignoreDays,
|
|
82
|
+
ignoreDays: stats.goals.ignoreDays.map((d) => DAY_OF_WEEK_TO_API[d]),
|
|
82
83
|
},
|
|
83
84
|
daysItems: stats.daysItems,
|
|
84
85
|
weekItems: stats.weekItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/stats/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCnF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { readConfig, resolveActiveUser } from '../../lib/auth.js';
|
|
3
|
+
import { getDefaultUserId } from '../../lib/users.js';
|
|
4
|
+
export async function currentUserCommand(options) {
|
|
5
|
+
const resolved = await resolveActiveUser();
|
|
6
|
+
const config = await readConfig();
|
|
7
|
+
const defaultId = getDefaultUserId(config);
|
|
8
|
+
const isDefault = resolved.id === defaultId;
|
|
9
|
+
if (options.json) {
|
|
10
|
+
console.log(JSON.stringify({
|
|
11
|
+
id: resolved.id === 'env' || resolved.id === 'legacy' ? null : resolved.id,
|
|
12
|
+
email: resolved.email || null,
|
|
13
|
+
source: resolved.source,
|
|
14
|
+
isDefault,
|
|
15
|
+
authMode: resolved.authMode,
|
|
16
|
+
authScope: resolved.authScope,
|
|
17
|
+
authFlags: resolved.authFlags,
|
|
18
|
+
}, null, 2));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (resolved.source === 'env') {
|
|
22
|
+
console.log(chalk.dim('Using TODOIST_API_TOKEN environment variable (no stored user).'));
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
if (resolved.id === 'legacy') {
|
|
26
|
+
console.log(chalk.dim('Using legacy single-user credentials. Run `td auth login` to migrate to a stored account.'));
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const marker = isDefault ? chalk.green(' (default)') : '';
|
|
30
|
+
console.log(`${resolved.email} ${chalk.dim(`(id:${resolved.id})`)}${marker}`);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["../../../src/commands/user/current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAMrD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAChE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAA;IAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAA;IAE3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACP,IAAI,CAAC,SAAS,CACV;YACI,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;YAC1E,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS;YACT,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;SAChC,EACD,IAAI,EACJ,CAAC,CACJ,CACJ,CAAA;QACD,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAA;QACxF,OAAM;IACV,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,2FAA2F,CAC9F,CACJ,CAAA;QACD,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzD,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAA;AACjF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAMnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqC1D"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { currentUserCommand } from './current.js';
|
|
1
2
|
import { listUsersCommand } from './list.js';
|
|
3
|
+
import { removeUserCommand } from './remove.js';
|
|
2
4
|
import { useUserCommand } from './use.js';
|
|
3
5
|
export function registerUserCommand(program) {
|
|
4
6
|
const user = program.command('user').description('Manage stored Todoist accounts (multi-user)');
|
|
@@ -9,11 +11,24 @@ export function registerUserCommand(program) {
|
|
|
9
11
|
user.command('use <ref>')
|
|
10
12
|
.description('Set the default account used when --user is not provided')
|
|
11
13
|
.action((ref) => useUserCommand(ref));
|
|
14
|
+
// `default` is an explicit alias for `use` — same behavior, different verb.
|
|
15
|
+
user.command('default <ref>')
|
|
16
|
+
.description('Alias of `td user use <ref>`')
|
|
17
|
+
.action((ref) => useUserCommand(ref));
|
|
18
|
+
user.command('current')
|
|
19
|
+
.description('Show the active account (resolved from --user, default, or single login)')
|
|
20
|
+
.option('--json', 'Output as JSON')
|
|
21
|
+
.action(currentUserCommand);
|
|
22
|
+
user.command('remove <ref>')
|
|
23
|
+
.description('Remove a stored account (deletes its token and config entry)')
|
|
24
|
+
.action((ref) => removeUserCommand(ref));
|
|
12
25
|
user.addHelpText('after', `
|
|
13
26
|
Examples:
|
|
14
27
|
$ td auth login # add an account (sets it as default if first)
|
|
15
28
|
$ td user list # see all stored accounts
|
|
16
29
|
$ td user use scott@doist.com # set default
|
|
17
|
-
$ td
|
|
30
|
+
$ td user current # show the active account
|
|
31
|
+
$ td --user other@example.com task list # one-off override
|
|
32
|
+
$ td user remove old@example.com`);
|
|
18
33
|
}
|
|
19
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,IAAI,CAAC,WAAW,CACZ,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/user/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,6CAA6C,CAAC,CAAA;IAE/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,0DAA0D,CAAC;SACvE,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;IAEjD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0EAA0E,CAAC;SACvF,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,kBAAkB,CAAC,CAAA;IAE/B,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;IAEpD,IAAI,CAAC,WAAW,CACZ,OAAO,EACP;;;;;;;mCAO2B,CAC9B,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B9E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { readConfig, removeUserById } from '../../lib/auth.js';
|
|
3
|
+
import { CliError } from '../../lib/errors.js';
|
|
4
|
+
import { isQuiet } from '../../lib/global-args.js';
|
|
5
|
+
import { getDefaultUserId, requireUserByRef } from '../../lib/users.js';
|
|
6
|
+
export async function removeUserCommand(ref) {
|
|
7
|
+
if (!ref) {
|
|
8
|
+
throw new CliError('MISSING_REF', 'Please provide a user id or email: `td user remove <id|email>`');
|
|
9
|
+
}
|
|
10
|
+
const config = await readConfig();
|
|
11
|
+
const { user } = requireUserByRef(config, ref);
|
|
12
|
+
const wasDefault = getDefaultUserId(config) === user.id;
|
|
13
|
+
const result = await removeUserById(user.id);
|
|
14
|
+
if (!isQuiet()) {
|
|
15
|
+
console.log(chalk.green('✓'), `Removed ${user.email}`);
|
|
16
|
+
if (wasDefault) {
|
|
17
|
+
console.log(chalk.dim('Cleared default account. Set a new one with `td user use <id|email>`.'));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Always surface partial-cleanup warnings, even with --quiet — the user
|
|
21
|
+
// needs to know if the keyring or config wasn't fully cleared.
|
|
22
|
+
if (result.warning) {
|
|
23
|
+
console.error(chalk.yellow('Warning:'), result.warning);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=remove.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/user/remove.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAuB;IAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;QACP,MAAM,IAAI,QAAQ,CACd,aAAa,EACb,gEAAgE,CACnE,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAA;IACjC,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;IAEvD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE5C,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;QACtD,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CACrF,CAAA;QACL,CAAC;IACL,CAAC;IAED,wEAAwE;IACxE,+DAA+D;IAC/D,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoDnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyE1D"}
|