n8n-nodes-crawl4ai-plus 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/LICENSE +23 -0
  2. package/LICENSE.md +19 -0
  3. package/README.md +157 -0
  4. package/dist/credentials/Crawl4aiApi.credentials.d.ts +7 -0
  5. package/dist/credentials/Crawl4aiApi.credentials.js +242 -0
  6. package/dist/credentials/Crawl4aiApi.credentials.js.map +1 -0
  7. package/dist/nodes/Crawl4aiBasicCrawler/Crawl4aiBasicCrawler.node.d.ts +5 -0
  8. package/dist/nodes/Crawl4aiBasicCrawler/Crawl4aiBasicCrawler.node.js +37 -0
  9. package/dist/nodes/Crawl4aiBasicCrawler/Crawl4aiBasicCrawler.node.js.map +1 -0
  10. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlMultipleUrls.operation.d.ts +4 -0
  11. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlMultipleUrls.operation.js +299 -0
  12. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlMultipleUrls.operation.js.map +1 -0
  13. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlSingleUrl.operation.d.ts +4 -0
  14. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlSingleUrl.operation.js +324 -0
  15. package/dist/nodes/Crawl4aiBasicCrawler/actions/crawlSingleUrl.operation.js.map +1 -0
  16. package/dist/nodes/Crawl4aiBasicCrawler/actions/operations.d.ts +8 -0
  17. package/dist/nodes/Crawl4aiBasicCrawler/actions/operations.js +67 -0
  18. package/dist/nodes/Crawl4aiBasicCrawler/actions/operations.js.map +1 -0
  19. package/dist/nodes/Crawl4aiBasicCrawler/actions/processRawHtml.operation.d.ts +4 -0
  20. package/dist/nodes/Crawl4aiBasicCrawler/actions/processRawHtml.operation.js +148 -0
  21. package/dist/nodes/Crawl4aiBasicCrawler/actions/processRawHtml.operation.js.map +1 -0
  22. package/dist/nodes/Crawl4aiBasicCrawler/actions/router.d.ts +2 -0
  23. package/dist/nodes/Crawl4aiBasicCrawler/actions/router.js +37 -0
  24. package/dist/nodes/Crawl4aiBasicCrawler/actions/router.js.map +1 -0
  25. package/dist/nodes/Crawl4aiBasicCrawler/crawl4ai.svg +17 -0
  26. package/dist/nodes/Crawl4aiBasicCrawler/helpers/apiClient.d.ts +15 -0
  27. package/dist/nodes/Crawl4aiBasicCrawler/helpers/apiClient.js +226 -0
  28. package/dist/nodes/Crawl4aiBasicCrawler/helpers/apiClient.js.map +1 -0
  29. package/dist/nodes/Crawl4aiBasicCrawler/helpers/formatters.d.ts +5 -0
  30. package/dist/nodes/Crawl4aiBasicCrawler/helpers/formatters.js +81 -0
  31. package/dist/nodes/Crawl4aiBasicCrawler/helpers/formatters.js.map +1 -0
  32. package/dist/nodes/Crawl4aiBasicCrawler/helpers/interfaces.d.ts +189 -0
  33. package/dist/nodes/Crawl4aiBasicCrawler/helpers/interfaces.js +3 -0
  34. package/dist/nodes/Crawl4aiBasicCrawler/helpers/interfaces.js.map +1 -0
  35. package/dist/nodes/Crawl4aiBasicCrawler/helpers/utils.d.ts +8 -0
  36. package/dist/nodes/Crawl4aiBasicCrawler/helpers/utils.js +97 -0
  37. package/dist/nodes/Crawl4aiBasicCrawler/helpers/utils.js.map +1 -0
  38. package/dist/nodes/Crawl4aiContentExtractor/Crawl4aiContentExtractor.node.d.ts +5 -0
  39. package/dist/nodes/Crawl4aiContentExtractor/Crawl4aiContentExtractor.node.js +38 -0
  40. package/dist/nodes/Crawl4aiContentExtractor/Crawl4aiContentExtractor.node.js.map +1 -0
  41. package/dist/nodes/Crawl4aiContentExtractor/actions/cssExtractor.operation.d.ts +4 -0
  42. package/dist/nodes/Crawl4aiContentExtractor/actions/cssExtractor.operation.js +336 -0
  43. package/dist/nodes/Crawl4aiContentExtractor/actions/cssExtractor.operation.js.map +1 -0
  44. package/dist/nodes/Crawl4aiContentExtractor/actions/jsonExtractor.operation.d.ts +4 -0
  45. package/dist/nodes/Crawl4aiContentExtractor/actions/jsonExtractor.operation.js +369 -0
  46. package/dist/nodes/Crawl4aiContentExtractor/actions/jsonExtractor.operation.js.map +1 -0
  47. package/dist/nodes/Crawl4aiContentExtractor/actions/llmExtractor.operation.d.ts +4 -0
  48. package/dist/nodes/Crawl4aiContentExtractor/actions/llmExtractor.operation.js +786 -0
  49. package/dist/nodes/Crawl4aiContentExtractor/actions/llmExtractor.operation.js.map +1 -0
  50. package/dist/nodes/Crawl4aiContentExtractor/actions/operations.d.ts +8 -0
  51. package/dist/nodes/Crawl4aiContentExtractor/actions/operations.js +76 -0
  52. package/dist/nodes/Crawl4aiContentExtractor/actions/operations.js.map +1 -0
  53. package/dist/nodes/Crawl4aiContentExtractor/actions/regexExtractor.operation.d.ts +4 -0
  54. package/dist/nodes/Crawl4aiContentExtractor/actions/regexExtractor.operation.js +437 -0
  55. package/dist/nodes/Crawl4aiContentExtractor/actions/regexExtractor.operation.js.map +1 -0
  56. package/dist/nodes/Crawl4aiContentExtractor/actions/router.d.ts +2 -0
  57. package/dist/nodes/Crawl4aiContentExtractor/actions/router.js +37 -0
  58. package/dist/nodes/Crawl4aiContentExtractor/actions/router.js.map +1 -0
  59. package/dist/nodes/Crawl4aiContentExtractor/crawl4ai.svg +17 -0
  60. package/dist/nodes/Crawl4aiContentExtractor/helpers/apiClient.d.ts +1 -0
  61. package/dist/nodes/Crawl4aiContentExtractor/helpers/apiClient.js +7 -0
  62. package/dist/nodes/Crawl4aiContentExtractor/helpers/apiClient.js.map +1 -0
  63. package/dist/nodes/Crawl4aiContentExtractor/helpers/formatters.d.ts +1 -0
  64. package/dist/nodes/Crawl4aiContentExtractor/helpers/formatters.js +8 -0
  65. package/dist/nodes/Crawl4aiContentExtractor/helpers/formatters.js.map +1 -0
  66. package/dist/nodes/Crawl4aiContentExtractor/helpers/interfaces.d.ts +1 -0
  67. package/dist/nodes/Crawl4aiContentExtractor/helpers/interfaces.js +3 -0
  68. package/dist/nodes/Crawl4aiContentExtractor/helpers/interfaces.js.map +1 -0
  69. package/dist/nodes/Crawl4aiContentExtractor/helpers/utils.d.ts +6 -0
  70. package/dist/nodes/Crawl4aiContentExtractor/helpers/utils.js +89 -0
  71. package/dist/nodes/Crawl4aiContentExtractor/helpers/utils.js.map +1 -0
  72. package/dist/tsconfig.tsbuildinfo +1 -0
  73. package/index.js +14 -0
  74. package/package.json +70 -0
@@ -0,0 +1,369 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ exports.execute = execute;
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ const utils_1 = require("../helpers/utils");
7
+ exports.description = [
8
+ {
9
+ displayName: 'URL',
10
+ name: 'url',
11
+ type: 'string',
12
+ required: true,
13
+ default: '',
14
+ placeholder: 'https://example.com/api/data.json',
15
+ description: 'The URL of the JSON data to extract',
16
+ displayOptions: {
17
+ show: {
18
+ operation: ['jsonExtractor'],
19
+ },
20
+ },
21
+ },
22
+ {
23
+ displayName: 'JSON Path',
24
+ name: 'jsonPath',
25
+ type: 'string',
26
+ default: '',
27
+ placeholder: 'data.items',
28
+ description: 'Path to the JSON data to extract (leave empty for entire JSON response)',
29
+ displayOptions: {
30
+ show: {
31
+ operation: ['jsonExtractor'],
32
+ },
33
+ },
34
+ },
35
+ {
36
+ displayName: 'Source Type',
37
+ name: 'sourceType',
38
+ type: 'options',
39
+ options: [
40
+ {
41
+ name: 'Direct JSON URL',
42
+ value: 'direct',
43
+ description: 'URL returns JSON directly',
44
+ },
45
+ {
46
+ name: 'JSON in Script Tag',
47
+ value: 'script',
48
+ description: 'JSON is embedded in a <script> tag',
49
+ },
50
+ {
51
+ name: 'JSON-LD',
52
+ value: 'jsonld',
53
+ description: 'JSON-LD structured data',
54
+ },
55
+ ],
56
+ default: 'direct',
57
+ description: 'Where to find the JSON data on the page',
58
+ displayOptions: {
59
+ show: {
60
+ operation: ['jsonExtractor'],
61
+ },
62
+ },
63
+ },
64
+ {
65
+ displayName: 'Script Selector',
66
+ name: 'scriptSelector',
67
+ type: 'string',
68
+ default: '',
69
+ placeholder: 'script#__NEXT_DATA__',
70
+ description: 'CSS selector for the script tag containing JSON data',
71
+ displayOptions: {
72
+ show: {
73
+ operation: ['jsonExtractor'],
74
+ sourceType: ['script'],
75
+ },
76
+ },
77
+ },
78
+ {
79
+ displayName: 'Browser Options',
80
+ name: 'browserOptions',
81
+ type: 'collection',
82
+ placeholder: 'Add Option',
83
+ default: {},
84
+ displayOptions: {
85
+ show: {
86
+ operation: ['jsonExtractor'],
87
+ },
88
+ },
89
+ options: [
90
+ {
91
+ displayName: 'Browser Type',
92
+ name: 'browserType',
93
+ type: 'options',
94
+ options: [
95
+ {
96
+ name: 'Chromium',
97
+ value: 'chromium',
98
+ description: 'Use Chromium browser (default, most compatible)',
99
+ },
100
+ {
101
+ name: 'Firefox',
102
+ value: 'firefox',
103
+ description: 'Use Firefox browser',
104
+ },
105
+ {
106
+ name: 'Webkit',
107
+ value: 'webkit',
108
+ description: 'Use Webkit browser (Safari engine)',
109
+ },
110
+ ],
111
+ default: 'chromium',
112
+ description: 'Which browser engine to use for crawling',
113
+ },
114
+ {
115
+ displayName: 'Enable JavaScript',
116
+ name: 'javaScriptEnabled',
117
+ type: 'boolean',
118
+ default: true,
119
+ description: 'Whether to enable JavaScript execution',
120
+ },
121
+ {
122
+ displayName: 'Enable Stealth Mode',
123
+ name: 'enableStealth',
124
+ type: 'boolean',
125
+ default: false,
126
+ description: 'Whether to enable stealth mode to bypass basic bot detection (hides webdriver properties and modifies browser fingerprints)',
127
+ },
128
+ {
129
+ displayName: 'Headless Mode',
130
+ name: 'headless',
131
+ type: 'boolean',
132
+ default: true,
133
+ description: 'Whether to run browser in headless mode',
134
+ },
135
+ {
136
+ displayName: 'JavaScript Code',
137
+ name: 'jsCode',
138
+ type: 'string',
139
+ typeOptions: {
140
+ rows: 4,
141
+ },
142
+ default: '',
143
+ placeholder: 'window.scrollTo(0, document.body.scrollHeight);',
144
+ description: 'JavaScript code to execute before extraction',
145
+ },
146
+ {
147
+ displayName: 'Timeout (MS)',
148
+ name: 'timeout',
149
+ type: 'number',
150
+ default: 30000,
151
+ description: 'Maximum time to wait for the browser to load the page',
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ displayName: 'Options',
157
+ name: 'options',
158
+ type: 'collection',
159
+ placeholder: 'Add Option',
160
+ default: {},
161
+ displayOptions: {
162
+ show: {
163
+ operation: ['jsonExtractor'],
164
+ },
165
+ },
166
+ options: [
167
+ {
168
+ displayName: 'Cache Mode',
169
+ name: 'cacheMode',
170
+ type: 'options',
171
+ options: [
172
+ {
173
+ name: 'Bypass (Skip Cache)',
174
+ value: 'BYPASS',
175
+ description: 'Skip cache for this operation, fetch fresh content',
176
+ },
177
+ {
178
+ name: 'Disabled (No Cache)',
179
+ value: 'DISABLED',
180
+ description: 'No caching at all',
181
+ },
182
+ {
183
+ name: 'Enabled (Read/Write)',
184
+ value: 'ENABLED',
185
+ description: 'Use cache if available, save new results to cache',
186
+ },
187
+ {
188
+ name: 'Read Only',
189
+ value: 'READ_ONLY',
190
+ description: 'Only read from cache, do not write new results',
191
+ },
192
+ {
193
+ name: 'Write Only',
194
+ value: 'WRITE_ONLY',
195
+ description: 'Only write to cache, do not read existing cache',
196
+ },
197
+ ],
198
+ default: 'ENABLED',
199
+ description: 'How to use the cache when crawling',
200
+ },
201
+ {
202
+ displayName: 'Include Full Content',
203
+ name: 'includeFullContent',
204
+ type: 'boolean',
205
+ default: false,
206
+ description: 'Whether to include the full JSON content in addition to the extracted data',
207
+ },
208
+ {
209
+ displayName: 'Headers',
210
+ name: 'headers',
211
+ type: 'string',
212
+ typeOptions: {
213
+ rows: 2,
214
+ },
215
+ default: '',
216
+ placeholder: '{"accept": "application/json"}',
217
+ description: 'Headers to send with the request (JSON format)',
218
+ },
219
+ ],
220
+ },
221
+ ];
222
+ async function execute(items, nodeOptions) {
223
+ var _a, _b;
224
+ const allResults = [];
225
+ for (let i = 0; i < items.length; i++) {
226
+ try {
227
+ const url = this.getNodeParameter('url', i, '');
228
+ const jsonPath = this.getNodeParameter('jsonPath', i, '');
229
+ const sourceType = this.getNodeParameter('sourceType', i, 'direct');
230
+ const scriptSelector = this.getNodeParameter('scriptSelector', i, '');
231
+ const browserOptions = this.getNodeParameter('browserOptions', i, {});
232
+ const options = this.getNodeParameter('options', i, {});
233
+ if (!url) {
234
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'URL cannot be empty.', { itemIndex: i });
235
+ }
236
+ if (!(0, utils_1.isValidUrl)(url)) {
237
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Invalid URL: ${url}`, { itemIndex: i });
238
+ }
239
+ if (sourceType === 'script' && !scriptSelector) {
240
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Script selector is required when source type is "JSON in Script Tag".', { itemIndex: i });
241
+ }
242
+ let headers;
243
+ if (options.headers && typeof options.headers === 'string') {
244
+ try {
245
+ headers = JSON.parse(options.headers);
246
+ }
247
+ catch (error) {
248
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Headers must be a valid JSON object.', { itemIndex: i });
249
+ }
250
+ }
251
+ const browserConfig = (0, utils_1.createBrowserConfig)(browserOptions);
252
+ const crawler = await (0, utils_1.getCrawl4aiClient)(this);
253
+ const extractionStrategy = {
254
+ type: 'JsonCssExtractionStrategy',
255
+ params: {
256
+ schema: {
257
+ type: 'dict',
258
+ value: {
259
+ name: 'json_extraction',
260
+ baseSelector: sourceType === 'jsonld' ? 'script[type="application/ld+json"]' : scriptSelector || 'body',
261
+ fields: [
262
+ {
263
+ name: 'content',
264
+ selector: sourceType === 'jsonld' ? '' : scriptSelector || 'pre',
265
+ type: 'text',
266
+ }
267
+ ],
268
+ },
269
+ },
270
+ },
271
+ };
272
+ const result = await crawler.arun(url, {
273
+ extractionStrategy: sourceType === 'direct' ? undefined : extractionStrategy,
274
+ browserConfig,
275
+ cacheMode: options.cacheMode || 'enabled',
276
+ jsCode: browserOptions.jsCode,
277
+ headers,
278
+ });
279
+ let jsonData = null;
280
+ if (result.success) {
281
+ if (sourceType === 'direct') {
282
+ try {
283
+ if (result.extracted_content) {
284
+ jsonData = JSON.parse(result.extracted_content);
285
+ }
286
+ else if (result.text) {
287
+ jsonData = JSON.parse(result.text);
288
+ }
289
+ }
290
+ catch (error) {
291
+ const jsonMatch = (_a = result.text) === null || _a === void 0 ? void 0 : _a.match(/\{[\s\S]*\}|\[[\s\S]*\]/);
292
+ if (jsonMatch) {
293
+ try {
294
+ jsonData = JSON.parse(jsonMatch[0]);
295
+ }
296
+ catch {
297
+ jsonData = { content: result.text };
298
+ }
299
+ }
300
+ }
301
+ }
302
+ else {
303
+ if (result.extracted_content) {
304
+ try {
305
+ const extractedData = JSON.parse(result.extracted_content);
306
+ if (Array.isArray(extractedData) && extractedData.length > 0) {
307
+ const content = extractedData[0].content;
308
+ jsonData = JSON.parse(content);
309
+ }
310
+ }
311
+ catch (error) {
312
+ jsonData = { error: 'Failed to parse JSON from script tag' };
313
+ }
314
+ }
315
+ }
316
+ if (jsonPath && jsonData) {
317
+ const pathParts = jsonPath.split('.');
318
+ let currentData = jsonData;
319
+ for (const part of pathParts) {
320
+ if (currentData && typeof currentData === 'object' && part in currentData) {
321
+ currentData = currentData[part];
322
+ }
323
+ else {
324
+ currentData = null;
325
+ break;
326
+ }
327
+ }
328
+ jsonData = currentData;
329
+ }
330
+ }
331
+ const output = {
332
+ url,
333
+ success: result.success,
334
+ };
335
+ if (!result.success && result.error_message) {
336
+ output.error = result.error_message;
337
+ }
338
+ else if (jsonData) {
339
+ output.data = jsonData;
340
+ if (options.includeFullContent === true) {
341
+ output.fullContent = result.text || result.extracted_content;
342
+ }
343
+ }
344
+ else {
345
+ output.error = 'No JSON data found or failed to parse JSON';
346
+ output.success = false;
347
+ }
348
+ allResults.push({
349
+ json: output,
350
+ pairedItem: { item: i },
351
+ });
352
+ }
353
+ catch (error) {
354
+ if (this.continueOnFail()) {
355
+ const node = this.getNode();
356
+ const errorItemIndex = (_b = error.itemIndex) !== null && _b !== void 0 ? _b : i;
357
+ allResults.push({
358
+ json: items[i].json,
359
+ error: new n8n_workflow_1.NodeOperationError(node, error.message, { itemIndex: errorItemIndex }),
360
+ pairedItem: { item: i },
361
+ });
362
+ continue;
363
+ }
364
+ throw error;
365
+ }
366
+ }
367
+ return allResults;
368
+ }
369
+ //# sourceMappingURL=jsonExtractor.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonExtractor.operation.js","sourceRoot":"","sources":["../../../../nodes/Crawl4aiContentExtractor/actions/jsonExtractor.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeProperties } from 'n8n-workflow';
2
+ import type { Crawl4aiNodeOptions } from '../helpers/interfaces';
3
+ export declare const description: INodeProperties[];
4
+ export declare function execute(this: IExecuteFunctions, items: INodeExecutionData[], nodeOptions: Crawl4aiNodeOptions): Promise<INodeExecutionData[]>;