@agnocon/piece-bluesky 0.1.6

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 (67) hide show
  1. package/LICENSE.MIT-AP +24 -0
  2. package/dist/index.d.ts +8 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +32 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lib/actions/create-post.d.ts +21 -0
  7. package/dist/lib/actions/create-post.d.ts.map +1 -0
  8. package/dist/lib/actions/create-post.js +379 -0
  9. package/dist/lib/actions/create-post.js.map +1 -0
  10. package/dist/lib/actions/find-post.d.ts +8 -0
  11. package/dist/lib/actions/find-post.d.ts.map +1 -0
  12. package/dist/lib/actions/find-post.js +77 -0
  13. package/dist/lib/actions/find-post.js.map +1 -0
  14. package/dist/lib/actions/find-thread.d.ts +10 -0
  15. package/dist/lib/actions/find-thread.d.ts.map +1 -0
  16. package/dist/lib/actions/find-thread.js +117 -0
  17. package/dist/lib/actions/find-thread.js.map +1 -0
  18. package/dist/lib/actions/like-post.d.ts +14 -0
  19. package/dist/lib/actions/like-post.d.ts.map +1 -0
  20. package/dist/lib/actions/like-post.js +129 -0
  21. package/dist/lib/actions/like-post.js.map +1 -0
  22. package/dist/lib/actions/repost.d.ts +14 -0
  23. package/dist/lib/actions/repost.d.ts.map +1 -0
  24. package/dist/lib/actions/repost.js +132 -0
  25. package/dist/lib/actions/repost.js.map +1 -0
  26. package/dist/lib/common/auth.d.ts +11 -0
  27. package/dist/lib/common/auth.d.ts.map +1 -0
  28. package/dist/lib/common/auth.js +75 -0
  29. package/dist/lib/common/auth.js.map +1 -0
  30. package/dist/lib/common/client.d.ts +8 -0
  31. package/dist/lib/common/client.d.ts.map +1 -0
  32. package/dist/lib/common/client.js +47 -0
  33. package/dist/lib/common/client.js.map +1 -0
  34. package/dist/lib/common/props.d.ts +45 -0
  35. package/dist/lib/common/props.d.ts.map +1 -0
  36. package/dist/lib/common/props.js +360 -0
  37. package/dist/lib/common/props.js.map +1 -0
  38. package/dist/lib/triggers/new-follower-on-account.d.ts +19 -0
  39. package/dist/lib/triggers/new-follower-on-account.d.ts.map +1 -0
  40. package/dist/lib/triggers/new-follower-on-account.js +116 -0
  41. package/dist/lib/triggers/new-follower-on-account.js.map +1 -0
  42. package/dist/lib/triggers/new-post.d.ts +75 -0
  43. package/dist/lib/triggers/new-post.d.ts.map +1 -0
  44. package/dist/lib/triggers/new-post.js +214 -0
  45. package/dist/lib/triggers/new-post.js.map +1 -0
  46. package/dist/lib/triggers/new-posts-by-author.d.ts +59 -0
  47. package/dist/lib/triggers/new-posts-by-author.d.ts.map +1 -0
  48. package/dist/lib/triggers/new-posts-by-author.js +243 -0
  49. package/dist/lib/triggers/new-posts-by-author.js.map +1 -0
  50. package/dist/lib/triggers/new-timeline-posts.d.ts +19 -0
  51. package/dist/lib/triggers/new-timeline-posts.d.ts.map +1 -0
  52. package/dist/lib/triggers/new-timeline-posts.js +143 -0
  53. package/dist/lib/triggers/new-timeline-posts.js.map +1 -0
  54. package/package.json +48 -0
  55. package/src/index.ts +25 -0
  56. package/src/lib/actions/create-post.ts +444 -0
  57. package/src/lib/actions/find-post.ts +76 -0
  58. package/src/lib/actions/find-thread.ts +121 -0
  59. package/src/lib/actions/like-post.ts +128 -0
  60. package/src/lib/actions/repost.ts +132 -0
  61. package/src/lib/common/auth.ts +74 -0
  62. package/src/lib/common/client.ts +42 -0
  63. package/src/lib/common/props.ts +392 -0
  64. package/src/lib/triggers/new-follower-on-account.ts +112 -0
  65. package/src/lib/triggers/new-post.ts +225 -0
  66. package/src/lib/triggers/new-posts-by-author.ts +252 -0
  67. package/src/lib/triggers/new-timeline-posts.ts +141 -0
@@ -0,0 +1,45 @@
1
+ export declare const languageOptions: {
2
+ label: string;
3
+ value: string;
4
+ }[];
5
+ export declare const languageDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
6
+ export declare const multiLanguageDropdown: import("@agnocon/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
7
+ export declare const threadDepthDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
8
+ export declare const parentHeightDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
9
+ export declare const visibilityDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
10
+ export declare const moderationLabelDropdown: import("@agnocon/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
11
+ export declare const postUrlProperty: import("@agnocon/pieces-framework").ShortTextProperty<true>;
12
+ export declare const userHandleProperty: import("@agnocon/pieces-framework").ShortTextProperty<true>;
13
+ export declare const authorSelectionProperty: import("@agnocon/pieces-framework").DropdownProperty<any, false, import("@agnocon/pieces-framework").CustomAuthProperty<{
14
+ pdsHost: import("@agnocon/pieces-framework").ShortTextProperty<false>;
15
+ identifier: import("@agnocon/pieces-framework").ShortTextProperty<true>;
16
+ password: import("@agnocon/pieces-framework").SecretTextProperty<true>;
17
+ }>>;
18
+ export declare const postSearchProperty: import("@agnocon/pieces-framework").ShortTextProperty<false>;
19
+ export declare const postTextProperty: import("@agnocon/pieces-framework").LongTextProperty<true>;
20
+ export declare const imageUrlsProperty: import("@agnocon/pieces-framework").ArrayProperty<false>;
21
+ export declare const imageDescriptionsProperty: import("@agnocon/pieces-framework").ArrayProperty<false>;
22
+ export declare const linkUrlProperty: import("@agnocon/pieces-framework").ShortTextProperty<false>;
23
+ export declare const replyToPostProperty: import("@agnocon/pieces-framework").ShortTextProperty<false>;
24
+ export declare const postTypeDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
25
+ export declare const simpleLanguageDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
26
+ export declare const replyDepthDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
27
+ export declare const parentPostsDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
28
+ export declare const contentWarningDropdown: import("@agnocon/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
29
+ export declare const audienceDropdown: import("@agnocon/pieces-framework").StaticDropdownProperty<string, false>;
30
+ export declare function extractPostInfoFromUrl(url: string): {
31
+ uri?: string;
32
+ handle?: string;
33
+ postId?: string;
34
+ };
35
+ export declare function normalizeHandle(handle: string): string;
36
+ export declare function createSimpleExternalLink(url: string): {
37
+ uri: string;
38
+ title: string;
39
+ description?: string;
40
+ };
41
+ export declare const postUriProperty: import("@agnocon/pieces-framework").ShortTextProperty<false>;
42
+ export declare const externalLinkProperty: import("@agnocon/pieces-framework").ObjectProperty<false>;
43
+ export declare const replyToProperty: import("@agnocon/pieces-framework").ObjectProperty<false>;
44
+ export declare function parseBlueskyUrl(url: string, agent: any): Promise<string>;
45
+ //# sourceMappingURL=props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../../../src/lib/common/props.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,eAAe;;;GA+B3B,CAAC;AAGF,eAAO,MAAM,gBAAgB,2EAO3B,CAAC;AAEH,eAAO,MAAM,qBAAqB,sFAOhC,CAAC;AAEH,eAAO,MAAM,mBAAmB,2EAiB9B,CAAC;AAEH,eAAO,MAAM,oBAAoB,2EAiB/B,CAAC;AAEH,eAAO,MAAM,kBAAkB,2EAW7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,sFAgBlC,CAAC;AAEH,eAAO,MAAM,eAAe,6DAI1B,CAAC;AAEH,eAAO,MAAM,kBAAkB,6DAI7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;GAoClC,CAAC;AAEH,eAAO,MAAM,kBAAkB,8DAI7B,CAAC;AAEH,eAAO,MAAM,gBAAgB,4DAI3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,0DAI5B,CAAC;AAEH,eAAO,MAAM,yBAAyB,0DAIpC,CAAC;AAEH,eAAO,MAAM,eAAe,8DAI1B,CAAC;AAEH,eAAO,MAAM,mBAAmB,8DAI9B,CAAC;AAEH,eAAO,MAAM,gBAAgB,2EAc3B,CAAC;AAEH,eAAO,MAAM,sBAAsB,2EAwBjC,CAAC;AAEH,eAAO,MAAM,kBAAkB,2EAa7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,2EAa9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,sFAajC,CAAC;AAEH,eAAO,MAAM,gBAAgB,2EAY3B,CAAC;AAEH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAiBtG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAQtD;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAM1G;AAGD,eAAO,MAAM,eAAe,8DAI1B,CAAC;AAEH,eAAO,MAAM,oBAAoB,2DAI/B,CAAC;AAEH,eAAO,MAAM,eAAe,2DAI1B,CAAC;AAIH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAsB9E"}
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.replyToProperty = exports.externalLinkProperty = exports.postUriProperty = exports.audienceDropdown = exports.contentWarningDropdown = exports.parentPostsDropdown = exports.replyDepthDropdown = exports.simpleLanguageDropdown = exports.postTypeDropdown = exports.replyToPostProperty = exports.linkUrlProperty = exports.imageDescriptionsProperty = exports.imageUrlsProperty = exports.postTextProperty = exports.postSearchProperty = exports.authorSelectionProperty = exports.userHandleProperty = exports.postUrlProperty = exports.moderationLabelDropdown = exports.visibilityDropdown = exports.parentHeightDropdown = exports.threadDepthDropdown = exports.multiLanguageDropdown = exports.languageDropdown = exports.languageOptions = void 0;
4
+ exports.extractPostInfoFromUrl = extractPostInfoFromUrl;
5
+ exports.normalizeHandle = normalizeHandle;
6
+ exports.createSimpleExternalLink = createSimpleExternalLink;
7
+ exports.parseBlueskyUrl = parseBlueskyUrl;
8
+ const tslib_1 = require("tslib");
9
+ // Vendored from Activepieces packages/pieces/community/bluesky/src/lib/common/props.ts (MIT).
10
+ // Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
11
+ const pieces_framework_1 = require("@agnocon/pieces-framework");
12
+ const auth_1 = require("./auth");
13
+ exports.languageOptions = [
14
+ { label: 'English', value: 'en' },
15
+ { label: 'Spanish', value: 'es' },
16
+ { label: 'French', value: 'fr' },
17
+ { label: 'German', value: 'de' },
18
+ { label: 'Italian', value: 'it' },
19
+ { label: 'Portuguese', value: 'pt' },
20
+ { label: 'Russian', value: 'ru' },
21
+ { label: 'Japanese', value: 'ja' },
22
+ { label: 'Korean', value: 'ko' },
23
+ { label: 'Chinese (Simplified)', value: 'zh' },
24
+ { label: 'Chinese (Traditional)', value: 'zh-TW' },
25
+ { label: 'Arabic', value: 'ar' },
26
+ { label: 'Hindi', value: 'hi' },
27
+ { label: 'Dutch', value: 'nl' },
28
+ { label: 'Swedish', value: 'sv' },
29
+ { label: 'Norwegian', value: 'no' },
30
+ { label: 'Danish', value: 'da' },
31
+ { label: 'Finnish', value: 'fi' },
32
+ { label: 'Polish', value: 'pl' },
33
+ { label: 'Czech', value: 'cs' },
34
+ { label: 'Hungarian', value: 'hu' },
35
+ { label: 'Romanian', value: 'ro' },
36
+ { label: 'Greek', value: 'el' },
37
+ { label: 'Turkish', value: 'tr' },
38
+ { label: 'Hebrew', value: 'he' },
39
+ { label: 'Thai', value: 'th' },
40
+ { label: 'Vietnamese', value: 'vi' },
41
+ { label: 'Indonesian', value: 'id' },
42
+ { label: 'Malay', value: 'ms' },
43
+ { label: 'Filipino', value: 'fil' },
44
+ ];
45
+ exports.languageDropdown = pieces_framework_1.Property.StaticDropdown({
46
+ displayName: 'Language',
47
+ description: 'Select the language for the post',
48
+ required: false,
49
+ options: {
50
+ options: exports.languageOptions,
51
+ },
52
+ });
53
+ exports.multiLanguageDropdown = pieces_framework_1.Property.StaticMultiSelectDropdown({
54
+ displayName: 'Languages',
55
+ description: 'Select one or more languages for the post',
56
+ required: false,
57
+ options: {
58
+ options: exports.languageOptions,
59
+ },
60
+ });
61
+ exports.threadDepthDropdown = pieces_framework_1.Property.StaticDropdown({
62
+ displayName: 'Thread Depth',
63
+ description: 'How many levels deep to retrieve replies',
64
+ required: false,
65
+ defaultValue: '10',
66
+ options: {
67
+ options: [
68
+ { label: '1 level', value: '1' },
69
+ { label: '2 levels', value: '2' },
70
+ { label: '3 levels', value: '3' },
71
+ { label: '5 levels', value: '5' },
72
+ { label: '10 levels', value: '10' },
73
+ { label: '20 levels', value: '20' },
74
+ { label: '50 levels', value: '50' },
75
+ { label: '100 levels (max)', value: '100' },
76
+ ],
77
+ },
78
+ });
79
+ exports.parentHeightDropdown = pieces_framework_1.Property.StaticDropdown({
80
+ displayName: 'Parent Height',
81
+ description: 'How many parent posts to retrieve',
82
+ required: false,
83
+ defaultValue: '3',
84
+ options: {
85
+ options: [
86
+ { label: 'No parents', value: '0' },
87
+ { label: '1 parent', value: '1' },
88
+ { label: '2 parents', value: '2' },
89
+ { label: '3 parents', value: '3' },
90
+ { label: '5 parents', value: '5' },
91
+ { label: '10 parents', value: '10' },
92
+ { label: '20 parents', value: '20' },
93
+ { label: 'All parents (80 max)', value: '80' },
94
+ ],
95
+ },
96
+ });
97
+ exports.visibilityDropdown = pieces_framework_1.Property.StaticDropdown({
98
+ displayName: 'Visibility',
99
+ description: 'Post visibility setting',
100
+ required: false,
101
+ defaultValue: 'public',
102
+ options: {
103
+ options: [
104
+ { label: 'Public', value: 'public' },
105
+ { label: 'Unlisted', value: 'unlisted' },
106
+ ],
107
+ },
108
+ });
109
+ exports.moderationLabelDropdown = pieces_framework_1.Property.StaticMultiSelectDropdown({
110
+ displayName: 'Content Labels',
111
+ description: 'Apply content moderation labels to the post',
112
+ required: false,
113
+ options: {
114
+ options: [
115
+ { label: 'Adult Content', value: 'adult' },
116
+ { label: 'Graphic Media', value: 'graphic-media' },
117
+ { label: 'Nudity', value: 'nudity' },
118
+ { label: 'Sexual', value: 'sexual' },
119
+ { label: 'Violence', value: 'violence' },
120
+ { label: 'Self Harm', value: 'self-harm' },
121
+ { label: 'Spam', value: 'spam' },
122
+ { label: 'Impersonation', value: 'impersonation' },
123
+ ],
124
+ },
125
+ });
126
+ exports.postUrlProperty = pieces_framework_1.Property.ShortText({
127
+ displayName: 'Post URL',
128
+ description: 'Paste the Bluesky post URL (e.g., https://bsky.app/profile/username.bsky.social/post/xxx)',
129
+ required: true,
130
+ });
131
+ exports.userHandleProperty = pieces_framework_1.Property.ShortText({
132
+ displayName: 'User Handle',
133
+ description: 'Bluesky username (e.g., username.bsky.social)',
134
+ required: true,
135
+ });
136
+ exports.authorSelectionProperty = pieces_framework_1.Property.Dropdown({
137
+ displayName: 'Select Author',
138
+ description: 'Choose from accounts you follow',
139
+ required: false,
140
+ auth: auth_1.blueskyAuth,
141
+ refreshers: ['auth'],
142
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
143
+ try {
144
+ const { createBlueskyAgent } = yield Promise.resolve().then(() => tslib_1.__importStar(require('./client')));
145
+ if (!auth)
146
+ return { options: [] };
147
+ const agent = yield createBlueskyAgent(auth.props);
148
+ const session = agent.session;
149
+ if (!(session === null || session === void 0 ? void 0 : session.did)) {
150
+ return { options: [{ label: 'Please authenticate first', value: '' }] };
151
+ }
152
+ const followingResponse = yield agent.getFollows({
153
+ actor: session.did,
154
+ limit: 100
155
+ });
156
+ const options = followingResponse.data.follows.map((follow) => ({
157
+ label: `${follow.displayName || follow.handle} (@${follow.handle})`,
158
+ value: follow.handle
159
+ }));
160
+ options.unshift({ label: 'Enter handle manually', value: 'manual' });
161
+ return { options };
162
+ }
163
+ catch (error) {
164
+ return {
165
+ options: [{ label: 'Error loading following list', value: '' }]
166
+ };
167
+ }
168
+ })
169
+ });
170
+ exports.postSearchProperty = pieces_framework_1.Property.ShortText({
171
+ displayName: 'Search Posts',
172
+ description: 'Search for posts by keywords, hashtags, or content',
173
+ required: false,
174
+ });
175
+ exports.postTextProperty = pieces_framework_1.Property.LongText({
176
+ displayName: 'Post Text',
177
+ description: 'What do you want to post? (Max 300 characters)',
178
+ required: true,
179
+ });
180
+ exports.imageUrlsProperty = pieces_framework_1.Property.Array({
181
+ displayName: 'Image URLs',
182
+ description: 'Add up to 4 images by URL',
183
+ required: false,
184
+ });
185
+ exports.imageDescriptionsProperty = pieces_framework_1.Property.Array({
186
+ displayName: 'Image Descriptions',
187
+ description: 'Describe each image for accessibility',
188
+ required: false,
189
+ });
190
+ exports.linkUrlProperty = pieces_framework_1.Property.ShortText({
191
+ displayName: 'Link to Share',
192
+ description: 'URL to share with your post',
193
+ required: false,
194
+ });
195
+ exports.replyToPostProperty = pieces_framework_1.Property.ShortText({
196
+ displayName: 'Reply to Post',
197
+ description: 'URL of post to reply to',
198
+ required: false,
199
+ });
200
+ exports.postTypeDropdown = pieces_framework_1.Property.StaticDropdown({
201
+ displayName: 'Post Type',
202
+ description: 'Type of content you\'re sharing',
203
+ required: false,
204
+ defaultValue: 'text',
205
+ options: {
206
+ options: [
207
+ { label: 'Text Post', value: 'text' },
208
+ { label: 'Photo Post', value: 'photo' },
209
+ { label: 'Link Share', value: 'link' },
210
+ { label: 'Reply', value: 'reply' },
211
+ { label: 'Repost with Comment', value: 'quote' },
212
+ ],
213
+ },
214
+ });
215
+ exports.simpleLanguageDropdown = pieces_framework_1.Property.StaticDropdown({
216
+ displayName: 'Post Language',
217
+ description: 'Language of your post',
218
+ required: false,
219
+ defaultValue: 'en',
220
+ options: {
221
+ options: [
222
+ { label: 'English', value: 'en' },
223
+ { label: 'Spanish', value: 'es' },
224
+ { label: 'French', value: 'fr' },
225
+ { label: 'German', value: 'de' },
226
+ { label: 'Italian', value: 'it' },
227
+ { label: 'Portuguese', value: 'pt' },
228
+ { label: 'Japanese', value: 'ja' },
229
+ { label: 'Korean', value: 'ko' },
230
+ { label: 'Chinese', value: 'zh' },
231
+ { label: 'Russian', value: 'ru' },
232
+ { label: 'Arabic', value: 'ar' },
233
+ { label: 'Hindi', value: 'hi' },
234
+ { label: 'Dutch', value: 'nl' },
235
+ { label: 'Swedish', value: 'sv' },
236
+ { label: 'Other', value: 'other' },
237
+ ],
238
+ },
239
+ });
240
+ exports.replyDepthDropdown = pieces_framework_1.Property.StaticDropdown({
241
+ displayName: 'How many replies to show?',
242
+ description: 'Choose how deep to go into the conversation',
243
+ required: false,
244
+ defaultValue: '10',
245
+ options: {
246
+ options: [
247
+ { label: 'Just direct replies (1 level)', value: '1' },
248
+ { label: 'Short conversation (3 levels)', value: '3' },
249
+ { label: 'Full conversation (10 levels)', value: '10' },
250
+ { label: 'Entire thread (50+ levels)', value: '50' },
251
+ ],
252
+ },
253
+ });
254
+ exports.parentPostsDropdown = pieces_framework_1.Property.StaticDropdown({
255
+ displayName: 'Show conversation context?',
256
+ description: 'Include previous posts in the thread for context',
257
+ required: false,
258
+ defaultValue: '3',
259
+ options: {
260
+ options: [
261
+ { label: 'No context - just this post', value: '0' },
262
+ { label: 'Recent context (3 previous posts)', value: '3' },
263
+ { label: 'Full context (10 previous posts)', value: '10' },
264
+ { label: 'Complete thread history', value: '80' },
265
+ ],
266
+ },
267
+ });
268
+ exports.contentWarningDropdown = pieces_framework_1.Property.StaticMultiSelectDropdown({
269
+ displayName: 'Content Warnings',
270
+ description: 'Add warnings for sensitive content',
271
+ required: false,
272
+ options: {
273
+ options: [
274
+ { label: 'Adult Content', value: 'adult' },
275
+ { label: 'Graphic Content', value: 'graphic-media' },
276
+ { label: 'Sensitive Topic', value: 'sensitive' },
277
+ { label: 'Violence', value: 'violence' },
278
+ { label: 'Spam/Promotional', value: 'spam' },
279
+ ],
280
+ },
281
+ });
282
+ exports.audienceDropdown = pieces_framework_1.Property.StaticDropdown({
283
+ displayName: 'Audience',
284
+ description: 'Who can see this post',
285
+ required: false,
286
+ defaultValue: 'public',
287
+ options: {
288
+ options: [
289
+ { label: 'Everyone (Public)', value: 'public' },
290
+ { label: 'Followers only', value: 'followers' },
291
+ { label: 'Private/Unlisted', value: 'unlisted' },
292
+ ],
293
+ },
294
+ });
295
+ function extractPostInfoFromUrl(url) {
296
+ if (url.startsWith('at://')) {
297
+ return { uri: url };
298
+ }
299
+ const urlMatch = url.match(/https?:\/\/bsky\.app\/profile\/([^/]+)\/post\/([^/?]+)/);
300
+ if (urlMatch) {
301
+ const handle = urlMatch[1];
302
+ const postId = urlMatch[2];
303
+ return {
304
+ handle: handle,
305
+ postId: postId,
306
+ };
307
+ }
308
+ return {};
309
+ }
310
+ function normalizeHandle(handle) {
311
+ let cleanHandle = handle.replace(/^@/, '');
312
+ if (!cleanHandle.includes('.')) {
313
+ cleanHandle += '.bsky.social';
314
+ }
315
+ return cleanHandle;
316
+ }
317
+ function createSimpleExternalLink(url) {
318
+ return {
319
+ uri: url,
320
+ title: url,
321
+ description: 'Shared link'
322
+ };
323
+ }
324
+ exports.postUriProperty = pieces_framework_1.Property.ShortText({
325
+ displayName: 'Post URI (Advanced)',
326
+ description: 'Technical AT-URI format (at://did:plc:xxx/app.bsky.feed.post/xxx) - use Post URL field instead',
327
+ required: false,
328
+ });
329
+ exports.externalLinkProperty = pieces_framework_1.Property.Object({
330
+ displayName: 'External Link (Advanced)',
331
+ description: 'Manual link object - use "Link to Share" field instead',
332
+ required: false,
333
+ });
334
+ exports.replyToProperty = pieces_framework_1.Property.Object({
335
+ displayName: 'Reply To (Advanced)',
336
+ description: 'Manual reply object - use "Reply to Post" field instead',
337
+ required: false,
338
+ });
339
+ function parseBlueskyUrl(url, agent) {
340
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
341
+ if (url.startsWith('at://')) {
342
+ if (!url.match(/^at:\/\/did:plc:[a-z0-9]+\/app\.bsky\.feed\.post\/[a-z0-9]+$/)) {
343
+ throw new Error('Invalid AT-URI format');
344
+ }
345
+ return url;
346
+ }
347
+ const urlMatch = url.match(/https?:\/\/bsky\.app\/profile\/([^/]+)\/post\/([^/?]+)/);
348
+ if (urlMatch) {
349
+ const handle = urlMatch[1];
350
+ const postId = urlMatch[2];
351
+ if (!handle.includes('.') && !handle.includes('@')) {
352
+ throw new Error('Invalid handle format in URL');
353
+ }
354
+ const didDoc = yield agent.resolveHandle({ handle: handle.replace('@', '') });
355
+ return `at://${didDoc.data.did}/app.bsky.feed.post/${postId}`;
356
+ }
357
+ throw new Error('Invalid post URL format. Please use a valid Bluesky post URL or AT-URI.');
358
+ });
359
+ }
360
+ //# sourceMappingURL=props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../src/lib/common/props.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { TriggerStrategy } from '@agnocon/pieces-framework';
2
+ export declare const newFollowerOnAccount: import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@agnocon/pieces-framework").CustomAuthProperty<{
3
+ pdsHost: import("@agnocon/pieces-framework").ShortTextProperty<false>;
4
+ identifier: import("@agnocon/pieces-framework").ShortTextProperty<true>;
5
+ password: import("@agnocon/pieces-framework").SecretTextProperty<true>;
6
+ }>, {}> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@agnocon/pieces-framework").CustomAuthProperty<{
7
+ pdsHost: import("@agnocon/pieces-framework").ShortTextProperty<false>;
8
+ identifier: import("@agnocon/pieces-framework").ShortTextProperty<true>;
9
+ password: import("@agnocon/pieces-framework").SecretTextProperty<true>;
10
+ }>, {}> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@agnocon/pieces-framework").CustomAuthProperty<{
11
+ pdsHost: import("@agnocon/pieces-framework").ShortTextProperty<false>;
12
+ identifier: import("@agnocon/pieces-framework").ShortTextProperty<true>;
13
+ password: import("@agnocon/pieces-framework").SecretTextProperty<true>;
14
+ }>, {}> | import("@agnocon/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@agnocon/pieces-framework").CustomAuthProperty<{
15
+ pdsHost: import("@agnocon/pieces-framework").ShortTextProperty<false>;
16
+ identifier: import("@agnocon/pieces-framework").ShortTextProperty<true>;
17
+ password: import("@agnocon/pieces-framework").SecretTextProperty<true>;
18
+ }>, {}>;
19
+ //# sourceMappingURL=new-follower-on-account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-follower-on-account.d.ts","sourceRoot":"","sources":["../../../src/lib/triggers/new-follower-on-account.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,eAAe,EAA2D,MAAM,2BAA2B,CAAC;AA+DpI,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;OAgD/B,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newFollowerOnAccount = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // Vendored from Activepieces packages/pieces/community/bluesky/src/lib/triggers/new-follower-on-account.ts (MIT).
6
+ // Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
7
+ const pieces_framework_1 = require("@agnocon/pieces-framework");
8
+ const pieces_common_1 = require("@agnocon/pieces-common");
9
+ const auth_1 = require("../common/auth");
10
+ const client_1 = require("../common/client");
11
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
12
+ const polling = {
13
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
14
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, lastFetchEpochMS }) {
15
+ var _b;
16
+ try {
17
+ const agent = yield (0, client_1.createBlueskyAgent)(auth.props);
18
+ const session = agent.session;
19
+ if (!(session === null || session === void 0 ? void 0 : session.did)) {
20
+ throw new Error('Could not get user DID from session');
21
+ }
22
+ const userDid = session.did;
23
+ const response = yield agent.getFollowers({
24
+ actor: userDid,
25
+ limit: 100
26
+ });
27
+ if (!((_b = response.data) === null || _b === void 0 ? void 0 : _b.followers) || !Array.isArray(response.data.followers)) {
28
+ return [];
29
+ }
30
+ const currentTime = Date.now();
31
+ const cutoffTime = lastFetchEpochMS || 0;
32
+ return response.data.followers
33
+ .filter((follower) => {
34
+ const profileTime = follower.indexedAt ? (0, dayjs_1.default)(follower.indexedAt).valueOf() : currentTime;
35
+ return profileTime > cutoffTime - (24 * 60 * 60 * 1000);
36
+ })
37
+ .map((follower) => ({
38
+ epochMilliSeconds: follower.indexedAt ? (0, dayjs_1.default)(follower.indexedAt).valueOf() : currentTime,
39
+ data: {
40
+ did: follower.did,
41
+ handle: follower.handle,
42
+ displayName: follower.displayName || follower.handle,
43
+ description: follower.description || '',
44
+ avatar: follower.avatar || '',
45
+ banner: follower.banner || '',
46
+ followersCount: follower.followersCount || 0,
47
+ followsCount: follower.followsCount || 0,
48
+ postsCount: follower.postsCount || 0,
49
+ indexedAt: follower.indexedAt || new Date().toISOString(),
50
+ viewer: follower.viewer || {},
51
+ labels: follower.labels || [],
52
+ createdAt: follower.createdAt || null
53
+ }
54
+ }))
55
+ .sort((a, b) => b.epochMilliSeconds - a.epochMilliSeconds);
56
+ }
57
+ catch (error) {
58
+ console.error('Error fetching followers:', error);
59
+ return [];
60
+ }
61
+ })
62
+ };
63
+ exports.newFollowerOnAccount = (0, pieces_framework_1.createTrigger)({
64
+ auth: auth_1.blueskyAuth,
65
+ name: 'newFollowerOnAccount',
66
+ displayName: 'New Follower on Account',
67
+ description: 'Triggers when someone new follows your Bluesky account',
68
+ aiMetadata: {
69
+ description: 'Fires when a new account follows the authenticated Bluesky account; each event represents one new follower and carries that follower\'s profile details.',
70
+ },
71
+ props: {},
72
+ sampleData: {
73
+ did: 'did:plc:example123',
74
+ handle: 'newfollower.bsky.social',
75
+ displayName: 'New Follower',
76
+ description: 'A new user who just followed your account',
77
+ avatar: 'https://cdn.bsky.app/img/avatar/plain/did:plc:example123/example@jpeg',
78
+ banner: 'https://cdn.bsky.app/img/banner/plain/did:plc:example123/example@jpeg',
79
+ followersCount: 42,
80
+ followsCount: 156,
81
+ postsCount: 78,
82
+ indexedAt: '2024-01-01T12:00:00.000Z',
83
+ viewer: {
84
+ muted: false,
85
+ blockedBy: false,
86
+ following: 'at://did:plc:example123/app.bsky.graph.follow/example456',
87
+ followedBy: 'at://did:plc:example456/app.bsky.graph.follow/example789'
88
+ },
89
+ labels: [],
90
+ createdAt: '2023-06-01T12:00:00.000Z'
91
+ },
92
+ type: pieces_framework_1.TriggerStrategy.POLLING,
93
+ test(context) {
94
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
95
+ return yield pieces_common_1.pollingHelper.test(polling, context);
96
+ });
97
+ },
98
+ onEnable(context) {
99
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ const { store, auth, propsValue } = context;
101
+ yield pieces_common_1.pollingHelper.onEnable(polling, { store, auth, propsValue });
102
+ });
103
+ },
104
+ onDisable(context) {
105
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
+ const { store, auth, propsValue } = context;
107
+ yield pieces_common_1.pollingHelper.onDisable(polling, { store, auth, propsValue });
108
+ });
109
+ },
110
+ run(context) {
111
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
113
+ });
114
+ },
115
+ });
116
+ //# sourceMappingURL=new-follower-on-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-follower-on-account.js","sourceRoot":"","sources":["../../../src/lib/triggers/new-follower-on-account.ts"],"names":[],"mappings":"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"}