@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.
- package/README.md +147 -0
- package/dist/ai/analyze-posts.d.ts +3 -3
- package/dist/ai/draft-emails.d.ts +1 -1
- package/dist/index.d.ts +363 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -3
- package/dist/index.js.map +1 -1
- package/dist/integrations/apollo/search-contacts.d.ts +4 -4
- package/dist/integrations/dataforseo/keyword-research.d.ts +6 -6
- package/dist/integrations/dataforseo/keyword-research.d.ts.map +1 -1
- package/dist/integrations/dataforseo/keyword-research.js +2 -8
- package/dist/integrations/dataforseo/keyword-research.js.map +1 -1
- package/dist/integrations/devto/create-article.d.ts +20 -0
- package/dist/integrations/devto/create-article.d.ts.map +1 -0
- package/dist/integrations/devto/create-article.js +67 -0
- package/dist/integrations/devto/create-article.js.map +1 -0
- package/dist/integrations/devto/credentials.d.ts +2 -0
- package/dist/integrations/devto/credentials.d.ts.map +1 -0
- package/dist/integrations/devto/credentials.js +17 -0
- package/dist/integrations/devto/credentials.js.map +1 -0
- package/dist/integrations/devto/get-articles.d.ts +21 -0
- package/dist/integrations/devto/get-articles.d.ts.map +1 -0
- package/dist/integrations/devto/get-articles.js +78 -0
- package/dist/integrations/devto/get-articles.js.map +1 -0
- package/dist/integrations/devto/index.d.ts +6 -0
- package/dist/integrations/devto/index.d.ts.map +1 -0
- package/dist/integrations/devto/index.js +6 -0
- package/dist/integrations/devto/index.js.map +1 -0
- package/dist/integrations/devto/schemas.d.ts +243 -0
- package/dist/integrations/devto/schemas.d.ts.map +1 -0
- package/dist/integrations/devto/schemas.js +69 -0
- package/dist/integrations/devto/schemas.js.map +1 -0
- package/dist/integrations/devto/update-article.d.ts +19 -0
- package/dist/integrations/devto/update-article.d.ts.map +1 -0
- package/dist/integrations/devto/update-article.js +65 -0
- package/dist/integrations/devto/update-article.js.map +1 -0
- package/dist/integrations/discord/schemas.d.ts +2 -2
- package/dist/integrations/discord/send-message.d.ts +1 -1
- package/dist/integrations/firecrawl/crawl.d.ts +121 -0
- package/dist/integrations/firecrawl/crawl.d.ts.map +1 -0
- package/dist/integrations/firecrawl/crawl.js +168 -0
- package/dist/integrations/firecrawl/crawl.js.map +1 -0
- package/dist/integrations/firecrawl/extract.d.ts +82 -0
- package/dist/integrations/firecrawl/extract.d.ts.map +1 -0
- package/dist/integrations/firecrawl/extract.js +168 -0
- package/dist/integrations/firecrawl/extract.js.map +1 -0
- package/dist/integrations/firecrawl/index.d.ts +4 -0
- package/dist/integrations/firecrawl/index.d.ts.map +1 -0
- package/dist/integrations/firecrawl/index.js +4 -0
- package/dist/integrations/firecrawl/index.js.map +1 -0
- package/dist/integrations/firecrawl/scrape.d.ts +1208 -0
- package/dist/integrations/firecrawl/scrape.d.ts.map +1 -0
- package/dist/integrations/firecrawl/scrape.js +254 -0
- package/dist/integrations/firecrawl/scrape.js.map +1 -0
- package/dist/integrations/index.d.ts +4 -1
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +7 -1
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/social/credentials.d.ts +2 -0
- package/dist/integrations/social/credentials.d.ts.map +1 -0
- package/dist/integrations/social/credentials.js +36 -0
- package/dist/integrations/social/credentials.js.map +1 -0
- package/dist/integrations/social/index.d.ts +8 -0
- package/dist/integrations/social/index.d.ts.map +1 -1
- package/dist/integrations/social/index.js +8 -0
- package/dist/integrations/social/index.js.map +1 -1
- package/dist/integrations/social/twitter-client.d.ts +6 -0
- package/dist/integrations/social/twitter-client.d.ts.map +1 -0
- package/dist/integrations/social/twitter-client.js +140 -0
- package/dist/integrations/social/twitter-client.js.map +1 -0
- package/dist/integrations/social/twitter-create-tweet.d.ts +61 -0
- package/dist/integrations/social/twitter-create-tweet.d.ts.map +1 -0
- package/dist/integrations/social/twitter-create-tweet.js +83 -0
- package/dist/integrations/social/twitter-create-tweet.js.map +1 -0
- package/dist/integrations/social/twitter-delete-tweet.d.ts +23 -0
- package/dist/integrations/social/twitter-delete-tweet.d.ts.map +1 -0
- package/dist/integrations/social/twitter-delete-tweet.js +41 -0
- package/dist/integrations/social/twitter-delete-tweet.js.map +1 -0
- package/dist/integrations/social/twitter-get-user-by-username.d.ts +39 -0
- package/dist/integrations/social/twitter-get-user-by-username.d.ts.map +1 -0
- package/dist/integrations/social/twitter-get-user-by-username.js +56 -0
- package/dist/integrations/social/twitter-get-user-by-username.js.map +1 -0
- package/dist/integrations/social/twitter-like-tweet.d.ts +23 -0
- package/dist/integrations/social/twitter-like-tweet.d.ts.map +1 -0
- package/dist/integrations/social/twitter-like-tweet.js +48 -0
- package/dist/integrations/social/twitter-like-tweet.js.map +1 -0
- package/dist/integrations/social/twitter-retweet.d.ts +23 -0
- package/dist/integrations/social/twitter-retweet.d.ts.map +1 -0
- package/dist/integrations/social/twitter-retweet.js +48 -0
- package/dist/integrations/social/twitter-retweet.js.map +1 -0
- package/dist/integrations/social/twitter-search-tweets.d.ts +77 -0
- package/dist/integrations/social/twitter-search-tweets.d.ts.map +1 -0
- package/dist/integrations/social/twitter-search-tweets.js +76 -0
- package/dist/integrations/social/twitter-search-tweets.js.map +1 -0
- package/dist/integrations/social/twitter-send-dm.d.ts +39 -0
- package/dist/integrations/social/twitter-send-dm.d.ts.map +1 -0
- package/dist/integrations/social/twitter-send-dm.js +67 -0
- package/dist/integrations/social/twitter-send-dm.js.map +1 -0
- package/dist/integrations/wordpress/createPost.d.ts +25 -0
- package/dist/integrations/wordpress/createPost.d.ts.map +1 -0
- package/dist/integrations/wordpress/createPost.js +67 -0
- package/dist/integrations/wordpress/createPost.js.map +1 -0
- package/dist/integrations/wordpress/credentials.d.ts +2 -0
- package/dist/integrations/wordpress/credentials.d.ts.map +1 -0
- package/dist/integrations/wordpress/credentials.js +25 -0
- package/dist/integrations/wordpress/credentials.js.map +1 -0
- package/dist/integrations/wordpress/getPosts.d.ts +28 -0
- package/dist/integrations/wordpress/getPosts.d.ts.map +1 -0
- package/dist/integrations/wordpress/getPosts.js +70 -0
- package/dist/integrations/wordpress/getPosts.js.map +1 -0
- package/dist/integrations/wordpress/index.d.ts +8 -0
- package/dist/integrations/wordpress/index.d.ts.map +1 -0
- package/dist/integrations/wordpress/index.js +7 -0
- package/dist/integrations/wordpress/index.js.map +1 -0
- package/dist/integrations/wordpress/schemas.d.ts +411 -0
- package/dist/integrations/wordpress/schemas.d.ts.map +1 -0
- package/dist/integrations/wordpress/schemas.js +110 -0
- package/dist/integrations/wordpress/schemas.js.map +1 -0
- package/dist/integrations/wordpress/updatePost.d.ts +21 -0
- package/dist/integrations/wordpress/updatePost.d.ts.map +1 -0
- package/dist/integrations/wordpress/updatePost.js +59 -0
- package/dist/integrations/wordpress/updatePost.js.map +1 -0
- package/dist/integrations/wordpress/uploadMedia.d.ts +15 -0
- package/dist/integrations/wordpress/uploadMedia.d.ts.map +1 -0
- package/dist/integrations/wordpress/uploadMedia.js +56 -0
- package/dist/integrations/wordpress/uploadMedia.js.map +1 -0
- package/dist/integrations/wordpress/utils.d.ts +15 -0
- package/dist/integrations/wordpress/utils.d.ts.map +1 -0
- package/dist/integrations/wordpress/utils.js +15 -0
- package/dist/integrations/wordpress/utils.js.map +1 -0
- package/dist/schemas/ai.d.ts +20 -20
- 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,
|
|
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,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,4BAA4B,EAC5B,mCAAmC,EACnC,oCAAoC,EACpC,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,mBAAmB,CAAA;AAG1B,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,CAAA;AAG9B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAA;AAG1B,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,CAAA;AAG3B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,sBAAsB,CAAA;AAG7B,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,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAA;AAGzB,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,EACtB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,GAChC,MAAM,sBAAsB,CAAA"}
|
|
@@ -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,
|
|
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 @@
|
|
|
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":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,oBAAoB,GAAG,yBAAyB,CAAC;AAQvD,gFAAgF;AAChF,kCAAkC;AAClC,gFAAgF;AAEhF;;GAEG;AACH,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,MAAc,EACd,GAAW,EACX,WAAmB,EACnB,cAAsB,EACtB,WAAmB,EACnB,iBAAyB,EACzB,WAAoC;IAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAE9B,6CAA6C;IAC7C,MAAM,WAAW,GAA2B;QAC1C,kBAAkB,EAAE,WAAW;QAC/B,WAAW,EAAE,KAAK;QAClB,sBAAsB,EAAE,WAAW;QACnC,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,WAAW;QACxB,aAAa,EAAE,KAAK;KACrB,CAAC;IAEF,6EAA6E;IAC7E,MAAM,SAAS,GAA2B,EAAE,GAAG,WAAW,EAAE,CAAC;IAE7D,yCAAyC;IACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACzC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,6BAA6B;IAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;SACvC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC,GAAG,CAAE,CAAC,EAAE,CAAC;SACvE,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,gCAAgC;IAChC,MAAM,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAErD,wBAAwB;IACxB,MAAM,mBAAmB,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IAE9G,cAAc;IACd,MAAM,UAAU,GAAG,GAAG,aAAa,CAAC,cAAc,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAE1F,sBAAsB;IACtB,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;SAC7C,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEpB,WAAW,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;IAE3C,yBAAyB;IACzB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;SAC1C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,WAAW,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,SAAS,YAAY,EAAE,CAAC;AACjC,CAAC;AAaD;;;GAGG;AACH,SAAS,oBAAoB,CAAC,OAA6B;IACzD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,CAAuC,CAAC;IACzF,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAErD,IAAI,WAAW,IAAI,cAAc,IAAI,WAAW,IAAI,iBAAiB,EAAE,CAAC;QACtE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,MAAM,kBAAkB,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE,CAAuC,CAAC;IACtG,OAAO,kBAAkB,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA6B;IACjE,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa,EAAE,UAAU,WAAW,EAAE;KACvC,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA6B,EAC7B,IAAY,EACZ,IAAiB;IAEjB,MAAM,OAAO,GAAG,GAAG,oBAAoB,GAAG,IAAI,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IAEpD,iEAAiE;IACjE,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,WAAmC,CAAC;IAExC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,WAAW,GAAG,iBAAiB,CACnC,MAAM,EACN,OAAO,EACP,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,iBAAiB,CACzB,CAAC;QACF,WAAW,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,OAAO,EACP;QACE,GAAG,IAAI;QACP,OAAO,EAAE;YACP,GAAG,WAAW;YACd,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACxB;KACF,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CACrD,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,SAAc,CAAC;IACxB,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAA6B;IAE7B,MAAM,QAAQ,GAAG,MAAM,cAAc,CACnC,OAAO,EACP,aAAa,EACb;QACE,MAAM,EAAE,KAAK;KACd,CACF,CAAC;IAEF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|