@auxiora/connector-social 1.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.
@@ -0,0 +1,239 @@
1
+ import { defineConnector } from '@auxiora/connectors';
2
+ async function linkedinFetch(token, path, options) {
3
+ const res = await fetch(`https://api.linkedin.com/v2${path}`, {
4
+ method: options?.method ?? 'GET',
5
+ headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' },
6
+ body: options?.body ? JSON.stringify(options.body) : undefined,
7
+ });
8
+ if (!res.ok)
9
+ throw new Error(`LinkedIn API error: ${res.status} ${await res.text().catch(() => res.statusText)}`);
10
+ return res.json();
11
+ }
12
+ export const linkedinConnector = defineConnector({
13
+ id: 'linkedin',
14
+ name: 'LinkedIn',
15
+ description: 'Integration with LinkedIn for posts, connections, and messaging',
16
+ version: '1.0.0',
17
+ category: 'social',
18
+ icon: 'linkedin',
19
+ auth: {
20
+ type: 'oauth2',
21
+ oauth2: {
22
+ authUrl: 'https://www.linkedin.com/oauth/v2/authorization',
23
+ tokenUrl: 'https://www.linkedin.com/oauth/v2/accessToken',
24
+ scopes: ['r_liteprofile', 'r_emailaddress', 'w_member_social', 'r_basicprofile'],
25
+ },
26
+ },
27
+ actions: [
28
+ {
29
+ id: 'feed-read',
30
+ name: 'Read Feed',
31
+ description: 'Read the LinkedIn news feed',
32
+ trustMinimum: 1,
33
+ trustDomain: 'integrations',
34
+ reversible: false,
35
+ sideEffects: false,
36
+ params: {},
37
+ },
38
+ {
39
+ id: 'post-update',
40
+ name: 'Post Update',
41
+ description: 'Post a status update on LinkedIn',
42
+ trustMinimum: 3,
43
+ trustDomain: 'integrations',
44
+ reversible: false,
45
+ sideEffects: true,
46
+ params: {
47
+ text: { type: 'string', description: 'Post text', required: true },
48
+ },
49
+ },
50
+ {
51
+ id: 'post-article',
52
+ name: 'Post Article',
53
+ description: 'Share an article on LinkedIn',
54
+ trustMinimum: 3,
55
+ trustDomain: 'integrations',
56
+ reversible: false,
57
+ sideEffects: true,
58
+ params: {
59
+ title: { type: 'string', description: 'Article title', required: true },
60
+ url: { type: 'string', description: 'Article URL', required: true },
61
+ commentary: { type: 'string', description: 'Commentary text' },
62
+ },
63
+ },
64
+ {
65
+ id: 'connections-list',
66
+ name: 'List Connections',
67
+ description: 'List LinkedIn connections',
68
+ trustMinimum: 1,
69
+ trustDomain: 'integrations',
70
+ reversible: false,
71
+ sideEffects: false,
72
+ params: {},
73
+ },
74
+ {
75
+ id: 'messages-list',
76
+ name: 'List Messages',
77
+ description: 'List LinkedIn messages',
78
+ trustMinimum: 1,
79
+ trustDomain: 'messaging',
80
+ reversible: false,
81
+ sideEffects: false,
82
+ params: {},
83
+ },
84
+ {
85
+ id: 'message-send',
86
+ name: 'Send Message',
87
+ description: 'Send a message on LinkedIn',
88
+ trustMinimum: 3,
89
+ trustDomain: 'messaging',
90
+ reversible: false,
91
+ sideEffects: true,
92
+ params: {
93
+ recipientId: { type: 'string', description: 'Recipient profile ID', required: true },
94
+ text: { type: 'string', description: 'Message text', required: true },
95
+ },
96
+ },
97
+ {
98
+ id: 'profile-get',
99
+ name: 'Get Profile',
100
+ description: 'Get a LinkedIn profile',
101
+ trustMinimum: 1,
102
+ trustDomain: 'integrations',
103
+ reversible: false,
104
+ sideEffects: false,
105
+ params: {
106
+ profileId: { type: 'string', description: 'Profile ID (default: authenticated user)' },
107
+ },
108
+ },
109
+ ],
110
+ triggers: [
111
+ {
112
+ id: 'new-message',
113
+ name: 'New Message',
114
+ description: 'Triggered when a new LinkedIn message is received',
115
+ type: 'poll',
116
+ pollIntervalMs: 120_000,
117
+ },
118
+ {
119
+ id: 'post-engagement',
120
+ name: 'Post Engagement',
121
+ description: 'Triggered when a post receives engagement',
122
+ type: 'poll',
123
+ pollIntervalMs: 300_000,
124
+ },
125
+ ],
126
+ entities: [
127
+ {
128
+ id: 'post',
129
+ name: 'Post',
130
+ description: 'A LinkedIn post',
131
+ fields: { id: 'string', text: 'string', authorName: 'string', likes: 'number', comments: 'number', shares: 'number' },
132
+ },
133
+ {
134
+ id: 'connection',
135
+ name: 'Connection',
136
+ description: 'A LinkedIn connection',
137
+ fields: { id: 'string', name: 'string', headline: 'string', company: 'string' },
138
+ },
139
+ ],
140
+ async executeAction(actionId, params, token) {
141
+ switch (actionId) {
142
+ case 'feed-read': {
143
+ const me = await linkedinFetch(token, '/me');
144
+ const urn = `urn:li:person:${me.id}`;
145
+ try {
146
+ const posts = await linkedinFetch(token, `/ugcPosts?q=authors&authors=List(${encodeURIComponent(urn)})&count=10`);
147
+ return { posts: posts.elements };
148
+ }
149
+ catch (err) {
150
+ return { posts: [], error: `Feed access restricted: ${err.message}` };
151
+ }
152
+ }
153
+ case 'post-update': {
154
+ const me = await linkedinFetch(token, '/me');
155
+ const authorUrn = `urn:li:person:${me.id}`;
156
+ const res = await linkedinFetch(token, '/ugcPosts', {
157
+ method: 'POST',
158
+ body: {
159
+ author: authorUrn,
160
+ lifecycleState: 'PUBLISHED',
161
+ specificContent: {
162
+ 'com.linkedin.ugc.ShareContent': {
163
+ shareCommentary: { text: params.text },
164
+ shareMediaCategory: 'NONE',
165
+ },
166
+ },
167
+ visibility: { 'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC' },
168
+ },
169
+ });
170
+ return { postId: res.id, status: 'posted' };
171
+ }
172
+ case 'post-article': {
173
+ const me = await linkedinFetch(token, '/me');
174
+ const authorUrn = `urn:li:person:${me.id}`;
175
+ const res = await linkedinFetch(token, '/ugcPosts', {
176
+ method: 'POST',
177
+ body: {
178
+ author: authorUrn,
179
+ lifecycleState: 'PUBLISHED',
180
+ specificContent: {
181
+ 'com.linkedin.ugc.ShareContent': {
182
+ shareCommentary: { text: params.commentary ?? '' },
183
+ shareMediaCategory: 'ARTICLE',
184
+ media: [{
185
+ status: 'READY',
186
+ originalUrl: params.url,
187
+ title: { text: params.title },
188
+ }],
189
+ },
190
+ },
191
+ visibility: { 'com.linkedin.ugc.MemberNetworkVisibility': 'PUBLIC' },
192
+ },
193
+ });
194
+ return { postId: res.id, status: 'shared' };
195
+ }
196
+ case 'connections-list': {
197
+ try {
198
+ const res = await linkedinFetch(token, '/connections?q=viewer&count=50');
199
+ return { connections: res.elements };
200
+ }
201
+ catch (err) {
202
+ return { connections: [], error: `Connections access restricted: ${err.message}` };
203
+ }
204
+ }
205
+ case 'messages-list': {
206
+ try {
207
+ const res = await linkedinFetch(token, '/messages');
208
+ return { messages: res.elements };
209
+ }
210
+ catch (err) {
211
+ return { messages: [], error: `Messages access restricted: ${err.message}` };
212
+ }
213
+ }
214
+ case 'message-send': {
215
+ const res = await linkedinFetch(token, '/messages', {
216
+ method: 'POST',
217
+ body: {
218
+ recipients: [`urn:li:person:${params.recipientId}`],
219
+ body: params.text,
220
+ },
221
+ });
222
+ return { messageId: res.id, status: 'sent' };
223
+ }
224
+ case 'profile-get': {
225
+ const profileId = params.profileId;
226
+ const path = profileId ? `/people/(id:${profileId})` : '/me';
227
+ const profile = await linkedinFetch(token, path);
228
+ return profile;
229
+ }
230
+ default:
231
+ throw new Error(`Unknown action: ${actionId}`);
232
+ }
233
+ },
234
+ // LinkedIn doesn't support efficient polling for triggers
235
+ async pollTrigger(_triggerId, _token, _lastPollAt) {
236
+ return [];
237
+ },
238
+ });
239
+ //# sourceMappingURL=linkedin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin.js","sourceRoot":"","sources":["../src/linkedin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const redditConnector: import("@auxiora/connectors").Connector;
2
+ //# sourceMappingURL=reddit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reddit.d.ts","sourceRoot":"","sources":["../src/reddit.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,eAAe,yCAsO1B,CAAC"}
package/dist/reddit.js ADDED
@@ -0,0 +1,259 @@
1
+ import { defineConnector } from '@auxiora/connectors';
2
+ const REDDIT_BASE = 'https://oauth.reddit.com';
3
+ const REDDIT_UA = 'auxiora:v1.0.0 (by /u/auxiora)';
4
+ async function redditGet(token, path) {
5
+ const res = await fetch(`${REDDIT_BASE}${path}`, {
6
+ headers: {
7
+ 'Authorization': `Bearer ${token}`,
8
+ 'User-Agent': REDDIT_UA,
9
+ },
10
+ });
11
+ if (!res.ok)
12
+ throw new Error(`Reddit API error: ${res.status} ${await res.text().catch(() => res.statusText)}`);
13
+ return res.json();
14
+ }
15
+ async function redditPost(token, path, body) {
16
+ const res = await fetch(`${REDDIT_BASE}${path}`, {
17
+ method: 'POST',
18
+ headers: {
19
+ 'Authorization': `Bearer ${token}`,
20
+ 'User-Agent': REDDIT_UA,
21
+ 'Content-Type': 'application/x-www-form-urlencoded',
22
+ },
23
+ body: new URLSearchParams(body).toString(),
24
+ });
25
+ if (!res.ok)
26
+ throw new Error(`Reddit API error: ${res.status} ${await res.text().catch(() => res.statusText)}`);
27
+ return res.json();
28
+ }
29
+ function extractPosts(listing) {
30
+ const data = listing.data;
31
+ const children = (data?.children ?? []);
32
+ return children.map((c) => c.data);
33
+ }
34
+ export const redditConnector = defineConnector({
35
+ id: 'reddit',
36
+ name: 'Reddit',
37
+ description: 'Integration with Reddit for browsing, posting, and messaging',
38
+ version: '1.0.0',
39
+ category: 'social',
40
+ icon: 'reddit',
41
+ auth: {
42
+ type: 'oauth2',
43
+ oauth2: {
44
+ authUrl: 'https://www.reddit.com/api/v1/authorize',
45
+ tokenUrl: 'https://www.reddit.com/api/v1/access_token',
46
+ scopes: ['read', 'submit', 'privatemessages', 'vote', 'save', 'identity'],
47
+ },
48
+ },
49
+ actions: [
50
+ {
51
+ id: 'front-page',
52
+ name: 'Read Front Page',
53
+ description: 'Read posts from the Reddit front page',
54
+ trustMinimum: 1,
55
+ trustDomain: 'messaging',
56
+ reversible: false,
57
+ sideEffects: false,
58
+ params: {},
59
+ },
60
+ {
61
+ id: 'subreddit-read',
62
+ name: 'Read Subreddit',
63
+ description: 'Read posts from a specific subreddit',
64
+ trustMinimum: 1,
65
+ trustDomain: 'messaging',
66
+ reversible: false,
67
+ sideEffects: false,
68
+ params: {
69
+ subreddit: { type: 'string', description: 'Subreddit name', required: true },
70
+ },
71
+ },
72
+ {
73
+ id: 'post-submit',
74
+ name: 'Submit Post',
75
+ description: 'Submit a new post to a subreddit',
76
+ trustMinimum: 3,
77
+ trustDomain: 'messaging',
78
+ reversible: false,
79
+ sideEffects: true,
80
+ params: {
81
+ subreddit: { type: 'string', description: 'Subreddit name', required: true },
82
+ title: { type: 'string', description: 'Post title', required: true },
83
+ body: { type: 'string', description: 'Post body', required: true },
84
+ },
85
+ },
86
+ {
87
+ id: 'comment',
88
+ name: 'Post Comment',
89
+ description: 'Post a comment on a Reddit post',
90
+ trustMinimum: 3,
91
+ trustDomain: 'messaging',
92
+ reversible: false,
93
+ sideEffects: true,
94
+ params: {
95
+ postId: { type: 'string', description: 'Post ID to comment on', required: true },
96
+ body: { type: 'string', description: 'Comment body', required: true },
97
+ },
98
+ },
99
+ {
100
+ id: 'inbox-read',
101
+ name: 'Read Inbox',
102
+ description: 'Read Reddit inbox messages',
103
+ trustMinimum: 1,
104
+ trustDomain: 'messaging',
105
+ reversible: false,
106
+ sideEffects: false,
107
+ params: {},
108
+ },
109
+ {
110
+ id: 'search',
111
+ name: 'Search Reddit',
112
+ description: 'Search across Reddit',
113
+ trustMinimum: 1,
114
+ trustDomain: 'messaging',
115
+ reversible: false,
116
+ sideEffects: false,
117
+ params: {
118
+ query: { type: 'string', description: 'Search query', required: true },
119
+ },
120
+ },
121
+ {
122
+ id: 'save-post',
123
+ name: 'Save Post',
124
+ description: 'Save a Reddit post',
125
+ trustMinimum: 1,
126
+ trustDomain: 'messaging',
127
+ reversible: true,
128
+ sideEffects: true,
129
+ params: {
130
+ postId: { type: 'string', description: 'Post ID to save', required: true },
131
+ },
132
+ },
133
+ {
134
+ id: 'upvote',
135
+ name: 'Upvote',
136
+ description: 'Upvote or downvote a post',
137
+ trustMinimum: 2,
138
+ trustDomain: 'messaging',
139
+ reversible: true,
140
+ sideEffects: true,
141
+ params: {
142
+ postId: { type: 'string', description: 'Post ID to vote on', required: true },
143
+ direction: { type: 'string', description: 'Vote direction (up or down)', default: 'up' },
144
+ },
145
+ },
146
+ ],
147
+ triggers: [
148
+ {
149
+ id: 'new-inbox',
150
+ name: 'New Inbox Message',
151
+ description: 'Triggered when a new inbox message is received',
152
+ type: 'poll',
153
+ pollIntervalMs: 120_000,
154
+ },
155
+ {
156
+ id: 'subreddit-new',
157
+ name: 'New Subreddit Post',
158
+ description: 'Triggered when a new post appears in a monitored subreddit',
159
+ type: 'poll',
160
+ pollIntervalMs: 300_000,
161
+ },
162
+ ],
163
+ entities: [
164
+ {
165
+ id: 'post',
166
+ name: 'Post',
167
+ description: 'A Reddit post',
168
+ fields: { id: 'string', title: 'string', subreddit: 'string', author: 'string', score: 'number', commentCount: 'number' },
169
+ },
170
+ {
171
+ id: 'comment',
172
+ name: 'Comment',
173
+ description: 'A Reddit comment',
174
+ fields: { id: 'string', body: 'string', author: 'string', score: 'number', postId: 'string' },
175
+ },
176
+ ],
177
+ async executeAction(actionId, params, token) {
178
+ switch (actionId) {
179
+ case 'front-page': {
180
+ const res = await redditGet(token, '/best?limit=25');
181
+ return { posts: extractPosts(res) };
182
+ }
183
+ case 'subreddit-read': {
184
+ const sub = params.subreddit;
185
+ const res = await redditGet(token, `/r/${sub}/hot?limit=25`);
186
+ return { posts: extractPosts(res) };
187
+ }
188
+ case 'post-submit': {
189
+ const res = await redditPost(token, '/api/submit', {
190
+ sr: params.subreddit,
191
+ kind: 'self',
192
+ title: params.title,
193
+ text: params.body,
194
+ });
195
+ const json = res.json;
196
+ const data = json?.data;
197
+ return { postId: data?.id ?? data?.name, status: 'submitted' };
198
+ }
199
+ case 'comment': {
200
+ const postId = params.postId;
201
+ const thingId = postId.startsWith('t3_') ? postId : `t3_${postId}`;
202
+ const res = await redditPost(token, '/api/comment', {
203
+ thing_id: thingId,
204
+ text: params.body,
205
+ });
206
+ const json = res.json;
207
+ const data = json?.data;
208
+ const things = data?.things;
209
+ const commentData = things?.[0]?.data;
210
+ return { commentId: commentData?.id ?? commentData?.name, status: 'posted' };
211
+ }
212
+ case 'inbox-read': {
213
+ const res = await redditGet(token, '/message/inbox?limit=25');
214
+ return { messages: extractPosts(res) };
215
+ }
216
+ case 'search': {
217
+ const query = encodeURIComponent(params.query);
218
+ const res = await redditGet(token, `/search?q=${query}&limit=25`);
219
+ return { posts: extractPosts(res) };
220
+ }
221
+ case 'save-post': {
222
+ const postId = params.postId;
223
+ const fullId = postId.startsWith('t3_') ? postId : `t3_${postId}`;
224
+ await redditPost(token, '/api/save', { id: fullId });
225
+ return { postId: params.postId, status: 'saved' };
226
+ }
227
+ case 'upvote': {
228
+ const postId = params.postId;
229
+ const fullId = postId.startsWith('t3_') ? postId : `t3_${postId}`;
230
+ const direction = params.direction ?? 'up';
231
+ const dir = direction === 'up' ? '1' : '-1';
232
+ await redditPost(token, '/api/vote', { id: fullId, dir });
233
+ return { postId: params.postId, status: 'voted' };
234
+ }
235
+ default:
236
+ throw new Error(`Unknown action: ${actionId}`);
237
+ }
238
+ },
239
+ async pollTrigger(triggerId, token, _lastPollAt) {
240
+ switch (triggerId) {
241
+ case 'new-inbox': {
242
+ const res = await redditGet(token, '/message/unread?limit=25');
243
+ const messages = extractPosts(res);
244
+ return messages.map((m) => ({
245
+ triggerId: 'new-inbox',
246
+ connectorId: 'reddit',
247
+ data: m,
248
+ timestamp: typeof m.created_utc === 'number' ? m.created_utc * 1000 : Date.now(),
249
+ }));
250
+ }
251
+ case 'subreddit-new':
252
+ // Cannot poll specific subreddit without config
253
+ return [];
254
+ default:
255
+ return [];
256
+ }
257
+ },
258
+ });
259
+ //# sourceMappingURL=reddit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reddit.js","sourceRoot":"","sources":["../src/reddit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const twitterConnector: import("@auxiora/connectors").Connector;
2
+ //# sourceMappingURL=twitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitter.d.ts","sourceRoot":"","sources":["../src/twitter.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,gBAAgB,yCAyO3B,CAAC"}