@muench-dev/n8n-nodes-bluesky 3.1.0 → 4.0.2

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 (44) hide show
  1. package/README.md +151 -24
  2. package/dist/nodes/Bluesky/V2/BlueskyV2.node.d.ts +1 -1
  3. package/dist/nodes/Bluesky/V2/BlueskyV2.node.js +212 -128
  4. package/dist/nodes/Bluesky/V2/BlueskyV2.node.js.map +1 -1
  5. package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.d.ts +1 -0
  6. package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.js +99 -0
  7. package/dist/nodes/Bluesky/V2/__tests__/analyticsOperations.test.js.map +1 -0
  8. package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.d.ts +1 -0
  9. package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.js +19 -0
  10. package/dist/nodes/Bluesky/V2/__tests__/graphOperations.test.js.map +1 -0
  11. package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.d.ts +1 -0
  12. package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.js +97 -0
  13. package/dist/nodes/Bluesky/V2/__tests__/listOperations.test.js.map +1 -0
  14. package/dist/nodes/Bluesky/V2/__tests__/postOperations.test.js +70 -8
  15. package/dist/nodes/Bluesky/V2/__tests__/postOperations.test.js.map +1 -1
  16. package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.d.ts +1 -0
  17. package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.js +41 -0
  18. package/dist/nodes/Bluesky/V2/__tests__/searchOperations.test.js.map +1 -0
  19. package/dist/nodes/Bluesky/V2/analyticsOperations.d.ts +7 -0
  20. package/dist/nodes/Bluesky/V2/analyticsOperations.js +236 -0
  21. package/dist/nodes/Bluesky/V2/analyticsOperations.js.map +1 -0
  22. package/dist/nodes/Bluesky/V2/feedOperations.d.ts +3 -2
  23. package/dist/nodes/Bluesky/V2/feedOperations.js +113 -13
  24. package/dist/nodes/Bluesky/V2/feedOperations.js.map +1 -1
  25. package/dist/nodes/Bluesky/V2/graphOperations.d.ts +4 -0
  26. package/dist/nodes/Bluesky/V2/graphOperations.js +45 -0
  27. package/dist/nodes/Bluesky/V2/graphOperations.js.map +1 -0
  28. package/dist/nodes/Bluesky/V2/listOperations.d.ts +10 -0
  29. package/dist/nodes/Bluesky/V2/listOperations.js +302 -0
  30. package/dist/nodes/Bluesky/V2/listOperations.js.map +1 -0
  31. package/dist/nodes/Bluesky/V2/postOperations.d.ts +21 -9
  32. package/dist/nodes/Bluesky/V2/postOperations.js +342 -232
  33. package/dist/nodes/Bluesky/V2/postOperations.js.map +1 -1
  34. package/dist/nodes/Bluesky/V2/resources.js +18 -2
  35. package/dist/nodes/Bluesky/V2/resources.js.map +1 -1
  36. package/dist/nodes/Bluesky/V2/searchOperations.d.ts +5 -0
  37. package/dist/nodes/Bluesky/V2/searchOperations.js +95 -0
  38. package/dist/nodes/Bluesky/V2/searchOperations.js.map +1 -0
  39. package/dist/nodes/Bluesky/V2/userOperations.d.ts +2 -0
  40. package/dist/nodes/Bluesky/V2/userOperations.js +137 -34
  41. package/dist/nodes/Bluesky/V2/userOperations.js.map +1 -1
  42. package/dist/package.json +10 -4
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +80 -66
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyticsProperties = void 0;
4
+ exports.listNotificationsOperation = listNotificationsOperation;
5
+ exports.getUnreadCountOperation = getUnreadCountOperation;
6
+ exports.updateSeenNotificationsOperation = updateSeenNotificationsOperation;
7
+ exports.getPostInteractionsOperation = getPostInteractionsOperation;
8
+ exports.analyticsProperties = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: {
16
+ resource: ['analytics'],
17
+ },
18
+ },
19
+ options: [
20
+ {
21
+ name: 'Get Post Interactions',
22
+ value: 'getPostInteractions',
23
+ description: 'Get likes, reposts, and replies for a post',
24
+ action: 'Get post interactions',
25
+ },
26
+ {
27
+ name: 'Get Unread Notification Count',
28
+ value: 'getUnreadCount',
29
+ description: 'Get unread notification count for the authenticated user',
30
+ action: 'Get unread notification count',
31
+ },
32
+ {
33
+ name: 'List Notifications',
34
+ value: 'listNotifications',
35
+ description: 'List notifications for the authenticated user',
36
+ action: 'List notifications',
37
+ },
38
+ {
39
+ name: 'Update Seen Notifications',
40
+ value: 'updateSeenNotifications',
41
+ description: 'Mark notifications as seen',
42
+ action: 'Mark notifications as seen',
43
+ },
44
+ ],
45
+ default: 'listNotifications',
46
+ },
47
+ {
48
+ displayName: 'Limit',
49
+ name: 'limit',
50
+ type: 'number',
51
+ default: 50,
52
+ typeOptions: {
53
+ minValue: 1,
54
+ },
55
+ description: 'Max number of results to return',
56
+ displayOptions: {
57
+ show: {
58
+ resource: ['analytics'],
59
+ operation: ['listNotifications'],
60
+ },
61
+ },
62
+ },
63
+ {
64
+ displayName: 'Unread Only',
65
+ name: 'unreadOnly',
66
+ type: 'boolean',
67
+ default: true,
68
+ description: 'Whether to only return unread notifications',
69
+ displayOptions: {
70
+ show: {
71
+ resource: ['analytics'],
72
+ operation: ['listNotifications'],
73
+ },
74
+ },
75
+ },
76
+ {
77
+ displayName: 'Mark Retrieved as Read',
78
+ name: 'markRetrievedAsRead',
79
+ type: 'boolean',
80
+ default: true,
81
+ description: 'Whether to mark retrieved notifications as read after returning them',
82
+ displayOptions: {
83
+ show: {
84
+ resource: ['analytics'],
85
+ operation: ['listNotifications'],
86
+ },
87
+ },
88
+ },
89
+ {
90
+ displayName: 'Seen At (ISO Date String)',
91
+ name: 'seenAt',
92
+ type: 'string',
93
+ default: '',
94
+ description: 'Optional timestamp to use when marking notifications as seen',
95
+ displayOptions: {
96
+ show: {
97
+ resource: ['analytics'],
98
+ operation: ['updateSeenNotifications'],
99
+ },
100
+ },
101
+ },
102
+ {
103
+ displayName: 'Post URI',
104
+ name: 'uri',
105
+ type: 'string',
106
+ default: '',
107
+ required: true,
108
+ description: 'AT URI of the post to analyze',
109
+ displayOptions: {
110
+ show: {
111
+ resource: ['analytics'],
112
+ operation: ['getPostInteractions'],
113
+ },
114
+ },
115
+ },
116
+ {
117
+ displayName: 'Interactions to Retrieve',
118
+ name: 'interactionTypes',
119
+ type: 'multiOptions',
120
+ options: [
121
+ { name: 'Likes', value: 'likes' },
122
+ { name: 'Replies', value: 'replies' },
123
+ { name: 'Reposts', value: 'reposts' },
124
+ ],
125
+ default: ['likes', 'reposts', 'replies'],
126
+ description: 'Types of interactions to include in the response',
127
+ displayOptions: {
128
+ show: {
129
+ resource: ['analytics'],
130
+ operation: ['getPostInteractions'],
131
+ },
132
+ },
133
+ },
134
+ {
135
+ displayName: 'Interaction Limit',
136
+ name: 'interactionLimit',
137
+ type: 'number',
138
+ default: 50,
139
+ typeOptions: {
140
+ minValue: 1,
141
+ maxValue: 100,
142
+ },
143
+ description: 'Max number of each interaction type to return',
144
+ displayOptions: {
145
+ show: {
146
+ resource: ['analytics'],
147
+ operation: ['getPostInteractions'],
148
+ },
149
+ },
150
+ },
151
+ ];
152
+ async function listNotificationsOperation(agent, limit, unreadOnly, markRetrievedAsRead) {
153
+ var _a;
154
+ const notifications = [];
155
+ let cursor;
156
+ while (notifications.length < limit) {
157
+ const response = await agent.app.bsky.notification.listNotifications({
158
+ limit: Math.min(100, limit - notifications.length),
159
+ ...(cursor ? { cursor } : {}),
160
+ });
161
+ const pageNotifications = ((_a = response.data.notifications) !== null && _a !== void 0 ? _a : []).filter((notification) => unreadOnly ? !notification.isRead : true);
162
+ notifications.push(...pageNotifications);
163
+ if (!response.data.cursor || response.data.notifications.length === 0) {
164
+ break;
165
+ }
166
+ cursor = response.data.cursor;
167
+ }
168
+ const finalNotifications = notifications.slice(0, limit);
169
+ if (markRetrievedAsRead && finalNotifications.length > 0) {
170
+ await agent.app.bsky.notification.updateSeen({
171
+ seenAt: new Date().toISOString(),
172
+ });
173
+ }
174
+ return finalNotifications.map((notification) => ({ json: notification }));
175
+ }
176
+ async function getUnreadCountOperation(agent) {
177
+ const response = await agent.app.bsky.notification.getUnreadCount();
178
+ return [
179
+ {
180
+ json: {
181
+ count: response.data.count,
182
+ },
183
+ },
184
+ ];
185
+ }
186
+ async function updateSeenNotificationsOperation(agent, seenAt) {
187
+ const timestamp = seenAt || new Date().toISOString();
188
+ await agent.app.bsky.notification.updateSeen({ seenAt: timestamp });
189
+ return [
190
+ {
191
+ json: {
192
+ success: true,
193
+ seenAt: timestamp,
194
+ },
195
+ },
196
+ ];
197
+ }
198
+ async function getPostInteractionsOperation(agent, uri, interactionTypes, interactionLimit) {
199
+ var _a;
200
+ const interactions = {};
201
+ if (interactionTypes.includes('likes')) {
202
+ const likesResponse = await agent.app.bsky.feed.getLikes({ uri, limit: interactionLimit });
203
+ interactions.likes = likesResponse.data.likes.map((like) => ({
204
+ actor: like.actor,
205
+ createdAt: like.createdAt,
206
+ indexedAt: like.indexedAt,
207
+ }));
208
+ }
209
+ if (interactionTypes.includes('reposts')) {
210
+ const repostsResponse = await agent.app.bsky.feed.getRepostedBy({
211
+ uri,
212
+ limit: interactionLimit,
213
+ });
214
+ interactions.reposts = repostsResponse.data.repostedBy;
215
+ }
216
+ if (interactionTypes.includes('replies')) {
217
+ const threadResponse = await agent.app.bsky.feed.getPostThread({ uri, depth: 1 });
218
+ const thread = threadResponse.data.thread;
219
+ interactions.replies = ((_a = thread === null || thread === void 0 ? void 0 : thread.replies) !== null && _a !== void 0 ? _a : [])
220
+ .map((reply) => {
221
+ var _a;
222
+ return ({
223
+ post: reply.post,
224
+ author: (_a = reply.post) === null || _a === void 0 ? void 0 : _a.author,
225
+ });
226
+ })
227
+ .slice(0, interactionLimit);
228
+ }
229
+ interactions.analytics = {
230
+ likeCount: Array.isArray(interactions.likes) ? interactions.likes.length : 0,
231
+ repostCount: Array.isArray(interactions.reposts) ? interactions.reposts.length : 0,
232
+ replyCount: Array.isArray(interactions.replies) ? interactions.replies.length : 0,
233
+ };
234
+ return [{ json: interactions }];
235
+ }
236
+ //# sourceMappingURL=analyticsOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyticsOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/analyticsOperations.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AppBskyFeedDefs, AppBskyFeedGetAuthorFeed, AppBskyFeedGetTimeline, AtpAgent, ComAtprotoLabelDefs, AppBskyActorDefs } from '@atproto/api';
1
+ import { AppBskyActorDefs, AppBskyFeedDefs, AppBskyFeedGetAuthorFeed, AppBskyFeedGetTimeline, AtpAgent, ComAtprotoLabelDefs } from '@atproto/api';
2
2
  import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
3
3
  export interface OutputPost {
4
4
  uri: string;
@@ -46,5 +46,6 @@ export declare function mapFeedViewPostToOutputPost(feedViewPost: AppBskyFeedDef
46
46
  export declare function _getAuthorFeedInternal(agent: AtpAgent, params: AppBskyFeedGetAuthorFeed.QueryParams): Promise<OutputPost[]>;
47
47
  export declare function _getTimelineInternal(agent: AtpAgent, params: AppBskyFeedGetTimeline.QueryParams): Promise<OutputPost[]>;
48
48
  export declare const feedProperties: INodeProperties[];
49
- export declare function getAuthorFeed(agent: AtpAgent, actor: string, limit: number): Promise<INodeExecutionData[]>;
49
+ export declare function getAuthorFeed(agent: AtpAgent, actor: string, limit: number, filter?: string): Promise<INodeExecutionData[]>;
50
+ export declare function getPostThread(agent: AtpAgent, uri: string, depth?: number, parentHeight?: number): Promise<INodeExecutionData[]>;
50
51
  export declare function getTimeline(agent: AtpAgent, limit: number): Promise<INodeExecutionData[]>;
@@ -5,6 +5,7 @@ exports.mapFeedViewPostToOutputPost = mapFeedViewPostToOutputPost;
5
5
  exports._getAuthorFeedInternal = _getAuthorFeedInternal;
6
6
  exports._getTimelineInternal = _getTimelineInternal;
7
7
  exports.getAuthorFeed = getAuthorFeed;
8
+ exports.getPostThread = getPostThread;
8
9
  exports.getTimeline = getTimeline;
9
10
  const api_1 = require("@atproto/api");
10
11
  function mapFeedViewPostToOutputPost(feedViewPost) {
@@ -45,7 +46,11 @@ function mapFeedViewPostToOutputPost(feedViewPost) {
45
46
  };
46
47
  }
47
48
  else if (api_1.AppBskyFeedDefs.isNotFoundPost(parent)) {
48
- outputPost.replyParent = { uri: parent.uri, cid: 'not_found_cid', authorDid: 'not_found_author' };
49
+ outputPost.replyParent = {
50
+ uri: parent.uri,
51
+ cid: 'not_found_cid',
52
+ authorDid: 'not_found_author',
53
+ };
49
54
  }
50
55
  else if (api_1.AppBskyFeedDefs.isBlockedPost(parent)) {
51
56
  outputPost.replyParent = { uri: parent.uri, cid: 'blocked_cid', authorDid: 'blocked_author' };
@@ -64,7 +69,8 @@ function mapFeedViewPostToOutputPost(feedViewPost) {
64
69
  outputPost.feedContext = `Reposted by @${reposter.handle}`;
65
70
  }
66
71
  if (feedViewPost.feedContext) {
67
- if (typeof outputPost.feedContext === 'string' && typeof feedViewPost.feedContext === 'string') {
72
+ if (typeof outputPost.feedContext === 'string' &&
73
+ typeof feedViewPost.feedContext === 'string') {
68
74
  outputPost.feedContext = `${outputPost.feedContext}; ${feedViewPost.feedContext}`;
69
75
  }
70
76
  else if (!outputPost.feedContext) {
@@ -79,9 +85,7 @@ async function _getAuthorFeedInternal(agent, params) {
79
85
  if ('error' in response && 'message' in response) {
80
86
  throw new Error(`Failed to fetch author feed: ${response.error} - ${response.message}`);
81
87
  }
82
- else {
83
- throw new Error('Failed to fetch author feed due to an unknown error structure.');
84
- }
88
+ throw new Error('Failed to fetch author feed due to an unknown error structure.');
85
89
  }
86
90
  return response.data.feed.map((item) => mapFeedViewPostToOutputPost(item));
87
91
  }
@@ -91,9 +95,7 @@ async function _getTimelineInternal(agent, params) {
91
95
  if ('error' in response && 'message' in response) {
92
96
  throw new Error(`Failed to fetch timeline: ${response.error} - ${response.message}`);
93
97
  }
94
- else {
95
- throw new Error('Failed to fetch timeline due to an unknown error structure.');
96
- }
98
+ throw new Error('Failed to fetch timeline due to an unknown error structure.');
97
99
  }
98
100
  return response.data.feed.map((item) => mapFeedViewPostToOutputPost(item));
99
101
  }
@@ -105,8 +107,24 @@ exports.feedProperties = [
105
107
  noDataExpression: true,
106
108
  displayOptions: { show: { resource: ['feed'] } },
107
109
  options: [
108
- { name: 'Get Author Feed', value: 'getAuthorFeed', description: 'Author feeds return posts by a single user', action: 'Retrieve feed with posts by a single user' },
109
- { name: 'Timeline', value: 'getTimeline', description: 'The default chronological feed of posts from users the authenticated user follows', action: 'Retrieve user timeline' },
110
+ {
111
+ name: 'Get Author Feed',
112
+ value: 'getAuthorFeed',
113
+ description: 'Author feeds return posts by a single user',
114
+ action: 'Retrieve feed with posts by a single user',
115
+ },
116
+ {
117
+ name: 'Get Post Thread',
118
+ value: 'getPostThread',
119
+ description: 'Retrieve the full context of a post thread',
120
+ action: 'Retrieve a post thread',
121
+ },
122
+ {
123
+ name: 'Timeline',
124
+ value: 'getTimeline',
125
+ description: 'The default chronological feed of posts from users the authenticated user follows',
126
+ action: 'Retrieve user timeline',
127
+ },
110
128
  ],
111
129
  default: 'getAuthorFeed',
112
130
  },
@@ -120,6 +138,33 @@ exports.feedProperties = [
120
138
  hint: 'The user getProfile operation can be used to get the DID of a user',
121
139
  displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed'] } },
122
140
  },
141
+ {
142
+ displayName: 'Post URI',
143
+ name: 'uri',
144
+ type: 'string',
145
+ default: '',
146
+ required: true,
147
+ description: 'The URI of the post to fetch the thread for',
148
+ displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
149
+ },
150
+ {
151
+ displayName: 'Depth',
152
+ name: 'depth',
153
+ type: 'number',
154
+ typeOptions: { minValue: 0 },
155
+ default: 6,
156
+ description: 'Depth of parent replies to fetch',
157
+ displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
158
+ },
159
+ {
160
+ displayName: 'Parent Height',
161
+ name: 'parentHeight',
162
+ type: 'number',
163
+ typeOptions: { minValue: 0 },
164
+ default: 80,
165
+ description: 'Depth of child replies to fetch',
166
+ displayOptions: { show: { resource: ['feed'], operation: ['getPostThread'] } },
167
+ },
123
168
  {
124
169
  displayName: 'Limit',
125
170
  name: 'limit',
@@ -130,13 +175,68 @@ exports.feedProperties = [
130
175
  description: 'Max number of results to return',
131
176
  displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed', 'getTimeline'] } },
132
177
  },
178
+ {
179
+ displayName: 'Filter',
180
+ name: 'filter',
181
+ type: 'options',
182
+ default: 'posts_with_replies',
183
+ description: 'Filter posts by type',
184
+ options: [
185
+ {
186
+ name: 'Posts and Author Threads',
187
+ value: 'posts_and_author_threads',
188
+ description: 'Posts and threads authored by the user',
189
+ },
190
+ {
191
+ name: 'Posts with Media',
192
+ value: 'posts_with_media',
193
+ description: 'Only posts containing media attachments',
194
+ },
195
+ {
196
+ name: 'Posts with Replies',
197
+ value: 'posts_with_replies',
198
+ description: 'All posts, including replies',
199
+ },
200
+ {
201
+ name: 'Posts with Video',
202
+ value: 'posts_with_video',
203
+ description: 'Only posts containing video content',
204
+ },
205
+ {
206
+ name: 'Posts without Replies',
207
+ value: 'posts_no_replies',
208
+ description: 'Only top-level posts',
209
+ },
210
+ ],
211
+ displayOptions: { show: { resource: ['feed'], operation: ['getAuthorFeed'] } },
212
+ },
133
213
  ];
134
- async function getAuthorFeed(agent, actor, limit) {
135
- const outputPosts = await _getAuthorFeedInternal(agent, { actor: actor, limit: limit });
214
+ async function getAuthorFeed(agent, actor, limit, filter) {
215
+ const outputPosts = await _getAuthorFeedInternal(agent, {
216
+ actor,
217
+ limit,
218
+ ...(filter ? { filter } : {}),
219
+ });
136
220
  return outputPosts.map((post) => ({ json: post, pairedItem: { item: 0 } }));
137
221
  }
222
+ async function getPostThread(agent, uri, depth, parentHeight) {
223
+ const response = await agent.app.bsky.feed.getPostThread({
224
+ uri,
225
+ ...(depth !== undefined ? { depth } : {}),
226
+ ...(parentHeight !== undefined ? { parentHeight } : {}),
227
+ });
228
+ if (!response.data.thread) {
229
+ return [];
230
+ }
231
+ return [
232
+ {
233
+ json: JSON.parse(JSON.stringify(response.data.thread)),
234
+ pairedItem: { item: 0 },
235
+ },
236
+ ];
237
+ }
138
238
  async function getTimeline(agent, limit) {
139
- const outputPosts = await _getTimelineInternal(agent, { limit: limit });
239
+ const outputPosts = await _getTimelineInternal(agent, { limit });
140
240
  return outputPosts.map((post) => ({ json: post, pairedItem: { item: 0 } }));
141
241
  }
142
242
  //# sourceMappingURL=feedOperations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feedOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/feedOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/feedOperations.ts"],"names":[],"mappings":";;;AAkDA,kEA6EC;AAED,wDAcC;AAED,oDAcC;AAoHD,sCAYC;AAED,sCAsBC;AAED,kCAGC;AA5TD,sCAOsB;AA2CtB,SAAgB,2BAA2B,CAC1C,YAA0C;;IAE1C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAE/B,MAAM,UAAU,GAAe;QAC9B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE;YACP,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC1B;QACD,MAAM,EAAE;YACP,IAAI,EAAE,MAAC,IAAI,CAAC,MAAc,0CAAE,IAAI;YAChC,SAAS,EAAE,MAAC,IAAI,CAAC,MAAc,0CAAE,SAAS;YAC1C,GAAI,IAAI,CAAC,MAAc;SACvB;QACD,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI;KACjB,CAAC;IAEF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACzC,IAAI,qBAAe,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,UAAU,CAAC,WAAW,GAAG;gBACxB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG;aAC5B,CAAC;QACH,CAAC;aAAM,IAAI,qBAAe,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,WAAW,GAAG;gBACxB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,GAAG,EAAE,eAAe;gBACpB,SAAS,EAAE,kBAAkB;aAC7B,CAAC;QACH,CAAC;aAAM,IAAI,qBAAe,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,UAAU,CAAC,WAAW,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC/F,CAAC;IACF,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,IAAI,qBAAe,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAChF,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,UAAU,CAAC,UAAU,GAAG;YACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;SACvB,CAAC;QACF,UAAU,CAAC,WAAW,GAAG,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;QAC9B,IACC,OAAO,UAAU,CAAC,WAAW,KAAK,QAAQ;YAC1C,OAAO,YAAY,CAAC,WAAW,KAAK,QAAQ,EAC3C,CAAC;YACF,UAAU,CAAC,WAAW,GAAG,GAAG,UAAU,CAAC,WAAW,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QACnF,CAAC;aAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACpC,UAAU,CAAC,WAAW,GAAG,YAAY,CAAC,WAEH,CAAC;QACrC,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC3C,KAAe,EACf,MAA4C;IAE5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACzC,KAAe,EACf,MAA0C;IAE1C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,OAAO,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5E,CAAC;AAEY,QAAA,cAAc,GAAsB;IAChD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;QAChD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,4CAA4C;gBACzD,MAAM,EAAE,2CAA2C;aACnD;YACD;gBACC,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,eAAe;gBACtB,WAAW,EAAE,4CAA4C;gBACzD,MAAM,EAAE,wBAAwB;aAChC;YACD;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,aAAa;gBACpB,WAAW,EACV,mFAAmF;gBACpF,MAAM,EAAE,wBAAwB;aAChC;SACD;QACD,OAAO,EAAE,eAAe;KACxB;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,oEAAoE;QAC1E,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;KAC9E;IACD;QACC,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,6CAA6C;QAC1D,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;KAC9E;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;QAC5B,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,kCAAkC;QAC/C,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;KAC9E;IACD;QACC,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;QAC5B,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;KAC9E;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;QAC5B,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,EAAE;KAC7F;IACD;QACC,WAAW,EAAE,QAAQ;QACrB,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,0BAA0B;gBAChC,KAAK,EAAE,0BAA0B;gBACjC,WAAW,EAAE,wCAAwC;aACrD;YACD;gBACC,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,yCAAyC;aACtD;YACD;gBACC,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,oBAAoB;gBAC3B,WAAW,EAAE,8BAA8B;aAC3C;YACD;gBACC,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,qCAAqC;aAClD;YACD;gBACC,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,kBAAkB;gBACzB,WAAW,EAAE,sBAAsB;aACnC;SACD;QACD,cAAc,EAAE,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE;KAC9E;CACD,CAAC;AAEK,KAAK,UAAU,aAAa,CAClC,KAAe,EACf,KAAa,EACb,KAAa,EACb,MAAe;IAEf,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE;QACvD,KAAK;QACL,KAAK;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAmB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAEM,KAAK,UAAU,aAAa,CAClC,KAAe,EACf,GAAW,EACX,KAAc,EACd,YAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACxD,GAAG;QACH,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACX,CAAC;IAED,OAAO;QACN;YACC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAgB;YACrE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;SACvB;KACD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,KAAe,EAAE,KAAa;IAC/D,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAmB,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AtpAgent } from '@atproto/api';
2
+ import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
3
+ export declare const graphProperties: INodeProperties[];
4
+ export declare function muteThreadOperation(agent: AtpAgent, uri: string): Promise<INodeExecutionData[]>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.graphProperties = void 0;
4
+ exports.muteThreadOperation = muteThreadOperation;
5
+ exports.graphProperties = [
6
+ {
7
+ displayName: 'Operation',
8
+ name: 'operation',
9
+ type: 'options',
10
+ noDataExpression: true,
11
+ displayOptions: {
12
+ show: {
13
+ resource: ['graph'],
14
+ },
15
+ },
16
+ options: [
17
+ {
18
+ name: 'Mute Thread',
19
+ value: 'muteThread',
20
+ description: 'Mute a conversation thread',
21
+ action: 'Mute a thread',
22
+ },
23
+ ],
24
+ default: 'muteThread',
25
+ },
26
+ {
27
+ displayName: 'Thread URI',
28
+ name: 'uri',
29
+ type: 'string',
30
+ default: '',
31
+ required: true,
32
+ description: 'AT URI of the root post to mute',
33
+ displayOptions: {
34
+ show: {
35
+ resource: ['graph'],
36
+ operation: ['muteThread'],
37
+ },
38
+ },
39
+ },
40
+ ];
41
+ async function muteThreadOperation(agent, uri) {
42
+ await agent.app.bsky.graph.muteThread({ root: uri });
43
+ return [{ json: { uri, muted: true } }];
44
+ }
45
+ //# sourceMappingURL=graphOperations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphOperations.js","sourceRoot":"","sources":["../../../../nodes/Bluesky/V2/graphOperations.ts"],"names":[],"mappings":";;;AAwCA,kDAOC;AA5CY,QAAA,eAAe,GAAsB;IACjD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,OAAO,CAAC;aACnB;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,4BAA4B;gBACzC,MAAM,EAAE,eAAe;aACvB;SACD;QACD,OAAO,EAAE,YAAY;KACrB;IACD;QACC,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,OAAO,CAAC;gBACnB,SAAS,EAAE,CAAC,YAAY,CAAC;aACzB;SACD;KACD;CACD,CAAC;AAEK,KAAK,UAAU,mBAAmB,CACxC,KAAe,EACf,GAAW;IAEX,MAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AtpAgent } from '@atproto/api';
2
+ import { INodeExecutionData, INodeProperties } from 'n8n-workflow';
3
+ export declare const listProperties: INodeProperties[];
4
+ export declare function createListOperation(agent: AtpAgent, name: string, purpose: string, description?: string): Promise<INodeExecutionData[]>;
5
+ export declare function updateListOperation(agent: AtpAgent, listUri: string, name: string, purpose: string, description?: string): Promise<INodeExecutionData[]>;
6
+ export declare function deleteListOperation(agent: AtpAgent, listUri: string): Promise<INodeExecutionData[]>;
7
+ export declare function getListsOperation(agent: AtpAgent, actor: string, limit?: number): Promise<INodeExecutionData[]>;
8
+ export declare function getListFeedOperation(agent: AtpAgent, listUri: string, limit?: number): Promise<INodeExecutionData[]>;
9
+ export declare function addUserToListOperation(agent: AtpAgent, listUri: string, userDid: string): Promise<INodeExecutionData[]>;
10
+ export declare function removeUserFromListOperation(agent: AtpAgent, listItemUri: string): Promise<INodeExecutionData[]>;