@mendable/n8n-nodes-firecrawl 1.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 (59) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +85 -0
  3. package/dist/credentials/FirecrawlApi.credentials.d.ts +8 -0
  4. package/dist/credentials/FirecrawlApi.credentials.js +37 -0
  5. package/dist/credentials/FirecrawlApi.credentials.js.map +1 -0
  6. package/dist/nodes/Firecrawl/Firecrawl.node.d.ts +21 -0
  7. package/dist/nodes/Firecrawl/Firecrawl.node.js +40 -0
  8. package/dist/nodes/Firecrawl/Firecrawl.node.js.map +1 -0
  9. package/dist/nodes/Firecrawl/Firecrawl.node.json +18 -0
  10. package/dist/nodes/Firecrawl/api/common.d.ts +11 -0
  11. package/dist/nodes/Firecrawl/api/common.js +595 -0
  12. package/dist/nodes/Firecrawl/api/common.js.map +1 -0
  13. package/dist/nodes/Firecrawl/api/crawl/index.d.ts +6 -0
  14. package/dist/nodes/Firecrawl/api/crawl/index.js +249 -0
  15. package/dist/nodes/Firecrawl/api/crawl/index.js.map +1 -0
  16. package/dist/nodes/Firecrawl/api/extract/index.d.ts +4 -0
  17. package/dist/nodes/Firecrawl/api/extract/index.js +219 -0
  18. package/dist/nodes/Firecrawl/api/extract/index.js.map +1 -0
  19. package/dist/nodes/Firecrawl/api/getCrawlStatus/index.d.ts +6 -0
  20. package/dist/nodes/Firecrawl/api/getCrawlStatus/index.js +57 -0
  21. package/dist/nodes/Firecrawl/api/getCrawlStatus/index.js.map +1 -0
  22. package/dist/nodes/Firecrawl/api/getExtractStatus/index.d.ts +4 -0
  23. package/dist/nodes/Firecrawl/api/getExtractStatus/index.js +54 -0
  24. package/dist/nodes/Firecrawl/api/getExtractStatus/index.js.map +1 -0
  25. package/dist/nodes/Firecrawl/api/index.d.ts +24 -0
  26. package/dist/nodes/Firecrawl/api/index.js +74 -0
  27. package/dist/nodes/Firecrawl/api/index.js.map +1 -0
  28. package/dist/nodes/Firecrawl/api/map/index.d.ts +6 -0
  29. package/dist/nodes/Firecrawl/api/map/index.js +151 -0
  30. package/dist/nodes/Firecrawl/api/map/index.js.map +1 -0
  31. package/dist/nodes/Firecrawl/api/scrape/index.d.ts +6 -0
  32. package/dist/nodes/Firecrawl/api/scrape/index.js +18 -0
  33. package/dist/nodes/Firecrawl/api/scrape/index.js.map +1 -0
  34. package/dist/nodes/Firecrawl/firecrawl.svg +31 -0
  35. package/dist/nodes/Firecrawl/helpers/http/requestModifiers.d.ts +2 -0
  36. package/dist/nodes/Firecrawl/helpers/http/requestModifiers.js +16 -0
  37. package/dist/nodes/Firecrawl/helpers/http/requestModifiers.js.map +1 -0
  38. package/dist/nodes/Firecrawl/helpers/http/responseHandlers.d.ts +7 -0
  39. package/dist/nodes/Firecrawl/helpers/http/responseHandlers.js +57 -0
  40. package/dist/nodes/Firecrawl/helpers/http/responseHandlers.js.map +1 -0
  41. package/dist/nodes/Firecrawl/helpers/index.d.ts +7 -0
  42. package/dist/nodes/Firecrawl/helpers/index.js +33 -0
  43. package/dist/nodes/Firecrawl/helpers/index.js.map +1 -0
  44. package/dist/nodes/Firecrawl/helpers/types.d.ts +18 -0
  45. package/dist/nodes/Firecrawl/helpers/types.js +3 -0
  46. package/dist/nodes/Firecrawl/helpers/types.js.map +1 -0
  47. package/dist/nodes/Firecrawl/helpers/utils/propertyBuilders.d.ts +5 -0
  48. package/dist/nodes/Firecrawl/helpers/utils/propertyBuilders.js +27 -0
  49. package/dist/nodes/Firecrawl/helpers/utils/propertyBuilders.js.map +1 -0
  50. package/dist/nodes/Firecrawl/methods.d.ts +17 -0
  51. package/dist/nodes/Firecrawl/methods.js +10 -0
  52. package/dist/nodes/Firecrawl/methods.js.map +1 -0
  53. package/dist/nodes/Firecrawl/properties.d.ts +5 -0
  54. package/dist/nodes/Firecrawl/properties.js +196 -0
  55. package/dist/nodes/Firecrawl/properties.js.map +1 -0
  56. package/dist/package.json +53 -0
  57. package/dist/tsconfig.tsbuildinfo +1 -0
  58. package/index.js +0 -0
  59. package/package.json +53 -0
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.apiMethods = exports.apiProperties = void 0;
4
+ const map_1 = require("./map");
5
+ const scrape_1 = require("./scrape");
6
+ const crawl_1 = require("./crawl");
7
+ const getCrawlStatus_1 = require("./getCrawlStatus");
8
+ const extract_1 = require("./extract");
9
+ const getExtractStatus_1 = require("./getExtractStatus");
10
+ const operationOptions = [
11
+ map_1.options,
12
+ scrape_1.options,
13
+ crawl_1.options,
14
+ getCrawlStatus_1.options,
15
+ extract_1.options,
16
+ getExtractStatus_1.options,
17
+ ];
18
+ const rawProperties = [
19
+ ...map_1.properties,
20
+ ...scrape_1.properties,
21
+ ...crawl_1.properties,
22
+ ...getCrawlStatus_1.properties,
23
+ ...extract_1.properties,
24
+ ...getExtractStatus_1.properties,
25
+ ];
26
+ const operationSelector = {
27
+ displayName: 'Operation',
28
+ name: 'operation',
29
+ type: 'options',
30
+ noDataExpression: true,
31
+ displayOptions: {
32
+ show: {
33
+ resource: ['Default'],
34
+ },
35
+ },
36
+ default: 'map',
37
+ options: operationOptions,
38
+ };
39
+ exports.apiProperties = [operationSelector, ...rawProperties];
40
+ exports.apiMethods = {
41
+ Default: {
42
+ map: {
43
+ execute() {
44
+ return this.helpers.httpRequest;
45
+ },
46
+ },
47
+ scrape: {
48
+ execute() {
49
+ return this.helpers.httpRequest;
50
+ },
51
+ },
52
+ crawl: {
53
+ execute() {
54
+ return this.helpers.httpRequest;
55
+ },
56
+ },
57
+ getCrawlStatus: {
58
+ execute() {
59
+ return this.helpers.httpRequest;
60
+ },
61
+ },
62
+ extract: {
63
+ execute() {
64
+ return this.helpers.httpRequest;
65
+ },
66
+ },
67
+ getExtractStatus: {
68
+ execute() {
69
+ return this.helpers.httpRequest;
70
+ },
71
+ },
72
+ },
73
+ };
74
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/Firecrawl/api/index.ts"],"names":[],"mappings":";;;AAGA,+BAA2E;AAC3E,qCAAoF;AACpF,mCAAiF;AACjF,qDAG0B;AAC1B,uCAAuF;AACvF,yDAG4B;AAK5B,MAAM,gBAAgB,GAA2B;IAChD,aAAU;IACV,gBAAa;IACb,eAAY;IACZ,wBAAqB;IACrB,iBAAc;IACd,0BAAuB;CACvB,CAAC;AAKF,MAAM,aAAa,GAAsB;IACxC,GAAG,gBAAa;IAChB,GAAG,mBAAgB;IACnB,GAAG,kBAAe;IAClB,GAAG,2BAAwB;IAC3B,GAAG,oBAAiB;IACpB,GAAG,6BAA0B;CAC7B,CAAC;AAKF,MAAM,iBAAiB,GAAoB;IAC1C,WAAW,EAAE,WAAW;IACxB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,IAAI;IACtB,cAAc,EAAE;QACf,IAAI,EAAE;YACL,QAAQ,EAAE,CAAC,SAAS,CAAC;SACrB;KACD;IACD,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,gBAAgB;CACzB,CAAC;AAKW,QAAA,aAAa,GAAsB,CAAC,iBAAiB,EAAE,GAAG,aAAa,CAAC,CAAC;AAKzE,QAAA,UAAU,GAAG;IACzB,OAAO,EAAE;QACR,GAAG,EAAE;YACJ,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;QACD,MAAM,EAAE;YACP,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;QACD,KAAK,EAAE;YACN,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;QACD,cAAc,EAAE;YACf,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;QACD,OAAO,EAAE;YACR,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;QACD,gBAAgB,EAAE;YACjB,OAAO;gBACN,OAAO,IAAI,CAAC,OAAO,CAAC,WAAkB,CAAC;YACxC,CAAC;SACD;KACD;CACD,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "map";
3
+ export declare const displayName = "Map a website and get urls";
4
+ export declare const operationName = "map";
5
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
6
+ export { options, properties };
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'map';
6
+ exports.displayName = 'Map a website and get urls';
7
+ exports.operationName = 'map';
8
+ function createIgnoreSitemapProperty() {
9
+ return {
10
+ displayName: 'Ignore Sitemap',
11
+ name: 'ignoreSitemap',
12
+ type: 'boolean',
13
+ default: true,
14
+ description: 'Whether to ignore the website sitemap when crawling',
15
+ routing: {
16
+ request: {
17
+ body: {
18
+ ignoreSitemap: '={{ $value }}',
19
+ },
20
+ },
21
+ },
22
+ displayOptions: {
23
+ hide: {
24
+ useCustomBody: [true],
25
+ },
26
+ show: {
27
+ resource: ['Default'],
28
+ operation: [exports.operationName],
29
+ },
30
+ },
31
+ };
32
+ }
33
+ function createSitemapOnlyProperty() {
34
+ return {
35
+ displayName: 'Sitemap Only',
36
+ name: 'sitemapOnly',
37
+ type: 'boolean',
38
+ default: false,
39
+ description: 'Whether to only return links found in the website sitemap',
40
+ routing: {
41
+ request: {
42
+ body: {
43
+ sitemapOnly: '={{ $value }}',
44
+ },
45
+ },
46
+ },
47
+ displayOptions: {
48
+ hide: {
49
+ useCustomBody: [true],
50
+ },
51
+ show: {
52
+ resource: ['Default'],
53
+ operation: [exports.operationName],
54
+ },
55
+ },
56
+ };
57
+ }
58
+ function createIncludeSubdomainsProperty() {
59
+ return {
60
+ displayName: 'Include Subdomains',
61
+ name: 'includeSubdomains',
62
+ type: 'boolean',
63
+ default: false,
64
+ description: 'Whether to include subdomains of the website',
65
+ routing: {
66
+ request: {
67
+ body: {
68
+ includeSubdomains: '={{ $value }}',
69
+ },
70
+ },
71
+ },
72
+ displayOptions: {
73
+ hide: {
74
+ useCustomBody: [true],
75
+ },
76
+ show: {
77
+ resource: ['Default'],
78
+ operation: [exports.operationName],
79
+ },
80
+ },
81
+ };
82
+ }
83
+ function createLimitProperty() {
84
+ return {
85
+ displayName: 'Limit',
86
+ name: 'limit',
87
+ type: 'number',
88
+ typeOptions: {
89
+ minValue: 1,
90
+ maxValue: 5000,
91
+ },
92
+ default: 5000,
93
+ description: 'Max number of results to return',
94
+ routing: {
95
+ request: {
96
+ body: {
97
+ limit: '={{ $value }}',
98
+ },
99
+ },
100
+ },
101
+ displayOptions: {
102
+ hide: {
103
+ useCustomBody: [true],
104
+ },
105
+ show: {
106
+ resource: ['Default'],
107
+ operation: [exports.operationName],
108
+ },
109
+ },
110
+ };
111
+ }
112
+ function createTimeoutProperty() {
113
+ return {
114
+ displayName: 'Timeout (Ms)',
115
+ name: 'timeout',
116
+ type: 'number',
117
+ default: 10000,
118
+ description: 'Timeout in milliseconds for the request',
119
+ routing: {
120
+ request: {
121
+ body: {
122
+ timeout: '={{ $value }}',
123
+ },
124
+ },
125
+ },
126
+ displayOptions: {
127
+ hide: {
128
+ useCustomBody: [true],
129
+ },
130
+ show: {
131
+ resource: ['Default'],
132
+ operation: [exports.operationName],
133
+ },
134
+ },
135
+ };
136
+ }
137
+ function createMapProperties() {
138
+ return [
139
+ (0, common_1.createOperationNotice)('Default', exports.name),
140
+ (0, common_1.createUrlProperty)(exports.name),
141
+ createIgnoreSitemapProperty(),
142
+ createSitemapOnlyProperty(),
143
+ createIncludeSubdomainsProperty(),
144
+ createLimitProperty(),
145
+ createTimeoutProperty(),
146
+ ];
147
+ }
148
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createMapProperties());
149
+ exports.options = options;
150
+ exports.properties = properties;
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/map/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "scrape";
3
+ export declare const displayName = "Scrape a url and get its content";
4
+ export declare const operationName = "scrape";
5
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
6
+ export { options, properties };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'scrape';
6
+ exports.displayName = 'Scrape a url and get its content';
7
+ exports.operationName = 'scrape';
8
+ function createScrapeProperties() {
9
+ return [
10
+ (0, common_1.createOperationNotice)('Default', exports.name),
11
+ (0, common_1.createUrlProperty)(exports.name, 'https://firecrawl.dev'),
12
+ (0, common_1.createScrapeOptionsProperty)(exports.operationName, false),
13
+ ];
14
+ }
15
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createScrapeProperties());
16
+ exports.options = options;
17
+ exports.properties = properties;
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/scrape/index.ts"],"names":[],"mappings":";;;AACA,sCAKmB;AAGN,QAAA,IAAI,GAAG,QAAQ,CAAC;AAChB,QAAA,WAAW,GAAG,kCAAkC,CAAC;AACjD,QAAA,aAAa,GAAG,QAAQ,CAAC;AAKtC,SAAS,sBAAsB;IAC9B,OAAO;QAEN,IAAA,8BAAqB,EAAC,SAAS,EAAE,YAAI,CAAC;QAGtC,IAAA,0BAAiB,EAAC,YAAI,EAAE,uBAAuB,CAAC;QAGhD,IAAA,oCAA2B,EAAC,qBAAa,EAAE,KAAK,CAAC;KACjD,CAAC;AACH,CAAC;AAGD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,2BAAkB,EAAC,YAAI,EAAE,mBAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC;AAEvF,0BAAO;AAAE,gCAAU"}
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+
3
+ <!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
4
+ <svg width="800px" height="800px" viewBox="-33 0 255 255" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
5
+ <defs>
6
+ <style>
7
+
8
+ .cls-3 {
9
+ fill: url(#linear-gradient-1);
10
+ }
11
+
12
+ .cls-4 {
13
+ fill: #fc9502;
14
+ }
15
+
16
+ .cls-5 {
17
+ fill: #fce202;
18
+ }
19
+ </style>
20
+
21
+ <linearGradient id="linear-gradient-1" gradientUnits="userSpaceOnUse" x1="94.141" y1="255" x2="94.141" y2="0.188">
22
+ <stop offset="0" stop-color="#ff4c0d"/>
23
+ <stop offset="1" stop-color="#fc9502"/>
24
+ </linearGradient>
25
+ </defs>
26
+ <g id="firecrawl">
27
+ <path d="M187.899,164.809 C185.803,214.868 144.574,254.812 94.000,254.812 C42.085,254.812 -0.000,211.312 -0.000,160.812 C-0.000,154.062 -0.121,140.572 10.000,117.812 C16.057,104.191 19.856,95.634 22.000,87.812 C23.178,83.513 25.469,76.683 32.000,87.812 C35.851,94.374 36.000,103.812 36.000,103.812 C36.000,103.812 50.328,92.817 60.000,71.812 C74.179,41.019 62.866,22.612 59.000,9.812 C57.662,5.384 56.822,-2.574 66.000,0.812 C75.352,4.263 100.076,21.570 113.000,39.812 C131.445,65.847 138.000,90.812 138.000,90.812 C138.000,90.812 143.906,83.482 146.000,75.812 C148.365,67.151 148.400,58.573 155.999,67.813 C163.226,76.600 173.959,93.113 180.000,108.812 C190.969,137.321 187.899,164.809 187.899,164.809 Z" id="path-1" class="cls-3" fill-rule="evenodd"/>
28
+ <path d="M94.000,254.812 C58.101,254.812 29.000,225.711 29.000,189.812 C29.000,168.151 37.729,155.000 55.896,137.166 C67.528,125.747 78.415,111.722 83.042,102.172 C83.953,100.292 86.026,90.495 94.019,101.966 C98.212,107.982 104.785,118.681 109.000,127.812 C116.266,143.555 118.000,158.812 118.000,158.812 C118.000,158.812 125.121,154.616 130.000,143.812 C131.573,140.330 134.753,127.148 143.643,140.328 C150.166,150.000 159.127,167.390 159.000,189.812 C159.000,225.711 129.898,254.812 94.000,254.812 Z" id="path-2" class="cls-4" fill-rule="evenodd"/>
29
+ <path d="M95.000,183.812 C104.250,183.812 104.250,200.941 116.000,223.812 C123.824,239.041 112.121,254.812 95.000,254.812 C77.879,254.812 69.000,240.933 69.000,223.812 C69.000,206.692 85.750,183.812 95.000,183.812 Z" id="path-3" class="cls-5" fill-rule="evenodd"/>
30
+ </g>
31
+ </svg>
@@ -0,0 +1,2 @@
1
+ import { IExecuteSingleFunctions, IHttpRequestOptions } from 'n8n-workflow';
2
+ export declare function mergeCustomBodyWithRequest(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeCustomBodyWithRequest = void 0;
4
+ async function mergeCustomBodyWithRequest(requestOptions) {
5
+ const { customBody } = requestOptions.body;
6
+ if (typeof requestOptions.body === 'object' && typeof customBody === 'object') {
7
+ requestOptions.body = {
8
+ ...requestOptions.body,
9
+ ...customBody,
10
+ };
11
+ delete requestOptions.body.customBody;
12
+ }
13
+ return Promise.resolve(requestOptions);
14
+ }
15
+ exports.mergeCustomBodyWithRequest = mergeCustomBodyWithRequest;
16
+ //# sourceMappingURL=requestModifiers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requestModifiers.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/helpers/http/requestModifiers.ts"],"names":[],"mappings":";;;AAOO,KAAK,UAAU,0BAA0B,CAE/C,cAAmC;IAEnC,MAAM,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,IAAmB,CAAC;IAE1D,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAC9E,cAAc,CAAC,IAAI,GAAG;YACrB,GAAG,cAAc,CAAC,IAAI;YACtB,GAAG,UAAU;SACb,CAAC;QAGF,OAAQ,cAAc,CAAC,IAAoB,CAAC,UAAU,CAAC;KACvD;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACxC,CAAC;AAjBD,gEAiBC"}
@@ -0,0 +1,7 @@
1
+ import { IN8nHttpFullResponse } from 'n8n-workflow';
2
+ import { PostReceiveAction } from '../types';
3
+ export declare function getResponseContentType(response: IN8nHttpFullResponse): string;
4
+ export declare function getFileTypeFromContentType(contentType: string): string;
5
+ export declare function getFileExtensionFromContentType(contentType: string): string;
6
+ export declare function isBinaryResponse(contentType: string): boolean;
7
+ export declare const processBinaryResponseData: PostReceiveAction;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processBinaryResponseData = exports.isBinaryResponse = exports.getFileExtensionFromContentType = exports.getFileTypeFromContentType = exports.getResponseContentType = void 0;
4
+ function getResponseContentType(response) {
5
+ return response.headers['content-type'];
6
+ }
7
+ exports.getResponseContentType = getResponseContentType;
8
+ function getFileTypeFromContentType(contentType) {
9
+ const type = contentType.split(';')[0].trim();
10
+ if (type.includes('/')) {
11
+ return type.split('/')[0];
12
+ }
13
+ return type;
14
+ }
15
+ exports.getFileTypeFromContentType = getFileTypeFromContentType;
16
+ function getFileExtensionFromContentType(contentType) {
17
+ const type = contentType.split(';')[0].trim();
18
+ if (typeof type === 'string' && type.includes('/')) {
19
+ return type.split('/')[1];
20
+ }
21
+ return type;
22
+ }
23
+ exports.getFileExtensionFromContentType = getFileExtensionFromContentType;
24
+ function isBinaryResponse(contentType) {
25
+ const textContentTypes = [
26
+ /application\/json/,
27
+ /application\/xml/,
28
+ /application\/xhtml\+xml/,
29
+ /application\/atom\+xml/,
30
+ /application\/rss\+xml/,
31
+ /application\/rdf\+xml/,
32
+ /application\/ld\+json/,
33
+ /application\/pdf/,
34
+ /application\/ld\+json/,
35
+ /^text\//,
36
+ ];
37
+ return !textContentTypes.some((regex) => regex.test(contentType));
38
+ }
39
+ exports.isBinaryResponse = isBinaryResponse;
40
+ const processBinaryResponseData = async function processBinaryResponseData(items, response) {
41
+ const contentType = getResponseContentType(response);
42
+ const isBinary = isBinaryResponse(contentType);
43
+ const { binary } = items[0];
44
+ if (isBinary && binary && binary.data && binary.data.mimeType === 'text/plain') {
45
+ const data = binary.data;
46
+ data.data = Buffer.from(response.body, 'binary');
47
+ data.mimeType = contentType;
48
+ data.fileType = getFileTypeFromContentType(contentType);
49
+ data.fileExtension = getFileExtensionFromContentType(contentType);
50
+ }
51
+ if (binary && binary.data && !binary.data.fileName) {
52
+ binary.data.fileName = `data.${getFileExtensionFromContentType(contentType)}`;
53
+ }
54
+ return items;
55
+ };
56
+ exports.processBinaryResponseData = processBinaryResponseData;
57
+ //# sourceMappingURL=responseHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseHandlers.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/helpers/http/responseHandlers.ts"],"names":[],"mappings":";;;AAcA,SAAgB,sBAAsB,CAAC,QAA8B;IACpE,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAW,CAAC;AACnD,CAAC;AAFD,wDAEC;AAOD,SAAgB,0BAA0B,CAAC,WAAmB;IAC7D,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AARD,gEAQC;AAOD,SAAgB,+BAA+B,CAAC,WAAmB;IAClE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAG9C,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AATD,0EASC;AAOD,SAAgB,gBAAgB,CAAC,WAAmB;IACnD,MAAM,gBAAgB,GAAG;QACxB,mBAAmB;QACnB,kBAAkB;QAClB,yBAAyB;QACzB,wBAAwB;QACxB,uBAAuB;QACvB,uBAAuB;QACvB,uBAAuB;QACvB,kBAAkB;QAClB,uBAAuB;QACvB,SAAS;KACT,CAAC;IAEF,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACnE,CAAC;AAfD,4CAeC;AAQM,MAAM,yBAAyB,GACrC,KAAK,UAAU,yBAAyB,CAEvC,KAA2B,EAC3B,QAA8B;IAE9B,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,YAAY,EAAE;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAmB,CAAC;QAIxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAc,EAAE,QAAQ,CAAC,CAAC;QAE3D,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,0BAA0B,CAAC,WAAW,CAAmB,CAAC;QAC1E,IAAI,CAAC,aAAa,GAAG,+BAA+B,CAAC,WAAW,CAAC,CAAC;KAClE;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;QACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,+BAA+B,CAAC,WAAW,CAAC,EAAE,CAAC;KAC9E;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AA5BU,QAAA,yBAAyB,6BA4BnC"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ import { mergeCustomBodyWithRequest } from './http/requestModifiers';
3
+ import { getResponseContentType, getFileTypeFromContentType, getFileExtensionFromContentType, isBinaryResponse, processBinaryResponseData } from './http/responseHandlers';
4
+ import { buildPropertiesWithOptions, buildPropertiesWithMethods, aggregateNodeMethods } from './utils/propertyBuilders';
5
+ export { mergeCustomBodyWithRequest, getResponseContentType, getFileTypeFromContentType, getFileExtensionFromContentType, isBinaryResponse, processBinaryResponseData, buildPropertiesWithOptions, buildPropertiesWithMethods, aggregateNodeMethods, };
6
+ export declare const preSendActionCustomBody: typeof mergeCustomBodyWithRequest;
7
+ export declare const postReceiveActionBinaryData: import("./types").PostReceiveAction;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.postReceiveActionBinaryData = exports.preSendActionCustomBody = exports.aggregateNodeMethods = exports.buildPropertiesWithMethods = exports.buildPropertiesWithOptions = exports.processBinaryResponseData = exports.isBinaryResponse = exports.getFileExtensionFromContentType = exports.getFileTypeFromContentType = exports.getResponseContentType = exports.mergeCustomBodyWithRequest = void 0;
18
+ __exportStar(require("./types"), exports);
19
+ const requestModifiers_1 = require("./http/requestModifiers");
20
+ Object.defineProperty(exports, "mergeCustomBodyWithRequest", { enumerable: true, get: function () { return requestModifiers_1.mergeCustomBodyWithRequest; } });
21
+ const responseHandlers_1 = require("./http/responseHandlers");
22
+ Object.defineProperty(exports, "getResponseContentType", { enumerable: true, get: function () { return responseHandlers_1.getResponseContentType; } });
23
+ Object.defineProperty(exports, "getFileTypeFromContentType", { enumerable: true, get: function () { return responseHandlers_1.getFileTypeFromContentType; } });
24
+ Object.defineProperty(exports, "getFileExtensionFromContentType", { enumerable: true, get: function () { return responseHandlers_1.getFileExtensionFromContentType; } });
25
+ Object.defineProperty(exports, "isBinaryResponse", { enumerable: true, get: function () { return responseHandlers_1.isBinaryResponse; } });
26
+ Object.defineProperty(exports, "processBinaryResponseData", { enumerable: true, get: function () { return responseHandlers_1.processBinaryResponseData; } });
27
+ const propertyBuilders_1 = require("./utils/propertyBuilders");
28
+ Object.defineProperty(exports, "buildPropertiesWithOptions", { enumerable: true, get: function () { return propertyBuilders_1.buildPropertiesWithOptions; } });
29
+ Object.defineProperty(exports, "buildPropertiesWithMethods", { enumerable: true, get: function () { return propertyBuilders_1.buildPropertiesWithMethods; } });
30
+ Object.defineProperty(exports, "aggregateNodeMethods", { enumerable: true, get: function () { return propertyBuilders_1.aggregateNodeMethods; } });
31
+ exports.preSendActionCustomBody = requestModifiers_1.mergeCustomBodyWithRequest;
32
+ exports.postReceiveActionBinaryData = responseHandlers_1.processBinaryResponseData;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/Firecrawl/helpers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,0CAAwB;AAGxB,8DAAqE;AAkBpE,2GAlBQ,6CAA0B,OAkBR;AAjB3B,8DAMiC;AAYhC,uGAjBA,yCAAsB,OAiBA;AACtB,2GAjBA,6CAA0B,OAiBA;AAC1B,gHAjBA,kDAA+B,OAiBA;AAC/B,iGAjBA,mCAAgB,OAiBA;AAChB,0GAjBA,4CAAyB,OAiBA;AAb1B,+DAIkC;AAUjC,2GAbA,6CAA0B,OAaA;AAC1B,2GAbA,6CAA0B,OAaA;AAC1B,qGAbA,uCAAoB,OAaA;AAIR,QAAA,uBAAuB,GAAG,6CAA0B,CAAC;AACrD,QAAA,2BAA2B,GAAG,4CAAyB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { BinaryFileType, IBinaryData, IExecuteSingleFunctions, IN8nHttpFullResponse, INodeExecutionData, INodeProperties, INodePropertyOptions, INodeType, IPostReceiveBinaryData, IPostReceiveFilter, IPostReceiveLimit, IPostReceiveRootProperty, IPostReceiveSet, IPostReceiveSetKeyValue, IPostReceiveSort } from 'n8n-workflow';
2
+ export declare type IMethodModule = INodeType['methods'];
3
+ export declare type PostReceiveAction = ((this: IExecuteSingleFunctions, items: INodeExecutionData[], response: IN8nHttpFullResponse) => Promise<INodeExecutionData[]>) | IPostReceiveBinaryData | IPostReceiveFilter | IPostReceiveLimit | IPostReceiveRootProperty | IPostReceiveSet | IPostReceiveSetKeyValue | IPostReceiveSort;
4
+ export interface IPropertiesWithOptions {
5
+ options: INodePropertyOptions;
6
+ properties: INodeProperties[];
7
+ }
8
+ export interface IPropertiesWithMethods {
9
+ properties: INodeProperties[];
10
+ methods: IMethodModule;
11
+ }
12
+ export interface IBinaryResponseData {
13
+ data: IBinaryData;
14
+ fileName?: string;
15
+ mimeType: string;
16
+ fileType: BinaryFileType;
17
+ fileExtension: string;
18
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/Firecrawl/helpers/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { INodeProperties, INodePropertyOptions } from 'n8n-workflow';
2
+ import { IMethodModule, IPropertiesWithMethods, IPropertiesWithOptions } from '../types';
3
+ export declare function buildPropertiesWithOptions(options: INodePropertyOptions, properties: INodeProperties[]): IPropertiesWithOptions;
4
+ export declare function buildPropertiesWithMethods(properties: INodeProperties[], methods?: IMethodModule): IPropertiesWithMethods;
5
+ export declare function aggregateNodeMethods(modules: IMethodModule[]): IMethodModule;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aggregateNodeMethods = exports.buildPropertiesWithMethods = exports.buildPropertiesWithOptions = void 0;
4
+ function buildPropertiesWithOptions(options, properties) {
5
+ return {
6
+ options,
7
+ properties,
8
+ };
9
+ }
10
+ exports.buildPropertiesWithOptions = buildPropertiesWithOptions;
11
+ function buildPropertiesWithMethods(properties, methods) {
12
+ return {
13
+ properties,
14
+ methods: methods || {},
15
+ };
16
+ }
17
+ exports.buildPropertiesWithMethods = buildPropertiesWithMethods;
18
+ function aggregateNodeMethods(modules) {
19
+ return modules.reduce((methods, module) => {
20
+ return {
21
+ ...methods,
22
+ ...module,
23
+ };
24
+ }, {});
25
+ }
26
+ exports.aggregateNodeMethods = aggregateNodeMethods;
27
+ //# sourceMappingURL=propertyBuilders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propertyBuilders.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/helpers/utils/propertyBuilders.ts"],"names":[],"mappings":";;;AASA,SAAgB,0BAA0B,CACzC,OAA6B,EAC7B,UAA6B;IAE7B,OAAO;QACN,OAAO;QACP,UAAU;KACV,CAAC;AACH,CAAC;AARD,gEAQC;AAQD,SAAgB,0BAA0B,CACzC,UAA6B,EAC7B,OAAuB;IAEvB,OAAO;QACN,UAAU;QACV,OAAO,EAAE,OAAO,IAAI,EAAE;KACtB,CAAC;AACH,CAAC;AARD,gEAQC;AAOD,SAAgB,oBAAoB,CAAC,OAAwB;IAC5D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACzC,OAAO;YACN,GAAG,OAAO;YACV,GAAG,MAAM;SACT,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;AACR,CAAC;AAPD,oDAOC"}
@@ -0,0 +1,17 @@
1
+ export declare const allMethods: {
2
+ loadOptions?: {
3
+ [key: string]: (this: import("n8n-workflow").ILoadOptionsFunctions) => Promise<import("n8n-workflow").INodePropertyOptions[]>;
4
+ } | undefined;
5
+ listSearch?: {
6
+ [key: string]: (this: import("n8n-workflow").ILoadOptionsFunctions, filter?: string | undefined, paginationToken?: string | undefined) => Promise<import("n8n-workflow").INodeListSearchResult>;
7
+ } | undefined;
8
+ credentialTest?: {
9
+ [functionName: string]: import("n8n-workflow").ICredentialTestFunction;
10
+ } | undefined;
11
+ resourceMapping?: {
12
+ [functionName: string]: (this: import("n8n-workflow").ILoadOptionsFunctions) => Promise<import("n8n-workflow").ResourceMapperFields>;
13
+ } | undefined;
14
+ actionHandler?: {
15
+ [functionName: string]: (this: import("n8n-workflow").ILoadOptionsFunctions, payload: string | import("n8n-workflow").IDataObject | undefined) => Promise<import("n8n-workflow").NodeParameterValueType>;
16
+ } | undefined;
17
+ } | undefined;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allMethods = void 0;
4
+ const api_1 = require("./api");
5
+ exports.allMethods = {
6
+ Default: {
7
+ ...api_1.apiMethods.Default,
8
+ },
9
+ };
10
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../nodes/Firecrawl/methods.ts"],"names":[],"mappings":";;;AACA,+BAAmC;AAmBtB,QAAA,UAAU,GAAG;IACzB,OAAO,EAAE;QACR,GAAG,gBAAU,CAAC,OAAO;KACrB;CACuB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const authenticationProperties: INodeProperties[];
3
+ export declare const resourceSelect: INodeProperties[];
4
+ export declare const extraProperties: INodeProperties[];
5
+ export declare const allProperties: INodeProperties[];