@urugus/slack-cli 0.20.25 → 0.21.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/README.md +21 -7
- package/dist/commands/file.d.ts.map +1 -1
- package/dist/commands/file.js +8 -27
- package/dist/commands/file.js.map +1 -1
- package/dist/commands/history.d.ts.map +1 -1
- package/dist/commands/history.js +71 -6
- package/dist/commands/history.js.map +1 -1
- package/dist/commands/reminder.d.ts.map +1 -1
- package/dist/commands/reminder.js +4 -3
- package/dist/commands/reminder.js.map +1 -1
- package/dist/types/commands.d.ts +5 -1
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/utils/command-wrapper.d.ts.map +1 -1
- package/dist/utils/command-wrapper.js +3 -2
- package/dist/utils/command-wrapper.js.map +1 -1
- package/dist/utils/mention-utils.d.ts +1 -1
- package/dist/utils/mention-utils.js +2 -2
- package/dist/utils/mention-utils.js.map +1 -1
- package/dist/utils/profile-config.d.ts +1 -0
- package/dist/utils/profile-config.d.ts.map +1 -1
- package/dist/utils/profile-config.js +13 -0
- package/dist/utils/profile-config.js.map +1 -1
- package/dist/utils/slack-client-service.d.ts +3 -1
- package/dist/utils/slack-client-service.d.ts.map +1 -1
- package/dist/utils/slack-client-service.js +6 -0
- package/dist/utils/slack-client-service.js.map +1 -1
- package/dist/utils/slack-message-url.d.ts +8 -0
- package/dist/utils/slack-message-url.d.ts.map +1 -0
- package/dist/utils/slack-message-url.js +37 -0
- package/dist/utils/slack-message-url.js.map +1 -0
- package/dist/utils/slack-operations/file-operations.d.ts +3 -1
- package/dist/utils/slack-operations/file-operations.d.ts.map +1 -1
- package/dist/utils/slack-operations/file-operations.js +23 -35
- package/dist/utils/slack-operations/file-operations.js.map +1 -1
- package/dist/utils/slack-operations/message-history-operations.d.ts +3 -1
- package/dist/utils/slack-operations/message-history-operations.d.ts.map +1 -1
- package/dist/utils/slack-operations/message-history-operations.js +38 -0
- package/dist/utils/slack-operations/message-history-operations.js.map +1 -1
- package/dist/utils/slack-operations/message-operations.d.ts +3 -1
- package/dist/utils/slack-operations/message-operations.d.ts.map +1 -1
- package/dist/utils/slack-operations/message-operations.js +6 -0
- package/dist/utils/slack-operations/message-operations.js.map +1 -1
- package/dist/utils/slack-operations/message-user-resolver.d.ts +2 -0
- package/dist/utils/slack-operations/message-user-resolver.d.ts.map +1 -1
- package/dist/utils/slack-operations/message-user-resolver.js +20 -2
- package/dist/utils/slack-operations/message-user-resolver.js.map +1 -1
- package/dist/utils/slack-patterns.d.ts +1 -0
- package/dist/utils/slack-patterns.d.ts.map +1 -1
- package/dist/utils/slack-patterns.js +3 -1
- package/dist/utils/slack-patterns.js.map +1 -1
- package/dist/utils/slack-table-blocks.d.ts +11 -0
- package/dist/utils/slack-table-blocks.d.ts.map +1 -0
- package/dist/utils/slack-table-blocks.js +147 -0
- package/dist/utils/slack-table-blocks.js.map +1 -0
- package/dist/utils/token-crypto-service.d.ts +1 -1
- package/dist/utils/token-crypto-service.d.ts.map +1 -1
- package/dist/utils/token-crypto-service.js.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ Token storage security:
|
|
|
27
27
|
- A local master key is created at `~/.slack-cli-secrets/master.key` with owner-only permissions.
|
|
28
28
|
- Existing `~/.slack-cli/master.key` files are migrated automatically on first use.
|
|
29
29
|
- For ephemeral environments, you can supply `SLACK_CLI_MASTER_KEY` to override the local key.
|
|
30
|
+
- Local encryption is defense in depth for token-at-rest storage. It does not protect tokens from compromise of the same local user account, because that user can read the config and key material needed to decrypt them.
|
|
31
|
+
- If a legacy encrypted token is migrated, the CLI will warn you to rotate the Slack token because the old stored value may have been copied, backed up, or exposed before migration.
|
|
30
32
|
|
|
31
33
|
## Usage
|
|
32
34
|
|
|
@@ -151,6 +153,15 @@ slack-cli history -c general --since "2024-01-01 00:00:00"
|
|
|
151
153
|
# Get complete conversation of a thread
|
|
152
154
|
slack-cli history -c general --thread 1719207629.000100
|
|
153
155
|
|
|
156
|
+
# Get a single message from a Slack permalink
|
|
157
|
+
slack-cli history --url "https://example.slack.com/archives/C123/p1780638511660849"
|
|
158
|
+
|
|
159
|
+
# Extract table blocks from a Slack permalink
|
|
160
|
+
slack-cli history --url "https://example.slack.com/archives/C123/p1780638511660849" --tables
|
|
161
|
+
|
|
162
|
+
# Extract table blocks as JSON
|
|
163
|
+
slack-cli history --url "https://example.slack.com/archives/C123/p1780638511660849" --tables --table-format json
|
|
164
|
+
|
|
154
165
|
# Output in different formats
|
|
155
166
|
slack-cli history -c general --format json
|
|
156
167
|
slack-cli history -c general --format simple
|
|
@@ -404,13 +415,16 @@ printf '%s\n' "$NEW_TOKEN" | slack-cli config set --token-stdin
|
|
|
404
415
|
|
|
405
416
|
### history command
|
|
406
417
|
|
|
407
|
-
| Option
|
|
408
|
-
|
|
|
409
|
-
| --
|
|
410
|
-
| --
|
|
411
|
-
| --
|
|
412
|
-
| --
|
|
413
|
-
| --
|
|
418
|
+
| Option | Short | Description |
|
|
419
|
+
| -------------- | ----- | ------------------------------------------------------ |
|
|
420
|
+
| --url | | Slack message permalink to retrieve |
|
|
421
|
+
| --channel | -c | Target channel name or ID |
|
|
422
|
+
| --number | -n | Number of messages to retrieve (default: 10) |
|
|
423
|
+
| --since | | Get messages since specific date (YYYY-MM-DD HH:MM:SS) |
|
|
424
|
+
| --thread | -t | Thread timestamp to retrieve complete thread messages |
|
|
425
|
+
| --format | | Output format: table, simple, json (default: table) |
|
|
426
|
+
| --tables | | Extract table blocks from retrieved messages |
|
|
427
|
+
| --table-format | | Table output format: markdown, json, tsv |
|
|
414
428
|
|
|
415
429
|
### unread command
|
|
416
430
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,gBAAgB,IAAI,OAAO,CA2C1C"}
|
package/dist/commands/file.js
CHANGED
|
@@ -10,6 +10,8 @@ const client_factory_1 = require("../utils/client-factory");
|
|
|
10
10
|
const command_wrapper_1 = require("../utils/command-wrapper");
|
|
11
11
|
const errors_1 = require("../utils/errors");
|
|
12
12
|
const option_parsers_1 = require("../utils/option-parsers");
|
|
13
|
+
const slack_message_url_1 = require("../utils/slack-message-url");
|
|
14
|
+
const terminal_sanitizer_1 = require("../utils/terminal-sanitizer");
|
|
13
15
|
function setupFileCommand() {
|
|
14
16
|
const fileCommand = new commander_1.Command('file').description('Manage Slack files');
|
|
15
17
|
fileCommand
|
|
@@ -23,6 +25,7 @@ function setupFileCommand() {
|
|
|
23
25
|
.option('--index <index>', '1-based file index when the message has multiple files', '1')
|
|
24
26
|
.option('-o, --output <path>', 'Output file path')
|
|
25
27
|
.option('-d, --dir <directory>', 'Output directory', '.')
|
|
28
|
+
.option('--force', 'Overwrite the output file if it already exists', false)
|
|
26
29
|
.option('--profile <profile>', 'Use specific workspace profile')
|
|
27
30
|
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
28
31
|
const source = resolveDownloadSource(options);
|
|
@@ -37,9 +40,11 @@ function setupFileCommand() {
|
|
|
37
40
|
fileIndex,
|
|
38
41
|
outputPath: options.output,
|
|
39
42
|
outputDir: options.output ? undefined : options.dir,
|
|
43
|
+
force: options.force ?? false,
|
|
40
44
|
});
|
|
41
|
-
const name = result.file.name || result.file.title || result.file.id || 'Slack file';
|
|
42
|
-
|
|
45
|
+
const name = (0, terminal_sanitizer_1.sanitizeTerminalText)(result.file.name || result.file.title || result.file.id || 'Slack file');
|
|
46
|
+
const outputPath = (0, terminal_sanitizer_1.sanitizeTerminalText)(result.path);
|
|
47
|
+
console.log(chalk_1.default.green(`✓ Downloaded ${name} to ${outputPath} (${result.bytes} bytes)`));
|
|
43
48
|
}));
|
|
44
49
|
return fileCommand;
|
|
45
50
|
}
|
|
@@ -56,7 +61,7 @@ function resolveDownloadSource(options) {
|
|
|
56
61
|
return { fileId: options.id };
|
|
57
62
|
}
|
|
58
63
|
if (options.url) {
|
|
59
|
-
const parsed = parseSlackMessageUrl(options.url);
|
|
64
|
+
const parsed = (0, slack_message_url_1.parseSlackMessageUrl)(options.url);
|
|
60
65
|
return {
|
|
61
66
|
channel: parsed.channel,
|
|
62
67
|
messageTs: parsed.messageTs,
|
|
@@ -72,30 +77,6 @@ function resolveDownloadSource(options) {
|
|
|
72
77
|
threadTs: options.thread,
|
|
73
78
|
};
|
|
74
79
|
}
|
|
75
|
-
function parseSlackMessageUrl(value) {
|
|
76
|
-
let url;
|
|
77
|
-
try {
|
|
78
|
-
url = new URL(value);
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
throw new errors_1.FileError(`Invalid Slack message URL: ${value}`);
|
|
82
|
-
}
|
|
83
|
-
const match = url.pathname.match(/\/archives\/([^/]+)\/p(\d+)/);
|
|
84
|
-
if (!match) {
|
|
85
|
-
throw new errors_1.FileError(`Invalid Slack message URL: ${value}`);
|
|
86
|
-
}
|
|
87
|
-
return {
|
|
88
|
-
channel: match[1],
|
|
89
|
-
messageTs: permalinkTimestampToSlackTs(match[2]),
|
|
90
|
-
threadTs: url.searchParams.get('thread_ts') || undefined,
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
function permalinkTimestampToSlackTs(value) {
|
|
94
|
-
if (value.length <= 10) {
|
|
95
|
-
throw new errors_1.FileError(`Invalid Slack permalink timestamp: ${value}`);
|
|
96
|
-
}
|
|
97
|
-
return `${value.slice(0, 10)}.${value.slice(10)}`;
|
|
98
|
-
}
|
|
99
80
|
function parseFileIndex(value) {
|
|
100
81
|
const rawValue = (value || '1').trim();
|
|
101
82
|
if (!/^\d+$/.test(rawValue)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/commands/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,mBAAmB,IAAI,OAAO,CA4G7C"}
|
package/dist/commands/history.js
CHANGED
|
@@ -6,23 +6,31 @@ const command_support_1 = require("../utils/command-support");
|
|
|
6
6
|
const command_wrapper_1 = require("../utils/command-wrapper");
|
|
7
7
|
const constants_1 = require("../utils/constants");
|
|
8
8
|
const option_parsers_1 = require("../utils/option-parsers");
|
|
9
|
+
const slack_message_url_1 = require("../utils/slack-message-url");
|
|
10
|
+
const slack_table_blocks_1 = require("../utils/slack-table-blocks");
|
|
9
11
|
const validators_1 = require("../utils/validators");
|
|
10
12
|
const history_display_1 = require("./history-display");
|
|
11
13
|
const history_validators_1 = require("./history-validators");
|
|
12
14
|
function setupHistoryCommand() {
|
|
13
15
|
const historyCommand = new commander_1.Command('history')
|
|
14
16
|
.description('Get message history from a Slack channel')
|
|
15
|
-
.
|
|
17
|
+
.option('--url <url>', 'Slack message permalink to retrieve')
|
|
18
|
+
.option('-c, --channel <channel>', 'Target channel name or ID')
|
|
16
19
|
.option('-n, --number <number>', 'Number of messages to retrieve')
|
|
17
20
|
.option('--since <date>', 'Get messages since specific date (YYYY-MM-DD HH:MM:SS)')
|
|
18
21
|
.option('-t, --thread <thread>', 'Thread timestamp to retrieve complete thread conversation')
|
|
19
22
|
.option('--with-link', 'Include permalink URL for each message', false)
|
|
20
23
|
.option('--format <format>', 'Output format: table, simple, json', 'table')
|
|
24
|
+
.option('--tables', 'Extract table blocks from retrieved messages', false)
|
|
25
|
+
.option('--table-format <format>', 'Table output format: markdown, json, tsv', 'markdown')
|
|
21
26
|
.option('--profile <profile>', 'Use specific workspace profile')
|
|
22
27
|
.hook('preAction', (0, validators_1.createValidationHook)([
|
|
28
|
+
validateHistorySource,
|
|
29
|
+
validateSlackMessageUrl,
|
|
30
|
+
validateTableFormat,
|
|
23
31
|
(options) => (options.thread ? null : validators_1.optionValidators.messageCount(options)),
|
|
24
32
|
(options) => (options.thread ? null : validators_1.optionValidators.sinceDate(options)),
|
|
25
|
-
validators_1.optionValidators.threadTimestamp,
|
|
33
|
+
(options) => (options.url ? null : validators_1.optionValidators.threadTimestamp(options)),
|
|
26
34
|
validators_1.optionValidators.format,
|
|
27
35
|
]))
|
|
28
36
|
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
@@ -30,7 +38,23 @@ function setupHistoryCommand() {
|
|
|
30
38
|
const limit = (0, option_parsers_1.parseCount)(options.number, constants_1.API_LIMITS.DEFAULT_MESSAGE_COUNT, constants_1.API_LIMITS.MIN_MESSAGE_COUNT, constants_1.API_LIMITS.MAX_MESSAGE_COUNT);
|
|
31
39
|
let messages;
|
|
32
40
|
let users;
|
|
33
|
-
|
|
41
|
+
let channelName;
|
|
42
|
+
let preserveOrder = false;
|
|
43
|
+
if (options.url) {
|
|
44
|
+
const source = (0, slack_message_url_1.parseSlackMessageUrl)(options.url);
|
|
45
|
+
if (options.tables) {
|
|
46
|
+
messages = [
|
|
47
|
+
await client.getMessage(source.channel, source.messageTs, source.threadTs),
|
|
48
|
+
];
|
|
49
|
+
users = new Map();
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
({ messages, users } = await client.getMessageWithUsers(source.channel, source.messageTs, source.threadTs));
|
|
53
|
+
}
|
|
54
|
+
channelName = source.channel;
|
|
55
|
+
preserveOrder = true;
|
|
56
|
+
}
|
|
57
|
+
else if (options.thread) {
|
|
34
58
|
if (options.number !== undefined) {
|
|
35
59
|
console.log('Warning: --number is ignored when --thread is specified.');
|
|
36
60
|
}
|
|
@@ -38,6 +62,8 @@ function setupHistoryCommand() {
|
|
|
38
62
|
console.log('Warning: --since is ignored when --thread is specified.');
|
|
39
63
|
}
|
|
40
64
|
({ messages, users } = await client.getThreadHistory(options.channel, options.thread));
|
|
65
|
+
channelName = options.channel;
|
|
66
|
+
preserveOrder = true;
|
|
41
67
|
}
|
|
42
68
|
else {
|
|
43
69
|
const historyOptions = {
|
|
@@ -48,23 +74,62 @@ function setupHistoryCommand() {
|
|
|
48
74
|
historyOptions.oldest = oldest;
|
|
49
75
|
}
|
|
50
76
|
({ messages, users } = await client.getHistory(options.channel, historyOptions));
|
|
77
|
+
channelName = options.channel;
|
|
78
|
+
}
|
|
79
|
+
if (options.tables) {
|
|
80
|
+
const orderedMessages = preserveOrder ? messages : [...messages].reverse();
|
|
81
|
+
(0, slack_table_blocks_1.displaySlackTables)(orderedMessages, (0, slack_table_blocks_1.parseTableOutputFormat)(options.tableFormat));
|
|
82
|
+
return;
|
|
51
83
|
}
|
|
52
84
|
let permalinks;
|
|
53
85
|
if (options.withLink && messages.length > 0) {
|
|
54
86
|
try {
|
|
55
|
-
permalinks = await client.getPermalinks(
|
|
87
|
+
permalinks = await client.getPermalinks(channelName, messages.map((m) => m.ts));
|
|
56
88
|
}
|
|
57
89
|
catch {
|
|
58
90
|
// Degrade gracefully: show history without links
|
|
59
91
|
}
|
|
60
92
|
}
|
|
61
93
|
const format = (0, option_parsers_1.parseFormat)(options.format);
|
|
62
|
-
(0, history_display_1.displayHistoryResults)(messages, users,
|
|
63
|
-
preserveOrder
|
|
94
|
+
(0, history_display_1.displayHistoryResults)(messages, users, channelName, format, {
|
|
95
|
+
preserveOrder,
|
|
64
96
|
permalinks,
|
|
65
97
|
});
|
|
66
98
|
});
|
|
67
99
|
}));
|
|
68
100
|
return historyCommand;
|
|
69
101
|
}
|
|
102
|
+
function validateHistorySource(options) {
|
|
103
|
+
if (options.url && options.channel) {
|
|
104
|
+
return 'Cannot use --url with --channel';
|
|
105
|
+
}
|
|
106
|
+
if (options.url && (options.number || options.since || options.thread)) {
|
|
107
|
+
return 'Cannot use --url with --number, --since, or --thread';
|
|
108
|
+
}
|
|
109
|
+
if (!options.url && !options.channel) {
|
|
110
|
+
return '--channel is required unless --url is specified';
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
function validateSlackMessageUrl(options) {
|
|
115
|
+
if (!options.url) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
(0, slack_message_url_1.parseSlackMessageUrl)(options.url);
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return error instanceof Error ? error.message : 'Invalid Slack message URL';
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function validateTableFormat(options) {
|
|
127
|
+
try {
|
|
128
|
+
(0, slack_table_blocks_1.parseTableOutputFormat)(options.tableFormat);
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
return error instanceof Error ? error.message : 'Invalid table format';
|
|
133
|
+
}
|
|
134
|
+
}
|
|
70
135
|
//# sourceMappingURL=history.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reminder.d.ts","sourceRoot":"","sources":["../../src/commands/reminder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"reminder.d.ts","sourceRoot":"","sources":["../../src/commands/reminder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,wBAAgB,oBAAoB,IAAI,OAAO,CAsF9C"}
|
|
@@ -11,6 +11,7 @@ const command_wrapper_1 = require("../utils/command-wrapper");
|
|
|
11
11
|
const reminder_formatters_1 = require("../utils/formatters/reminder-formatters");
|
|
12
12
|
const option_parsers_1 = require("../utils/option-parsers");
|
|
13
13
|
const schedule_utils_1 = require("../utils/schedule-utils");
|
|
14
|
+
const terminal_sanitizer_1 = require("../utils/terminal-sanitizer");
|
|
14
15
|
const validators_1 = require("../utils/validators");
|
|
15
16
|
function setupReminderCommand() {
|
|
16
17
|
const reminderCommand = new commander_1.Command('reminder').description('Create, list, delete, or complete reminders');
|
|
@@ -30,7 +31,7 @@ function setupReminderCommand() {
|
|
|
30
31
|
}
|
|
31
32
|
const reminder = await client.addReminder(options.text, time);
|
|
32
33
|
const timeStr = new Date(reminder.time * 1000).toISOString();
|
|
33
|
-
console.log(chalk_1.default.green(`✓ Reminder created: "${reminder.text}" at ${timeStr}`));
|
|
34
|
+
console.log(chalk_1.default.green(`✓ Reminder created: "${(0, terminal_sanitizer_1.sanitizeTerminalText)(reminder.text)}" at ${timeStr}`));
|
|
34
35
|
}));
|
|
35
36
|
const listCommand = new commander_1.Command('list')
|
|
36
37
|
.description('List all reminders')
|
|
@@ -57,7 +58,7 @@ function setupReminderCommand() {
|
|
|
57
58
|
const profile = (0, option_parsers_1.parseProfile)(options.profile);
|
|
58
59
|
const client = await (0, client_factory_1.createSlackClient)(profile);
|
|
59
60
|
await client.deleteReminder(options.id);
|
|
60
|
-
console.log(chalk_1.default.green(`✓ Reminder deleted: ${options.id}`));
|
|
61
|
+
console.log(chalk_1.default.green(`✓ Reminder deleted: ${(0, terminal_sanitizer_1.sanitizeTerminalText)(options.id)}`));
|
|
61
62
|
}));
|
|
62
63
|
const completeCommand = new commander_1.Command('complete')
|
|
63
64
|
.description('Mark a reminder as complete')
|
|
@@ -67,7 +68,7 @@ function setupReminderCommand() {
|
|
|
67
68
|
const profile = (0, option_parsers_1.parseProfile)(options.profile);
|
|
68
69
|
const client = await (0, client_factory_1.createSlackClient)(profile);
|
|
69
70
|
await client.completeReminder(options.id);
|
|
70
|
-
console.log(chalk_1.default.green(`✓ Reminder completed: ${options.id}`));
|
|
71
|
+
console.log(chalk_1.default.green(`✓ Reminder completed: ${(0, terminal_sanitizer_1.sanitizeTerminalText)(options.id)}`));
|
|
71
72
|
}));
|
|
72
73
|
reminderCommand.addCommand(addCommand);
|
|
73
74
|
reminderCommand.addCommand(listCommand);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../src/commands/reminder.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../src/commands/reminder.ts"],"names":[],"mappings":"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"}
|
package/dist/types/commands.d.ts
CHANGED
|
@@ -41,12 +41,15 @@ export interface ChannelsOptions {
|
|
|
41
41
|
profile?: string;
|
|
42
42
|
}
|
|
43
43
|
export interface HistoryOptions {
|
|
44
|
-
channel
|
|
44
|
+
channel?: string;
|
|
45
|
+
url?: string;
|
|
45
46
|
number?: string;
|
|
46
47
|
since?: string;
|
|
47
48
|
thread?: string;
|
|
48
49
|
withLink?: boolean;
|
|
49
50
|
format?: 'table' | 'simple' | 'json';
|
|
51
|
+
tables?: boolean;
|
|
52
|
+
tableFormat?: 'markdown' | 'json' | 'tsv';
|
|
50
53
|
profile?: string;
|
|
51
54
|
}
|
|
52
55
|
export interface UnreadOptions {
|
|
@@ -77,6 +80,7 @@ export interface FileDownloadOptions {
|
|
|
77
80
|
index?: string;
|
|
78
81
|
output?: string;
|
|
79
82
|
dir?: string;
|
|
83
|
+
force?: boolean;
|
|
80
84
|
profile?: string;
|
|
81
85
|
}
|
|
82
86
|
export interface EditOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,KAAK,CAAC;IACnD,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC7B,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE9E,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAcnF;AAED,wBAAsB,cAAc,CAClC,aAAa,EAAE;IAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAC3D,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
|
|
@@ -7,15 +7,16 @@ exports.wrapCommand = wrapCommand;
|
|
|
7
7
|
exports.getProfileName = getProfileName;
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const error_utils_1 = require("./error-utils");
|
|
10
|
+
const terminal_sanitizer_1 = require("./terminal-sanitizer");
|
|
10
11
|
function wrapCommand(action) {
|
|
11
12
|
return async (options) => {
|
|
12
13
|
try {
|
|
13
14
|
await action(options);
|
|
14
15
|
}
|
|
15
16
|
catch (error) {
|
|
16
|
-
console.error(chalk_1.default.red('✗ Error:'), (0, error_utils_1.extractErrorMessage)(error));
|
|
17
|
+
console.error(chalk_1.default.red('✗ Error:'), (0, terminal_sanitizer_1.sanitizeTerminalText)((0, error_utils_1.extractErrorMessage)(error)));
|
|
17
18
|
if (process.env.NODE_ENV === 'development' && error instanceof Error) {
|
|
18
|
-
console.error(chalk_1.default.gray(error.stack));
|
|
19
|
+
console.error(chalk_1.default.gray((0, terminal_sanitizer_1.sanitizeTerminalText)(error.stack || '')));
|
|
19
20
|
}
|
|
20
21
|
process.exit(1);
|
|
21
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-wrapper.js","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"command-wrapper.js","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":";;;;;AAMA,kCAcC;AAED,wCAKC;AA3BD,kDAA0B;AAC1B,+CAAoD;AACpD,6DAA4D;AAI5D,SAAgB,WAAW,CAAc,MAAwB;IAC/D,OAAO,KAAK,EAAE,OAAU,EAAE,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAA,yCAAoB,EAAC,IAAA,iCAAmB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEvF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBACrE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,IAAA,yCAAoB,EAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAClC,aAA2D,EAC3D,eAAwB;IAExB,OAAO,eAAe,IAAI,CAAC,MAAM,aAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Extracts all user IDs from mentions in a text
|
|
3
3
|
* @param text - The text containing Slack mentions
|
|
4
|
-
* @returns Array of
|
|
4
|
+
* @returns Array of user IDs found in mentions, preserving duplicate mentions
|
|
5
5
|
*/
|
|
6
6
|
export declare function extractUserIdsFromMentions(text: string): string[];
|
|
7
7
|
/**
|
|
@@ -6,11 +6,11 @@ const slack_patterns_1 = require("./slack-patterns");
|
|
|
6
6
|
/**
|
|
7
7
|
* Extracts all user IDs from mentions in a text
|
|
8
8
|
* @param text - The text containing Slack mentions
|
|
9
|
-
* @returns Array of
|
|
9
|
+
* @returns Array of user IDs found in mentions, preserving duplicate mentions
|
|
10
10
|
*/
|
|
11
11
|
function extractUserIdsFromMentions(text) {
|
|
12
12
|
const userIds = [];
|
|
13
|
-
const matches = text.matchAll(slack_patterns_1.
|
|
13
|
+
const matches = text.matchAll(slack_patterns_1.VALID_USER_MENTION_PATTERN);
|
|
14
14
|
for (const match of matches) {
|
|
15
15
|
const userId = match[1];
|
|
16
16
|
if (userId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention-utils.js","sourceRoot":"","sources":["../../src/utils/mention-utils.ts"],"names":[],"mappings":";;AAOA,gEAYC;AAQD,8CAmBC;AA9CD,
|
|
1
|
+
{"version":3,"file":"mention-utils.js","sourceRoot":"","sources":["../../src/utils/mention-utils.ts"],"names":[],"mappings":";;AAOA,gEAYC;AAQD,8CAmBC;AA9CD,qDAA8D;AAE9D;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,IAAY;IACrD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,2CAA0B,CAAC,CAAC;IAE1D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,QAAiD;IACjF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,qBAAqB;QACrB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,YAAY,GAAG,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9D,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-config.d.ts","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"profile-config.d.ts","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAOnF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAqB;gBAE9B,OAAO,GAAE,aAAkB;IAMjC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxD,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA+BnD,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAWlC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW1C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BlD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIhC,OAAO,CAAC,YAAY;YAQN,cAAc;IAsB5B,OAAO,CAAC,cAAc;YAKR,gBAAgB;IA0B9B,OAAO,CAAC,iCAAiC;YAO3B,eAAe;CAoB9B"}
|
|
@@ -39,6 +39,7 @@ const os = __importStar(require("os"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const constants_1 = require("./constants");
|
|
41
41
|
const errors_1 = require("./errors");
|
|
42
|
+
const terminal_sanitizer_1 = require("./terminal-sanitizer");
|
|
42
43
|
const token_crypto_service_1 = require("./token-crypto-service");
|
|
43
44
|
const token_utils_1 = require("./token-utils");
|
|
44
45
|
class ProfileConfigManager {
|
|
@@ -68,6 +69,7 @@ class ProfileConfigManager {
|
|
|
68
69
|
if (!config) {
|
|
69
70
|
return null;
|
|
70
71
|
}
|
|
72
|
+
const wasLegacyEncrypted = this.cryptoService.isLegacyEncrypted(config.token);
|
|
71
73
|
const decryptedToken = this.decryptToken(config.token);
|
|
72
74
|
// Re-encrypt legacy or plaintext tokens and persist to disk.
|
|
73
75
|
if (!this.cryptoService.isCurrentFormat(config.token)) {
|
|
@@ -76,6 +78,9 @@ class ProfileConfigManager {
|
|
|
76
78
|
token: this.cryptoService.encrypt(decryptedToken),
|
|
77
79
|
};
|
|
78
80
|
await this.saveConfigStore(store);
|
|
81
|
+
if (wasLegacyEncrypted) {
|
|
82
|
+
this.warnLegacyEncryptedTokenMigration(profileName);
|
|
83
|
+
}
|
|
79
84
|
}
|
|
80
85
|
return {
|
|
81
86
|
...config,
|
|
@@ -164,6 +169,7 @@ class ProfileConfigManager {
|
|
|
164
169
|
}
|
|
165
170
|
async migrateOldConfig(oldData) {
|
|
166
171
|
const data = oldData;
|
|
172
|
+
const wasLegacyEncrypted = this.cryptoService.isLegacyEncrypted(data.token);
|
|
167
173
|
const plainToken = this.cryptoService.isEncrypted(data.token)
|
|
168
174
|
? this.cryptoService.decrypt(data.token)
|
|
169
175
|
: data.token;
|
|
@@ -178,8 +184,15 @@ class ProfileConfigManager {
|
|
|
178
184
|
};
|
|
179
185
|
// Save migrated config
|
|
180
186
|
await this.saveConfigStore(newStore);
|
|
187
|
+
if (wasLegacyEncrypted) {
|
|
188
|
+
this.warnLegacyEncryptedTokenMigration(constants_1.DEFAULT_PROFILE_NAME);
|
|
189
|
+
}
|
|
181
190
|
return newStore;
|
|
182
191
|
}
|
|
192
|
+
warnLegacyEncryptedTokenMigration(profileName) {
|
|
193
|
+
const safeProfileName = (0, terminal_sanitizer_1.sanitizeTerminalText)(profileName);
|
|
194
|
+
console.warn(`Warning: Legacy Slack token encryption was migrated to the current v2 format for profile "${safeProfileName}". Please rotate your Slack token because the legacy encrypted value may have been exposed before migration.`);
|
|
195
|
+
}
|
|
183
196
|
async saveConfigStore(store) {
|
|
184
197
|
const configDir = path.dirname(this.configPath);
|
|
185
198
|
await fs.mkdir(configDir, { recursive: true, mode: constants_1.FILE_PERMISSIONS.CONFIG_DIR });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-config.js","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,uCAAyB;AACzB,2CAA6B;AAE7B,2CAAqF;AACrF,qCAA8C;AAC9C,iEAA4D;AAC5D,+CAA0C;AAE1C,MAAa,oBAAoB;IAI/B,YAAY,UAAyB,EAAE;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7E,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAkB,EAAE,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAgB;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,CAAC,cAAc,IAAI,gCAAoB,CAAC;QAC5E,MAAM,MAAM,GAAW;YACrB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;YACxC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QAErC,6EAA6E;QAC7E,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,WAAW,KAAK,gCAAoB,EAAE,CAAC;YAClE,KAAK,CAAC,cAAc,GAAG,WAAW,CAAC;QACrC,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,CAAC,cAAc,IAAI,gCAAoB,CAAC;QAE5E,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvD,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG;gBAC5B,GAAG,MAAM;gBACT,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,cAAc,CAAC;aAClD,CAAC;YACF,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"profile-config.js","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatPostEphemeralResponse, ChatPostMessageResponse, ChatScheduleMessageResponse, ChatUpdateResponse } from '@slack/web-api';
|
|
2
|
-
import type { CanvasFile, CanvasSection, Channel, ChannelDetail, ChannelMembersOptions, ChannelMembersResult, ChannelUnreadResult, HistoryOptions, HistoryResult, ListChannelsOptions, PinnedItem, Reminder, ScheduledMessage, SearchMessagesOptions, SearchResult, SlackUser, StarListResult, UserPresence } from '../types/slack';
|
|
2
|
+
import type { CanvasFile, CanvasSection, Channel, ChannelDetail, ChannelMembersOptions, ChannelMembersResult, ChannelUnreadResult, HistoryOptions, HistoryResult, ListChannelsOptions, Message, PinnedItem, Reminder, ScheduledMessage, SearchMessagesOptions, SearchResult, SlackUser, StarListResult, UserPresence } from '../types/slack';
|
|
3
3
|
import type { DownloadFileOptions, DownloadFileResult, UploadFileOptions } from './slack-operations/file-operations';
|
|
4
4
|
export declare class SlackApiClient {
|
|
5
5
|
private channelOps;
|
|
@@ -26,6 +26,8 @@ export declare class SlackApiClient {
|
|
|
26
26
|
setPurpose(channelNameOrId: string, purpose: string): Promise<void>;
|
|
27
27
|
getHistory(channel: string, options: HistoryOptions): Promise<HistoryResult>;
|
|
28
28
|
getThreadHistory(channel: string, threadTs: string): Promise<HistoryResult>;
|
|
29
|
+
getMessage(channel: string, messageTs: string, threadTs?: string): Promise<Message>;
|
|
30
|
+
getMessageWithUsers(channel: string, messageTs: string, threadTs?: string): Promise<HistoryResult>;
|
|
29
31
|
listUnreadChannels(): Promise<Channel[]>;
|
|
30
32
|
getChannelUnread(channelNameOrId: string): Promise<ChannelUnreadResult>;
|
|
31
33
|
markAsRead(channelId: string): Promise<void>;
|