@doist/twist-cli 2.20.0 → 2.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/package.json +3 -5
- 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/auth.d.ts +0 -3
- package/dist/commands/auth.d.ts.map +0 -1
- package/dist/commands/auth.js +0 -155
- package/dist/commands/auth.js.map +0 -1
- package/dist/commands/away.d.ts +0 -3
- package/dist/commands/away.d.ts.map +0 -1
- package/dist/commands/away.js +0 -120
- package/dist/commands/away.js.map +0 -1
- package/dist/commands/changelog.d.ts +0 -8
- package/dist/commands/changelog.d.ts.map +0 -1
- package/dist/commands/changelog.js +0 -113
- package/dist/commands/changelog.js.map +0 -1
- package/dist/commands/channel.d.ts +0 -3
- package/dist/commands/channel.d.ts.map +0 -1
- package/dist/commands/channel.js +0 -53
- package/dist/commands/channel.js.map +0 -1
- package/dist/commands/comment.d.ts +0 -3
- package/dist/commands/comment.d.ts.map +0 -1
- package/dist/commands/comment.js +0 -99
- package/dist/commands/comment.js.map +0 -1
- package/dist/commands/completion.d.ts +0 -3
- package/dist/commands/completion.d.ts.map +0 -1
- package/dist/commands/completion.js +0 -121
- package/dist/commands/completion.js.map +0 -1
- package/dist/commands/conversation.d.ts +0 -3
- package/dist/commands/conversation.d.ts.map +0 -1
- package/dist/commands/conversation.js +0 -394
- package/dist/commands/conversation.js.map +0 -1
- package/dist/commands/inbox.d.ts +0 -3
- package/dist/commands/inbox.d.ts.map +0 -1
- package/dist/commands/inbox.js +0 -127
- package/dist/commands/inbox.js.map +0 -1
- package/dist/commands/msg.d.ts +0 -3
- package/dist/commands/msg.d.ts.map +0 -1
- package/dist/commands/msg.js +0 -103
- package/dist/commands/msg.js.map +0 -1
- package/dist/commands/react.d.ts +0 -3
- package/dist/commands/react.d.ts.map +0 -1
- package/dist/commands/react.js +0 -102
- package/dist/commands/react.js.map +0 -1
- package/dist/commands/search.d.ts +0 -3
- package/dist/commands/search.d.ts.map +0 -1
- package/dist/commands/search.js +0 -160
- package/dist/commands/search.js.map +0 -1
- package/dist/commands/skill.d.ts +0 -3
- package/dist/commands/skill.d.ts.map +0 -1
- package/dist/commands/skill.js +0 -119
- package/dist/commands/skill.js.map +0 -1
- package/dist/commands/thread/create.d.ts +0 -7
- package/dist/commands/thread/create.d.ts.map +0 -1
- package/dist/commands/thread/create.js +0 -45
- package/dist/commands/thread/create.js.map +0 -1
- package/dist/commands/thread/helpers.d.ts +0 -10
- package/dist/commands/thread/helpers.d.ts.map +0 -1
- package/dist/commands/thread/helpers.js +0 -27
- package/dist/commands/thread/helpers.js.map +0 -1
- package/dist/commands/thread/mutate.d.ts +0 -5
- package/dist/commands/thread/mutate.d.ts.map +0 -1
- package/dist/commands/thread/mutate.js +0 -21
- package/dist/commands/thread/mutate.js.map +0 -1
- package/dist/commands/thread/reply.d.ts +0 -9
- package/dist/commands/thread/reply.d.ts.map +0 -1
- package/dist/commands/thread/reply.js +0 -68
- package/dist/commands/thread/reply.js.map +0 -1
- package/dist/commands/thread/view.d.ts +0 -9
- package/dist/commands/thread/view.d.ts.map +0 -1
- package/dist/commands/thread/view.js +0 -175
- package/dist/commands/thread/view.js.map +0 -1
- package/dist/commands/thread.d.ts +0 -3
- package/dist/commands/thread.d.ts.map +0 -1
- package/dist/commands/thread.js +0 -54
- package/dist/commands/thread.js.map +0 -1
- package/dist/commands/update.d.ts +0 -14
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -91
- package/dist/commands/update.js.map +0 -1
- package/dist/commands/user.d.ts +0 -3
- package/dist/commands/user.d.ts.map +0 -1
- package/dist/commands/user.js +0 -67
- package/dist/commands/user.js.map +0 -1
- package/dist/commands/view.d.ts +0 -3
- package/dist/commands/view.d.ts.map +0 -1
- package/dist/commands/view.js +0 -63
- package/dist/commands/view.js.map +0 -1
- package/dist/commands/workspace.d.ts +0 -3
- package/dist/commands/workspace.d.ts.map +0 -1
- package/dist/commands/workspace.js +0 -48
- package/dist/commands/workspace.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -133
- package/dist/index.js.map +0 -1
- package/dist/lib/api.d.ts +0 -20
- package/dist/lib/api.d.ts.map +0 -1
- package/dist/lib/api.js +0 -220
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/auth.d.ts +0 -21
- package/dist/lib/auth.d.ts.map +0 -1
- package/dist/lib/auth.js +0 -189
- package/dist/lib/auth.js.map +0 -1
- package/dist/lib/completion.d.ts +0 -31
- package/dist/lib/completion.d.ts.map +0 -1
- package/dist/lib/completion.js +0 -173
- package/dist/lib/completion.js.map +0 -1
- package/dist/lib/config.d.ts +0 -13
- package/dist/lib/config.d.ts.map +0 -1
- package/dist/lib/config.js +0 -26
- package/dist/lib/config.js.map +0 -1
- package/dist/lib/dates.d.ts +0 -3
- package/dist/lib/dates.d.ts.map +0 -1
- package/dist/lib/dates.js +0 -44
- package/dist/lib/dates.js.map +0 -1
- package/dist/lib/input.d.ts +0 -3
- package/dist/lib/input.d.ts.map +0 -1
- package/dist/lib/input.js +0 -52
- package/dist/lib/input.js.map +0 -1
- package/dist/lib/markdown.d.ts +0 -2
- package/dist/lib/markdown.d.ts.map +0 -1
- package/dist/lib/markdown.js +0 -16
- package/dist/lib/markdown.js.map +0 -1
- package/dist/lib/oauth-server.d.ts +0 -13
- package/dist/lib/oauth-server.d.ts.map +0 -1
- package/dist/lib/oauth-server.js +0 -824
- package/dist/lib/oauth-server.js.map +0 -1
- package/dist/lib/oauth.d.ts +0 -31
- package/dist/lib/oauth.d.ts.map +0 -1
- package/dist/lib/oauth.js +0 -140
- package/dist/lib/oauth.js.map +0 -1
- package/dist/lib/options.d.ts +0 -17
- package/dist/lib/options.d.ts.map +0 -1
- package/dist/lib/options.js +0 -2
- package/dist/lib/options.js.map +0 -1
- package/dist/lib/output.d.ts +0 -25
- package/dist/lib/output.d.ts.map +0 -1
- package/dist/lib/output.js +0 -128
- package/dist/lib/output.js.map +0 -1
- package/dist/lib/permissions.d.ts +0 -4
- package/dist/lib/permissions.d.ts.map +0 -1
- package/dist/lib/permissions.js +0 -35
- package/dist/lib/permissions.js.map +0 -1
- package/dist/lib/pkce.d.ts +0 -16
- package/dist/lib/pkce.d.ts.map +0 -1
- package/dist/lib/pkce.js +0 -35
- package/dist/lib/pkce.js.map +0 -1
- package/dist/lib/progress.d.ts +0 -29
- package/dist/lib/progress.d.ts.map +0 -1
- package/dist/lib/progress.js +0 -101
- package/dist/lib/progress.js.map +0 -1
- package/dist/lib/public-channels.d.ts +0 -5
- package/dist/lib/public-channels.d.ts.map +0 -1
- package/dist/lib/public-channels.js +0 -35
- package/dist/lib/public-channels.js.map +0 -1
- package/dist/lib/refs.d.ts +0 -37
- package/dist/lib/refs.d.ts.map +0 -1
- package/dist/lib/refs.js +0 -219
- package/dist/lib/refs.js.map +0 -1
- package/dist/lib/search-api.d.ts +0 -25
- package/dist/lib/search-api.d.ts.map +0 -1
- package/dist/lib/search-api.js +0 -85
- package/dist/lib/search-api.js.map +0 -1
- package/dist/lib/secure-store.d.ts +0 -11
- package/dist/lib/secure-store.d.ts.map +0 -1
- package/dist/lib/secure-store.js +0 -57
- package/dist/lib/secure-store.js.map +0 -1
- package/dist/lib/skills/content.d.ts +0 -5
- package/dist/lib/skills/content.d.ts.map +0 -1
- package/dist/lib/skills/content.js +0 -274
- package/dist/lib/skills/content.js.map +0 -1
- package/dist/lib/skills/create-installer.d.ts +0 -9
- package/dist/lib/skills/create-installer.d.ts.map +0 -1
- package/dist/lib/skills/create-installer.js +0 -60
- package/dist/lib/skills/create-installer.js.map +0 -1
- package/dist/lib/skills/index.d.ts +0 -7
- package/dist/lib/skills/index.d.ts.map +0 -1
- package/dist/lib/skills/index.js +0 -54
- package/dist/lib/skills/index.js.map +0 -1
- package/dist/lib/skills/types.d.ts +0 -30
- package/dist/lib/skills/types.d.ts.map +0 -1
- package/dist/lib/skills/types.js +0 -2
- package/dist/lib/skills/types.js.map +0 -1
- package/dist/lib/skills/update-installed.d.ts +0 -9
- package/dist/lib/skills/update-installed.d.ts.map +0 -1
- package/dist/lib/skills/update-installed.js +0 -20
- package/dist/lib/skills/update-installed.js.map +0 -1
- package/dist/lib/spinner.d.ts +0 -24
- package/dist/lib/spinner.d.ts.map +0 -1
- package/dist/lib/spinner.js +0 -126
- package/dist/lib/spinner.js.map +0 -1
- package/dist/postinstall.d.ts +0 -2
- package/dist/postinstall.d.ts.map +0 -1
- package/dist/postinstall.js +0 -3
- package/dist/postinstall.js.map +0 -1
package/dist/commands/skill.js
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { getInstaller, listAgents } from '../lib/skills/index.js';
|
|
3
|
-
import { updateAllInstalledSkills } from '../lib/skills/update-installed.js';
|
|
4
|
-
async function list(options) {
|
|
5
|
-
const agents = await listAgents(options.local ?? false);
|
|
6
|
-
if (agents.length === 0) {
|
|
7
|
-
console.log('No agents available.');
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const location = options.local ? 'local' : 'global';
|
|
11
|
-
console.log(chalk.bold(`Available agents (${location}):`));
|
|
12
|
-
console.log('');
|
|
13
|
-
for (const agent of agents) {
|
|
14
|
-
const status = agent.installed ? chalk.green('✓ installed') : chalk.dim('not installed');
|
|
15
|
-
console.log(` ${chalk.bold(agent.name)} ${status}`);
|
|
16
|
-
console.log(` ${agent.description}`);
|
|
17
|
-
if (agent.path) {
|
|
18
|
-
console.log(` ${chalk.dim(agent.path)}`);
|
|
19
|
-
}
|
|
20
|
-
console.log('');
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async function install(agentName, options) {
|
|
24
|
-
const installer = getInstaller(agentName);
|
|
25
|
-
if (!installer) {
|
|
26
|
-
console.error(`Unknown agent: ${agentName}`);
|
|
27
|
-
console.error('Run `tw skill list` to see available agents.');
|
|
28
|
-
process.exit(1);
|
|
29
|
-
}
|
|
30
|
-
try {
|
|
31
|
-
await installer.install(options);
|
|
32
|
-
const location = options.local ? 'locally' : 'globally';
|
|
33
|
-
console.log(chalk.green('✓'), `Installed ${agentName} ${location}`);
|
|
34
|
-
console.log(chalk.dim(` ${installer.getInstallPath(options)}`));
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
console.error(err.message);
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async function uninstall(agentName, options) {
|
|
42
|
-
const installer = getInstaller(agentName);
|
|
43
|
-
if (!installer) {
|
|
44
|
-
console.error(`Unknown agent: ${agentName}`);
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
try {
|
|
48
|
-
await installer.uninstall(options);
|
|
49
|
-
const location = options.local ? 'locally' : 'globally';
|
|
50
|
-
console.log(chalk.green('✓'), `Uninstalled ${agentName} ${location}`);
|
|
51
|
-
}
|
|
52
|
-
catch (err) {
|
|
53
|
-
console.error(err.message);
|
|
54
|
-
process.exit(1);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
async function updateSkill(agentName, options) {
|
|
58
|
-
if (agentName === 'all') {
|
|
59
|
-
const result = await updateAllInstalledSkills(options);
|
|
60
|
-
const location = options.local ? 'locally' : 'globally';
|
|
61
|
-
for (const name of result.updated) {
|
|
62
|
-
console.log(chalk.green('✓'), `Updated ${name} ${location}`);
|
|
63
|
-
}
|
|
64
|
-
for (const name of result.skipped) {
|
|
65
|
-
console.log(chalk.dim(` Skipped ${name} (not installed)`));
|
|
66
|
-
}
|
|
67
|
-
for (const err of result.errors) {
|
|
68
|
-
console.error(chalk.red('✗'), err);
|
|
69
|
-
}
|
|
70
|
-
if (result.updated.length === 0 && result.errors.length === 0) {
|
|
71
|
-
console.log('No skills are currently installed.');
|
|
72
|
-
}
|
|
73
|
-
if (result.errors.length > 0) {
|
|
74
|
-
process.exit(1);
|
|
75
|
-
}
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const installer = getInstaller(agentName);
|
|
79
|
-
if (!installer) {
|
|
80
|
-
console.error(`Unknown agent: ${agentName}`);
|
|
81
|
-
console.error('Run `tw skill list` to see available agents.');
|
|
82
|
-
process.exit(1);
|
|
83
|
-
}
|
|
84
|
-
try {
|
|
85
|
-
await installer.update(options);
|
|
86
|
-
const location = options.local ? 'locally' : 'globally';
|
|
87
|
-
console.log(chalk.green('✓'), `Updated ${agentName} ${location}`);
|
|
88
|
-
console.log(chalk.dim(` ${installer.getInstallPath(options)}`));
|
|
89
|
-
}
|
|
90
|
-
catch (err) {
|
|
91
|
-
console.error(err.message);
|
|
92
|
-
process.exit(1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
export function registerSkillCommand(program) {
|
|
96
|
-
const skill = program.command('skill').description('Manage agent skill integrations');
|
|
97
|
-
skill
|
|
98
|
-
.command('list')
|
|
99
|
-
.description('List available agents and install status')
|
|
100
|
-
.option('--local', 'Check local installation (./.claude/skills/)')
|
|
101
|
-
.action(list);
|
|
102
|
-
skill
|
|
103
|
-
.command('install <agent>')
|
|
104
|
-
.description('Install an agent skill')
|
|
105
|
-
.option('--local', 'Install locally in project (./.claude/skills/)')
|
|
106
|
-
.option('--force', 'Overwrite existing installation')
|
|
107
|
-
.action(install);
|
|
108
|
-
skill
|
|
109
|
-
.command('update [agent]')
|
|
110
|
-
.description('Update an installed agent skill (defaults to all)')
|
|
111
|
-
.option('--local', 'Update local installation')
|
|
112
|
-
.action((agent, options) => updateSkill(agent ?? 'all', options));
|
|
113
|
-
skill
|
|
114
|
-
.command('uninstall <agent>')
|
|
115
|
-
.description('Uninstall an agent skill')
|
|
116
|
-
.option('--local', 'Uninstall from local project')
|
|
117
|
-
.action(uninstall);
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=skill.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { MutationOptions } from '../../lib/options.js';
|
|
2
|
-
type CreateOptions = MutationOptions & {
|
|
3
|
-
notify?: string;
|
|
4
|
-
};
|
|
5
|
-
export declare function createThread(channelRef: string, title: string, content: string | undefined, options: CreateOptions): Promise<void>;
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/thread/create.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAK3D,KAAK,aAAa,GAAG,eAAe,GAAG;IACnC,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAsB,YAAY,CAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,aAAa,GACvB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { getTwistClient } from '../../lib/api.js';
|
|
2
|
-
import { openEditor, readStdin } from '../../lib/input.js';
|
|
3
|
-
import { formatJson } from '../../lib/output.js';
|
|
4
|
-
import { assertChannelIsPublic } from '../../lib/public-channels.js';
|
|
5
|
-
import { parseUserIdRefs, resolveChannelId } from '../../lib/refs.js';
|
|
6
|
-
export async function createThread(channelRef, title, content, options) {
|
|
7
|
-
const channelId = resolveChannelId(channelRef);
|
|
8
|
-
let threadContent = await readStdin();
|
|
9
|
-
if (!threadContent && content) {
|
|
10
|
-
threadContent = content;
|
|
11
|
-
}
|
|
12
|
-
if (!threadContent) {
|
|
13
|
-
threadContent = await openEditor();
|
|
14
|
-
}
|
|
15
|
-
if (!threadContent || threadContent.trim() === '') {
|
|
16
|
-
console.error('No content provided.');
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
const recipients = options.notify ? parseUserIdRefs(options.notify) : undefined;
|
|
20
|
-
if (options.dryRun) {
|
|
21
|
-
console.log('Dry run: would create thread in channel', channelId);
|
|
22
|
-
console.log(`Title: ${title}`);
|
|
23
|
-
if (recipients) {
|
|
24
|
-
console.log(`Notify: ${recipients.join(', ')}`);
|
|
25
|
-
}
|
|
26
|
-
console.log('');
|
|
27
|
-
console.log(threadContent);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const client = await getTwistClient();
|
|
31
|
-
const channel = await client.channels.getChannel(channelId);
|
|
32
|
-
await assertChannelIsPublic(channelId, channel.workspaceId);
|
|
33
|
-
const thread = await client.threads.createThread({
|
|
34
|
-
channelId,
|
|
35
|
-
title,
|
|
36
|
-
content: threadContent,
|
|
37
|
-
recipients,
|
|
38
|
-
});
|
|
39
|
-
if (options.json) {
|
|
40
|
-
console.log(formatJson(thread, 'thread', options.full));
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
console.log(`Thread created: ${thread.url}`);
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=create.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/thread/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAMrE,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,UAAkB,EAClB,KAAa,EACb,OAA2B,EAC3B,OAAsB;IAEtB,MAAM,SAAS,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAE9C,IAAI,aAAa,GAAG,MAAM,SAAS,EAAE,CAAA;IACrC,IAAI,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;QAC5B,aAAa,GAAG,OAAO,CAAA;IAC3B,CAAC;IACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,aAAa,GAAG,MAAM,UAAU,EAAE,CAAA;IACtC,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE/E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,SAAS,CAAC,CAAA;QACjE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;QAC9B,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC1B,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IACrC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;QAC7C,SAAS;QACT,KAAK;QACL,OAAO,EAAE,aAAa;QACtB,UAAU;KACb,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;QACvD,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;AAChD,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare function printSeparator(label: string): void;
|
|
2
|
-
export declare function pluralize(count: number, singular: string): string;
|
|
3
|
-
export interface CommentLike {
|
|
4
|
-
id: number;
|
|
5
|
-
creator: number;
|
|
6
|
-
posted: Date;
|
|
7
|
-
content: string;
|
|
8
|
-
}
|
|
9
|
-
export declare function printComment(comment: CommentLike, userMap: Map<number, string>, raw: boolean): void;
|
|
10
|
-
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/commands/thread/helpers.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAalD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,IAAI,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,YAAY,CACxB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,GAAG,EAAE,OAAO,GACb,IAAI,CAMN"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { formatRelativeDate } from '../../lib/dates.js';
|
|
3
|
-
import { renderMarkdown } from '../../lib/markdown.js';
|
|
4
|
-
import { colors, isAccessible } from '../../lib/output.js';
|
|
5
|
-
export function printSeparator(label) {
|
|
6
|
-
const totalWidth = 60;
|
|
7
|
-
const labelWithPadding = ` ${label} `;
|
|
8
|
-
const remainingWidth = totalWidth - labelWithPadding.length;
|
|
9
|
-
const leftWidth = Math.floor(remainingWidth / 2);
|
|
10
|
-
const rightWidth = remainingWidth - leftWidth;
|
|
11
|
-
const dashChar = isAccessible() ? '-' : '─';
|
|
12
|
-
const line = chalk.dim(dashChar.repeat(leftWidth) + labelWithPadding + dashChar.repeat(rightWidth));
|
|
13
|
-
console.log('');
|
|
14
|
-
console.log(line);
|
|
15
|
-
console.log('');
|
|
16
|
-
}
|
|
17
|
-
export function pluralize(count, singular) {
|
|
18
|
-
return count === 1 ? singular : `${singular}s`;
|
|
19
|
-
}
|
|
20
|
-
export function printComment(comment, userMap, raw) {
|
|
21
|
-
const author = colors.author(userMap.get(comment.creator) || `user:${comment.creator}`);
|
|
22
|
-
const time = colors.timestamp(formatRelativeDate(comment.posted));
|
|
23
|
-
console.log(`${author} ${time} ${colors.timestamp(`id:${comment.id}`)}`);
|
|
24
|
-
console.log(raw ? comment.content : renderMarkdown(comment.content));
|
|
25
|
-
console.log('');
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/commands/thread/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAE1D,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,EAAE,CAAA;IACrB,MAAM,gBAAgB,GAAG,IAAI,KAAK,GAAG,CAAA;IACrC,MAAM,cAAc,GAAG,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAA;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAA;IAChD,MAAM,UAAU,GAAG,cAAc,GAAG,SAAS,CAAA;IAC7C,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAClB,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAC9E,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,QAAgB;IACrD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAA;AAClD,CAAC;AASD,MAAM,UAAU,YAAY,CACxB,OAAoB,EACpB,OAA4B,EAC5B,GAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACvF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,KAAK,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AACnB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.d.ts","sourceRoot":"","sources":["../../../src/commands/thread/mutate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAK3D,KAAK,WAAW,GAAG,eAAe,CAAA;AAElC,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBrF"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { getTwistClient } from '../../lib/api.js';
|
|
2
|
-
import { formatJson } from '../../lib/output.js';
|
|
3
|
-
import { assertChannelIsPublic } from '../../lib/public-channels.js';
|
|
4
|
-
import { resolveThreadId } from '../../lib/refs.js';
|
|
5
|
-
export async function markThreadDone(ref, options) {
|
|
6
|
-
const threadId = resolveThreadId(ref);
|
|
7
|
-
if (options.dryRun) {
|
|
8
|
-
console.log(`Dry run: would archive thread ${threadId}`);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
const client = await getTwistClient();
|
|
12
|
-
const thread = await client.threads.getThread(threadId);
|
|
13
|
-
await assertChannelIsPublic(thread.channelId, thread.workspaceId);
|
|
14
|
-
await client.inbox.archiveThread(threadId);
|
|
15
|
-
if (options.json) {
|
|
16
|
-
console.log(formatJson({ id: threadId, isArchived: true }));
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
console.log(`Thread ${threadId} archived.`);
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=mutate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutate.js","sourceRoot":"","sources":["../../../src/commands/thread/mutate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAInD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,GAAW,EAAE,OAAoB;IAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;IAErC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,iCAAiC,QAAQ,EAAE,CAAC,CAAA;QACxD,OAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACvD,MAAM,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;IACjE,MAAM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IAE1C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC3D,OAAM;IACV,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAA;AAC/C,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { MutationOptions } from '../../lib/options.js';
|
|
2
|
-
type ReplyOptions = MutationOptions & {
|
|
3
|
-
notify?: string;
|
|
4
|
-
close?: boolean;
|
|
5
|
-
reopen?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export declare function replyToThread(ref: string, content: string | undefined, options: ReplyOptions): Promise<void>;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=reply.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reply.d.ts","sourceRoot":"","sources":["../../../src/commands/thread/reply.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAK3D,KAAK,YAAY,GAAG,eAAe,GAAG;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAsB,aAAa,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,IAAI,CAAC,CAsEf"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { getTwistClient } from '../../lib/api.js';
|
|
2
|
-
import { openEditor, readStdin } from '../../lib/input.js';
|
|
3
|
-
import { formatJson } from '../../lib/output.js';
|
|
4
|
-
import { assertChannelIsPublic } from '../../lib/public-channels.js';
|
|
5
|
-
import { parseUserIdRefs, resolveThreadId } from '../../lib/refs.js';
|
|
6
|
-
export async function replyToThread(ref, content, options) {
|
|
7
|
-
const threadId = resolveThreadId(ref);
|
|
8
|
-
if (options.close && options.reopen) {
|
|
9
|
-
console.error('Cannot use --close and --reopen together.');
|
|
10
|
-
process.exit(1);
|
|
11
|
-
}
|
|
12
|
-
let replyContent = await readStdin();
|
|
13
|
-
if (!replyContent && content) {
|
|
14
|
-
replyContent = content;
|
|
15
|
-
}
|
|
16
|
-
if (!replyContent) {
|
|
17
|
-
replyContent = await openEditor();
|
|
18
|
-
}
|
|
19
|
-
if (!replyContent || replyContent.trim() === '') {
|
|
20
|
-
console.error('No content provided.');
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
const notifyValue = options.notify ?? 'EVERYONE_IN_THREAD';
|
|
24
|
-
let recipients;
|
|
25
|
-
if (notifyValue === 'EVERYONE' || notifyValue === 'EVERYONE_IN_THREAD') {
|
|
26
|
-
recipients = notifyValue;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
recipients = parseUserIdRefs(notifyValue);
|
|
30
|
-
}
|
|
31
|
-
const action = options.close ? 'close' : options.reopen ? 'reopen' : undefined;
|
|
32
|
-
const actionLabel = action === 'close' ? 'close' : action === 'reopen' ? 'reopen' : undefined;
|
|
33
|
-
if (options.dryRun) {
|
|
34
|
-
const actionSuffix = actionLabel ? ` and ${actionLabel} it` : '';
|
|
35
|
-
console.log(`Dry run: would post comment to thread ${threadId}${actionSuffix}`);
|
|
36
|
-
console.log(`Notify: ${Array.isArray(recipients) ? recipients.join(', ') : recipients}`);
|
|
37
|
-
console.log('');
|
|
38
|
-
console.log(replyContent);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const client = await getTwistClient();
|
|
42
|
-
const thread = await client.threads.getThread(threadId);
|
|
43
|
-
await assertChannelIsPublic(thread.channelId, thread.workspaceId);
|
|
44
|
-
const comment = action === 'close'
|
|
45
|
-
? await client.threads.closeThread({
|
|
46
|
-
id: threadId,
|
|
47
|
-
content: replyContent,
|
|
48
|
-
recipients,
|
|
49
|
-
})
|
|
50
|
-
: action === 'reopen'
|
|
51
|
-
? await client.threads.reopenThread({
|
|
52
|
-
id: threadId,
|
|
53
|
-
content: replyContent,
|
|
54
|
-
recipients,
|
|
55
|
-
})
|
|
56
|
-
: await client.comments.createComment({
|
|
57
|
-
threadId,
|
|
58
|
-
content: replyContent,
|
|
59
|
-
recipients,
|
|
60
|
-
});
|
|
61
|
-
if (options.json) {
|
|
62
|
-
console.log(formatJson(comment, 'comment', options.full));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const suffix = actionLabel ? ` (thread ${actionLabel === 'close' ? 'closed' : 'reopened'})` : '';
|
|
66
|
-
console.log(`Comment posted${suffix}: ${comment.url}`);
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=reply.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reply.js","sourceRoot":"","sources":["../../../src/commands/thread/reply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { PaginatedViewOptions } from '../../lib/options.js';
|
|
2
|
-
type ViewOptions = PaginatedViewOptions & {
|
|
3
|
-
comment?: string;
|
|
4
|
-
unread?: boolean;
|
|
5
|
-
context?: string;
|
|
6
|
-
};
|
|
7
|
-
export declare function viewThread(ref: string, options: ViewOptions): Promise<void>;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=view.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/commands/thread/view.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAMhE,KAAK,WAAW,GAAG,oBAAoB,GAAG;IACtC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA6DD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA4KjF"}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { assertBatchData, getTwistClient } from '../../lib/api.js';
|
|
3
|
-
import { formatRelativeDate } from '../../lib/dates.js';
|
|
4
|
-
import { renderMarkdown } from '../../lib/markdown.js';
|
|
5
|
-
import { colors, formatJson } from '../../lib/output.js';
|
|
6
|
-
import { assertChannelIsPublic } from '../../lib/public-channels.js';
|
|
7
|
-
import { extractId, parseRef, resolveThreadId } from '../../lib/refs.js';
|
|
8
|
-
import { pluralize, printComment, printSeparator } from './helpers.js';
|
|
9
|
-
async function viewSingleComment(client, threadId, commentId, options) {
|
|
10
|
-
const [threadResponse, commentResponse] = await client.batch(client.threads.getThread(threadId, { batch: true }), client.comments.getComment(commentId, { batch: true }));
|
|
11
|
-
const thread = assertBatchData(threadResponse, 'thread');
|
|
12
|
-
const comment = assertBatchData(commentResponse, `comment ${commentId}`);
|
|
13
|
-
const userIds = new Set([thread.creator, comment.creator]);
|
|
14
|
-
const userCalls = [...userIds].map((id) => client.workspaceUsers.getUserById({ workspaceId: thread.workspaceId, userId: id }, { batch: true }));
|
|
15
|
-
const [channelResponse, ...userResponses] = await client.batch(client.channels.getChannel(thread.channelId, { batch: true }), ...userCalls);
|
|
16
|
-
const channel = assertBatchData(channelResponse, 'channel');
|
|
17
|
-
const userMap = new Map(userResponses.filter((r) => r.data != null).map((r) => [r.data.id, r.data.name]));
|
|
18
|
-
if (options.json) {
|
|
19
|
-
const output = {
|
|
20
|
-
...comment,
|
|
21
|
-
creatorName: userMap.get(comment.creator),
|
|
22
|
-
channelName: channel.name,
|
|
23
|
-
threadTitle: thread.title,
|
|
24
|
-
};
|
|
25
|
-
console.log(formatJson(output, undefined, options.full));
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (options.ndjson) {
|
|
29
|
-
console.log(JSON.stringify({
|
|
30
|
-
type: 'comment',
|
|
31
|
-
...comment,
|
|
32
|
-
creatorName: userMap.get(comment.creator),
|
|
33
|
-
}));
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
console.log(chalk.bold(thread.title));
|
|
37
|
-
console.log(colors.channel(`[${channel.name}]`));
|
|
38
|
-
console.log('');
|
|
39
|
-
printComment(comment, userMap, options.raw ?? false);
|
|
40
|
-
}
|
|
41
|
-
export async function viewThread(ref, options) {
|
|
42
|
-
const parsed = parseRef(ref);
|
|
43
|
-
const threadId = resolveThreadId(ref);
|
|
44
|
-
const urlCommentId = parsed.type === 'url' ? parsed.parsed.commentId : undefined;
|
|
45
|
-
let commentId;
|
|
46
|
-
if (options.comment !== undefined) {
|
|
47
|
-
commentId = extractId(options.comment);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
commentId = urlCommentId;
|
|
51
|
-
}
|
|
52
|
-
const client = await getTwistClient();
|
|
53
|
-
if (commentId !== undefined) {
|
|
54
|
-
return viewSingleComment(client, threadId, commentId, options);
|
|
55
|
-
}
|
|
56
|
-
const limit = options.limit ? parseInt(options.limit, 10) : 50;
|
|
57
|
-
const [threadResponse, commentsResponse] = await client.batch(client.threads.getThread(threadId, { batch: true }), client.comments.getComments({
|
|
58
|
-
threadId,
|
|
59
|
-
from: options.since ? new Date(options.since) : undefined,
|
|
60
|
-
limit,
|
|
61
|
-
}, { batch: true }));
|
|
62
|
-
const thread = assertBatchData(threadResponse, 'thread');
|
|
63
|
-
const comments = assertBatchData(commentsResponse, 'comments');
|
|
64
|
-
await assertChannelIsPublic(thread.channelId, thread.workspaceId);
|
|
65
|
-
// Resolve unread state and filter comments before any output
|
|
66
|
-
let displayComments = comments;
|
|
67
|
-
let contextComments = [];
|
|
68
|
-
let lastReadObjIndex = 0;
|
|
69
|
-
let hasUnread = false;
|
|
70
|
-
if (options.unread) {
|
|
71
|
-
const unreadData = await client.threads.getUnread(thread.workspaceId);
|
|
72
|
-
const threadUnread = unreadData.find((u) => u.threadId === threadId);
|
|
73
|
-
if (threadUnread) {
|
|
74
|
-
lastReadObjIndex = threadUnread.objIndex;
|
|
75
|
-
const contextSize = options.context ? parseInt(options.context, 10) : 0;
|
|
76
|
-
displayComments = comments.filter((c) => (c.objIndex ?? 0) > lastReadObjIndex);
|
|
77
|
-
contextComments = comments
|
|
78
|
-
.filter((c) => (c.objIndex ?? 0) <= lastReadObjIndex)
|
|
79
|
-
.sort((a, b) => (b.objIndex ?? 0) - (a.objIndex ?? 0))
|
|
80
|
-
.slice(0, contextSize)
|
|
81
|
-
.reverse();
|
|
82
|
-
hasUnread = displayComments.length > 0;
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
displayComments = [];
|
|
86
|
-
hasUnread = false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
const userIds = new Set([
|
|
90
|
-
thread.creator,
|
|
91
|
-
...displayComments.map((c) => c.creator),
|
|
92
|
-
...contextComments.map((c) => c.creator),
|
|
93
|
-
]);
|
|
94
|
-
const userCalls = [...userIds].map((id) => client.workspaceUsers.getUserById({ workspaceId: thread.workspaceId, userId: id }, { batch: true }));
|
|
95
|
-
const [channelResponse, ...userResponses] = await client.batch(client.channels.getChannel(thread.channelId, { batch: true }), ...userCalls);
|
|
96
|
-
const channel = assertBatchData(channelResponse, 'channel');
|
|
97
|
-
const userMap = new Map(userResponses.filter((r) => r.data != null).map((r) => [r.data.id, r.data.name]));
|
|
98
|
-
if (options.json) {
|
|
99
|
-
const output = {
|
|
100
|
-
thread: {
|
|
101
|
-
...thread,
|
|
102
|
-
channelName: channel.name,
|
|
103
|
-
creatorName: userMap.get(thread.creator),
|
|
104
|
-
},
|
|
105
|
-
comments: displayComments.map((c) => ({
|
|
106
|
-
...c,
|
|
107
|
-
creatorName: userMap.get(c.creator),
|
|
108
|
-
})),
|
|
109
|
-
};
|
|
110
|
-
console.log(formatJson(output, undefined, options.full));
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (options.ndjson) {
|
|
114
|
-
const threadOutput = {
|
|
115
|
-
type: 'thread',
|
|
116
|
-
...thread,
|
|
117
|
-
channelName: channel.name,
|
|
118
|
-
creatorName: userMap.get(thread.creator),
|
|
119
|
-
};
|
|
120
|
-
console.log(JSON.stringify(threadOutput));
|
|
121
|
-
for (const c of displayComments) {
|
|
122
|
-
console.log(JSON.stringify({ type: 'comment', ...c, creatorName: userMap.get(c.creator) }));
|
|
123
|
-
}
|
|
124
|
-
return;
|
|
125
|
-
}
|
|
126
|
-
console.log(chalk.bold(thread.title));
|
|
127
|
-
console.log(colors.channel(`[${channel.name}]`));
|
|
128
|
-
console.log('');
|
|
129
|
-
if (options.unread) {
|
|
130
|
-
const creatorName = userMap.get(thread.creator) || `user:${thread.creator}`;
|
|
131
|
-
console.log(`${colors.author(creatorName)} ${colors.timestamp(formatRelativeDate(thread.posted))} ${chalk.dim('(original post)')}`);
|
|
132
|
-
console.log('');
|
|
133
|
-
console.log(options.raw ? thread.content : renderMarkdown(thread.content));
|
|
134
|
-
if (!hasUnread) {
|
|
135
|
-
console.log('');
|
|
136
|
-
console.log('No unread comments.');
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (contextComments.length > 0) {
|
|
140
|
-
const firstContextIndex = contextComments[0].objIndex ?? 0;
|
|
141
|
-
const skippedCount = firstContextIndex - 1;
|
|
142
|
-
if (skippedCount > 0) {
|
|
143
|
-
printSeparator(`${skippedCount} ${pluralize(skippedCount, 'comment')} skipped`);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
console.log('');
|
|
147
|
-
}
|
|
148
|
-
for (const comment of contextComments) {
|
|
149
|
-
printComment(comment, userMap, options.raw ?? false);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else if (lastReadObjIndex > 0) {
|
|
153
|
-
printSeparator(`${lastReadObjIndex} ${pluralize(lastReadObjIndex, 'comment')} skipped`);
|
|
154
|
-
}
|
|
155
|
-
printSeparator(`UNREAD (${displayComments.length} new)`);
|
|
156
|
-
for (const comment of displayComments) {
|
|
157
|
-
printComment(comment, userMap, options.raw ?? false);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
const creatorName = userMap.get(thread.creator) || `user:${thread.creator}`;
|
|
162
|
-
console.log(`${colors.author(creatorName)} ${colors.timestamp(formatRelativeDate(thread.posted))}`);
|
|
163
|
-
console.log('');
|
|
164
|
-
console.log(options.raw ? thread.content : renderMarkdown(thread.content));
|
|
165
|
-
console.log('');
|
|
166
|
-
if (comments.length > 0) {
|
|
167
|
-
console.log(chalk.dim(`--- ${comments.length} ${pluralize(comments.length, 'comment')} ---`));
|
|
168
|
-
console.log('');
|
|
169
|
-
for (const comment of comments) {
|
|
170
|
-
printComment(comment, userMap, options.raw ?? false);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
//# sourceMappingURL=view.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/commands/thread/view.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thread.d.ts","sourceRoot":"","sources":["../../src/commands/thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAA;AAO3C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D5D"}
|