@mendable/n8n-nodes-firecrawl 2.0.4 → 2.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/nodes/Firecrawl/Firecrawl.node.js +1 -1
  2. package/dist/nodes/Firecrawl/Firecrawl.node.js.map +1 -1
  3. package/dist/nodes/Firecrawl/api/browserContext/index.d.ts +7 -0
  4. package/dist/nodes/Firecrawl/api/browserContext/index.js +112 -0
  5. package/dist/nodes/Firecrawl/api/browserContext/index.js.map +1 -0
  6. package/dist/nodes/Firecrawl/api/browserCreate/index.d.ts +7 -0
  7. package/dist/nodes/Firecrawl/api/browserCreate/index.js +132 -0
  8. package/dist/nodes/Firecrawl/api/browserCreate/index.js.map +1 -0
  9. package/dist/nodes/Firecrawl/api/browserDelete/index.d.ts +7 -0
  10. package/dist/nodes/Firecrawl/api/browserDelete/index.js +45 -0
  11. package/dist/nodes/Firecrawl/api/browserDelete/index.js.map +1 -0
  12. package/dist/nodes/Firecrawl/api/browserExecute/index.d.ts +7 -0
  13. package/dist/nodes/Firecrawl/api/browserExecute/index.js +149 -0
  14. package/dist/nodes/Firecrawl/api/browserExecute/index.js.map +1 -0
  15. package/dist/nodes/Firecrawl/api/browserList/index.d.ts +7 -0
  16. package/dist/nodes/Firecrawl/api/browserList/index.js +70 -0
  17. package/dist/nodes/Firecrawl/api/browserList/index.js.map +1 -0
  18. package/dist/nodes/Firecrawl/api/index.d.ts +17 -0
  19. package/dist/nodes/Firecrawl/api/index.js +58 -0
  20. package/dist/nodes/Firecrawl/api/index.js.map +1 -1
  21. package/dist/nodes/Firecrawl/api/map/index.d.ts +1 -1
  22. package/dist/nodes/Firecrawl/api/map/index.js +1 -1
  23. package/dist/nodes/Firecrawl/api/map/index.js.map +1 -1
  24. package/dist/nodes/Firecrawl/api/scrape/index.d.ts +1 -1
  25. package/dist/nodes/Firecrawl/api/scrape/index.js +1 -1
  26. package/dist/nodes/Firecrawl/api/scrape/index.js.map +1 -1
  27. package/dist/nodes/Firecrawl/api/search/index.d.ts +1 -1
  28. package/dist/nodes/Firecrawl/api/search/index.js +2 -2
  29. package/dist/nodes/Firecrawl/api/search/index.js.map +1 -1
  30. package/dist/nodes/Firecrawl/firecrawl-logo.svg +33 -0
  31. package/dist/nodes/Firecrawl/methods.js +3 -0
  32. package/dist/nodes/Firecrawl/methods.js.map +1 -1
  33. package/dist/nodes/Firecrawl/properties.js +4 -0
  34. package/dist/nodes/Firecrawl/properties.js.map +1 -1
  35. package/dist/package.json +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/package.json +1 -1
  38. package/dist/nodes/Firecrawl/firecrawl.svg +0 -31
@@ -8,7 +8,7 @@ class Firecrawl {
8
8
  this.description = {
9
9
  displayName: 'Firecrawl',
10
10
  name: 'firecrawl',
11
- icon: 'file:firecrawl.svg',
11
+ icon: 'file:firecrawl-logo.svg',
12
12
  group: ['transform'],
13
13
  version: 1,
14
14
  subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
@@ -1 +1 @@
1
- {"version":3,"file":"Firecrawl.node.js","sourceRoot":"","sources":["../../../nodes/Firecrawl/Firecrawl.node.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AACvC,6CAA6C;AAK7C,MAAa,SAAS;IAAtB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,2FAA2F;YACxG,QAAQ,EAAE;gBACT,IAAI,EAAE,WAAW;aACjB;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,+DAA+D;gBACxE,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;gBACD,IAAI,EAAE;oBACL,WAAW,EAAE,KAAK;iBAClB;aACD;YACD,UAAU,EAAE,0BAAa;SACzB,CAAC;QAEF,YAAO,GAAG,oBAAU,CAAC;IACtB,CAAC;CAAA;AAnCD,8BAmCC"}
1
+ {"version":3,"file":"Firecrawl.node.js","sourceRoot":"","sources":["../../../nodes/Firecrawl/Firecrawl.node.ts"],"names":[],"mappings":";;;AACA,uCAAuC;AACvC,6CAA6C;AAK7C,MAAa,SAAS;IAAtB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,WAAW;YACxB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,yBAAyB;YAC/B,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,2FAA2F;YACxG,QAAQ,EAAE;gBACT,IAAI,EAAE,WAAW;aACjB;YACD,YAAY,EAAE,IAAI;YAClB,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,cAAc;oBACpB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,eAAe,EAAE;gBAChB,OAAO,EAAE,+DAA+D;gBACxE,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,cAAc,EAAE,kBAAkB;iBAClC;gBACD,IAAI,EAAE;oBACL,WAAW,EAAE,KAAK;iBAClB;aACD;YACD,UAAU,EAAE,0BAAa;SACzB,CAAC;QAEF,YAAO,GAAG,oBAAU,CAAC;IACtB,CAAC;CAAA;AAnCD,8BAmCC"}
@@ -0,0 +1,7 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "browserContext";
3
+ export declare const displayName = "Browser context";
4
+ export declare const operationName = "browserContext";
5
+ export declare const resourceName = "Browser";
6
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
7
+ export { options, properties };
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.resourceName = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'browserContext';
6
+ exports.displayName = 'Browser context';
7
+ exports.operationName = 'browserContext';
8
+ exports.resourceName = 'Browser';
9
+ const BROWSER_CONTEXT = `# Firecrawl Browser Sandbox
10
+
11
+ You have access to a cloud browser sandbox. Each session runs in an isolated, disposable environment with Playwright and agent-browser pre-installed. No local setup required.
12
+
13
+ ## Available Tools
14
+
15
+ ### 1. Create Browser Session
16
+ - Launches a new sandboxed browser session
17
+ - Returns a session ID (needed for all other browser operations), CDP WebSocket URL, and live view URLs
18
+ - Configure TTL (total lifetime, 30-3600s, default 600s) and activity TTL (inactivity timeout, 10-3600s, default 300s)
19
+ - Optionally use a named profile to persist cookies, localStorage, and browser state across sessions
20
+
21
+ ### 2. Execute Browser Code
22
+ - Runs code inside an active browser session
23
+ - Requires a session ID from "Create Browser Session"
24
+ - Supports three languages:
25
+ - **Node (JavaScript)**: Playwright code with a pre-configured \`page\` object. Example: \`await page.goto("https://example.com"); const title = await page.title(); console.log(title);\`
26
+ - **Python**: Playwright code with a pre-configured \`page\` object. Example: \`await page.goto("https://example.com")\\ntitle = await page.title()\\nprint(title)\`
27
+ - **Bash**: agent-browser CLI commands for simple interactions. Example: \`agent-browser open https://example.com\`, \`agent-browser snapshot\`, \`agent-browser click @e5\`, \`agent-browser scrape\`
28
+ - The \`page\` object is pre-configured and ready to use — do NOT create a new browser or page
29
+ - Use \`console.log()\` (Node) or \`print()\` (Python) to return data — the output appears in the \`result\` field
30
+ - Configurable timeout (1-300 seconds)
31
+
32
+ ### 3. List Browser Sessions
33
+ - Lists all browser sessions, optionally filtered by status (active or destroyed)
34
+ - Returns session IDs, status, CDP URLs, live view URLs, and timestamps
35
+ - Use this to find existing sessions before creating new ones
36
+
37
+ ### 4. Delete Browser Session
38
+ - Destroys an active browser session and releases resources
39
+ - If using a profile with saveChanges=true, browser state is saved on close
40
+ - Always close sessions when done to avoid unnecessary credit usage
41
+
42
+ ## Typical Workflow
43
+
44
+ 1. **Create** a browser session (get the session ID)
45
+ 2. **Execute** one or more code blocks in that session (navigate, interact, extract data)
46
+ 3. **Delete** the session when finished
47
+
48
+ ## Key Guidelines
49
+
50
+ - Always create a session before executing code
51
+ - Reuse the same session for multi-step workflows — the browser state persists between execute calls
52
+ - Use profiles when you need to maintain login state across separate sessions
53
+ - Choose the right language: Bash/agent-browser for simple navigation and clicks, Python or Node for complex Playwright automation
54
+ - Always delete sessions when done to save credits (2 credits per browser minute)
55
+ - For extracting content from a known URL without interaction, prefer the Scrape tool instead — it's simpler and cheaper
56
+ - Use Browser when you need to navigate pagination, fill forms, click through flows, or perform multi-step interactions`;
57
+ function createContextProperty() {
58
+ return {
59
+ displayName: 'Context',
60
+ name: 'browserContextText',
61
+ type: 'string',
62
+ typeOptions: {
63
+ rows: 15,
64
+ },
65
+ noDataExpression: true,
66
+ default: BROWSER_CONTEXT,
67
+ description: 'This tool MUST be called before using any other Browser tools. It provides context and instructions about the Firecrawl Browser Sandbox to the AI agent. Edit this to customize the instructions for your use case.',
68
+ displayOptions: {
69
+ show: {
70
+ resource: [exports.resourceName],
71
+ operation: [exports.operationName],
72
+ },
73
+ },
74
+ };
75
+ }
76
+ function createBrowserContextProperties() {
77
+ return [createContextProperty()];
78
+ }
79
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createBrowserContextProperties());
80
+ exports.options = options;
81
+ exports.properties = properties;
82
+ options.routing = {
83
+ request: {
84
+ method: 'GET',
85
+ url: '=/browser',
86
+ },
87
+ output: {
88
+ postReceive: [
89
+ async function (items, response) {
90
+ const contextText = this.getNodeParameter('browserContextText', BROWSER_CONTEXT);
91
+ const responseBody = response.body;
92
+ const sessions = responseBody.sessions || [];
93
+ const activeSessions = sessions.filter((s) => s.status === 'active');
94
+ return [
95
+ {
96
+ json: {
97
+ context: contextText,
98
+ activeSessions: activeSessions.length,
99
+ sessions: activeSessions.map((s) => ({
100
+ id: s.id,
101
+ status: s.status,
102
+ createdAt: s.createdAt,
103
+ lastActivity: s.lastActivity,
104
+ })),
105
+ },
106
+ },
107
+ ];
108
+ },
109
+ ],
110
+ },
111
+ };
112
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/browserContext/index.ts"],"names":[],"mappings":";;;AAOA,sCAA+C;AAElC,QAAA,IAAI,GAAG,gBAAgB,CAAC;AACxB,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAChC,QAAA,aAAa,GAAG,gBAAgB,CAAC;AACjC,QAAA,YAAY,GAAG,SAAS,CAAC;AAEtC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wHA+CgG,CAAC;AAEzH,SAAS,qBAAqB;IAC7B,OAAO;QACN,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,oBAAoB;QAC1B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE;YACZ,IAAI,EAAE,EAAE;SACR;QACD,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,eAAe;QACxB,WAAW,EACV,qNAAqN;QACtN,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAY,CAAC;gBACxB,SAAS,EAAE,CAAC,qBAAa,CAAC;aAC1B;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,8BAA8B;IACtC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,2BAAkB,EACjD,YAAI,EACJ,mBAAW,EACX,8BAA8B,EAAE,CAChC,CAAC;AAsCO,0BAAO;AAAE,gCAAU;AApC5B,OAAO,CAAC,OAAO,GAAG;IACjB,OAAO,EAAE;QACR,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,WAAW;KAChB;IACD,MAAM,EAAE;QACP,WAAW,EAAE;YACZ,KAAK,WAEJ,KAA2B,EAC3B,QAA8B;gBAE9B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,eAAe,CAAW,CAAC;gBAC3F,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAmB,CAAC;gBAClD,MAAM,QAAQ,GAAI,YAAY,CAAC,QAA0B,IAAI,EAAE,CAAC;gBAChE,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;gBAErE,OAAO;oBACN;wBACC,IAAI,EAAE;4BACL,OAAO,EAAE,WAAW;4BACpB,cAAc,EAAE,cAAc,CAAC,MAAM;4BACrC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCACpC,EAAE,EAAE,CAAC,CAAC,EAAE;gCACR,MAAM,EAAE,CAAC,CAAC,MAAM;gCAChB,SAAS,EAAE,CAAC,CAAC,SAAS;gCACtB,YAAY,EAAE,CAAC,CAAC,YAAY;6BAC5B,CAAC,CAAC;yBACH;qBACD;iBACD,CAAC;YACH,CAAC;SACD;KACD;CACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "browserCreate";
3
+ export declare const displayName = "Create browser session";
4
+ export declare const operationName = "browserCreate";
5
+ export declare const resourceName = "Browser";
6
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
7
+ export { options, properties };
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.resourceName = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'browserCreate';
6
+ exports.displayName = 'Create browser session';
7
+ exports.operationName = 'browserCreate';
8
+ exports.resourceName = 'Browser';
9
+ function createTtlProperty() {
10
+ return {
11
+ displayName: 'TTL (Seconds)',
12
+ name: 'ttl',
13
+ type: 'number',
14
+ default: 600,
15
+ typeOptions: {
16
+ minValue: 30,
17
+ maxValue: 3600,
18
+ },
19
+ description: 'Total session lifetime in seconds (30-3600). The browser session will be automatically destroyed after this duration, regardless of activity. Use shorter values for quick tasks and longer values for complex multi-step automations.',
20
+ routing: {
21
+ request: {
22
+ body: {
23
+ ttl: '={{ $value }}',
24
+ },
25
+ },
26
+ },
27
+ displayOptions: {
28
+ show: {
29
+ resource: [exports.resourceName],
30
+ operation: [exports.operationName],
31
+ },
32
+ hide: {
33
+ useCustomBody: [true],
34
+ },
35
+ },
36
+ };
37
+ }
38
+ function createActivityTtlProperty() {
39
+ return {
40
+ displayName: 'Activity TTL (Seconds)',
41
+ name: 'activityTtl',
42
+ type: 'number',
43
+ default: 300,
44
+ typeOptions: {
45
+ minValue: 10,
46
+ maxValue: 3600,
47
+ },
48
+ description: 'Seconds of inactivity before the session is automatically destroyed (10-3600). If no code is executed or no interaction occurs within this window, the session ends early. Set higher for sessions where you may have long pauses between actions.',
49
+ routing: {
50
+ request: {
51
+ body: {
52
+ activityTtl: '={{ $value }}',
53
+ },
54
+ },
55
+ },
56
+ displayOptions: {
57
+ show: {
58
+ resource: [exports.resourceName],
59
+ operation: [exports.operationName],
60
+ },
61
+ hide: {
62
+ useCustomBody: [true],
63
+ },
64
+ },
65
+ };
66
+ }
67
+ function createProfileProperty() {
68
+ return {
69
+ displayName: 'Profile',
70
+ name: 'profile',
71
+ type: 'fixedCollection',
72
+ default: {},
73
+ description: 'Enable persistent storage across browser sessions. Use profiles to maintain cookies, localStorage, and other browser state between sessions. Sessions with the same profile name share storage, allowing you to stay logged in or preserve settings across multiple runs.',
74
+ options: [
75
+ {
76
+ displayName: 'Profile Settings',
77
+ name: 'settings',
78
+ values: [
79
+ {
80
+ displayName: 'Name',
81
+ name: 'name',
82
+ type: 'string',
83
+ required: true,
84
+ default: '',
85
+ description: 'A unique name for the profile (1-128 characters). Sessions with the same name share storage. Use descriptive names like "gmail-account" or "dashboard-session" to organize your profiles.',
86
+ },
87
+ {
88
+ displayName: 'Save Changes',
89
+ name: 'saveChanges',
90
+ type: 'boolean',
91
+ default: true,
92
+ description: 'Whether to save browser state (cookies, localStorage, etc.) back to the profile when the session closes. Set to false to load existing profile data without writing changes. Only one saving session per profile is allowed at a time.',
93
+ },
94
+ ],
95
+ },
96
+ ],
97
+ routing: {
98
+ request: {
99
+ body: {
100
+ profile: '={{$value.settings ? { name: $value.settings.name, saveChanges: $value.settings.saveChanges } : undefined}}',
101
+ },
102
+ },
103
+ },
104
+ displayOptions: {
105
+ show: {
106
+ resource: [exports.resourceName],
107
+ operation: [exports.operationName],
108
+ },
109
+ hide: {
110
+ useCustomBody: [true],
111
+ },
112
+ },
113
+ };
114
+ }
115
+ function createBrowserCreateProperties() {
116
+ return [
117
+ (0, common_1.createOperationNotice)(exports.resourceName, exports.name, 'POST'),
118
+ createTtlProperty(),
119
+ createActivityTtlProperty(),
120
+ createProfileProperty(),
121
+ ];
122
+ }
123
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createBrowserCreateProperties());
124
+ exports.options = options;
125
+ exports.properties = properties;
126
+ options.routing = {
127
+ request: {
128
+ method: 'POST',
129
+ url: '=/browser',
130
+ },
131
+ };
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/browserCreate/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "browserDelete";
3
+ export declare const displayName = "Delete browser session";
4
+ export declare const operationName = "browserDelete";
5
+ export declare const resourceName = "Browser";
6
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
7
+ export { options, properties };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.resourceName = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'browserDelete';
6
+ exports.displayName = 'Delete browser session';
7
+ exports.operationName = 'browserDelete';
8
+ exports.resourceName = 'Browser';
9
+ function createSessionIdProperty() {
10
+ return {
11
+ displayName: 'Session ID',
12
+ name: 'sessionId',
13
+ type: 'string',
14
+ required: true,
15
+ default: '',
16
+ description: 'The unique identifier of the browser session to destroy. This immediately terminates the session and releases all associated resources. Obtain the session ID from the "Create browser session" or "List browser sessions" operations. The session must exist (active or not yet cleaned up).',
17
+ placeholder: '550e8400-e29b-41d4-a716-446655440000',
18
+ routing: {
19
+ request: {
20
+ url: '=/browser/{{$value}}',
21
+ },
22
+ },
23
+ displayOptions: {
24
+ show: {
25
+ resource: [exports.resourceName],
26
+ operation: [exports.operationName],
27
+ },
28
+ },
29
+ };
30
+ }
31
+ function createBrowserDeleteProperties() {
32
+ return [
33
+ (0, common_1.createOperationNotice)(exports.resourceName, exports.name, 'DELETE'),
34
+ createSessionIdProperty(),
35
+ ];
36
+ }
37
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createBrowserDeleteProperties());
38
+ exports.options = options;
39
+ exports.properties = properties;
40
+ options.routing = {
41
+ request: {
42
+ method: 'DELETE',
43
+ },
44
+ };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/browserDelete/index.ts"],"names":[],"mappings":";;;AACA,sCAAsE;AAEzD,QAAA,IAAI,GAAG,eAAe,CAAC;AACvB,QAAA,WAAW,GAAG,wBAAwB,CAAC;AACvC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,YAAY,GAAG,SAAS,CAAC;AAEtC,SAAS,uBAAuB;IAC/B,OAAO;QACN,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,WAAW,EACV,+RAA+R;QAChS,WAAW,EAAE,sCAAsC;QACnD,OAAO,EAAE;YACR,OAAO,EAAE;gBACR,GAAG,EAAE,sBAAsB;aAC3B;SACD;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAY,CAAC;gBACxB,SAAS,EAAE,CAAC,qBAAa,CAAC;aAC1B;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B;IACrC,OAAO;QACN,IAAA,8BAAqB,EAAC,oBAAY,EAAE,YAAI,EAAE,QAAQ,CAAC;QACnD,uBAAuB,EAAE;KACzB,CAAC;AACH,CAAC;AAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,2BAAkB,EACjD,YAAI,EACJ,mBAAW,EACX,6BAA6B,EAAE,CAC/B,CAAC;AAQO,0BAAO;AAAE,gCAAU;AAN5B,OAAO,CAAC,OAAO,GAAG;IACjB,OAAO,EAAE;QACR,MAAM,EAAE,QAAQ;KAChB;CACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "browserExecute";
3
+ export declare const displayName = "Execute browser code";
4
+ export declare const operationName = "browserExecute";
5
+ export declare const resourceName = "Browser";
6
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
7
+ export { options, properties };
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.resourceName = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'browserExecute';
6
+ exports.displayName = 'Execute browser code';
7
+ exports.operationName = 'browserExecute';
8
+ exports.resourceName = 'Browser';
9
+ function createSessionIdProperty() {
10
+ return {
11
+ displayName: 'Session ID',
12
+ name: 'sessionId',
13
+ type: 'string',
14
+ required: true,
15
+ default: '',
16
+ description: 'The unique identifier of the browser session to execute code in. Obtain this from the "Create browser session" operation. The session must be active (not expired or destroyed).',
17
+ placeholder: '550e8400-e29b-41d4-a716-446655440000',
18
+ routing: {
19
+ request: {
20
+ url: '=/browser/{{$value}}/execute',
21
+ },
22
+ },
23
+ displayOptions: {
24
+ show: {
25
+ resource: [exports.resourceName],
26
+ operation: [exports.operationName],
27
+ },
28
+ },
29
+ };
30
+ }
31
+ function createCodeProperty() {
32
+ return {
33
+ displayName: 'Code',
34
+ name: 'code',
35
+ type: 'string',
36
+ typeOptions: {
37
+ rows: 6,
38
+ },
39
+ required: true,
40
+ default: '',
41
+ description: 'The code to execute in the sandboxed browser environment (1-100,000 characters). A Playwright "page" object is pre-configured and available. Use it to navigate, click, type, extract data, or automate any browser interaction. Example (Python): await page.goto("https://example.com")\\ntitle = await page.title()\\nprint(title). Example (Node): await page.goto("https://example.com"); const title = await page.title(); console.log(title);',
42
+ placeholder: 'await page.goto("https://example.com")\ntitle = await page.title()\nprint(title)',
43
+ routing: {
44
+ request: {
45
+ body: {
46
+ code: '={{ $value }}',
47
+ },
48
+ },
49
+ },
50
+ displayOptions: {
51
+ show: {
52
+ resource: [exports.resourceName],
53
+ operation: [exports.operationName],
54
+ },
55
+ hide: {
56
+ useCustomBody: [true],
57
+ },
58
+ },
59
+ };
60
+ }
61
+ function createLanguageProperty() {
62
+ return {
63
+ displayName: 'Language',
64
+ name: 'language',
65
+ type: 'options',
66
+ default: 'node',
67
+ description: 'The programming language of the code to execute. "Node" runs JavaScript with Node.js. "Python" runs Python with Playwright. "Bash" runs shell commands via the agent-browser CLI for system-level operations.',
68
+ options: [
69
+ {
70
+ name: 'Node (JavaScript)',
71
+ value: 'node',
72
+ description: 'Execute JavaScript code with Node.js and Playwright',
73
+ },
74
+ {
75
+ name: 'Python',
76
+ value: 'python',
77
+ description: 'Execute Python code with Playwright',
78
+ },
79
+ {
80
+ name: 'Bash',
81
+ value: 'bash',
82
+ description: 'Execute shell commands via the agent-browser CLI',
83
+ },
84
+ ],
85
+ routing: {
86
+ request: {
87
+ body: {
88
+ language: '={{ $value }}',
89
+ },
90
+ },
91
+ },
92
+ displayOptions: {
93
+ show: {
94
+ resource: [exports.resourceName],
95
+ operation: [exports.operationName],
96
+ },
97
+ hide: {
98
+ useCustomBody: [true],
99
+ },
100
+ },
101
+ };
102
+ }
103
+ function createTimeoutProperty() {
104
+ return {
105
+ displayName: 'Timeout (Seconds)',
106
+ name: 'timeout',
107
+ type: 'number',
108
+ default: 30,
109
+ typeOptions: {
110
+ minValue: 1,
111
+ maxValue: 300,
112
+ },
113
+ description: 'Maximum execution time in seconds (1-300). If the code takes longer than this, the process is killed and the response will have killed=true. Increase for long-running automations like page loads with heavy JavaScript or multi-step form submissions.',
114
+ routing: {
115
+ request: {
116
+ body: {
117
+ timeout: '={{ $value }}',
118
+ },
119
+ },
120
+ },
121
+ displayOptions: {
122
+ show: {
123
+ resource: [exports.resourceName],
124
+ operation: [exports.operationName],
125
+ },
126
+ hide: {
127
+ useCustomBody: [true],
128
+ },
129
+ },
130
+ };
131
+ }
132
+ function createBrowserExecuteProperties() {
133
+ return [
134
+ (0, common_1.createOperationNotice)(exports.resourceName, exports.name, 'POST'),
135
+ createSessionIdProperty(),
136
+ createCodeProperty(),
137
+ createLanguageProperty(),
138
+ createTimeoutProperty(),
139
+ ];
140
+ }
141
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createBrowserExecuteProperties());
142
+ exports.options = options;
143
+ exports.properties = properties;
144
+ options.routing = {
145
+ request: {
146
+ method: 'POST',
147
+ },
148
+ };
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/browserExecute/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { INodeProperties } from 'n8n-workflow';
2
+ export declare const name = "browserList";
3
+ export declare const displayName = "List browser sessions";
4
+ export declare const operationName = "browserList";
5
+ export declare const resourceName = "Browser";
6
+ declare const options: import("n8n-workflow").INodePropertyOptions, properties: INodeProperties[];
7
+ export { options, properties };
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = exports.options = exports.resourceName = exports.operationName = exports.displayName = exports.name = void 0;
4
+ const common_1 = require("../common");
5
+ exports.name = 'browserList';
6
+ exports.displayName = 'List browser sessions';
7
+ exports.operationName = 'browserList';
8
+ exports.resourceName = 'Browser';
9
+ function createStatusFilterProperty() {
10
+ return {
11
+ displayName: 'Status Filter',
12
+ name: 'statusFilter',
13
+ type: 'options',
14
+ default: '',
15
+ description: 'Filter sessions by their current status. "Active" shows only running sessions that can still receive commands. "Destroyed" shows sessions that have been terminated or expired. Leave empty to list all sessions regardless of status.',
16
+ options: [
17
+ {
18
+ name: 'All',
19
+ value: '',
20
+ description: 'Show all sessions regardless of status',
21
+ },
22
+ {
23
+ name: 'Active',
24
+ value: 'active',
25
+ description: 'Only show sessions that are currently running and accepting commands',
26
+ },
27
+ {
28
+ name: 'Destroyed',
29
+ value: 'destroyed',
30
+ description: 'Only show sessions that have been terminated or expired',
31
+ },
32
+ ],
33
+ routing: {
34
+ send: {
35
+ preSend: [
36
+ async function (requestOptions) {
37
+ const statusFilter = this.getNodeParameter('statusFilter', '');
38
+ if (statusFilter) {
39
+ requestOptions.qs = requestOptions.qs || {};
40
+ requestOptions.qs.status = statusFilter;
41
+ }
42
+ return requestOptions;
43
+ },
44
+ ],
45
+ },
46
+ },
47
+ displayOptions: {
48
+ show: {
49
+ resource: [exports.resourceName],
50
+ operation: [exports.operationName],
51
+ },
52
+ },
53
+ };
54
+ }
55
+ function createBrowserListProperties() {
56
+ return [
57
+ (0, common_1.createOperationNotice)(exports.resourceName, exports.name, 'GET'),
58
+ createStatusFilterProperty(),
59
+ ];
60
+ }
61
+ const { options, properties } = (0, common_1.buildApiProperties)(exports.name, exports.displayName, createBrowserListProperties());
62
+ exports.options = options;
63
+ exports.properties = properties;
64
+ options.routing = {
65
+ request: {
66
+ method: 'GET',
67
+ url: '=/browser',
68
+ },
69
+ };
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Firecrawl/api/browserList/index.ts"],"names":[],"mappings":";;;AAMA,sCAAsE;AAEzD,QAAA,IAAI,GAAG,aAAa,CAAC;AACrB,QAAA,WAAW,GAAG,uBAAuB,CAAC;AACtC,QAAA,aAAa,GAAG,aAAa,CAAC;AAC9B,QAAA,YAAY,GAAG,SAAS,CAAC;AAEtC,SAAS,0BAA0B;IAClC,OAAO;QACN,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,EAAE;QACX,WAAW,EACV,wOAAwO;QACzO,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,wCAAwC;aACrD;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,WAAW,EAAE,sEAAsE;aACnF;YACD;gBACC,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;gBAClB,WAAW,EAAE,yDAAyD;aACtE;SACD;QACD,OAAO,EAAE;YACR,IAAI,EAAE;gBACL,OAAO,EAAE;oBACR,KAAK,WAEJ,cAAmC;wBAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,EAAE,CAAW,CAAC;wBACzE,IAAI,YAAY,EAAE;4BACjB,cAAc,CAAC,EAAE,GAAG,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;4BAC3C,cAAc,CAAC,EAAkB,CAAC,MAAM,GAAG,YAAY,CAAC;yBACzD;wBACD,OAAO,cAAc,CAAC;oBACvB,CAAC;iBACD;aACD;SACD;QACD,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,oBAAY,CAAC;gBACxB,SAAS,EAAE,CAAC,qBAAa,CAAC;aAC1B;SACD;KACD,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B;IACnC,OAAO;QACN,IAAA,8BAAqB,EAAC,oBAAY,EAAE,YAAI,EAAE,KAAK,CAAC;QAChD,0BAA0B,EAAE;KAC5B,CAAC;AACH,CAAC;AAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAA,2BAAkB,EACjD,YAAI,EACJ,mBAAW,EACX,2BAA2B,EAAE,CAC7B,CAAC;AASO,0BAAO;AAAE,gCAAU;AAP5B,OAAO,CAAC,OAAO,GAAG;IACjB,OAAO,EAAE;QACR,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,WAAW;KAChB;CACD,CAAC"}
@@ -74,6 +74,23 @@ export declare const apiMethods: {
74
74
  execute(this: any): any;
75
75
  };
76
76
  };
77
+ Browser: {
78
+ browserContext: {
79
+ execute(this: any): any;
80
+ };
81
+ browserCreate: {
82
+ execute(this: any): any;
83
+ };
84
+ browserExecute: {
85
+ execute(this: any): any;
86
+ };
87
+ browserList: {
88
+ execute(this: any): any;
89
+ };
90
+ browserDelete: {
91
+ execute(this: any): any;
92
+ };
93
+ };
77
94
  Extract: {
78
95
  extract: {
79
96
  execute(this: any): any;