posterly-mcp-server 0.23.2 → 0.24.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.
Files changed (41) hide show
  1. package/README.md +5 -1
  2. package/dist/generated/platform-manifest.d.ts +82 -66
  3. package/dist/generated/platform-manifest.js +126 -77
  4. package/dist/index.js +40 -0
  5. package/dist/lib/api-client.d.ts +77 -0
  6. package/dist/lib/api-client.js +30 -0
  7. package/dist/lib/version.d.ts +1 -1
  8. package/dist/lib/version.js +1 -1
  9. package/dist/tools/create-connect-session.d.ts +3 -3
  10. package/dist/tools/create-connect-session.js +1 -1
  11. package/dist/tools/create-post.d.ts +27 -9
  12. package/dist/tools/create-post.js +2 -1
  13. package/dist/tools/create-posts-batch.d.ts +12 -5
  14. package/dist/tools/dismiss-suggestion.d.ts +16 -0
  15. package/dist/tools/dismiss-suggestion.js +18 -0
  16. package/dist/tools/get-connect-link.d.ts +3 -3
  17. package/dist/tools/get-performance-profile.d.ts +16 -0
  18. package/dist/tools/get-performance-profile.js +39 -0
  19. package/dist/tools/get-platform-schema.d.ts +3 -3
  20. package/dist/tools/get-post-insights.d.ts +28 -0
  21. package/dist/tools/get-post-insights.js +39 -0
  22. package/dist/tools/get-video-job.d.ts +2 -2
  23. package/dist/tools/list-activity.d.ts +2 -2
  24. package/dist/tools/list-post-suggestions.d.ts +24 -0
  25. package/dist/tools/list-post-suggestions.js +36 -0
  26. package/dist/tools/list-posts.d.ts +3 -3
  27. package/dist/tools/trigger-platform-helper.d.ts +6 -6
  28. package/dist/tools/update-post.d.ts +8 -0
  29. package/dist/tools/update-post.js +2 -1
  30. package/package.json +1 -1
  31. package/src/generated/platform-manifest.ts +126 -77
  32. package/src/index.ts +60 -0
  33. package/src/lib/api-client.ts +107 -0
  34. package/src/lib/version.ts +1 -1
  35. package/src/tools/create-connect-session.ts +1 -1
  36. package/src/tools/create-post.ts +2 -1
  37. package/src/tools/dismiss-suggestion.ts +22 -0
  38. package/src/tools/get-performance-profile.ts +47 -0
  39. package/src/tools/get-post-insights.ts +60 -0
  40. package/src/tools/list-post-suggestions.ts +56 -0
  41. package/src/tools/update-post.ts +2 -1
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ import type { PosterlyClient } from '../lib/api-client.js';
3
+ export declare const listPostSuggestionsTool: {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: z.ZodObject<{
7
+ account_id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8
+ status: z.ZodOptional<z.ZodEnum<["pending", "scheduled", "dismissed"]>>;
9
+ limit: z.ZodOptional<z.ZodNumber>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ status?: "pending" | "scheduled" | "dismissed" | undefined;
12
+ account_id?: string | number | undefined;
13
+ limit?: number | undefined;
14
+ }, {
15
+ status?: "pending" | "scheduled" | "dismissed" | undefined;
16
+ account_id?: string | number | undefined;
17
+ limit?: number | undefined;
18
+ }>;
19
+ execute(client: PosterlyClient, input: {
20
+ account_id?: string | number;
21
+ status?: "pending" | "scheduled" | "dismissed";
22
+ limit?: number;
23
+ }): Promise<string>;
24
+ };
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ import { mdTitle, mdSection, mdKeyValue, mdEmpty, truncateText } from '../lib/format.js';
3
+ export const listPostSuggestionsTool = {
4
+ name: 'list_post_suggestions',
5
+ description: "List proactive post suggestions: evidence-based weekly drafts posterly writes in each account's learned voice, each with a rationale tying it back to what has performed well for that account. Filter by account_id and status (pending, scheduled, dismissed; default pending). Read-only; requires a Pro plan or higher. Use dismiss_suggestion to hide one.",
6
+ inputSchema: z.object({
7
+ account_id: z
8
+ .union([z.string(), z.number()])
9
+ .optional()
10
+ .describe('Filter to one social account ID (from list_accounts).'),
11
+ status: z
12
+ .enum(['pending', 'scheduled', 'dismissed'])
13
+ .optional()
14
+ .describe('Suggestion status to list (default pending).'),
15
+ limit: z.number().int().min(1).max(100).optional().describe('Max suggestions to return (default 20).'),
16
+ }),
17
+ async execute(client, input) {
18
+ const { suggestions } = await client.listPostSuggestions(input);
19
+ if (!suggestions.length) {
20
+ return mdEmpty('post suggestions', 'No proactive post suggestions match these filters. posterly generates fresh drafts weekly for accounts with a learned voice.');
21
+ }
22
+ const blocks = suggestions.map((suggestion) => {
23
+ const label = suggestion.account?.username
24
+ ? `@${suggestion.account.username} (${suggestion.platform || suggestion.account?.platform})`
25
+ : `account ${suggestion.social_account_id}`;
26
+ return mdSection(label, mdKeyValue([
27
+ ['Suggestion ID', suggestion.id],
28
+ ['Status', suggestion.status],
29
+ ['Period', suggestion.period_key || undefined],
30
+ ['Caption', truncateText(suggestion.caption, 240)],
31
+ ['Rationale', suggestion.rationale ? truncateText(suggestion.rationale, 240) : undefined],
32
+ ]));
33
+ });
34
+ return [mdTitle(`Post suggestions (${suggestions.length})`), ...blocks].join('\n\n');
35
+ },
36
+ };
@@ -5,20 +5,20 @@ export declare const listPostsTool: {
5
5
  description: string;
6
6
  inputSchema: z.ZodObject<{
7
7
  status: z.ZodOptional<z.ZodString>;
8
- platform: z.ZodOptional<z.ZodEnum<["bluesky", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "instagram", "instagram-standalone", "linkedin", "pinterest", "telegram", "threads", "tiktok", "twitter", "x", "youtube"]>>;
8
+ platform: z.ZodOptional<z.ZodEnum<["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "pinterest", "telegram", "threads", "tiktok", "twitter", "wordpress", "x", "youtube"]>>;
9
9
  account_id: z.ZodOptional<z.ZodString>;
10
10
  limit: z.ZodOptional<z.ZodNumber>;
11
11
  workspace_id: z.ZodOptional<z.ZodString>;
12
12
  }, "strip", z.ZodTypeAny, {
13
13
  status?: string | undefined;
14
14
  workspace_id?: string | undefined;
15
- platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
15
+ platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "discord" | "mastodon" | "devto" | "hashnode" | "wordpress" | "lemmy" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
16
16
  account_id?: string | undefined;
17
17
  limit?: number | undefined;
18
18
  }, {
19
19
  status?: string | undefined;
20
20
  workspace_id?: string | undefined;
21
- platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
21
+ platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "discord" | "mastodon" | "devto" | "hashnode" | "wordpress" | "lemmy" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
22
22
  account_id?: string | undefined;
23
23
  limit?: number | undefined;
24
24
  }>;
@@ -4,18 +4,18 @@ export declare const triggerPlatformHelperTool: {
4
4
  name: string;
5
5
  description: string;
6
6
  inputSchema: z.ZodObject<{
7
- helper: z.ZodEnum<["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota", "youtube.playlists"]>;
7
+ helper: z.ZodEnum<["linkedin.recent_mentions", "pinterest.boards", "tiktok.creator_info", "x.quota"]>;
8
8
  account_id: z.ZodOptional<z.ZodString>;
9
- platform: z.ZodOptional<z.ZodEnum<["bluesky", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "instagram", "instagram-standalone", "linkedin", "pinterest", "telegram", "threads", "tiktok", "twitter", "x", "youtube"]>>;
9
+ platform: z.ZodOptional<z.ZodEnum<["bluesky", "devto", "discord", "facebook", "gmb", "google-business", "google_business", "google_business_profile", "hashnode", "instagram", "instagram-standalone", "lemmy", "linkedin", "mastodon", "pinterest", "telegram", "threads", "tiktok", "twitter", "wordpress", "x", "youtube"]>>;
10
10
  params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
11
11
  }, "strip", z.ZodTypeAny, {
12
- helper: "linkedin.recent_mentions" | "pinterest.boards" | "tiktok.creator_info" | "x.quota" | "youtube.playlists";
13
- platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
12
+ helper: "linkedin.recent_mentions" | "pinterest.boards" | "tiktok.creator_info" | "x.quota";
13
+ platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "discord" | "mastodon" | "devto" | "hashnode" | "wordpress" | "lemmy" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
14
14
  account_id?: string | undefined;
15
15
  params?: Record<string, unknown> | undefined;
16
16
  }, {
17
- helper: "linkedin.recent_mentions" | "pinterest.boards" | "tiktok.creator_info" | "x.quota" | "youtube.playlists";
18
- platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
17
+ helper: "linkedin.recent_mentions" | "pinterest.boards" | "tiktok.creator_info" | "x.quota";
18
+ platform?: "instagram" | "instagram-standalone" | "facebook" | "tiktok" | "twitter" | "threads" | "linkedin" | "youtube" | "pinterest" | "google_business" | "telegram" | "bluesky" | "discord" | "mastodon" | "devto" | "hashnode" | "wordpress" | "lemmy" | "gmb" | "google-business" | "google_business_profile" | "x" | undefined;
19
19
  account_id?: string | undefined;
20
20
  params?: Record<string, unknown> | undefined;
21
21
  }>;
@@ -103,6 +103,7 @@ declare const platformSettingsSchema: z.ZodObject<{
103
103
  }>>;
104
104
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
105
105
  topic_tag: z.ZodOptional<z.ZodString>;
106
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
106
107
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
107
108
  text_format_preset_id: z.ZodOptional<z.ZodString>;
108
109
  document_title: z.ZodOptional<z.ZodString>;
@@ -177,6 +178,7 @@ declare const platformSettingsSchema: z.ZodObject<{
177
178
  }>>;
178
179
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
179
180
  topic_tag: z.ZodOptional<z.ZodString>;
181
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
180
182
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
181
183
  text_format_preset_id: z.ZodOptional<z.ZodString>;
182
184
  document_title: z.ZodOptional<z.ZodString>;
@@ -251,6 +253,7 @@ declare const platformSettingsSchema: z.ZodObject<{
251
253
  }>>;
252
254
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
253
255
  topic_tag: z.ZodOptional<z.ZodString>;
256
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
254
257
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
255
258
  text_format_preset_id: z.ZodOptional<z.ZodString>;
256
259
  document_title: z.ZodOptional<z.ZodString>;
@@ -410,6 +413,7 @@ export declare const updatePostTool: {
410
413
  }>>;
411
414
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
412
415
  topic_tag: z.ZodOptional<z.ZodString>;
416
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
413
417
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
414
418
  text_format_preset_id: z.ZodOptional<z.ZodString>;
415
419
  document_title: z.ZodOptional<z.ZodString>;
@@ -484,6 +488,7 @@ export declare const updatePostTool: {
484
488
  }>>;
485
489
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
486
490
  topic_tag: z.ZodOptional<z.ZodString>;
491
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
487
492
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
488
493
  text_format_preset_id: z.ZodOptional<z.ZodString>;
489
494
  document_title: z.ZodOptional<z.ZodString>;
@@ -558,6 +563,7 @@ export declare const updatePostTool: {
558
563
  }>>;
559
564
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
560
565
  topic_tag: z.ZodOptional<z.ZodString>;
566
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
561
567
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
562
568
  text_format_preset_id: z.ZodOptional<z.ZodString>;
563
569
  document_title: z.ZodOptional<z.ZodString>;
@@ -662,6 +668,7 @@ export declare const updatePostTool: {
662
668
  }>>;
663
669
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
664
670
  topic_tag: z.ZodOptional<z.ZodString>;
671
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
665
672
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
666
673
  text_format_preset_id: z.ZodOptional<z.ZodString>;
667
674
  document_title: z.ZodOptional<z.ZodString>;
@@ -765,6 +772,7 @@ export declare const updatePostTool: {
765
772
  }>>;
766
773
  reply_control: z.ZodOptional<z.ZodEnum<["everyone", "accounts_you_follow", "mentioned_only", "followers_only", "parent_post_author_only"]>>;
767
774
  topic_tag: z.ZodOptional<z.ZodString>;
775
+ share_to_instagram: z.ZodOptional<z.ZodBoolean>;
768
776
  text_attachment: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
769
777
  text_format_preset_id: z.ZodOptional<z.ZodString>;
770
778
  document_title: z.ZodOptional<z.ZodString>;
@@ -27,6 +27,7 @@ const platformSettingsSchema = z.object({
27
27
  poll: z.object({ options: z.array(z.string()), duration_minutes: z.number().positive().optional(), question: z.string().optional(), duration: z.enum(['ONE_DAY', 'THREE_DAYS', 'SEVEN_DAYS', 'FOURTEEN_DAYS']).optional(), allows_multiple_answers: z.boolean().optional() }).optional(),
28
28
  reply_control: z.enum(['everyone', 'accounts_you_follow', 'mentioned_only', 'followers_only', 'parent_post_author_only']).optional(),
29
29
  topic_tag: z.string().optional(),
30
+ share_to_instagram: z.boolean().optional(), // Threads: also share the published post to the linked Instagram account as a Story
30
31
  text_attachment: z.record(z.unknown()).optional(),
31
32
  text_format_preset_id: z.string().optional(),
32
33
  document_title: z.string().optional(),
@@ -80,7 +81,7 @@ export const updatePostTool = {
80
81
  post_type: z
81
82
  .string()
82
83
  .optional()
83
- .describe('New post type: text, image, video, carousel, reel, story'),
84
+ .describe('New post type: text, image, video, carousel, reel, story, story_series, document, photo, or cover_photo'),
84
85
  instagram_settings: instagramSettingsSchema
85
86
  .optional()
86
87
  .describe('Instagram-specific updates: post_type, collaborators, user_tags, first_comment, media_alt_texts, is_trial_reel, graduation_strategy (defaults to MANUAL), reel_cover_url, reel_thumb_offset.'),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posterly-mcp-server",
3
- "version": "0.23.2",
3
+ "version": "0.24.1",
4
4
  "description": "MCP server for posterly: schedule and publish social media posts across 11 platforms from any MCP client (Claude, ChatGPT, Cursor, Windsurf, Cline, and more)",
5
5
  "license": "MIT",
6
6
  "homepage": "https://www.poster.ly/mcp",
@@ -12,16 +12,17 @@ export const PLATFORM_MANIFEST = {
12
12
  "threads",
13
13
  "google_business",
14
14
  "telegram",
15
- "bluesky"
15
+ "bluesky",
16
+ "discord",
17
+ "mastodon",
18
+ "devto",
19
+ "hashnode",
20
+ "wordpress",
21
+ "lemmy"
16
22
  ],
17
23
  "plannedPlatformIds": [
18
24
  "reddit",
19
- "wordpress",
20
- "mastodon",
21
25
  "medium",
22
- "devto",
23
- "hashnode",
24
- "discord",
25
26
  "slack",
26
27
  "skool",
27
28
  "whop"
@@ -38,32 +39,39 @@ export const PLATFORM_MANIFEST = {
38
39
  "google_business",
39
40
  "telegram",
40
41
  "bluesky",
41
- "reddit",
42
- "wordpress",
42
+ "discord",
43
43
  "mastodon",
44
- "medium",
45
44
  "devto",
46
45
  "hashnode",
47
- "discord",
46
+ "wordpress",
47
+ "lemmy",
48
+ "reddit",
49
+ "medium",
48
50
  "slack",
49
51
  "skool",
50
52
  "whop"
51
53
  ],
52
54
  "supportedPlatformInputs": [
53
55
  "bluesky",
56
+ "devto",
57
+ "discord",
54
58
  "facebook",
55
59
  "gmb",
56
60
  "google-business",
57
61
  "google_business",
58
62
  "google_business_profile",
63
+ "hashnode",
59
64
  "instagram",
60
65
  "instagram-standalone",
66
+ "lemmy",
61
67
  "linkedin",
68
+ "mastodon",
62
69
  "pinterest",
63
70
  "telegram",
64
71
  "threads",
65
72
  "tiktok",
66
73
  "twitter",
74
+ "wordpress",
67
75
  "x",
68
76
  "youtube"
69
77
  ],
@@ -79,6 +87,7 @@ export const PLATFORM_MANIFEST = {
79
87
  "hashnode",
80
88
  "instagram",
81
89
  "instagram-standalone",
90
+ "lemmy",
82
91
  "linkedin",
83
92
  "mastodon",
84
93
  "medium",
@@ -106,6 +115,7 @@ export const PLATFORM_MANIFEST = {
106
115
  "hashnode": "hashnode",
107
116
  "instagram": "instagram",
108
117
  "instagram_standalone": "instagram",
118
+ "lemmy": "lemmy",
109
119
  "linkedin": "linkedin",
110
120
  "mastodon": "mastodon",
111
121
  "medium": "medium",
@@ -126,8 +136,7 @@ export const PLATFORM_MANIFEST = {
126
136
  "linkedin.recent_mentions",
127
137
  "pinterest.boards",
128
138
  "tiktok.creator_info",
129
- "x.quota",
130
- "youtube.playlists"
139
+ "x.quota"
131
140
  ],
132
141
  "analyticsPlatformIds": [
133
142
  "instagram",
@@ -135,6 +144,7 @@ export const PLATFORM_MANIFEST = {
135
144
  "linkedin",
136
145
  "youtube",
137
146
  "pinterest",
147
+ "threads",
138
148
  "google_business"
139
149
  ],
140
150
  "connectTargetIds": [
@@ -151,13 +161,14 @@ export const PLATFORM_MANIFEST = {
151
161
  "twitter",
152
162
  "telegram",
153
163
  "bluesky",
154
- "reddit",
155
- "wordpress",
164
+ "discord",
156
165
  "mastodon",
157
- "medium",
158
166
  "devto",
159
167
  "hashnode",
160
- "discord",
168
+ "wordpress",
169
+ "lemmy",
170
+ "reddit",
171
+ "medium",
161
172
  "slack",
162
173
  "skool",
163
174
  "whop"
@@ -177,6 +188,7 @@ export const PLATFORM_MANIFEST = {
177
188
  "instagram",
178
189
  "instagram-standalone",
179
190
  "instagram_direct",
191
+ "lemmy",
180
192
  "linkedin",
181
193
  "linkedin-company",
182
194
  "linkedin-page",
@@ -215,6 +227,7 @@ export const PLATFORM_MANIFEST = {
215
227
  "instagram": "instagram",
216
228
  "instagram_direct": "instagram",
217
229
  "instagram_standalone": "instagram",
230
+ "lemmy": "lemmy",
218
231
  "linkedin": "linkedin",
219
232
  "linkedin_company": "linkedin_page",
220
233
  "linkedin_page": "linkedin_page",
@@ -332,9 +345,7 @@ export const PLATFORM_MANIFEST = {
332
345
  "video"
333
346
  ],
334
347
  "analyticsSupported": true,
335
- "helpers": [
336
- "youtube.playlists"
337
- ]
348
+ "helpers": []
338
349
  },
339
350
  {
340
351
  "id": "pinterest",
@@ -363,7 +374,7 @@ export const PLATFORM_MANIFEST = {
363
374
  "carousel",
364
375
  "threads_thread"
365
376
  ],
366
- "analyticsSupported": false,
377
+ "analyticsSupported": true,
367
378
  "helpers": []
368
379
  },
369
380
  {
@@ -411,53 +422,84 @@ export const PLATFORM_MANIFEST = {
411
422
  "helpers": []
412
423
  },
413
424
  {
414
- "id": "reddit",
415
- "label": "Reddit",
416
- "status": "planned",
425
+ "id": "discord",
426
+ "label": "Discord",
427
+ "status": "supported",
417
428
  "aliases": [],
418
- "postTypes": [],
429
+ "postTypes": [
430
+ "text",
431
+ "image",
432
+ "video",
433
+ "carousel"
434
+ ],
419
435
  "analyticsSupported": false,
420
436
  "helpers": []
421
437
  },
422
438
  {
423
- "id": "wordpress",
424
- "label": "WordPress",
425
- "status": "planned",
439
+ "id": "mastodon",
440
+ "label": "Mastodon",
441
+ "status": "supported",
426
442
  "aliases": [],
427
- "postTypes": [],
443
+ "postTypes": [
444
+ "text",
445
+ "image",
446
+ "video",
447
+ "carousel"
448
+ ],
428
449
  "analyticsSupported": false,
429
450
  "helpers": []
430
451
  },
431
452
  {
432
- "id": "mastodon",
433
- "label": "Mastodon",
434
- "status": "planned",
453
+ "id": "devto",
454
+ "label": "Dev.to",
455
+ "status": "supported",
435
456
  "aliases": [],
436
- "postTypes": [],
457
+ "postTypes": [
458
+ "text",
459
+ "image"
460
+ ],
437
461
  "analyticsSupported": false,
438
462
  "helpers": []
439
463
  },
440
464
  {
441
- "id": "medium",
442
- "label": "Medium",
443
- "status": "planned",
465
+ "id": "hashnode",
466
+ "label": "Hashnode",
467
+ "status": "supported",
444
468
  "aliases": [],
445
- "postTypes": [],
469
+ "postTypes": [
470
+ "text",
471
+ "image"
472
+ ],
446
473
  "analyticsSupported": false,
447
474
  "helpers": []
448
475
  },
449
476
  {
450
- "id": "devto",
451
- "label": "Dev.to",
452
- "status": "planned",
477
+ "id": "wordpress",
478
+ "label": "WordPress",
479
+ "status": "supported",
453
480
  "aliases": [],
454
- "postTypes": [],
481
+ "postTypes": [
482
+ "text",
483
+ "image"
484
+ ],
455
485
  "analyticsSupported": false,
456
486
  "helpers": []
457
487
  },
458
488
  {
459
- "id": "hashnode",
460
- "label": "Hashnode",
489
+ "id": "lemmy",
490
+ "label": "Lemmy",
491
+ "status": "supported",
492
+ "aliases": [],
493
+ "postTypes": [
494
+ "text",
495
+ "image"
496
+ ],
497
+ "analyticsSupported": false,
498
+ "helpers": []
499
+ },
500
+ {
501
+ "id": "reddit",
502
+ "label": "Reddit",
461
503
  "status": "planned",
462
504
  "aliases": [],
463
505
  "postTypes": [],
@@ -465,8 +507,8 @@ export const PLATFORM_MANIFEST = {
465
507
  "helpers": []
466
508
  },
467
509
  {
468
- "id": "discord",
469
- "label": "Discord",
510
+ "id": "medium",
511
+ "label": "Medium",
470
512
  "status": "planned",
471
513
  "aliases": [],
472
514
  "postTypes": [],
@@ -615,50 +657,57 @@ export const PLATFORM_MANIFEST = {
615
657
  "method": "manual_credentials"
616
658
  },
617
659
  {
618
- "id": "reddit",
619
- "label": "Reddit",
620
- "status": "planned",
621
- "aliases": [],
622
- "method": "planned"
623
- },
624
- {
625
- "id": "wordpress",
626
- "label": "WordPress",
627
- "status": "planned",
660
+ "id": "discord",
661
+ "label": "Discord",
662
+ "status": "supported",
628
663
  "aliases": [],
629
- "method": "planned"
664
+ "method": "manual_credentials"
630
665
  },
631
666
  {
632
667
  "id": "mastodon",
633
668
  "label": "Mastodon",
634
- "status": "planned",
635
- "aliases": [],
636
- "method": "planned"
637
- },
638
- {
639
- "id": "medium",
640
- "label": "Medium",
641
- "status": "planned",
669
+ "status": "supported",
642
670
  "aliases": [],
643
- "method": "planned"
671
+ "method": "manual_credentials"
644
672
  },
645
673
  {
646
674
  "id": "devto",
647
675
  "label": "Dev.to",
648
- "status": "planned",
676
+ "status": "supported",
649
677
  "aliases": [],
650
- "method": "planned"
678
+ "method": "manual_credentials"
651
679
  },
652
680
  {
653
681
  "id": "hashnode",
654
682
  "label": "Hashnode",
683
+ "status": "supported",
684
+ "aliases": [],
685
+ "method": "manual_credentials"
686
+ },
687
+ {
688
+ "id": "wordpress",
689
+ "label": "WordPress",
690
+ "status": "supported",
691
+ "aliases": [],
692
+ "method": "manual_credentials"
693
+ },
694
+ {
695
+ "id": "lemmy",
696
+ "label": "Lemmy",
697
+ "status": "supported",
698
+ "aliases": [],
699
+ "method": "manual_credentials"
700
+ },
701
+ {
702
+ "id": "reddit",
703
+ "label": "Reddit",
655
704
  "status": "planned",
656
705
  "aliases": [],
657
706
  "method": "planned"
658
707
  },
659
708
  {
660
- "id": "discord",
661
- "label": "Discord",
709
+ "id": "medium",
710
+ "label": "Medium",
662
711
  "status": "planned",
663
712
  "aliases": [],
664
713
  "method": "planned"
@@ -686,12 +735,12 @@ export const PLATFORM_MANIFEST = {
686
735
  }
687
736
  ]
688
737
  } as const;
689
- export const SUPPORTED_PLATFORM_IDS = ["instagram","facebook","tiktok","twitter","linkedin","youtube","pinterest","threads","google_business","telegram","bluesky"] as const;
690
- export const PLANNED_PLATFORM_IDS = ["reddit","wordpress","mastodon","medium","devto","hashnode","discord","slack","skool","whop"] as const;
691
- export const ALL_PLATFORM_IDS = ["instagram","facebook","tiktok","twitter","linkedin","youtube","pinterest","threads","google_business","telegram","bluesky","reddit","wordpress","mastodon","medium","devto","hashnode","discord","slack","skool","whop"] as const;
692
- export const SUPPORTED_PLATFORM_INPUTS = ["bluesky","facebook","gmb","google-business","google_business","google_business_profile","instagram","instagram-standalone","linkedin","pinterest","telegram","threads","tiktok","twitter","x","youtube"] as const;
693
- export const ALL_PLATFORM_INPUTS = ["bluesky","devto","discord","facebook","gmb","google-business","google_business","google_business_profile","hashnode","instagram","instagram-standalone","linkedin","mastodon","medium","pinterest","reddit","skool","slack","telegram","threads","tiktok","twitter","whop","wordpress","x","youtube"] as const;
694
- export const PLATFORM_HELPER_NAMES = ["linkedin.recent_mentions","pinterest.boards","tiktok.creator_info","x.quota","youtube.playlists"] as const;
695
- export const CONNECT_TARGET_IDS = ["instagram","meta","facebook","youtube","tiktok","linkedin","linkedin_page","threads","google_business","pinterest","twitter","telegram","bluesky","reddit","wordpress","mastodon","medium","devto","hashnode","discord","slack","skool","whop"] as const;
696
- export const CONNECT_INPUTS = ["bluesky","devto","discord","facebook","facebook_instagram","facebook_pages","gmb","google-business","google_business","google_business_profile","hashnode","instagram","instagram-standalone","instagram_direct","linkedin","linkedin-company","linkedin-page","linkedin_company","linkedin_page","linkedin_personal","mastodon","medium","meta","meta_business","pinterest","reddit","skool","slack","telegram","threads","tiktok","twitter","whop","wordpress","x","x_twitter","youtube"] as const;
697
- export const ANALYTICS_PLATFORM_IDS = ["instagram","facebook","linkedin","youtube","pinterest","google_business"] as const;
738
+ export const SUPPORTED_PLATFORM_IDS = ["instagram","facebook","tiktok","twitter","linkedin","youtube","pinterest","threads","google_business","telegram","bluesky","discord","mastodon","devto","hashnode","wordpress","lemmy"] as const;
739
+ export const PLANNED_PLATFORM_IDS = ["reddit","medium","slack","skool","whop"] as const;
740
+ export const ALL_PLATFORM_IDS = ["instagram","facebook","tiktok","twitter","linkedin","youtube","pinterest","threads","google_business","telegram","bluesky","discord","mastodon","devto","hashnode","wordpress","lemmy","reddit","medium","slack","skool","whop"] as const;
741
+ export const SUPPORTED_PLATFORM_INPUTS = ["bluesky","devto","discord","facebook","gmb","google-business","google_business","google_business_profile","hashnode","instagram","instagram-standalone","lemmy","linkedin","mastodon","pinterest","telegram","threads","tiktok","twitter","wordpress","x","youtube"] as const;
742
+ export const ALL_PLATFORM_INPUTS = ["bluesky","devto","discord","facebook","gmb","google-business","google_business","google_business_profile","hashnode","instagram","instagram-standalone","lemmy","linkedin","mastodon","medium","pinterest","reddit","skool","slack","telegram","threads","tiktok","twitter","whop","wordpress","x","youtube"] as const;
743
+ export const PLATFORM_HELPER_NAMES = ["linkedin.recent_mentions","pinterest.boards","tiktok.creator_info","x.quota"] as const;
744
+ export const CONNECT_TARGET_IDS = ["instagram","meta","facebook","youtube","tiktok","linkedin","linkedin_page","threads","google_business","pinterest","twitter","telegram","bluesky","discord","mastodon","devto","hashnode","wordpress","lemmy","reddit","medium","slack","skool","whop"] as const;
745
+ export const CONNECT_INPUTS = ["bluesky","devto","discord","facebook","facebook_instagram","facebook_pages","gmb","google-business","google_business","google_business_profile","hashnode","instagram","instagram-standalone","instagram_direct","lemmy","linkedin","linkedin-company","linkedin-page","linkedin_company","linkedin_page","linkedin_personal","mastodon","medium","meta","meta_business","pinterest","reddit","skool","slack","telegram","threads","tiktok","twitter","whop","wordpress","x","x_twitter","youtube"] as const;
746
+ export const ANALYTICS_PLATFORM_IDS = ["instagram","facebook","linkedin","youtube","pinterest","threads","google_business"] as const;