@jam-nodes/nodes 0.2.7 → 0.2.10

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 (132) hide show
  1. package/README.md +147 -0
  2. package/dist/ai/analyze-posts.d.ts +3 -3
  3. package/dist/ai/draft-emails.d.ts +1 -1
  4. package/dist/index.d.ts +363 -8
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +26 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/integrations/apollo/search-contacts.d.ts +4 -4
  9. package/dist/integrations/dataforseo/keyword-research.d.ts +6 -6
  10. package/dist/integrations/dataforseo/keyword-research.d.ts.map +1 -1
  11. package/dist/integrations/dataforseo/keyword-research.js +2 -8
  12. package/dist/integrations/dataforseo/keyword-research.js.map +1 -1
  13. package/dist/integrations/devto/create-article.d.ts +20 -0
  14. package/dist/integrations/devto/create-article.d.ts.map +1 -0
  15. package/dist/integrations/devto/create-article.js +67 -0
  16. package/dist/integrations/devto/create-article.js.map +1 -0
  17. package/dist/integrations/devto/credentials.d.ts +2 -0
  18. package/dist/integrations/devto/credentials.d.ts.map +1 -0
  19. package/dist/integrations/devto/credentials.js +17 -0
  20. package/dist/integrations/devto/credentials.js.map +1 -0
  21. package/dist/integrations/devto/get-articles.d.ts +21 -0
  22. package/dist/integrations/devto/get-articles.d.ts.map +1 -0
  23. package/dist/integrations/devto/get-articles.js +78 -0
  24. package/dist/integrations/devto/get-articles.js.map +1 -0
  25. package/dist/integrations/devto/index.d.ts +6 -0
  26. package/dist/integrations/devto/index.d.ts.map +1 -0
  27. package/dist/integrations/devto/index.js +6 -0
  28. package/dist/integrations/devto/index.js.map +1 -0
  29. package/dist/integrations/devto/schemas.d.ts +243 -0
  30. package/dist/integrations/devto/schemas.d.ts.map +1 -0
  31. package/dist/integrations/devto/schemas.js +69 -0
  32. package/dist/integrations/devto/schemas.js.map +1 -0
  33. package/dist/integrations/devto/update-article.d.ts +19 -0
  34. package/dist/integrations/devto/update-article.d.ts.map +1 -0
  35. package/dist/integrations/devto/update-article.js +65 -0
  36. package/dist/integrations/devto/update-article.js.map +1 -0
  37. package/dist/integrations/discord/schemas.d.ts +2 -2
  38. package/dist/integrations/discord/send-message.d.ts +1 -1
  39. package/dist/integrations/firecrawl/crawl.d.ts +121 -0
  40. package/dist/integrations/firecrawl/crawl.d.ts.map +1 -0
  41. package/dist/integrations/firecrawl/crawl.js +168 -0
  42. package/dist/integrations/firecrawl/crawl.js.map +1 -0
  43. package/dist/integrations/firecrawl/extract.d.ts +82 -0
  44. package/dist/integrations/firecrawl/extract.d.ts.map +1 -0
  45. package/dist/integrations/firecrawl/extract.js +168 -0
  46. package/dist/integrations/firecrawl/extract.js.map +1 -0
  47. package/dist/integrations/firecrawl/index.d.ts +4 -0
  48. package/dist/integrations/firecrawl/index.d.ts.map +1 -0
  49. package/dist/integrations/firecrawl/index.js +4 -0
  50. package/dist/integrations/firecrawl/index.js.map +1 -0
  51. package/dist/integrations/firecrawl/scrape.d.ts +1208 -0
  52. package/dist/integrations/firecrawl/scrape.d.ts.map +1 -0
  53. package/dist/integrations/firecrawl/scrape.js +254 -0
  54. package/dist/integrations/firecrawl/scrape.js.map +1 -0
  55. package/dist/integrations/index.d.ts +4 -1
  56. package/dist/integrations/index.d.ts.map +1 -1
  57. package/dist/integrations/index.js +7 -1
  58. package/dist/integrations/index.js.map +1 -1
  59. package/dist/integrations/social/credentials.d.ts +2 -0
  60. package/dist/integrations/social/credentials.d.ts.map +1 -0
  61. package/dist/integrations/social/credentials.js +36 -0
  62. package/dist/integrations/social/credentials.js.map +1 -0
  63. package/dist/integrations/social/index.d.ts +8 -0
  64. package/dist/integrations/social/index.d.ts.map +1 -1
  65. package/dist/integrations/social/index.js +8 -0
  66. package/dist/integrations/social/index.js.map +1 -1
  67. package/dist/integrations/social/twitter-client.d.ts +6 -0
  68. package/dist/integrations/social/twitter-client.d.ts.map +1 -0
  69. package/dist/integrations/social/twitter-client.js +140 -0
  70. package/dist/integrations/social/twitter-client.js.map +1 -0
  71. package/dist/integrations/social/twitter-create-tweet.d.ts +61 -0
  72. package/dist/integrations/social/twitter-create-tweet.d.ts.map +1 -0
  73. package/dist/integrations/social/twitter-create-tweet.js +83 -0
  74. package/dist/integrations/social/twitter-create-tweet.js.map +1 -0
  75. package/dist/integrations/social/twitter-delete-tweet.d.ts +23 -0
  76. package/dist/integrations/social/twitter-delete-tweet.d.ts.map +1 -0
  77. package/dist/integrations/social/twitter-delete-tweet.js +41 -0
  78. package/dist/integrations/social/twitter-delete-tweet.js.map +1 -0
  79. package/dist/integrations/social/twitter-get-user-by-username.d.ts +39 -0
  80. package/dist/integrations/social/twitter-get-user-by-username.d.ts.map +1 -0
  81. package/dist/integrations/social/twitter-get-user-by-username.js +56 -0
  82. package/dist/integrations/social/twitter-get-user-by-username.js.map +1 -0
  83. package/dist/integrations/social/twitter-like-tweet.d.ts +23 -0
  84. package/dist/integrations/social/twitter-like-tweet.d.ts.map +1 -0
  85. package/dist/integrations/social/twitter-like-tweet.js +48 -0
  86. package/dist/integrations/social/twitter-like-tweet.js.map +1 -0
  87. package/dist/integrations/social/twitter-retweet.d.ts +23 -0
  88. package/dist/integrations/social/twitter-retweet.d.ts.map +1 -0
  89. package/dist/integrations/social/twitter-retweet.js +48 -0
  90. package/dist/integrations/social/twitter-retweet.js.map +1 -0
  91. package/dist/integrations/social/twitter-search-tweets.d.ts +77 -0
  92. package/dist/integrations/social/twitter-search-tweets.d.ts.map +1 -0
  93. package/dist/integrations/social/twitter-search-tweets.js +76 -0
  94. package/dist/integrations/social/twitter-search-tweets.js.map +1 -0
  95. package/dist/integrations/social/twitter-send-dm.d.ts +39 -0
  96. package/dist/integrations/social/twitter-send-dm.d.ts.map +1 -0
  97. package/dist/integrations/social/twitter-send-dm.js +67 -0
  98. package/dist/integrations/social/twitter-send-dm.js.map +1 -0
  99. package/dist/integrations/wordpress/createPost.d.ts +25 -0
  100. package/dist/integrations/wordpress/createPost.d.ts.map +1 -0
  101. package/dist/integrations/wordpress/createPost.js +67 -0
  102. package/dist/integrations/wordpress/createPost.js.map +1 -0
  103. package/dist/integrations/wordpress/credentials.d.ts +2 -0
  104. package/dist/integrations/wordpress/credentials.d.ts.map +1 -0
  105. package/dist/integrations/wordpress/credentials.js +25 -0
  106. package/dist/integrations/wordpress/credentials.js.map +1 -0
  107. package/dist/integrations/wordpress/getPosts.d.ts +28 -0
  108. package/dist/integrations/wordpress/getPosts.d.ts.map +1 -0
  109. package/dist/integrations/wordpress/getPosts.js +70 -0
  110. package/dist/integrations/wordpress/getPosts.js.map +1 -0
  111. package/dist/integrations/wordpress/index.d.ts +8 -0
  112. package/dist/integrations/wordpress/index.d.ts.map +1 -0
  113. package/dist/integrations/wordpress/index.js +7 -0
  114. package/dist/integrations/wordpress/index.js.map +1 -0
  115. package/dist/integrations/wordpress/schemas.d.ts +411 -0
  116. package/dist/integrations/wordpress/schemas.d.ts.map +1 -0
  117. package/dist/integrations/wordpress/schemas.js +110 -0
  118. package/dist/integrations/wordpress/schemas.js.map +1 -0
  119. package/dist/integrations/wordpress/updatePost.d.ts +21 -0
  120. package/dist/integrations/wordpress/updatePost.d.ts.map +1 -0
  121. package/dist/integrations/wordpress/updatePost.js +59 -0
  122. package/dist/integrations/wordpress/updatePost.js.map +1 -0
  123. package/dist/integrations/wordpress/uploadMedia.d.ts +15 -0
  124. package/dist/integrations/wordpress/uploadMedia.d.ts.map +1 -0
  125. package/dist/integrations/wordpress/uploadMedia.js +56 -0
  126. package/dist/integrations/wordpress/uploadMedia.js.map +1 -0
  127. package/dist/integrations/wordpress/utils.d.ts +15 -0
  128. package/dist/integrations/wordpress/utils.d.ts.map +1 -0
  129. package/dist/integrations/wordpress/utils.js +15 -0
  130. package/dist/integrations/wordpress/utils.js.map +1 -0
  131. package/dist/schemas/ai.d.ts +20 -20
  132. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrape.d.ts","sourceRoot":"","sources":["../../../src/integrations/firecrawl/scrape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyDxB,eAAO,MAAM,0BAA0B;IACrC,oBAAoB;;IAEpB,gDAAgD;;;QAK5C,iFAAiF;;QAEjF,+CAA+C;;QAE/C,6CAA6C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAQ7C,uDAAuD;;QAEvD,0CAA0C;;;;;;;;;;;;QAK1C,qBAAqB;;QAErB,uCAAuC;;QAEvC,yCAAyC;;QAEzC,gCAAgC;;;;;;;;;;;;;;;IAIpC,2EAA2E;;IAE3E,wEAAwE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAExE,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgHtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAkDhF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2C9B,CAAC"}
@@ -0,0 +1,254 @@
1
+ import { z } from 'zod';
2
+ import { defineNode } from '@jam-nodes/core';
3
+ import { fetchWithRetry } from '../../utils/http.js';
4
+ // =============================================================================
5
+ // Constants
6
+ // =============================================================================
7
+ const FIRECRAWL_API_BASE = 'https://api.firecrawl.dev/v2';
8
+ // =============================================================================
9
+ // Schemas
10
+ // =============================================================================
11
+ export const FirecrawlScrapeInputSchema = z.object({
12
+ /** URL to scrape */
13
+ url: z.string().url(),
14
+ /** Output formats to include in the response */
15
+ formats: z.array(z.union([
16
+ z.enum(['markdown', 'summary', 'html', 'rawHtml', 'links', 'images', 'branding']),
17
+ z.object({
18
+ type: z.literal('screenshot'),
19
+ /** Whether to capture a full-page screenshot or limit to the current viewport */
20
+ fullPage: z.boolean().default(false),
21
+ /** Quality of the screenshot, from 1 to 100 */
22
+ quality: z.number().int().min(1).max(100).optional(),
23
+ /** Viewport dimensions for the screenshot */
24
+ viewport: z.object({
25
+ width: z.number().int(),
26
+ height: z.number().int(),
27
+ }).optional(),
28
+ }),
29
+ z.object({
30
+ type: z.literal('json'),
31
+ /** JSON Schema object defining the output structure */
32
+ schema: z.record(z.unknown()).optional(),
33
+ /** Prompt to guide extraction behavior */
34
+ prompt: z.string().optional(),
35
+ }),
36
+ z.object({
37
+ type: z.literal('changeTracking'),
38
+ /** Tracking modes */
39
+ modes: z.array(z.enum(['git-diff', 'json'])).optional(),
40
+ /** JSON Schema object for json mode */
41
+ schema: z.record(z.unknown()).optional(),
42
+ /** Prompt for extraction instructions */
43
+ prompt: z.string().optional(),
44
+ /** Tag for branching history */
45
+ tag: z.string().nullable().default(null),
46
+ }),
47
+ ])).default(() => ['markdown']),
48
+ /** Return only the main content and exclude headers, navs, footers, etc */
49
+ onlyMainContent: z.boolean().default(true),
50
+ /** Delay in ms before fetching content to allow dynamic page loading */
51
+ waitFor: z.number().int().default(0),
52
+ });
53
+ export const FirecrawlScrapeOutputSchema = z.object({
54
+ success: z.boolean(),
55
+ data: z.object({
56
+ markdown: z.string().optional(),
57
+ summary: z.string().nullable().optional(),
58
+ html: z.string().nullable().optional(),
59
+ rawHtml: z.string().nullable().optional(),
60
+ screenshot: z.string().nullable().optional(),
61
+ links: z.array(z.string()).optional(),
62
+ actions: z.object({
63
+ screenshots: z.array(z.string()).optional(),
64
+ scrapes: z.array(z.object({
65
+ url: z.string(),
66
+ html: z.string(),
67
+ })).optional(),
68
+ javascriptReturns: z.array(z.object({
69
+ type: z.string(),
70
+ value: z.unknown(),
71
+ })).optional(),
72
+ pdfs: z.array(z.string()).optional(),
73
+ }).nullable().optional(),
74
+ metadata: z.object({
75
+ title: z.union([z.string(), z.array(z.string())]).optional(),
76
+ description: z.union([z.string(), z.array(z.string())]).optional(),
77
+ language: z.union([z.string(), z.array(z.string())]).nullable().optional(),
78
+ sourceURL: z.string().optional(),
79
+ url: z.string().optional(),
80
+ keywords: z.union([z.string(), z.array(z.string())]).optional(),
81
+ ogLocaleAlternate: z.array(z.string()).optional(),
82
+ statusCode: z.number().int().optional(),
83
+ error: z.string().nullable().optional(),
84
+ }).passthrough().optional(),
85
+ warning: z.string().nullable().optional(),
86
+ changeTracking: z.object({
87
+ previousScrapeAt: z.string().optional(),
88
+ changeStatus: z.enum(["new", "same", "changed", "removed"]).optional(),
89
+ visibility: z.enum(["visible", "hidden"]).optional(),
90
+ diff: z.string().nullable().optional(),
91
+ json: z.record(z.string(), z.unknown()).optional(),
92
+ }).nullable().optional(),
93
+ branding: z.object({
94
+ colorScheme: z.enum(["light", "dark"]).optional(),
95
+ logo: z.string().optional(),
96
+ colors: z.object({
97
+ primary: z.string().optional(),
98
+ secondary: z.string().optional(),
99
+ accent: z.string().optional(),
100
+ background: z.string().optional(),
101
+ textPrimary: z.string().optional(),
102
+ textSecondary: z.string().optional(),
103
+ link: z.string().optional(),
104
+ success: z.string().optional(),
105
+ warning: z.string().optional(),
106
+ error: z.string().optional(),
107
+ }).optional(),
108
+ fonts: z.array(z.object({
109
+ family: z.string().optional(),
110
+ })).optional(),
111
+ typography: z.object({
112
+ fontFamilies: z.object({
113
+ primary: z.string().optional(),
114
+ heading: z.string().optional(),
115
+ code: z.string().optional(),
116
+ }).optional(),
117
+ fontSizes: z.object({
118
+ h1: z.string().optional(),
119
+ h2: z.string().optional(),
120
+ h3: z.string().optional(),
121
+ body: z.string().optional(),
122
+ }).optional(),
123
+ fontWeights: z.object({
124
+ light: z.number().optional(),
125
+ regular: z.number().optional(),
126
+ medium: z.number().optional(),
127
+ bold: z.number().optional(),
128
+ }).optional(),
129
+ lineHeights: z.object({
130
+ heading: z.string().optional(),
131
+ body: z.string().optional(),
132
+ }).optional(),
133
+ }).optional(),
134
+ spacing: z.object({
135
+ baseUnit: z.number().optional(),
136
+ borderRadius: z.string().optional(),
137
+ padding: z.record(z.string(), z.unknown()).optional(),
138
+ margins: z.record(z.string(), z.unknown()).optional(),
139
+ }).optional(),
140
+ components: z.object({
141
+ buttonPrimary: z.object({
142
+ background: z.string().optional(),
143
+ textColor: z.string().optional(),
144
+ borderRadius: z.string().optional(),
145
+ }).optional(),
146
+ buttonSecondary: z.object({
147
+ background: z.string().optional(),
148
+ textColor: z.string().optional(),
149
+ borderColor: z.string().optional(),
150
+ borderRadius: z.string().optional(),
151
+ }).optional(),
152
+ input: z.record(z.string(), z.unknown()).optional(),
153
+ }).optional(),
154
+ icons: z.record(z.string(), z.unknown()).optional(),
155
+ images: z.object({
156
+ logo: z.string().optional(),
157
+ favicon: z.string().optional(),
158
+ ogImage: z.string().optional(),
159
+ }).optional(),
160
+ animations: z.record(z.string(), z.unknown()).optional(),
161
+ layout: z.record(z.string(), z.unknown()).optional(),
162
+ personality: z.record(z.string(), z.unknown()).optional(),
163
+ }).nullable().optional(),
164
+ }),
165
+ });
166
+ // =============================================================================
167
+ // Firecrawl API Functions
168
+ // =============================================================================
169
+ /**
170
+ * Scrape a single URL via Firecrawl (POST /v2/scrape)
171
+ */
172
+ async function scrapePage(bearerToken, params) {
173
+ const requestBody = {
174
+ url: params.url,
175
+ ...(params.formats && { formats: params.formats }),
176
+ ...(params.onlyMainContent != null && { onlyMainContent: params.onlyMainContent }),
177
+ ...(params.waitFor && { waitFor: params.waitFor }),
178
+ };
179
+ const response = await fetchWithRetry(`${FIRECRAWL_API_BASE}/scrape`, {
180
+ method: 'POST',
181
+ headers: {
182
+ 'Content-Type': 'application/json',
183
+ Authorization: `Bearer ${bearerToken}`,
184
+ },
185
+ body: JSON.stringify(requestBody),
186
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
187
+ if (!response.ok) {
188
+ const errorText = await response.text();
189
+ throw new Error(`Firecrawl scrape error: ${response.status} - ${errorText}`);
190
+ }
191
+ return response.json();
192
+ }
193
+ // =============================================================================
194
+ // Node Definition
195
+ // =============================================================================
196
+ /**
197
+ * Firecrawl Scrape Node
198
+ *
199
+ * Scrapes a single URL and extracts content using the Firecrawl API.
200
+ * Supports multiple output formats including markdown, HTML, screenshots,
201
+ * structured JSON extraction, and change tracking.
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * const result = await firecrawlScrapeNode.executor({
206
+ * url: 'https://example.com',
207
+ * formats: ['markdown'],
208
+ * onlyMainContent: true,
209
+ * }, context);
210
+ * ```
211
+ */
212
+ export const firecrawlScrapeNode = defineNode({
213
+ type: 'firecrawl_scrape',
214
+ name: 'Firecrawl Scrape',
215
+ description: 'Scrape a single URL and extract its content using Firecrawl',
216
+ category: 'integration',
217
+ inputSchema: FirecrawlScrapeInputSchema,
218
+ outputSchema: FirecrawlScrapeOutputSchema,
219
+ estimatedDuration: 15,
220
+ capabilities: {
221
+ supportsRerun: true,
222
+ supportsCancel: true,
223
+ },
224
+ executor: async (input, context) => {
225
+ try {
226
+ // Check for Bearer Token
227
+ const bearerToken = context.credentials?.firecrawl?.bearerToken;
228
+ if (!bearerToken) {
229
+ return {
230
+ success: false,
231
+ error: 'Firecrawl Bearer Token not configured. Please provide context.credentials.firecrawl.bearerToken.',
232
+ };
233
+ }
234
+ // Scrape URL
235
+ const result = await scrapePage(bearerToken, {
236
+ url: input.url,
237
+ formats: input.formats,
238
+ onlyMainContent: input.onlyMainContent,
239
+ waitFor: input.waitFor,
240
+ });
241
+ return {
242
+ success: true,
243
+ output: result,
244
+ };
245
+ }
246
+ catch (error) {
247
+ return {
248
+ success: false,
249
+ error: error instanceof Error ? error.message : 'Failed to scrape URL',
250
+ };
251
+ }
252
+ },
253
+ });
254
+ //# sourceMappingURL=scrape.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scrape.js","sourceRoot":"","sources":["../../../src/integrations/firecrawl/scrape.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
- export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, type RedditMonitorInput, type RedditMonitorOutput, type RedditPost, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, type TwitterMonitorInput, type TwitterMonitorOutput, type TwitterPost, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, type LinkedInMonitorInput, type LinkedInMonitorOutput, type LinkedInPost, } from './social/index.js';
1
+ export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, type RedditMonitorInput, type RedditMonitorOutput, type RedditPost, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, type TwitterMonitorInput, type TwitterMonitorOutput, type TwitterPost, twitterCredential, twitterCreateTweetNode, TwitterCreateTweetInputSchema, TwitterCreateTweetOutputSchema, type TwitterCreateTweetInput, type TwitterCreateTweetOutput, twitterDeleteTweetNode, TwitterDeleteTweetInputSchema, TwitterDeleteTweetOutputSchema, type TwitterDeleteTweetInput, type TwitterDeleteTweetOutput, twitterLikeTweetNode, TwitterLikeTweetInputSchema, TwitterLikeTweetOutputSchema, type TwitterLikeTweetInput, type TwitterLikeTweetOutput, twitterRetweetNode, TwitterRetweetInputSchema, TwitterRetweetOutputSchema, type TwitterRetweetInput, type TwitterRetweetOutput, twitterSearchTweetsNode, TwitterSearchTweetsInputSchema, TwitterSearchTweetsOutputSchema, type TwitterSearchTweetsInput, type TwitterSearchTweetsOutput, twitterSendDMNode, TwitterSendDMInputSchema, TwitterSendDMOutputSchema, type TwitterSendDMInput, type TwitterSendDMOutput, twitterGetUserByUsernameNode, TwitterGetUserByUsernameInputSchema, TwitterGetUserByUsernameOutputSchema, type TwitterGetUserByUsernameInput, type TwitterGetUserByUsernameOutput, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, type LinkedInMonitorInput, type LinkedInMonitorOutput, type LinkedInPost, } from './social/index.js';
2
2
  export { soraVideoNode, SoraVideoInputSchema, SoraVideoOutputSchema, type SoraVideoInput, type SoraVideoOutput, } from './openai/index.js';
3
3
  export { seoKeywordResearchNode, SeoKeywordResearchInputSchema, SeoKeywordResearchOutputSchema, type SeoKeywordResearchInput, type SeoKeywordResearchOutput, seoAuditNode, SeoAuditInputSchema, SeoAuditOutputSchema, type SeoAuditInput, type SeoAuditOutput, type SeoIssue, } from './dataforseo/index.js';
4
4
  export { searchContactsNode, SearchContactsInputSchema, SearchContactsOutputSchema, type SearchContactsInput, type SearchContactsOutput, } from './apollo/index.js';
5
5
  export { discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, type DiscordSendMessageInput, type DiscordSendMessageOutput, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, type DiscordSendWebhookInput, type DiscordSendWebhookOutput, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, type DiscordCreateThreadInput, type DiscordCreateThreadOutput, DiscordEmbedSchema, type DiscordEmbed, discordBotCredential, discordWebhookCredential, } from './discord/index.js';
6
+ export { firecrawlScrapeNode, FirecrawlScrapeInputSchema, FirecrawlScrapeOutputSchema, type FirecrawlScrapeInput, type FirecrawlScrapeOutput, firecrawlCrawlNode, FirecrawlCrawlInputSchema, FirecrawlCrawlOutputSchema, type FirecrawlCrawlInput, type FirecrawlCrawlOutput, firecrawlExtractNode, FirecrawlExtractInputSchema, FirecrawlExtractOutputSchema, type FirecrawlExtractInput, type FirecrawlExtractOutput, } from './firecrawl/index.js';
7
+ export { devtoCreateArticleNode, devtoUpdateArticleNode, devtoGetArticlesNode, DevtoArticleSchema, DevtoCreateArticleInputSchema, DevtoCreateArticleOutputSchema, DevtoUpdateArticleInputSchema, DevtoUpdateArticleOutputSchema, DevtoGetArticlesInputSchema, DevtoGetArticlesOutputSchema, normalizeDevtoArticle, devtoCredential, type DevtoArticle, type DevtoCreateArticleInput, type DevtoCreateArticleOutput, type DevtoUpdateArticleInput, type DevtoUpdateArticleOutput, type DevtoGetArticlesInput, type DevtoGetArticlesOutput, } from './devto/index.js';
8
+ export { wordpressCreatePostNode, wordpressUpdatePostNode, wordpressGetPostsNode, wordpressUploadMediaNode, WordPressCredential, WordPressPostSchema, WordPressCreatePostInputSchema, WordPressCreatePostOutputSchema, WordPressUpdatePostInputSchema, WordPressUpdatePostOutputSchema, WordPressGetPostsInputSchema, WordPressGetPostsOutputSchema, WordPressMediaSchema, WordPressUploadMediaInputSchema, WordPressUploadMediaOutputSchema, normalizeWordPressPost, type WordPressPost, type WordPressCreatePostInput, type WordPressCreatePostOutput, type WordPressUpdatePostInput, type WordPressUpdatePostOutput, type WordPressGetPostsInput, type WordPressGetPostsOutput, type WordPressMedia, type WordPressUploadMediaInput, type WordPressUploadMediaOutput, } from './wordpress/index.js';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,KAAK,YAAY,EACjB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  // Social integrations
2
- export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, } from './social/index.js';
2
+ export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, twitterCredential, twitterCreateTweetNode, TwitterCreateTweetInputSchema, TwitterCreateTweetOutputSchema, twitterDeleteTweetNode, TwitterDeleteTweetInputSchema, TwitterDeleteTweetOutputSchema, twitterLikeTweetNode, TwitterLikeTweetInputSchema, TwitterLikeTweetOutputSchema, twitterRetweetNode, TwitterRetweetInputSchema, TwitterRetweetOutputSchema, twitterSearchTweetsNode, TwitterSearchTweetsInputSchema, TwitterSearchTweetsOutputSchema, twitterSendDMNode, TwitterSendDMInputSchema, TwitterSendDMOutputSchema, twitterGetUserByUsernameNode, TwitterGetUserByUsernameInputSchema, TwitterGetUserByUsernameOutputSchema, linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, } from './social/index.js';
3
3
  // OpenAI integrations
4
4
  export { soraVideoNode, SoraVideoInputSchema, SoraVideoOutputSchema, } from './openai/index.js';
5
5
  // DataForSEO integrations
@@ -8,4 +8,10 @@ export { seoKeywordResearchNode, SeoKeywordResearchInputSchema, SeoKeywordResear
8
8
  export { searchContactsNode, SearchContactsInputSchema, SearchContactsOutputSchema, } from './apollo/index.js';
9
9
  // Discord integrations
10
10
  export { discordSendMessageNode, DiscordSendMessageInputSchema, DiscordSendMessageOutputSchema, discordSendWebhookNode, DiscordSendWebhookInputSchema, DiscordSendWebhookOutputSchema, discordCreateThreadNode, DiscordCreateThreadInputSchema, DiscordCreateThreadOutputSchema, DiscordEmbedSchema, discordBotCredential, discordWebhookCredential, } from './discord/index.js';
11
+ // Firecrawl integrations
12
+ export { firecrawlScrapeNode, FirecrawlScrapeInputSchema, FirecrawlScrapeOutputSchema, firecrawlCrawlNode, FirecrawlCrawlInputSchema, FirecrawlCrawlOutputSchema, firecrawlExtractNode, FirecrawlExtractInputSchema, FirecrawlExtractOutputSchema, } from './firecrawl/index.js';
13
+ // Dev.to integrations
14
+ export { devtoCreateArticleNode, devtoUpdateArticleNode, devtoGetArticlesNode, DevtoArticleSchema, DevtoCreateArticleInputSchema, DevtoCreateArticleOutputSchema, DevtoUpdateArticleInputSchema, DevtoUpdateArticleOutputSchema, DevtoGetArticlesInputSchema, DevtoGetArticlesOutputSchema, normalizeDevtoArticle, devtoCredential, } from './devto/index.js';
15
+ // WordPress integrations
16
+ export { wordpressCreatePostNode, wordpressUpdatePostNode, wordpressGetPostsNode, wordpressUploadMediaNode, WordPressCredential, WordPressPostSchema, WordPressCreatePostInputSchema, WordPressCreatePostOutputSchema, WordPressUpdatePostInputSchema, WordPressUpdatePostOutputSchema, WordPressGetPostsInputSchema, WordPressGetPostsOutputSchema, WordPressMediaSchema, WordPressUploadMediaInputSchema, WordPressUploadMediaOutputSchema, normalizeWordPressPost, } from './wordpress/index.js';
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EAIzB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAI1B,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAI5B,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,mBAAmB,CAAC;AAE3B,0BAA0B;AAC1B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,uBAAuB,CAAC;AAE/B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,mBAAmB,CAAC;AAE3B,uBAAuB;AACvB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAG/B,kBAAkB,EAElB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EAIzB,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAI1B,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAG5B,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAG1B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAG/B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EAGzB,4BAA4B,EAC5B,mCAAmC,EACnC,oCAAoC,EAGpC,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAI5B,MAAM,mBAAmB,CAAA;AAE1B,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,mBAAmB,CAAA;AAE1B,0BAA0B;AAC1B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,GAIrB,MAAM,uBAAuB,CAAA;AAE9B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,mBAAmB,CAAA;AAE1B,uBAAuB;AACvB,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAG9B,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAG/B,kBAAkB,EAElB,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oBAAoB,CAAA;AAE3B,yBAAyB;AACzB,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAG3B,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAG1B,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,GAG7B,MAAM,sBAAsB,CAAA;AAE7B,sBAAsB;AACtB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,eAAe,GAQhB,MAAM,kBAAkB,CAAA;AAEzB,yBAAyB;AACzB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,EAC9B,+BAA+B,EAC/B,8BAA8B,EAC9B,+BAA+B,EAC/B,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,EACpB,+BAA+B,EAC/B,gCAAgC,EAChC,sBAAsB,GAWvB,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const twitterCredential: import("@jam-nodes/core").OAuth2CredentialDefinition;
2
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/integrations/social/credentials.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB,sDAgC5B,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ import { defineOAuth2Credential } from '@jam-nodes/core';
3
+ export const twitterCredential = defineOAuth2Credential({
4
+ pkce: true,
5
+ name: 'twitter',
6
+ displayName: 'Twitter/X OAuth2',
7
+ documentationUrl: 'https://developer.twitter.com/en/docs',
8
+ config: {
9
+ authorizationUrl: 'https://twitter.com/i/oauth2/authorize',
10
+ tokenUrl: 'https://api.twitter.com/2/oauth2/token',
11
+ scopes: [
12
+ 'tweet.read',
13
+ 'tweet.write',
14
+ 'users.read',
15
+ 'dm.read',
16
+ 'dm.write',
17
+ 'like.read',
18
+ 'like.write',
19
+ 'offline.access',
20
+ ],
21
+ pkce: true,
22
+ },
23
+ schema: z.object({
24
+ clientId: z.string(),
25
+ clientSecret: z.string(),
26
+ accessToken: z.string(),
27
+ refreshToken: z.string().optional(),
28
+ expiresAt: z.number().optional(),
29
+ // OAuth 1.0a — enables read + write operations
30
+ consumerKey: z.string().optional(),
31
+ consumerSecret: z.string().optional(),
32
+ accessTokenSecret: z.string().optional(),
33
+ bearerToken: z.string().optional(),
34
+ }),
35
+ });
36
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/integrations/social/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;IACtD,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,kBAAkB;IAC/B,gBAAgB,EAAE,uCAAuC;IACzD,MAAM,EAAE;QACN,gBAAgB,EAAE,wCAAwC;QAC1D,QAAQ,EAAE,wCAAwC;QAClD,MAAM,EAAE;YACN,YAAY;YACZ,aAAa;YACb,YAAY;YACZ,SAAS;YACT,UAAU;YACV,WAAW;YACX,YAAY;YACZ,gBAAgB;SACjB;QACD,IAAI,EAAE,IAAI;KACX;IACD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,+CAA+C;QAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACrC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC;CACH,CAAC,CAAC"}
@@ -1,4 +1,12 @@
1
1
  export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, type RedditMonitorInput, type RedditMonitorOutput, type RedditPost, } from './reddit-monitor.js';
2
2
  export { twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, type TwitterMonitorInput, type TwitterMonitorOutput, type TwitterPost, } from './twitter-monitor.js';
3
+ export { twitterCredential, } from './credentials.js';
4
+ export { twitterCreateTweetNode, TwitterCreateTweetInputSchema, TwitterCreateTweetOutputSchema, type TwitterCreateTweetInput, type TwitterCreateTweetOutput, } from './twitter-create-tweet.js';
5
+ export { twitterDeleteTweetNode, TwitterDeleteTweetInputSchema, TwitterDeleteTweetOutputSchema, type TwitterDeleteTweetInput, type TwitterDeleteTweetOutput, } from './twitter-delete-tweet.js';
6
+ export { twitterLikeTweetNode, TwitterLikeTweetInputSchema, TwitterLikeTweetOutputSchema, type TwitterLikeTweetInput, type TwitterLikeTweetOutput, } from './twitter-like-tweet.js';
7
+ export { twitterRetweetNode, TwitterRetweetInputSchema, TwitterRetweetOutputSchema, type TwitterRetweetInput, type TwitterRetweetOutput, } from './twitter-retweet.js';
8
+ export { twitterSearchTweetsNode, TwitterSearchTweetsInputSchema, TwitterSearchTweetsOutputSchema, type TwitterSearchTweetsInput, type TwitterSearchTweetsOutput, } from './twitter-search-tweets.js';
9
+ export { twitterSendDMNode, TwitterSendDMInputSchema, TwitterSendDMOutputSchema, type TwitterSendDMInput, type TwitterSendDMOutput, } from './twitter-send-dm.js';
10
+ export { twitterGetUserByUsernameNode, TwitterGetUserByUsernameInputSchema, TwitterGetUserByUsernameOutputSchema, type TwitterGetUserByUsernameInput, type TwitterGetUserByUsernameOutput, } from './twitter-get-user-by-username.js';
3
11
  export { linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, type LinkedInMonitorInput, type LinkedInMonitorOutput, type LinkedInPost, } from './linkedin-monitor.js';
4
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/social/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/social/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,UAAU,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,oCAAoC,EACpC,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,GACpC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC"}
@@ -1,4 +1,12 @@
1
1
  export { redditMonitorNode, RedditMonitorInputSchema, RedditMonitorOutputSchema, } from './reddit-monitor.js';
2
2
  export { twitterMonitorNode, TwitterMonitorInputSchema, TwitterMonitorOutputSchema, } from './twitter-monitor.js';
3
+ export { twitterCredential, } from './credentials.js';
4
+ export { twitterCreateTweetNode, TwitterCreateTweetInputSchema, TwitterCreateTweetOutputSchema, } from './twitter-create-tweet.js';
5
+ export { twitterDeleteTweetNode, TwitterDeleteTweetInputSchema, TwitterDeleteTweetOutputSchema, } from './twitter-delete-tweet.js';
6
+ export { twitterLikeTweetNode, TwitterLikeTweetInputSchema, TwitterLikeTweetOutputSchema, } from './twitter-like-tweet.js';
7
+ export { twitterRetweetNode, TwitterRetweetInputSchema, TwitterRetweetOutputSchema, } from './twitter-retweet.js';
8
+ export { twitterSearchTweetsNode, TwitterSearchTweetsInputSchema, TwitterSearchTweetsOutputSchema, } from './twitter-search-tweets.js';
9
+ export { twitterSendDMNode, TwitterSendDMInputSchema, TwitterSendDMOutputSchema, } from './twitter-send-dm.js';
10
+ export { twitterGetUserByUsernameNode, TwitterGetUserByUsernameInputSchema, TwitterGetUserByUsernameOutputSchema, } from './twitter-get-user-by-username.js';
3
11
  export { linkedinMonitorNode, LinkedInMonitorInputSchema, LinkedInMonitorOutputSchema, } from './linkedin-monitor.js';
4
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/social/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GAI1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAI3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAI5B,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/social/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GAI1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAI3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,GAG/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,GAG/B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,GAG7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,GAGhC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GAG1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,oCAAoC,GAGrC,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,GAI5B,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { NodeExecutionContext } from '@jam-nodes/core';
2
+ export declare function getTwitterAccessToken(context: NodeExecutionContext): string | null;
3
+ export declare function getTwitterAuthHeaders(context: NodeExecutionContext): Record<string, string>;
4
+ export declare function twitterRequest<T>(context: NodeExecutionContext, path: string, init: RequestInit): Promise<T>;
5
+ export declare function getAuthenticatedTwitterUserId(context: NodeExecutionContext): Promise<string>;
6
+ //# sourceMappingURL=twitter-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitter-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/social/twitter-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAkI5D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,GAAG,IAAI,CAGlF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW3F;AAMD,wBAAsB,cAAc,CAAC,CAAC,EACpC,OAAO,EAAE,oBAAoB,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,CAAC,CAAC,CA4CZ;AAED,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAejB"}
@@ -0,0 +1,140 @@
1
+ import { fetchWithRetry } from '../../utils/http.js';
2
+ import { createHmac, randomBytes } from 'crypto';
3
+ const TWITTER_API_BASE_URL = 'https://api.twitter.com';
4
+ // =============================================================================
5
+ // OAuth 1.0a Signature Generation
6
+ // =============================================================================
7
+ /**
8
+ * Percent-encode a string per RFC 3986
9
+ */
10
+ function percentEncode(str) {
11
+ return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
12
+ }
13
+ /**
14
+ * Generate a random nonce for OAuth 1.0a
15
+ */
16
+ function generateNonce() {
17
+ return randomBytes(16).toString('hex');
18
+ }
19
+ /**
20
+ * Build the OAuth 1.0a Authorization header value.
21
+ *
22
+ * @see https://developer.twitter.com/en/docs/authentication/oauth-1-0a/creating-a-signature
23
+ */
24
+ function buildOAuth1Header(method, url, consumerKey, consumerSecret, accessToken, accessTokenSecret, extraParams) {
25
+ const timestamp = Math.floor(Date.now() / 1000).toString();
26
+ const nonce = generateNonce();
27
+ // OAuth parameters (without oauth_signature)
28
+ const oauthParams = {
29
+ oauth_consumer_key: consumerKey,
30
+ oauth_nonce: nonce,
31
+ oauth_signature_method: 'HMAC-SHA1',
32
+ oauth_timestamp: timestamp,
33
+ oauth_token: accessToken,
34
+ oauth_version: '1.0',
35
+ };
36
+ // Collect all params (OAuth + query string + body form params if applicable)
37
+ const allParams = { ...oauthParams };
38
+ // Parse query string params from the URL
39
+ const urlObj = new URL(url);
40
+ urlObj.searchParams.forEach((value, key) => {
41
+ allParams[key] = value;
42
+ });
43
+ // Include extra params (e.g., from form-encoded body)
44
+ if (extraParams) {
45
+ Object.assign(allParams, extraParams);
46
+ }
47
+ // Sort and encode parameters
48
+ const paramString = Object.keys(allParams)
49
+ .sort()
50
+ .map((key) => `${percentEncode(key)}=${percentEncode(allParams[key])}`)
51
+ .join('&');
52
+ // Base URL without query string
53
+ const baseUrl = `${urlObj.origin}${urlObj.pathname}`;
54
+ // Signature base string
55
+ const signatureBaseString = `${method.toUpperCase()}&${percentEncode(baseUrl)}&${percentEncode(paramString)}`;
56
+ // Signing key
57
+ const signingKey = `${percentEncode(consumerSecret)}&${percentEncode(accessTokenSecret)}`;
58
+ // HMAC-SHA1 signature
59
+ const signature = createHmac('sha1', signingKey)
60
+ .update(signatureBaseString)
61
+ .digest('base64');
62
+ oauthParams['oauth_signature'] = signature;
63
+ // Build the header value
64
+ const headerParams = Object.keys(oauthParams)
65
+ .sort()
66
+ .map((key) => `${percentEncode(key)}="${percentEncode(oauthParams[key])}"`)
67
+ .join(', ');
68
+ return `OAuth ${headerParams}`;
69
+ }
70
+ /**
71
+ * Check if OAuth 1.0a credentials are available in context.
72
+ * Returns the credentials object or null.
73
+ */
74
+ function getOAuth1Credentials(context) {
75
+ const creds = (context.credentials?.twitter || {});
76
+ const consumerKey = creds['consumerKey'];
77
+ const consumerSecret = creds['consumerSecret'];
78
+ const accessToken = creds['accessToken'];
79
+ const accessTokenSecret = creds['accessTokenSecret'];
80
+ if (consumerKey && consumerSecret && accessToken && accessTokenSecret) {
81
+ return { consumerKey, consumerSecret, accessToken, accessTokenSecret };
82
+ }
83
+ return null;
84
+ }
85
+ export function getTwitterAccessToken(context) {
86
+ const twitterCredentials = (context.credentials?.twitter || {});
87
+ return twitterCredentials['accessToken'] || twitterCredentials['bearerToken'] || null;
88
+ }
89
+ export function getTwitterAuthHeaders(context) {
90
+ const accessToken = getTwitterAccessToken(context);
91
+ if (!accessToken) {
92
+ throw new Error('Twitter access token not configured. Please provide context.credentials.twitter.accessToken.');
93
+ }
94
+ return {
95
+ Authorization: `Bearer ${accessToken}`,
96
+ };
97
+ }
98
+ // =============================================================================
99
+ // Twitter API Request
100
+ // =============================================================================
101
+ export async function twitterRequest(context, path, init) {
102
+ const fullUrl = `${TWITTER_API_BASE_URL}${path}`;
103
+ const method = (init.method || 'GET').toUpperCase();
104
+ // Build auth headers — prefer OAuth 1.0a (supports read + write)
105
+ const oauth1 = getOAuth1Credentials(context);
106
+ let authHeaders;
107
+ if (oauth1) {
108
+ const oauthHeader = buildOAuth1Header(method, fullUrl, oauth1.consumerKey, oauth1.consumerSecret, oauth1.accessToken, oauth1.accessTokenSecret);
109
+ authHeaders = { Authorization: oauthHeader };
110
+ }
111
+ else {
112
+ authHeaders = getTwitterAuthHeaders(context);
113
+ }
114
+ const response = await fetchWithRetry(fullUrl, {
115
+ ...init,
116
+ headers: {
117
+ ...authHeaders,
118
+ ...(init.headers || {}),
119
+ },
120
+ }, { maxRetries: 3, backoffMs: 1000, timeoutMs: 30000 });
121
+ if (!response.ok) {
122
+ const errorText = await response.text();
123
+ throw new Error(`Twitter API error: ${response.status} - ${errorText}`);
124
+ }
125
+ if (response.status === 204) {
126
+ return undefined;
127
+ }
128
+ return response.json();
129
+ }
130
+ export async function getAuthenticatedTwitterUserId(context) {
131
+ const response = await twitterRequest(context, '/2/users/me', {
132
+ method: 'GET',
133
+ });
134
+ const userId = response.data?.id;
135
+ if (!userId) {
136
+ throw new Error('Twitter API error: failed to resolve authenticated user id.');
137
+ }
138
+ return userId;
139
+ }
140
+ //# sourceMappingURL=twitter-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitter-client.js","sourceRoot":"","sources":["../../../src/integrations/social/twitter-client.ts"],"names":[],"mappings":"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"}