@urugus/slack-cli 0.1.5 → 0.1.7

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.
Files changed (39) hide show
  1. package/.claude/settings.local.json +2 -1
  2. package/CHANGELOG.md +39 -0
  3. package/dist/commands/unread.d.ts.map +1 -1
  4. package/dist/commands/unread.js +6 -49
  5. package/dist/commands/unread.js.map +1 -1
  6. package/dist/utils/channel-resolver.d.ts +26 -0
  7. package/dist/utils/channel-resolver.d.ts.map +1 -0
  8. package/dist/utils/channel-resolver.js +74 -0
  9. package/dist/utils/channel-resolver.js.map +1 -0
  10. package/dist/utils/constants.d.ts +17 -0
  11. package/dist/utils/constants.d.ts.map +1 -1
  12. package/dist/utils/constants.js +21 -1
  13. package/dist/utils/constants.js.map +1 -1
  14. package/dist/utils/formatters/channel-formatters.d.ts +16 -0
  15. package/dist/utils/formatters/channel-formatters.d.ts.map +1 -0
  16. package/dist/utils/formatters/channel-formatters.js +73 -0
  17. package/dist/utils/formatters/channel-formatters.js.map +1 -0
  18. package/dist/utils/formatters/output-formatter.d.ts +7 -0
  19. package/dist/utils/formatters/output-formatter.d.ts.map +1 -0
  20. package/dist/utils/formatters/output-formatter.js +7 -0
  21. package/dist/utils/formatters/output-formatter.js.map +1 -0
  22. package/dist/utils/profile-config.d.ts.map +1 -1
  23. package/dist/utils/profile-config.js +5 -3
  24. package/dist/utils/profile-config.js.map +1 -1
  25. package/dist/utils/slack-api-client.d.ts +2 -0
  26. package/dist/utils/slack-api-client.d.ts.map +1 -1
  27. package/dist/utils/slack-api-client.js +67 -96
  28. package/dist/utils/slack-api-client.js.map +1 -1
  29. package/package.json +5 -4
  30. package/src/commands/unread.ts +11 -52
  31. package/src/utils/channel-resolver.ts +86 -0
  32. package/src/utils/constants.ts +23 -0
  33. package/src/utils/formatters/channel-formatters.ts +69 -0
  34. package/src/utils/formatters/output-formatter.ts +7 -0
  35. package/src/utils/profile-config.ts +7 -5
  36. package/src/utils/slack-api-client.ts +81 -105
  37. package/tests/commands/unread.test.ts +31 -0
  38. package/tests/utils/channel-resolver.test.ts +157 -0
  39. package/tests/utils/slack-api-client.test.ts +12 -3
@@ -54,7 +54,8 @@
54
54
  "Bash(npm publish:*)",
55
55
  "Bash(rg:*)",
56
56
  "Bash(npm version:*)",
57
- "Bash(npx tsx:*)"
57
+ "Bash(npx tsx:*)",
58
+ "Bash(gh workflow view:*)"
58
59
  ],
59
60
  "deny": []
60
61
  }
package/CHANGELOG.md ADDED
@@ -0,0 +1,39 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ ## [0.1.7] - 2025-06-22
6
+
7
+ ### Fixed
8
+ - Resolved rate limiting issues with `slack unread` command
9
+ - Disabled WebClient automatic retries to handle rate limits manually
10
+ - Changed to use users.conversations API for more efficient unread retrieval
11
+ - Added fallback mechanism for better compatibility
12
+
13
+ ## [0.1.6] - 2025-06-22
14
+
15
+ ### Added
16
+ - Channel resolver abstraction for better code reusability
17
+ - Output formatter abstraction for flexible display formats
18
+ - Rate limiting configuration with exponential backoff
19
+ - Better error messages with channel suggestions
20
+
21
+ ### Changed
22
+ - Improved rate limiting handling to prevent infinite retry loops
23
+ - Extracted magic numbers into configuration constants
24
+ - Refactored SlackApiClient to reduce complexity
25
+
26
+ ### Fixed
27
+ - Fixed infinite loop when hitting Slack API rate limits
28
+ - Replaced all `any` types with proper type definitions
29
+ - Fixed CommonJS compatibility issues with p-limit
30
+
31
+ ## [0.1.5] - Previous releases
32
+
33
+ ### Added
34
+ - Initial implementation of Slack CLI
35
+ - Support for sending messages
36
+ - Channel listing functionality
37
+ - Message history retrieval
38
+ - Unread message tracking
39
+ - Multi-profile support
@@ -1 +1 @@
1
- {"version":3,"file":"unread.d.ts","sourceRoot":"","sources":["../../src/commands/unread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgGpC,wBAAgB,kBAAkB,IAAI,OAAO,CAqB5C"}
1
+ {"version":3,"file":"unread.d.ts","sourceRoot":"","sources":["../../src/commands/unread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,wBAAgB,kBAAkB,IAAI,OAAO,CAyB5C"}
@@ -10,6 +10,8 @@ const client_factory_1 = require("../utils/client-factory");
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
11
  const date_utils_1 = require("../utils/date-utils");
12
12
  const channel_formatter_1 = require("../utils/channel-formatter");
13
+ const channel_formatters_1 = require("../utils/formatters/channel-formatters");
14
+ const constants_1 = require("../utils/constants");
13
15
  async function handleSpecificChannelUnread(client, options) {
14
16
  const result = await client.getChannelUnread(options.channel);
15
17
  const channelName = (0, channel_formatter_1.formatChannelName)(result.channel.name);
@@ -32,55 +34,10 @@ async function handleAllChannelsUnread(client, options) {
32
34
  return;
33
35
  }
34
36
  // Apply limit
35
- const limit = parseInt(options.limit || '50', 10);
37
+ const limit = parseInt(options.limit || constants_1.DEFAULTS.UNREAD_DISPLAY_LIMIT.toString(), 10);
36
38
  const displayChannels = channels.slice(0, limit);
37
- if (options.countOnly) {
38
- displayCountOnly(displayChannels);
39
- }
40
- else if (options.format === 'json') {
41
- displayAsJson(displayChannels);
42
- }
43
- else if (options.format === 'simple') {
44
- displayAsSimple(displayChannels);
45
- }
46
- else {
47
- displayAsTable(displayChannels);
48
- }
49
- }
50
- function displayCountOnly(channels) {
51
- let totalUnread = 0;
52
- channels.forEach((channel) => {
53
- const count = channel.unread_count || 0;
54
- totalUnread += count;
55
- const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
56
- console.log(`${channelName}: ${count}`);
57
- });
58
- console.log(chalk_1.default.bold(`Total: ${totalUnread} unread messages`));
59
- }
60
- function displayAsJson(channels) {
61
- const output = channels.map((channel) => ({
62
- channel: (0, channel_formatter_1.formatChannelName)(channel.name),
63
- channelId: channel.id,
64
- unreadCount: channel.unread_count || 0,
65
- }));
66
- console.log(JSON.stringify(output, null, 2));
67
- }
68
- function displayAsSimple(channels) {
69
- channels.forEach((channel) => {
70
- const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
71
- console.log(`${channelName} (${channel.unread_count || 0})`);
72
- });
73
- }
74
- function displayAsTable(channels) {
75
- console.log(chalk_1.default.bold('Channel Unread Last Message'));
76
- console.log('─'.repeat(50));
77
- channels.forEach((channel) => {
78
- const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
79
- const paddedName = channelName.padEnd(16);
80
- const count = (channel.unread_count || 0).toString().padEnd(6);
81
- const lastRead = channel.last_read ? (0, date_utils_1.formatSlackTimestamp)(channel.last_read) : 'Unknown';
82
- console.log(`${paddedName} ${count} ${lastRead}`);
83
- });
39
+ const formatter = (0, channel_formatters_1.createChannelFormatter)(options.format || 'table', options.countOnly || false);
40
+ formatter.format(displayChannels);
84
41
  }
85
42
  function setupUnreadCommand() {
86
43
  const unreadCommand = new commander_1.Command('unread')
@@ -88,7 +45,7 @@ function setupUnreadCommand() {
88
45
  .option('-c, --channel <channel>', 'Show unread for a specific channel')
89
46
  .option('--format <format>', 'Output format: table, simple, json', 'table')
90
47
  .option('--count-only', 'Show only unread counts', false)
91
- .option('--limit <number>', 'Maximum number of channels to display', '50')
48
+ .option('--limit <number>', 'Maximum number of channels to display', constants_1.DEFAULTS.UNREAD_DISPLAY_LIMIT.toString())
92
49
  .option('--profile <profile>', 'Use specific workspace profile')
93
50
  .action((0, command_wrapper_1.wrapCommand)(async (options) => {
94
51
  const client = await (0, client_factory_1.createSlackClient)(options.profile);
@@ -1 +1 @@
1
- {"version":3,"file":"unread.js","sourceRoot":"","sources":["../../src/commands/unread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unread.js","sourceRoot":"","sources":["../../src/commands/unread.ts"],"names":[],"mappings":";;;;;AAmDA,gDAyBC;AA5ED,yCAAoC;AACpC,8DAAuD;AACvD,4DAA4D;AAG5D,kDAA0B;AAC1B,oDAA2D;AAC3D,kEAA+D;AAC/D,+EAAgF;AAChF,kDAA8C;AAE9C,KAAK,UAAU,2BAA2B,CACxC,MAAsB,EACtB,OAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAQ,CAAC,CAAC;IAC/D,MAAM,WAAW,GAAG,IAAA,qCAAiB,EAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,MAAsB,EACtB,OAAsB;IAEtB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAEnD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IAED,cAAc;IACd,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,oBAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAA,2CAAsB,EAAC,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;IAChG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AACpC,CAAC;AAED,SAAgB,kBAAkB;IAChC,MAAM,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;SACxC,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,CAAC;SACvE,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,OAAO,CAAC;SAC1E,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,KAAK,CAAC;SACxD,MAAM,CACL,kBAAkB,EAClB,uCAAuC,EACvC,oBAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CACzC;SACA,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;SAC/D,MAAM,CACL,IAAA,6BAAW,EAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Channel } from './slack-api-client';
2
+ export type GetChannelsFunction = () => Promise<Channel[]>;
3
+ export declare class ChannelResolver {
4
+ /**
5
+ * Check if the given string is a channel ID
6
+ */
7
+ isChannelId(channelNameOrId: string): boolean;
8
+ /**
9
+ * Find a channel by name from the given list
10
+ */
11
+ findChannel(channelName: string, channels: Channel[]): Channel | undefined;
12
+ /**
13
+ * Get similar channel names for suggestions
14
+ */
15
+ getSimilarChannels(channelName: string, channels: Channel[], limit?: number): string[];
16
+ /**
17
+ * Create an error with channel suggestions
18
+ */
19
+ resolveChannelError(channelName: string, channels: Channel[]): Error;
20
+ /**
21
+ * Resolve a channel name or ID to a channel ID
22
+ */
23
+ resolveChannelId(channelNameOrId: string, getChannels: GetChannelsFunction): Promise<string>;
24
+ }
25
+ export declare const channelResolver: ChannelResolver;
26
+ //# sourceMappingURL=channel-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/channel-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAE3D,qBAAa,eAAe;IAC1B;;OAEG;IACH,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO;IAQ7C;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,GAAG,SAAS;IAc1E;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE;IAOjF;;OAEG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK;IAcpE;;OAEG;IACG,gBAAgB,CACpB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,MAAM,CAAC;CAgBnB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.channelResolver = exports.ChannelResolver = void 0;
4
+ class ChannelResolver {
5
+ /**
6
+ * Check if the given string is a channel ID
7
+ */
8
+ isChannelId(channelNameOrId) {
9
+ return (channelNameOrId.startsWith('C') ||
10
+ channelNameOrId.startsWith('D') ||
11
+ channelNameOrId.startsWith('G'));
12
+ }
13
+ /**
14
+ * Find a channel by name from the given list
15
+ */
16
+ findChannel(channelName, channels) {
17
+ return channels.find((c) => {
18
+ // Direct name match
19
+ if (c.name === channelName)
20
+ return true;
21
+ // Match without # prefix
22
+ if (c.name === channelName.replace('#', ''))
23
+ return true;
24
+ // Case-insensitive match
25
+ if (c.name?.toLowerCase() === channelName.toLowerCase())
26
+ return true;
27
+ // Match with normalized name
28
+ if (c.name_normalized === channelName)
29
+ return true;
30
+ return false;
31
+ });
32
+ }
33
+ /**
34
+ * Get similar channel names for suggestions
35
+ */
36
+ getSimilarChannels(channelName, channels, limit = 5) {
37
+ return channels
38
+ .filter((c) => c.name?.toLowerCase().includes(channelName.toLowerCase()))
39
+ .slice(0, limit)
40
+ .map((c) => c.name);
41
+ }
42
+ /**
43
+ * Create an error with channel suggestions
44
+ */
45
+ resolveChannelError(channelName, channels) {
46
+ const similarChannels = this.getSimilarChannels(channelName, channels);
47
+ if (similarChannels.length > 0) {
48
+ return new Error(`Channel '${channelName}' not found. Did you mean one of these? ${similarChannels.join(', ')}`);
49
+ }
50
+ else {
51
+ return new Error(`Channel '${channelName}' not found. Make sure you are a member of this channel.`);
52
+ }
53
+ }
54
+ /**
55
+ * Resolve a channel name or ID to a channel ID
56
+ */
57
+ async resolveChannelId(channelNameOrId, getChannels) {
58
+ // If it's already an ID, return it
59
+ if (this.isChannelId(channelNameOrId)) {
60
+ return channelNameOrId;
61
+ }
62
+ // Otherwise, fetch channels and resolve the name
63
+ const channels = await getChannels();
64
+ const channel = this.findChannel(channelNameOrId, channels);
65
+ if (!channel) {
66
+ throw this.resolveChannelError(channelNameOrId, channels);
67
+ }
68
+ return channel.id;
69
+ }
70
+ }
71
+ exports.ChannelResolver = ChannelResolver;
72
+ // Export a singleton instance
73
+ exports.channelResolver = new ChannelResolver();
74
+ //# sourceMappingURL=channel-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-resolver.js","sourceRoot":"","sources":["../../src/utils/channel-resolver.ts"],"names":[],"mappings":";;;AAIA,MAAa,eAAe;IAC1B;;OAEG;IACH,WAAW,CAAC,eAAuB;QACjC,OAAO,CACL,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;YAC/B,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC;YAC/B,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,WAAmB,EAAE,QAAmB;QAClD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YACzB,oBAAoB;YACpB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAC;YACxC,yBAAyB;YACzB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;YACzD,yBAAyB;YACzB,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE;gBAAE,OAAO,IAAI,CAAC;YACrE,6BAA6B;YAC7B,IAAI,CAAC,CAAC,eAAe,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,WAAmB,EAAE,QAAmB,EAAE,KAAK,GAAG,CAAC;QACpE,OAAO,QAAQ;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;aACxE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,mBAAmB,CAAC,WAAmB,EAAE,QAAmB;QAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEvE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,KAAK,CACd,YAAY,WAAW,2CAA2C,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,KAAK,CACd,YAAY,WAAW,0DAA0D,CAClF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,eAAuB,EACvB,WAAgC;QAEhC,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;YACtC,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;CACF;AA9ED,0CA8EC;AAED,8BAA8B;AACjB,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -29,4 +29,21 @@ export declare const API_LIMITS: {
29
29
  MIN_MESSAGE_COUNT: number;
30
30
  DEFAULT_MESSAGE_COUNT: number;
31
31
  };
32
+ export declare const RATE_LIMIT: {
33
+ CONCURRENT_REQUESTS: number;
34
+ BATCH_SIZE: number;
35
+ BATCH_DELAY_MS: number;
36
+ RETRY_CONFIG: {
37
+ retries: number;
38
+ factor: number;
39
+ minTimeout: number;
40
+ maxTimeout: number;
41
+ };
42
+ };
43
+ export declare const DEFAULTS: {
44
+ HISTORY_LIMIT: number;
45
+ CHANNELS_LIMIT: number;
46
+ UNREAD_DISPLAY_LIMIT: number;
47
+ };
48
+ export declare const TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
32
49
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc;sCAEA,MAAM;8CAEE,MAAM;;;;;gCASpB,MAAM;0CACI,MAAM;qCAGX,MAAM,SAAS,MAAM;oCACtB,MAAM;;6CAIG,MAAM;CAC9B,CAAC;AAEX,eAAO,MAAM,gBAAgB;wCACA,MAAM;6CACD,MAAM;4CACP,MAAM;qCACb,MAAM;CACtB,CAAC;AAGX,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAGF,eAAO,MAAM,UAAU;;;;CAItB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,eAAO,MAAM,oBAAoB,YAAY,CAAC;AAE9C,eAAO,MAAM,cAAc;sCAEA,MAAM;8CAEE,MAAM;;;;;gCASpB,MAAM;0CACI,MAAM;qCAGX,MAAM,SAAS,MAAM;oCACtB,MAAM;;6CAIG,MAAM;CAC9B,CAAC;AAEX,eAAO,MAAM,gBAAgB;wCACA,MAAM;6CACD,MAAM;4CACP,MAAM;qCACb,MAAM;CACtB,CAAC;AAGX,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAGF,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;CAUtB,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC;AAGF,eAAO,MAAM,WAAW,wBAAwB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.API_LIMITS = exports.FILE_PERMISSIONS = exports.SUCCESS_MESSAGES = exports.ERROR_MESSAGES = exports.DEFAULT_PROFILE_NAME = exports.TOKEN_MIN_LENGTH = exports.TOKEN_MASK_LENGTH = void 0;
3
+ exports.TIME_FORMAT = exports.DEFAULTS = exports.RATE_LIMIT = exports.API_LIMITS = exports.FILE_PERMISSIONS = exports.SUCCESS_MESSAGES = exports.ERROR_MESSAGES = exports.DEFAULT_PROFILE_NAME = exports.TOKEN_MIN_LENGTH = exports.TOKEN_MASK_LENGTH = void 0;
4
4
  exports.TOKEN_MASK_LENGTH = 4;
5
5
  exports.TOKEN_MIN_LENGTH = 9;
6
6
  exports.DEFAULT_PROFILE_NAME = 'default';
@@ -39,4 +39,24 @@ exports.API_LIMITS = {
39
39
  MIN_MESSAGE_COUNT: 1,
40
40
  DEFAULT_MESSAGE_COUNT: 10,
41
41
  };
42
+ // API Rate Limiting Configuration
43
+ exports.RATE_LIMIT = {
44
+ CONCURRENT_REQUESTS: 3,
45
+ BATCH_SIZE: 10,
46
+ BATCH_DELAY_MS: 1000,
47
+ RETRY_CONFIG: {
48
+ retries: 3,
49
+ factor: 2,
50
+ minTimeout: 1000,
51
+ maxTimeout: 30000,
52
+ },
53
+ };
54
+ // Default values
55
+ exports.DEFAULTS = {
56
+ HISTORY_LIMIT: 20,
57
+ CHANNELS_LIMIT: 1000,
58
+ UNREAD_DISPLAY_LIMIT: 50,
59
+ };
60
+ // Time formats
61
+ exports.TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
42
62
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,CAAC;AACtB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,oBAAoB,GAAG,SAAS,CAAC;AAEjC,QAAA,cAAc,GAAG;IAC5B,uBAAuB;IACvB,SAAS,EAAE,CAAC,WAAmB,EAAE,EAAE,CACjC,uCAAuC,WAAW,0DAA0D,WAAW,cAAc;IACvI,iBAAiB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,YAAY,WAAW,aAAa;IAChF,iBAAiB,EAAE,8EAA8E;IACjG,qBAAqB,EAAE,4BAA4B;IAEnD,oBAAoB;IACpB,kBAAkB,EAAE,6CAA6C;IACjE,qBAAqB,EAAE,sCAAsC;IAE7D,aAAa;IACb,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,EAAE;IACnD,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,sBAAsB,OAAO,EAAE;IAEvE,cAAc;IACd,eAAe,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,sBAAsB,IAAI,KAAK,KAAK,EAAE;IACxF,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAE3D,0BAA0B;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,2BAA2B,KAAK,EAAE;CACrE,CAAC;AAEE,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,yCAAyC,WAAW,GAAG;IAC7F,gBAAgB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,wBAAwB,WAAW,GAAG;IACjF,eAAe,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,YAAY,WAAW,wBAAwB;IACzF,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,iCAAiC,OAAO,EAAE;CACrE,CAAC;AAEX,4BAA4B;AACf,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,KAAK,EAAE,4BAA4B;CACjD,CAAC;AAEF,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,EAAE;CAC1B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,CAAC,CAAC;AACtB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AACrB,QAAA,oBAAoB,GAAG,SAAS,CAAC;AAEjC,QAAA,cAAc,GAAG;IAC5B,uBAAuB;IACvB,SAAS,EAAE,CAAC,WAAmB,EAAE,EAAE,CACjC,uCAAuC,WAAW,0DAA0D,WAAW,cAAc;IACvI,iBAAiB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,YAAY,WAAW,aAAa;IAChF,iBAAiB,EAAE,8EAA8E;IACjG,qBAAqB,EAAE,4BAA4B;IAEnD,oBAAoB;IACpB,kBAAkB,EAAE,6CAA6C;IACjE,qBAAqB,EAAE,sCAAsC;IAE7D,aAAa;IACb,SAAS,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,KAAK,EAAE;IACnD,iBAAiB,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,sBAAsB,OAAO,EAAE;IAEvE,cAAc;IACd,eAAe,EAAE,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE,CAAC,sBAAsB,IAAI,KAAK,KAAK,EAAE;IACxF,cAAc,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAE3D,0BAA0B;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,sBAAsB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,2BAA2B,KAAK,EAAE;CACrE,CAAC;AAEE,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,yCAAyC,WAAW,GAAG;IAC7F,gBAAgB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,wBAAwB,WAAW,GAAG;IACjF,eAAe,EAAE,CAAC,WAAmB,EAAE,EAAE,CAAC,YAAY,WAAW,wBAAwB;IACzF,YAAY,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,iCAAiC,OAAO,EAAE;CACrE,CAAC;AAEX,4BAA4B;AACf,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE,KAAK,EAAE,4BAA4B;CACjD,CAAC;AAEF,aAAa;AACA,QAAA,UAAU,GAAG;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,CAAC;IACpB,qBAAqB,EAAE,EAAE;CAC1B,CAAC;AAEF,kCAAkC;AACrB,QAAA,UAAU,GAAG;IACxB,mBAAmB,EAAE,CAAC;IACtB,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE;QACZ,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,KAAK;KAClB;CACF,CAAC;AAEF,iBAAiB;AACJ,QAAA,QAAQ,GAAG;IACtB,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,IAAI;IACpB,oBAAoB,EAAE,EAAE;CACzB,CAAC;AAEF,eAAe;AACF,QAAA,WAAW,GAAG,qBAAqB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { BaseFormatter } from './output-formatter';
2
+ import { Channel } from '../slack-api-client';
3
+ export declare class ChannelTableFormatter extends BaseFormatter<Channel> {
4
+ format(channels: Channel[]): void;
5
+ }
6
+ export declare class ChannelSimpleFormatter extends BaseFormatter<Channel> {
7
+ format(channels: Channel[]): void;
8
+ }
9
+ export declare class ChannelJsonFormatter extends BaseFormatter<Channel> {
10
+ format(channels: Channel[]): void;
11
+ }
12
+ export declare class ChannelCountFormatter extends BaseFormatter<Channel> {
13
+ format(channels: Channel[]): void;
14
+ }
15
+ export declare function createChannelFormatter(format: string, countOnly: boolean): BaseFormatter<Channel>;
16
+ //# sourceMappingURL=channel-formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-formatters.d.ts","sourceRoot":"","sources":["../../../src/utils/formatters/channel-formatters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAI9C,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;CAYlC;AAED,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,OAAO,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;CAMlC;AAED,qBAAa,oBAAqB,SAAQ,aAAa,CAAC,OAAO,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;CAQlC;AAED,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,OAAO,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;CAUlC;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAcjG"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ChannelCountFormatter = exports.ChannelJsonFormatter = exports.ChannelSimpleFormatter = exports.ChannelTableFormatter = void 0;
7
+ exports.createChannelFormatter = createChannelFormatter;
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const output_formatter_1 = require("./output-formatter");
10
+ const channel_formatter_1 = require("../channel-formatter");
11
+ const date_utils_1 = require("../date-utils");
12
+ class ChannelTableFormatter extends output_formatter_1.BaseFormatter {
13
+ format(channels) {
14
+ console.log(chalk_1.default.bold('Channel Unread Last Message'));
15
+ console.log('─'.repeat(50));
16
+ channels.forEach((channel) => {
17
+ const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
18
+ const paddedName = channelName.padEnd(16);
19
+ const count = (channel.unread_count || 0).toString().padEnd(6);
20
+ const lastRead = channel.last_read ? (0, date_utils_1.formatSlackTimestamp)(channel.last_read) : 'Unknown';
21
+ console.log(`${paddedName} ${count} ${lastRead}`);
22
+ });
23
+ }
24
+ }
25
+ exports.ChannelTableFormatter = ChannelTableFormatter;
26
+ class ChannelSimpleFormatter extends output_formatter_1.BaseFormatter {
27
+ format(channels) {
28
+ channels.forEach((channel) => {
29
+ const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
30
+ console.log(`${channelName} (${channel.unread_count || 0})`);
31
+ });
32
+ }
33
+ }
34
+ exports.ChannelSimpleFormatter = ChannelSimpleFormatter;
35
+ class ChannelJsonFormatter extends output_formatter_1.BaseFormatter {
36
+ format(channels) {
37
+ const output = channels.map((channel) => ({
38
+ channel: (0, channel_formatter_1.formatChannelName)(channel.name),
39
+ channelId: channel.id,
40
+ unreadCount: channel.unread_count || 0,
41
+ }));
42
+ console.log(JSON.stringify(output, null, 2));
43
+ }
44
+ }
45
+ exports.ChannelJsonFormatter = ChannelJsonFormatter;
46
+ class ChannelCountFormatter extends output_formatter_1.BaseFormatter {
47
+ format(channels) {
48
+ let totalUnread = 0;
49
+ channels.forEach((channel) => {
50
+ const count = channel.unread_count || 0;
51
+ totalUnread += count;
52
+ const channelName = (0, channel_formatter_1.formatChannelName)(channel.name);
53
+ console.log(`${channelName}: ${count}`);
54
+ });
55
+ console.log(chalk_1.default.bold(`Total: ${totalUnread} unread messages`));
56
+ }
57
+ }
58
+ exports.ChannelCountFormatter = ChannelCountFormatter;
59
+ function createChannelFormatter(format, countOnly) {
60
+ if (countOnly) {
61
+ return new ChannelCountFormatter();
62
+ }
63
+ switch (format) {
64
+ case 'json':
65
+ return new ChannelJsonFormatter();
66
+ case 'simple':
67
+ return new ChannelSimpleFormatter();
68
+ case 'table':
69
+ default:
70
+ return new ChannelTableFormatter();
71
+ }
72
+ }
73
+ //# sourceMappingURL=channel-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-formatters.js","sourceRoot":"","sources":["../../../src/utils/formatters/channel-formatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface OutputFormatter<T> {
2
+ format(data: T[]): void;
3
+ }
4
+ export declare abstract class BaseFormatter<T> implements OutputFormatter<T> {
5
+ abstract format(data: T[]): void;
6
+ }
7
+ //# sourceMappingURL=output-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-formatter.d.ts","sourceRoot":"","sources":["../../../src/utils/formatters/output-formatter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;CACzB;AAED,8BAAsB,aAAa,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI;CACjC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseFormatter = void 0;
4
+ class BaseFormatter {
5
+ }
6
+ exports.BaseFormatter = BaseFormatter;
7
+ //# sourceMappingURL=output-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-formatter.js","sourceRoot":"","sources":["../../../src/utils/formatters/output-formatter.ts"],"names":[],"mappings":";;;AAIA,MAAsB,aAAa;CAElC;AAFD,sCAEC"}
@@ -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;AASnF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,GAAE,aAAkB;IAKjC,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;IAOnD,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;YAWlB,cAAc;IAsB5B,OAAO,CAAC,cAAc;YAIR,gBAAgB;YAgBhB,eAAe;CAO9B;AAED,eAAO,MAAM,aAAa;6BACD,MAAM;0BAGP,MAAM,KAAG,MAAM,GAAG,SAAS;CAKlD,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;AASnF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,GAAE,aAAkB;IAKjC,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;IAOnD,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;YAWlB,cAAc;IAsB5B,OAAO,CAAC,cAAc;YAKR,gBAAgB;YAiBhB,eAAe;CAO9B;AAED,eAAO,MAAM,aAAa;6BACD,MAAM;0BAGP,MAAM,KAAG,MAAM,GAAG,SAAS;CAKlD,CAAC"}
@@ -137,12 +137,14 @@ class ProfileConfigManager {
137
137
  }
138
138
  }
139
139
  needsMigration(data) {
140
- return data.token && !data.profiles;
140
+ const configData = data;
141
+ return Boolean(configData.token && !configData.profiles);
141
142
  }
142
143
  async migrateOldConfig(oldData) {
144
+ const data = oldData;
143
145
  const oldConfig = {
144
- token: oldData.token,
145
- updatedAt: oldData.updatedAt,
146
+ token: data.token,
147
+ updatedAt: data.updatedAt,
146
148
  };
147
149
  const newStore = {
148
150
  profiles: { [constants_1.DEFAULT_PROFILE_NAME]: oldConfig },
@@ -1 +1 @@
1
- {"version":3,"file":"profile-config.js","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-config.js","sourceRoot":"","sources":["../../src/utils/profile-config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAC7B,uCAAyB;AAEzB,2CAMqB;AAErB,MAAa,oBAAoB;IAG/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;IACxD,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;YACL,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,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,gCAAoB,CAAC;QAEpE,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,IAAI;YACJ,MAAM;YACN,SAAS,EAAE,IAAI,KAAK,cAAc;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAe;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,YAAY,OAAO,kBAAkB,CAAC,CAAC;QACzD,CAAC;QAED,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;QAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC,cAAc,IAAI,gCAAoB,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgB;QAChC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,WAAW,GAAG,OAAO,IAAI,KAAK,CAAC,cAAc,IAAI,gCAAoB,CAAC;QAE5E,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEnC,uDAAuD;QACvD,IAAI,KAAK,CAAC,cAAc,KAAK,WAAW,EAAE,CAAC;YACzC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACtD,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,CAAC,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,IAAI,CAAC;oBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACnC,CAAC;gBAAC,OAAO,KAAc,EAAE,CAAC;oBACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACrF,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,KAAK,CAAC,MAAM,IAAI,4BAAgB,EAAE,CAAC;YACrC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,6BAAiB,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,6BAAiB,CAAC,CAAC;QAEjE,OAAO,GAAG,MAAM,cAAc,MAAM,EAAE,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhC,mCAAmC;YACnC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YAED,OAAO,MAAqB,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrF,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,0BAAc,CAAC,qBAAqB,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,IAAa;QAClC,MAAM,UAAU,GAAG,IAA+B,CAAC;QACnD,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,OAAgB;QAC7C,MAAM,IAAI,GAAG,OAA+C,CAAC;QAC7D,MAAM,SAAS,GAAW;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;QAEF,MAAM,QAAQ,GAAgB;YAC5B,QAAQ,EAAE,EAAE,CAAC,gCAAoB,CAAC,EAAE,SAAS,EAAE;YAC/C,cAAc,EAAE,gCAAoB;SACrC,CAAC;QAEF,uBAAuB;QACvB,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAkB;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/C,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,4BAAgB,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;CACF;AArJD,oDAqJC;AAEY,QAAA,aAAa,GAAG;IAC3B,iBAAiB,EAAE,GAAW,EAAE;QAC9B,OAAO,gCAAoB,CAAC;IAC9B,CAAC;IACD,QAAQ,EAAE,CAAC,QAAiB,EAAsB,EAAE;QAClD,2CAA2C;QAC3C,2CAA2C;QAC3C,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAC"}
@@ -61,11 +61,13 @@ export interface ChannelUnreadResult {
61
61
  }
62
62
  export declare class SlackApiClient {
63
63
  private client;
64
+ private rateLimiter;
64
65
  constructor(token: string);
65
66
  sendMessage(channel: string, text: string): Promise<ChatPostMessageResponse>;
66
67
  listChannels(options: ListChannelsOptions): Promise<Channel[]>;
67
68
  getHistory(channel: string, options: HistoryOptions): Promise<HistoryResult>;
68
69
  listUnreadChannels(): Promise<Channel[]>;
70
+ private listUnreadChannelsFallback;
69
71
  getChannelUnread(channelNameOrId: string): Promise<ChannelUnreadResult>;
70
72
  }
71
73
  export declare const slackApiClient: {
@@ -1 +1 @@
1
- {"version":3,"file":"slack-api-client.d.ts","sourceRoot":"","sources":["../../src/utils/slack-api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-api-client.d.ts","sourceRoot":"","sources":["../../src/utils/slack-api-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,uBAAuB,EAAY,MAAM,gBAAgB,CAAC;AAK9E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AASD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,WAAW,CAA4B;gBAEnC,KAAK,EAAE,MAAM;IAWnB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAO5E,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAuB9D,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAwC5E,kBAAkB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAsBhC,0BAA0B;IA2ClC,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAuC9E;AAED,eAAO,MAAM,cAAc;0BACG,MAAM,WAAW,mBAAmB,KAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAItF,CAAC"}