social-mcp 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/dist/constants.d.ts +0 -2
- package/dist/constants.js +0 -4
- package/dist/constants.js.map +0 -1
- package/dist/run_tools_discord.d.ts +0 -19
- package/dist/run_tools_discord.js +0 -49
- package/dist/run_tools_discord.js.map +0 -1
- package/dist/run_tools_facebook.d.ts +0 -19
- package/dist/run_tools_facebook.js +0 -49
- package/dist/run_tools_facebook.js.map +0 -1
- package/dist/run_tools_instagram.d.ts +0 -20
- package/dist/run_tools_instagram.js +0 -54
- package/dist/run_tools_instagram.js.map +0 -1
- package/dist/run_tools_slack.d.ts +0 -19
- package/dist/run_tools_slack.js +0 -49
- package/dist/run_tools_slack.js.map +0 -1
- package/dist/run_tools_telegram.d.ts +0 -20
- package/dist/run_tools_telegram.js +0 -107
- package/dist/run_tools_telegram.js.map +0 -1
- package/dist/run_tools_twitter.d.ts +0 -23
- package/dist/run_tools_twitter.js +0 -74
- package/dist/run_tools_twitter.js.map +0 -1
- package/dist/run_tools_whatsapp.d.ts +0 -20
- package/dist/run_tools_whatsapp.js +0 -58
- package/dist/run_tools_whatsapp.js.map +0 -1
- package/dist/tests/config.test.d.ts +0 -1
- package/dist/tests/config.test.js +0 -21
- package/dist/tests/config.test.js.map +0 -1
- package/dist/tests/errors.test.d.ts +0 -1
- package/dist/tests/errors.test.js +0 -23
- package/dist/tests/errors.test.js.map +0 -1
- package/dist/tests/http.test.d.ts +0 -1
- package/dist/tests/http.test.js +0 -25
- package/dist/tests/http.test.js.map +0 -1
- package/dist/tests/services.test.d.ts +0 -1
- package/dist/tests/services.test.js +0 -80
- package/dist/tests/services.test.js.map +0 -1
- package/dist/tests/tools.test.d.ts +0 -1
- package/dist/tests/tools.test.js +0 -80
- package/dist/tests/tools.test.js.map +0 -1
- package/dist/types.d.ts +0 -4
- package/dist/types.js +0 -4
- package/dist/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "social-mcp",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "MCP server for posting and interacting across social media platforms: Twitter, Instagram, Facebook, WhatsApp, Discord, Telegram, and Slack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
"social-mcp": "dist/index.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"dist"
|
|
11
|
+
"dist",
|
|
12
|
+
"README.md"
|
|
12
13
|
],
|
|
13
14
|
"publishConfig": {
|
|
14
15
|
"access": "public"
|
package/dist/constants.d.ts
DELETED
package/dist/constants.js
DELETED
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mBAAmB;AAEnB,MAAM,CAAC,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Discord Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Discord MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:discord
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_discord.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* DISCORD_BOT_TOKEN - Your Discord bot token
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_DISCORD_CHANNEL_ID - The channel ID to send test messages to
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Discord Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Discord MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:discord
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_discord.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* DISCORD_BOT_TOKEN - Your Discord bot token
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_DISCORD_CHANNEL_ID - The channel ID to send test messages to
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
|
20
|
-
import { sendMessageTool } from "./tools/discord-tools/send-message.js";
|
|
21
|
-
const CHANNEL_ID = process.env.TEST_DISCORD_CHANNEL_ID ?? "";
|
|
22
|
-
function printSeparator(title) {
|
|
23
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
24
|
-
console.log(` ${title}`);
|
|
25
|
-
console.log("─".repeat(60));
|
|
26
|
-
}
|
|
27
|
-
async function runDiscordTests() {
|
|
28
|
-
console.log("🚀 Discord Tools Test Runner");
|
|
29
|
-
console.log(` DISCORD_BOT_TOKEN: ${process.env.DISCORD_BOT_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
30
|
-
console.log(` Channel ID: ${CHANNEL_ID || "(not set — tests will be skipped)"}`);
|
|
31
|
-
// ── 1. SEND_DISCORD_MESSAGE ─────────────────────────────────
|
|
32
|
-
printSeparator("1. SEND_DISCORD_MESSAGE");
|
|
33
|
-
if (CHANNEL_ID) {
|
|
34
|
-
const result = await sendMessageTool.execute({
|
|
35
|
-
channelId: CHANNEL_ID,
|
|
36
|
-
content: "👋 Hello from social-mcp! This is a test message.",
|
|
37
|
-
});
|
|
38
|
-
console.log(result);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.log("⚠️ Skipped: set TEST_DISCORD_CHANNEL_ID in .env to run this test.");
|
|
42
|
-
}
|
|
43
|
-
console.log("\n✅ Discord test runner complete.");
|
|
44
|
-
}
|
|
45
|
-
runDiscordTests().catch((err) => {
|
|
46
|
-
console.error("❌ Discord test runner failed:", err);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=run_tools_discord.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_discord.js","sourceRoot":"","sources":["../src/run_tools_discord.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC;AAE7D,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CACV,yBAAyB,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAChF,CAAC;IACF,OAAO,CAAC,GAAG,CACV,kBAAkB,UAAU,IAAI,mCAAmC,EAAE,CACrE,CAAC;IAEF,+DAA+D;IAC/D,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAC1C,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;YAC5C,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,mDAAmD;SAC5D,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,oEAAoE,CACpE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAClD,CAAC;AAED,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Facebook Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Facebook MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:facebook
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_facebook.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* FACEBOOK_ACCESS_TOKEN - Facebook Page access token (long-lived)
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_FACEBOOK_PAGE_ID - The Facebook Page ID to post to
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Facebook Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Facebook MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:facebook
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_facebook.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* FACEBOOK_ACCESS_TOKEN - Facebook Page access token (long-lived)
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_FACEBOOK_PAGE_ID - The Facebook Page ID to post to
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
|
20
|
-
import { createPostTool } from "./tools/facebook-tools/create-post.js";
|
|
21
|
-
const PAGE_ID = process.env.TEST_FACEBOOK_PAGE_ID ?? "";
|
|
22
|
-
function printSeparator(title) {
|
|
23
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
24
|
-
console.log(` ${title}`);
|
|
25
|
-
console.log("─".repeat(60));
|
|
26
|
-
}
|
|
27
|
-
async function runFacebookTests() {
|
|
28
|
-
console.log("🚀 Facebook Tools Test Runner");
|
|
29
|
-
console.log(` FACEBOOK_ACCESS_TOKEN: ${process.env.FACEBOOK_ACCESS_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
30
|
-
console.log(` Page ID: ${PAGE_ID || "(not set — test will be skipped)"}`);
|
|
31
|
-
// ── 1. CREATE_FACEBOOK_POST ─────────────────────────────────
|
|
32
|
-
printSeparator("1. CREATE_FACEBOOK_POST");
|
|
33
|
-
if (PAGE_ID) {
|
|
34
|
-
const result = await createPostTool.execute({
|
|
35
|
-
pageId: PAGE_ID,
|
|
36
|
-
message: "👋 Hello from social-mcp! This is a test post. #mcp #test",
|
|
37
|
-
});
|
|
38
|
-
console.log(result);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.log("⚠️ Skipped: set TEST_FACEBOOK_PAGE_ID in .env to run this test.");
|
|
42
|
-
}
|
|
43
|
-
console.log("\n✅ Facebook test runner complete.");
|
|
44
|
-
}
|
|
45
|
-
runFacebookTests().catch((err) => {
|
|
46
|
-
console.error("❌ Facebook test runner failed:", err);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=run_tools_facebook.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_facebook.js","sourceRoot":"","sources":["../src/run_tools_facebook.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAEvE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;AAExD,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CACV,6BAA6B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CACxF,CAAC;IACF,OAAO,CAAC,GAAG,CACV,eAAe,OAAO,IAAI,kCAAkC,EAAE,CAC9D,CAAC;IAEF,+DAA+D;IAC/D,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,2DAA2D;SACpE,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,kEAAkE,CAClE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAChC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Instagram Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Instagram MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:instagram
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_instagram.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* INSTAGRAM_ACCESS_TOKEN - Instagram Graph API access token
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_INSTAGRAM_USER_ID - Your Instagram Business/Creator account user ID
|
|
18
|
-
* TEST_INSTAGRAM_IMAGE_URL - Publicly accessible URL of an image to post
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Instagram Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Instagram MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:instagram
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_instagram.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* INSTAGRAM_ACCESS_TOKEN - Instagram Graph API access token
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_INSTAGRAM_USER_ID - Your Instagram Business/Creator account user ID
|
|
18
|
-
* TEST_INSTAGRAM_IMAGE_URL - Publicly accessible URL of an image to post
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
21
|
-
import { createPostTool } from "./tools/instagram-tools/create-post.js";
|
|
22
|
-
const USER_ID = process.env.TEST_INSTAGRAM_USER_ID ?? "";
|
|
23
|
-
const IMAGE_URL = process.env.TEST_INSTAGRAM_IMAGE_URL ??
|
|
24
|
-
"https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1080";
|
|
25
|
-
function printSeparator(title) {
|
|
26
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
27
|
-
console.log(` ${title}`);
|
|
28
|
-
console.log("─".repeat(60));
|
|
29
|
-
}
|
|
30
|
-
async function runInstagramTests() {
|
|
31
|
-
console.log("🚀 Instagram Tools Test Runner");
|
|
32
|
-
console.log(` INSTAGRAM_ACCESS_TOKEN: ${process.env.INSTAGRAM_ACCESS_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
33
|
-
console.log(` User ID: ${USER_ID || "(not set — test will be skipped)"}`);
|
|
34
|
-
console.log(` Image URL: ${IMAGE_URL}`);
|
|
35
|
-
// ── 1. CREATE_INSTAGRAM_POST ────────────────────────────────
|
|
36
|
-
printSeparator("1. CREATE_INSTAGRAM_POST");
|
|
37
|
-
if (USER_ID) {
|
|
38
|
-
const result = await createPostTool.execute({
|
|
39
|
-
userId: USER_ID,
|
|
40
|
-
imageUrl: IMAGE_URL,
|
|
41
|
-
message: "📸 Test post from social-mcp! #mcp #test",
|
|
42
|
-
});
|
|
43
|
-
console.log(result);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
console.log("⚠️ Skipped: set TEST_INSTAGRAM_USER_ID in .env to run this test.");
|
|
47
|
-
}
|
|
48
|
-
console.log("\n✅ Instagram test runner complete.");
|
|
49
|
-
}
|
|
50
|
-
runInstagramTests().catch((err) => {
|
|
51
|
-
console.error("❌ Instagram test runner failed:", err);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=run_tools_instagram.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_instagram.js","sourceRoot":"","sources":["../src/run_tools_instagram.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;AACzD,MAAM,SAAS,GACd,OAAO,CAAC,GAAG,CAAC,wBAAwB;IACpC,qEAAqE,CAAC;AAEvE,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CACV,8BAA8B,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAC1F,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,IAAI,kCAAkC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAE1C,+DAA+D;IAC/D,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,0CAA0C;SACnD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,mEAAmE,CACnE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC;AAED,iBAAiB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Slack Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Slack MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:slack
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_slack.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* SLACK_BOT_TOKEN - Your Slack bot OAuth token (xoxb-...)
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_SLACK_CHANNEL_ID - Slack channel ID (e.g. C1234567890) or name (#general)
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
package/dist/run_tools_slack.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Slack Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Slack MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:slack
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_slack.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* SLACK_BOT_TOKEN - Your Slack bot OAuth token (xoxb-...)
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_SLACK_CHANNEL_ID - Slack channel ID (e.g. C1234567890) or name (#general)
|
|
18
|
-
*/
|
|
19
|
-
import "dotenv/config";
|
|
20
|
-
import { sendMessageTool } from "./tools/slack-tools/send-message.js";
|
|
21
|
-
const CHANNEL_ID = process.env.TEST_SLACK_CHANNEL_ID ?? "";
|
|
22
|
-
function printSeparator(title) {
|
|
23
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
24
|
-
console.log(` ${title}`);
|
|
25
|
-
console.log("─".repeat(60));
|
|
26
|
-
}
|
|
27
|
-
async function runSlackTests() {
|
|
28
|
-
console.log("🚀 Slack Tools Test Runner");
|
|
29
|
-
console.log(` SLACK_BOT_TOKEN: ${process.env.SLACK_BOT_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
30
|
-
console.log(` Channel ID: ${CHANNEL_ID || "(not set — test will be skipped)"}`);
|
|
31
|
-
// ── 1. SEND_SLACK_MESSAGE ───────────────────────────────────
|
|
32
|
-
printSeparator("1. SEND_SLACK_MESSAGE");
|
|
33
|
-
if (CHANNEL_ID) {
|
|
34
|
-
const result = await sendMessageTool.execute({
|
|
35
|
-
channelId: CHANNEL_ID,
|
|
36
|
-
text: "👋 Hello from social-mcp! This is a test message. :robot_face:",
|
|
37
|
-
});
|
|
38
|
-
console.log(result);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
console.log("⚠️ Skipped: set TEST_SLACK_CHANNEL_ID in .env to run this test.");
|
|
42
|
-
}
|
|
43
|
-
console.log("\n✅ Slack test runner complete.");
|
|
44
|
-
}
|
|
45
|
-
runSlackTests().catch((err) => {
|
|
46
|
-
console.error("❌ Slack test runner failed:", err);
|
|
47
|
-
process.exit(1);
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=run_tools_slack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_slack.js","sourceRoot":"","sources":["../src/run_tools_slack.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEtE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;AAE3D,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CACV,uBAAuB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAC5E,CAAC;IACF,OAAO,CAAC,GAAG,CACV,kBAAkB,UAAU,IAAI,kCAAkC,EAAE,CACpE,CAAC;IAEF,+DAA+D;IAC/D,cAAc,CAAC,uBAAuB,CAAC,CAAC;IACxC,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;YAC5C,SAAS,EAAE,UAAU;YACrB,IAAI,EAAE,gEAAgE;SACtE,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,kEAAkE,CAClE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;AAChD,CAAC;AAED,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC7B,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Telegram Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Telegram MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:telegram
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_telegram.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* TELEGRAM_BOT_TOKEN - Your Telegram bot token from @BotFather
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_TELEGRAM_CHAT_ID - Chat ID or @username to send messages to
|
|
18
|
-
* TEST_TELEGRAM_CHANNEL_ID - Channel ID or @username to query
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Telegram Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Telegram MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:telegram
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_telegram.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* TELEGRAM_BOT_TOKEN - Your Telegram bot token from @BotFather
|
|
15
|
-
*
|
|
16
|
-
* Optional env vars (for testing):
|
|
17
|
-
* TEST_TELEGRAM_CHAT_ID - Chat ID or @username to send messages to
|
|
18
|
-
* TEST_TELEGRAM_CHANNEL_ID - Channel ID or @username to query
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
21
|
-
import { sendMessageTool } from "./tools/telegram-tools/send-message.js";
|
|
22
|
-
import { getChannelInfoTool } from "./tools/telegram-tools/get-channel-info.js";
|
|
23
|
-
import { getChannelMembersTool } from "./tools/telegram-tools/get-channel-members.js";
|
|
24
|
-
import { pinMessageTool } from "./tools/telegram-tools/pin-message.js";
|
|
25
|
-
import { forwardMessageTool } from "./tools/telegram-tools/forward-message.js";
|
|
26
|
-
const CHAT_ID = process.env.TEST_TELEGRAM_CHAT_ID ?? "";
|
|
27
|
-
const CHANNEL_ID = process.env.TEST_TELEGRAM_CHANNEL_ID ?? CHAT_ID;
|
|
28
|
-
function printSeparator(title) {
|
|
29
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
30
|
-
console.log(` ${title}`);
|
|
31
|
-
console.log("─".repeat(60));
|
|
32
|
-
}
|
|
33
|
-
async function runTelegramTests() {
|
|
34
|
-
console.log("🚀 Telegram Tools Test Runner");
|
|
35
|
-
console.log(` Bot Token: ${process.env.TELEGRAM_BOT_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
36
|
-
console.log(` Chat ID: ${CHAT_ID || "(not set — some tests will be skipped)"}`);
|
|
37
|
-
// ── 1. SEND_MESSAGE ─────────────────────────────────────────
|
|
38
|
-
printSeparator("1. SEND_MESSAGE");
|
|
39
|
-
if (CHAT_ID) {
|
|
40
|
-
const result = await sendMessageTool.execute({
|
|
41
|
-
chatId: CHAT_ID,
|
|
42
|
-
text: "👋 Hello from social-mcp! This is a test message.",
|
|
43
|
-
});
|
|
44
|
-
console.log(result);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
console.log("⚠️ Skipped: set TEST_TELEGRAM_CHAT_ID to run this test.");
|
|
48
|
-
}
|
|
49
|
-
// ── 2. GET_CHANNEL_INFO ─────────────────────────────────────
|
|
50
|
-
printSeparator("2. GET_CHANNEL_INFO");
|
|
51
|
-
if (CHANNEL_ID) {
|
|
52
|
-
const result = await getChannelInfoTool.execute({ channelId: CHANNEL_ID });
|
|
53
|
-
console.log(result);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
console.log("⚠️ Skipped: set TEST_TELEGRAM_CHANNEL_ID to run this test.");
|
|
57
|
-
}
|
|
58
|
-
// ── 3. GET_CHANNEL_MEMBERS ──────────────────────────────────
|
|
59
|
-
printSeparator("3. GET_CHANNEL_MEMBERS");
|
|
60
|
-
if (CHANNEL_ID) {
|
|
61
|
-
const result = await getChannelMembersTool.execute({
|
|
62
|
-
channelId: CHANNEL_ID,
|
|
63
|
-
limit: 5,
|
|
64
|
-
});
|
|
65
|
-
console.log(result);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
console.log("⚠️ Skipped: set TEST_TELEGRAM_CHANNEL_ID to run this test.");
|
|
69
|
-
}
|
|
70
|
-
// ── 4. PIN_MESSAGE (requires a known message ID) ────────────
|
|
71
|
-
printSeparator("4. PIN_MESSAGE");
|
|
72
|
-
console.log("⚠️ Skipped: requires a known message ID. Set TEST_TELEGRAM_MESSAGE_ID to enable.");
|
|
73
|
-
const pinMessageId = process.env.TEST_TELEGRAM_MESSAGE_ID
|
|
74
|
-
? Number(process.env.TEST_TELEGRAM_MESSAGE_ID)
|
|
75
|
-
: null;
|
|
76
|
-
if (pinMessageId && CHAT_ID) {
|
|
77
|
-
const result = await pinMessageTool.execute({
|
|
78
|
-
chatId: CHAT_ID,
|
|
79
|
-
messageId: pinMessageId,
|
|
80
|
-
disableNotification: true,
|
|
81
|
-
});
|
|
82
|
-
console.log(result);
|
|
83
|
-
}
|
|
84
|
-
// ── 5. FORWARD_MESSAGE (requires source + destination) ──────
|
|
85
|
-
printSeparator("5. FORWARD_MESSAGE");
|
|
86
|
-
const fromChatId = process.env.TEST_TELEGRAM_FROM_CHAT_ID;
|
|
87
|
-
const fwdMessageId = process.env.TEST_TELEGRAM_FWD_MESSAGE_ID
|
|
88
|
-
? Number(process.env.TEST_TELEGRAM_FWD_MESSAGE_ID)
|
|
89
|
-
: null;
|
|
90
|
-
if (fromChatId && CHAT_ID && fwdMessageId) {
|
|
91
|
-
const result = await forwardMessageTool.execute({
|
|
92
|
-
fromChatId,
|
|
93
|
-
toChatId: CHAT_ID,
|
|
94
|
-
messageId: fwdMessageId,
|
|
95
|
-
});
|
|
96
|
-
console.log(result);
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.log("⚠️ Skipped: set TEST_TELEGRAM_FROM_CHAT_ID and TEST_TELEGRAM_FWD_MESSAGE_ID to run this test.");
|
|
100
|
-
}
|
|
101
|
-
console.log("\n✅ Telegram test runner complete.");
|
|
102
|
-
}
|
|
103
|
-
runTelegramTests().catch((err) => {
|
|
104
|
-
console.error("❌ Telegram test runner failed:", err);
|
|
105
|
-
process.exit(1);
|
|
106
|
-
});
|
|
107
|
-
//# sourceMappingURL=run_tools_telegram.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_telegram.js","sourceRoot":"","sources":["../src/run_tools_telegram.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Twitter Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Twitter MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:twitter
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_twitter.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* TWITTER_APP_KEY - Twitter API app key (consumer key)
|
|
15
|
-
* TWITTER_APP_SECRET - Twitter API app secret (consumer secret)
|
|
16
|
-
* TWITTER_ACCESS_TOKEN - Access token for your account
|
|
17
|
-
* TWITTER_ACCESS_SECRET - Access token secret for your account
|
|
18
|
-
*
|
|
19
|
-
* Optional env vars (for testing):
|
|
20
|
-
* TEST_TWITTER_USERNAME - Twitter username to look up (without @)
|
|
21
|
-
* TEST_TWITTER_QUERY - Search query to use for SEARCH_TWEETS
|
|
22
|
-
*/
|
|
23
|
-
import "dotenv/config";
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* Twitter Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all Twitter MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:twitter
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_twitter.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* TWITTER_APP_KEY - Twitter API app key (consumer key)
|
|
15
|
-
* TWITTER_APP_SECRET - Twitter API app secret (consumer secret)
|
|
16
|
-
* TWITTER_ACCESS_TOKEN - Access token for your account
|
|
17
|
-
* TWITTER_ACCESS_SECRET - Access token secret for your account
|
|
18
|
-
*
|
|
19
|
-
* Optional env vars (for testing):
|
|
20
|
-
* TEST_TWITTER_USERNAME - Twitter username to look up (without @)
|
|
21
|
-
* TEST_TWITTER_QUERY - Search query to use for SEARCH_TWEETS
|
|
22
|
-
*/
|
|
23
|
-
import "dotenv/config";
|
|
24
|
-
import { sendTweetTool } from "./tools/twitter-tools/send-tweet.js";
|
|
25
|
-
import { getUserInfoTool } from "./tools/twitter-tools/get-user-info.js";
|
|
26
|
-
import { searchTweetsTool } from "./tools/twitter-tools/search-tweets.js";
|
|
27
|
-
const TEST_USERNAME = process.env.TEST_TWITTER_USERNAME ?? "twitter";
|
|
28
|
-
const TEST_QUERY = process.env.TEST_TWITTER_QUERY ?? "MCP server";
|
|
29
|
-
function printSeparator(title) {
|
|
30
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
31
|
-
console.log(` ${title}`);
|
|
32
|
-
console.log("─".repeat(60));
|
|
33
|
-
}
|
|
34
|
-
function checkCreds() {
|
|
35
|
-
const keys = [
|
|
36
|
-
"TWITTER_APP_KEY",
|
|
37
|
-
"TWITTER_APP_SECRET",
|
|
38
|
-
"TWITTER_ACCESS_TOKEN",
|
|
39
|
-
"TWITTER_ACCESS_SECRET",
|
|
40
|
-
];
|
|
41
|
-
return keys.map((k) => ` ${k}: ${process.env[k] ? "✅ Set" : "❌ Missing"}`).join("\n");
|
|
42
|
-
}
|
|
43
|
-
async function runTwitterTests() {
|
|
44
|
-
console.log("🚀 Twitter Tools Test Runner");
|
|
45
|
-
console.log(checkCreds());
|
|
46
|
-
// ── 1. GET_USER_INFO ────────────────────────────────────────
|
|
47
|
-
printSeparator(`1. GET_USER_INFO (@${TEST_USERNAME})`);
|
|
48
|
-
const userResult = await getUserInfoTool.execute({ username: TEST_USERNAME });
|
|
49
|
-
console.log(userResult);
|
|
50
|
-
// ── 2. SEARCH_TWEETS ────────────────────────────────────────
|
|
51
|
-
printSeparator(`2. SEARCH_TWEETS ("${TEST_QUERY}")`);
|
|
52
|
-
const searchResult = await searchTweetsTool.execute({
|
|
53
|
-
query: TEST_QUERY,
|
|
54
|
-
maxResults: 10,
|
|
55
|
-
});
|
|
56
|
-
console.log(searchResult);
|
|
57
|
-
// ── 3. SEND_TWEET ───────────────────────────────────────────
|
|
58
|
-
printSeparator("3. SEND_TWEET");
|
|
59
|
-
if (process.env.ENABLE_SEND_TWEET === "true") {
|
|
60
|
-
const tweetResult = await sendTweetTool.execute({
|
|
61
|
-
text: "🤖 Test tweet from social-mcp! #mcp #test",
|
|
62
|
-
});
|
|
63
|
-
console.log(tweetResult);
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
console.log("⚠️ Skipped: set ENABLE_SEND_TWEET=true in .env to actually post a tweet.");
|
|
67
|
-
}
|
|
68
|
-
console.log("\n✅ Twitter test runner complete.");
|
|
69
|
-
}
|
|
70
|
-
runTwitterTests().catch((err) => {
|
|
71
|
-
console.error("❌ Twitter test runner failed:", err);
|
|
72
|
-
process.exit(1);
|
|
73
|
-
});
|
|
74
|
-
//# sourceMappingURL=run_tools_twitter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_twitter.js","sourceRoot":"","sources":["../src/run_tools_twitter.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS,CAAC;AACrE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,YAAY,CAAC;AAElE,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,UAAU;IAClB,MAAM,IAAI,GAAG;QACZ,iBAAiB;QACjB,oBAAoB;QACpB,sBAAsB;QACtB,uBAAuB;KACvB,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzF,CAAC;AAED,KAAK,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAE1B,+DAA+D;IAC/D,cAAc,CAAC,sBAAsB,aAAa,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAExB,+DAA+D;IAC/D,cAAc,CAAC,sBAAsB,UAAU,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC;QACnD,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,EAAE;KACd,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1B,+DAA+D;IAC/D,cAAc,CAAC,eAAe,CAAC,CAAC;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC;YAC/C,IAAI,EAAE,2CAA2C;SACjD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,2EAA2E,CAC3E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AAClD,CAAC;AAED,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* WhatsApp Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all WhatsApp MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:whatsapp
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_whatsapp.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* WHATSAPP_ACCESS_TOKEN - WhatsApp Business API access token
|
|
15
|
-
* WHATSAPP_PHONE_NUMBER_ID - Your WhatsApp Business phone number ID
|
|
16
|
-
*
|
|
17
|
-
* Optional env vars (for testing):
|
|
18
|
-
* TEST_WHATSAPP_TO - Recipient phone number in E.164 format (e.g. +1234567890)
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* WhatsApp Tools Test Runner
|
|
4
|
-
*
|
|
5
|
-
* Tests all WhatsApp MCP tools against the real API.
|
|
6
|
-
* Set environment variables in .env before running.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* pnpm run:whatsapp
|
|
10
|
-
* -- or after build --
|
|
11
|
-
* node dist/run_tools_whatsapp.js
|
|
12
|
-
*
|
|
13
|
-
* Required env vars:
|
|
14
|
-
* WHATSAPP_ACCESS_TOKEN - WhatsApp Business API access token
|
|
15
|
-
* WHATSAPP_PHONE_NUMBER_ID - Your WhatsApp Business phone number ID
|
|
16
|
-
*
|
|
17
|
-
* Optional env vars (for testing):
|
|
18
|
-
* TEST_WHATSAPP_TO - Recipient phone number in E.164 format (e.g. +1234567890)
|
|
19
|
-
*/
|
|
20
|
-
import "dotenv/config";
|
|
21
|
-
import { sendMessageTool } from "./tools/whatsapp-tools/send-message.js";
|
|
22
|
-
import { getMessagesTool } from "./tools/whatsapp-tools/get-messages.js";
|
|
23
|
-
const RECIPIENT = process.env.TEST_WHATSAPP_TO ?? "";
|
|
24
|
-
function printSeparator(title) {
|
|
25
|
-
console.log(`\n${"─".repeat(60)}`);
|
|
26
|
-
console.log(` ${title}`);
|
|
27
|
-
console.log("─".repeat(60));
|
|
28
|
-
}
|
|
29
|
-
async function runWhatsAppTests() {
|
|
30
|
-
console.log("🚀 WhatsApp Tools Test Runner");
|
|
31
|
-
console.log(` WHATSAPP_ACCESS_TOKEN: ${process.env.WHATSAPP_ACCESS_TOKEN ? "✅ Set" : "❌ Missing"}`);
|
|
32
|
-
console.log(` WHATSAPP_PHONE_NUMBER_ID: ${process.env.WHATSAPP_PHONE_NUMBER_ID ? "✅ Set" : "❌ Missing"}`);
|
|
33
|
-
console.log(` Recipient: ${RECIPIENT || "(not set — SEND test will be skipped)"}`);
|
|
34
|
-
// ── 1. SEND_WHATSAPP_MESSAGE ────────────────────────────────
|
|
35
|
-
printSeparator("1. SEND_WHATSAPP_MESSAGE");
|
|
36
|
-
if (RECIPIENT) {
|
|
37
|
-
const result = await sendMessageTool.execute({
|
|
38
|
-
to: RECIPIENT,
|
|
39
|
-
text: "👋 Hello from social-mcp! This is a test message.",
|
|
40
|
-
});
|
|
41
|
-
console.log(result);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
console.log("⚠️ Skipped: set TEST_WHATSAPP_TO in .env to run this test.");
|
|
45
|
-
}
|
|
46
|
-
// ── 2. GET_WHATSAPP_MESSAGES ────────────────────────────────
|
|
47
|
-
printSeparator("2. GET_WHATSAPP_MESSAGES");
|
|
48
|
-
console.log("ℹ️ Note: WhatsApp Business API does not support fetching message history");
|
|
49
|
-
console.log(" via a simple GET endpoint — this tool uses webhooks in production.");
|
|
50
|
-
const result = await getMessagesTool.execute({ limit: 5 });
|
|
51
|
-
console.log(result);
|
|
52
|
-
console.log("\n✅ WhatsApp test runner complete.");
|
|
53
|
-
}
|
|
54
|
-
runWhatsAppTests().catch((err) => {
|
|
55
|
-
console.error("❌ WhatsApp test runner failed:", err);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
});
|
|
58
|
-
//# sourceMappingURL=run_tools_whatsapp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run_tools_whatsapp.js","sourceRoot":"","sources":["../src/run_tools_whatsapp.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAErD,SAAS,cAAc,CAAC,KAAa;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CACV,gCAAgC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAC3F,CAAC;IACF,OAAO,CAAC,GAAG,CACV,gCAAgC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAC9F,CAAC;IACF,OAAO,CAAC,GAAG,CACV,iBAAiB,SAAS,IAAI,uCAAuC,EAAE,CACvE,CAAC;IAEF,+DAA+D;IAC/D,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC3C,IAAI,SAAS,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC;YAC5C,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,mDAAmD;SACzD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CACV,6DAA6D,CAC7D,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CACV,2EAA2E,CAC3E,CAAC;IACF,OAAO,CAAC,GAAG,CACV,uEAAuE,CACvE,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEpB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;AACnD,CAAC;AAED,gBAAgB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAChC,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { META_API_VERSION, config } from "../lib/config.js";
|
|
3
|
-
describe("config", () => {
|
|
4
|
-
it("META_API_VERSION is a valid Graph API version string", () => {
|
|
5
|
-
expect(META_API_VERSION).toMatch(/^v\d+\.\d+$/);
|
|
6
|
-
});
|
|
7
|
-
it("all Meta services share the same base URL", () => {
|
|
8
|
-
expect(config.whatsapp.baseUrl).toBe(config.facebook.baseUrl);
|
|
9
|
-
expect(config.facebook.baseUrl).toBe(config.instagram.baseUrl);
|
|
10
|
-
});
|
|
11
|
-
it("Meta base URLs contain META_API_VERSION", () => {
|
|
12
|
-
expect(config.facebook.baseUrl).toContain(META_API_VERSION);
|
|
13
|
-
});
|
|
14
|
-
it("discord baseUrl points to api v10", () => {
|
|
15
|
-
expect(config.discord.baseUrl).toContain("discord.com/api/v10");
|
|
16
|
-
});
|
|
17
|
-
it("config exposes whatsapp phoneNumberId field", () => {
|
|
18
|
-
expect(config.whatsapp).toHaveProperty("phoneNumberId");
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
//# sourceMappingURL=config.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/tests/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE5D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACvB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { CredentialsError } from "../lib/errors.js";
|
|
3
|
-
describe("CredentialsError", () => {
|
|
4
|
-
it("sets name to CredentialsError", () => {
|
|
5
|
-
const err = new CredentialsError("Twitter", ["TWITTER_APP_KEY"]);
|
|
6
|
-
expect(err.name).toBe("CredentialsError");
|
|
7
|
-
});
|
|
8
|
-
it("includes platform name in message", () => {
|
|
9
|
-
const err = new CredentialsError("Slack", ["SLACK_BOT_TOKEN"]);
|
|
10
|
-
expect(err.message).toContain("Slack");
|
|
11
|
-
});
|
|
12
|
-
it("includes all missing var names in message", () => {
|
|
13
|
-
const missing = ["TWITTER_APP_KEY", "TWITTER_APP_SECRET"];
|
|
14
|
-
const err = new CredentialsError("Twitter", missing);
|
|
15
|
-
expect(err.message).toContain("TWITTER_APP_KEY");
|
|
16
|
-
expect(err.message).toContain("TWITTER_APP_SECRET");
|
|
17
|
-
});
|
|
18
|
-
it("is an instance of Error", () => {
|
|
19
|
-
const err = new CredentialsError("Discord", ["DISCORD_BOT_TOKEN"]);
|
|
20
|
-
expect(err).toBeInstanceOf(Error);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=errors.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../src/tests/errors.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACxC,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC5C,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,OAAO,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAClC,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/tests/http.test.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { HttpError } from "../lib/http.js";
|
|
3
|
-
describe("HttpError", () => {
|
|
4
|
-
it("sets status code", () => {
|
|
5
|
-
const err = new HttpError(404, "Not found");
|
|
6
|
-
expect(err.status).toBe(404);
|
|
7
|
-
});
|
|
8
|
-
it("sets message", () => {
|
|
9
|
-
const err = new HttpError(500, "Internal error");
|
|
10
|
-
expect(err.message).toBe("Internal error");
|
|
11
|
-
});
|
|
12
|
-
it("stores optional data payload", () => {
|
|
13
|
-
const data = { detail: "rate limited" };
|
|
14
|
-
const err = new HttpError(429, "Too many requests", data);
|
|
15
|
-
expect(err.data).toEqual(data);
|
|
16
|
-
});
|
|
17
|
-
it("name is HttpError", () => {
|
|
18
|
-
const err = new HttpError(400, "Bad request");
|
|
19
|
-
expect(err.name).toBe("HttpError");
|
|
20
|
-
});
|
|
21
|
-
it("is an instance of Error", () => {
|
|
22
|
-
expect(new HttpError(401, "Unauthorized")).toBeInstanceOf(Error);
|
|
23
|
-
});
|
|
24
|
-
});
|
|
25
|
-
//# sourceMappingURL=http.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http.test.js","sourceRoot":"","sources":["../../src/tests/http.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAC3B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;QACvB,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC5B,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
2
|
-
import { CredentialsError } from "../lib/errors.js";
|
|
3
|
-
// Save and restore env around each test
|
|
4
|
-
const savedEnv = {};
|
|
5
|
-
const TWITTER_KEYS = [
|
|
6
|
-
"TWITTER_APP_KEY",
|
|
7
|
-
"TWITTER_APP_SECRET",
|
|
8
|
-
"TWITTER_ACCESS_TOKEN",
|
|
9
|
-
"TWITTER_ACCESS_SECRET",
|
|
10
|
-
];
|
|
11
|
-
function saveEnv(keys) {
|
|
12
|
-
for (const k of keys)
|
|
13
|
-
savedEnv[k] = process.env[k];
|
|
14
|
-
}
|
|
15
|
-
function clearEnv(keys) {
|
|
16
|
-
for (const k of keys)
|
|
17
|
-
delete process.env[k];
|
|
18
|
-
}
|
|
19
|
-
function restoreEnv(keys) {
|
|
20
|
-
for (const k of keys) {
|
|
21
|
-
if (savedEnv[k] === undefined) {
|
|
22
|
-
delete process.env[k];
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
process.env[k] = savedEnv[k];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
describe("TwitterService credential validation", () => {
|
|
30
|
-
beforeEach(() => saveEnv(TWITTER_KEYS));
|
|
31
|
-
afterEach(() => restoreEnv(TWITTER_KEYS));
|
|
32
|
-
it("throws CredentialsError when all keys are missing", async () => {
|
|
33
|
-
clearEnv(TWITTER_KEYS);
|
|
34
|
-
// Re-import fresh module to bypass singleton
|
|
35
|
-
const { TwitterService } = await import("../services/twitter-service.js");
|
|
36
|
-
expect(() => new TwitterService()).toThrow(CredentialsError);
|
|
37
|
-
});
|
|
38
|
-
it("CredentialsError message lists missing vars", async () => {
|
|
39
|
-
clearEnv(TWITTER_KEYS);
|
|
40
|
-
const { TwitterService } = await import("../services/twitter-service.js");
|
|
41
|
-
let msg = "";
|
|
42
|
-
try {
|
|
43
|
-
new TwitterService();
|
|
44
|
-
}
|
|
45
|
-
catch (e) {
|
|
46
|
-
if (e instanceof CredentialsError)
|
|
47
|
-
msg = e.message;
|
|
48
|
-
}
|
|
49
|
-
expect(msg).toContain("TWITTER_APP_KEY");
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
describe("TelegramService credential validation", () => {
|
|
53
|
-
beforeEach(() => saveEnv(["TELEGRAM_BOT_TOKEN"]));
|
|
54
|
-
afterEach(() => restoreEnv(["TELEGRAM_BOT_TOKEN"]));
|
|
55
|
-
it("throws CredentialsError when token is missing", async () => {
|
|
56
|
-
delete process.env.TELEGRAM_BOT_TOKEN;
|
|
57
|
-
const { TelegramService } = await import("../services/telegram-service.js");
|
|
58
|
-
expect(() => new TelegramService()).toThrow(CredentialsError);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe("SlackService credential validation", () => {
|
|
62
|
-
beforeEach(() => saveEnv(["SLACK_BOT_TOKEN"]));
|
|
63
|
-
afterEach(() => restoreEnv(["SLACK_BOT_TOKEN"]));
|
|
64
|
-
it("throws CredentialsError when token is missing", async () => {
|
|
65
|
-
delete process.env.SLACK_BOT_TOKEN;
|
|
66
|
-
const { SlackService } = await import("../services/slack-service.js");
|
|
67
|
-
expect(() => new SlackService()).toThrow(CredentialsError);
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
describe("DiscordService credential validation", () => {
|
|
71
|
-
beforeEach(() => saveEnv(["DISCORD_BOT_TOKEN"]));
|
|
72
|
-
afterEach(() => restoreEnv(["DISCORD_BOT_TOKEN"]));
|
|
73
|
-
it("throws CredentialsError when token is missing", async () => {
|
|
74
|
-
delete process.env.DISCORD_BOT_TOKEN;
|
|
75
|
-
// Reset module-level config by re-importing
|
|
76
|
-
const { DiscordService } = await import("../services/discord-service.js");
|
|
77
|
-
expect(() => new DiscordService()).toThrow(CredentialsError);
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=services.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"services.test.js","sourceRoot":"","sources":["../../src/tests/services.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/tests/tools.test.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
// Test Zod parameter schemas used by tools directly, without instantiating services
|
|
4
|
-
const sendTweetParams = z.object({
|
|
5
|
-
text: z.string().min(1).max(280),
|
|
6
|
-
});
|
|
7
|
-
const searchTweetsParams = z.object({
|
|
8
|
-
query: z.string().min(1),
|
|
9
|
-
maxResults: z.number().int().min(10).max(100).default(10),
|
|
10
|
-
});
|
|
11
|
-
const whatsappSendParams = z.object({
|
|
12
|
-
to: z.string(),
|
|
13
|
-
text: z.string().min(1),
|
|
14
|
-
});
|
|
15
|
-
const instagramCreatePostParams = z.object({
|
|
16
|
-
userId: z.string(),
|
|
17
|
-
imageUrl: z.string().url(),
|
|
18
|
-
caption: z.string().min(1),
|
|
19
|
-
});
|
|
20
|
-
const discordGetMessagesParams = z.object({
|
|
21
|
-
channelId: z.string(),
|
|
22
|
-
limit: z.number().int().min(1).max(100).default(50),
|
|
23
|
-
});
|
|
24
|
-
describe("SEND_TWEET param schema", () => {
|
|
25
|
-
it("accepts valid text", () => {
|
|
26
|
-
expect(() => sendTweetParams.parse({ text: "Hello!" })).not.toThrow();
|
|
27
|
-
});
|
|
28
|
-
it("rejects empty string", () => {
|
|
29
|
-
expect(() => sendTweetParams.parse({ text: "" })).toThrow();
|
|
30
|
-
});
|
|
31
|
-
it("rejects text over 280 chars", () => {
|
|
32
|
-
expect(() => sendTweetParams.parse({ text: "a".repeat(281) })).toThrow();
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
describe("SEARCH_TWEETS param schema", () => {
|
|
36
|
-
it("defaults maxResults to 10", () => {
|
|
37
|
-
const parsed = searchTweetsParams.parse({ query: "MCP" });
|
|
38
|
-
expect(parsed.maxResults).toBe(10);
|
|
39
|
-
});
|
|
40
|
-
it("rejects maxResults below 10", () => {
|
|
41
|
-
expect(() => searchTweetsParams.parse({ query: "x", maxResults: 5 })).toThrow();
|
|
42
|
-
});
|
|
43
|
-
it("rejects maxResults above 100", () => {
|
|
44
|
-
expect(() => searchTweetsParams.parse({ query: "x", maxResults: 101 })).toThrow();
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
describe("SEND_WHATSAPP_MESSAGE param schema", () => {
|
|
48
|
-
it("accepts valid params", () => {
|
|
49
|
-
expect(() => whatsappSendParams.parse({ to: "+2348012345678", text: "Hi" })).not.toThrow();
|
|
50
|
-
});
|
|
51
|
-
it("rejects empty text", () => {
|
|
52
|
-
expect(() => whatsappSendParams.parse({ to: "+2348012345678", text: "" })).toThrow();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe("CREATE_INSTAGRAM_POST param schema", () => {
|
|
56
|
-
it("accepts valid params with caption field", () => {
|
|
57
|
-
expect(() => instagramCreatePostParams.parse({
|
|
58
|
-
userId: "123",
|
|
59
|
-
imageUrl: "https://example.com/img.jpg",
|
|
60
|
-
caption: "My caption",
|
|
61
|
-
})).not.toThrow();
|
|
62
|
-
});
|
|
63
|
-
it("rejects invalid image URL", () => {
|
|
64
|
-
expect(() => instagramCreatePostParams.parse({
|
|
65
|
-
userId: "123",
|
|
66
|
-
imageUrl: "not-a-url",
|
|
67
|
-
caption: "caption",
|
|
68
|
-
})).toThrow();
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
describe("GET_DISCORD_MESSAGES param schema", () => {
|
|
72
|
-
it("defaults limit to 50", () => {
|
|
73
|
-
const parsed = discordGetMessagesParams.parse({ channelId: "123" });
|
|
74
|
-
expect(parsed.limit).toBe(50);
|
|
75
|
-
});
|
|
76
|
-
it("rejects limit above 100", () => {
|
|
77
|
-
expect(() => discordGetMessagesParams.parse({ channelId: "123", limit: 101 })).toThrow();
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
//# sourceMappingURL=tools.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tools.test.js","sourceRoot":"","sources":["../../src/tests/tools.test.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,eAAe;;AAQf,gEAAgE"}
|