@urugus/slack-cli 0.1.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/.claude/settings.local.json +53 -0
- package/.eslintrc.json +25 -0
- package/.github/dependabot.yml +18 -0
- package/.github/workflows/ci.yml +70 -0
- package/.github/workflows/pr-validation.yml +51 -0
- package/.prettierignore +11 -0
- package/.prettierrc +10 -0
- package/CLAUDE.md +16 -0
- package/README.md +161 -0
- package/dist/commands/channels.d.ts +3 -0
- package/dist/commands/channels.d.ts.map +1 -0
- package/dist/commands/channels.js +50 -0
- package/dist/commands/channels.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +87 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/history.d.ts +3 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +79 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/send.d.ts +3 -0
- package/dist/commands/send.d.ts.map +1 -0
- package/dist/commands/send.js +85 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/unread.d.ts +3 -0
- package/dist/commands/unread.d.ts.map +1 -0
- package/dist/commands/unread.js +104 -0
- package/dist/commands/unread.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/types/commands.d.ts +40 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +3 -0
- package/dist/types/commands.js.map +1 -0
- package/dist/types/config.d.ts +18 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +3 -0
- package/dist/types/config.js.map +1 -0
- package/dist/utils/channel-formatter.d.ts +16 -0
- package/dist/utils/channel-formatter.d.ts.map +1 -0
- package/dist/utils/channel-formatter.js +77 -0
- package/dist/utils/channel-formatter.js.map +1 -0
- package/dist/utils/client-factory.d.ts +6 -0
- package/dist/utils/client-factory.d.ts.map +1 -0
- package/dist/utils/client-factory.js +13 -0
- package/dist/utils/client-factory.js.map +1 -0
- package/dist/utils/command-wrapper.d.ts +6 -0
- package/dist/utils/command-wrapper.d.ts.map +1 -0
- package/dist/utils/command-wrapper.js +27 -0
- package/dist/utils/command-wrapper.js.map +1 -0
- package/dist/utils/config-helper.d.ts +8 -0
- package/dist/utils/config-helper.d.ts.map +1 -0
- package/dist/utils/config-helper.js +19 -0
- package/dist/utils/config-helper.js.map +1 -0
- package/dist/utils/config.d.ts +10 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +94 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/constants.d.ts +32 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +42 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/date-utils.d.ts +3 -0
- package/dist/utils/date-utils.d.ts.map +1 -0
- package/dist/utils/date-utils.js +12 -0
- package/dist/utils/date-utils.js.map +1 -0
- package/dist/utils/error-utils.d.ts +2 -0
- package/dist/utils/error-utils.d.ts.map +1 -0
- package/dist/utils/error-utils.js +10 -0
- package/dist/utils/error-utils.js.map +1 -0
- package/dist/utils/errors.d.ts +17 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +40 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/profile-config.d.ts +21 -0
- package/dist/utils/profile-config.d.ts.map +1 -0
- package/dist/utils/profile-config.js +173 -0
- package/dist/utils/profile-config.js.map +1 -0
- package/dist/utils/slack-api-client.d.ts +74 -0
- package/dist/utils/slack-api-client.d.ts.map +1 -0
- package/dist/utils/slack-api-client.js +132 -0
- package/dist/utils/slack-api-client.js.map +1 -0
- package/package.json +56 -0
- package/src/commands/channels.ts +65 -0
- package/src/commands/config.ts +104 -0
- package/src/commands/history.ts +96 -0
- package/src/commands/send.ts +52 -0
- package/src/commands/unread.ts +118 -0
- package/src/index.ts +19 -0
- package/src/types/commands.ts +46 -0
- package/src/types/config.ts +20 -0
- package/src/utils/channel-formatter.ts +89 -0
- package/src/utils/client-factory.ts +10 -0
- package/src/utils/command-wrapper.ts +27 -0
- package/src/utils/config-helper.ts +21 -0
- package/src/utils/constants.ts +47 -0
- package/src/utils/date-utils.ts +8 -0
- package/src/utils/error-utils.ts +6 -0
- package/src/utils/errors.ts +37 -0
- package/src/utils/profile-config.ts +171 -0
- package/src/utils/slack-api-client.ts +218 -0
- package/tests/commands/channels.test.ts +250 -0
- package/tests/commands/config.test.ts +158 -0
- package/tests/commands/history.test.ts +250 -0
- package/tests/commands/send.test.ts +156 -0
- package/tests/commands/unread.test.ts +248 -0
- package/tests/test-utils.ts +28 -0
- package/tests/utils/config.test.ts +400 -0
- package/tests/utils/date-utils.test.ts +30 -0
- package/tests/utils/error-utils.test.ts +34 -0
- package/tests/utils/slack-api-client.test.ts +170 -0
- package/tsconfig.json +22 -0
- package/vitest.config.ts +27 -0
|
@@ -0,0 +1,79 @@
|
|
|
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.setupHistoryCommand = setupHistoryCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const command_wrapper_1 = require("../utils/command-wrapper");
|
|
10
|
+
const client_factory_1 = require("../utils/client-factory");
|
|
11
|
+
const date_utils_1 = require("../utils/date-utils");
|
|
12
|
+
const constants_1 = require("../utils/constants");
|
|
13
|
+
function setupHistoryCommand() {
|
|
14
|
+
const historyCommand = new commander_1.Command('history')
|
|
15
|
+
.description('Get message history from a Slack channel')
|
|
16
|
+
.requiredOption('-c, --channel <channel>', 'Target channel name or ID')
|
|
17
|
+
.option('-n, --number <number>', 'Number of messages to retrieve', constants_1.API_LIMITS.DEFAULT_MESSAGE_COUNT.toString())
|
|
18
|
+
.option('--since <date>', 'Get messages since specific date (YYYY-MM-DD HH:MM:SS)')
|
|
19
|
+
.option('--profile <profile>', 'Use specific workspace profile')
|
|
20
|
+
.hook('preAction', (thisCommand) => {
|
|
21
|
+
const options = thisCommand.opts();
|
|
22
|
+
// Validate number option
|
|
23
|
+
if (options.number) {
|
|
24
|
+
const num = parseInt(options.number, 10);
|
|
25
|
+
if (isNaN(num) ||
|
|
26
|
+
num < constants_1.API_LIMITS.MIN_MESSAGE_COUNT ||
|
|
27
|
+
num > constants_1.API_LIMITS.MAX_MESSAGE_COUNT) {
|
|
28
|
+
thisCommand.error(`Error: Message count must be between ${constants_1.API_LIMITS.MIN_MESSAGE_COUNT} and ${constants_1.API_LIMITS.MAX_MESSAGE_COUNT}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Validate since option
|
|
32
|
+
if (options.since) {
|
|
33
|
+
const timestamp = Date.parse(options.since);
|
|
34
|
+
if (isNaN(timestamp)) {
|
|
35
|
+
thisCommand.error('Error: Invalid date format. Use YYYY-MM-DD HH:MM:SS');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
40
|
+
// Create Slack client
|
|
41
|
+
const client = await (0, client_factory_1.createSlackClient)(options.profile);
|
|
42
|
+
// Prepare API options
|
|
43
|
+
const historyOptions = {
|
|
44
|
+
limit: parseInt(options.number || constants_1.API_LIMITS.DEFAULT_MESSAGE_COUNT.toString(), 10),
|
|
45
|
+
};
|
|
46
|
+
if (options.since) {
|
|
47
|
+
// Convert date to Unix timestamp (in seconds)
|
|
48
|
+
const timestamp = Math.floor(Date.parse(options.since) / 1000);
|
|
49
|
+
historyOptions.oldest = timestamp.toString();
|
|
50
|
+
}
|
|
51
|
+
// Get message history
|
|
52
|
+
const { messages, users } = await client.getHistory(options.channel, historyOptions);
|
|
53
|
+
// Display results
|
|
54
|
+
if (messages.length === 0) {
|
|
55
|
+
console.log(chalk_1.default.yellow('No messages found in the specified channel.'));
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log(chalk_1.default.bold(`\nMessage History for #${options.channel}:\n`));
|
|
59
|
+
// Display messages in reverse order (oldest first)
|
|
60
|
+
messages.reverse().forEach((message) => {
|
|
61
|
+
const timestamp = (0, date_utils_1.formatSlackTimestamp)(message.ts);
|
|
62
|
+
let author = 'Unknown';
|
|
63
|
+
if (message.user && users.has(message.user)) {
|
|
64
|
+
author = users.get(message.user);
|
|
65
|
+
}
|
|
66
|
+
else if (message.bot_id) {
|
|
67
|
+
author = 'Bot';
|
|
68
|
+
}
|
|
69
|
+
console.log(chalk_1.default.gray(`[${timestamp}]`) + ' ' + chalk_1.default.cyan(author));
|
|
70
|
+
if (message.text) {
|
|
71
|
+
console.log(message.text);
|
|
72
|
+
}
|
|
73
|
+
console.log(''); // Empty line between messages
|
|
74
|
+
});
|
|
75
|
+
console.log(chalk_1.default.green(`✓ Displayed ${messages.length} message(s)`));
|
|
76
|
+
}));
|
|
77
|
+
return historyCommand;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":";;;;;AASA,kDAsFC;AA/FD,yCAAoC;AACpC,kDAA0B;AAE1B,8DAAuD;AACvD,4DAA4D;AAE5D,oDAA2D;AAC3D,kDAAgD;AAEhD,SAAgB,mBAAmB;IACjC,MAAM,cAAc,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC;SAC1C,WAAW,CAAC,0CAA0C,CAAC;SACvD,cAAc,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;SACtE,MAAM,CACL,uBAAuB,EACvB,gCAAgC,EAChC,sBAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAC5C;SACA,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;SAClF,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;SAC/D,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QAEnC,yBAAyB;QACzB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACzC,IACE,KAAK,CAAC,GAAG,CAAC;gBACV,GAAG,GAAG,sBAAU,CAAC,iBAAiB;gBAClC,GAAG,GAAG,sBAAU,CAAC,iBAAiB,EAClC,CAAC;gBACD,WAAW,CAAC,KAAK,CACf,wCAAwC,sBAAU,CAAC,iBAAiB,QAAQ,sBAAU,CAAC,iBAAiB,EAAE,CAC3G,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5C,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,WAAW,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CACL,IAAA,6BAAW,EAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC5C,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExD,sBAAsB;QACtB,MAAM,cAAc,GAAsB;YACxC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,sBAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC;SACnF,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,8CAA8C;YAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/D,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/C,CAAC;QAED,sBAAsB;QACtB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAErF,kBAAkB;QAClB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACzE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,OAAO,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC;QAExE,mDAAmD;QACnD,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,OAAgB,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,IAAA,iCAAoB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,GAAG,SAAS,CAAC;YAEvB,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;YACpC,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,GAAG,GAAG,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACrE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,8BAA8B;QACjD,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,gBAAgB,IAAI,OAAO,CAyC1C"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.setupSendCommand = setupSendCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const command_wrapper_1 = require("../utils/command-wrapper");
|
|
43
|
+
const constants_1 = require("../utils/constants");
|
|
44
|
+
const client_factory_1 = require("../utils/client-factory");
|
|
45
|
+
const errors_1 = require("../utils/errors");
|
|
46
|
+
const error_utils_1 = require("../utils/error-utils");
|
|
47
|
+
const fs = __importStar(require("fs/promises"));
|
|
48
|
+
function setupSendCommand() {
|
|
49
|
+
const sendCommand = new commander_1.Command('send')
|
|
50
|
+
.description('Send a message to a Slack channel')
|
|
51
|
+
.requiredOption('-c, --channel <channel>', 'Target channel name or ID')
|
|
52
|
+
.option('-m, --message <message>', 'Message to send')
|
|
53
|
+
.option('-f, --file <file>', 'File containing message content')
|
|
54
|
+
.option('--profile <profile>', 'Use specific workspace profile')
|
|
55
|
+
.hook('preAction', (thisCommand) => {
|
|
56
|
+
const options = thisCommand.opts();
|
|
57
|
+
if (!options.message && !options.file) {
|
|
58
|
+
thisCommand.error(`Error: ${constants_1.ERROR_MESSAGES.NO_MESSAGE_OR_FILE}`);
|
|
59
|
+
}
|
|
60
|
+
if (options.message && options.file) {
|
|
61
|
+
thisCommand.error(`Error: ${constants_1.ERROR_MESSAGES.BOTH_MESSAGE_AND_FILE}`);
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
65
|
+
// Get message content
|
|
66
|
+
let messageContent;
|
|
67
|
+
if (options.file) {
|
|
68
|
+
try {
|
|
69
|
+
messageContent = await fs.readFile(options.file, 'utf-8');
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
throw new errors_1.FileError(constants_1.ERROR_MESSAGES.FILE_READ_ERROR(options.file, (0, error_utils_1.extractErrorMessage)(error)));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
messageContent = options.message; // This is safe because of preAction validation
|
|
77
|
+
}
|
|
78
|
+
// Send message
|
|
79
|
+
const client = await (0, client_factory_1.createSlackClient)(options.profile);
|
|
80
|
+
await client.sendMessage(options.channel, messageContent);
|
|
81
|
+
console.log(chalk_1.default.green(`✓ ${constants_1.SUCCESS_MESSAGES.MESSAGE_SENT(options.channel)}`));
|
|
82
|
+
}));
|
|
83
|
+
return sendCommand;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,4CAyCC;AAnDD,yCAAoC;AACpC,kDAA0B;AAC1B,8DAAuD;AACvD,kDAAsE;AACtE,4DAA4D;AAC5D,4CAA4C;AAE5C,sDAA2D;AAC3D,gDAAkC;AAElC,SAAgB,gBAAgB;IAC9B,MAAM,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;SACpC,WAAW,CAAC,mCAAmC,CAAC;SAChD,cAAc,CAAC,yBAAyB,EAAE,2BAA2B,CAAC;SACtE,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,CAAC;SACpD,MAAM,CAAC,mBAAmB,EAAE,iCAAiC,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,gCAAgC,CAAC;SAC/D,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtC,WAAW,CAAC,KAAK,CAAC,UAAU,0BAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,WAAW,CAAC,KAAK,CAAC,UAAU,0BAAc,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC,CAAC;SACD,MAAM,CACL,IAAA,6BAAW,EAAC,KAAK,EAAE,OAAoB,EAAE,EAAE;QACzC,sBAAsB;QACtB,IAAI,cAAsB,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,kBAAS,CACjB,0BAAc,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,IAAA,iCAAmB,EAAC,KAAK,CAAC,CAAC,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,cAAc,GAAG,OAAO,CAAC,OAAQ,CAAC,CAAC,+CAA+C;QACpF,CAAC;QAED,eAAe;QACf,MAAM,MAAM,GAAG,MAAM,IAAA,kCAAiB,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,KAAK,4BAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC,CAAC,CACH,CAAC;IAEJ,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
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.setupUnreadCommand = setupUnreadCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const command_wrapper_1 = require("../utils/command-wrapper");
|
|
9
|
+
const client_factory_1 = require("../utils/client-factory");
|
|
10
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
11
|
+
const date_utils_1 = require("../utils/date-utils");
|
|
12
|
+
const channel_formatter_1 = require("../utils/channel-formatter");
|
|
13
|
+
async function handleSpecificChannelUnread(client, options) {
|
|
14
|
+
const result = await client.getChannelUnread(options.channel);
|
|
15
|
+
const channelName = (0, channel_formatter_1.formatChannelName)(result.channel.name);
|
|
16
|
+
console.log(chalk_1.default.bold(`${channelName}: ${result.channel.unread_count || 0} unread messages`));
|
|
17
|
+
if (!options.countOnly && result.messages.length > 0) {
|
|
18
|
+
console.log('');
|
|
19
|
+
result.messages.forEach((message) => {
|
|
20
|
+
const timestamp = (0, date_utils_1.formatSlackTimestamp)(message.ts);
|
|
21
|
+
const author = message.user ? result.users.get(message.user) || message.user : 'unknown';
|
|
22
|
+
console.log(`${chalk_1.default.gray(timestamp)} ${chalk_1.default.cyan(author)}`);
|
|
23
|
+
console.log(message.text || '(no text)');
|
|
24
|
+
console.log('');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function handleAllChannelsUnread(client, options) {
|
|
29
|
+
const channels = await client.listUnreadChannels();
|
|
30
|
+
if (channels.length === 0) {
|
|
31
|
+
console.log(chalk_1.default.green('✓ No unread messages'));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
// Apply limit
|
|
35
|
+
const limit = parseInt(options.limit || '50', 10);
|
|
36
|
+
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
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function setupUnreadCommand() {
|
|
86
|
+
const unreadCommand = new commander_1.Command('unread')
|
|
87
|
+
.description('Show unread messages across channels')
|
|
88
|
+
.option('-c, --channel <channel>', 'Show unread for a specific channel')
|
|
89
|
+
.option('--format <format>', 'Output format: table, simple, json', 'table')
|
|
90
|
+
.option('--count-only', 'Show only unread counts', false)
|
|
91
|
+
.option('--limit <number>', 'Maximum number of channels to display', '50')
|
|
92
|
+
.option('--profile <profile>', 'Use specific workspace profile')
|
|
93
|
+
.action((0, command_wrapper_1.wrapCommand)(async (options) => {
|
|
94
|
+
const client = await (0, client_factory_1.createSlackClient)(options.profile);
|
|
95
|
+
if (options.channel) {
|
|
96
|
+
await handleSpecificChannelUnread(client, options);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
await handleAllChannelsUnread(client, options);
|
|
100
|
+
}
|
|
101
|
+
}));
|
|
102
|
+
return unreadCommand;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=unread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unread.js","sourceRoot":"","sources":["../../src/commands/unread.ts"],"names":[],"mappings":";;;;;AAgGA,gDAqBC;AArHD,yCAAoC;AACpC,8DAAuD;AACvD,4DAA4D;AAG5D,kDAA0B;AAC1B,oDAA2D;AAC3D,kEAA+D;AAE/D,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,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEjD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACrC,aAAa,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACvC,eAAe,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,eAAe,CAAC,CAAC;IAClC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAmB;IAC3C,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;QACxC,WAAW,IAAI,KAAK,CAAC;QACrB,MAAM,WAAW,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,UAAU,WAAW,kBAAkB,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,aAAa,CAAC,QAAmB;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACxC,OAAO,EAAE,IAAA,qCAAiB,EAAC,OAAO,CAAC,IAAI,CAAC;QACxC,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,WAAW,EAAE,OAAO,CAAC,YAAY,IAAI,CAAC;KACvC,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,eAAe,CAAC,QAAmB;IAC1C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,WAAW,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,KAAK,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,QAAmB;IACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,WAAW,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,iCAAoB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,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,CAAC,kBAAkB,EAAE,uCAAuC,EAAE,IAAI,CAAC;SACzE,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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const config_1 = require("./commands/config");
|
|
6
|
+
const send_1 = require("./commands/send");
|
|
7
|
+
const channels_1 = require("./commands/channels");
|
|
8
|
+
const history_1 = require("./commands/history");
|
|
9
|
+
const unread_1 = require("./commands/unread");
|
|
10
|
+
const program = new commander_1.Command();
|
|
11
|
+
program.name('slack-cli').description('CLI tool to send messages via Slack API').version('1.0.0');
|
|
12
|
+
program.addCommand((0, config_1.setupConfigCommand)());
|
|
13
|
+
program.addCommand((0, send_1.setupSendCommand)());
|
|
14
|
+
program.addCommand((0, channels_1.setupChannelsCommand)());
|
|
15
|
+
program.addCommand((0, history_1.setupHistoryCommand)());
|
|
16
|
+
program.addCommand((0, unread_1.setupUnreadCommand)());
|
|
17
|
+
program.parse();
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AACpC,8CAAuD;AACvD,0CAAmD;AACnD,kDAA2D;AAC3D,gDAAyD;AACzD,8CAAuD;AAEvD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAElG,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,uBAAgB,GAAE,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,IAAA,+BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,6BAAmB,GAAE,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,IAAA,2BAAkB,GAAE,CAAC,CAAC;AAEzC,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface ConfigSetOptions {
|
|
2
|
+
token: string;
|
|
3
|
+
profile?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ConfigGetOptions {
|
|
6
|
+
profile?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ConfigUseOptions {
|
|
9
|
+
profile: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ConfigClearOptions {
|
|
12
|
+
profile?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SendOptions {
|
|
15
|
+
channel: string;
|
|
16
|
+
message?: string;
|
|
17
|
+
file?: string;
|
|
18
|
+
profile?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ChannelsOptions {
|
|
21
|
+
type: 'public' | 'private' | 'im' | 'mpim' | 'all';
|
|
22
|
+
includeArchived: boolean;
|
|
23
|
+
format: 'table' | 'simple' | 'json';
|
|
24
|
+
limit: string;
|
|
25
|
+
profile?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface HistoryOptions {
|
|
28
|
+
channel: string;
|
|
29
|
+
number?: string;
|
|
30
|
+
since?: string;
|
|
31
|
+
profile?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface UnreadOptions {
|
|
34
|
+
channel?: string;
|
|
35
|
+
format?: 'table' | 'simple' | 'json';
|
|
36
|
+
countOnly?: boolean;
|
|
37
|
+
limit?: string;
|
|
38
|
+
profile?: string;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +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,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,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;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,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,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface Config {
|
|
2
|
+
token: string;
|
|
3
|
+
updatedAt: string;
|
|
4
|
+
}
|
|
5
|
+
export interface Profile {
|
|
6
|
+
name: string;
|
|
7
|
+
config: Config;
|
|
8
|
+
isDefault?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface ConfigStore {
|
|
11
|
+
profiles: Record<string, Config>;
|
|
12
|
+
defaultProfile?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ConfigOptions {
|
|
15
|
+
configDir?: string;
|
|
16
|
+
profile?: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Channel } from './slack-api-client';
|
|
2
|
+
export interface ChannelInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
members: number;
|
|
7
|
+
created: string;
|
|
8
|
+
purpose: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function mapChannelToInfo(channel: Channel): ChannelInfo;
|
|
11
|
+
export declare function formatChannelsAsTable(channels: ChannelInfo[]): void;
|
|
12
|
+
export declare function formatChannelsAsSimple(channels: ChannelInfo[]): void;
|
|
13
|
+
export declare function formatChannelsAsJson(channels: ChannelInfo[]): void;
|
|
14
|
+
export declare function formatChannelName(channelName?: string): string;
|
|
15
|
+
export declare function getChannelTypes(type: string): string;
|
|
16
|
+
//# sourceMappingURL=channel-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/channel-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAe9D;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAgBnE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAelE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAepD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapChannelToInfo = mapChannelToInfo;
|
|
4
|
+
exports.formatChannelsAsTable = formatChannelsAsTable;
|
|
5
|
+
exports.formatChannelsAsSimple = formatChannelsAsSimple;
|
|
6
|
+
exports.formatChannelsAsJson = formatChannelsAsJson;
|
|
7
|
+
exports.formatChannelName = formatChannelName;
|
|
8
|
+
exports.getChannelTypes = getChannelTypes;
|
|
9
|
+
const date_utils_1 = require("./date-utils");
|
|
10
|
+
function mapChannelToInfo(channel) {
|
|
11
|
+
let type = 'unknown';
|
|
12
|
+
if (channel.is_channel && !channel.is_private)
|
|
13
|
+
type = 'public';
|
|
14
|
+
else if (channel.is_group || (channel.is_channel && channel.is_private))
|
|
15
|
+
type = 'private';
|
|
16
|
+
else if (channel.is_im)
|
|
17
|
+
type = 'im';
|
|
18
|
+
else if (channel.is_mpim)
|
|
19
|
+
type = 'mpim';
|
|
20
|
+
return {
|
|
21
|
+
id: channel.id,
|
|
22
|
+
name: channel.name || 'unnamed',
|
|
23
|
+
type,
|
|
24
|
+
members: channel.num_members || 0,
|
|
25
|
+
created: (0, date_utils_1.formatUnixTimestamp)(channel.created),
|
|
26
|
+
purpose: channel.purpose?.value || '',
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function formatChannelsAsTable(channels) {
|
|
30
|
+
// Print table header
|
|
31
|
+
console.log('Name Type Members Created Description');
|
|
32
|
+
console.log('─'.repeat(65));
|
|
33
|
+
// Print channel rows
|
|
34
|
+
channels.forEach((channel) => {
|
|
35
|
+
const name = channel.name.padEnd(17);
|
|
36
|
+
const type = channel.type.padEnd(9);
|
|
37
|
+
const members = channel.members.toString().padEnd(8);
|
|
38
|
+
const created = channel.created.padEnd(12);
|
|
39
|
+
const purpose = channel.purpose.length > 30 ? channel.purpose.substring(0, 27) + '...' : channel.purpose;
|
|
40
|
+
console.log(`${name} ${type} ${members} ${created} ${purpose}`);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function formatChannelsAsSimple(channels) {
|
|
44
|
+
channels.forEach((channel) => console.log(channel.name));
|
|
45
|
+
}
|
|
46
|
+
function formatChannelsAsJson(channels) {
|
|
47
|
+
console.log(JSON.stringify(channels.map((channel) => ({
|
|
48
|
+
id: channel.id,
|
|
49
|
+
name: channel.name,
|
|
50
|
+
type: channel.type,
|
|
51
|
+
members: channel.members,
|
|
52
|
+
created: channel.created + 'T00:00:00Z',
|
|
53
|
+
purpose: channel.purpose,
|
|
54
|
+
})), null, 2));
|
|
55
|
+
}
|
|
56
|
+
function formatChannelName(channelName) {
|
|
57
|
+
if (!channelName)
|
|
58
|
+
return '#unknown';
|
|
59
|
+
return channelName.startsWith('#') ? channelName : `#${channelName}`;
|
|
60
|
+
}
|
|
61
|
+
function getChannelTypes(type) {
|
|
62
|
+
switch (type) {
|
|
63
|
+
case 'public':
|
|
64
|
+
return 'public_channel';
|
|
65
|
+
case 'private':
|
|
66
|
+
return 'private_channel';
|
|
67
|
+
case 'im':
|
|
68
|
+
return 'im';
|
|
69
|
+
case 'mpim':
|
|
70
|
+
return 'mpim';
|
|
71
|
+
case 'all':
|
|
72
|
+
return 'public_channel,private_channel,mpim,im';
|
|
73
|
+
default:
|
|
74
|
+
return 'public_channel';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=channel-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-formatter.js","sourceRoot":"","sources":["../../src/utils/channel-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SlackApiClient } from './slack-api-client';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a SlackApiClient instance with configuration from the specified profile
|
|
4
|
+
*/
|
|
5
|
+
export declare function createSlackClient(profile?: string): Promise<SlackApiClient>;
|
|
6
|
+
//# sourceMappingURL=client-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.d.ts","sourceRoot":"","sources":["../../src/utils/client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAGjF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSlackClient = createSlackClient;
|
|
4
|
+
const slack_api_client_1 = require("./slack-api-client");
|
|
5
|
+
const config_helper_1 = require("./config-helper");
|
|
6
|
+
/**
|
|
7
|
+
* Creates a SlackApiClient instance with configuration from the specified profile
|
|
8
|
+
*/
|
|
9
|
+
async function createSlackClient(profile) {
|
|
10
|
+
const config = await (0, config_helper_1.getConfigOrThrow)(profile);
|
|
11
|
+
return new slack_api_client_1.SlackApiClient(config.token);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=client-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-factory.js","sourceRoot":"","sources":["../../src/utils/client-factory.ts"],"names":[],"mappings":";;AAMA,8CAGC;AATD,yDAAoD;AACpD,mDAAmD;AAEnD;;GAEG;AACI,KAAK,UAAU,iBAAiB,CAAC,OAAgB;IACtD,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAgB,EAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,iCAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export type CommandAction<T = unknown> = (options: T) => Promise<void> | void;
|
|
2
|
+
export declare function wrapCommand<T = unknown>(action: CommandAction<T>): CommandAction<T>;
|
|
3
|
+
export declare function getProfileName(configManager: {
|
|
4
|
+
getCurrentProfile: () => Promise<string>;
|
|
5
|
+
}, providedProfile?: string): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=command-wrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":"AAGA,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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
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.wrapCommand = wrapCommand;
|
|
7
|
+
exports.getProfileName = getProfileName;
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const error_utils_1 = require("./error-utils");
|
|
10
|
+
function wrapCommand(action) {
|
|
11
|
+
return async (options) => {
|
|
12
|
+
try {
|
|
13
|
+
await action(options);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
console.error(chalk_1.default.red('✗ Error:'), (0, error_utils_1.extractErrorMessage)(error));
|
|
17
|
+
if (process.env.NODE_ENV === 'development' && error instanceof Error) {
|
|
18
|
+
console.error(chalk_1.default.gray(error.stack));
|
|
19
|
+
}
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
async function getProfileName(configManager, providedProfile) {
|
|
25
|
+
return providedProfile || (await configManager.getCurrentProfile());
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=command-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-wrapper.js","sourceRoot":"","sources":["../../src/utils/command-wrapper.ts"],"names":[],"mappings":";;;;;AAKA,kCAcC;AAED,wCAKC;AA1BD,kDAA0B;AAC1B,+CAAoD;AAIpD,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,iCAAmB,EAAC,KAAK,CAAC,CAAC,CAAC;YAEjE,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBACrE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ProfileConfigManager } from './profile-config';
|
|
2
|
+
/**
|
|
3
|
+
* Helper function to get configuration with proper error handling
|
|
4
|
+
*/
|
|
5
|
+
export declare function getConfigOrThrow(profile?: string, configManager?: ProfileConfigManager): Promise<{
|
|
6
|
+
token: string;
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=config-helper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-helper.d.ts","sourceRoot":"","sources":["../../src/utils/config-helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIxD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,CAAC,EAAE,MAAM,EAChB,aAAa,GAAE,oBAAiD,GAC/D,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAU5B"}
|