social-mcp 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -4
- package/dist/index.js +21 -18
- package/dist/index.js.map +1 -1
- package/dist/services/bluesky-service.d.ts +8 -1
- package/dist/services/bluesky-service.js +12 -5
- package/dist/services/bluesky-service.js.map +1 -1
- package/dist/services/discord-service.d.ts +4 -1
- package/dist/services/discord-service.js +4 -3
- package/dist/services/discord-service.js.map +1 -1
- package/dist/services/email-service.d.ts +19 -3
- package/dist/services/email-service.js +60 -28
- package/dist/services/email-service.js.map +1 -1
- package/dist/services/facebook-service.d.ts +4 -1
- package/dist/services/facebook-service.js +4 -3
- package/dist/services/facebook-service.js.map +1 -1
- package/dist/services/instagram-service.d.ts +4 -1
- package/dist/services/instagram-service.js +4 -3
- package/dist/services/instagram-service.js.map +1 -1
- package/dist/services/linkedin-service.d.ts +4 -1
- package/dist/services/linkedin-service.js +4 -3
- package/dist/services/linkedin-service.js.map +1 -1
- package/dist/services/mastodon-service.d.ts +5 -1
- package/dist/services/mastodon-service.js +6 -4
- package/dist/services/mastodon-service.js.map +1 -1
- package/dist/services/reddit-service.d.ts +12 -1
- package/dist/services/reddit-service.js +20 -10
- package/dist/services/reddit-service.js.map +1 -1
- package/dist/services/slack-service.d.ts +4 -1
- package/dist/services/slack-service.js +2 -2
- package/dist/services/slack-service.js.map +1 -1
- package/dist/services/telegram-service.d.ts +4 -1
- package/dist/services/telegram-service.js +2 -2
- package/dist/services/telegram-service.js.map +1 -1
- package/dist/services/threads-service.d.ts +7 -1
- package/dist/services/threads-service.js +16 -10
- package/dist/services/threads-service.js.map +1 -1
- package/dist/services/tiktok-service.d.ts +4 -1
- package/dist/services/tiktok-service.js +4 -3
- package/dist/services/tiktok-service.js.map +1 -1
- package/dist/services/twitter-service.d.ts +7 -1
- package/dist/services/twitter-service.js +5 -5
- package/dist/services/twitter-service.js.map +1 -1
- package/dist/services/whatsapp-service.d.ts +5 -1
- package/dist/services/whatsapp-service.js +8 -5
- package/dist/services/whatsapp-service.js.map +1 -1
- package/dist/services/youtube-service.d.ts +4 -1
- package/dist/services/youtube-service.js +4 -3
- package/dist/services/youtube-service.js.map +1 -1
- package/dist/tools/email-tools/send-bulk-email.d.ts +39 -1
- package/dist/tools/email-tools/send-bulk-email.js +69 -7
- package/dist/tools/email-tools/send-bulk-email.js.map +1 -1
- package/dist/tools/email-tools/send-email.d.ts +39 -1
- package/dist/tools/email-tools/send-email.js +69 -7
- package/dist/tools/email-tools/send-email.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -215,7 +215,9 @@ Copy `example.env` to `.env` and fill in the credentials for the platforms you w
|
|
|
215
215
|
|
|
216
216
|
### Email
|
|
217
217
|
|
|
218
|
-
Email uses a Laravel-style driver system.
|
|
218
|
+
Email uses a Laravel-style driver system. **Env vars are optional** — credentials can also be passed inline per tool call (see [Per-org / Multi-account Usage](#per-org--multi-account-usage)).
|
|
219
|
+
|
|
220
|
+
Set `MAIL_MAILER` to select your provider and only configure the variables for the driver you choose.
|
|
219
221
|
|
|
220
222
|
| Variable | Description |
|
|
221
223
|
| -------------------- | ---------------------------------------------------------------------- |
|
|
@@ -233,6 +235,8 @@ Email uses a Laravel-style driver system. Set `MAIL_MAILER` to select your provi
|
|
|
233
235
|
| `MAIL_PASSWORD` | SMTP authentication password |
|
|
234
236
|
| `MAIL_ENCRYPTION` | Connection security: `tls` (default), `ssl`, or `none` |
|
|
235
237
|
|
|
238
|
+
> **SMTP verification:** On startup, social-mcp calls `transporter.verify()` against your SMTP server. A misconfigured host or wrong password shows `[!!]` in the startup log rather than failing silently on the first send.
|
|
239
|
+
|
|
236
240
|
**SendGrid** (`MAIL_MAILER=sendgrid`)
|
|
237
241
|
|
|
238
242
|
| Variable | Description |
|
|
@@ -378,10 +382,59 @@ Email uses a Laravel-style driver system. Set `MAIL_MAILER` to select your provi
|
|
|
378
382
|
|
|
379
383
|
### Email
|
|
380
384
|
|
|
381
|
-
- **EMAIL_SEND** — Send an email to a single recipient (`to`, `subject`, `text`, `html
|
|
382
|
-
- **EMAIL_SEND_BULK** — Send the same email to multiple recipients (`recipients`, `subject`, `text`, `html
|
|
385
|
+
- **EMAIL_SEND** — Send an email to a single recipient (`to`, `subject`, `text`, `html`; plus optional inline credentials — see below)
|
|
386
|
+
- **EMAIL_SEND_BULK** — Send the same email to multiple recipients (`recipients`, `subject`, `text`, `html`; plus optional inline credentials)
|
|
387
|
+
|
|
388
|
+
> The active mail driver is selected by `MAIL_MAILER`. Switching providers requires only changing that one variable — no code changes needed. Credentials can also be passed inline per call for multi-account / per-org use cases.
|
|
389
|
+
|
|
390
|
+
## Per-org / Multi-account Usage
|
|
391
|
+
|
|
392
|
+
Both email tools accept **inline credentials** as optional parameters. When provided, they take full priority over env vars — a fresh, isolated `EmailService` is created for that call. This enables per-organization or per-user email accounts without any env var changes.
|
|
393
|
+
|
|
394
|
+
**Example — SMTP:**
|
|
395
|
+
```json
|
|
396
|
+
{
|
|
397
|
+
"mailer": "smtp",
|
|
398
|
+
"fromAddress": "team@acme.com",
|
|
399
|
+
"fromName": "Acme Corp",
|
|
400
|
+
"smtpHost": "smtp.gmail.com",
|
|
401
|
+
"smtpPort": 587,
|
|
402
|
+
"smtpUsername": "team@acme.com",
|
|
403
|
+
"smtpPassword": "app-password",
|
|
404
|
+
"smtpEncryption": "tls",
|
|
405
|
+
"to": "customer@example.com",
|
|
406
|
+
"subject": "Hello",
|
|
407
|
+
"text": "Hi there!"
|
|
408
|
+
}
|
|
409
|
+
```
|
|
410
|
+
|
|
411
|
+
**Example — SendGrid:**
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"mailer": "sendgrid",
|
|
415
|
+
"fromAddress": "team@acme.com",
|
|
416
|
+
"sendgridApiKey": "SG.xxxx",
|
|
417
|
+
"recipients": ["a@example.com", "b@example.com"],
|
|
418
|
+
"subject": "Newsletter",
|
|
419
|
+
"text": "Plain text body",
|
|
420
|
+
"html": "<p>HTML body</p>"
|
|
421
|
+
}
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Example — Mailgun:**
|
|
425
|
+
```json
|
|
426
|
+
{
|
|
427
|
+
"mailer": "mailgun",
|
|
428
|
+
"fromAddress": "team@acme.com",
|
|
429
|
+
"mailgunApiKey": "key-xxxx",
|
|
430
|
+
"mailgunDomain": "mg.acme.com",
|
|
431
|
+
"to": "customer@example.com",
|
|
432
|
+
"subject": "Hello",
|
|
433
|
+
"text": "Hi there!"
|
|
434
|
+
}
|
|
435
|
+
```
|
|
383
436
|
|
|
384
|
-
|
|
437
|
+
When `mailer` and `fromAddress` are omitted, the tool falls back to the env var configuration (`MAIL_MAILER`, `MAIL_FROM_ADDRESS`, etc.).
|
|
385
438
|
|
|
386
439
|
## Development
|
|
387
440
|
|
package/dist/index.js
CHANGED
|
@@ -94,9 +94,9 @@ import { searchVideosTool as youtubeSearchVideosTool } from "./tools/youtube-too
|
|
|
94
94
|
import { updateVideoTool as youtubeUpdateVideoTool } from "./tools/youtube-tools/update-video.js";
|
|
95
95
|
const require = createRequire(import.meta.url);
|
|
96
96
|
const { version } = require("../package.json");
|
|
97
|
-
function checkPlatform(name, init) {
|
|
97
|
+
async function checkPlatform(name, init) {
|
|
98
98
|
try {
|
|
99
|
-
init();
|
|
99
|
+
await init();
|
|
100
100
|
console.error(` [ok] ${name}`);
|
|
101
101
|
}
|
|
102
102
|
catch (err) {
|
|
@@ -110,22 +110,25 @@ function checkPlatform(name, init) {
|
|
|
110
110
|
}
|
|
111
111
|
async function main() {
|
|
112
112
|
console.error("Social MCP Server — platform availability:");
|
|
113
|
-
checkPlatform("Telegram", getTelegramService);
|
|
114
|
-
checkPlatform("Twitter/X", getTwitterService);
|
|
115
|
-
checkPlatform("Discord", getDiscordService);
|
|
116
|
-
checkPlatform("WhatsApp", getWhatsappService);
|
|
117
|
-
checkPlatform("Facebook", getFacebookService);
|
|
118
|
-
checkPlatform("Instagram", getInstagramService);
|
|
119
|
-
checkPlatform("Slack", getSlackService);
|
|
120
|
-
checkPlatform("LinkedIn", getLinkedInService);
|
|
121
|
-
checkPlatform("Reddit", getRedditService);
|
|
122
|
-
checkPlatform("Threads", getThreadsService);
|
|
123
|
-
checkPlatform("TikTok", getTikTokService);
|
|
124
|
-
checkPlatform("YouTube", getYouTubeService);
|
|
125
|
-
checkPlatform("Bluesky", getBlueskyService);
|
|
126
|
-
checkPlatform("Mastodon", getMastodonService);
|
|
127
|
-
checkPlatform("Pinterest", getPinterestService);
|
|
128
|
-
checkPlatform("Email",
|
|
113
|
+
await checkPlatform("Telegram", getTelegramService);
|
|
114
|
+
await checkPlatform("Twitter/X", getTwitterService);
|
|
115
|
+
await checkPlatform("Discord", getDiscordService);
|
|
116
|
+
await checkPlatform("WhatsApp", getWhatsappService);
|
|
117
|
+
await checkPlatform("Facebook", getFacebookService);
|
|
118
|
+
await checkPlatform("Instagram", getInstagramService);
|
|
119
|
+
await checkPlatform("Slack", getSlackService);
|
|
120
|
+
await checkPlatform("LinkedIn", getLinkedInService);
|
|
121
|
+
await checkPlatform("Reddit", getRedditService);
|
|
122
|
+
await checkPlatform("Threads", getThreadsService);
|
|
123
|
+
await checkPlatform("TikTok", getTikTokService);
|
|
124
|
+
await checkPlatform("YouTube", getYouTubeService);
|
|
125
|
+
await checkPlatform("Bluesky", getBlueskyService);
|
|
126
|
+
await checkPlatform("Mastodon", getMastodonService);
|
|
127
|
+
await checkPlatform("Pinterest", getPinterestService);
|
|
128
|
+
await checkPlatform("Email", async () => {
|
|
129
|
+
const service = getEmailService();
|
|
130
|
+
await service.verify();
|
|
131
|
+
});
|
|
129
132
|
console.error("");
|
|
130
133
|
const server = new FastMCP({ name: "Social MCP Server", version });
|
|
131
134
|
// Telegram
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
+
export interface BlueskyCredentials {
|
|
2
|
+
identifier: string;
|
|
3
|
+
appPassword: string;
|
|
4
|
+
service?: string;
|
|
5
|
+
}
|
|
1
6
|
export declare class BlueskyService {
|
|
2
7
|
private agent;
|
|
8
|
+
private identifier;
|
|
9
|
+
private appPassword;
|
|
3
10
|
private loggedIn;
|
|
4
|
-
constructor();
|
|
11
|
+
constructor(credentials?: BlueskyCredentials);
|
|
5
12
|
private ensureLoggedIn;
|
|
6
13
|
createPost(text: string): Promise<{
|
|
7
14
|
uri: string;
|
|
@@ -3,21 +3,28 @@ import { config } from "../lib/config.js";
|
|
|
3
3
|
import { CredentialsError } from "../lib/errors.js";
|
|
4
4
|
export class BlueskyService {
|
|
5
5
|
agent;
|
|
6
|
+
identifier;
|
|
7
|
+
appPassword;
|
|
6
8
|
loggedIn = false;
|
|
7
|
-
constructor() {
|
|
8
|
-
|
|
9
|
+
constructor(credentials) {
|
|
10
|
+
const identifier = credentials?.identifier ?? config.bluesky.identifier;
|
|
11
|
+
const appPassword = credentials?.appPassword ?? config.bluesky.appPassword;
|
|
12
|
+
const service = credentials?.service ?? config.bluesky.service;
|
|
13
|
+
if (!identifier || !appPassword) {
|
|
9
14
|
throw new CredentialsError("Bluesky", [
|
|
10
15
|
"BLUESKY_IDENTIFIER",
|
|
11
16
|
"BLUESKY_APP_PASSWORD",
|
|
12
17
|
]);
|
|
13
18
|
}
|
|
14
|
-
this.
|
|
19
|
+
this.identifier = identifier;
|
|
20
|
+
this.appPassword = appPassword;
|
|
21
|
+
this.agent = new BskyAgent({ service });
|
|
15
22
|
}
|
|
16
23
|
async ensureLoggedIn() {
|
|
17
24
|
if (!this.loggedIn) {
|
|
18
25
|
await this.agent.login({
|
|
19
|
-
identifier:
|
|
20
|
-
password:
|
|
26
|
+
identifier: this.identifier,
|
|
27
|
+
password: this.appPassword,
|
|
21
28
|
});
|
|
22
29
|
this.loggedIn = true;
|
|
23
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bluesky-service.js","sourceRoot":"","sources":["../../src/services/bluesky-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"bluesky-service.js","sourceRoot":"","sources":["../../src/services/bluesky-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export interface DiscordCredentials {
|
|
2
|
+
botToken: string;
|
|
3
|
+
}
|
|
1
4
|
export declare class DiscordService {
|
|
2
5
|
private baseUrl;
|
|
3
6
|
private headers;
|
|
4
|
-
constructor();
|
|
7
|
+
constructor(credentials?: DiscordCredentials);
|
|
5
8
|
sendMessage(channelId: string, content: string): Promise<{
|
|
6
9
|
id: string;
|
|
7
10
|
channel_id: string;
|
|
@@ -12,13 +12,14 @@ const discordMessagesSchema = z.array(discordMessageSchema);
|
|
|
12
12
|
export class DiscordService {
|
|
13
13
|
baseUrl = config.discord.baseUrl;
|
|
14
14
|
headers;
|
|
15
|
-
constructor() {
|
|
16
|
-
|
|
15
|
+
constructor(credentials) {
|
|
16
|
+
const botToken = credentials?.botToken ?? config.discord.botToken;
|
|
17
|
+
if (!botToken) {
|
|
17
18
|
throw new CredentialsError("Discord", ["DISCORD_BOT_TOKEN"]);
|
|
18
19
|
}
|
|
19
20
|
this.headers = {
|
|
20
21
|
"Content-Type": "application/json",
|
|
21
|
-
Authorization: `Bot ${
|
|
22
|
+
Authorization: `Bot ${botToken}`,
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
async sendMessage(channelId, content) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord-service.js","sourceRoot":"","sources":["../../src/services/discord-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"discord-service.js","sourceRoot":"","sources":["../../src/services/discord-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAM5D,MAAM,OAAO,cAAc;IAClB,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IACjC,OAAO,CAAyB;IAExC,YAAY,WAAgC;QAC3C,MAAM,QAAQ,GAAG,WAAW,EAAE,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG;YACd,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,OAAO,QAAQ,EAAE;SAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,OAAe;QACnD,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,aAAa,SAAS,WAAW,EAChD;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SACjC,EACD,oBAAoB,CACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,KAAK,GAAG,EAAE;QAC9C,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,aAAa,SAAS,mBAAmB,KAAK,EAAE,EAC/D;YACC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,EACD,qBAAqB,CACrB,CAAC;IACH,CAAC;CACD;AAED,IAAI,SAAqC,CAAC;AAC1C,MAAM,UAAU,iBAAiB;IAChC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IACjD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
|
+
export interface EmailCredentials {
|
|
2
|
+
mailer: "smtp" | "sendgrid" | "mailgun";
|
|
3
|
+
fromAddress: string;
|
|
4
|
+
fromName?: string;
|
|
5
|
+
smtpHost?: string;
|
|
6
|
+
smtpPort?: number;
|
|
7
|
+
smtpUsername?: string;
|
|
8
|
+
smtpPassword?: string;
|
|
9
|
+
smtpEncryption?: "tls" | "ssl" | "none";
|
|
10
|
+
sendgridApiKey?: string;
|
|
11
|
+
mailgunApiKey?: string;
|
|
12
|
+
mailgunDomain?: string;
|
|
13
|
+
}
|
|
1
14
|
export declare class EmailService {
|
|
2
|
-
private
|
|
3
|
-
constructor();
|
|
4
|
-
|
|
15
|
+
private creds;
|
|
16
|
+
constructor(credentials?: EmailCredentials);
|
|
17
|
+
private validateCredentials;
|
|
5
18
|
private fromHeader;
|
|
19
|
+
private createSMTPTransporter;
|
|
20
|
+
verify(): Promise<void>;
|
|
21
|
+
send(to: string | string[], subject: string, text: string, html?: string): Promise<void>;
|
|
6
22
|
private sendViaSMTP;
|
|
7
23
|
private sendViaSendGrid;
|
|
8
24
|
private sendViaMailgun;
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import nodemailer from "nodemailer";
|
|
2
2
|
import { config } from "../lib/config.js";
|
|
3
3
|
import { CredentialsError } from "../lib/errors.js";
|
|
4
|
+
function credentialsFromConfig() {
|
|
5
|
+
const { mailer, fromAddress, fromName, smtp, sendgrid, mailgun } = config.email;
|
|
6
|
+
return {
|
|
7
|
+
mailer: mailer,
|
|
8
|
+
fromAddress,
|
|
9
|
+
fromName: fromName || undefined,
|
|
10
|
+
smtpHost: smtp.host,
|
|
11
|
+
smtpPort: smtp.port,
|
|
12
|
+
smtpUsername: smtp.username,
|
|
13
|
+
smtpPassword: smtp.password,
|
|
14
|
+
smtpEncryption: smtp.encryption,
|
|
15
|
+
sendgridApiKey: sendgrid.apiKey || undefined,
|
|
16
|
+
mailgunApiKey: mailgun.apiKey || undefined,
|
|
17
|
+
mailgunDomain: mailgun.domain || undefined,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
4
20
|
export class EmailService {
|
|
5
|
-
|
|
6
|
-
constructor() {
|
|
7
|
-
|
|
21
|
+
creds;
|
|
22
|
+
constructor(credentials) {
|
|
23
|
+
this.creds = credentials ?? credentialsFromConfig();
|
|
24
|
+
this.validateCredentials();
|
|
25
|
+
}
|
|
26
|
+
validateCredentials() {
|
|
27
|
+
const { mailer, fromAddress, smtpHost, smtpUsername, smtpPassword, sendgridApiKey, mailgunApiKey, mailgunDomain, } = this.creds;
|
|
8
28
|
if (!fromAddress) {
|
|
9
|
-
throw new CredentialsError("Email", ["MAIL_FROM_ADDRESS"
|
|
29
|
+
throw new CredentialsError("Email", ["MAIL_FROM_ADDRESS"]);
|
|
10
30
|
}
|
|
11
|
-
this.mailer = mailer;
|
|
12
31
|
if (mailer === "smtp") {
|
|
13
|
-
if (!
|
|
32
|
+
if (!smtpHost || !smtpUsername || !smtpPassword) {
|
|
14
33
|
throw new CredentialsError("Email (SMTP)", [
|
|
15
34
|
"MAIL_HOST",
|
|
16
35
|
"MAIL_USERNAME",
|
|
@@ -19,12 +38,12 @@ export class EmailService {
|
|
|
19
38
|
}
|
|
20
39
|
}
|
|
21
40
|
else if (mailer === "sendgrid") {
|
|
22
|
-
if (!
|
|
41
|
+
if (!sendgridApiKey) {
|
|
23
42
|
throw new CredentialsError("Email (SendGrid)", ["SENDGRID_API_KEY"]);
|
|
24
43
|
}
|
|
25
44
|
}
|
|
26
45
|
else if (mailer === "mailgun") {
|
|
27
|
-
if (!
|
|
46
|
+
if (!mailgunApiKey || !mailgunDomain) {
|
|
28
47
|
throw new CredentialsError("Email (Mailgun)", [
|
|
29
48
|
"MAILGUN_API_KEY",
|
|
30
49
|
"MAILGUN_DOMAIN",
|
|
@@ -32,11 +51,32 @@ export class EmailService {
|
|
|
32
51
|
}
|
|
33
52
|
}
|
|
34
53
|
else {
|
|
35
|
-
throw new Error(`Unsupported
|
|
54
|
+
throw new Error(`Unsupported mailer: "${mailer}". Supported: smtp, sendgrid, mailgun`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
fromHeader() {
|
|
58
|
+
const { fromName, fromAddress } = this.creds;
|
|
59
|
+
return fromName ? `"${fromName}" <${fromAddress}>` : fromAddress;
|
|
60
|
+
}
|
|
61
|
+
createSMTPTransporter() {
|
|
62
|
+
const { smtpHost, smtpPort, smtpUsername, smtpPassword, smtpEncryption } = this.creds;
|
|
63
|
+
return nodemailer.createTransport({
|
|
64
|
+
host: smtpHost,
|
|
65
|
+
port: smtpPort ?? 587,
|
|
66
|
+
secure: smtpEncryption === "ssl",
|
|
67
|
+
requireTLS: smtpEncryption !== "ssl" && smtpEncryption !== "none",
|
|
68
|
+
auth: { user: smtpUsername, pass: smtpPassword },
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// Verifies the SMTP connection. No-op for SendGrid/Mailgun (no free verify endpoint).
|
|
72
|
+
async verify() {
|
|
73
|
+
if (this.creds.mailer === "smtp") {
|
|
74
|
+
const transporter = this.createSMTPTransporter();
|
|
75
|
+
await transporter.verify();
|
|
36
76
|
}
|
|
37
77
|
}
|
|
38
78
|
async send(to, subject, text, html) {
|
|
39
|
-
switch (this.mailer) {
|
|
79
|
+
switch (this.creds.mailer) {
|
|
40
80
|
case "smtp":
|
|
41
81
|
return this.sendViaSMTP(to, subject, text, html);
|
|
42
82
|
case "sendgrid":
|
|
@@ -45,19 +85,8 @@ export class EmailService {
|
|
|
45
85
|
return this.sendViaMailgun(to, subject, text, html);
|
|
46
86
|
}
|
|
47
87
|
}
|
|
48
|
-
fromHeader() {
|
|
49
|
-
const { fromName, fromAddress } = config.email;
|
|
50
|
-
return fromName ? `"${fromName}" <${fromAddress}>` : fromAddress;
|
|
51
|
-
}
|
|
52
88
|
async sendViaSMTP(to, subject, text, html) {
|
|
53
|
-
const
|
|
54
|
-
const transporter = nodemailer.createTransport({
|
|
55
|
-
host,
|
|
56
|
-
port,
|
|
57
|
-
secure: encryption === "ssl",
|
|
58
|
-
requireTLS: encryption === "tls",
|
|
59
|
-
auth: { user: username, pass: password },
|
|
60
|
-
});
|
|
89
|
+
const transporter = this.createSMTPTransporter();
|
|
61
90
|
await transporter.sendMail({
|
|
62
91
|
from: this.fromHeader(),
|
|
63
92
|
to: Array.isArray(to) ? to.join(", ") : to,
|
|
@@ -74,8 +103,8 @@ export class EmailService {
|
|
|
74
103
|
const body = {
|
|
75
104
|
personalizations,
|
|
76
105
|
from: {
|
|
77
|
-
email:
|
|
78
|
-
...(
|
|
106
|
+
email: this.creds.fromAddress,
|
|
107
|
+
...(this.creds.fromName ? { name: this.creds.fromName } : {}),
|
|
79
108
|
},
|
|
80
109
|
subject,
|
|
81
110
|
content: [
|
|
@@ -86,7 +115,7 @@ export class EmailService {
|
|
|
86
115
|
const response = await fetch("https://api.sendgrid.com/v3/mail/send", {
|
|
87
116
|
method: "POST",
|
|
88
117
|
headers: {
|
|
89
|
-
Authorization: `Bearer ${
|
|
118
|
+
Authorization: `Bearer ${this.creds.sendgridApiKey}`,
|
|
90
119
|
"Content-Type": "application/json",
|
|
91
120
|
},
|
|
92
121
|
body: JSON.stringify(body),
|
|
@@ -97,7 +126,7 @@ export class EmailService {
|
|
|
97
126
|
}
|
|
98
127
|
}
|
|
99
128
|
async sendViaMailgun(to, subject, text, html) {
|
|
100
|
-
const {
|
|
129
|
+
const { mailgunApiKey, mailgunDomain } = this.creds;
|
|
101
130
|
const formData = new FormData();
|
|
102
131
|
formData.append("from", this.fromHeader());
|
|
103
132
|
formData.append("to", Array.isArray(to) ? to.join(",") : to);
|
|
@@ -105,8 +134,8 @@ export class EmailService {
|
|
|
105
134
|
formData.append("text", text);
|
|
106
135
|
if (html)
|
|
107
136
|
formData.append("html", html);
|
|
108
|
-
const credentials = Buffer.from(`api:${
|
|
109
|
-
const response = await fetch(`https://api.mailgun.net/v3/${
|
|
137
|
+
const credentials = Buffer.from(`api:${mailgunApiKey}`).toString("base64");
|
|
138
|
+
const response = await fetch(`https://api.mailgun.net/v3/${mailgunDomain}/messages`, {
|
|
110
139
|
method: "POST",
|
|
111
140
|
headers: { Authorization: `Basic ${credentials}` },
|
|
112
141
|
body: formData,
|
|
@@ -117,6 +146,9 @@ export class EmailService {
|
|
|
117
146
|
}
|
|
118
147
|
}
|
|
119
148
|
}
|
|
149
|
+
// Singleton for the env-var-based default configuration.
|
|
150
|
+
// When calling tools with per-org credentials, pass an EmailCredentials
|
|
151
|
+
// object directly to `new EmailService(credentials)` instead.
|
|
120
152
|
let _instance;
|
|
121
153
|
export function getEmailService() {
|
|
122
154
|
if (!_instance)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/services/email-service.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/services/email-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export interface FacebookCredentials {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
}
|
|
1
4
|
export declare class FacebookService {
|
|
2
5
|
private baseUrl;
|
|
3
6
|
private headers;
|
|
4
|
-
constructor();
|
|
7
|
+
constructor(credentials?: FacebookCredentials);
|
|
5
8
|
createPost(pageId: string, message: string): Promise<{
|
|
6
9
|
id: string;
|
|
7
10
|
post_id?: string | undefined;
|
|
@@ -17,13 +17,14 @@ const facebookPostsResponseSchema = z.object({
|
|
|
17
17
|
export class FacebookService {
|
|
18
18
|
baseUrl = config.facebook.baseUrl;
|
|
19
19
|
headers;
|
|
20
|
-
constructor() {
|
|
21
|
-
|
|
20
|
+
constructor(credentials) {
|
|
21
|
+
const accessToken = credentials?.accessToken ?? config.facebook.accessToken;
|
|
22
|
+
if (!accessToken) {
|
|
22
23
|
throw new CredentialsError("Facebook", ["FACEBOOK_ACCESS_TOKEN"]);
|
|
23
24
|
}
|
|
24
25
|
this.headers = {
|
|
25
26
|
"Content-Type": "application/json",
|
|
26
|
-
Authorization: `Bearer ${
|
|
27
|
+
Authorization: `Bearer ${accessToken}`,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
async createPost(pageId, message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facebook-service.js","sourceRoot":"","sources":["../../src/services/facebook-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACvC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"facebook-service.js","sourceRoot":"","sources":["../../src/services/facebook-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;CACxB,CAAC,CAAC;AAEH,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACvC,CAAC,CAAC;AAMH,MAAM,OAAO,eAAe;IACnB,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;IAClC,OAAO,CAAyB;IAExC,YAAY,WAAiC;QAC5C,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG;YACd,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,WAAW,EAAE;SACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,OAAe;QAC/C,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,OAAO,EAChC;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;SACjC,EACD,kBAAkB,CAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAK,GAAG,EAAE;QACxC,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,+CAA+C,KAAK,EAAE,EAC/E;YACC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,EACD,2BAA2B,CAC3B,CAAC;IACH,CAAC;CACD;AAED,IAAI,SAAsC,CAAC;AAC3C,MAAM,UAAU,kBAAkB;IACjC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IAClD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export interface InstagramCredentials {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
}
|
|
1
4
|
export declare class InstagramService {
|
|
2
5
|
private baseUrl;
|
|
3
6
|
private headers;
|
|
4
|
-
constructor();
|
|
7
|
+
constructor(credentials?: InstagramCredentials);
|
|
5
8
|
createPost(userId: string, imageUrl: string, caption: string): Promise<{
|
|
6
9
|
id: string;
|
|
7
10
|
}>;
|
|
@@ -17,13 +17,14 @@ const instagramMediaListSchema = z.object({
|
|
|
17
17
|
export class InstagramService {
|
|
18
18
|
baseUrl = config.instagram.baseUrl;
|
|
19
19
|
headers;
|
|
20
|
-
constructor() {
|
|
21
|
-
|
|
20
|
+
constructor(credentials) {
|
|
21
|
+
const accessToken = credentials?.accessToken ?? config.instagram.accessToken;
|
|
22
|
+
if (!accessToken) {
|
|
22
23
|
throw new CredentialsError("Instagram", ["INSTAGRAM_ACCESS_TOKEN"]);
|
|
23
24
|
}
|
|
24
25
|
this.headers = {
|
|
25
26
|
"Content-Type": "application/json",
|
|
26
|
-
Authorization: `Bearer ${
|
|
27
|
+
Authorization: `Bearer ${accessToken}`,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
29
30
|
async createPost(userId, imageUrl, caption) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instagram-service.js","sourceRoot":"","sources":["../../src/services/instagram-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;CACzC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"instagram-service.js","sourceRoot":"","sources":["../../src/services/instagram-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC;CACzC,CAAC,CAAC;AAMH,MAAM,OAAO,gBAAgB;IACpB,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC;IACnC,OAAO,CAAyB;IAExC,YAAY,WAAkC;QAC7C,MAAM,WAAW,GAAG,WAAW,EAAE,WAAW,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;QAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,gBAAgB,CAAC,WAAW,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,OAAO,GAAG;YACd,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,WAAW,EAAE;SACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAe;QACjE,MAAM,iBAAiB,GAAG,MAAM,SAAS,CACxC,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,QAAQ,EACjC;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SACtD,EACD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC5B,CAAC;QACF,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,gBAAgB,EACzC;YACC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,CAAC;SAC3D,EACD,oBAAoB,CACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAK,GAAG,EAAE;QACxC,OAAO,SAAS,CACf,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,uDAAuD,KAAK,EAAE,EACvF;YACC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;SACrB,EACD,wBAAwB,CACxB,CAAC;IACH,CAAC;CACD;AAED,IAAI,SAAuC,CAAC;AAC5C,MAAM,UAAU,mBAAmB;IAClC,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACnD,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
export interface LinkedInCredentials {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
}
|
|
1
4
|
export declare class LinkedInService {
|
|
2
5
|
private baseUrl;
|
|
3
6
|
private headers;
|
|
4
|
-
constructor();
|
|
7
|
+
constructor(credentials?: LinkedInCredentials);
|
|
5
8
|
getProfile(): Promise<{
|
|
6
9
|
id: string;
|
|
7
10
|
localizedFirstName?: string | undefined;
|