@doist/twist-cli 2.32.2 → 2.33.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 +11 -0
- package/dist/commands/channel/helpers.d.ts +3 -0
- package/dist/commands/channel/helpers.d.ts.map +1 -0
- package/dist/commands/channel/helpers.js +24 -0
- package/dist/commands/channel/helpers.js.map +1 -0
- package/dist/commands/{channel.d.ts → channel/index.d.ts} +1 -1
- package/dist/commands/channel/index.d.ts.map +1 -0
- package/dist/commands/channel/index.js +67 -0
- package/dist/commands/channel/index.js.map +1 -0
- package/dist/commands/channel/list.d.ts +8 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/{channel.js → channel/list.js} +7 -39
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/channel/threads.d.ts +11 -0
- package/dist/commands/channel/threads.d.ts.map +1 -0
- package/dist/commands/channel/threads.js +97 -0
- package/dist/commands/channel/threads.js.map +1 -0
- package/dist/commands/config/index.d.ts +3 -0
- package/dist/commands/config/index.d.ts.map +1 -0
- package/dist/commands/config/index.js +16 -0
- package/dist/commands/config/index.js.map +1 -0
- package/dist/commands/config/view.d.ts +6 -0
- package/dist/commands/config/view.d.ts.map +1 -0
- package/dist/commands/config/view.js +105 -0
- package/dist/commands/config/view.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/api.d.ts.map +1 -1
- package/dist/lib/api.js +1 -0
- package/dist/lib/api.js.map +1 -1
- package/dist/lib/config.d.ts +13 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +35 -1
- 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/output.d.ts.map +1 -1
- package/dist/lib/output.js +3 -0
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/refs.d.ts +2 -1
- package/dist/lib/refs.d.ts.map +1 -1
- package/dist/lib/refs.js +43 -1
- package/dist/lib/refs.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 +19 -1
- package/dist/lib/skills/content.js.map +1 -1
- package/package.json +2 -2
- package/dist/__mocks__/chalk.d.ts +0 -3
- package/dist/__mocks__/chalk.d.ts.map +0 -1
- package/dist/__mocks__/chalk.js +0 -8
- package/dist/__mocks__/chalk.js.map +0 -1
- package/dist/commands/channel.d.ts.map +0 -1
- package/dist/commands/channel.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## [2.33.0](https://github.com/Doist/twist-cli/compare/v2.32.2...v2.33.0) (2026-04-23)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
- **channel:** add channel threads listing with pagination ([#191](https://github.com/Doist/twist-cli/issues/191)) ([f17f09f](https://github.com/Doist/twist-cli/commit/f17f09fbfc3a11ee3bf641bc40a9e5702d3b311f))
|
|
6
|
+
- **config:** add `tw config view` to inspect the CLI config file ([#192](https://github.com/Doist/twist-cli/issues/192)) ([f7d0d9b](https://github.com/Doist/twist-cli/commit/f7d0d9bbc3fbee03825032d6c54f293429bee45f))
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **deps:** update dependency marked to v18.0.2 ([#189](https://github.com/Doist/twist-cli/issues/189)) ([f4caf89](https://github.com/Doist/twist-cli/commit/f4caf8978a12a547050a7649de2285d41330abe6))
|
|
11
|
+
|
|
1
12
|
## [2.32.2](https://github.com/Doist/twist-cli/compare/v2.32.1...v2.32.2) (2026-04-22)
|
|
2
13
|
|
|
3
14
|
### Bug Fixes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/helpers.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAqB/D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CliError } from '../../lib/errors.js';
|
|
2
|
+
export function encodeCursor(offset) {
|
|
3
|
+
return Buffer.from(JSON.stringify({ offset })).toString('base64url');
|
|
4
|
+
}
|
|
5
|
+
export function decodeCursor(cursor) {
|
|
6
|
+
if (!cursor)
|
|
7
|
+
return 0;
|
|
8
|
+
let parsed;
|
|
9
|
+
try {
|
|
10
|
+
parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
throw new CliError('INVALID_CURSOR', `Invalid cursor: ${cursor}`);
|
|
14
|
+
}
|
|
15
|
+
if (!parsed ||
|
|
16
|
+
typeof parsed !== 'object' ||
|
|
17
|
+
typeof parsed.offset !== 'number' ||
|
|
18
|
+
!Number.isFinite(parsed.offset) ||
|
|
19
|
+
parsed.offset < 0) {
|
|
20
|
+
throw new CliError('INVALID_CURSOR', `Invalid cursor: ${cursor}`);
|
|
21
|
+
}
|
|
22
|
+
return parsed.offset;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/channel/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,UAAU,YAAY,CAAC,MAAc;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAA0B;IACnD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,CAAA;IAErB,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1E,CAAC;IAAC,MAAM,CAAC;QACL,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,IACI,CAAC,MAAM;QACP,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAQ,MAA+B,CAAC,MAAM,KAAK,QAAQ;QAC3D,CAAC,MAAM,CAAC,QAAQ,CAAE,MAA6B,CAAC,MAAM,CAAC;QACtD,MAA6B,CAAC,MAAM,GAAG,CAAC,EAC3C,CAAC;QACC,MAAM,IAAI,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,MAAM,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,OAAQ,MAA6B,CAAC,MAAM,CAAA;AAChD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAK3C,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmF7D"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Option } from 'commander';
|
|
2
|
+
import { withCaseInsensitiveChoices } from '../../lib/completion.js';
|
|
3
|
+
import { listChannels } from './list.js';
|
|
4
|
+
import { showChannelThreads } from './threads.js';
|
|
5
|
+
export function registerChannelCommand(program) {
|
|
6
|
+
const channel = program
|
|
7
|
+
.command('channel')
|
|
8
|
+
.alias('channels')
|
|
9
|
+
.description('Channel operations (list, threads)');
|
|
10
|
+
channel
|
|
11
|
+
.command('list [workspace-ref]', { isDefault: true })
|
|
12
|
+
.description('List joined channels or discoverable public channels in a workspace')
|
|
13
|
+
.option('--workspace <ref>', 'Workspace ID or name')
|
|
14
|
+
.option('--scope <scope>', 'Channel set to list: joined, public, or discoverable (default: joined)')
|
|
15
|
+
.option('--state <state>', 'Channel state to list: active, all, or archived (default: active)')
|
|
16
|
+
.option('--json', 'Output as JSON')
|
|
17
|
+
.option('--ndjson', 'Output as newline-delimited JSON')
|
|
18
|
+
.option('--full', 'Include all fields in JSON output')
|
|
19
|
+
.addHelpText('after', `
|
|
20
|
+
Examples:
|
|
21
|
+
tw channels
|
|
22
|
+
tw channels --state all
|
|
23
|
+
tw channels --scope discoverable
|
|
24
|
+
tw channels --scope public --state archived
|
|
25
|
+
tw channels --scope public --state all --json
|
|
26
|
+
tw channels --json
|
|
27
|
+
tw channels "My Workspace" --scope discoverable --json
|
|
28
|
+
|
|
29
|
+
Notes:
|
|
30
|
+
Defaults to active channels that you have joined.
|
|
31
|
+
joined Channels you have joined (private channels require --include-private-channels)
|
|
32
|
+
public Public channels visible in the workspace, whether joined or not
|
|
33
|
+
discoverable Public channels visible in the workspace that you have not joined
|
|
34
|
+
active Non-archived channels only
|
|
35
|
+
all Both active and archived channels
|
|
36
|
+
archived Archived channels only
|
|
37
|
+
|
|
38
|
+
Twist does not expose unjoined private channels, so public/discoverable scopes never include them.`)
|
|
39
|
+
.action(listChannels);
|
|
40
|
+
channel
|
|
41
|
+
.command('threads <channel-ref> [workspace-ref]')
|
|
42
|
+
.description('List threads in a channel with pagination and filtering')
|
|
43
|
+
.option('--workspace <ref>', 'Workspace ID or name')
|
|
44
|
+
.option('--unread', 'Only show unread threads')
|
|
45
|
+
.addOption(withCaseInsensitiveChoices(new Option('--archive-filter <filter>', 'Show active, archived, or all threads (default: active)'), ['active', 'archived', 'all']))
|
|
46
|
+
.option('--since <date>', 'Threads updated on/after this date (ISO format)')
|
|
47
|
+
.option('--until <date>', 'Threads updated before this date (ISO format)')
|
|
48
|
+
.option('--limit <n>', 'Max threads per page (default: 50)')
|
|
49
|
+
.option('--cursor <cursor>', 'Pagination cursor from a previous response')
|
|
50
|
+
.option('--json', 'Output as JSON')
|
|
51
|
+
.option('--ndjson', 'Output as newline-delimited JSON')
|
|
52
|
+
.option('--full', 'Include all fields in JSON output')
|
|
53
|
+
.addHelpText('after', `
|
|
54
|
+
Examples:
|
|
55
|
+
tw channel threads 12345
|
|
56
|
+
tw channel threads "general"
|
|
57
|
+
tw channel threads id:12345 --unread
|
|
58
|
+
tw channel threads 12345 --archive-filter all --since 2026-01-01
|
|
59
|
+
tw channel threads 12345 --limit 20 --json
|
|
60
|
+
tw channel threads 12345 --limit 20 --cursor <cursor-from-previous>
|
|
61
|
+
|
|
62
|
+
Notes:
|
|
63
|
+
Sorted newest-first by last activity. --limit, --cursor, --since, --until,
|
|
64
|
+
and --unread are applied client-side; --archive-filter is applied server-side.`)
|
|
65
|
+
.action(showChannelThreads);
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/channel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,MAAM,OAAO,GAAG,OAAO;SAClB,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,UAAU,CAAC;SACjB,WAAW,CAAC,oCAAoC,CAAC,CAAA;IAEtD,OAAO;SACF,OAAO,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpD,WAAW,CAAC,qEAAqE,CAAC;SAClF,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CACH,iBAAiB,EACjB,wEAAwE,CAC3E;SACA,MAAM,CACH,iBAAiB,EACjB,mEAAmE,CACtE;SACA,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,WAAW,CACR,OAAO,EACP;;;;;;;;;;;;;;;;;;;qGAmByF,CAC5F;SACA,MAAM,CAAC,YAAY,CAAC,CAAA;IAEzB,OAAO;SACF,OAAO,CAAC,uCAAuC,CAAC;SAChD,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;SACnD,MAAM,CAAC,UAAU,EAAE,0BAA0B,CAAC;SAC9C,SAAS,CACN,0BAA0B,CACtB,IAAI,MAAM,CACN,2BAA2B,EAC3B,yDAAyD,CAC5D,EACD,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAChC,CACJ;SACA,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;SACzE,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;SACzE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,mCAAmC,CAAC;SACrD,WAAW,CACR,OAAO,EACP;;;;;;;;;;;iFAWqE,CACxE;SACA,MAAM,CAAC,kBAAkB,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ViewOptions } from '../../lib/options.js';
|
|
2
|
+
export type ListChannelsOptions = ViewOptions & {
|
|
3
|
+
workspace?: string;
|
|
4
|
+
scope?: string;
|
|
5
|
+
state?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function listChannels(workspaceRef: string | undefined, options: ListChannelsOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/list.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAWvD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAkID,wBAAsB,YAAY,CAC9B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAyDf"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { getCurrentWorkspaceId, getTwistClient } from '
|
|
2
|
-
import { CliError } from '
|
|
3
|
-
import { includePrivateChannels } from '
|
|
4
|
-
import { colors, formatJson, formatNdjson } from '
|
|
5
|
-
import { resolveWorkspaceRef } from '
|
|
1
|
+
import { getCurrentWorkspaceId, getTwistClient } from '../../lib/api.js';
|
|
2
|
+
import { CliError } from '../../lib/errors.js';
|
|
3
|
+
import { includePrivateChannels } from '../../lib/global-args.js';
|
|
4
|
+
import { colors, formatJson, formatNdjson } from '../../lib/output.js';
|
|
5
|
+
import { resolveWorkspaceRef } from '../../lib/refs.js';
|
|
6
6
|
const CHANNEL_SCOPES = ['joined', 'public', 'discoverable'];
|
|
7
7
|
const CHANNEL_STATES = ['active', 'all', 'archived'];
|
|
8
8
|
function parseChannelScope(scope) {
|
|
@@ -94,7 +94,7 @@ function formatChannelLine(channel, scope) {
|
|
|
94
94
|
: '';
|
|
95
95
|
return `${id} ${name}${visibility}${membership}${archived}`;
|
|
96
96
|
}
|
|
97
|
-
async function listChannels(workspaceRef, options) {
|
|
97
|
+
export async function listChannels(workspaceRef, options) {
|
|
98
98
|
const scope = parseChannelScope(options.scope);
|
|
99
99
|
const state = parseChannelState(options.state);
|
|
100
100
|
const workspaceId = await getWorkspaceId(workspaceRef, options);
|
|
@@ -146,36 +146,4 @@ async function listChannels(workspaceRef, options) {
|
|
|
146
146
|
console.log(formatChannelLine(channel, scope));
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
|
|
150
|
-
program
|
|
151
|
-
.command('channels [workspace-ref]')
|
|
152
|
-
.description('List joined channels or discoverable public channels in a workspace')
|
|
153
|
-
.option('--workspace <ref>', 'Workspace ID or name')
|
|
154
|
-
.option('--scope <scope>', 'Channel set to list: joined, public, or discoverable (default: joined)')
|
|
155
|
-
.option('--state <state>', 'Channel state to list: active, all, or archived (default: active)')
|
|
156
|
-
.option('--json', 'Output as JSON')
|
|
157
|
-
.option('--ndjson', 'Output as newline-delimited JSON')
|
|
158
|
-
.option('--full', 'Include all fields in JSON output')
|
|
159
|
-
.addHelpText('after', `
|
|
160
|
-
Examples:
|
|
161
|
-
tw channels
|
|
162
|
-
tw channels --state all
|
|
163
|
-
tw channels --scope discoverable
|
|
164
|
-
tw channels --scope public --state archived
|
|
165
|
-
tw channels --scope public --state all --json
|
|
166
|
-
tw channels --json
|
|
167
|
-
tw channels "My Workspace" --scope discoverable --json
|
|
168
|
-
|
|
169
|
-
Notes:
|
|
170
|
-
Defaults to active channels that you have joined.
|
|
171
|
-
joined Channels you have joined (private channels require --include-private-channels)
|
|
172
|
-
public Public channels visible in the workspace, whether joined or not
|
|
173
|
-
discoverable Public channels visible in the workspace that you have not joined
|
|
174
|
-
active Non-archived channels only
|
|
175
|
-
all Both active and archived channels
|
|
176
|
-
archived Archived channels only
|
|
177
|
-
|
|
178
|
-
Twist does not expose unjoined private channels, so public/discoverable scopes never include them.`)
|
|
179
|
-
.action(listChannels);
|
|
180
|
-
}
|
|
181
|
-
//# sourceMappingURL=channel.js.map
|
|
149
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/channel/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ArchiveFilter } from '@doist/twist-sdk';
|
|
2
|
+
import type { PaginatedViewOptions } from '../../lib/options.js';
|
|
3
|
+
type ChannelThreadsOptions = PaginatedViewOptions & {
|
|
4
|
+
workspace?: string;
|
|
5
|
+
unread?: boolean;
|
|
6
|
+
archiveFilter?: ArchiveFilter;
|
|
7
|
+
cursor?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function showChannelThreads(channelRef: string, workspaceRef: string | undefined, options: ChannelThreadsOptions): Promise<void>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/threads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAU,MAAM,kBAAkB,CAAA;AAM7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAWhE,KAAK,qBAAqB,GAAG,oBAAoB,GAAG;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AA0BD,wBAAsB,kBAAkB,CACpC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAgGf"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getCurrentWorkspaceId, getTwistClient } from '../../lib/api.js';
|
|
3
|
+
import { formatRelativeDate } from '../../lib/dates.js';
|
|
4
|
+
import { CliError } from '../../lib/errors.js';
|
|
5
|
+
import { isAccessible } from '../../lib/global-args.js';
|
|
6
|
+
import { colors, formatPaginatedJson, formatPaginatedNdjson, } from '../../lib/output.js';
|
|
7
|
+
import { assertChannelIsPublic } from '../../lib/public-channels.js';
|
|
8
|
+
import { resolveChannelRef, resolveWorkspaceRef } from '../../lib/refs.js';
|
|
9
|
+
import { decodeCursor, encodeCursor } from './helpers.js';
|
|
10
|
+
function archiveFilterToFlag(filter) {
|
|
11
|
+
switch (filter ?? 'active') {
|
|
12
|
+
case 'active':
|
|
13
|
+
return false;
|
|
14
|
+
case 'archived':
|
|
15
|
+
return true;
|
|
16
|
+
case 'all':
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function parseDateFilter(value, flag) {
|
|
21
|
+
const ts = new Date(value).getTime();
|
|
22
|
+
if (Number.isNaN(ts)) {
|
|
23
|
+
throw new CliError('INVALID_DATE', `Invalid ${flag} value: "${value}". Use an ISO-8601 date (e.g. 2026-01-15 or 2026-01-15T09:00:00Z).`);
|
|
24
|
+
}
|
|
25
|
+
return ts;
|
|
26
|
+
}
|
|
27
|
+
export async function showChannelThreads(channelRef, workspaceRef, options) {
|
|
28
|
+
if (workspaceRef && options.workspace) {
|
|
29
|
+
throw new CliError('CONFLICTING_OPTIONS', 'Cannot specify workspace both as argument and --workspace flag');
|
|
30
|
+
}
|
|
31
|
+
const sinceTs = options.since ? parseDateFilter(options.since, '--since') : undefined;
|
|
32
|
+
const untilTs = options.until ? parseDateFilter(options.until, '--until') : undefined;
|
|
33
|
+
let workspaceId;
|
|
34
|
+
const ref = workspaceRef || options.workspace;
|
|
35
|
+
if (ref) {
|
|
36
|
+
const workspace = await resolveWorkspaceRef(ref);
|
|
37
|
+
workspaceId = workspace.id;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
workspaceId = await getCurrentWorkspaceId();
|
|
41
|
+
}
|
|
42
|
+
const channel = await resolveChannelRef(channelRef, workspaceId);
|
|
43
|
+
await assertChannelIsPublic(channel.id, workspaceId);
|
|
44
|
+
const archived = archiveFilterToFlag(options.archiveFilter);
|
|
45
|
+
const client = await getTwistClient();
|
|
46
|
+
const [threadsResp, unreadResp] = await client.batch(client.threads.getThreads(archived === undefined
|
|
47
|
+
? { workspaceId, channelId: channel.id }
|
|
48
|
+
: { workspaceId, channelId: channel.id, archived }, { batch: true }), client.threads.getUnread(workspaceId, { batch: true }));
|
|
49
|
+
const unreadThreadIds = new Set(unreadResp.data.map((u) => u.threadId));
|
|
50
|
+
let threads = threadsResp.data.map((t) => ({
|
|
51
|
+
...t,
|
|
52
|
+
isUnread: unreadThreadIds.has(t.id),
|
|
53
|
+
}));
|
|
54
|
+
if (options.unread) {
|
|
55
|
+
threads = threads.filter((t) => t.isUnread);
|
|
56
|
+
}
|
|
57
|
+
if (sinceTs !== undefined) {
|
|
58
|
+
threads = threads.filter((t) => new Date(t.lastUpdated).getTime() >= sinceTs);
|
|
59
|
+
}
|
|
60
|
+
if (untilTs !== undefined) {
|
|
61
|
+
threads = threads.filter((t) => new Date(t.lastUpdated).getTime() < untilTs);
|
|
62
|
+
}
|
|
63
|
+
threads.sort((a, b) => new Date(b.lastUpdated).getTime() - new Date(a.lastUpdated).getTime());
|
|
64
|
+
const limitNum = options.limit ? parseInt(options.limit, 10) : 50;
|
|
65
|
+
const limit = Number.isFinite(limitNum) && limitNum > 0 ? limitNum : 50;
|
|
66
|
+
const offset = decodeCursor(options.cursor);
|
|
67
|
+
const page = threads.slice(offset, offset + limit);
|
|
68
|
+
const nextCursor = offset + limit < threads.length ? encodeCursor(offset + limit) : null;
|
|
69
|
+
const paginated = { results: page, nextCursor };
|
|
70
|
+
if (options.json) {
|
|
71
|
+
console.log(formatPaginatedJson(paginated, 'thread', options.full));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (options.ndjson) {
|
|
75
|
+
console.log(formatPaginatedNdjson(paginated, 'thread', options.full));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (page.length === 0) {
|
|
79
|
+
console.log(`No threads in #${channel.name}.`);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
console.log(chalk.bold.blue(`[${channel.name}]`));
|
|
83
|
+
console.log('');
|
|
84
|
+
for (const thread of page) {
|
|
85
|
+
const title = thread.isUnread ? chalk.bold(thread.title) : thread.title;
|
|
86
|
+
const time = colors.timestamp(formatRelativeDate(thread.lastUpdated));
|
|
87
|
+
const unreadBadge = thread.isUnread ? chalk.blue(isAccessible() ? ' (unread)' : ' *') : '';
|
|
88
|
+
console.log(` ${title}${unreadBadge}`);
|
|
89
|
+
console.log(` ${time} ${colors.timestamp(`id:${thread.id}`)}`);
|
|
90
|
+
console.log(` ${colors.url(thread.url)}`);
|
|
91
|
+
console.log('');
|
|
92
|
+
}
|
|
93
|
+
if (nextCursor) {
|
|
94
|
+
console.log(colors.timestamp(`More threads available. Use --cursor ${nextCursor}`));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=threads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../src/commands/channel/threads.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkB5D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { viewConfig } from './view.js';
|
|
2
|
+
export function registerConfigCommand(program) {
|
|
3
|
+
const config = program.command('config').description('Manage CLI configuration');
|
|
4
|
+
config
|
|
5
|
+
.command('view', { isDefault: true })
|
|
6
|
+
.description('Show the current CLI configuration file')
|
|
7
|
+
.option('--json', 'Output the raw config as JSON')
|
|
8
|
+
.option('--show-token', 'Include the full token instead of masking it')
|
|
9
|
+
.action(viewConfig);
|
|
10
|
+
config.addHelpText('after', `
|
|
11
|
+
Examples:
|
|
12
|
+
$ tw config view # pretty-printed, token masked
|
|
13
|
+
$ tw config view --json # raw JSON, token masked
|
|
14
|
+
$ tw config view --show-token # include the full token`);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAEtC,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IAClD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAA;IAEhF,MAAM;SACD,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACpC,WAAW,CAAC,yCAAyC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACjD,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;SACtE,MAAM,CAAC,UAAU,CAAC,CAAA;IAEvB,MAAM,CAAC,WAAW,CACd,OAAO,EACP;;;;6DAIqD,CACxD,CAAA;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;CACtB;AAsGD,wBAAsB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB1E"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { NoTokenError, probeApiToken, TOKEN_ENV_VAR, } from '../../lib/auth.js';
|
|
3
|
+
import { CONFIG_PATH, readConfigStrict } from '../../lib/config.js';
|
|
4
|
+
import { SECURE_STORE_DESCRIPTION, SecureStoreUnavailableError } from '../../lib/secure-store.js';
|
|
5
|
+
function maskToken(token) {
|
|
6
|
+
if (token.length < 5)
|
|
7
|
+
return '****';
|
|
8
|
+
return `****…${token.slice(-4)}`;
|
|
9
|
+
}
|
|
10
|
+
function describeTokenSource(source) {
|
|
11
|
+
switch (source) {
|
|
12
|
+
case 'env':
|
|
13
|
+
return `environment variable ${TOKEN_ENV_VAR}`;
|
|
14
|
+
case 'secure-store':
|
|
15
|
+
return SECURE_STORE_DESCRIPTION;
|
|
16
|
+
case 'config-file':
|
|
17
|
+
return 'config file (plaintext fallback)';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function probeTokenPresence() {
|
|
21
|
+
try {
|
|
22
|
+
const { token, metadata } = await probeApiToken();
|
|
23
|
+
return { state: 'present', token, metadata };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof NoTokenError)
|
|
27
|
+
return { state: 'missing' };
|
|
28
|
+
if (error instanceof SecureStoreUnavailableError) {
|
|
29
|
+
return {
|
|
30
|
+
state: 'unavailable',
|
|
31
|
+
reason: `${SECURE_STORE_DESCRIPTION} unavailable (${error.message})`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function formatValue(value) {
|
|
38
|
+
if (value === undefined || value === null)
|
|
39
|
+
return chalk.dim('not set');
|
|
40
|
+
if (typeof value === 'boolean')
|
|
41
|
+
return value ? 'true' : 'false';
|
|
42
|
+
return String(value);
|
|
43
|
+
}
|
|
44
|
+
function renderTokenLine(token, showToken) {
|
|
45
|
+
switch (token.state) {
|
|
46
|
+
case 'present': {
|
|
47
|
+
const value = showToken ? token.token : maskToken(token.token);
|
|
48
|
+
return `${value} ${chalk.dim(`(${describeTokenSource(token.metadata.source)})`)}`;
|
|
49
|
+
}
|
|
50
|
+
case 'unavailable':
|
|
51
|
+
return chalk.dim(`unknown — ${token.reason}`);
|
|
52
|
+
case 'missing':
|
|
53
|
+
return formatValue(undefined);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function formatConfigView(config, token, showToken, configMissing) {
|
|
57
|
+
const lines = [];
|
|
58
|
+
const headerSuffix = configMissing ? ` ${chalk.dim('(not created yet)')}` : '';
|
|
59
|
+
lines.push(`${chalk.dim('Config file:')} ${CONFIG_PATH}${headerSuffix}`);
|
|
60
|
+
lines.push('');
|
|
61
|
+
// When a token is present, its metadata is the ground truth for the active
|
|
62
|
+
// mode/scope — this matters most for env-sourced tokens, whose scope the CLI
|
|
63
|
+
// does not know and where config.auth* may be stale from an unrelated
|
|
64
|
+
// `tw auth login`. For missing/unavailable tokens, fall back to the config
|
|
65
|
+
// file values (what the CLI would attempt once auth recovers).
|
|
66
|
+
const effectiveMode = token.state === 'present' ? token.metadata.authMode : config.authMode;
|
|
67
|
+
const effectiveScope = token.state === 'present' ? token.metadata.authScope : config.authScope;
|
|
68
|
+
// When the mode is 'unknown' and no scope is recorded, the scope is
|
|
69
|
+
// genuinely unintrospectable (env-sourced tokens, or tokens saved via
|
|
70
|
+
// `tw auth token` without metadata). Render 'unknown' rather than
|
|
71
|
+
// 'not set' to avoid reading as an explicit empty scope.
|
|
72
|
+
const scopeDisplay = effectiveMode === 'unknown' && effectiveScope === undefined
|
|
73
|
+
? 'unknown'
|
|
74
|
+
: formatValue(effectiveScope);
|
|
75
|
+
lines.push(chalk.bold('Authentication'));
|
|
76
|
+
lines.push(` Token: ${renderTokenLine(token, showToken)}`);
|
|
77
|
+
lines.push(` Mode: ${formatValue(effectiveMode)}`);
|
|
78
|
+
lines.push(` Scope: ${scopeDisplay}`);
|
|
79
|
+
lines.push('');
|
|
80
|
+
lines.push(chalk.bold('Workspace'));
|
|
81
|
+
lines.push(` Current: ${formatValue(config.currentWorkspace)}`);
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push(chalk.bold('Updates'));
|
|
84
|
+
lines.push(` Channel: ${formatValue(config.updateChannel)}`);
|
|
85
|
+
return lines.join('\n');
|
|
86
|
+
}
|
|
87
|
+
export async function viewConfig(options) {
|
|
88
|
+
const read = await readConfigStrict();
|
|
89
|
+
const config = read.state === 'present' ? read.config : {};
|
|
90
|
+
if (options.json) {
|
|
91
|
+
const output = { ...config };
|
|
92
|
+
if (output.token && !options.showToken) {
|
|
93
|
+
output.token = maskToken(output.token);
|
|
94
|
+
}
|
|
95
|
+
console.log(JSON.stringify(output, null, 2));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const token = await probeTokenPresence();
|
|
99
|
+
if (read.state === 'missing' && token.state === 'missing') {
|
|
100
|
+
console.log(`${chalk.dim('Config file:')} ${CONFIG_PATH} ${chalk.dim('(not created yet)')}`);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
console.log(formatConfigView(config, token, options.showToken ?? false, read.state === 'missing'));
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/config/view.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { formatError, formatErrorJson } from './lib/output.js';
|
|
|
7
7
|
import { startEarlySpinner, stopEarlySpinner } from './lib/spinner.js';
|
|
8
8
|
const loadWorkspaceCommand = async () => (await import('./commands/workspace.js')).registerWorkspaceCommand;
|
|
9
9
|
const loadUserCommand = async () => (await import('./commands/user.js')).registerUserCommand;
|
|
10
|
-
const loadChannelCommand = async () => (await import('./commands/channel.js')).registerChannelCommand;
|
|
10
|
+
const loadChannelCommand = async () => (await import('./commands/channel/index.js')).registerChannelCommand;
|
|
11
11
|
const loadInboxCommand = async () => (await import('./commands/inbox.js')).registerInboxCommand;
|
|
12
12
|
const loadThreadCommand = async () => (await import('./commands/thread/index.js')).registerThreadCommand;
|
|
13
13
|
const loadConversationCommand = async () => (await import('./commands/conversation/index.js')).registerConversationCommand;
|
|
@@ -24,15 +24,13 @@ const loadUpdateCommand = async () => (await import('./commands/update/index.js'
|
|
|
24
24
|
const loadChangelogCommand = async () => (await import('./commands/changelog.js')).registerChangelogCommand;
|
|
25
25
|
const loadGroupsCommand = async () => (await import('./commands/groups.js')).registerGroupsCommand;
|
|
26
26
|
const loadDoctorCommand = async () => (await import('./commands/doctor.js')).registerDoctorCommand;
|
|
27
|
+
const loadConfigCommand = async () => (await import('./commands/config/index.js')).registerConfigCommand;
|
|
27
28
|
const commands = {
|
|
28
29
|
workspaces: ['List all workspaces', loadWorkspaceCommand],
|
|
29
30
|
workspace: ['Manage workspace', loadWorkspaceCommand],
|
|
30
31
|
user: ['Show current user info', loadUserCommand],
|
|
31
32
|
users: ['List users in a workspace', loadUserCommand],
|
|
32
|
-
|
|
33
|
-
'List active joined channels or widen to public/discoverable channels',
|
|
34
|
-
loadChannelCommand,
|
|
35
|
-
],
|
|
33
|
+
channel: ['Channel operations (list, threads)', loadChannelCommand],
|
|
36
34
|
inbox: ['Show inbox threads', loadInboxCommand],
|
|
37
35
|
thread: ['Thread operations', loadThreadCommand],
|
|
38
36
|
conversation: ['Conversation (DM/group) operations', loadConversationCommand],
|
|
@@ -50,8 +48,10 @@ const commands = {
|
|
|
50
48
|
changelog: ['Show recent changelog entries', loadChangelogCommand],
|
|
51
49
|
doctor: ['Diagnose common CLI setup and environment issues', loadDoctorCommand],
|
|
52
50
|
groups: ['List groups in a workspace', loadGroupsCommand],
|
|
51
|
+
config: ['Manage CLI configuration', loadConfigCommand],
|
|
53
52
|
};
|
|
54
53
|
const commandAliases = {
|
|
54
|
+
channels: 'channel',
|
|
55
55
|
convo: 'conversation',
|
|
56
56
|
message: 'msg',
|
|
57
57
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAgB,OAAO,EAAE,MAAM,WAAW,CAAA;AACjD,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,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,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,KAAK,EACV,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,aAAa,EACrB,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,KAAK,EACV,QAAQ,EACR,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,aAAa,EACrB,MAAM,kBAAkB,CAAA;AA2NzB,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAGhE;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,QAAQ,CAAC,CAMxD;AAKD,wBAAsB,eAAe,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAO5D;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAsB,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0B/E;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAOpD;AAED,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGrF;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAG9E;AAED,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAKxF;AAED,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA"}
|
package/dist/lib/api.js
CHANGED
|
@@ -17,6 +17,7 @@ const API_SPINNER_MESSAGES = {
|
|
|
17
17
|
'workspaceUsers.getUserById': { text: 'Loading user details...', color: 'blue' },
|
|
18
18
|
// Thread operations
|
|
19
19
|
'threads.getThread': { text: 'Loading thread...', color: 'blue' },
|
|
20
|
+
'threads.getThreads': { text: 'Loading threads...', color: 'blue' },
|
|
20
21
|
'threads.getUnread': { text: 'Loading unread threads...', color: 'blue' },
|
|
21
22
|
'threads.createThread': { text: 'Creating thread...', color: 'green' },
|
|
22
23
|
'threads.closeThread': { text: 'Closing thread...', color: 'yellow' },
|