From 3d7fdeba0218394ace19bc9a3c260c4b71339222 Mon Sep 17 00:00:00 2001 From: czlonkowski Date: Sun, 8 Jun 2025 11:07:51 +0000 Subject: [PATCH] feat: Complete overhaul to enhanced documentation-only MCP server MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removed all workflow execution capabilities per user requirements - Implemented enhanced documentation extraction with operations and API mappings - Fixed credential code extraction for all nodes - Fixed package info extraction (name and version) - Enhanced operations parser to handle n8n markdown format - Fixed documentation search to prioritize app nodes over trigger nodes - Comprehensive test coverage for Slack node extraction - All node information now includes: - Complete operations list (42 for Slack) - API method mappings with documentation URLs - Source code and credential definitions - Package metadata - Related resources and templates ๐Ÿค– Generated with Claude Code Co-Authored-By: Claude --- README-ENHANCED.md | 155 + README-v2.md | 285 - data/demo-enhanced.db | Bin 0 -> 102400 bytes data/test-enhanced-docs.db | Bin 0 -> 61440 bytes data/test-enhanced.db | Bin 0 -> 102400 bytes data/test-nodes-v2.db | Bin 0 -> 5730304 bytes data/test-slack-fix.db | Bin 0 -> 69632 bytes data/test-slack.db | Bin 0 -> 131072 bytes docs/ENHANCED_DOCUMENTATION_PARSER.md | 133 + docs/SLACK_DOCUMENTATION_FIX.md | 81 + examples/enhanced-documentation-demo.js | 107 + package.json | 7 +- src/db/schema-v2.sql | 99 - src/db/schema.sql | 112 +- src/index-http.ts | 101 - src/index-v2.ts | 67 - src/mcp/http-server.ts | 592 -- src/mcp/remote-server.ts | 608 -- src/mcp/server-v2.ts | 435 - src/mcp/server.ts | 149 +- src/mcp/tools-v2.ts | 144 - src/mcp/tools.ts | 46 +- src/scripts/rebuild-database-v2.ts | 67 - src/scripts/rebuild-database.ts | 134 +- src/services/node-documentation-service.ts | 171 +- src/services/node-storage-service.ts | 274 - src/services/sqlite-storage-service.ts | 410 - src/utils/auth-middleware.ts | 49 - src/utils/documentation-fetcher.ts | 243 +- src/utils/enhanced-documentation-fetcher.ts | 621 ++ src/utils/example-generator.ts | 337 +- src/utils/node-source-extractor.ts | 150 +- tests/debug-slack-doc.js | 51 + tests/demo-enhanced-documentation.js | 112 + .../extracted-nodes-db/extraction-report.json | 7276 +---------------- tests/test-complete-fix.js | 94 + tests/test-debug-enhanced.js | 38 + tests/test-docs-fix.js | 57 + tests/test-enhanced-documentation.js | 141 + tests/test-enhanced-final.js | 156 + tests/test-enhanced-integration.js | 163 + tests/test-package-info.js | 30 + tests/test-parsing-operations.js | 82 + tests/test-results/extracted-nodes.json | 5378 ++++++++++++ tests/test-results/test-summary.json | 760 ++ tests/test-slack-docs-issue.js | 133 + tests/test-slack-fix.js | 119 + tests/test-slack-node-complete.js | 137 + 48 files changed, 9247 insertions(+), 11057 deletions(-) create mode 100644 README-ENHANCED.md delete mode 100644 README-v2.md create mode 100644 data/demo-enhanced.db create mode 100644 data/test-enhanced-docs.db create mode 100644 data/test-enhanced.db create mode 100644 data/test-nodes-v2.db create mode 100644 data/test-slack-fix.db create mode 100644 data/test-slack.db create mode 100644 docs/ENHANCED_DOCUMENTATION_PARSER.md create mode 100644 docs/SLACK_DOCUMENTATION_FIX.md create mode 100644 examples/enhanced-documentation-demo.js delete mode 100644 src/db/schema-v2.sql delete mode 100644 src/index-http.ts delete mode 100644 src/index-v2.ts delete mode 100644 src/mcp/http-server.ts delete mode 100644 src/mcp/remote-server.ts delete mode 100644 src/mcp/server-v2.ts delete mode 100644 src/mcp/tools-v2.ts delete mode 100644 src/scripts/rebuild-database-v2.ts delete mode 100644 src/services/node-storage-service.ts delete mode 100644 src/services/sqlite-storage-service.ts delete mode 100644 src/utils/auth-middleware.ts create mode 100644 src/utils/enhanced-documentation-fetcher.ts create mode 100644 tests/debug-slack-doc.js create mode 100644 tests/demo-enhanced-documentation.js create mode 100755 tests/test-complete-fix.js create mode 100644 tests/test-debug-enhanced.js create mode 100755 tests/test-docs-fix.js create mode 100644 tests/test-enhanced-documentation.js create mode 100644 tests/test-enhanced-final.js create mode 100644 tests/test-enhanced-integration.js create mode 100644 tests/test-package-info.js create mode 100644 tests/test-parsing-operations.js create mode 100644 tests/test-results/extracted-nodes.json create mode 100644 tests/test-results/test-summary.json create mode 100755 tests/test-slack-docs-issue.js create mode 100755 tests/test-slack-fix.js create mode 100644 tests/test-slack-node-complete.js diff --git a/README-ENHANCED.md b/README-ENHANCED.md new file mode 100644 index 0000000..d242e89 --- /dev/null +++ b/README-ENHANCED.md @@ -0,0 +1,155 @@ +# n8n-MCP Enhanced Documentation System + +This is the enhanced n8n-MCP integration that provides comprehensive node documentation, including operations, API methods, examples, and rich metadata through the Model Context Protocol (MCP). + +## Overview + +The enhanced system provides: + +- **Rich Node Documentation**: Complete documentation including markdown content, operations, API methods, and code examples +- **Full-Text Search**: SQLite FTS5-powered search across node names, descriptions, and documentation +- **Comprehensive Node Information**: Source code, credentials, examples, templates, and metadata in a single query +- **Automatic Documentation Extraction**: Fetches and parses documentation from the official n8n-docs repository + +## Available MCP Tools + +### 1. `get_node_info` +Get comprehensive information about a specific n8n node. + +**Parameters:** +- `nodeType` (string, required): The node type identifier (e.g., 'n8n-nodes-base.slack') + +**Returns:** +- Complete node information including: + - Basic metadata (name, displayName, description, category) + - Documentation (markdown, URL, title) + - Operations and API methods + - Code examples and templates + - Related resources and required scopes + - Source code (node and credential) + - Example workflow and parameters + +### 2. `search_nodes` +Search n8n nodes with full-text search and advanced filtering. + +**Parameters:** +- `query` (string, optional): Search query for full-text search +- `category` (string, optional): Filter by node category +- `packageName` (string, optional): Filter by package name +- `hasCredentials` (boolean, optional): Filter nodes that require credentials +- `isTrigger` (boolean, optional): Filter trigger nodes only +- `limit` (number, optional): Maximum results to return (default: 20) + +**Returns:** +- Array of matching nodes with summary information + +### 3. `get_node_statistics` +Get statistics about the node documentation database. + +**Returns:** +- Total nodes, packages, and storage statistics +- Nodes with documentation, examples, and credentials +- Package distribution + +### 4. `rebuild_documentation_database` +Rebuild the node documentation database with the latest information. + +**Parameters:** +- `packageFilter` (string, optional): Only rebuild nodes from specific package + +**Returns:** +- Rebuild statistics and status + +## Database Schema + +The system uses a SQLite database with the following main table: + +```sql +CREATE TABLE nodes ( + node_type TEXT UNIQUE NOT NULL, + name TEXT NOT NULL, + display_name TEXT, + description TEXT, + category TEXT, + source_code TEXT NOT NULL, + documentation_markdown TEXT, + operations TEXT, -- JSON array of OperationInfo + api_methods TEXT, -- JSON array of ApiMethodMapping + documentation_examples TEXT, -- JSON array of CodeExample + templates TEXT, -- JSON array of TemplateInfo + related_resources TEXT, -- JSON array of RelatedResource + -- ... additional fields +); +``` + +## Building the Documentation Database + +To build or rebuild the documentation database: + +```bash +# Using npm script +npm run docs:rebuild + +# Or directly +npx ts-node src/scripts/rebuild-database.ts +``` + +This will: +1. Clone/update the n8n-docs repository +2. Extract source code for all available nodes +3. Parse and extract enhanced documentation +4. Generate example workflows +5. Store everything in the SQLite database + +## Usage Example + +```typescript +// Get comprehensive information about the Slack node +const slackInfo = await mcpClient.callTool('get_node_info', { + nodeType: 'n8n-nodes-base.slack' +}); + +// Search for all trigger nodes with credentials +const triggers = await mcpClient.callTool('search_nodes', { + isTrigger: true, + hasCredentials: true +}); + +// Get database statistics +const stats = await mcpClient.callTool('get_node_statistics', {}); +``` + +## Architecture + +The enhanced system consists of: + +1. **NodeDocumentationService**: Main service that manages the SQLite database +2. **EnhancedDocumentationFetcher**: Fetches and parses documentation from n8n-docs +3. **ExampleGenerator**: Generates example workflows and parameters +4. **MCP Server**: Exposes the tools through the Model Context Protocol + +## Development + +```bash +# Install dependencies +npm install + +# Build TypeScript +npm run build + +# Run tests +npm test + +# Start MCP server +npm start +``` + +## Environment Variables + +- `NODE_DB_PATH`: Path to the SQLite database (default: `./data/nodes.db`) +- `N8N_API_URL`: n8n instance URL +- `N8N_API_KEY`: n8n API key for workflow operations + +## License + +Licensed under the Sustainable Use License v1.0 \ No newline at end of file diff --git a/README-v2.md b/README-v2.md deleted file mode 100644 index e2ffb75..0000000 --- a/README-v2.md +++ /dev/null @@ -1,285 +0,0 @@ -# n8n Node Documentation MCP Server - -An MCP (Model Context Protocol) server that provides n8n node documentation, source code, and usage examples to AI assistants. - -## Purpose - -This MCP server serves as a knowledge base for AI assistants (like Claude) to understand and work with n8n nodes. It provides: - -- **Complete node source code** - The actual implementation of each n8n node -- **Official documentation** - Markdown documentation from the n8n-docs repository -- **Usage examples** - Sample workflow JSON showing how to use each node -- **Search capabilities** - Full-text search across node names, descriptions, and documentation - -## Features - -- ๐Ÿ” **Full-text search** - Search nodes by name, description, or documentation content -- ๐Ÿ“š **Complete documentation** - Fetches and indexes official n8n documentation -- ๐Ÿ’ป **Source code access** - Provides full source code for each node -- ๐ŸŽฏ **Usage examples** - Generates example workflows for each node type -- ๐Ÿ”„ **Auto-rebuild** - Rebuilds the entire database on startup or on demand -- โšก **Fast SQLite storage** - All data stored locally for instant access - -## Installation - -### Prerequisites - -- Node.js 18+ -- n8n instance (for node extraction) -- Git (for cloning n8n-docs) - -### Setup - -```bash -# Clone the repository -git clone https://github.com/yourusername/n8n-mcp.git -cd n8n-mcp - -# Install dependencies -npm install - -# Build the project -npm run build - -# Rebuild the database with all nodes -npm run db:rebuild -``` - -## Usage with Claude Desktop - -### 1. Configure Claude Desktop - -Add to your Claude Desktop configuration file: - -**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` -**Windows**: `%APPDATA%\Claude\claude_desktop_config.json` -**Linux**: `~/.config/Claude/claude_desktop_config.json` - -```json -{ - "mcpServers": { - "n8n-nodes": { - "command": "node", - "args": ["/absolute/path/to/n8n-mcp/dist/index-v2.js"], - "env": { - "NODE_DB_PATH": "/absolute/path/to/n8n-mcp/data/nodes.db", - "REBUILD_ON_START": "false" - } - } - } -} -``` - -### 2. Available MCP Tools - -Once configured, you can ask Claude to: - -- **List all n8n nodes**: "Show me all available n8n nodes" -- **Get node information**: "Show me the IF node documentation and code" -- **Search for nodes**: "Find all webhook-related nodes" -- **Get examples**: "Show me an example of using the HTTP Request node" - -### MCP Tools Reference - -#### `list_nodes` -Lists all available n8n nodes with basic information. - -``` -Parameters: -- category (optional): Filter by category -- packageName (optional): Filter by package -- isTrigger (optional): Show only trigger nodes -``` - -#### `get_node_info` -Gets complete information about a specific node including source code, documentation, and examples. - -``` -Parameters: -- nodeType (required): The node type (e.g., "n8n-nodes-base.if", "If", "webhook") -``` - -#### `search_nodes` -Searches for nodes by name, description, or documentation content. - -``` -Parameters: -- query (required): Search query -- category (optional): Filter by category -- hasDocumentation (optional): Only show nodes with docs -- limit (optional): Max results (default: 20) -``` - -#### `get_node_example` -Gets example workflow JSON for a specific node. - -``` -Parameters: -- nodeType (required): The node type -``` - -#### `get_node_source_code` -Gets only the source code of a node. - -``` -Parameters: -- nodeType (required): The node type -- includeCredentials (optional): Include credential definitions -``` - -#### `get_node_documentation` -Gets only the documentation for a node. - -``` -Parameters: -- nodeType (required): The node type -- format (optional): "markdown" or "plain" (default: markdown) -``` - -## Database Management - -### Initial Setup - -```bash -# Build and populate the database -npm run db:rebuild -``` - -### Database Structure - -The SQLite database stores: -- Node source code -- Official documentation from n8n-docs -- Generated usage examples -- Node metadata (category, triggers, webhooks, etc.) - -### Rebuild Process - -The rebuild process: -1. Clears the existing database -2. Fetches latest n8n-docs repository -3. Extracts source code from all n8n nodes -4. Fetches documentation for each node -5. Generates usage examples -6. Stores everything in SQLite with full-text search - -## Example Responses - -### IF Node Example - -When asking for the IF node, the server returns: - -```json -{ - "nodeType": "n8n-nodes-base.if", - "name": "If", - "displayName": "If", - "description": "Route items based on comparison operations", - "sourceCode": "// Full TypeScript source code...", - "documentation": "# If Node\n\nThe If node splits a workflow...", - "exampleWorkflow": { - "nodes": [{ - "parameters": { - "conditions": { - "options": { - "caseSensitive": true, - "leftValue": "", - "typeValidation": "strict", - "version": 2 - }, - "conditions": [{ - "id": "871274c8-dabf-465a-a6cf-655a1786aa55", - "leftValue": "={{ $json }}", - "rightValue": "", - "operator": { - "type": "object", - "operation": "notEmpty", - "singleValue": true - } - }], - "combinator": "and" - }, - "options": {} - }, - "type": "n8n-nodes-base.if", - "typeVersion": 2.2, - "position": [220, 120], - "id": "64b5d49f-ac2e-4456-bfa9-2d6eb9c7a624", - "name": "If" - }], - "connections": { - "If": { - "main": [[], []] - } - } - } -} -``` - -## Development - -### Running in Development Mode - -```bash -# Start with auto-reload -npm run dev - -# Run tests -npm test - -# Type checking -npm run typecheck -``` - -### Environment Variables - -```env -# Database location -NODE_DB_PATH=/path/to/nodes.db - -# Rebuild database on server start -REBUILD_ON_START=true - -# Logging -LOG_LEVEL=debug - -# Documentation repository location (optional) -DOCS_REPO_PATH=/path/to/n8n-docs -``` - -## Architecture - -``` -n8n-mcp/ -โ”œโ”€โ”€ src/ -โ”‚ โ”œโ”€โ”€ mcp/ -โ”‚ โ”‚ โ”œโ”€โ”€ server-v2.ts # MCP server implementation -โ”‚ โ”‚ โ””โ”€โ”€ tools-v2.ts # MCP tool definitions -โ”‚ โ”œโ”€โ”€ services/ -โ”‚ โ”‚ โ””โ”€โ”€ node-documentation-service.ts # Database service -โ”‚ โ”œโ”€โ”€ utils/ -โ”‚ โ”‚ โ”œโ”€โ”€ documentation-fetcher.ts # n8n-docs fetcher -โ”‚ โ”‚ โ”œโ”€โ”€ example-generator.ts # Example generator -โ”‚ โ”‚ โ””โ”€โ”€ node-source-extractor.ts # Source extractor -โ”‚ โ””โ”€โ”€ scripts/ -โ”‚ โ””โ”€โ”€ rebuild-database-v2.ts # Database rebuild -โ””โ”€โ”€ data/ - โ””โ”€โ”€ nodes.db # SQLite database -``` - -## Troubleshooting - -### Database not found -```bash -npm run db:rebuild -``` - -### No documentation for some nodes -Some nodes may not have documentation in the n8n-docs repository. The server will still provide source code and generated examples. - -### Rebuild takes too long -The initial rebuild processes 500+ nodes and fetches documentation. Subsequent starts use the cached database unless `REBUILD_ON_START=true`. - -## License - -ISC \ No newline at end of file diff --git a/data/demo-enhanced.db b/data/demo-enhanced.db new file mode 100644 index 0000000000000000000000000000000000000000..8cecb8dbcd3d342d4ddb924e444eaccc41226e68 GIT binary patch literal 102400 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 literal 0 HcmV?d00001 diff --git a/data/test-enhanced.db b/data/test-enhanced.db new file mode 100644 index 0000000000000000000000000000000000000000..8cecb8dbcd3d342d4ddb924e444eaccc41226e68 GIT binary patch literal 102400 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 wO6j-J0KOcL$B$SHv%7uJ50Ze3e2)&uz~a471!Q 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%0DoV+4Qi)FGi$+B}&bBC_z7FovP~0q)xiio# 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⋙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 z%0D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 %+6hnBPkuqaVt#6Vdsh@#B!SNPBr~ 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�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 z%0DFL1jCQHN%*Dse&8k!pN=Z#|DobUBcRr8#27Fc(q93WKsW_*BLHk7suOA zMBiFL{D$iO;~krw*#w1y4zt`a-@Oy3Qu71{5n?NJ(wKOHkP#PmOmdkpbyUEkmS=`T z5wZ$4A8dYLrKo!!WF$IOCsk(G@M((t3|2>_6%#rF;IvhU9F2p&Jw}8 zORoNEd*d2^D8)n)SAv37cS5j7l0j41vAC-LgUHwWVB7-T$((#Z zWdR}B`GK2UJw?NtJb`S0=tKSXVJz~FV4=6~QoDYjzw4GIz#AP$e=#pEsEe*|T$X-5 z>WbcS7GHJ+d}e`fEXR4j`%%QBU($PTbaV_&dd!DsEs!1A9_Fvn@;4T%)%d5L9V>L2 z&#qXySUm7NcmZAsHpGpJm(HcG!c@C(w(ho*=*FVQ>F7M<*TVgNr(*!yCX5IPtRMuo zeFJ+4V;pzBwo-I)WuSGBQfzvrafqqSo3YtoDG}`a<|0`XFLGxuer}h9al>=VwRhbNC&+K`%j)c6tuZI z2ZQc|gPscyrrh3lp8mehgx44B^*T!xWP2{JO_c6MAtpd1R8aUFXG#y`D%jUE($y}w zgjDWL=Q;Ame&{)C2I3_MzPwkpAZgF^vGt|U#Rg;B5v@q8? z$h234HT=LCeUI}dDf0+Ftv23!%Aen};8@u1&Mi{q%1QqKx3hjuXFU4NOCf4Ttejki z?P~94S9>?RY>nv@quIG2+4TeRRa|GYcG;-eb=j!l5jm4xZPe_tQL`6MTQvzjQG{ya z-lNa~Z5-SUEDn|2PVG;!+*#71i{I~L=NmaW!@XNWb(e|Ko zAYTyW_5~4huW;qN(^bfKwYR7B%Rjt`63Pp`^fkK?JTkRBs%dxU3mabcNA{B!`lUoS zA^*BlR>BLNq>qC8RJi}Vjax_Zok7Tq948;fiJD>M-k@u;LxeX5+8fZH9?_@S+~Y7m z&xg6e{PvE13R6Z7JrC)QLWDQYNy)qNc_U15`bPMjn@_HZR;o`w2<5+8 zw+cxc$Uqhpi@?&kSQLv!;T^16w17}xzQ{F<4mrj2Tu+Z{&_z$T;&{>Ro+W*4N31Tm zj4L`2`n%-A?ZSdActIG2X=CPt=dwS!I*5s*Jsf1+D{|*s`Mf{KHSNA!&kquvm*{tA ztSH;(S-$XCwB&Ci+LHmzX-&eT4ds$7d=#it~}VJUdzcKL(r(}etV z*x%3$Kw;tIHLKNdW&GH|Cbm~KJ2W%mi-6~P%C5Gm7#lrPNIBwY0h>?Rh6Zqj8iMk> z-Rgm`?E5itG0n?e2e{$z^+6@3Lpri=&?G8u7QI4MvvM%f+Fr+g<0xUVh{%-38- zpIrVZ+n76ZWXSq)J^6v1yKs)5^PBv<1&ca93qp)H#HX-0V=g#5Vl&W1o%NP5>0UNe zSobJ-b&D27?-wK$>5~Hzo0! z)KvVAlt~JjAY_FXZ9-#yQ6O|G&k=UHco8zO(s}8c-D>C*b^*g@zMD zB@5U$R;#fbe!OY7GjvDbDjuP{BM^SDD<2N3i{7=X1=;FE9z7{chz<%1<;Nfw+aA02 zE|r8=i@e~uEWL91)B$RitFM(nD|X47CtwbQwL^abwx+K+oDR30p!{>#Aa7Vzg z+g#fD)9$yrnY9)g6JtrgX15_dsbURLyY@P_wq<~RjjM_NEvQ}6Obhys6Hd_-3~`Yd zp-_07S7EqH!UAf@6hkz4{Ww>>1Gc|E=gPX`23 z2oFFs6|F_6eh z{Q+yM@vbQbZ@p}Uv zPj{!U_bXppho{YZ^wKSF+y@@yIS%RbI4p7xGF&v*W#0k0?M4nhZT^Pn&2(Zi>L zhddoa5R>%t-*oto1m@b?p7ghMcs(oKzLdAm7YfZB_IQq8=?Gl$cLbuL!1q_%I(iTJ zyk5W0>-TgXMuYxtZ(F;sYp5sSYdgrs`>y)B+q^CB|LwB>ceG7vx24nUmUf=#I#2fY zm0W2tr3K*Fzja_4HWYjZlpd0tpVaxaXdZd_pm2cpBzPuj+qS^r9=J%jTyV4ib6aDJ zi{%aHRWcU3r&u+2DZ{mp#Rg2YS<{{SH}_F7HYm+&|`?AZD9j@{P^ltZ`BET<53)^Bk z5C_6EZ~j0G{lKfIqN;kQI~{fpn5^rnSl^|quwygFr{Wgdua5|WJYv_f@Vfy=!8_o+VFY;zath0E z%mbek+kIT4O@hm_&(F8@+3ZaDL+iHoj+o=c6}uNkS15Ij6%_@GPi&ep1#s+tyBeis z;;lJc1sEkuHrt&U-j?mz8a)yrA44iC9CDA3-#uuD$pQe-6@HNm`}S83eM>1^d2dG3 zw&0nk22hMO_qe_;Z~Hj}&&bBa7AYo<1tL^57f~>&@ zztXq!Ea<=v7zQLEL9k#0b;QCyhi%q3;6CWbwU`60T6irdjh!arM=%&$w+wIEc6jUw z%SF+TcfC}n5x|`n7FtPFBz{C%Nf?URc?lc+1<& zfKW!x^$14GVJzy&L&+Z)-qxK2d7VQtss*kCl5sg z`-d>^IS#KdV?YKUF1RgHa(vl8R@e{;cj!=`ZX+q|JWYs;&OvzPapjUZGbSR#KN5Be z901VLWvJ#dLS$)T=Hq+KU`&c9k=Rb{BMDs?(@PH9s{ZIORShKodIMG%GsS0uI>%2b@ zaGsv%|XDl6Tq7B~bR@poIb(7)WYEO*ge6XfgV?9 zyJw)^6C3pD;p1EFc*SA29Xp+_V2ATy=gcFQ{iMr20(T(#Ps_mlOjY$G==L!zbMS1n zPEFybw6A3&R_AJNeVv|&GCj{znD}Rylf3ZQ=3INTxSWLk_nUJ6@WdS4zJT*Ibs(I6 zn%X`w?9+65lwSU%R|Ev{H+f1(WafGD$ zb_}Gu#Hb?LQ1rQ8o1F|%W`iCKhPs7oVJdCA+u~MoJ?{I3P3UPSq#6#w_A2CM%w9Oe z!bophhP9so1Xfv`{lzVZJGYujBGP~yz`)Xu4TBGT_QNt30Dy^wLjmVg&<>P}oBD%t ziSi`yVUUiKmO)%k#!3UL5b5JA=?*ycpKK6qlbQU>ELMfb@M-}_E}xxg(e=kJ*0NfE zTGpYI)8^vfl#uAlFM|iC$JuK?lyr_b^UgO`@YwXL)I0tAauM}9nUr|lF}u~+ClyY@ z^=DK6E?@$Ng8H(9{DbTwBkV{_g5Oa}vDveWNy7=D&u(2;tJ%kK4$ux*A3WOM(PhnQ zb=rC2ivF#@4h5R>$o+V--zNG{Hja%m`mB6EZg<6kvVedP5_*iQzH;%Rg9pa#h1~%W zo6JCW6%ypi1Nf`%R0T|;SvxBo0V7%5!*z#DIb z=q}2qUlze{hP=4U8S7TNij+jusub1>8{S|z@`Cyiv{&@GKte5@btLDEY ztNBxSh71g7?b-<+g21}^oI#jF0zF#5@6_BVd9(YxL+f;CUWc>O+uy-;zN7c-WAz=T z>O0Q zjys%AXAm(n_;5Kj)nIJWq65;-!GPB8@VH$kyMx-H;gjvo;GpYRo96Hj1pAzBPxn!` z3&Cu?&f~q^PR~KV3jsH6TA&-ev^Jt{sAutJhvf?zI2ICr z(b`Vc-uA&s21_XpQ@9A;gb9zwABs2OMW-fzafusr{X}s~gwYOIz?6jXEfFfZo_iDn zzdKSGJpNkmi!6qQ#Ljt};RX74PxNO$jh+qpM_F7pd!nPc$*zgP@FpKzryXkc+XsP! zXT?KzKK1hLHpuB)OK{Z%w3EHv#ZCAiK{_TUD*OTkDfl%3cJGMR*sY85%q=@}`hjU~ zcHFH?ps>66mL%;K-%_`J&UnPx<1XBmN8(Q8E+%B5h3VkPV6dyx?&%4(dk;F?ZCzJ= z{thpUuI1!!E4xSpH_h^o9x(|lhJVEba zL^Zd0{J{>d+kf-AucHlH{vce1++AHBzo)(1I~9b{BiP>E=WFwIfVdOgUT^17zjtn= z!+kK=(-~?zHQL+m^B(CA!{Ps$KhSpQ_)`!&Gz8wxo=`a4<@X*r=Isi){p~*N``Zv- z0AGXC?a?-0zt8I%Isg1ddskOS;0z2#U9h93@%Ha!|L^$E2OR&|a-_ch|G(?I|Lwc~ z*GPNtA6_3gpmiUOH9JP5Acn>sOK7}FVt@jjsay!jmm14)gxwdo5j@*{24UP*OHK-G zSRoInHX$jjW(u6pqX#<^j7Vk)NL-e6DX<>5yTxN3+O@n?9=H0D+Xh>3!>A)SUm4M@ z^5e9{&QP0z!)lk{$xXRC#VE*v19L0Y7PmN=0|gNUd}OoQT`+8HGFVHB9yOw%#84CtQ&$H3K`O9DS1)6%XkUvf$7vG;12YPf0mRA!^cX-F^K>m zctOccaN%WorpS)~%;h*OP_Dn_`Ycy4qkd*0C>@B4YUJE zOx}6zycpD_$`i3^7aWG68Gh6VY7lx8J7@&TH8hA7?58-koeINnbx?x^X9&=gywJ}6 zuPsV}3ouCIF4*$*aM@y{>K=t6Uar15sSGCqMM9Y!rzK5y=%GuX|7R`OoMCU98=Pb}2soT06J_!m@Kw+-5 zos&8%ajY8BLBycJlUc-IX<^0%L08J?#{{vc{K(?oG^Ix=bg(24N*lVPB*Lkhy;kc> zKp{d+WR9z_RJ(y;#wsXv+2J{T7OeUBxa( z-EHr+z{13lMe%bqXUNqU3E`Dog1ImoxoSFOwY~w3gOF?(R~rtMk}|jKoHA(Ph{gW% z+S*FNQQjSucWc3(fOFbDGVDPRu-}6v%)r10p@JV(+Ppr0&>O%4+1}4-}e?n+y1)%Mi4%svqfcQF4a|Jj9ZquWQt`1YbW@Vbo~LKK~`R<&3&=PEP0# z3**zC&YSumVtr-Pd6-)?2@N@FxKm&^4ik!@bb0C0aF*bja*Fvljkp8DPziYwW-$p? z?g*;v7y#wt3ik@z%bMDNQmWJ8Q(!7Pi?d?VqAQfXdBm?roOWQQ=yd4aj);Ts6b@VM zZ?ef(YP0vuM*Rpn64zhf-@3@X%x@NM{I;FYQP?Cnn5cXYO)sOmEgqz!Kr}C0Yk?1x zD;zGIgg)5@B|WlzEBCrdpB1A->zk;+-cqU*mmx7b7R83U!d;#y=hyl86?b`}-Os7n zrs8|sJZ|hp833wmnGu$SA4A4jYHgJDJLjeg0-VGCHBh> z3&^?AbtZ^i&Xq;V!(avK6D2w<$MJDU59&RKPqn`d>V1VlaeF`^j0!w}E*~wv5c#`Q zO)7I3+WU-#Q1ZDRa5~1m4Z)bWrM%mLR^wGlJF$* z*f2RKh>(=?5c&?a8@bP}h)Dm@0v#QSo-uo0ypCJ})NhdD-`-@4+w1zG-X)~bt8eh_ z5iESn+%1D%9O@8D90~H{thk5Zst}O)P7yMKSE^xiawy*c>gc& ze0CZFBFe!^e^Yq&gp6~#uY2Rg*+pzav9A}^$6PtW4_4vn%F%wSA5yMK zgBUKTb=dN>J}OEYzV)}$T+aX;?iXIe35~7@1n(RP`W7diT%D6EPC?n6Vg)mmvu{O% z-(LJN7!u`oSU-833Wle8P^|VsAOYFDj*(u+BzWjzA^m8g;F7KD7}I!Mn$p8f>`+P^AZFSp5viac5Z<%iI}a zSlyOqY&t4enw@K}Fr*$k2XA)fM8MG=Jeja!f)2bXOx_smKGf!I>v`-z;5(&z)PsnR z7P{Q_Om;bihHiw|u6&4#{;_RgVj=1vil=pPlq?qs5fb&YtlIzQVbRbhI2k!q zAI~}98$y2~4(yxuS%ft~p>OCJy0FZV%8;E1$_+HP#2H4jEL>CGsNf-+(s0|9hTFEn z;jl$m7_M^^HAKB_Q|fJ-sJCs(Jq(YyqqiybwoTOAw&H1v?d`I934+Dn!45$jqFnKP zCxrAZ@q>&Ebomg4=j(ZLnQszTSP8znF<^t#tSKoU2oW4-pd-YN%=RfE^DNDg! zCYu_+<7~U!d+X3q_lvJP`i|>je-)dySaEL?aT209&h|jK(-(s=!;4M6FYG_m+3!C$=K7t~1nxC?U*n2{gxaw-pv8VyyZ7_NMuWTsW{sgfb2S2ya^9+y&Cud>QrNK61z)rxX{ zm2>4**5P$!y&IWwEmiq>F4MSb8GkCx?Ct@ne3_c&s#yZKdtOwQHm15Nek0SkaAjiR z$_C1*Y%A{?X>H4p@9tflxn82Hhp=L&n~{|XGjM69*q&3#acVMctAdRP;WKD-Q^5OD z5`8hsX`UZl$&Ma>Z+7OxsA~L0P3~Y5xfNt91xdB4MsuQ-at6)HbxR~GC52*JsZ$>D z)@ii_S7Yj9_YG1t;Avd;52aMH;bw$d#tBHZ8UI_!uB6c9mlD^IBCbY6UqMFdg`^|n z)y)Y>6*MSG{fJ`Ix%`~GXZK7uX;;lORbB|nsG5a0+j8S-W%RX9Qe_Am(@6zQnJ_gj z{Cg8s1vmVY4tg+-4Le_*pS`s9Gl@H#2G_BoXPKtFJYFUPRchY~Zd}8LQCk$lH76dZ z>Tpm~Q4Njjmx|OhAhcYQV_tOz`Q}fbt|jNqjdyiK8m6{40aTgoO)0guzDdn>lHtRp zGBdv++0J%l!Z)k&TXh-dvy@k^8eDCzp_93h=#Oi;)#0HtjizzAF*HfzPvaJi0@7@G z>?)xuH z0j3Qeo9CCpId8U9CYpb}RMX57v+~S_7KWf=LxPT>iv1*U%es&nfeFsDy#g z#rYe%YN+$D>TP5V43(yLY=8$w$l<=E#bgy(S)p; zZ0irp9>CSmWP_6R!LKI9`=yP)-iD_CqZg?%%1{T|ACQ?zcZU^GiW$GH1M=#u`Y zas5(}ng;ew*KhXzJdREV0!^(-qZzW>JfNhbM&-#(>!^d_GO?!~nAOy9!U+$tA&WRW zp)r!mWtymR*(^q+WV=C=4YlO0EpNi6(wS9wSs*h_HV-~khUP;f4n;WlR|8Asir zY~76=tJc@N^GSVlUtC^p5#tC_Mmi48BGa3o#wKGFXaU!12-Qjr02()0D$+uu_fkJ1 zZ9+7Ojp)+q@K5JW5Nc1%10s1KWEM^G$=J2 zlP@dq?+b8TgGKd;2a-y_WG-TI@7Capr@ zTI3qFf@BTPkjE_$lA=oCeahA5WiF4y-ZyKTqbcV`riBJ8$MF*&z*cfB7%Y*VR&QSc@8qpe0M`p58vhlxmPkFvV%B zLIuF5wSNk)O!JwKZXoC%DF$w28c9@@mE{Fy75J+IbOT27=8Zjk*xAx<)ue<53)qfik zuo6LEA{u|%xR$W@hbu>RPrKcB6c5S1<)M#Y4YYcjtm!2VHiKRyDn&MszU+!w>P~hu z$&wOz6E({zUBgWrn|*O(Bl(VAwI#*V2$ps6FJ?7(7RmK&CTV%fe)?r-ILiY)>+uot8`1QjW5_+RmA$um6@KW$BlQZCAJpLJ3LD-}M7<9Q zth4IN3~&QtJ`HJ#b(s-YyAfA{y9Rr#$3GJtyIE&7epz<&<;L0@1#flna?$dY8qLr` zc~qaNN*_EQJlVI*ZkJc~Q%W``qdSqJ4D#_W9ED=qfU%M1Raj zSCZ?~(}`?08BeD(iLuz?^kjN$A{L(+n@PqNlT+En$!u(DES}89r;@33Y$7?Gok&kk zWTsN_$(iZI;@J49|0NQMc#gefTAA6=(Km12pmolPXnt)JXOE0tE$69;G)pApF+3nk zkcJ3pC{vk3$5Z9fc$nVKY?9cT(Lh8^}Si zy~O;dyPLpMah1X;O|K;DNYulTht~Na5<0-~$*ha6pTSy)TrW(E{LDl2c#hRH=%2<4S9XCA-)PAm8+f!Awxu6Ad!LaWoV7T>>-SIDRokm9S4@Mvy=r6y3PHWXoHJ+O_X1mqToD{&k;8Ae7K?H_ z8uEDVt%_PWL^a9Q4N*dxj zmydct>7y8BVC$FA9Mi;uH{m2(&wUO6D=d^dRpCEID)b&OVaSh#%B}+Zd937B2k$nIClWe!N?<#6O0@Tp z&^3gNBn64@D(?Vs24X#`nX-2QJ@V?cbXl@f)oX0e=E`p~ie+9sy7w$O!b`Dgk8#D2@P=xT$6#W$p+GC?9E-sw@sqx8pHaRtxn3zmwW|HHR6Jwdl z?AX+Ja&l&3Dn5~oFD53l+3aE_n+|{Y@czTXvuZrWqp`8r*hC~Y8Hr7YVl%Vx>DdIZ zvg;Oh|Mvf~v3XgA%|nd(X$vXXhr=syYhB$8k6`&uFT)xHF1L| znL0#W<)7()DaQlvUA$&I%vNf~#k^hi@7<&6I!$8RWrAMq{%1B*mJ4>f=`^j}n$w`# zMyLbzv}`8$HA2?4%6oX zRche#fKpV~QVca|csI*5d&h5*=iViR=$>aln9rBjkO*fsG#opFeI=ztq{=av{>X5N zI7gzJYd0R;gSdh{?(oRotsC_Bd=pd(%~Y9W8&})I08#D3L=-^GU;?2QGd1+HeY%)R_P%4M3&%6-9zsmLxP1O|yR z2n~HY>d#Bg$%P@{;x^bDz~|-n@ZUDCZ*67P%xmnwNT&IrXHlh>fjfUmi_%aLOHxpi zY&{7zQSDBKk1PN1e)BzWKj!3?S2iYKRyKh~jh_|pRlB9i_Ko7wFBE^J`q!*Dv4hf_ zP))wh8_TXSZV&B zN{)?X7E@y|$;8FV1A`6jO)bU}>FKdpY&<&=8=o0ZB@&a9v2=VUm6?D& zXQKcA_+8BZ(wT=Fawf#*`T*>1b3Lb-T=E=^>|>a=G|w*rd^WG6p(m0WY~s{ zj=Z0RP7Si?`R6G(?7a%Xy9XgytI6dE?c*OpIU38wKVV}Owq&H*^0AHB^GDXS>@MT68o3D6 zMoUZCjpm~#w(64az!jWpyO~$U{ih2M=bk<*ISLrR4JQGZXEAOWsGy zgNw$t_Dh@Dd`T1V7qrs4-QB=lBilO%#whX!*xxf#ixV^1)L0~&n3;}@FODT5shK3M z;uG=l=|mzKi~qUy_XHSsY^+~(Z5WJhHFd_xR2=>lwqx* z3XObRf_~tJj!bt(tX%yZ4yCftel^f_H<0+1EG*d%sjO(IZQgtX|E~thW^;3sdim@jsK~DooSHkf{yK-&Wzj zSnA~T%OrfX8VBCjQ7E)*6t0-h=7tNis>X_5QK+T8|2|ooYfV{=0jw?A5|pNfq9I@8 z94~cUcw_0;UPn8y+TNDP1{{(V>*+*ld$$jIk-eB~$)ab_U49e*0Hgb1(`z9Z94bMH zhBDWo8d@}fYHECGRT=ncnApI%RIlmau%}vdw<3r`TW6Yb0o!XG`U~O0TzX4H0oY;5 z+fP)qrfRR4gN+$NMWL2>K}q4>xXDtHmKxlrxMvVRsVgc-u=I1U@W5&=(pqwp{g^QI zh@=^Xm{a3l!iY#<>;2WA@%8W4;R8zRy(cSBGHi+aHKx;2k(TJRQs3UV&B{_OHQUnK z%H2i@+Q$9^pSW69!up4=l*T~r&tjR}NWaWswfPrWA?nBtMhEt5x!hX)0+hi2|G$Q# zqlVoj4AM|js=|vOXQ5#ZltKfdqm|F3h8ZD{gAb(I6iOre5+Q&#Yg|{<#u9-k8@r#? zL8_^H_4l41Xukpckj?-&89>P=#AYATsD$ie>nn)O0h9W9{{(fdBHHjN5G@$G<7SR2T3v8Ap zyo{$B!WQcK|Ji$!7)g>WODuZ!$ZwX&D|=@%{*-hPw%JzIteyF5FDO4APJsGfIDV}`@RpC1NVJ+X`XoHl^4Dz zi>j!ah^VM79v)e4$P9B+mG#U2U;h8{{}6ot>758W8|Np$xlwyGZ4?SD}Bb`W26=dj= zxRxEQ7mhTPM1;(A9;zItD-MDmIS@TnUmR3cCdi0~>sK#uVJZ_lzg*RInVVey{kZvd zRnBej(mlRuP(|64^hl&#&BLU}F@q3Fv7@IiijnA{PIJmvIh(MXrDSD-fZG5{de=(4 z4{Az7CuE(tdZOjGb6T-9!?7M!W$N~=SQ%TI8!bpQ_br$%F^?tFZO?1bhDb zDa94|v9xHo2+qQVgB=-y7_p{NCo9$k)bX;L9}`KnEahpf&n#caPyyZ!VeRwYWtgxQ zpHnJzwkuzYR{bNCc;jqGzAkCUP((Os^CPLP=$_zak;RfFq(XG~kRg2S!Nc>5;guPF zU2Mu5-O4fNk3@+rcSU4(CbPuNUqVNc7CNb%EsurhGfj{Q0rT&1D$s9dumdixO5L9- ziX40ed5PmlDYCE!269wExIXqLhc}s9Mz#h4DjP%*F&H6;sA1s_B;k=UJD8ODB9tsC zJhqyh{i%V#1ra|EY(=0F@q{D~}sU4%ch zlTMQk{c#4)hgi-X`@=AayO|Am4_ zW97?fSwK++c2iBUWC``W8^Jqwx^uHcZ+&(GxK-Y|NZ=`s7KHBrcj!4-G^SxUsd>j~ z5uCXw?xbKs_J)B+8d9zgHf5|?f@dtTA|YpfWU(3fEc>{JzGKlPpXout?>RvVV&3(r zs>t7N;dgvv&~25Vdx)y$xlPgDuZ!TNC?9~)WHXrjn_G45eNfj5TUSMeP1W{VSJE;i zTXzYvhlr9s?p1mB8z+yHG%!?g1}haeWs7t%hH0d=%&6;@kg_r*0G6y$lc!gQpmycd z15*vnZ^4x+l(QB2S`69Wj@Fx;E$IR!ZI$w)qNwQxd9h>(;CMi&0Y|wqXgkncJ9c*aM%_7ckW+XW?T71%XJoo{OVrFf zphW@&6$wZm-_<2ba8m*~;~{RO&&mWfS!LaDw5x|ZuXDmw`q$%{wb?yDGSYK&!&sLn zf$%h2rIzz$S3HW)olbBR5xhrAN0E7Kk-N?>#{5XnR=Bf|XZdp+qhUi8mk5sQ`+4}1I|SUC z$6`tl(zh*gTzU&p0?l>b$(T8Vjsu9pGhma=T2?B(_D@99iFAL6K69u0!%H*WU%bAx zh6|F`>+vQoklNf&Hg<4rR4b|PG`DvfdkM1qCC#12+Ro-W?rqv^?jZT!=KB85Mq|CT zwH-GP{^oqr{b88V;gsqA#@d)L-JhkMiPQaE^xL=+Z+LYOohQxq=sdd(P^_OhWtsmE zoo89)q%t3#`wy4Rk_xgO5LFX);y0FfY_I}W|XDR{4oynzYs1{~mP zFi1T2>CHdKA7;*r_TE*FKXcV9<@iIzNpk$@9FL`U,=&K!8?UlqBA9C%y1n~n8G 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 literal 0 HcmV?d00001 diff --git a/data/test-slack.db b/data/test-slack.db new file mode 100644 index 0000000000000000000000000000000000000000..229b384c85eeada28206beef5f6d188021a1a601 GIT binary patch literal 131072 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 IcJ}}O52~%cod5s; literal 0 HcmV?d00001 diff --git a/docs/ENHANCED_DOCUMENTATION_PARSER.md b/docs/ENHANCED_DOCUMENTATION_PARSER.md new file mode 100644 index 0000000..5bd00e5 --- /dev/null +++ b/docs/ENHANCED_DOCUMENTATION_PARSER.md @@ -0,0 +1,133 @@ +# Enhanced Documentation Parser for n8n-MCP + +## Overview + +We have successfully enhanced the markdown parser in DocumentationFetcher to extract rich, structured content from n8n documentation. This enhancement enables AI agents to have deeper understanding of n8n nodes, their operations, API mappings, and usage patterns. + +## Key Features Implemented + +### 1. Enhanced Documentation Structure + +The `EnhancedDocumentationFetcher` class extracts and structures documentation into: + +```typescript +interface EnhancedNodeDocumentation { + markdown: string; // Raw markdown content + url: string; // Documentation URL + title?: string; // Node title + description?: string; // Node description + operations?: OperationInfo[]; // Structured operations + apiMethods?: ApiMethodMapping[]; // API endpoint mappings + examples?: CodeExample[]; // Code examples + templates?: TemplateInfo[]; // Template references + relatedResources?: RelatedResource[]; // Related docs + requiredScopes?: string[]; // OAuth scopes + metadata?: DocumentationMetadata; // Frontmatter data +} +``` + +### 2. Operations Extraction + +The parser correctly identifies and extracts hierarchical operations: + +- **Resource Level**: e.g., "Channel", "Message", "User" +- **Operation Level**: e.g., "Archive", "Send", "Get" +- **Descriptions**: Detailed operation descriptions + +Example from Slack node: +- Channel.Archive: "a channel" +- Message.Send: "a message" +- User.Get: "information about a user" + +### 3. API Method Mapping + +Extracts mappings between n8n operations and actual API endpoints from markdown tables: + +``` +Channel.Archive โ†’ conversations.archive (https://api.slack.com/methods/conversations.archive) +Message.Send โ†’ chat.postMessage (https://api.slack.com/methods/chat.postMessage) +``` + +### 4. Enhanced Database Schema + +Created a new schema to store the rich documentation: + +- `nodes` table: Extended with documentation fields +- `node_operations`: Stores all operations for each node +- `node_api_methods`: Maps operations to API endpoints +- `node_examples`: Stores code examples +- `node_resources`: Related documentation links +- `node_scopes`: Required OAuth scopes + +### 5. Full-Text Search Enhancement + +The FTS index now includes: +- Documentation title and description +- Operations and their descriptions +- API method names +- Full markdown content + +## Usage Examples + +### Basic Usage + +```javascript +const fetcher = new EnhancedDocumentationFetcher(); +const doc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + +// Access structured data +console.log(`Operations: ${doc.operations.length}`); +console.log(`API Methods: ${doc.apiMethods.length}`); +``` + +### With Database Storage + +```javascript +const storage = new EnhancedSQLiteStorageService(); +const nodeInfo = await extractor.extractNodeSource('n8n-nodes-base.slack'); +const storedNode = await storage.storeNodeWithDocumentation(nodeInfo); + +// Access counts +console.log(`Stored ${storedNode.operationCount} operations`); +console.log(`Stored ${storedNode.apiMethodCount} API methods`); +``` + +## Benefits for AI Agents + +1. **Comprehensive Understanding**: AI agents can now understand not just what a node does, but exactly which operations are available and how they map to API endpoints. + +2. **Better Search**: Enhanced FTS allows searching across operations, descriptions, and documentation content. + +3. **Structured Data**: Operations and API methods are stored as structured data, making it easier for AI to reason about node capabilities. + +4. **Rich Context**: Related resources, examples, and metadata provide additional context for better AI responses. + +## Implementation Files + +- `/src/utils/enhanced-documentation-fetcher.ts`: Main parser implementation +- `/src/services/enhanced-sqlite-storage-service.ts`: Database storage with rich schema +- `/src/db/enhanced-schema.sql`: Enhanced database schema +- `/tests/demo-enhanced-documentation.js`: Working demonstration + +## Future Enhancements + +1. **Example Extraction**: Improve code example extraction from documentation +2. **Parameter Parsing**: Extract operation parameters and their types +3. **Credential Requirements**: Parse specific credential field requirements +4. **Version Tracking**: Track documentation versions and changes +5. **Caching**: Implement smart caching for documentation fetches + +## Testing + +Run the demo to see the enhanced parser in action: + +```bash +npm run build +node tests/demo-enhanced-documentation.js +``` + +This will show: +- Extraction of 40+ operations from Slack node +- API method mappings with URLs +- Resource grouping and organization +- Related documentation links \ No newline at end of file diff --git a/docs/SLACK_DOCUMENTATION_FIX.md b/docs/SLACK_DOCUMENTATION_FIX.md new file mode 100644 index 0000000..cb9cae8 --- /dev/null +++ b/docs/SLACK_DOCUMENTATION_FIX.md @@ -0,0 +1,81 @@ +# Slack Documentation Fix Summary + +## Issues Fixed + +### 1. Documentation Fetcher Was Getting Wrong Files +**Problem**: When searching for Slack node documentation, the fetcher was finding credential documentation instead of node documentation. + +**Root Cause**: +- Documentation files in n8n-docs repository are named with full node type (e.g., `n8n-nodes-base.slack.md`) +- The fetcher was searching for just the node name (e.g., `slack.md`) +- This caused it to find `slack.md` in the credentials folder first + +**Fix Applied**: +- Updated `getNodeDocumentation()` to search for full node type first +- Added logic to skip credential documentation files by checking: + - If file path includes `/credentials/` + - If content has "credentials" in title without "node documentation" +- Fixed search order to prioritize correct documentation + +### 2. Node Source Extractor Case Sensitivity +**Problem**: Slack node source code wasn't found because the directory is capitalized (`Slack/`) but search was case-sensitive. + +**Root Cause**: +- n8n node directories use capitalized names (e.g., `Slack/`, `If/`) +- Extractor was searching with lowercase names from node type + +**Fix Applied**: +- Added case variants to try when searching: + - Original case + - Capitalized first letter + - All lowercase + - All uppercase +- Now properly finds nodes regardless of directory naming convention + +### 3. Missing Information in Database +**Problem**: Node definitions weren't being properly parsed from compiled JavaScript. + +**Fix Applied**: +- Improved `parseNodeDefinition()` to extract individual fields using regex +- Added extraction for: + - displayName + - description + - icon + - category/group + - version + - trigger/webhook detection + +## Test Results + +After applying fixes: +- โœ… Slack node source code is correctly extracted +- โœ… Slack node documentation (not credentials) is fetched +- โœ… Documentation URL points to correct page +- โœ… All information is properly stored in database + +## Files Modified + +1. `/src/utils/documentation-fetcher.ts` + - Fixed path searching logic + - Added credential documentation filtering + - Improved search order + +2. `/src/utils/node-source-extractor.ts` + - Added case-insensitive directory searching + - Improved path detection for different node structures + +3. `/src/services/node-documentation-service.ts` + - Enhanced node definition parsing + - Better extraction of metadata from source code + +## Verification + +Run the test to verify the fix: +```bash +node tests/test-slack-fix.js +``` + +This should show: +- Source code found at correct location +- Documentation is node documentation (not credentials) +- All fields properly extracted and stored \ No newline at end of file diff --git a/examples/enhanced-documentation-demo.js b/examples/enhanced-documentation-demo.js new file mode 100644 index 0000000..808b680 --- /dev/null +++ b/examples/enhanced-documentation-demo.js @@ -0,0 +1,107 @@ +#!/usr/bin/env node + +const { DocumentationFetcher } = require('../dist/utils/documentation-fetcher'); + +async function demonstrateEnhancedDocumentation() { + console.log('๐ŸŽฏ Enhanced Documentation Demo\n'); + + const fetcher = new DocumentationFetcher(); + const nodeType = 'n8n-nodes-base.slack'; + + console.log(`Fetching enhanced documentation for: ${nodeType}\n`); + + try { + const doc = await fetcher.getEnhancedNodeDocumentation(nodeType); + + if (!doc) { + console.log('No documentation found for this node.'); + return; + } + + // Display title and description + console.log('๐Ÿ“„ Basic Information:'); + console.log(`Title: ${doc.title || 'N/A'}`); + console.log(`URL: ${doc.url}`); + console.log(`Description: ${doc.description || 'See documentation for details'}\n`); + + // Display operations + if (doc.operations && doc.operations.length > 0) { + console.log('โš™๏ธ Available Operations:'); + // Group by resource + const resourceMap = new Map(); + doc.operations.forEach(op => { + if (!resourceMap.has(op.resource)) { + resourceMap.set(op.resource, []); + } + resourceMap.get(op.resource).push(op); + }); + + resourceMap.forEach((ops, resource) => { + console.log(`\n ${resource}:`); + ops.forEach(op => { + console.log(` - ${op.operation}: ${op.description}`); + }); + }); + console.log(''); + } + + // Display API methods + if (doc.apiMethods && doc.apiMethods.length > 0) { + console.log('๐Ÿ”Œ API Method Mappings (first 5):'); + doc.apiMethods.slice(0, 5).forEach(method => { + console.log(` ${method.resource}.${method.operation} โ†’ ${method.apiMethod}`); + if (method.apiUrl) { + console.log(` Documentation: ${method.apiUrl}`); + } + }); + console.log(` ... and ${Math.max(0, doc.apiMethods.length - 5)} more\n`); + } + + // Display templates + if (doc.templates && doc.templates.length > 0) { + console.log('๐Ÿ“‹ Available Templates:'); + doc.templates.forEach(template => { + console.log(` - ${template.name}`); + if (template.description) { + console.log(` ${template.description}`); + } + }); + console.log(''); + } + + // Display related resources + if (doc.relatedResources && doc.relatedResources.length > 0) { + console.log('๐Ÿ”— Related Resources:'); + doc.relatedResources.forEach(resource => { + console.log(` - ${resource.title} (${resource.type})`); + console.log(` ${resource.url}`); + }); + console.log(''); + } + + // Display required scopes + if (doc.requiredScopes && doc.requiredScopes.length > 0) { + console.log('๐Ÿ” Required Scopes:'); + doc.requiredScopes.forEach(scope => { + console.log(` - ${scope}`); + }); + console.log(''); + } + + // Display summary + console.log('๐Ÿ“Š Summary:'); + console.log(` - Total operations: ${doc.operations?.length || 0}`); + console.log(` - Total API methods: ${doc.apiMethods?.length || 0}`); + console.log(` - Code examples: ${doc.examples?.length || 0}`); + console.log(` - Templates: ${doc.templates?.length || 0}`); + console.log(` - Related resources: ${doc.relatedResources?.length || 0}`); + + } catch (error) { + console.error('Error:', error.message); + } finally { + await fetcher.cleanup(); + } +} + +// Run demo +demonstrateEnhancedDocumentation().catch(console.error); \ No newline at end of file diff --git a/package.json b/package.json index 081dd1a..a42d6e4 100644 --- a/package.json +++ b/package.json @@ -6,18 +6,13 @@ "scripts": { "build": "tsc", "dev": "nodemon --exec ts-node src/index.ts", - "dev:v2": "nodemon --exec ts-node src/index-v2.ts", - "dev:http": "nodemon --exec ts-node src/index-http.ts", "start": "node dist/index.js", - "start:v2": "node dist/index-v2.js", - "start:http": "node dist/index-http.js", "test": "jest", "lint": "tsc --noEmit", "typecheck": "tsc --noEmit", "db:rebuild": "node dist/scripts/rebuild-database.js", - "db:rebuild:v2": "node dist/scripts/rebuild-database-v2.js", "db:init": "node -e \"new (require('./dist/services/sqlite-storage-service').SQLiteStorageService)(); console.log('Database initialized')\"", - "test:v2": "node tests/test-node-documentation-service.js" + "docs:rebuild": "ts-node src/scripts/rebuild-database.ts" }, "repository": { "type": "git", diff --git a/src/db/schema-v2.sql b/src/db/schema-v2.sql deleted file mode 100644 index 8ebb072..0000000 --- a/src/db/schema-v2.sql +++ /dev/null @@ -1,99 +0,0 @@ --- Main nodes table with documentation and examples -CREATE TABLE IF NOT EXISTS nodes ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - node_type TEXT UNIQUE NOT NULL, -- e.g., "n8n-nodes-base.if" - name TEXT NOT NULL, -- e.g., "If" - display_name TEXT, -- e.g., "If" - description TEXT, -- Brief description from node definition - category TEXT, -- e.g., "Core Nodes", "Flow" - subcategory TEXT, -- More specific categorization - icon TEXT, -- Icon identifier/path - - -- Source code - source_code TEXT NOT NULL, -- Full node source code - credential_code TEXT, -- Credential type definitions - code_hash TEXT NOT NULL, -- Hash for change detection - code_length INTEGER NOT NULL, -- Source code size - - -- Documentation - documentation_markdown TEXT, -- Full markdown documentation from n8n-docs - documentation_url TEXT, -- URL to documentation page - - -- Example usage - example_workflow TEXT, -- JSON example workflow using this node - example_parameters TEXT, -- JSON example of node parameters - properties_schema TEXT, -- JSON schema of node properties - - -- Metadata - package_name TEXT NOT NULL, -- e.g., "n8n-nodes-base" - version TEXT, -- Node version - codex_data TEXT, -- Additional codex/metadata JSON - aliases TEXT, -- JSON array of alternative names - - -- Flags - has_credentials INTEGER DEFAULT 0, - is_trigger INTEGER DEFAULT 0, -- Whether it's a trigger node - is_webhook INTEGER DEFAULT 0, -- Whether it's a webhook node - - -- Timestamps - extracted_at DATETIME DEFAULT CURRENT_TIMESTAMP, - updated_at DATETIME DEFAULT CURRENT_TIMESTAMP -); - --- Indexes for performance -CREATE INDEX IF NOT EXISTS idx_nodes_package_name ON nodes(package_name); -CREATE INDEX IF NOT EXISTS idx_nodes_category ON nodes(category); -CREATE INDEX IF NOT EXISTS idx_nodes_code_hash ON nodes(code_hash); -CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name); -CREATE INDEX IF NOT EXISTS idx_nodes_is_trigger ON nodes(is_trigger); - --- Full Text Search virtual table for comprehensive search -CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5( - node_type, - name, - display_name, - description, - category, - documentation_markdown, - aliases, - content=nodes, - content_rowid=id -); - --- Triggers to keep FTS in sync -CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes -BEGIN - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases); -END; - -CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes -BEGIN - DELETE FROM nodes_fts WHERE rowid = old.id; -END; - -CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes -BEGIN - DELETE FROM nodes_fts WHERE rowid = old.id; - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases); -END; - --- Table for storing node documentation versions -CREATE TABLE IF NOT EXISTS documentation_sources ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - source TEXT NOT NULL, -- 'n8n-docs-repo', 'inline', 'generated' - commit_hash TEXT, -- Git commit hash if from repo - fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP -); - --- Statistics table -CREATE TABLE IF NOT EXISTS extraction_stats ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - total_nodes INTEGER NOT NULL, - nodes_with_docs INTEGER NOT NULL, - nodes_with_examples INTEGER NOT NULL, - total_code_size INTEGER NOT NULL, - total_docs_size INTEGER NOT NULL, - extraction_date DATETIME DEFAULT CURRENT_TIMESTAMP -); \ No newline at end of file diff --git a/src/db/schema.sql b/src/db/schema.sql index 6eca80a..dc21e74 100644 --- a/src/db/schema.sql +++ b/src/db/schema.sql @@ -1,34 +1,75 @@ --- Main nodes table +-- Enhanced n8n Node Documentation Database Schema +-- This schema stores comprehensive node information including source code, +-- documentation, operations, API methods, examples, and metadata + +-- Main nodes table with rich documentation CREATE TABLE IF NOT EXISTS nodes ( id INTEGER PRIMARY KEY AUTOINCREMENT, node_type TEXT UNIQUE NOT NULL, name TEXT NOT NULL, - package_name TEXT NOT NULL, display_name TEXT, description TEXT, - code_hash TEXT NOT NULL, - code_length INTEGER NOT NULL, - source_location TEXT NOT NULL, + category TEXT, + subcategory TEXT, + icon TEXT, + + -- Source code source_code TEXT NOT NULL, credential_code TEXT, - package_info TEXT, -- JSON + code_hash TEXT NOT NULL, + code_length INTEGER NOT NULL, + + -- Documentation + documentation_markdown TEXT, + documentation_url TEXT, + documentation_title TEXT, + + -- Enhanced documentation fields (stored as JSON) + operations TEXT, + api_methods TEXT, + documentation_examples TEXT, + templates TEXT, + related_resources TEXT, + required_scopes TEXT, + + -- Example usage + example_workflow TEXT, + example_parameters TEXT, + properties_schema TEXT, + + -- Metadata + package_name TEXT NOT NULL, + version TEXT, + codex_data TEXT, + aliases TEXT, + + -- Flags has_credentials INTEGER DEFAULT 0, + is_trigger INTEGER DEFAULT 0, + is_webhook INTEGER DEFAULT 0, + + -- Timestamps extracted_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); -- Indexes for performance CREATE INDEX IF NOT EXISTS idx_nodes_package_name ON nodes(package_name); +CREATE INDEX IF NOT EXISTS idx_nodes_category ON nodes(category); CREATE INDEX IF NOT EXISTS idx_nodes_code_hash ON nodes(code_hash); CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name); +CREATE INDEX IF NOT EXISTS idx_nodes_is_trigger ON nodes(is_trigger); +CREATE INDEX IF NOT EXISTS idx_nodes_has_credentials ON nodes(has_credentials); --- Full Text Search virtual table for node search +-- Full Text Search table CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5( node_type, name, display_name, description, - package_name, + category, + documentation_markdown, + aliases, content=nodes, content_rowid=id ); @@ -36,8 +77,8 @@ CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5( -- Triggers to keep FTS in sync CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes BEGIN - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, package_name) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.package_name); + INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases) + VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases); END; CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes @@ -48,16 +89,55 @@ END; CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes BEGIN DELETE FROM nodes_fts WHERE rowid = old.id; - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, package_name) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.package_name); + INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, category, documentation_markdown, aliases) + VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.category, new.documentation_markdown, new.aliases); END; --- Statistics table for metadata +-- Documentation sources tracking +CREATE TABLE IF NOT EXISTS documentation_sources ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + source TEXT NOT NULL, + commit_hash TEXT, + fetched_at DATETIME DEFAULT CURRENT_TIMESTAMP +); + +-- Statistics tracking CREATE TABLE IF NOT EXISTS extraction_stats ( id INTEGER PRIMARY KEY AUTOINCREMENT, total_nodes INTEGER NOT NULL, - total_packages INTEGER NOT NULL, + nodes_with_docs INTEGER NOT NULL, + nodes_with_examples INTEGER NOT NULL, total_code_size INTEGER NOT NULL, - nodes_with_credentials INTEGER NOT NULL, + total_docs_size INTEGER NOT NULL, extraction_date DATETIME DEFAULT CURRENT_TIMESTAMP -); \ No newline at end of file +); + +-- Views for common queries +CREATE VIEW IF NOT EXISTS nodes_summary AS +SELECT + node_type, + name, + display_name, + description, + category, + package_name, + CASE WHEN documentation_markdown IS NOT NULL THEN 1 ELSE 0 END as has_documentation, + CASE WHEN documentation_examples IS NOT NULL THEN 1 ELSE 0 END as has_examples, + CASE WHEN operations IS NOT NULL THEN 1 ELSE 0 END as has_operations, + has_credentials, + is_trigger, + is_webhook +FROM nodes; + +CREATE VIEW IF NOT EXISTS package_summary AS +SELECT + package_name, + COUNT(*) as node_count, + SUM(CASE WHEN documentation_markdown IS NOT NULL THEN 1 ELSE 0 END) as nodes_with_docs, + SUM(CASE WHEN documentation_examples IS NOT NULL THEN 1 ELSE 0 END) as nodes_with_examples, + SUM(has_credentials) as nodes_with_credentials, + SUM(is_trigger) as trigger_nodes, + SUM(is_webhook) as webhook_nodes +FROM nodes +GROUP BY package_name +ORDER BY node_count DESC; \ No newline at end of file diff --git a/src/index-http.ts b/src/index-http.ts deleted file mode 100644 index e3bd08d..0000000 --- a/src/index-http.ts +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env node -/** - * n8n Documentation MCP Server - * Copyright (c) 2025 n8n-mcp contributors - * - * This software is licensed under the Sustainable Use License. - * See the LICENSE file in the root directory of this source tree. - */ - -import dotenv from 'dotenv'; -import { N8NDocumentationRemoteServer } from './mcp/remote-server'; -import { logger } from './utils/logger'; -import * as path from 'path'; - -// Load environment variables -dotenv.config(); - -async function main() { - try { - // Get configuration from environment - const config = { - port: parseInt(process.env.MCP_PORT || '3000', 10), - host: process.env.MCP_HOST || '0.0.0.0', - domain: process.env.MCP_DOMAIN || 'localhost', - authToken: process.env.MCP_AUTH_TOKEN, - cors: process.env.MCP_CORS === 'true', - tlsCert: process.env.MCP_TLS_CERT, - tlsKey: process.env.MCP_TLS_KEY, - }; - - // Validate required configuration - if (!config.domain || config.domain === 'localhost') { - logger.warn('MCP_DOMAIN not set or set to localhost. Using default: localhost'); - logger.warn('For production, set MCP_DOMAIN to your actual domain (e.g., n8ndocumentation.aiservices.pl)'); - } - - if (!config.authToken) { - logger.warn('MCP_AUTH_TOKEN not set. Server will run without authentication.'); - logger.warn('For production, set MCP_AUTH_TOKEN to a secure value.'); - } - - // Set database path if not already set - if (!process.env.NODE_DB_PATH) { - process.env.NODE_DB_PATH = path.join(__dirname, '../data/nodes-v2.db'); - } - - logger.info('Starting n8n Documentation MCP Remote Server'); - logger.info('Configuration:', { - port: config.port, - host: config.host, - domain: config.domain, - cors: config.cors, - authEnabled: !!config.authToken, - tlsEnabled: !!(config.tlsCert && config.tlsKey), - databasePath: process.env.NODE_DB_PATH, - }); - - const server = new N8NDocumentationRemoteServer(config); - - // Start the server - await server.start(); - - // Handle graceful shutdown - const shutdown = async () => { - logger.info('Received shutdown signal'); - await server.stop(); - process.exit(0); - }; - - process.on('SIGINT', shutdown); - process.on('SIGTERM', shutdown); - - logger.info('Server is ready to accept connections'); - logger.info(`Claude Desktop configuration:`); - logger.info(JSON.stringify({ - "mcpServers": { - "n8n-nodes-remote": { - "command": "curl", - "args": [ - "-X", "POST", - "-H", "Content-Type: application/json", - "-H", `Authorization: Bearer ${config.authToken || 'YOUR_AUTH_TOKEN'}`, - "-d", "@-", - `https://${config.domain}/mcp` - ], - "env": {} - } - } - }, null, 2)); - - } catch (error) { - logger.error('Failed to start server:', error); - process.exit(1); - } -} - -// Run the server -main().catch((error) => { - logger.error('Unhandled error:', error); - process.exit(1); -}); \ No newline at end of file diff --git a/src/index-v2.ts b/src/index-v2.ts deleted file mode 100644 index 294a2d7..0000000 --- a/src/index-v2.ts +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env node -/** - * n8n Documentation MCP Server - * Copyright (c) 2025 n8n-mcp contributors - * - * This software is licensed under the Sustainable Use License. - * See the LICENSE file in the root directory of this source tree. - */ - -import dotenv from 'dotenv'; -import { N8NDocumentationMCPServer } from './mcp/server-v2'; -import { MCPServerConfig } from './types'; -import { logger } from './utils/logger'; -import { NodeDocumentationService } from './services/node-documentation-service'; - -// Load environment variables -dotenv.config(); - -async function main() { - const config: MCPServerConfig = { - port: parseInt(process.env.MCP_SERVER_PORT || '3000', 10), - host: process.env.MCP_SERVER_HOST || 'localhost', - authToken: process.env.MCP_AUTH_TOKEN, - }; - - // Check if we should rebuild the database on startup - const rebuildOnStart = process.env.REBUILD_ON_START === 'true'; - - if (rebuildOnStart) { - logger.info('Rebuilding database on startup...'); - const service = new NodeDocumentationService(); - try { - const stats = await service.rebuildDatabase(); - logger.info('Database rebuild complete:', stats); - } catch (error) { - logger.error('Failed to rebuild database:', error); - process.exit(1); - } finally { - service.close(); - } - } - - const server = new N8NDocumentationMCPServer(config); - - try { - await server.start(); - } catch (error) { - logger.error('Failed to start MCP server:', error); - process.exit(1); - } -} - -// Handle graceful shutdown -process.on('SIGINT', () => { - logger.info('Received SIGINT, shutting down MCP server...'); - process.exit(0); -}); - -process.on('SIGTERM', () => { - logger.info('Received SIGTERM, shutting down MCP server...'); - process.exit(0); -}); - -main().catch((error) => { - logger.error('Unhandled error:', error); - process.exit(1); -}); \ No newline at end of file diff --git a/src/mcp/http-server.ts b/src/mcp/http-server.ts deleted file mode 100644 index 870af64..0000000 --- a/src/mcp/http-server.ts +++ /dev/null @@ -1,592 +0,0 @@ -import express from 'express'; -import { createServer } from 'http'; -import { WebSocketServer, WebSocket } from 'ws'; -import { Server } from '@modelcontextprotocol/sdk/server/index.js'; -// WebSocketServerTransport is not available in the SDK, we'll implement a custom solution -import { - CallToolRequestSchema, - ErrorCode, - ListResourcesRequestSchema, - ListToolsRequestSchema, - McpError, - ReadResourceRequestSchema, -} from '@modelcontextprotocol/sdk/types.js'; -import { NodeDocumentationService } from '../services/node-documentation-service'; -import { nodeDocumentationTools } from './tools-v2'; -import { logger } from '../utils/logger'; -import { authenticateRequest } from '../utils/auth-middleware'; -import * as crypto from 'crypto'; - -interface HttpServerConfig { - port: number; - host: string; - domain: string; - authToken?: string; - cors?: boolean; - tlsCert?: string; - tlsKey?: string; -} - -/** - * HTTP/WebSocket MCP Server for remote access - */ -export class N8NDocumentationHttpServer { - private app: express.Application; - private server: any; - private wss!: WebSocketServer; - private nodeService: NodeDocumentationService; - private config: HttpServerConfig; - private activeSessions: Map = new Map(); - - constructor(config: HttpServerConfig) { - this.config = config; - this.app = express(); - this.nodeService = new NodeDocumentationService(); - - this.setupMiddleware(); - this.setupRoutes(); - this.setupWebSocket(); - } - - private setupMiddleware(): void { - // JSON parsing - this.app.use(express.json()); - - // CORS if enabled - if (this.config.cors) { - this.app.use((req, res, next): void => { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); - res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization'); - if (req.method === 'OPTIONS') { - res.sendStatus(200); - return; - } - next(); - }); - } - - // Request logging - this.app.use((req, res, next): void => { - logger.info(`${req.method} ${req.path}`, { - ip: req.ip, - userAgent: req.get('user-agent') - }); - next(); - }); - } - - private setupRoutes(): void { - // Health check endpoint - this.app.get('/health', (req, res) => { - res.json({ - status: 'ok', - service: 'n8n-documentation-mcp', - version: '2.0.0', - uptime: process.uptime() - }); - }); - - // MCP info endpoint - this.app.get('/mcp', (req, res) => { - res.json({ - name: 'n8n-node-documentation', - version: '2.0.0', - description: 'MCP server providing n8n node documentation and source code', - transport: 'websocket', - endpoint: `wss://${this.config.domain}/mcp/websocket`, - authentication: 'bearer-token', - tools: nodeDocumentationTools.map(t => ({ - name: t.name, - description: t.description - })) - }); - }); - - // Database stats endpoint (public) - this.app.get('/stats', async (req, res) => { - try { - const stats = this.nodeService.getStatistics(); - res.json(stats); - } catch (error) { - logger.error('Failed to get statistics:', error); - res.status(500).json({ error: 'Failed to retrieve statistics' }); - } - }); - - // Rebuild endpoint (requires auth) - this.app.post('/rebuild', authenticateRequest(this.config.authToken), async (req, res) => { - try { - logger.info('Database rebuild requested'); - const stats = await this.nodeService.rebuildDatabase(); - res.json({ - message: 'Database rebuild complete', - stats - }); - } catch (error) { - logger.error('Rebuild failed:', error); - res.status(500).json({ error: 'Rebuild failed' }); - } - }); - } - - private setupWebSocket(): void { - // Create HTTP server - this.server = createServer(this.app); - - // Create WebSocket server - this.wss = new WebSocketServer({ - server: this.server, - path: '/mcp/websocket' - }); - - this.wss.on('connection', async (ws: WebSocket, req: any) => { - const sessionId = crypto.randomUUID(); - logger.info(`WebSocket connection established: ${sessionId}`); - - // Authenticate WebSocket connection - const authHeader = req.headers.authorization; - if (this.config.authToken && authHeader !== `Bearer ${this.config.authToken}`) { - logger.warn(`Unauthorized WebSocket connection attempt: ${sessionId}`); - ws.close(1008, 'Unauthorized'); - return; - } - - try { - // Create MCP server instance for this connection - const mcpServer = new Server( - { - name: 'n8n-node-documentation', - version: '2.0.0', - }, - { - capabilities: { - tools: {}, - resources: {}, - }, - } - ); - - // Setup MCP handlers - this.setupMcpHandlers(mcpServer); - - // WebSocket transport not available in SDK - implement JSON-RPC over WebSocket - // For now, we'll handle messages directly - ws.on('message', async (data: Buffer) => { - try { - const request = JSON.parse(data.toString()); - // Process request through MCP server handlers - // This would need custom implementation - logger.warn('WebSocket MCP not fully implemented yet'); - ws.send(JSON.stringify({ - jsonrpc: '2.0', - id: request.id, - error: { - code: -32601, - message: 'WebSocket transport not implemented' - } - })); - } catch (error) { - logger.error('WebSocket message error:', error); - } - }); - - this.activeSessions.set(sessionId, { mcpServer, ws }); - logger.info(`MCP session established: ${sessionId}`); - - // Handle disconnect - ws.on('close', () => { - logger.info(`WebSocket connection closed: ${sessionId}`); - this.activeSessions.delete(sessionId); - }); - - } catch (error) { - logger.error(`Failed to establish MCP session: ${sessionId}`, error); - ws.close(1011, 'Server error'); - } - }); - } - - private setupMcpHandlers(server: Server): void { - // List available tools - server.setRequestHandler(ListToolsRequestSchema, async () => ({ - tools: nodeDocumentationTools, - })); - - // List available resources - server.setRequestHandler(ListResourcesRequestSchema, async () => ({ - resources: [ - { - uri: 'nodes://list', - name: 'Available n8n Nodes', - description: 'List of all available n8n nodes', - mimeType: 'application/json', - }, - { - uri: 'nodes://statistics', - name: 'Database Statistics', - description: 'Statistics about the node documentation database', - mimeType: 'application/json', - }, - ], - })); - - // Read resources - server.setRequestHandler(ReadResourceRequestSchema, async (request) => { - const { uri } = request.params; - - try { - if (uri === 'nodes://list') { - const nodes = await this.nodeService.listNodes(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(nodes.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - if (uri === 'nodes://statistics') { - const stats = this.nodeService.getStatistics(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - throw new McpError(ErrorCode.InvalidRequest, `Unknown resource: ${uri}`); - } catch (error) { - logger.error('Resource read error:', error); - throw error instanceof McpError ? error : new McpError( - ErrorCode.InternalError, - `Failed to read resource: ${error instanceof Error ? error.message : String(error)}` - ); - } - }); - - // Handle tool calls - server.setRequestHandler(CallToolRequestSchema, async (request) => { - const { name, arguments: args } = request.params; - - try { - switch (name) { - case 'list_nodes': - return await this.handleListNodes(args); - - case 'get_node_info': - return await this.handleGetNodeInfo(args); - - case 'search_nodes': - return await this.handleSearchNodes(args); - - case 'get_node_example': - return await this.handleGetNodeExample(args); - - case 'get_node_source_code': - return await this.handleGetNodeSourceCode(args); - - case 'get_node_documentation': - return await this.handleGetNodeDocumentation(args); - - case 'rebuild_database': - return await this.handleRebuildDatabase(args); - - case 'get_database_statistics': - return await this.handleGetStatistics(); - - default: - throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`); - } - } catch (error) { - logger.error(`Tool execution error (${name}):`, error); - throw error instanceof McpError ? error : new McpError( - ErrorCode.InternalError, - `Tool execution failed: ${error instanceof Error ? error.message : String(error)}` - ); - } - }); - } - - // Tool handlers (copied from server-v2.ts) - private async handleListNodes(args: any): Promise { - const nodes = await this.nodeService.listNodes(); - - let filtered = nodes; - - if (args.category) { - filtered = filtered.filter(n => n.category === args.category); - } - - if (args.packageName) { - filtered = filtered.filter(n => n.packageName === args.packageName); - } - - if (args.isTrigger !== undefined) { - filtered = filtered.filter(n => n.isTrigger === args.isTrigger); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - packageName: n.packageName, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - isTrigger: n.isTrigger, - isWebhook: n.isWebhook, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeInfo(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - nodeType: nodeInfo.nodeType, - name: nodeInfo.name, - displayName: nodeInfo.displayName, - description: nodeInfo.description, - category: nodeInfo.category, - packageName: nodeInfo.packageName, - sourceCode: nodeInfo.sourceCode, - credentialCode: nodeInfo.credentialCode, - documentation: nodeInfo.documentation, - documentationUrl: nodeInfo.documentationUrl, - exampleWorkflow: nodeInfo.exampleWorkflow, - exampleParameters: nodeInfo.exampleParameters, - propertiesSchema: nodeInfo.propertiesSchema, - isTrigger: nodeInfo.isTrigger, - isWebhook: nodeInfo.isWebhook, - }, null, 2), - }, - ], - }; - } - - private async handleSearchNodes(args: any): Promise { - if (!args.query) { - throw new McpError(ErrorCode.InvalidParams, 'query is required'); - } - - const results = await this.nodeService.searchNodes({ - query: args.query, - category: args.category, - limit: args.limit || 20, - }); - - let filtered = results; - if (args.hasDocumentation) { - filtered = filtered.filter(n => !!n.documentation); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeExample(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.exampleWorkflow) { - return { - content: [ - { - type: 'text', - text: `No example available for node: ${args.nodeType}`, - }, - ], - }; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(nodeInfo.exampleWorkflow, null, 2), - }, - ], - }; - } - - private async handleGetNodeSourceCode(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - const response: any = { - nodeType: nodeInfo.nodeType, - sourceCode: nodeInfo.sourceCode, - }; - - if (args.includeCredentials && nodeInfo.credentialCode) { - response.credentialCode = nodeInfo.credentialCode; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(response, null, 2), - }, - ], - }; - } - - private async handleGetNodeDocumentation(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.documentation) { - return { - content: [ - { - type: 'text', - text: `No documentation available for node: ${args.nodeType}`, - }, - ], - }; - } - - const content = args.format === 'plain' - ? nodeInfo.documentation.replace(/[#*`]/g, '') - : nodeInfo.documentation; - - return { - content: [ - { - type: 'text', - text: content, - }, - ], - }; - } - - private async handleRebuildDatabase(args: any): Promise { - logger.info('Database rebuild requested via MCP'); - - const stats = await this.nodeService.rebuildDatabase(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - message: 'Database rebuild complete', - stats, - }, null, 2), - }, - ], - }; - } - - private async handleGetStatistics(): Promise { - const stats = this.nodeService.getStatistics(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - async start(): Promise { - return new Promise((resolve) => { - this.server.listen(this.config.port, this.config.host, () => { - logger.info(`n8n Documentation MCP HTTP server started`); - logger.info(`HTTP endpoint: http://${this.config.host}:${this.config.port}`); - logger.info(`WebSocket endpoint: ws://${this.config.host}:${this.config.port}/mcp/websocket`); - logger.info(`Domain: ${this.config.domain}`); - resolve(); - }); - }); - } - - async stop(): Promise { - logger.info('Stopping n8n Documentation MCP HTTP server...'); - - // Close all WebSocket connections - this.wss.clients.forEach((ws: WebSocket) => ws.close()); - - // Close HTTP server - return new Promise((resolve) => { - this.server.close(() => { - this.nodeService.close(); - logger.info('Server stopped'); - resolve(); - }); - }); - } -} \ No newline at end of file diff --git a/src/mcp/remote-server.ts b/src/mcp/remote-server.ts deleted file mode 100644 index bcd5fb0..0000000 --- a/src/mcp/remote-server.ts +++ /dev/null @@ -1,608 +0,0 @@ -import express from 'express'; -import { createServer as createHttpServer } from 'http'; -import { createServer as createHttpsServer } from 'https'; -import { - ErrorCode, - McpError, -} from '@modelcontextprotocol/sdk/types.js'; -import { NodeDocumentationService } from '../services/node-documentation-service'; -import { nodeDocumentationTools } from './tools-v2'; -import { logger } from '../utils/logger'; -import { authenticateRequest } from '../utils/auth-middleware'; -import * as fs from 'fs'; - -interface RemoteServerConfig { - port: number; - host: string; - domain: string; - authToken?: string; - cors?: boolean; - tlsCert?: string; - tlsKey?: string; -} - -/** - * Remote MCP Server using Streamable HTTP transport - * Based on MCP's modern approach for remote servers - */ -export class N8NDocumentationRemoteServer { - private app: express.Application; - private server: any; - private nodeService: NodeDocumentationService; - private config: RemoteServerConfig; - - constructor(config: RemoteServerConfig) { - this.config = config; - this.app = express(); - this.nodeService = new NodeDocumentationService(); - - this.setupMiddleware(); - this.setupRoutes(); - } - - private setupMiddleware(): void { - // Parse JSON bodies with larger limit for MCP messages - this.app.use(express.json({ limit: '10mb' })); - - // CORS if enabled - if (this.config.cors) { - this.app.use((req, res, next): void => { - res.header('Access-Control-Allow-Origin', '*'); - res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); - res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Request-ID'); - if (req.method === 'OPTIONS') { - res.sendStatus(200); - return; - } - next(); - }); - } - - // Request logging - this.app.use((req, res, next): void => { - logger.info(`${req.method} ${req.path}`, { - ip: req.ip, - userAgent: req.get('user-agent'), - requestId: req.get('X-Request-ID') - }); - next(); - }); - } - - private setupRoutes(): void { - // Health check endpoint - this.app.get('/health', (req, res) => { - res.json({ - status: 'ok', - service: 'n8n-documentation-mcp', - version: '2.0.0', - uptime: process.uptime(), - domain: this.config.domain - }); - }); - - // MCP info endpoint - provides server capabilities - this.app.get('/', (req, res) => { - res.json({ - name: 'n8n-node-documentation', - version: '2.0.0', - description: 'MCP server providing n8n node documentation and source code', - transport: 'http', - endpoint: `https://${this.config.domain}/mcp`, - authentication: this.config.authToken ? 'bearer-token' : 'none', - capabilities: { - tools: nodeDocumentationTools.map(t => ({ - name: t.name, - description: t.description - })), - resources: [ - { - uri: 'nodes://list', - name: 'Available n8n Nodes', - description: 'List of all available n8n nodes', - }, - { - uri: 'nodes://statistics', - name: 'Database Statistics', - description: 'Statistics about the node documentation database', - }, - ] - } - }); - }); - - // Database stats endpoint (public) - this.app.get('/stats', async (req, res) => { - try { - const stats = this.nodeService.getStatistics(); - res.json(stats); - } catch (error) { - logger.error('Failed to get statistics:', error); - res.status(500).json({ error: 'Failed to retrieve statistics' }); - } - }); - - // Rebuild endpoint (requires auth) - this.app.post('/rebuild', authenticateRequest(this.config.authToken), async (req, res) => { - try { - logger.info('Database rebuild requested'); - const stats = await this.nodeService.rebuildDatabase(); - res.json({ - message: 'Database rebuild complete', - stats - }); - } catch (error) { - logger.error('Rebuild failed:', error); - res.status(500).json({ error: 'Rebuild failed' }); - } - }); - - // Main MCP endpoint - handles all MCP protocol messages - this.app.post('/mcp', authenticateRequest(this.config.authToken), async (req, res) => { - const requestId = req.get('X-Request-ID') || 'unknown'; - - try { - // Process the JSON-RPC request directly - const response = await this.handleJsonRpcRequest(req.body); - res.json(response); - } catch (error) { - logger.error(`MCP request failed (${requestId}):`, error); - - if (!res.headersSent) { - res.status(500).json({ - jsonrpc: '2.0', - id: req.body?.id || null, - error: { - code: -32603, - message: 'Internal error', - data: error instanceof Error ? error.message : String(error) - } - }); - } - } - }); - } - - private async handleJsonRpcRequest(request: any): Promise { - const { jsonrpc, method, params, id } = request; - - if (jsonrpc !== '2.0') { - return { - jsonrpc: '2.0', - id: id || null, - error: { - code: -32600, - message: 'Invalid Request', - data: 'JSON-RPC version must be "2.0"' - } - }; - } - - try { - let result; - - switch (method) { - case 'tools/list': - result = await this.handleListTools(); - break; - - case 'resources/list': - result = await this.handleListResources(); - break; - - case 'resources/read': - result = await this.handleReadResource(params); - break; - - case 'tools/call': - result = await this.handleToolCall(params); - break; - - default: - return { - jsonrpc: '2.0', - id: id || null, - error: { - code: -32601, - message: 'Method not found', - data: `Unknown method: ${method}` - } - }; - } - - return { - jsonrpc: '2.0', - id: id || null, - result - }; - } catch (error) { - logger.error(`Error handling method ${method}:`, error); - - const errorCode = error instanceof McpError ? error.code : -32603; - const errorMessage = error instanceof Error ? error.message : 'Internal error'; - - return { - jsonrpc: '2.0', - id: id || null, - error: { - code: errorCode, - message: errorMessage, - data: error instanceof McpError ? error.data : undefined - } - }; - } - } - - private async handleListTools(): Promise { - return { - tools: nodeDocumentationTools, - }; - } - - private async handleListResources(): Promise { - return { - resources: [ - { - uri: 'nodes://list', - name: 'Available n8n Nodes', - description: 'List of all available n8n nodes', - mimeType: 'application/json', - }, - { - uri: 'nodes://statistics', - name: 'Database Statistics', - description: 'Statistics about the node documentation database', - mimeType: 'application/json', - }, - ], - }; - } - - private async handleReadResource(params: any): Promise { - const { uri } = params; - - if (uri === 'nodes://list') { - const nodes = await this.nodeService.listNodes(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(nodes.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - if (uri === 'nodes://statistics') { - const stats = this.nodeService.getStatistics(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - throw new McpError(ErrorCode.InvalidRequest, `Unknown resource: ${uri}`); - } - - private async handleToolCall(params: any): Promise { - const { name, arguments: args } = params; - - switch (name) { - case 'list_nodes': - return await this.handleListNodes(args); - - case 'get_node_info': - return await this.handleGetNodeInfo(args); - - case 'search_nodes': - return await this.handleSearchNodes(args); - - case 'get_node_example': - return await this.handleGetNodeExample(args); - - case 'get_node_source_code': - return await this.handleGetNodeSourceCode(args); - - case 'get_node_documentation': - return await this.handleGetNodeDocumentation(args); - - case 'rebuild_database': - return await this.handleRebuildDatabase(args); - - case 'get_database_statistics': - return await this.handleGetStatistics(); - - default: - throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`); - } - } - - // Tool handlers - private async handleListNodes(args: any): Promise { - const nodes = await this.nodeService.listNodes(); - - let filtered = nodes; - - if (args.category) { - filtered = filtered.filter(n => n.category === args.category); - } - - if (args.packageName) { - filtered = filtered.filter(n => n.packageName === args.packageName); - } - - if (args.isTrigger !== undefined) { - filtered = filtered.filter(n => n.isTrigger === args.isTrigger); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - packageName: n.packageName, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - isTrigger: n.isTrigger, - isWebhook: n.isWebhook, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeInfo(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - nodeType: nodeInfo.nodeType, - name: nodeInfo.name, - displayName: nodeInfo.displayName, - description: nodeInfo.description, - category: nodeInfo.category, - packageName: nodeInfo.packageName, - sourceCode: nodeInfo.sourceCode, - credentialCode: nodeInfo.credentialCode, - documentation: nodeInfo.documentation, - documentationUrl: nodeInfo.documentationUrl, - exampleWorkflow: nodeInfo.exampleWorkflow, - exampleParameters: nodeInfo.exampleParameters, - propertiesSchema: nodeInfo.propertiesSchema, - isTrigger: nodeInfo.isTrigger, - isWebhook: nodeInfo.isWebhook, - }, null, 2), - }, - ], - }; - } - - private async handleSearchNodes(args: any): Promise { - if (!args.query) { - throw new McpError(ErrorCode.InvalidParams, 'query is required'); - } - - const results = await this.nodeService.searchNodes({ - query: args.query, - category: args.category, - limit: args.limit || 20, - }); - - let filtered = results; - if (args.hasDocumentation) { - filtered = filtered.filter(n => !!n.documentation); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeExample(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.exampleWorkflow) { - return { - content: [ - { - type: 'text', - text: `No example available for node: ${args.nodeType}`, - }, - ], - }; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(nodeInfo.exampleWorkflow, null, 2), - }, - ], - }; - } - - private async handleGetNodeSourceCode(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - const response: any = { - nodeType: nodeInfo.nodeType, - sourceCode: nodeInfo.sourceCode, - }; - - if (args.includeCredentials && nodeInfo.credentialCode) { - response.credentialCode = nodeInfo.credentialCode; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(response, null, 2), - }, - ], - }; - } - - private async handleGetNodeDocumentation(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.documentation) { - return { - content: [ - { - type: 'text', - text: `No documentation available for node: ${args.nodeType}`, - }, - ], - }; - } - - const content = args.format === 'plain' - ? nodeInfo.documentation.replace(/[#*`]/g, '') - : nodeInfo.documentation; - - return { - content: [ - { - type: 'text', - text: content, - }, - ], - }; - } - - private async handleRebuildDatabase(args: any): Promise { - logger.info('Database rebuild requested via MCP'); - - const stats = await this.nodeService.rebuildDatabase(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - message: 'Database rebuild complete', - stats, - }, null, 2), - }, - ], - }; - } - - private async handleGetStatistics(): Promise { - const stats = this.nodeService.getStatistics(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - async start(): Promise { - // Create server (HTTP or HTTPS) - if (this.config.tlsCert && this.config.tlsKey) { - const tlsOptions = { - cert: fs.readFileSync(this.config.tlsCert), - key: fs.readFileSync(this.config.tlsKey), - }; - this.server = createHttpsServer(tlsOptions, this.app); - } else { - this.server = createHttpServer(this.app); - } - - return new Promise((resolve) => { - this.server.listen(this.config.port, this.config.host, () => { - const protocol = this.config.tlsCert ? 'https' : 'http'; - logger.info(`n8n Documentation MCP Remote server started`); - logger.info(`Endpoint: ${protocol}://${this.config.host}:${this.config.port}`); - logger.info(`Domain: ${this.config.domain}`); - logger.info(`MCP endpoint: ${protocol}://${this.config.domain}/mcp`); - resolve(); - }); - }); - } - - async stop(): Promise { - logger.info('Stopping n8n Documentation MCP Remote server...'); - - return new Promise((resolve) => { - this.server.close(() => { - this.nodeService.close(); - logger.info('Server stopped'); - resolve(); - }); - }); - } -} \ No newline at end of file diff --git a/src/mcp/server-v2.ts b/src/mcp/server-v2.ts deleted file mode 100644 index dbe1b79..0000000 --- a/src/mcp/server-v2.ts +++ /dev/null @@ -1,435 +0,0 @@ -import { Server } from '@modelcontextprotocol/sdk/server/index.js'; -import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; -import { - CallToolRequestSchema, - ErrorCode, - ListResourcesRequestSchema, - ListToolsRequestSchema, - McpError, - ReadResourceRequestSchema, -} from '@modelcontextprotocol/sdk/types.js'; -import { NodeDocumentationService } from '../services/node-documentation-service'; -import { nodeDocumentationTools } from './tools-v2'; -import { logger } from '../utils/logger'; -import { MCPServerConfig } from '../types'; - -/** - * MCP Server focused on serving n8n node documentation and code - */ -export class N8NDocumentationMCPServer { - private server: Server; - private nodeService: NodeDocumentationService; - - constructor(config: MCPServerConfig) { - logger.info('Initializing n8n Documentation MCP server', { config }); - - this.server = new Server( - { - name: 'n8n-node-documentation', - version: '2.0.0', - }, - { - capabilities: { - tools: {}, - resources: {}, - }, - } - ); - - this.nodeService = new NodeDocumentationService(); - this.setupHandlers(); - } - - private setupHandlers(): void { - // List available tools - this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ - tools: nodeDocumentationTools, - })); - - // List available resources - this.server.setRequestHandler(ListResourcesRequestSchema, async () => ({ - resources: [ - { - uri: 'nodes://list', - name: 'Available n8n Nodes', - description: 'List of all available n8n nodes', - mimeType: 'application/json', - }, - { - uri: 'nodes://statistics', - name: 'Database Statistics', - description: 'Statistics about the node documentation database', - mimeType: 'application/json', - }, - ], - })); - - // Read resources - this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => { - const { uri } = request.params; - - try { - if (uri === 'nodes://list') { - const nodes = await this.nodeService.listNodes(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(nodes.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - if (uri === 'nodes://statistics') { - const stats = this.nodeService.getStatistics(); - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - // Handle specific node URIs like nodes://info/n8n-nodes-base.if - const nodeMatch = uri.match(/^nodes:\/\/info\/(.+)$/); - if (nodeMatch) { - const nodeType = nodeMatch[1]; - const nodeInfo = await this.nodeService.getNodeInfo(nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${nodeType}`); - } - - return { - contents: [ - { - uri, - mimeType: 'application/json', - text: JSON.stringify(nodeInfo, null, 2), - }, - ], - }; - } - - throw new McpError(ErrorCode.InvalidRequest, `Unknown resource: ${uri}`); - } catch (error) { - logger.error('Resource read error:', error); - throw error instanceof McpError ? error : new McpError( - ErrorCode.InternalError, - `Failed to read resource: ${error instanceof Error ? error.message : String(error)}` - ); - } - }); - - // Handle tool calls - this.server.setRequestHandler(CallToolRequestSchema, async (request) => { - const { name, arguments: args } = request.params; - - try { - switch (name) { - case 'list_nodes': - return await this.handleListNodes(args); - - case 'get_node_info': - return await this.handleGetNodeInfo(args); - - case 'search_nodes': - return await this.handleSearchNodes(args); - - case 'get_node_example': - return await this.handleGetNodeExample(args); - - case 'get_node_source_code': - return await this.handleGetNodeSourceCode(args); - - case 'get_node_documentation': - return await this.handleGetNodeDocumentation(args); - - case 'rebuild_database': - return await this.handleRebuildDatabase(args); - - case 'get_database_statistics': - return await this.handleGetStatistics(); - - default: - throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`); - } - } catch (error) { - logger.error(`Tool execution error (${name}):`, error); - throw error instanceof McpError ? error : new McpError( - ErrorCode.InternalError, - `Tool execution failed: ${error instanceof Error ? error.message : String(error)}` - ); - } - }); - } - - private async handleListNodes(args: any): Promise { - const nodes = await this.nodeService.listNodes(); - - // Apply filters - let filtered = nodes; - - if (args.category) { - filtered = filtered.filter(n => n.category === args.category); - } - - if (args.packageName) { - filtered = filtered.filter(n => n.packageName === args.packageName); - } - - if (args.isTrigger !== undefined) { - filtered = filtered.filter(n => n.isTrigger === args.isTrigger); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - packageName: n.packageName, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - isTrigger: n.isTrigger, - isWebhook: n.isWebhook, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeInfo(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - nodeType: nodeInfo.nodeType, - name: nodeInfo.name, - displayName: nodeInfo.displayName, - description: nodeInfo.description, - category: nodeInfo.category, - packageName: nodeInfo.packageName, - sourceCode: nodeInfo.sourceCode, - credentialCode: nodeInfo.credentialCode, - documentation: nodeInfo.documentation, - documentationUrl: nodeInfo.documentationUrl, - exampleWorkflow: nodeInfo.exampleWorkflow, - exampleParameters: nodeInfo.exampleParameters, - propertiesSchema: nodeInfo.propertiesSchema, - isTrigger: nodeInfo.isTrigger, - isWebhook: nodeInfo.isWebhook, - }, null, 2), - }, - ], - }; - } - - private async handleSearchNodes(args: any): Promise { - if (!args.query) { - throw new McpError(ErrorCode.InvalidParams, 'query is required'); - } - - const results = await this.nodeService.searchNodes({ - query: args.query, - category: args.category, - limit: args.limit || 20, - }); - - // Filter by documentation if requested - let filtered = results; - if (args.hasDocumentation) { - filtered = filtered.filter(n => !!n.documentation); - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(filtered.map(n => ({ - nodeType: n.nodeType, - name: n.name, - displayName: n.displayName, - category: n.category, - description: n.description, - hasDocumentation: !!n.documentation, - hasExample: !!n.exampleWorkflow, - })), null, 2), - }, - ], - }; - } - - private async handleGetNodeExample(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.exampleWorkflow) { - return { - content: [ - { - type: 'text', - text: `No example available for node: ${args.nodeType}`, - }, - ], - }; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(nodeInfo.exampleWorkflow, null, 2), - }, - ], - }; - } - - private async handleGetNodeSourceCode(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - const response: any = { - nodeType: nodeInfo.nodeType, - sourceCode: nodeInfo.sourceCode, - }; - - if (args.includeCredentials && nodeInfo.credentialCode) { - response.credentialCode = nodeInfo.credentialCode; - } - - return { - content: [ - { - type: 'text', - text: JSON.stringify(response, null, 2), - }, - ], - }; - } - - private async handleGetNodeDocumentation(args: any): Promise { - if (!args.nodeType) { - throw new McpError(ErrorCode.InvalidParams, 'nodeType is required'); - } - - const nodeInfo = await this.nodeService.getNodeInfo(args.nodeType); - - if (!nodeInfo) { - throw new McpError(ErrorCode.InvalidRequest, `Node not found: ${args.nodeType}`); - } - - if (!nodeInfo.documentation) { - return { - content: [ - { - type: 'text', - text: `No documentation available for node: ${args.nodeType}`, - }, - ], - }; - } - - const content = args.format === 'plain' - ? nodeInfo.documentation.replace(/[#*`]/g, '') - : nodeInfo.documentation; - - return { - content: [ - { - type: 'text', - text: content, - }, - ], - }; - } - - private async handleRebuildDatabase(args: any): Promise { - logger.info('Starting database rebuild...'); - - const stats = await this.nodeService.rebuildDatabase(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify({ - message: 'Database rebuild complete', - stats, - }, null, 2), - }, - ], - }; - } - - private async handleGetStatistics(): Promise { - const stats = this.nodeService.getStatistics(); - - return { - content: [ - { - type: 'text', - text: JSON.stringify(stats, null, 2), - }, - ], - }; - } - - async start(): Promise { - logger.info('Starting n8n Documentation MCP server...'); - - const transport = new StdioServerTransport(); - await this.server.connect(transport); - - logger.info('n8n Documentation MCP server started successfully'); - } - - async stop(): Promise { - logger.info('Stopping n8n Documentation MCP server...'); - await this.server.close(); - this.nodeService.close(); - logger.info('Server stopped'); - } -} \ No newline at end of file diff --git a/src/mcp/server.ts b/src/mcp/server.ts index bb547a1..ab9668c 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -16,18 +16,18 @@ import { N8NApiClient } from '../utils/n8n-client'; import { N8NMCPBridge } from '../utils/bridge'; import { logger } from '../utils/logger'; import { NodeSourceExtractor } from '../utils/node-source-extractor'; -import { SQLiteStorageService } from '../services/sqlite-storage-service'; +import { NodeDocumentationService } from '../services/node-documentation-service'; export class N8NMCPServer { private server: Server; private n8nClient: N8NApiClient; private nodeExtractor: NodeSourceExtractor; - private nodeStorage: SQLiteStorageService; + private nodeDocService: NodeDocumentationService; constructor(config: MCPServerConfig, n8nConfig: N8NConfig) { this.n8nClient = new N8NApiClient(n8nConfig); this.nodeExtractor = new NodeSourceExtractor(); - this.nodeStorage = new SQLiteStorageService(); + this.nodeDocService = new NodeDocumentationService(); logger.info('Initializing n8n MCP server', { config, n8nConfig }); this.server = new Server( { @@ -164,12 +164,14 @@ export class N8NMCPServer { return this.getNodeSourceCode(args); case 'list_available_nodes': return this.listAvailableNodes(args); - case 'extract_all_nodes': - return this.extractAllNodes(args); + case 'get_node_info': + return this.getNodeInfo(args); case 'search_nodes': return this.searchNodes(args); case 'get_node_statistics': return this.getNodeStatistics(args); + case 'rebuild_documentation_database': + return this.rebuildDocumentationDatabase(args); default: throw new Error(`Unknown tool: ${name}`); } @@ -323,84 +325,87 @@ export class N8NMCPServer { } } - private async extractAllNodes(args: any): Promise { + + private async getNodeInfo(args: any): Promise { try { - logger.info(`Extracting all nodes`, args); + logger.info('Getting comprehensive node information', args); + const nodeInfo = await this.nodeDocService.getNodeInfo(args.nodeType); - // Get list of all nodes - const allNodes = await this.nodeExtractor.listAvailableNodes(); - let nodesToExtract = allNodes; - - // Apply filters - if (args.packageFilter) { - nodesToExtract = nodesToExtract.filter(node => - node.packageName === args.packageFilter || - node.location?.includes(args.packageFilter) - ); + if (!nodeInfo) { + throw new Error(`Node ${args.nodeType} not found`); } - - if (args.limit) { - nodesToExtract = nodesToExtract.slice(0, args.limit); - } - - logger.info(`Extracting ${nodesToExtract.length} nodes...`); - - const extractedNodes = []; - const errors = []; - - for (const node of nodesToExtract) { - try { - const nodeType = node.packageName ? `${node.packageName}.${node.name}` : node.name; - const nodeInfo = await this.nodeExtractor.extractNodeSource(nodeType); - await this.nodeStorage.storeNode(nodeInfo); - extractedNodes.push(nodeType); - } catch (error) { - errors.push({ - node: node.name, - error: error instanceof Error ? error.message : 'Unknown error' - }); - } - } - - const stats = await this.nodeStorage.getStatistics(); - + return { - success: true, - extracted: extractedNodes.length, - failed: errors.length, - totalStored: stats.totalNodes, - errors: errors.slice(0, 10), // Limit error list - statistics: stats + nodeType: nodeInfo.nodeType, + name: nodeInfo.name, + displayName: nodeInfo.displayName, + description: nodeInfo.description, + category: nodeInfo.category, + subcategory: nodeInfo.subcategory, + icon: nodeInfo.icon, + documentation: { + markdown: nodeInfo.documentationMarkdown, + url: nodeInfo.documentationUrl, + title: nodeInfo.documentationTitle, + }, + operations: nodeInfo.operations || [], + apiMethods: nodeInfo.apiMethods || [], + examples: nodeInfo.documentationExamples || [], + templates: nodeInfo.templates || [], + relatedResources: nodeInfo.relatedResources || [], + requiredScopes: nodeInfo.requiredScopes || [], + exampleWorkflow: nodeInfo.exampleWorkflow, + exampleParameters: nodeInfo.exampleParameters, + propertiesSchema: nodeInfo.propertiesSchema, + metadata: { + packageName: nodeInfo.packageName, + version: nodeInfo.version, + hasCredentials: nodeInfo.hasCredentials, + isTrigger: nodeInfo.isTrigger, + isWebhook: nodeInfo.isWebhook, + aliases: nodeInfo.aliases, + }, + sourceCode: { + node: nodeInfo.sourceCode, + credential: nodeInfo.credentialCode, + }, }; } catch (error) { - logger.error(`Failed to extract all nodes`, error); - throw new Error(`Failed to extract all nodes: ${error instanceof Error ? error.message : 'Unknown error'}`); + logger.error(`Failed to get node info`, error); + throw new Error(`Failed to get node info: ${error instanceof Error ? error.message : 'Unknown error'}`); } } private async searchNodes(args: any): Promise { try { - logger.info(`Searching nodes`, args); - - const results = await this.nodeStorage.searchNodes({ + logger.info('Searching nodes with enhanced filtering', args); + const results = await this.nodeDocService.searchNodes({ query: args.query, + category: args.category, packageName: args.packageName, hasCredentials: args.hasCredentials, - limit: args.limit || 20 + isTrigger: args.isTrigger, + limit: args.limit || 20, }); - + return { nodes: results.map(node => ({ nodeType: node.nodeType, name: node.name, - packageName: node.packageName, displayName: node.displayName, description: node.description, - codeLength: node.codeLength, - hasCredentials: node.hasCredentials, - location: node.sourceLocation + category: node.category, + packageName: node.packageName, + hasDocumentation: !!node.documentationMarkdown, + hasExamples: !!(node.documentationExamples && node.documentationExamples.length > 0), + operationCount: node.operations?.length || 0, + metadata: { + hasCredentials: node.hasCredentials, + isTrigger: node.isTrigger, + isWebhook: node.isWebhook, + }, })), - total: results.length + total: results.length, }; } catch (error) { logger.error(`Failed to search nodes`, error); @@ -411,12 +416,11 @@ export class N8NMCPServer { private async getNodeStatistics(args: any): Promise { try { logger.info(`Getting node statistics`); - const stats = await this.nodeStorage.getStatistics(); + const stats = this.nodeDocService.getStatistics(); return { ...stats, - formattedTotalSize: `${(stats.totalCodeSize / 1024 / 1024).toFixed(2)} MB`, - formattedAverageSize: `${(stats.averageNodeSize / 1024).toFixed(2)} KB` + formattedTotalSize: stats.totalCodeSize ? `${(stats.totalCodeSize / 1024 / 1024).toFixed(2)} MB` : '0 MB', }; } catch (error) { logger.error(`Failed to get node statistics`, error); @@ -424,6 +428,23 @@ export class N8NMCPServer { } } + private async rebuildDocumentationDatabase(args: any): Promise { + try { + logger.info('Rebuilding documentation database', args); + const stats = await this.nodeDocService.rebuildDatabase(); + + return { + success: true, + message: 'Documentation database rebuilt successfully', + statistics: stats, + }; + } catch (error) { + logger.error(`Failed to rebuild documentation database`, error); + throw new Error(`Failed to rebuild documentation database: ${error instanceof Error ? error.message : 'Unknown error'}`); + } + } + + async start(): Promise { try { logger.info('Starting n8n MCP server...'); diff --git a/src/mcp/tools-v2.ts b/src/mcp/tools-v2.ts deleted file mode 100644 index 14ed402..0000000 --- a/src/mcp/tools-v2.ts +++ /dev/null @@ -1,144 +0,0 @@ -import { ToolDefinition } from '../types'; - -/** - * Simplified MCP tools focused on serving n8n node documentation and code - */ -export const nodeDocumentationTools: ToolDefinition[] = [ - { - name: 'list_nodes', - description: 'List all available n8n nodes with basic information', - inputSchema: { - type: 'object', - properties: { - category: { - type: 'string', - description: 'Filter by category (e.g., "Core Nodes", "Flow", "Data Transformation")', - }, - packageName: { - type: 'string', - description: 'Filter by package name (e.g., "n8n-nodes-base")', - }, - isTrigger: { - type: 'boolean', - description: 'Filter to show only trigger nodes', - }, - }, - }, - }, - { - name: 'get_node_info', - description: 'Get complete information about a specific n8n node including source code, documentation, and examples', - inputSchema: { - type: 'object', - properties: { - nodeType: { - type: 'string', - description: 'The node type or name (e.g., "n8n-nodes-base.if", "If", "webhook")', - }, - }, - required: ['nodeType'], - }, - }, - { - name: 'search_nodes', - description: 'Search for n8n nodes by name, description, or documentation content', - inputSchema: { - type: 'object', - properties: { - query: { - type: 'string', - description: 'Search query (searches in node names, descriptions, and documentation)', - }, - category: { - type: 'string', - description: 'Filter by category', - }, - hasDocumentation: { - type: 'boolean', - description: 'Filter to show only nodes with documentation', - }, - limit: { - type: 'number', - description: 'Maximum number of results to return', - default: 20, - }, - }, - required: ['query'], - }, - }, - { - name: 'get_node_example', - description: 'Get example workflow/usage for a specific n8n node', - inputSchema: { - type: 'object', - properties: { - nodeType: { - type: 'string', - description: 'The node type or name', - }, - }, - required: ['nodeType'], - }, - }, - { - name: 'get_node_source_code', - description: 'Get only the source code of a specific n8n node', - inputSchema: { - type: 'object', - properties: { - nodeType: { - type: 'string', - description: 'The node type or name', - }, - includeCredentials: { - type: 'boolean', - description: 'Include credential type definitions if available', - default: false, - }, - }, - required: ['nodeType'], - }, - }, - { - name: 'get_node_documentation', - description: 'Get only the documentation for a specific n8n node', - inputSchema: { - type: 'object', - properties: { - nodeType: { - type: 'string', - description: 'The node type or name', - }, - format: { - type: 'string', - enum: ['markdown', 'plain'], - description: 'Documentation format', - default: 'markdown', - }, - }, - required: ['nodeType'], - }, - }, - { - name: 'rebuild_database', - description: 'Rebuild the entire node database with latest information from n8n and documentation', - inputSchema: { - type: 'object', - properties: { - includeDocumentation: { - type: 'boolean', - description: 'Include documentation from n8n-docs repository', - default: true, - }, - }, - }, - }, - { - name: 'get_database_statistics', - description: 'Get statistics about the node database', - inputSchema: { - type: 'object', - properties: {}, - }, - }, -]; \ No newline at end of file diff --git a/src/mcp/tools.ts b/src/mcp/tools.ts index c75fdde..50f1f3f 100644 --- a/src/mcp/tools.ts +++ b/src/mcp/tools.ts @@ -182,31 +182,40 @@ export const n8nTools: ToolDefinition[] = [ }, }, { - name: 'extract_all_nodes', - description: 'Extract and store all available n8n nodes in the database', + name: 'get_node_statistics', + description: 'Get statistics about stored n8n nodes', + inputSchema: { + type: 'object', + properties: {}, + }, + }, + { + name: 'get_node_info', + description: 'Get comprehensive information about a specific n8n node including documentation, operations, API methods, and examples', inputSchema: { type: 'object', properties: { - packageFilter: { + nodeType: { type: 'string', - description: 'Optional package name to filter extraction', - }, - limit: { - type: 'number', - description: 'Maximum number of nodes to extract', + description: 'The node type identifier (e.g., n8n-nodes-base.slack)', }, }, + required: ['nodeType'], }, }, { name: 'search_nodes', - description: 'Search for n8n nodes by name, package, or functionality', + description: 'Search n8n nodes with full-text search and advanced filtering', inputSchema: { type: 'object', properties: { query: { type: 'string', - description: 'Search query', + description: 'Search query for full-text search', + }, + category: { + type: 'string', + description: 'Filter by node category', }, packageName: { type: 'string', @@ -214,7 +223,11 @@ export const n8nTools: ToolDefinition[] = [ }, hasCredentials: { type: 'boolean', - description: 'Filter nodes that have credentials', + description: 'Filter nodes that require credentials', + }, + isTrigger: { + type: 'boolean', + description: 'Filter trigger nodes only', }, limit: { type: 'number', @@ -225,11 +238,16 @@ export const n8nTools: ToolDefinition[] = [ }, }, { - name: 'get_node_statistics', - description: 'Get statistics about stored n8n nodes', + name: 'rebuild_documentation_database', + description: 'Rebuild the node documentation database with the latest information', inputSchema: { type: 'object', - properties: {}, + properties: { + packageFilter: { + type: 'string', + description: 'Optional: Only rebuild nodes from specific package', + }, + }, }, }, ]; \ No newline at end of file diff --git a/src/scripts/rebuild-database-v2.ts b/src/scripts/rebuild-database-v2.ts deleted file mode 100644 index d354421..0000000 --- a/src/scripts/rebuild-database-v2.ts +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env node - -import { NodeDocumentationService } from '../services/node-documentation-service'; -import { logger } from '../utils/logger'; - -async function rebuildDatabase() { - console.log('๐Ÿ”„ Starting complete database rebuild...\n'); - - const service = new NodeDocumentationService(); - - try { - const startTime = Date.now(); - - console.log('1๏ธโƒฃ Initializing services...'); - console.log('2๏ธโƒฃ Fetching n8n-docs repository...'); - console.log('3๏ธโƒฃ Discovering available nodes...'); - console.log('4๏ธโƒฃ Extracting node information...\n'); - - const stats = await service.rebuildDatabase(); - - const duration = ((Date.now() - startTime) / 1000).toFixed(2); - - console.log('\n๐Ÿ“Š Rebuild Results:'); - console.log(` Total nodes processed: ${stats.total}`); - console.log(` Successfully stored: ${stats.successful}`); - console.log(` Failed: ${stats.failed}`); - console.log(` Duration: ${duration}s`); - - if (stats.errors.length > 0) { - console.log('\nโš ๏ธ First 5 errors:'); - stats.errors.slice(0, 5).forEach(error => { - console.log(` - ${error}`); - }); - if (stats.errors.length > 5) { - console.log(` ... and ${stats.errors.length - 5} more errors`); - } - } - - // Get final statistics - const dbStats = service.getStatistics(); - console.log('\n๐Ÿ“ˆ Database Statistics:'); - console.log(` Total nodes: ${dbStats.totalNodes}`); - console.log(` Nodes with documentation: ${dbStats.nodesWithDocs}`); - console.log(` Nodes with examples: ${dbStats.nodesWithExamples}`); - console.log(` Trigger nodes: ${dbStats.triggerNodes}`); - console.log(` Webhook nodes: ${dbStats.webhookNodes}`); - console.log(` Total packages: ${dbStats.totalPackages}`); - - console.log('\nโœจ Database rebuild complete!'); - - } catch (error) { - console.error('\nโŒ Database rebuild failed:', error); - process.exit(1); - } finally { - service.close(); - } -} - -// Run if called directly -if (require.main === module) { - rebuildDatabase().catch(error => { - console.error(error); - process.exit(1); - }); -} - -export { rebuildDatabase }; \ No newline at end of file diff --git a/src/scripts/rebuild-database.ts b/src/scripts/rebuild-database.ts index 55e7fec..bc33ea1 100644 --- a/src/scripts/rebuild-database.ts +++ b/src/scripts/rebuild-database.ts @@ -1,129 +1,79 @@ #!/usr/bin/env node -import { NodeSourceExtractor } from '../utils/node-source-extractor'; -import { SQLiteStorageService } from '../services/sqlite-storage-service'; +import { NodeDocumentationService } from '../services/node-documentation-service'; import { logger } from '../utils/logger'; -import * as path from 'path'; /** - * Rebuild the entire nodes database by extracting all available nodes + * Rebuild the enhanced documentation database */ -async function rebuildDatabase() { - console.log('๐Ÿ”„ Starting database rebuild...\n'); +async function rebuildDocumentationDatabase() { + console.log('๐Ÿ”„ Starting enhanced documentation database rebuild...\n'); const startTime = Date.now(); - const extractor = new NodeSourceExtractor(); - const storage = new SQLiteStorageService(); + const service = new NodeDocumentationService(); try { - // Step 1: Clear existing database - console.log('1๏ธโƒฃ Clearing existing database...'); - await storage.rebuildDatabase(); + // Run the rebuild + const results = await service.rebuildDatabase(); - // Step 2: Get all available nodes - console.log('2๏ธโƒฃ Discovering available nodes...'); - const allNodes = await extractor.listAvailableNodes(); - console.log(` Found ${allNodes.length} nodes\n`); + const duration = ((Date.now() - startTime) / 1000).toFixed(2); - // Step 3: Extract and store each node - console.log('3๏ธโƒฃ Extracting and storing nodes...'); - let processed = 0; - let stored = 0; - let failed = 0; - const errors: Array<{ node: string; error: string }> = []; + console.log('\nโœ… Enhanced documentation database rebuild completed!\n'); + console.log('๐Ÿ“Š Results:'); + console.log(` Total nodes found: ${results.total}`); + console.log(` Successfully processed: ${results.successful}`); + console.log(` Failed: ${results.failed}`); + console.log(` Duration: ${duration}s`); - // Process in batches for better performance - const batchSize = 50; - for (let i = 0; i < allNodes.length; i += batchSize) { - const batch = allNodes.slice(i, Math.min(i + batchSize, allNodes.length)); - const nodeInfos = []; + if (results.errors.length > 0) { + console.log(`\nโš ๏ธ First ${Math.min(5, results.errors.length)} errors:`); + results.errors.slice(0, 5).forEach(err => { + console.log(` - ${err}`); + }); - for (const node of batch) { - processed++; - - try { - const nodeType = node.packageName ? `${node.packageName}.${node.name}` : node.name; - - // Show progress - if (processed % 100 === 0) { - const progress = ((processed / allNodes.length) * 100).toFixed(1); - console.log(` Progress: ${processed}/${allNodes.length} (${progress}%)`); - } - - const nodeInfo = await extractor.extractNodeSource(nodeType); - nodeInfos.push(nodeInfo); - stored++; - } catch (error) { - failed++; - const errorMsg = error instanceof Error ? error.message : 'Unknown error'; - errors.push({ - node: node.name, - error: errorMsg - }); - - // Log first few errors - if (errors.length <= 5) { - logger.debug(`Failed to extract ${node.name}: ${errorMsg}`); - } - } - } - - // Bulk store the batch - if (nodeInfos.length > 0) { - await storage.bulkStoreNodes(nodeInfos); + if (results.errors.length > 5) { + console.log(` ... and ${results.errors.length - 5} more errors`); } } - // Step 4: Save statistics - console.log('\n4๏ธโƒฃ Saving statistics...'); - const stats = await storage.getStatistics(); - await storage.saveExtractionStats(stats); - - // Step 5: Display results - const duration = ((Date.now() - startTime) / 1000).toFixed(2); - - console.log('\nโœ… Database rebuild completed!\n'); - console.log('๐Ÿ“Š Results:'); - console.log(` Total nodes found: ${allNodes.length}`); - console.log(` Successfully stored: ${stored}`); - console.log(` Failed: ${failed}`); - console.log(` Duration: ${duration}s`); - console.log(` Database size: ${(stats.totalCodeSize / 1024 / 1024).toFixed(2)} MB`); + // Get and display statistics + const stats = service.getStatistics(); + console.log('\n๐Ÿ“ˆ Database Statistics:'); + console.log(` Total nodes: ${stats.totalNodes}`); + console.log(` Nodes with documentation: ${stats.nodesWithDocs}`); + console.log(` Nodes with examples: ${stats.nodesWithExamples}`); + console.log(` Nodes with credentials: ${stats.nodesWithCredentials}`); + console.log(` Trigger nodes: ${stats.triggerNodes}`); + console.log(` Webhook nodes: ${stats.webhookNodes}`); console.log('\n๐Ÿ“ฆ Package distribution:'); - stats.packageDistribution.slice(0, 10).forEach(pkg => { + stats.packageDistribution.slice(0, 10).forEach((pkg: any) => { console.log(` ${pkg.package}: ${pkg.count} nodes`); }); - if (errors.length > 0) { - console.log(`\nโš ๏ธ First ${Math.min(5, errors.length)} errors:`); - errors.slice(0, 5).forEach(err => { - console.log(` - ${err.node}: ${err.error}`); - }); - - if (errors.length > 5) { - console.log(` ... and ${errors.length - 5} more errors`); - } - } - // Close database connection - storage.close(); + service.close(); - console.log('\nโœจ Database is ready for use!'); + console.log('\nโœจ Enhanced documentation database is ready!'); + console.log('๐Ÿ’ก The database now includes:'); + console.log(' - Complete node source code'); + console.log(' - Enhanced documentation with operations and API methods'); + console.log(' - Code examples and templates'); + console.log(' - Related resources and required scopes'); } catch (error) { - console.error('\nโŒ Database rebuild failed:', error); - storage.close(); + console.error('\nโŒ Documentation database rebuild failed:', error); + service.close(); process.exit(1); } } // Run if called directly if (require.main === module) { - rebuildDatabase().catch(error => { + rebuildDocumentationDatabase().catch(error => { console.error('Fatal error:', error); process.exit(1); }); } -export { rebuildDatabase }; \ No newline at end of file +export { rebuildDocumentationDatabase }; \ No newline at end of file diff --git a/src/services/node-documentation-service.ts b/src/services/node-documentation-service.ts index 82f58ae..6fb626d 100644 --- a/src/services/node-documentation-service.ts +++ b/src/services/node-documentation-service.ts @@ -4,7 +4,15 @@ import path from 'path'; import { promises as fs } from 'fs'; import { logger } from '../utils/logger'; import { NodeSourceExtractor } from '../utils/node-source-extractor'; -import { DocumentationFetcher } from '../utils/documentation-fetcher'; +import { + EnhancedDocumentationFetcher, + EnhancedNodeDocumentation, + OperationInfo, + ApiMethodMapping, + CodeExample, + TemplateInfo, + RelatedResource +} from '../utils/enhanced-documentation-fetcher'; import { ExampleGenerator } from '../utils/example-generator'; interface NodeInfo { @@ -17,8 +25,15 @@ interface NodeInfo { icon?: string; sourceCode: string; credentialCode?: string; - documentation?: string; + documentationMarkdown?: string; documentationUrl?: string; + documentationTitle?: string; + operations?: OperationInfo[]; + apiMethods?: ApiMethodMapping[]; + documentationExamples?: CodeExample[]; + templates?: TemplateInfo[]; + relatedResources?: RelatedResource[]; + requiredScopes?: string[]; exampleWorkflow?: any; exampleParameters?: any; propertiesSchema?: any; @@ -44,7 +59,7 @@ interface SearchOptions { export class NodeDocumentationService { private db: Database.Database; private extractor: NodeSourceExtractor; - private docsFetcher: DocumentationFetcher; + private docsFetcher: EnhancedDocumentationFetcher; constructor(dbPath?: string) { const databasePath = dbPath || process.env.NODE_DB_PATH || path.join(process.cwd(), 'data', 'nodes-v2.db'); @@ -57,7 +72,7 @@ export class NodeDocumentationService { this.db = new Database(databasePath); this.extractor = new NodeSourceExtractor(); - this.docsFetcher = new DocumentationFetcher(); + this.docsFetcher = new EnhancedDocumentationFetcher(); // Initialize database with new schema this.initializeDatabase(); @@ -88,6 +103,15 @@ CREATE TABLE IF NOT EXISTS nodes ( -- Documentation documentation_markdown TEXT, documentation_url TEXT, + documentation_title TEXT, + + -- Enhanced documentation fields (stored as JSON) + operations TEXT, + api_methods TEXT, + documentation_examples TEXT, + templates TEXT, + related_resources TEXT, + required_scopes TEXT, -- Example usage example_workflow TEXT, @@ -182,14 +206,16 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( INSERT OR REPLACE INTO nodes ( node_type, name, display_name, description, category, subcategory, icon, source_code, credential_code, code_hash, code_length, - documentation_markdown, documentation_url, + documentation_markdown, documentation_url, documentation_title, + operations, api_methods, documentation_examples, templates, related_resources, required_scopes, example_workflow, example_parameters, properties_schema, package_name, version, codex_data, aliases, has_credentials, is_trigger, is_webhook ) VALUES ( @nodeType, @name, @displayName, @description, @category, @subcategory, @icon, @sourceCode, @credentialCode, @hash, @codeLength, - @documentation, @documentationUrl, + @documentation, @documentationUrl, @documentationTitle, + @operations, @apiMethods, @documentationExamples, @templates, @relatedResources, @requiredScopes, @exampleWorkflow, @exampleParameters, @propertiesSchema, @packageName, @version, @codexData, @aliases, @hasCredentials, @isTrigger, @isWebhook @@ -208,8 +234,15 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( credentialCode: nodeInfo.credentialCode || null, hash, codeLength: nodeInfo.sourceCode.length, - documentation: nodeInfo.documentation || null, + documentation: nodeInfo.documentationMarkdown || null, documentationUrl: nodeInfo.documentationUrl || null, + documentationTitle: nodeInfo.documentationTitle || null, + operations: nodeInfo.operations ? JSON.stringify(nodeInfo.operations) : null, + apiMethods: nodeInfo.apiMethods ? JSON.stringify(nodeInfo.apiMethods) : null, + documentationExamples: nodeInfo.documentationExamples ? JSON.stringify(nodeInfo.documentationExamples) : null, + templates: nodeInfo.templates ? JSON.stringify(nodeInfo.templates) : null, + relatedResources: nodeInfo.relatedResources ? JSON.stringify(nodeInfo.relatedResources) : null, + requiredScopes: nodeInfo.requiredScopes ? JSON.stringify(nodeInfo.requiredScopes) : null, exampleWorkflow: nodeInfo.exampleWorkflow ? JSON.stringify(nodeInfo.exampleWorkflow) : null, exampleParameters: nodeInfo.exampleParameters ? JSON.stringify(nodeInfo.exampleParameters) : null, propertiesSchema: nodeInfo.propertiesSchema ? JSON.stringify(nodeInfo.propertiesSchema) : null, @@ -346,13 +379,13 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( // Parse node definition to get metadata const nodeDefinition = this.parseNodeDefinition(nodeData.sourceCode); - // Get documentation - const docs = await this.docsFetcher.getNodeDocumentation(nodeType); + // Get enhanced documentation + const enhancedDocs = await this.docsFetcher.getEnhancedNodeDocumentation(nodeType); // Generate example const example = ExampleGenerator.generateFromNodeDefinition(nodeDefinition); - // Prepare node info + // Prepare node info with enhanced documentation const nodeInfo: NodeInfo = { nodeType: nodeType, name: node.name, @@ -363,8 +396,15 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( icon: nodeDefinition.icon, sourceCode: nodeData.sourceCode, credentialCode: nodeData.credentialCode, - documentation: docs?.markdown, - documentationUrl: docs?.url, + documentationMarkdown: enhancedDocs?.markdown, + documentationUrl: enhancedDocs?.url, + documentationTitle: enhancedDocs?.title, + operations: enhancedDocs?.operations, + apiMethods: enhancedDocs?.apiMethods, + documentationExamples: enhancedDocs?.examples, + templates: enhancedDocs?.templates, + relatedResources: enhancedDocs?.relatedResources, + requiredScopes: enhancedDocs?.requiredScopes, exampleWorkflow: example, exampleParameters: example.nodes[0]?.parameters, propertiesSchema: nodeDefinition.properties, @@ -410,28 +450,88 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( * Parse node definition from source code */ private parseNodeDefinition(sourceCode: string): any { - try { - // Try to extract the description object from the source - const descMatch = sourceCode.match(/description\s*[:=]\s*({[\s\S]*?})\s*[,;]/); - if (descMatch) { - // Clean up the match and try to parse it - const descStr = descMatch[1] - .replace(/(['"])?([a-zA-Z0-9_]+)(['"])?\s*:/g, '"$2":') // Quote property names - .replace(/:\s*'([^']*)'/g, ': "$1"') // Convert single quotes to double - .replace(/,\s*}/g, '}'); // Remove trailing commas - - return JSON.parse(descStr); - } - } catch (error) { - logger.debug('Failed to parse node definition:', error); - } - - // Return minimal definition if parsing fails - return { + const result: any = { displayName: '', description: '', - properties: [] + properties: [], + category: null, + subcategory: null, + icon: null, + version: null, + codex: null, + alias: null }; + + try { + // Extract individual properties using specific patterns + + // Display name + const displayNameMatch = sourceCode.match(/displayName\s*[:=]\s*['"`]([^'"`]+)['"`]/); + if (displayNameMatch) { + result.displayName = displayNameMatch[1]; + } + + // Description + const descriptionMatch = sourceCode.match(/description\s*[:=]\s*['"`]([^'"`]+)['"`]/); + if (descriptionMatch) { + result.description = descriptionMatch[1]; + } + + // Icon + const iconMatch = sourceCode.match(/icon\s*[:=]\s*['"`]([^'"`]+)['"`]/); + if (iconMatch) { + result.icon = iconMatch[1]; + } + + // Category/group + const groupMatch = sourceCode.match(/group\s*[:=]\s*\[['"`]([^'"`]+)['"`]\]/); + if (groupMatch) { + result.category = groupMatch[1]; + } + + // Version + const versionMatch = sourceCode.match(/version\s*[:=]\s*(\d+)/); + if (versionMatch) { + result.version = parseInt(versionMatch[1]); + } + + // Subtitle + const subtitleMatch = sourceCode.match(/subtitle\s*[:=]\s*['"`]([^'"`]+)['"`]/); + if (subtitleMatch) { + result.subtitle = subtitleMatch[1]; + } + + // Try to extract properties array + const propsMatch = sourceCode.match(/properties\s*[:=]\s*(\[[\s\S]*?\])\s*[,}]/); + if (propsMatch) { + try { + // This is complex to parse from minified code, so we'll skip for now + result.properties = []; + } catch (e) { + // Ignore parsing errors + } + } + + // Check if it's a trigger node + if (sourceCode.includes('implements.*ITrigger') || + sourceCode.includes('polling:.*true') || + sourceCode.includes('webhook:.*true') || + result.displayName.toLowerCase().includes('trigger')) { + result.isTrigger = true; + } + + // Check if it's a webhook node + if (sourceCode.includes('webhooks:') || + sourceCode.includes('webhook:.*true') || + result.displayName.toLowerCase().includes('webhook')) { + result.isWebhook = true; + } + + } catch (error) { + logger.debug('Error parsing node definition:', error); + } + + return result; } /** @@ -448,8 +548,15 @@ CREATE TABLE IF NOT EXISTS extraction_stats ( icon: row.icon, sourceCode: row.source_code, credentialCode: row.credential_code, - documentation: row.documentation_markdown, + documentationMarkdown: row.documentation_markdown, documentationUrl: row.documentation_url, + documentationTitle: row.documentation_title, + operations: row.operations ? JSON.parse(row.operations) : null, + apiMethods: row.api_methods ? JSON.parse(row.api_methods) : null, + documentationExamples: row.documentation_examples ? JSON.parse(row.documentation_examples) : null, + templates: row.templates ? JSON.parse(row.templates) : null, + relatedResources: row.related_resources ? JSON.parse(row.related_resources) : null, + requiredScopes: row.required_scopes ? JSON.parse(row.required_scopes) : null, exampleWorkflow: row.example_workflow ? JSON.parse(row.example_workflow) : null, exampleParameters: row.example_parameters ? JSON.parse(row.example_parameters) : null, propertiesSchema: row.properties_schema ? JSON.parse(row.properties_schema) : null, diff --git a/src/services/node-storage-service.ts b/src/services/node-storage-service.ts deleted file mode 100644 index f1cae29..0000000 --- a/src/services/node-storage-service.ts +++ /dev/null @@ -1,274 +0,0 @@ -import { NodeSourceInfo } from '../utils/node-source-extractor'; -import { logger } from '../utils/logger'; -import * as crypto from 'crypto'; - -export interface StoredNode { - id: string; - nodeType: string; - name: string; - packageName: string; - displayName?: string; - description?: string; - codeHash: string; - codeLength: number; - sourceLocation: string; - hasCredentials: boolean; - extractedAt: Date; - updatedAt: Date; - sourceCode?: string; - credentialCode?: string; - packageInfo?: any; - metadata?: Record; -} - -export interface NodeSearchQuery { - query?: string; - packageName?: string; - nodeType?: string; - hasCredentials?: boolean; - limit?: number; - offset?: number; -} - -export class NodeStorageService { - private nodes: Map = new Map(); - private nodesByPackage: Map> = new Map(); - private searchIndex: Map> = new Map(); - - /** - * Store a node in the database - */ - async storeNode(nodeInfo: NodeSourceInfo): Promise { - const codeHash = crypto.createHash('sha256').update(nodeInfo.sourceCode).digest('hex'); - - // Parse display name and description from source if possible - const displayName = this.extractDisplayName(nodeInfo.sourceCode); - const description = this.extractDescription(nodeInfo.sourceCode); - - const storedNode: StoredNode = { - id: crypto.randomUUID(), - nodeType: nodeInfo.nodeType, - name: nodeInfo.nodeType.split('.').pop() || nodeInfo.nodeType, - packageName: nodeInfo.nodeType.split('.')[0] || 'unknown', - displayName, - description, - codeHash, - codeLength: nodeInfo.sourceCode.length, - sourceLocation: nodeInfo.location, - hasCredentials: !!nodeInfo.credentialCode, - extractedAt: new Date(), - updatedAt: new Date(), - sourceCode: nodeInfo.sourceCode, - credentialCode: nodeInfo.credentialCode, - packageInfo: nodeInfo.packageInfo, - }; - - // Store in memory (replace with real DB) - this.nodes.set(nodeInfo.nodeType, storedNode); - - // Update package index - if (!this.nodesByPackage.has(storedNode.packageName)) { - this.nodesByPackage.set(storedNode.packageName, new Set()); - } - this.nodesByPackage.get(storedNode.packageName)!.add(nodeInfo.nodeType); - - // Update search index - this.updateSearchIndex(storedNode); - - logger.info(`Stored node: ${nodeInfo.nodeType} (${codeHash.substring(0, 8)}...)`); - return storedNode; - } - - /** - * Search for nodes - */ - async searchNodes(query: NodeSearchQuery): Promise { - let results: StoredNode[] = []; - - if (query.query) { - // Text search - const searchTerms = query.query.toLowerCase().split(' '); - const matchingNodeTypes = new Set(); - - for (const term of searchTerms) { - const matches = this.searchIndex.get(term) || new Set(); - matches.forEach(nodeType => matchingNodeTypes.add(nodeType)); - } - - results = Array.from(matchingNodeTypes) - .map(nodeType => this.nodes.get(nodeType)!) - .filter(Boolean); - } else { - // Get all nodes - results = Array.from(this.nodes.values()); - } - - // Apply filters - if (query.packageName) { - results = results.filter(node => node.packageName === query.packageName); - } - - if (query.nodeType) { - results = results.filter(node => node.nodeType.includes(query.nodeType!)); - } - - if (query.hasCredentials !== undefined) { - results = results.filter(node => node.hasCredentials === query.hasCredentials); - } - - // Apply pagination - const offset = query.offset || 0; - const limit = query.limit || 50; - - return results.slice(offset, offset + limit); - } - - /** - * Get node by type - */ - async getNode(nodeType: string): Promise { - return this.nodes.get(nodeType) || null; - } - - /** - * Get all packages - */ - async getPackages(): Promise> { - return Array.from(this.nodesByPackage.entries()).map(([name, nodes]) => ({ - name, - nodeCount: nodes.size, - })); - } - - /** - * Bulk store nodes - */ - async bulkStoreNodes(nodeInfos: NodeSourceInfo[]): Promise<{ - stored: number; - failed: number; - errors: Array<{ nodeType: string; error: string }>; - }> { - const results = { - stored: 0, - failed: 0, - errors: [] as Array<{ nodeType: string; error: string }>, - }; - - for (const nodeInfo of nodeInfos) { - try { - await this.storeNode(nodeInfo); - results.stored++; - } catch (error) { - results.failed++; - results.errors.push({ - nodeType: nodeInfo.nodeType, - error: error instanceof Error ? error.message : 'Unknown error', - }); - } - } - - return results; - } - - /** - * Generate statistics - */ - async getStatistics(): Promise<{ - totalNodes: number; - totalPackages: number; - totalCodeSize: number; - nodesWithCredentials: number; - averageNodeSize: number; - packageDistribution: Array<{ package: string; count: number }>; - }> { - const nodes = Array.from(this.nodes.values()); - const totalCodeSize = nodes.reduce((sum, node) => sum + node.codeLength, 0); - const nodesWithCredentials = nodes.filter(node => node.hasCredentials).length; - - const packageDistribution = Array.from(this.nodesByPackage.entries()) - .map(([pkg, nodeSet]) => ({ package: pkg, count: nodeSet.size })) - .sort((a, b) => b.count - a.count); - - return { - totalNodes: nodes.length, - totalPackages: this.nodesByPackage.size, - totalCodeSize, - nodesWithCredentials, - averageNodeSize: nodes.length > 0 ? Math.round(totalCodeSize / nodes.length) : 0, - packageDistribution, - }; - } - - /** - * Extract display name from source code - */ - private extractDisplayName(sourceCode: string): string | undefined { - const match = sourceCode.match(/displayName:\s*["'`]([^"'`]+)["'`]/); - return match ? match[1] : undefined; - } - - /** - * Extract description from source code - */ - private extractDescription(sourceCode: string): string | undefined { - const match = sourceCode.match(/description:\s*["'`]([^"'`]+)["'`]/); - return match ? match[1] : undefined; - } - - /** - * Update search index - */ - private updateSearchIndex(node: StoredNode): void { - // Index by name parts - const nameParts = node.name.toLowerCase().split(/(?=[A-Z])|[._-]/).filter(Boolean); - for (const part of nameParts) { - if (!this.searchIndex.has(part)) { - this.searchIndex.set(part, new Set()); - } - this.searchIndex.get(part)!.add(node.nodeType); - } - - // Index by display name - if (node.displayName) { - const displayParts = node.displayName.toLowerCase().split(/\s+/); - for (const part of displayParts) { - if (!this.searchIndex.has(part)) { - this.searchIndex.set(part, new Set()); - } - this.searchIndex.get(part)!.add(node.nodeType); - } - } - - // Index by package name - const pkgParts = node.packageName.toLowerCase().split(/[.-]/); - for (const part of pkgParts) { - if (!this.searchIndex.has(part)) { - this.searchIndex.set(part, new Set()); - } - this.searchIndex.get(part)!.add(node.nodeType); - } - } - - /** - * Export all nodes for database import - */ - async exportForDatabase(): Promise<{ - nodes: StoredNode[]; - metadata: { - exportedAt: Date; - totalNodes: number; - totalPackages: number; - }; - }> { - const nodes = Array.from(this.nodes.values()); - - return { - nodes, - metadata: { - exportedAt: new Date(), - totalNodes: nodes.length, - totalPackages: this.nodesByPackage.size, - }, - }; - } -} \ No newline at end of file diff --git a/src/services/sqlite-storage-service.ts b/src/services/sqlite-storage-service.ts deleted file mode 100644 index f92e5cf..0000000 --- a/src/services/sqlite-storage-service.ts +++ /dev/null @@ -1,410 +0,0 @@ -import Database from 'better-sqlite3'; -import * as path from 'path'; -import * as fs from 'fs'; -import * as crypto from 'crypto'; -import { NodeSourceInfo } from '../utils/node-source-extractor'; -import { StoredNode, NodeSearchQuery } from './node-storage-service'; -import { logger } from '../utils/logger'; - -export class SQLiteStorageService { - private db: Database.Database; - private readonly dbPath: string; - - constructor(dbPath?: string) { - this.dbPath = dbPath || process.env.NODE_DB_PATH || path.join(process.cwd(), 'data', 'nodes.db'); - - // Ensure data directory exists - const dataDir = path.dirname(this.dbPath); - if (!fs.existsSync(dataDir)) { - fs.mkdirSync(dataDir, { recursive: true }); - } - - this.db = new Database(this.dbPath, { - verbose: process.env.NODE_ENV === 'development' ? (msg: unknown) => logger.debug(String(msg)) : undefined - }); - - // Enable WAL mode for better performance - this.db.pragma('journal_mode = WAL'); - - this.initializeDatabase(); - } - - /** - * Initialize database with schema - */ - private initializeDatabase(): void { - try { - const schema = ` - -- Main nodes table - CREATE TABLE IF NOT EXISTS nodes ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - node_type TEXT UNIQUE NOT NULL, - name TEXT NOT NULL, - package_name TEXT NOT NULL, - display_name TEXT, - description TEXT, - code_hash TEXT NOT NULL, - code_length INTEGER NOT NULL, - source_location TEXT NOT NULL, - source_code TEXT NOT NULL, - credential_code TEXT, - package_info TEXT, -- JSON - has_credentials INTEGER DEFAULT 0, - extracted_at DATETIME DEFAULT CURRENT_TIMESTAMP, - updated_at DATETIME DEFAULT CURRENT_TIMESTAMP - ); - - -- Indexes for performance - CREATE INDEX IF NOT EXISTS idx_nodes_package_name ON nodes(package_name); - CREATE INDEX IF NOT EXISTS idx_nodes_code_hash ON nodes(code_hash); - CREATE INDEX IF NOT EXISTS idx_nodes_name ON nodes(name); - - -- Full Text Search virtual table for node search - CREATE VIRTUAL TABLE IF NOT EXISTS nodes_fts USING fts5( - node_type, - name, - display_name, - description, - package_name, - content=nodes, - content_rowid=id - ); - - -- Triggers to keep FTS in sync - CREATE TRIGGER IF NOT EXISTS nodes_ai AFTER INSERT ON nodes - BEGIN - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, package_name) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.package_name); - END; - - CREATE TRIGGER IF NOT EXISTS nodes_ad AFTER DELETE ON nodes - BEGIN - DELETE FROM nodes_fts WHERE rowid = old.id; - END; - - CREATE TRIGGER IF NOT EXISTS nodes_au AFTER UPDATE ON nodes - BEGIN - DELETE FROM nodes_fts WHERE rowid = old.id; - INSERT INTO nodes_fts(rowid, node_type, name, display_name, description, package_name) - VALUES (new.id, new.node_type, new.name, new.display_name, new.description, new.package_name); - END; - - -- Statistics table for metadata - CREATE TABLE IF NOT EXISTS extraction_stats ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - total_nodes INTEGER NOT NULL, - total_packages INTEGER NOT NULL, - total_code_size INTEGER NOT NULL, - nodes_with_credentials INTEGER NOT NULL, - extraction_date DATETIME DEFAULT CURRENT_TIMESTAMP - ); - `; - - this.db.exec(schema); - logger.info('Database initialized successfully'); - } catch (error) { - logger.error('Failed to initialize database:', error); - throw error; - } - } - - /** - * Store a node in the database - */ - async storeNode(nodeInfo: NodeSourceInfo): Promise { - const codeHash = crypto.createHash('sha256').update(nodeInfo.sourceCode).digest('hex'); - - // Parse display name and description from source - const displayName = this.extractDisplayName(nodeInfo.sourceCode); - const description = this.extractDescription(nodeInfo.sourceCode); - - const stmt = this.db.prepare(` - INSERT OR REPLACE INTO nodes ( - node_type, name, package_name, display_name, description, - code_hash, code_length, source_location, source_code, - credential_code, package_info, has_credentials, - updated_at - ) VALUES ( - ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP - ) - `); - - const name = nodeInfo.nodeType.split('.').pop() || nodeInfo.nodeType; - const packageName = nodeInfo.nodeType.split('.')[0] || 'unknown'; - - const result = stmt.run( - nodeInfo.nodeType, - name, - packageName, - displayName || null, - description || null, - codeHash, - nodeInfo.sourceCode.length, - nodeInfo.location, - nodeInfo.sourceCode, - nodeInfo.credentialCode || null, - nodeInfo.packageInfo ? JSON.stringify(nodeInfo.packageInfo) : null, - nodeInfo.credentialCode ? 1 : 0 - ); - - logger.info(`Stored node: ${nodeInfo.nodeType} (${codeHash.substring(0, 8)}...)`); - - return { - id: String(result.lastInsertRowid), - nodeType: nodeInfo.nodeType, - name, - packageName, - displayName, - description, - codeHash, - codeLength: nodeInfo.sourceCode.length, - sourceLocation: nodeInfo.location, - hasCredentials: !!nodeInfo.credentialCode, - extractedAt: new Date(), - updatedAt: new Date(), - sourceCode: nodeInfo.sourceCode, - credentialCode: nodeInfo.credentialCode, - packageInfo: nodeInfo.packageInfo - }; - } - - /** - * Search for nodes using FTS - */ - async searchNodes(query: NodeSearchQuery): Promise { - let sql = ` - SELECT DISTINCT n.* - FROM nodes n - `; - - const params: any[] = []; - const conditions: string[] = []; - - if (query.query) { - // Use FTS for text search - sql += ` JOIN nodes_fts fts ON n.id = fts.rowid`; - conditions.push(`nodes_fts MATCH ?`); - // Convert search query to FTS syntax (prefix search) - const ftsQuery = query.query.split(' ') - .map(term => `${term}*`) - .join(' '); - params.push(ftsQuery); - } - - if (query.packageName) { - conditions.push(`n.package_name = ?`); - params.push(query.packageName); - } - - if (query.nodeType) { - conditions.push(`n.node_type LIKE ?`); - params.push(`%${query.nodeType}%`); - } - - if (query.hasCredentials !== undefined) { - conditions.push(`n.has_credentials = ?`); - params.push(query.hasCredentials ? 1 : 0); - } - - if (conditions.length > 0) { - sql += ` WHERE ${conditions.join(' AND ')}`; - } - - sql += ` ORDER BY n.name`; - - if (query.limit) { - sql += ` LIMIT ?`; - params.push(query.limit); - - if (query.offset) { - sql += ` OFFSET ?`; - params.push(query.offset); - } - } - - const stmt = this.db.prepare(sql); - const rows = stmt.all(...params); - - return rows.map(row => this.rowToStoredNode(row)); - } - - /** - * Get node by type - */ - async getNode(nodeType: string): Promise { - const stmt = this.db.prepare(` - SELECT * FROM nodes WHERE node_type = ? - `); - - const row = stmt.get(nodeType); - return row ? this.rowToStoredNode(row) : null; - } - - /** - * Get all packages - */ - async getPackages(): Promise> { - const stmt = this.db.prepare(` - SELECT package_name as name, COUNT(*) as nodeCount - FROM nodes - GROUP BY package_name - ORDER BY nodeCount DESC - `); - - return stmt.all() as Array<{ name: string; nodeCount: number }>; - } - - /** - * Bulk store nodes (used for database rebuild) - */ - async bulkStoreNodes(nodeInfos: NodeSourceInfo[]): Promise<{ - stored: number; - failed: number; - errors: Array<{ nodeType: string; error: string }>; - }> { - const results = { - stored: 0, - failed: 0, - errors: [] as Array<{ nodeType: string; error: string }> - }; - - // Use transaction for bulk insert - const insertMany = this.db.transaction((nodes: NodeSourceInfo[]) => { - for (const nodeInfo of nodes) { - try { - this.storeNode(nodeInfo); - results.stored++; - } catch (error) { - results.failed++; - results.errors.push({ - nodeType: nodeInfo.nodeType, - error: error instanceof Error ? error.message : 'Unknown error' - }); - } - } - }); - - insertMany(nodeInfos); - - return results; - } - - /** - * Get statistics - */ - async getStatistics(): Promise<{ - totalNodes: number; - totalPackages: number; - totalCodeSize: number; - nodesWithCredentials: number; - averageNodeSize: number; - packageDistribution: Array<{ package: string; count: number }>; - }> { - const stats = this.db.prepare(` - SELECT - COUNT(*) as totalNodes, - COUNT(DISTINCT package_name) as totalPackages, - SUM(code_length) as totalCodeSize, - SUM(has_credentials) as nodesWithCredentials - FROM nodes - `).get() as any; - - const packageDist = this.db.prepare(` - SELECT package_name as package, COUNT(*) as count - FROM nodes - GROUP BY package_name - ORDER BY count DESC - `).all() as Array<{ package: string; count: number }>; - - return { - totalNodes: stats.totalNodes || 0, - totalPackages: stats.totalPackages || 0, - totalCodeSize: stats.totalCodeSize || 0, - nodesWithCredentials: stats.nodesWithCredentials || 0, - averageNodeSize: stats.totalNodes > 0 ? Math.round(stats.totalCodeSize / stats.totalNodes) : 0, - packageDistribution: packageDist - }; - } - - /** - * Rebuild entire database - */ - async rebuildDatabase(): Promise { - logger.info('Starting database rebuild...'); - - // Clear existing data - this.db.exec('DELETE FROM nodes'); - this.db.exec('DELETE FROM extraction_stats'); - - logger.info('Database cleared for rebuild'); - } - - /** - * Save extraction statistics - */ - async saveExtractionStats(stats: { - totalNodes: number; - totalPackages: number; - totalCodeSize: number; - nodesWithCredentials: number; - }): Promise { - const stmt = this.db.prepare(` - INSERT INTO extraction_stats ( - total_nodes, total_packages, total_code_size, nodes_with_credentials - ) VALUES (?, ?, ?, ?) - `); - - stmt.run( - stats.totalNodes, - stats.totalPackages, - stats.totalCodeSize, - stats.nodesWithCredentials - ); - } - - /** - * Close database connection - */ - close(): void { - this.db.close(); - } - - /** - * Convert database row to StoredNode - */ - private rowToStoredNode(row: any): StoredNode { - return { - id: String(row.id), - nodeType: row.node_type, - name: row.name, - packageName: row.package_name, - displayName: row.display_name, - description: row.description, - codeHash: row.code_hash, - codeLength: row.code_length, - sourceLocation: row.source_location, - hasCredentials: row.has_credentials === 1, - extractedAt: new Date(row.extracted_at), - updatedAt: new Date(row.updated_at), - sourceCode: row.source_code, - credentialCode: row.credential_code, - packageInfo: row.package_info ? JSON.parse(row.package_info) : undefined - }; - } - - /** - * Extract display name from source code - */ - private extractDisplayName(sourceCode: string): string | undefined { - const match = sourceCode.match(/displayName:\s*["'`]([^"'`]+)["'`]/); - return match ? match[1] : undefined; - } - - /** - * Extract description from source code - */ - private extractDescription(sourceCode: string): string | undefined { - const match = sourceCode.match(/description:\s*["'`]([^"'`]+)["'`]/); - return match ? match[1] : undefined; - } -} \ No newline at end of file diff --git a/src/utils/auth-middleware.ts b/src/utils/auth-middleware.ts deleted file mode 100644 index 98b3060..0000000 --- a/src/utils/auth-middleware.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Request, Response, NextFunction } from 'express'; -import { logger } from './logger'; - -/** - * Express middleware for authenticating requests with Bearer tokens - */ -export function authenticateRequest(authToken?: string) { - return (req: Request, res: Response, next: NextFunction): void => { - if (!authToken) { - // No auth required - return next(); - } - - const authHeader = req.headers['authorization']; - - if (!authHeader) { - logger.warn('Missing authorization header', { - ip: req.ip, - path: req.path, - }); - - res.status(401).json({ - error: 'Unauthorized', - message: 'Missing authorization header', - }); - return; - } - - // Support both "Bearer TOKEN" and just "TOKEN" formats - const providedToken = authHeader.startsWith('Bearer ') - ? authHeader.substring(7) - : authHeader; - - if (providedToken !== authToken) { - logger.warn('Invalid authentication token', { - ip: req.ip, - path: req.path, - }); - - res.status(401).json({ - error: 'Unauthorized', - message: 'Invalid authentication token', - }); - return; - } - - next(); - }; -} \ No newline at end of file diff --git a/src/utils/documentation-fetcher.ts b/src/utils/documentation-fetcher.ts index 2ce29ea..d9d5e81 100644 --- a/src/utils/documentation-fetcher.ts +++ b/src/utils/documentation-fetcher.ts @@ -1,241 +1,2 @@ -import { promises as fs } from 'fs'; -import path from 'path'; -import { logger } from './logger'; -import { execSync } from 'child_process'; - -interface NodeDocumentation { - markdown: string; - url: string; - examples?: any[]; -} - -export class DocumentationFetcher { - private docsPath: string; - private docsRepoUrl = 'https://github.com/n8n-io/n8n-docs.git'; - private cloned = false; - - constructor(docsPath?: string) { - this.docsPath = docsPath || path.join(process.cwd(), 'temp', 'n8n-docs'); - } - - /** - * Clone or update the n8n-docs repository - */ - async ensureDocsRepository(): Promise { - try { - // Check if directory exists - const exists = await fs.access(this.docsPath).then(() => true).catch(() => false); - - if (!exists) { - logger.info('Cloning n8n-docs repository...'); - await fs.mkdir(path.dirname(this.docsPath), { recursive: true }); - execSync(`git clone --depth 1 ${this.docsRepoUrl} ${this.docsPath}`, { - stdio: 'pipe' - }); - logger.info('n8n-docs repository cloned successfully'); - } else { - logger.info('Updating n8n-docs repository...'); - execSync('git pull --ff-only', { - cwd: this.docsPath, - stdio: 'pipe' - }); - logger.info('n8n-docs repository updated'); - } - - this.cloned = true; - } catch (error) { - logger.error('Failed to clone/update n8n-docs repository:', error); - throw error; - } - } - - /** - * Get documentation for a specific node - */ - async getNodeDocumentation(nodeType: string): Promise { - if (!this.cloned) { - await this.ensureDocsRepository(); - } - - try { - // Convert node type to documentation path - // e.g., "n8n-nodes-base.if" -> "if" - const nodeName = this.extractNodeName(nodeType); - - // Common documentation paths to check - const possiblePaths = [ - path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'core-nodes', `${nodeName}.md`), - path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'app-nodes', `${nodeName}.md`), - path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'trigger-nodes', `${nodeName}.md`), - path.join(this.docsPath, 'docs', 'code-examples', 'expressions', `${nodeName}.md`), - // Generic search in docs folder - path.join(this.docsPath, 'docs', '**', `${nodeName}.md`) - ]; - - for (const docPath of possiblePaths) { - try { - const content = await fs.readFile(docPath, 'utf-8'); - const url = this.generateDocUrl(docPath); - - return { - markdown: content, - url, - examples: this.extractExamples(content) - }; - } catch (error) { - // Continue to next path - continue; - } - } - - // If no exact match, try to find by searching - const foundPath = await this.searchForNodeDoc(nodeName); - if (foundPath) { - const content = await fs.readFile(foundPath, 'utf-8'); - return { - markdown: content, - url: this.generateDocUrl(foundPath), - examples: this.extractExamples(content) - }; - } - - logger.warn(`No documentation found for node: ${nodeType}`); - return null; - } catch (error) { - logger.error(`Failed to get documentation for ${nodeType}:`, error); - return null; - } - } - - /** - * Extract node name from node type - */ - private extractNodeName(nodeType: string): string { - // Handle different node type formats - // "n8n-nodes-base.if" -> "if" - // "@n8n/n8n-nodes-langchain.Agent" -> "agent" - const parts = nodeType.split('.'); - const name = parts[parts.length - 1]; - return name.toLowerCase(); - } - - /** - * Search for node documentation file - */ - private async searchForNodeDoc(nodeName: string): Promise { - try { - const result = execSync( - `find ${this.docsPath}/docs -name "*.md" -type f | grep -i "${nodeName}" | head -1`, - { encoding: 'utf-8', stdio: 'pipe' } - ).trim(); - - return result || null; - } catch (error) { - return null; - } - } - - /** - * Generate documentation URL from file path - */ - private generateDocUrl(filePath: string): string { - const relativePath = path.relative(this.docsPath, filePath); - const urlPath = relativePath - .replace(/^docs\//, '') - .replace(/\.md$/, '') - .replace(/\\/g, '/'); - - return `https://docs.n8n.io/${urlPath}`; - } - - /** - * Extract code examples from markdown content - */ - private extractExamples(markdown: string): any[] { - const examples: any[] = []; - - // Extract JSON code blocks - const jsonCodeBlockRegex = /```json\n([\s\S]*?)```/g; - let match; - - while ((match = jsonCodeBlockRegex.exec(markdown)) !== null) { - try { - const json = JSON.parse(match[1]); - examples.push(json); - } catch (error) { - // Not valid JSON, skip - } - } - - // Extract workflow examples - const workflowExampleRegex = /## Example.*?\n([\s\S]*?)(?=\n##|\n#|$)/gi; - while ((match = workflowExampleRegex.exec(markdown)) !== null) { - const exampleText = match[1]; - // Try to find JSON in the example section - const jsonMatch = exampleText.match(/```json\n([\s\S]*?)```/); - if (jsonMatch) { - try { - const json = JSON.parse(jsonMatch[1]); - examples.push(json); - } catch (error) { - // Not valid JSON - } - } - } - - return examples; - } - - /** - * Get all available documentation files - */ - async getAllDocumentationFiles(): Promise> { - if (!this.cloned) { - await this.ensureDocsRepository(); - } - - const docMap = new Map(); - - try { - const findDocs = execSync( - `find ${this.docsPath}/docs -name "*.md" -type f | grep -E "(core-nodes|app-nodes|trigger-nodes)/"`, - { encoding: 'utf-8', stdio: 'pipe' } - ).trim().split('\n'); - - for (const docPath of findDocs) { - if (!docPath) continue; - - const filename = path.basename(docPath, '.md'); - const content = await fs.readFile(docPath, 'utf-8'); - - // Try to extract the node type from the content - const nodeTypeMatch = content.match(/node[_-]?type[:\s]+["']?([^"'\s]+)["']?/i); - if (nodeTypeMatch) { - docMap.set(nodeTypeMatch[1], docPath); - } else { - // Use filename as fallback - docMap.set(filename, docPath); - } - } - - logger.info(`Found ${docMap.size} documentation files`); - return docMap; - } catch (error) { - logger.error('Failed to get documentation files:', error); - return docMap; - } - } - - /** - * Clean up cloned repository - */ - async cleanup(): Promise { - try { - await fs.rm(this.docsPath, { recursive: true, force: true }); - this.cloned = false; - logger.info('Cleaned up documentation repository'); - } catch (error) { - logger.error('Failed to cleanup docs repository:', error); - } - } -} \ No newline at end of file +// Re-export everything from enhanced-documentation-fetcher +export * from './enhanced-documentation-fetcher'; \ No newline at end of file diff --git a/src/utils/enhanced-documentation-fetcher.ts b/src/utils/enhanced-documentation-fetcher.ts new file mode 100644 index 0000000..c8ec646 --- /dev/null +++ b/src/utils/enhanced-documentation-fetcher.ts @@ -0,0 +1,621 @@ +import { promises as fs } from 'fs'; +import path from 'path'; +import { logger } from './logger'; +import { execSync } from 'child_process'; + +// Enhanced documentation structure with rich content +export interface EnhancedNodeDocumentation { + markdown: string; + url: string; + title?: string; + description?: string; + operations?: OperationInfo[]; + apiMethods?: ApiMethodMapping[]; + examples?: CodeExample[]; + templates?: TemplateInfo[]; + relatedResources?: RelatedResource[]; + requiredScopes?: string[]; + metadata?: DocumentationMetadata; +} + +export interface OperationInfo { + resource: string; + operation: string; + description: string; + subOperations?: string[]; +} + +export interface ApiMethodMapping { + resource: string; + operation: string; + apiMethod: string; + apiUrl: string; +} + +export interface CodeExample { + title?: string; + description?: string; + type: 'json' | 'javascript' | 'yaml' | 'text'; + code: string; + language?: string; +} + +export interface TemplateInfo { + name: string; + description?: string; + url?: string; +} + +export interface RelatedResource { + title: string; + url: string; + type: 'documentation' | 'api' | 'tutorial' | 'external'; +} + +export interface DocumentationMetadata { + contentType?: string[]; + priority?: string; + tags?: string[]; + lastUpdated?: Date; +} + +export class EnhancedDocumentationFetcher { + private docsPath: string; + private docsRepoUrl = 'https://github.com/n8n-io/n8n-docs.git'; + private cloned = false; + + constructor(docsPath?: string) { + this.docsPath = docsPath || path.join(process.cwd(), 'temp', 'n8n-docs'); + } + + /** + * Clone or update the n8n-docs repository + */ + async ensureDocsRepository(): Promise { + try { + const exists = await fs.access(this.docsPath).then(() => true).catch(() => false); + + if (!exists) { + logger.info('Cloning n8n-docs repository...'); + await fs.mkdir(path.dirname(this.docsPath), { recursive: true }); + execSync(`git clone --depth 1 ${this.docsRepoUrl} ${this.docsPath}`, { + stdio: 'pipe' + }); + logger.info('n8n-docs repository cloned successfully'); + } else { + logger.info('Updating n8n-docs repository...'); + execSync('git pull --ff-only', { + cwd: this.docsPath, + stdio: 'pipe' + }); + logger.info('n8n-docs repository updated'); + } + + this.cloned = true; + } catch (error) { + logger.error('Failed to clone/update n8n-docs repository:', error); + throw error; + } + } + + /** + * Get enhanced documentation for a specific node + */ + async getEnhancedNodeDocumentation(nodeType: string): Promise { + if (!this.cloned) { + await this.ensureDocsRepository(); + } + + try { + const nodeName = this.extractNodeName(nodeType); + + // Common documentation paths to check + const possiblePaths = [ + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'app-nodes', `${nodeType}.md`), + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'core-nodes', `${nodeType}.md`), + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'trigger-nodes', `${nodeType}.md`), + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'core-nodes', `${nodeName}.md`), + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'app-nodes', `${nodeName}.md`), + path.join(this.docsPath, 'docs', 'integrations', 'builtin', 'trigger-nodes', `${nodeName}.md`), + ]; + + for (const docPath of possiblePaths) { + try { + const content = await fs.readFile(docPath, 'utf-8'); + logger.debug(`Checking doc path: ${docPath}`); + + // Skip credential documentation files + if (this.isCredentialDoc(docPath, content)) { + logger.debug(`Skipping credential doc: ${docPath}`); + continue; + } + + logger.info(`Found documentation for ${nodeType} at: ${docPath}`); + return this.parseEnhancedDocumentation(content, docPath); + } catch (error) { + // File doesn't exist, continue + continue; + } + } + + // If no exact match, try to find by searching + logger.debug(`No exact match found, searching for ${nodeType}...`); + const foundPath = await this.searchForNodeDoc(nodeType); + if (foundPath) { + logger.info(`Found documentation via search at: ${foundPath}`); + const content = await fs.readFile(foundPath, 'utf-8'); + + if (!this.isCredentialDoc(foundPath, content)) { + return this.parseEnhancedDocumentation(content, foundPath); + } + } + + logger.warn(`No documentation found for node: ${nodeType}`); + return null; + } catch (error) { + logger.error(`Failed to get documentation for ${nodeType}:`, error); + return null; + } + } + + /** + * Parse markdown content into enhanced documentation structure + */ + private parseEnhancedDocumentation(markdown: string, filePath: string): EnhancedNodeDocumentation { + const doc: EnhancedNodeDocumentation = { + markdown, + url: this.generateDocUrl(filePath), + }; + + // Extract frontmatter metadata + const metadata = this.extractFrontmatter(markdown); + if (metadata) { + doc.metadata = metadata; + doc.title = metadata.title; + doc.description = metadata.description; + } + + // Extract title and description from content if not in frontmatter + if (!doc.title) { + doc.title = this.extractTitle(markdown); + } + if (!doc.description) { + doc.description = this.extractDescription(markdown); + } + + // Extract operations + doc.operations = this.extractOperations(markdown); + + // Extract API method mappings + doc.apiMethods = this.extractApiMethods(markdown); + + // Extract code examples + doc.examples = this.extractCodeExamples(markdown); + + // Extract templates + doc.templates = this.extractTemplates(markdown); + + // Extract related resources + doc.relatedResources = this.extractRelatedResources(markdown); + + // Extract required scopes + doc.requiredScopes = this.extractRequiredScopes(markdown); + + return doc; + } + + /** + * Extract frontmatter metadata + */ + private extractFrontmatter(markdown: string): any { + const frontmatterMatch = markdown.match(/^---\n([\s\S]*?)\n---/); + if (!frontmatterMatch) return null; + + const frontmatter: any = {}; + const lines = frontmatterMatch[1].split('\n'); + + for (const line of lines) { + if (line.includes(':')) { + const [key, ...valueParts] = line.split(':'); + const value = valueParts.join(':').trim(); + + // Parse arrays + if (value.startsWith('[') && value.endsWith(']')) { + frontmatter[key.trim()] = value + .slice(1, -1) + .split(',') + .map(v => v.trim()); + } else { + frontmatter[key.trim()] = value; + } + } + } + + return frontmatter; + } + + /** + * Extract title from markdown + */ + private extractTitle(markdown: string): string | undefined { + const match = markdown.match(/^#\s+(.+)$/m); + return match ? match[1].trim() : undefined; + } + + /** + * Extract description from markdown + */ + private extractDescription(markdown: string): string | undefined { + // Remove frontmatter + const content = markdown.replace(/^---[\s\S]*?---\n/, ''); + + // Find first paragraph after title + const lines = content.split('\n'); + let foundTitle = false; + let description = ''; + + for (const line of lines) { + if (line.startsWith('#')) { + foundTitle = true; + continue; + } + + if (foundTitle && line.trim() && !line.startsWith('#') && !line.startsWith('*') && !line.startsWith('-')) { + description = line.trim(); + break; + } + } + + return description || undefined; + } + + /** + * Extract operations from markdown + */ + private extractOperations(markdown: string): OperationInfo[] { + const operations: OperationInfo[] = []; + + // Find operations section + const operationsMatch = markdown.match(/##\s+Operations\s*\n([\s\S]*?)(?=\n##|\n#|$)/i); + if (!operationsMatch) return operations; + + const operationsText = operationsMatch[1]; + + // Parse operation structure - handle nested bullet points + let currentResource: string | null = null; + const lines = operationsText.split('\n'); + + for (const line of lines) { + const trimmedLine = line.trim(); + + // Skip empty lines + if (!trimmedLine) continue; + + // Resource level - non-indented bullet with bold text (e.g., "* **Channel**") + if (line.match(/^\*\s+\*\*[^*]+\*\*\s*$/) && !line.match(/^\s+/)) { + const match = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*/); + if (match) { + currentResource = match[1].trim(); + } + continue; + } + + // Skip if we don't have a current resource + if (!currentResource) continue; + + // Operation level - indented bullets (any whitespace + *) + if (line.match(/^\s+\*\s+/) && currentResource) { + // Extract operation name and description + const operationMatch = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*(.*)$/); + if (operationMatch) { + const operation = operationMatch[1].trim(); + let description = operationMatch[2].trim(); + + // Clean up description + description = description.replace(/^:\s*/, '').replace(/\.$/, '').trim(); + + operations.push({ + resource: currentResource, + operation, + description: description || operation, + }); + } else { + // Handle operations without bold formatting or with different format + const simpleMatch = trimmedLine.match(/^\*\s+(.+)$/); + if (simpleMatch) { + const text = simpleMatch[1].trim(); + // Split by colon to separate operation from description + const colonIndex = text.indexOf(':'); + if (colonIndex > 0) { + operations.push({ + resource: currentResource, + operation: text.substring(0, colonIndex).trim(), + description: text.substring(colonIndex + 1).trim() || text, + }); + } else { + operations.push({ + resource: currentResource, + operation: text, + description: text, + }); + } + } + } + } + } + + return operations; + } + + /** + * Extract API method mappings from markdown tables + */ + private extractApiMethods(markdown: string): ApiMethodMapping[] { + const apiMethods: ApiMethodMapping[] = []; + + // Find API method tables + const tableRegex = /\|.*Resource.*\|.*Operation.*\|.*(?:Slack API method|API method|Method).*\|[\s\S]*?\n(?=\n[^|]|$)/gi; + const tables = markdown.match(tableRegex); + + if (!tables) return apiMethods; + + for (const table of tables) { + const rows = table.split('\n').filter(row => row.trim() && !row.includes('---')); + + // Skip header row + for (let i = 1; i < rows.length; i++) { + const cells = rows[i].split('|').map(cell => cell.trim()).filter(Boolean); + + if (cells.length >= 3) { + const resource = cells[0]; + const operation = cells[1]; + const apiMethodCell = cells[2]; + + // Extract API method and URL from markdown link + const linkMatch = apiMethodCell.match(/\[([^\]]+)\]\(([^)]+)\)/); + + if (linkMatch) { + apiMethods.push({ + resource, + operation, + apiMethod: linkMatch[1], + apiUrl: linkMatch[2], + }); + } else { + apiMethods.push({ + resource, + operation, + apiMethod: apiMethodCell, + apiUrl: '', + }); + } + } + } + } + + return apiMethods; + } + + /** + * Extract code examples from markdown + */ + private extractCodeExamples(markdown: string): CodeExample[] { + const examples: CodeExample[] = []; + + // Extract all code blocks with language + const codeBlockRegex = /```(\w+)?\n([\s\S]*?)```/g; + let match; + + while ((match = codeBlockRegex.exec(markdown)) !== null) { + const language = match[1] || 'text'; + const code = match[2].trim(); + + // Look for title or description before the code block + const beforeCodeIndex = match.index; + const beforeText = markdown.substring(Math.max(0, beforeCodeIndex - 200), beforeCodeIndex); + const titleMatch = beforeText.match(/(?:###|####)\s+(.+)$/m); + + const example: CodeExample = { + type: this.mapLanguageToType(language), + language, + code, + }; + + if (titleMatch) { + example.title = titleMatch[1].trim(); + } + + // Try to parse JSON examples + if (language === 'json') { + try { + JSON.parse(code); + examples.push(example); + } catch (e) { + // Skip invalid JSON + } + } else { + examples.push(example); + } + } + + return examples; + } + + /** + * Extract template information + */ + private extractTemplates(markdown: string): TemplateInfo[] { + const templates: TemplateInfo[] = []; + + // Look for template widget + const templateWidgetMatch = markdown.match(/\[\[\s*templatesWidget\s*\(\s*[^,]+,\s*'([^']+)'\s*\)\s*\]\]/); + if (templateWidgetMatch) { + templates.push({ + name: templateWidgetMatch[1], + description: `Templates for ${templateWidgetMatch[1]}`, + }); + } + + return templates; + } + + /** + * Extract related resources + */ + private extractRelatedResources(markdown: string): RelatedResource[] { + const resources: RelatedResource[] = []; + + // Find related resources section + const relatedMatch = markdown.match(/##\s+(?:Related resources|Related|Resources)\s*\n([\s\S]*?)(?=\n##|\n#|$)/i); + if (!relatedMatch) return resources; + + const relatedText = relatedMatch[1]; + + // Extract links + const linkRegex = /\[([^\]]+)\]\(([^)]+)\)/g; + let match; + + while ((match = linkRegex.exec(relatedText)) !== null) { + const title = match[1]; + const url = match[2]; + + // Determine resource type + let type: RelatedResource['type'] = 'external'; + if (url.includes('docs.n8n.io') || url.startsWith('/')) { + type = 'documentation'; + } else if (url.includes('api.')) { + type = 'api'; + } + + resources.push({ title, url, type }); + } + + return resources; + } + + /** + * Extract required scopes + */ + private extractRequiredScopes(markdown: string): string[] { + const scopes: string[] = []; + + // Find required scopes section + const scopesMatch = markdown.match(/##\s+(?:Required scopes|Scopes)\s*\n([\s\S]*?)(?=\n##|\n#|$)/i); + if (!scopesMatch) return scopes; + + const scopesText = scopesMatch[1]; + + // Extract scope patterns (common formats) + const scopeRegex = /`([a-z:._-]+)`/gi; + let match; + + while ((match = scopeRegex.exec(scopesText)) !== null) { + const scope = match[1]; + if (scope.includes(':') || scope.includes('.')) { + scopes.push(scope); + } + } + + return [...new Set(scopes)]; // Remove duplicates + } + + /** + * Map language to code example type + */ + private mapLanguageToType(language: string): CodeExample['type'] { + switch (language.toLowerCase()) { + case 'json': + return 'json'; + case 'js': + case 'javascript': + case 'typescript': + case 'ts': + return 'javascript'; + case 'yaml': + case 'yml': + return 'yaml'; + default: + return 'text'; + } + } + + /** + * Check if this is a credential documentation + */ + private isCredentialDoc(filePath: string, content: string): boolean { + return filePath.includes('/credentials/') || + (content.includes('title: ') && + content.includes(' credentials') && + !content.includes(' node documentation')); + } + + /** + * Extract node name from node type + */ + private extractNodeName(nodeType: string): string { + const parts = nodeType.split('.'); + const name = parts[parts.length - 1]; + return name.toLowerCase(); + } + + /** + * Search for node documentation file + */ + private async searchForNodeDoc(nodeType: string): Promise { + try { + // First try exact match with nodeType + let result = execSync( + `find ${this.docsPath}/docs/integrations/builtin -name "${nodeType}.md" -type f | grep -v credentials | head -1`, + { encoding: 'utf-8', stdio: 'pipe' } + ).trim(); + + if (result) return result; + + // Try lowercase nodeType + const lowerNodeType = nodeType.toLowerCase(); + result = execSync( + `find ${this.docsPath}/docs/integrations/builtin -name "${lowerNodeType}.md" -type f | grep -v credentials | head -1`, + { encoding: 'utf-8', stdio: 'pipe' } + ).trim(); + + if (result) return result; + + // Try node name pattern but exclude trigger nodes + const nodeName = this.extractNodeName(nodeType); + result = execSync( + `find ${this.docsPath}/docs/integrations/builtin -name "*${nodeName}.md" -type f | grep -v credentials | grep -v trigger | head -1`, + { encoding: 'utf-8', stdio: 'pipe' } + ).trim(); + + return result || null; + } catch (error) { + return null; + } + } + + /** + * Generate documentation URL from file path + */ + private generateDocUrl(filePath: string): string { + const relativePath = path.relative(this.docsPath, filePath); + const urlPath = relativePath + .replace(/^docs\//, '') + .replace(/\.md$/, '') + .replace(/\\/g, '/'); + + return `https://docs.n8n.io/${urlPath}`; + } + + /** + * Clean up cloned repository + */ + async cleanup(): Promise { + try { + await fs.rm(this.docsPath, { recursive: true, force: true }); + this.cloned = false; + logger.info('Cleaned up documentation repository'); + } catch (error) { + logger.error('Failed to cleanup docs repository:', error); + } + } +} \ No newline at end of file diff --git a/src/utils/example-generator.ts b/src/utils/example-generator.ts index 6469a24..5c132a4 100644 --- a/src/utils/example-generator.ts +++ b/src/utils/example-generator.ts @@ -1,267 +1,140 @@ -import { logger } from './logger'; - -interface NodeExample { - nodes: any[]; - connections: any; - pinData?: any; - meta?: any; -} - -interface NodeParameter { - name: string; - type: string; - default?: any; - options?: any[]; - displayOptions?: any; -} - +/** + * Generates example workflows and parameters for n8n nodes + */ export class ExampleGenerator { /** - * Generate example workflow for a node + * Generate an example workflow from node definition */ - static generateNodeExample(nodeType: string, nodeData: any): NodeExample { - const nodeName = this.getNodeName(nodeType); - const nodeId = this.generateNodeId(); + static generateFromNodeDefinition(nodeDefinition: any): any { + const nodeName = nodeDefinition.displayName || 'Example Node'; + const nodeType = nodeDefinition.name || 'n8n-nodes-base.exampleNode'; - // Base example structure - const example: NodeExample = { - nodes: [{ - parameters: this.generateExampleParameters(nodeType, nodeData), - type: nodeType, - typeVersion: nodeData.typeVersion || 1, - position: [220, 120], - id: nodeId, - name: nodeName - }], - connections: { - [nodeName]: { - main: [[]] - } - }, - pinData: {}, - meta: { - templateCredsSetupCompleted: true, - instanceId: this.generateInstanceId() - } + return { + name: `${nodeName} Example Workflow`, + nodes: [ + { + parameters: this.generateExampleParameters(nodeDefinition), + id: this.generateNodeId(), + name: nodeName, + type: nodeType, + typeVersion: nodeDefinition.version || 1, + position: [250, 300], + }, + ], + connections: {}, + active: false, + settings: {}, + tags: ['example', 'generated'], }; - - // Add specific configurations based on node type - this.addNodeSpecificConfig(nodeType, example, nodeData); - - return example; } /** - * Generate example parameters based on node type + * Generate example parameters based on node properties */ - private static generateExampleParameters(nodeType: string, nodeData: any): any { + static generateExampleParameters(nodeDefinition: any): any { const params: any = {}; - // Extract node name for specific handling - const nodeName = nodeType.split('.').pop()?.toLowerCase() || ''; - - // Common node examples - switch (nodeName) { - case 'if': - return { - conditions: { - options: { - caseSensitive: true, - leftValue: "", - typeValidation: "strict", - version: 2 - }, - conditions: [{ - id: this.generateNodeId(), - leftValue: "={{ $json }}", - rightValue: "", - operator: { - type: "object", - operation: "notEmpty", - singleValue: true - } - }], - combinator: "and" - }, - options: {} - }; - - case 'webhook': - return { - httpMethod: "POST", - path: "webhook-path", - responseMode: "onReceived", - responseData: "allEntries", - options: {} - }; - - case 'httprequest': - return { - method: "GET", - url: "https://api.example.com/data", - authentication: "none", - options: {}, - headerParametersUi: { - parameter: [] - } - }; - - case 'function': - return { - functionCode: "// Add your JavaScript code here\nreturn $input.all();" - }; - - case 'set': - return { - mode: "manual", - duplicateItem: false, - values: { - string: [{ - name: "myField", - value: "myValue" - }] - } - }; - - case 'split': - return { - batchSize: 10, - options: {} - }; - - default: - // Generate generic parameters from node properties - return this.generateGenericParameters(nodeData); - } - } - - /** - * Generate generic parameters from node properties - */ - private static generateGenericParameters(nodeData: any): any { - const params: any = {}; - - if (nodeData.properties) { - for (const prop of nodeData.properties) { - if (prop.default !== undefined) { - params[prop.name] = prop.default; - } else if (prop.type === 'string') { - params[prop.name] = ''; - } else if (prop.type === 'number') { - params[prop.name] = 0; - } else if (prop.type === 'boolean') { - params[prop.name] = false; - } else if (prop.type === 'options' && prop.options?.length > 0) { - params[prop.name] = prop.options[0].value; + // If properties are available, generate examples based on them + if (Array.isArray(nodeDefinition.properties)) { + for (const prop of nodeDefinition.properties) { + if (prop.name && prop.type) { + params[prop.name] = this.generateExampleValue(prop); } } } + // Add common parameters based on node type + if (nodeDefinition.displayName?.toLowerCase().includes('trigger')) { + params.pollTimes = { + item: [ + { + mode: 'everyMinute', + }, + ], + }; + } + return params; } /** - * Add node-specific configurations + * Generate example value based on property definition */ - private static addNodeSpecificConfig(nodeType: string, example: NodeExample, nodeData: any): void { - const nodeName = nodeType.split('.').pop()?.toLowerCase() || ''; - - // Add specific connection structures for different node types - switch (nodeName) { - case 'if': - // IF node has true/false outputs - example.connections[example.nodes[0].name] = { - main: [[], []] // Two outputs: true, false - }; - break; + private static generateExampleValue(property: any): any { + switch (property.type) { + case 'string': + if (property.name.toLowerCase().includes('url')) { + return 'https://example.com'; + } + if (property.name.toLowerCase().includes('email')) { + return 'user@example.com'; + } + if (property.name.toLowerCase().includes('name')) { + return 'Example Name'; + } + return property.default || 'example-value'; - case 'switch': - // Switch node can have multiple outputs - const outputs = nodeData.outputs || 3; - example.connections[example.nodes[0].name] = { - main: Array(outputs).fill([]) - }; - break; + case 'number': + return property.default || 10; - case 'merge': - // Merge node has multiple inputs - example.nodes[0].position = [400, 120]; - // Add dummy input nodes - example.nodes.push({ - parameters: {}, - type: "n8n-nodes-base.noOp", - typeVersion: 1, - position: [200, 60], - id: this.generateNodeId(), - name: "Input 1" - }); - example.nodes.push({ - parameters: {}, - type: "n8n-nodes-base.noOp", - typeVersion: 1, - position: [200, 180], - id: this.generateNodeId(), - name: "Input 2" - }); - example.connections = { - "Input 1": { main: [[{ node: example.nodes[0].name, type: "main", index: 0 }]] }, - "Input 2": { main: [[{ node: example.nodes[0].name, type: "main", index: 1 }]] }, - [example.nodes[0].name]: { main: [[]] } - }; - break; - } - - // Add credentials if needed - if (nodeData.credentials?.length > 0) { - example.nodes[0].credentials = {}; - for (const cred of nodeData.credentials) { - example.nodes[0].credentials[cred.name] = { - id: this.generateNodeId(), - name: `${cred.name} account` - }; - } + case 'boolean': + return property.default !== undefined ? property.default : true; + + case 'options': + if (property.options && property.options.length > 0) { + return property.options[0].value; + } + return property.default || ''; + + case 'collection': + case 'fixedCollection': + return {}; + + default: + return property.default || null; } } /** - * Extract display name from node type - */ - private static getNodeName(nodeType: string): string { - const parts = nodeType.split('.'); - const name = parts[parts.length - 1]; - return name.charAt(0).toUpperCase() + name.slice(1); - } - - /** - * Generate a random node ID + * Generate a unique node ID */ private static generateNodeId(): string { - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - const r = Math.random() * 16 | 0; - const v = c === 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); + return Math.random().toString(36).substring(2, 15) + + Math.random().toString(36).substring(2, 15); } /** - * Generate instance ID + * Generate example based on node operations */ - private static generateInstanceId(): string { - return Array(64).fill(0).map(() => Math.floor(Math.random() * 16).toString(16)).join(''); - } - - /** - * Generate example from node definition - */ - static generateFromNodeDefinition(nodeDefinition: any): NodeExample { - const nodeType = nodeDefinition.description?.name || 'n8n-nodes-base.node'; - const nodeData = { - typeVersion: nodeDefinition.description?.version || 1, - properties: nodeDefinition.description?.properties || [], - credentials: nodeDefinition.description?.credentials || [], - outputs: nodeDefinition.description?.outputs || ['main'] - }; + static generateFromOperations(operations: any[]): any { + const examples: any[] = []; - return this.generateNodeExample(nodeType, nodeData); + if (!operations || operations.length === 0) { + return examples; + } + + // Group operations by resource + const resourceMap = new Map(); + for (const op of operations) { + if (!resourceMap.has(op.resource)) { + resourceMap.set(op.resource, []); + } + resourceMap.get(op.resource)!.push(op); + } + + // Generate example for each resource + for (const [resource, ops] of resourceMap) { + examples.push({ + resource, + operation: ops[0].operation, + description: `Example: ${ops[0].description}`, + parameters: { + resource, + operation: ops[0].operation, + }, + }); + } + + return examples; } } \ No newline at end of file diff --git a/src/utils/node-source-extractor.ts b/src/utils/node-source-extractor.ts index a512e16..7510023 100644 --- a/src/utils/node-source-extractor.ts +++ b/src/utils/node-source-extractor.ts @@ -21,6 +21,8 @@ export class NodeSourceExtractor { '/n8n-modules', // Common n8n installation paths process.env.N8N_CUSTOM_EXTENSIONS || '', + // Additional local path for testing + path.join(process.cwd(), 'node_modules'), ].filter(Boolean); /** @@ -75,35 +77,45 @@ export class NodeSourceExtractor { nodeName: string ): Promise { try { - // First, try standard patterns - const standardPatterns = [ - `${packageName}/dist/nodes/${nodeName}/${nodeName}.node.js`, - `${packageName}/dist/nodes/${nodeName}.node.js`, - `${packageName}/nodes/${nodeName}/${nodeName}.node.js`, - `${packageName}/nodes/${nodeName}.node.js`, - `${nodeName}/${nodeName}.node.js`, - `${nodeName}.node.js`, + // Try both the provided case and capitalized first letter + const nodeNameVariants = [ + nodeName, + nodeName.charAt(0).toUpperCase() + nodeName.slice(1), // Capitalize first letter + nodeName.toLowerCase(), // All lowercase + nodeName.toUpperCase(), // All uppercase ]; + + // First, try standard patterns with all case variants + for (const nameVariant of nodeNameVariants) { + const standardPatterns = [ + `${packageName}/dist/nodes/${nameVariant}/${nameVariant}.node.js`, + `${packageName}/dist/nodes/${nameVariant}.node.js`, + `${packageName}/nodes/${nameVariant}/${nameVariant}.node.js`, + `${packageName}/nodes/${nameVariant}.node.js`, + `${nameVariant}/${nameVariant}.node.js`, + `${nameVariant}.node.js`, + ]; - // Additional patterns for nested node structures (e.g., agents/Agent) - const nestedPatterns = [ - `${packageName}/dist/nodes/*/${nodeName}/${nodeName}.node.js`, - `${packageName}/dist/nodes/**/${nodeName}/${nodeName}.node.js`, - `${packageName}/nodes/*/${nodeName}/${nodeName}.node.js`, - `${packageName}/nodes/**/${nodeName}/${nodeName}.node.js`, - ]; + // Additional patterns for nested node structures (e.g., agents/Agent) + const nestedPatterns = [ + `${packageName}/dist/nodes/*/${nameVariant}/${nameVariant}.node.js`, + `${packageName}/dist/nodes/**/${nameVariant}/${nameVariant}.node.js`, + `${packageName}/nodes/*/${nameVariant}/${nameVariant}.node.js`, + `${packageName}/nodes/**/${nameVariant}/${nameVariant}.node.js`, + ]; - // Try standard patterns first - for (const pattern of standardPatterns) { - const fullPath = path.join(basePath, pattern); - const result = await this.tryLoadNodeFile(fullPath, packageName, nodeName, basePath); - if (result) return result; - } + // Try standard patterns first + for (const pattern of standardPatterns) { + const fullPath = path.join(basePath, pattern); + const result = await this.tryLoadNodeFile(fullPath, packageName, nodeName, basePath); + if (result) return result; + } - // Try nested patterns (with glob-like search) - for (const pattern of nestedPatterns) { - const result = await this.searchWithGlobPattern(basePath, pattern, packageName, nodeName); - if (result) return result; + // Try nested patterns (with glob-like search) + for (const pattern of nestedPatterns) { + const result = await this.searchWithGlobPattern(basePath, pattern, packageName, nodeName); + if (result) return result; + } } // If basePath contains .pnpm, search in pnpm structure @@ -250,13 +262,49 @@ export class NodeSourceExtractor { try { const sourceCode = await fs.readFile(fullPath, 'utf-8'); - // Try to find credential file - const credentialPath = fullPath.replace('.node.js', '.credentials.js'); + // Try to find credential files let credentialCode: string | undefined; + + // First, try alongside the node file + const credentialPath = fullPath.replace('.node.js', '.credentials.js'); try { credentialCode = await fs.readFile(credentialPath, 'utf-8'); } catch { - // Credential file is optional + // Try in the credentials directory + const possibleCredentialPaths = [ + // Standard n8n structure: dist/credentials/NodeNameApi.credentials.js + path.join(packageBasePath, packageName, 'dist/credentials', `${nodeName}Api.credentials.js`), + path.join(packageBasePath, packageName, 'dist/credentials', `${nodeName}OAuth2Api.credentials.js`), + path.join(packageBasePath, packageName, 'credentials', `${nodeName}Api.credentials.js`), + path.join(packageBasePath, packageName, 'credentials', `${nodeName}OAuth2Api.credentials.js`), + // Without packageName in path + path.join(packageBasePath, 'dist/credentials', `${nodeName}Api.credentials.js`), + path.join(packageBasePath, 'dist/credentials', `${nodeName}OAuth2Api.credentials.js`), + path.join(packageBasePath, 'credentials', `${nodeName}Api.credentials.js`), + path.join(packageBasePath, 'credentials', `${nodeName}OAuth2Api.credentials.js`), + // Try relative to node location + path.join(path.dirname(path.dirname(fullPath)), 'credentials', `${nodeName}Api.credentials.js`), + path.join(path.dirname(path.dirname(fullPath)), 'credentials', `${nodeName}OAuth2Api.credentials.js`), + path.join(path.dirname(path.dirname(path.dirname(fullPath))), 'credentials', `${nodeName}Api.credentials.js`), + path.join(path.dirname(path.dirname(path.dirname(fullPath))), 'credentials', `${nodeName}OAuth2Api.credentials.js`), + ]; + + // Try to find any credential file + const allCredentials: string[] = []; + for (const credPath of possibleCredentialPaths) { + try { + const content = await fs.readFile(credPath, 'utf-8'); + allCredentials.push(content); + logger.debug(`Found credential file at: ${credPath}`); + } catch { + // Continue searching + } + } + + // If we found credentials, combine them + if (allCredentials.length > 0) { + credentialCode = allCredentials.join('\n\n// --- Next Credential File ---\n\n'); + } } // Try to get package.json info @@ -266,12 +314,16 @@ export class NodeSourceExtractor { path.join(packageBasePath, packageName, 'package.json'), path.join(path.dirname(path.dirname(fullPath)), 'package.json'), path.join(path.dirname(path.dirname(path.dirname(fullPath))), 'package.json'), + // Try to go up from the node location to find package.json + path.join(fullPath.split('/dist/')[0], 'package.json'), + path.join(fullPath.split('/nodes/')[0], 'package.json'), ]; for (const packageJsonPath of possiblePackageJsonPaths) { try { const packageJson = await fs.readFile(packageJsonPath, 'utf-8'); packageInfo = JSON.parse(packageJson); + logger.debug(`Found package.json at: ${packageJsonPath}`); break; } catch { // Try next path @@ -295,10 +347,26 @@ export class NodeSourceExtractor { */ async listAvailableNodes(category?: string, search?: string): Promise { const nodes: any[] = []; + const seenNodes = new Set(); // Track unique nodes for (const basePath of this.n8nBasePaths) { try { - await this.scanDirectoryForNodes(basePath, nodes, category, search); + // Check for n8n-nodes-base specifically + const n8nNodesBasePath = path.join(basePath, 'n8n-nodes-base', 'dist', 'nodes'); + try { + await fs.access(n8nNodesBasePath); + await this.scanDirectoryForNodes(n8nNodesBasePath, nodes, category, search, seenNodes); + } catch { + // Try without dist + const altPath = path.join(basePath, 'n8n-nodes-base', 'nodes'); + try { + await fs.access(altPath); + await this.scanDirectoryForNodes(altPath, nodes, category, search, seenNodes); + } catch { + // Try the base path directly + await this.scanDirectoryForNodes(basePath, nodes, category, search, seenNodes); + } + } } catch (error) { logger.debug(`Failed to scan ${basePath}: ${error}`); } @@ -314,7 +382,8 @@ export class NodeSourceExtractor { dirPath: string, nodes: any[], category?: string, - search?: string + search?: string, + seenNodes?: Set ): Promise { try { const entries = await fs.readdir(dirPath, { withFileTypes: true }); @@ -330,8 +399,15 @@ export class NodeSourceExtractor { const descriptionMatch = content.match(/description:\s*['"`]([^'"`]+)['"`]/); if (nameMatch) { + const nodeName = entry.name.replace('.node.js', ''); + + // Skip if we've already seen this node + if (seenNodes && seenNodes.has(nodeName)) { + continue; + } + const nodeInfo = { - name: entry.name.replace('.node.js', ''), + name: nodeName, displayName: nameMatch[1], description: descriptionMatch ? descriptionMatch[1] : '', location: fullPath, @@ -347,6 +423,9 @@ export class NodeSourceExtractor { } nodes.push(nodeInfo); + if (seenNodes) { + seenNodes.add(nodeName); + } } } catch { // Skip files we can't read @@ -354,10 +433,10 @@ export class NodeSourceExtractor { } else if (entry.isDirectory()) { // Special handling for .pnpm directories if (entry.name === '.pnpm') { - await this.scanPnpmDirectory(path.join(dirPath, entry.name), nodes, category, search); + await this.scanPnpmDirectory(path.join(dirPath, entry.name), nodes, category, search, seenNodes); } else if (entry.name !== 'node_modules') { // Recursively scan subdirectories - await this.scanDirectoryForNodes(path.join(dirPath, entry.name), nodes, category, search); + await this.scanDirectoryForNodes(path.join(dirPath, entry.name), nodes, category, search, seenNodes); } } } @@ -373,7 +452,8 @@ export class NodeSourceExtractor { pnpmPath: string, nodes: any[], category?: string, - search?: string + search?: string, + seenNodes?: Set ): Promise { try { const entries = await fs.readdir(pnpmPath); @@ -382,7 +462,7 @@ export class NodeSourceExtractor { const entryPath = path.join(pnpmPath, entry, 'node_modules'); try { await fs.access(entryPath); - await this.scanDirectoryForNodes(entryPath, nodes, category, search); + await this.scanDirectoryForNodes(entryPath, nodes, category, search, seenNodes); } catch { // Skip if node_modules doesn't exist } diff --git a/tests/debug-slack-doc.js b/tests/debug-slack-doc.js new file mode 100644 index 0000000..00f9971 --- /dev/null +++ b/tests/debug-slack-doc.js @@ -0,0 +1,51 @@ +#!/usr/bin/env node + +const { execSync } = require('child_process'); +const path = require('path'); + +const tempDir = path.join(process.cwd(), 'temp', 'n8n-docs'); + +console.log('๐Ÿ” Debugging Slack documentation search...\n'); + +// Search for all Slack related files +console.log('All Slack-related markdown files:'); +try { + const allSlackFiles = execSync( + `find ${tempDir}/docs/integrations/builtin -name "*slack*.md" -type f`, + { encoding: 'utf-8' } + ).trim().split('\n'); + + allSlackFiles.forEach(file => { + console.log(` - ${file}`); + }); +} catch (error) { + console.log(' No files found'); +} + +console.log('\n๐Ÿ“„ Checking file paths:'); +const possiblePaths = [ + 'docs/integrations/builtin/app-nodes/n8n-nodes-base.Slack.md', + 'docs/integrations/builtin/app-nodes/n8n-nodes-base.slack.md', + 'docs/integrations/builtin/core-nodes/n8n-nodes-base.Slack.md', + 'docs/integrations/builtin/core-nodes/n8n-nodes-base.slack.md', + 'docs/integrations/builtin/trigger-nodes/n8n-nodes-base.Slack.md', + 'docs/integrations/builtin/trigger-nodes/n8n-nodes-base.slack.md', + 'docs/integrations/builtin/credentials/slack.md', +]; + +const fs = require('fs'); +possiblePaths.forEach(p => { + const fullPath = path.join(tempDir, p); + const exists = fs.existsSync(fullPath); + console.log(` ${exists ? 'โœ“' : 'โœ—'} ${p}`); + + if (exists) { + // Read first few lines + const content = fs.readFileSync(fullPath, 'utf-8'); + const lines = content.split('\n').slice(0, 10); + const title = lines.find(l => l.includes('title:')); + if (title) { + console.log(` Title: ${title.trim()}`); + } + } +}); \ No newline at end of file diff --git a/tests/demo-enhanced-documentation.js b/tests/demo-enhanced-documentation.js new file mode 100644 index 0000000..e31fcb8 --- /dev/null +++ b/tests/demo-enhanced-documentation.js @@ -0,0 +1,112 @@ +#!/usr/bin/env node + +const { EnhancedDocumentationFetcher } = require('../dist/utils/enhanced-documentation-fetcher'); + +async function demoEnhancedDocumentation() { + console.log('=== Enhanced Documentation Parser Demo ===\n'); + console.log('This demo shows how the enhanced DocumentationFetcher extracts rich content from n8n documentation.\n'); + + const fetcher = new EnhancedDocumentationFetcher(); + + try { + // Demo 1: Slack node (complex app node with many operations) + console.log('1. SLACK NODE DOCUMENTATION'); + console.log('=' .repeat(50)); + const slackDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDoc) { + console.log('\n๐Ÿ“„ Basic Information:'); + console.log(` โ€ข Title: ${slackDoc.title}`); + console.log(` โ€ข Description: ${slackDoc.description}`); + console.log(` โ€ข URL: ${slackDoc.url}`); + + console.log('\n๐Ÿ“Š Content Statistics:'); + console.log(` โ€ข Operations: ${slackDoc.operations?.length || 0} operations across multiple resources`); + console.log(` โ€ข API Methods: ${slackDoc.apiMethods?.length || 0} mapped to Slack API endpoints`); + console.log(` โ€ข Examples: ${slackDoc.examples?.length || 0} code examples`); + console.log(` โ€ข Resources: ${slackDoc.relatedResources?.length || 0} related documentation links`); + console.log(` โ€ข Scopes: ${slackDoc.requiredScopes?.length || 0} OAuth scopes`); + + // Show operations breakdown + if (slackDoc.operations && slackDoc.operations.length > 0) { + console.log('\n๐Ÿ”ง Operations by Resource:'); + const resourceMap = new Map(); + slackDoc.operations.forEach(op => { + if (!resourceMap.has(op.resource)) { + resourceMap.set(op.resource, []); + } + resourceMap.get(op.resource).push(op); + }); + + for (const [resource, ops] of resourceMap) { + console.log(`\n ${resource} (${ops.length} operations):`); + ops.slice(0, 5).forEach(op => { + console.log(` โ€ข ${op.operation}: ${op.description}`); + }); + if (ops.length > 5) { + console.log(` ... and ${ops.length - 5} more`); + } + } + } + + // Show API method mappings + if (slackDoc.apiMethods && slackDoc.apiMethods.length > 0) { + console.log('\n๐Ÿ”— API Method Mappings (sample):'); + slackDoc.apiMethods.slice(0, 5).forEach(api => { + console.log(` โ€ข ${api.resource}.${api.operation} โ†’ ${api.apiMethod}`); + console.log(` URL: ${api.apiUrl}`); + }); + if (slackDoc.apiMethods.length > 5) { + console.log(` ... and ${slackDoc.apiMethods.length - 5} more mappings`); + } + } + } + + // Demo 2: If node (core node with conditions) + console.log('\n\n2. IF NODE DOCUMENTATION'); + console.log('=' .repeat(50)); + const ifDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.if'); + + if (ifDoc) { + console.log('\n๐Ÿ“„ Basic Information:'); + console.log(` โ€ข Title: ${ifDoc.title}`); + console.log(` โ€ข Description: ${ifDoc.description}`); + console.log(` โ€ข URL: ${ifDoc.url}`); + + if (ifDoc.relatedResources && ifDoc.relatedResources.length > 0) { + console.log('\n๐Ÿ“š Related Resources:'); + ifDoc.relatedResources.forEach(res => { + console.log(` โ€ข ${res.title} (${res.type})`); + console.log(` ${res.url}`); + }); + } + } + + // Demo 3: Summary of enhanced parsing capabilities + console.log('\n\n3. ENHANCED PARSING CAPABILITIES'); + console.log('=' .repeat(50)); + console.log('\nThe enhanced DocumentationFetcher can extract:'); + console.log(' โœ“ Markdown frontmatter (metadata, tags, priority)'); + console.log(' โœ“ Operations with resource grouping and descriptions'); + console.log(' โœ“ API method mappings from markdown tables'); + console.log(' โœ“ Code examples (JSON, JavaScript, YAML)'); + console.log(' โœ“ Template references'); + console.log(' โœ“ Related resources and documentation links'); + console.log(' โœ“ Required OAuth scopes'); + console.log('\nThis rich content enables AI agents to:'); + console.log(' โ€ข Understand node capabilities in detail'); + console.log(' โ€ข Map operations to actual API endpoints'); + console.log(' โ€ข Provide accurate examples and usage patterns'); + console.log(' โ€ข Navigate related documentation'); + console.log(' โ€ข Understand authentication requirements'); + + } catch (error) { + console.error('\nError:', error); + } finally { + await fetcher.cleanup(); + console.log('\n\nโœ“ Demo completed'); + } +} + +// Run the demo +demoEnhancedDocumentation().catch(console.error); \ No newline at end of file diff --git a/tests/extracted-nodes-db/extraction-report.json b/tests/extracted-nodes-db/extraction-report.json index 28a7d3a..14002b3 100644 --- a/tests/extracted-nodes-db/extraction-report.json +++ b/tests/extracted-nodes-db/extraction-report.json @@ -1,7194 +1,82 @@ -{ - "tested": 12, - "extracted": 8, - "failed": 4, - "nodes": [ - { - "node_type": "n8n-nodes-base.Function", - "name": "Function", - "package_name": "n8n-nodes-base", - "code_hash": "d68f1ab94b190161e2ec2c56ec6631f6c3992826557c100ec578efff5de96a70", - "code_length": 7449, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/Function/Function.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Function = void 0;\nconst vm2_1 = require(\"@n8n/vm2\");\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst JavaScriptSandbox_1 = require(\"../Code/JavaScriptSandbox\");\nclass Function {\n constructor() {\n this.description = {\n displayName: 'Function',\n name: 'function',\n hidden: true,\n icon: 'fa:code',\n group: ['transform'],\n version: 1,\n description: 'Run custom function code which gets executed once and allows you to add, remove, change and replace items',\n defaults: {\n name: 'Function',\n color: '#FF9922',\n },\n inputs: ['main'],\n outputs: ['main'],\n properties: [\n {\n displayName: 'A newer version of this node type is available, called the โ€˜Codeโ€™ node',\n name: 'notice',\n type: 'notice',\n default: '',\n },\n {\n displayName: 'JavaScript Code',\n name: 'functionCode',\n typeOptions: {\n alwaysOpenEditWindow: true,\n codeAutocomplete: 'function',\n editor: 'code',\n rows: 10,\n },\n type: 'string',\n default: `// Code here will run only once, no matter how many input items there are.\n// More info and help:https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.function/\n// Tip: You can use luxon for dates and $jmespath for querying JSON structures\n\n// Loop over inputs and add a new field called 'myNewField' to the JSON of each one\nfor (item of items) {\n item.json.myNewField = 1;\n}\n\n// You can write logs to the browser console\nconsole.log('Done!');\n\nreturn items;`,\n description: 'The JavaScript code to execute',\n noDataExpression: true,\n },\n ],\n };\n }\n async execute() {\n let items = this.getInputData();\n items = (0, n8n_workflow_1.deepCopy)(items);\n for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n items[itemIndex].index = itemIndex;\n }\n const cleanupData = (inputData) => {\n Object.keys(inputData).map((key) => {\n if (inputData[key] !== null && typeof inputData[key] === 'object') {\n if (inputData[key].constructor.name === 'Object') {\n inputData[key] = cleanupData(inputData[key]);\n }\n else {\n inputData[key] = (0, n8n_workflow_1.deepCopy)(inputData[key]);\n }\n }\n });\n return inputData;\n };\n const sandbox = {\n getNodeParameter: this.getNodeParameter,\n getWorkflowStaticData: this.getWorkflowStaticData,\n helpers: this.helpers,\n items,\n $item: (index) => this.getWorkflowDataProxy(index),\n getBinaryDataAsync: async (item) => {\n var _a;\n if ((item === null || item === void 0 ? void 0 : item.binary) && (item === null || item === void 0 ? void 0 : item.index) !== undefined && (item === null || item === void 0 ? void 0 : item.index) !== null) {\n for (const binaryPropertyName of Object.keys(item.binary)) {\n item.binary[binaryPropertyName].data = (_a = (await this.helpers.getBinaryDataBuffer(item.index, binaryPropertyName))) === null || _a === void 0 ? void 0 : _a.toString('base64');\n }\n }\n return item.binary;\n },\n setBinaryDataAsync: async (item, data) => {\n if (!item) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No item was provided to setBinaryDataAsync (item: INodeExecutionData, data: IBinaryKeyData).');\n }\n if (!data) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No data was provided to setBinaryDataAsync (item: INodeExecutionData, data: IBinaryKeyData).');\n }\n for (const binaryPropertyName of Object.keys(data)) {\n const binaryItem = data[binaryPropertyName];\n data[binaryPropertyName] = await this.helpers.setBinaryDataBuffer(binaryItem, Buffer.from(binaryItem.data, 'base64'));\n }\n item.binary = data;\n },\n };\n Object.assign(sandbox, sandbox.$item(0));\n const mode = this.getMode();\n const options = {\n console: mode === 'manual' ? 'redirect' : 'inherit',\n sandbox,\n require: JavaScriptSandbox_1.vmResolver,\n };\n const vm = new vm2_1.NodeVM(options);\n if (mode === 'manual') {\n vm.on('console.log', this.sendMessageToUI);\n }\n const functionCode = this.getNodeParameter('functionCode', 0);\n try {\n items = await vm.run(`module.exports = async function() {${functionCode}\\n}()`, __dirname);\n items = this.helpers.normalizeItems(items);\n if (items === undefined) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'No data got returned. Always return an Array of items!');\n }\n if (!Array.isArray(items)) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Always an Array of items has to be returned!');\n }\n for (const item of items) {\n if (item.json === undefined) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'All returned items have to contain a property named \"json\"!');\n }\n if (typeof item.json !== 'object') {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The json-property has to be an object!');\n }\n item.json = cleanupData(item.json);\n if (item.binary !== undefined) {\n if (Array.isArray(item.binary) || typeof item.binary !== 'object') {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The binary-property has to be an object!');\n }\n }\n }\n }\n catch (error) {\n if (this.continueOnFail()) {\n items = [{ json: { error: error.message } }];\n }\n else {\n const stackLines = error.stack.split('\\n');\n if (stackLines.length > 0) {\n stackLines.shift();\n const lineParts = stackLines.find((line) => line.includes('Function')).split(':');\n if (lineParts.length > 2) {\n const lineNumber = lineParts.splice(-2, 1);\n if (!isNaN(lineNumber)) {\n error.message = `${error.message} [Line ${lineNumber}]`;\n }\n }\n }\n throw error;\n }\n }\n return [items];\n }\n}\nexports.Function = Function;\n//# sourceMappingURL=Function.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 8, - "extracted_at": "2025-06-07T17:49:22.693Z" - }, - { - "node_type": "n8n-nodes-base.Webhook", - "name": "Webhook", - "package_name": "n8n-nodes-base", - "code_hash": "143d6bbdce335c5a9204112b2c1e8b92e4061d75ba3cb23301845f6fed9e6c71", - "code_length": 10667, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/Webhook/Webhook.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Webhook = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst promises_1 = require(\"stream/promises\");\nconst fs_1 = require(\"fs\");\nconst uuid_1 = require(\"uuid\");\nconst basic_auth_1 = __importDefault(require(\"basic-auth\"));\nconst isbot_1 = __importDefault(require(\"isbot\"));\nconst tmp_promise_1 = require(\"tmp-promise\");\nconst description_1 = require(\"./description\");\nconst error_1 = require(\"./error\");\nclass Webhook extends n8n_workflow_1.Node {\n constructor() {\n super(...arguments);\n this.authPropertyName = 'authentication';\n this.description = {\n displayName: 'Webhook',\n icon: 'file:webhook.svg',\n name: 'webhook',\n group: ['trigger'],\n version: 1,\n description: 'Starts the workflow when a webhook is called',\n eventTriggerDescription: 'Waiting for you to call the Test URL',\n activationMessage: 'You can now make calls to your production webhook URL.',\n defaults: {\n name: 'Webhook',\n },\n triggerPanel: {\n header: '',\n executionsHelp: {\n inactive: 'Webhooks have two modes: test and production.

Use test mode while you build your workflow. Click the \\'listen\\' button, then make a request to the test URL. The executions will show up in the editor.

Use production mode to run your workflow automatically.
Activate the workflow, then make requests to the production URL. These executions will show up in the executions list, but not in the editor.',\n active: 'Webhooks have two modes: test and production.

Use test mode while you build your workflow. Click the \\'listen\\' button, then make a request to the test URL. The executions will show up in the editor.

Use production mode to run your workflow automatically. Since the workflow is activated, you can make requests to the production URL. These executions will show up in the executions list, but not in the editor.',\n },\n activationHint: 'Once youโ€™ve finished building your workflow, run it without having to click this button by using the production webhook URL.',\n },\n inputs: [],\n outputs: ['main'],\n credentials: (0, description_1.credentialsProperty)(this.authPropertyName),\n webhooks: [description_1.defaultWebhookDescription],\n properties: [\n (0, description_1.authenticationProperty)(this.authPropertyName),\n description_1.httpMethodsProperty,\n {\n displayName: 'Path',\n name: 'path',\n type: 'string',\n default: '',\n placeholder: 'webhook',\n required: true,\n description: 'The path to listen to',\n },\n description_1.responseModeProperty,\n {\n displayName: 'Insert a \\'Respond to Webhook\\' node to control when and how you respond. More details',\n name: 'webhookNotice',\n type: 'notice',\n displayOptions: {\n show: {\n responseMode: ['responseNode'],\n },\n },\n default: '',\n },\n description_1.responseCodeProperty,\n description_1.responseDataProperty,\n description_1.responseBinaryPropertyNameProperty,\n description_1.optionsProperty,\n ],\n };\n }\n async webhook(context) {\n var _a;\n const options = context.getNodeParameter('options', {});\n const req = context.getRequestObject();\n const resp = context.getResponseObject();\n try {\n if (options.ignoreBots && (0, isbot_1.default)(req.headers['user-agent']))\n throw new error_1.WebhookAuthorizationError(403);\n await this.validateAuth(context);\n }\n catch (error) {\n if (error instanceof error_1.WebhookAuthorizationError) {\n resp.writeHead(error.responseCode, { 'WWW-Authenticate': 'Basic realm=\"Webhook\"' });\n resp.end(error.message);\n return { noWebhookResponse: true };\n }\n throw error;\n }\n if (options.binaryData) {\n return this.handleBinaryData(context);\n }\n if (req.contentType === 'multipart/form-data') {\n return this.handleFormData(context);\n }\n const response = {\n json: {\n headers: req.headers,\n params: req.params,\n query: req.query,\n body: req.body,\n },\n binary: options.rawBody\n ? {\n data: {\n data: req.rawBody.toString(n8n_workflow_1.BINARY_ENCODING),\n mimeType: (_a = req.contentType) !== null && _a !== void 0 ? _a : 'application/json',\n },\n }\n : undefined,\n };\n return {\n webhookResponse: options.responseData,\n workflowData: [[response]],\n };\n }\n async validateAuth(context) {\n const authentication = context.getNodeParameter(this.authPropertyName);\n if (authentication === 'none')\n return;\n const req = context.getRequestObject();\n const headers = context.getHeaderData();\n if (authentication === 'basicAuth') {\n let expectedAuth;\n try {\n expectedAuth = await context.getCredentials('httpBasicAuth');\n }\n catch { }\n if (expectedAuth === undefined || !expectedAuth.user || !expectedAuth.password) {\n throw new error_1.WebhookAuthorizationError(500, 'No authentication data defined on node!');\n }\n const providedAuth = (0, basic_auth_1.default)(req);\n if (!providedAuth)\n throw new error_1.WebhookAuthorizationError(401);\n if (providedAuth.name !== expectedAuth.user || providedAuth.pass !== expectedAuth.password) {\n throw new error_1.WebhookAuthorizationError(403);\n }\n }\n else if (authentication === 'headerAuth') {\n let expectedAuth;\n try {\n expectedAuth = await context.getCredentials('httpHeaderAuth');\n }\n catch { }\n if (expectedAuth === undefined || !expectedAuth.name || !expectedAuth.value) {\n throw new error_1.WebhookAuthorizationError(500, 'No authentication data defined on node!');\n }\n const headerName = expectedAuth.name.toLowerCase();\n const expectedValue = expectedAuth.value;\n if (!headers.hasOwnProperty(headerName) ||\n headers[headerName] !== expectedValue) {\n throw new error_1.WebhookAuthorizationError(403);\n }\n }\n }\n async handleFormData(context) {\n var _a;\n const req = context.getRequestObject();\n const options = context.getNodeParameter('options', {});\n const { data, files } = req.body;\n const returnItem = {\n binary: {},\n json: {\n headers: req.headers,\n params: req.params,\n query: req.query,\n body: data,\n },\n };\n let count = 0;\n for (const key of Object.keys(files)) {\n const processFiles = [];\n let multiFile = false;\n if (Array.isArray(files[key])) {\n processFiles.push(...files[key]);\n multiFile = true;\n }\n else {\n processFiles.push(files[key]);\n }\n let fileCount = 0;\n for (const file of processFiles) {\n let binaryPropertyName = key;\n if (binaryPropertyName.endsWith('[]')) {\n binaryPropertyName = binaryPropertyName.slice(0, -2);\n }\n if (multiFile) {\n binaryPropertyName += fileCount++;\n }\n if (options.binaryPropertyName) {\n binaryPropertyName = `${options.binaryPropertyName}${count}`;\n }\n returnItem.binary[binaryPropertyName] = await context.nodeHelpers.copyBinaryFile(file.filepath, (_a = file.originalFilename) !== null && _a !== void 0 ? _a : file.newFilename, file.mimetype);\n count += 1;\n }\n }\n return { workflowData: [[returnItem]] };\n }\n async handleBinaryData(context) {\n var _a, _b, _c;\n const req = context.getRequestObject();\n const options = context.getNodeParameter('options', {});\n const binaryFile = await (0, tmp_promise_1.file)({ prefix: 'n8n-webhook-' });\n try {\n await (0, promises_1.pipeline)(req, (0, fs_1.createWriteStream)(binaryFile.path));\n const returnItem = {\n binary: {},\n json: {\n headers: req.headers,\n params: req.params,\n query: req.query,\n body: {},\n },\n };\n const binaryPropertyName = (options.binaryPropertyName || 'data');\n const fileName = (_b = (_a = req.contentDisposition) === null || _a === void 0 ? void 0 : _a.filename) !== null && _b !== void 0 ? _b : (0, uuid_1.v4)();\n returnItem.binary[binaryPropertyName] = await context.nodeHelpers.copyBinaryFile(binaryFile.path, fileName, (_c = req.contentType) !== null && _c !== void 0 ? _c : 'application/octet-stream');\n return { workflowData: [[returnItem]] };\n }\n catch (error) {\n throw new n8n_workflow_1.NodeOperationError(context.getNode(), error);\n }\n finally {\n await binaryFile.cleanup();\n }\n }\n}\nexports.Webhook = Webhook;\n//# sourceMappingURL=Webhook.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 12, - "extracted_at": "2025-06-07T17:49:22.708Z" - }, - { - "node_type": "n8n-nodes-base.HttpRequest", - "name": "HttpRequest", - "package_name": "n8n-nodes-base", - "code_hash": "5b5e2328474b7e85361c940dfe942e167b3f0057f38062f56d6b693f0a7ffe7e", - "code_length": 1343, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/HttpRequest/HttpRequest.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpRequest = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst HttpRequestV1_node_1 = require(\"./V1/HttpRequestV1.node\");\nconst HttpRequestV2_node_1 = require(\"./V2/HttpRequestV2.node\");\nconst HttpRequestV3_node_1 = require(\"./V3/HttpRequestV3.node\");\nclass HttpRequest extends n8n_workflow_1.VersionedNodeType {\n constructor() {\n const baseDescription = {\n displayName: 'HTTP Request',\n name: 'httpRequest',\n icon: 'fa:at',\n group: ['output'],\n subtitle: '={{$parameter[\"requestMethod\"] + \": \" + $parameter[\"url\"]}}',\n description: 'Makes an HTTP request and returns the response data',\n defaultVersion: 4.1,\n };\n const nodeVersions = {\n 1: new HttpRequestV1_node_1.HttpRequestV1(baseDescription),\n 2: new HttpRequestV2_node_1.HttpRequestV2(baseDescription),\n 3: new HttpRequestV3_node_1.HttpRequestV3(baseDescription),\n 4: new HttpRequestV3_node_1.HttpRequestV3(baseDescription),\n 4.1: new HttpRequestV3_node_1.HttpRequestV3(baseDescription),\n };\n super(nodeVersions, baseDescription);\n }\n}\nexports.HttpRequest = HttpRequest;\n//# sourceMappingURL=HttpRequest.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 7, - "extracted_at": "2025-06-07T17:49:22.717Z" - }, - { - "node_type": "n8n-nodes-base.If", - "name": "If", - "package_name": "n8n-nodes-base", - "code_hash": "7910ed9177a946b76f04ca847defb81226c37c698e4cdb63913f038c6c257ee1", - "code_length": 20533, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/If/If.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.If = void 0;\nconst moment_1 = __importDefault(require(\"moment\"));\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nclass If {\n constructor() {\n this.description = {\n displayName: 'IF',\n name: 'if',\n icon: 'fa:map-signs',\n group: ['transform'],\n version: 1,\n description: 'Route items to different branches (true/false)',\n defaults: {\n name: 'IF',\n color: '#408000',\n },\n inputs: ['main'],\n outputs: ['main', 'main'],\n outputNames: ['true', 'false'],\n properties: [\n {\n displayName: 'Conditions',\n name: 'conditions',\n placeholder: 'Add Condition',\n type: 'fixedCollection',\n typeOptions: {\n multipleValues: true,\n sortable: true,\n },\n description: 'The type of values to compare',\n default: {},\n options: [\n {\n name: 'boolean',\n displayName: 'Boolean',\n values: [\n {\n displayName: 'Value 1',\n name: 'value1',\n type: 'boolean',\n default: false,\n description: 'The value to compare with the second one',\n },\n {\n displayName: 'Operation',\n name: 'operation',\n type: 'options',\n options: [\n {\n name: 'Equal',\n value: 'equal',\n },\n {\n name: 'Not Equal',\n value: 'notEqual',\n },\n ],\n default: 'equal',\n description: 'Operation to decide where the the data should be mapped to',\n },\n {\n displayName: 'Value 2',\n name: 'value2',\n type: 'boolean',\n default: false,\n description: 'The value to compare with the first one',\n },\n ],\n },\n {\n name: 'dateTime',\n displayName: 'Date & Time',\n values: [\n {\n displayName: 'Value 1',\n name: 'value1',\n type: 'dateTime',\n default: '',\n description: 'The value to compare with the second one',\n },\n {\n displayName: 'Operation',\n name: 'operation',\n type: 'options',\n options: [\n {\n name: 'Occurred After',\n value: 'after',\n },\n {\n name: 'Occurred Before',\n value: 'before',\n },\n ],\n default: 'after',\n description: 'Operation to decide where the the data should be mapped to',\n },\n {\n displayName: 'Value 2',\n name: 'value2',\n type: 'dateTime',\n default: '',\n description: 'The value to compare with the first one',\n },\n ],\n },\n {\n name: 'number',\n displayName: 'Number',\n values: [\n {\n displayName: 'Value 1',\n name: 'value1',\n type: 'number',\n default: 0,\n description: 'The value to compare with the second one',\n },\n {\n displayName: 'Operation',\n name: 'operation',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Smaller',\n value: 'smaller',\n },\n {\n name: 'Smaller or Equal',\n value: 'smallerEqual',\n },\n {\n name: 'Equal',\n value: 'equal',\n },\n {\n name: 'Not Equal',\n value: 'notEqual',\n },\n {\n name: 'Larger',\n value: 'larger',\n },\n {\n name: 'Larger or Equal',\n value: 'largerEqual',\n },\n {\n name: 'Is Empty',\n value: 'isEmpty',\n },\n {\n name: 'Is Not Empty',\n value: 'isNotEmpty',\n },\n ],\n default: 'smaller',\n description: 'Operation to decide where the the data should be mapped to',\n },\n {\n displayName: 'Value 2',\n name: 'value2',\n type: 'number',\n displayOptions: {\n hide: {\n operation: ['isEmpty', 'isNotEmpty'],\n },\n },\n default: 0,\n description: 'The value to compare with the first one',\n },\n ],\n },\n {\n name: 'string',\n displayName: 'String',\n values: [\n {\n displayName: 'Value 1',\n name: 'value1',\n type: 'string',\n default: '',\n description: 'The value to compare with the second one',\n },\n {\n displayName: 'Operation',\n name: 'operation',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Contains',\n value: 'contains',\n },\n {\n name: 'Not Contains',\n value: 'notContains',\n },\n {\n name: 'Ends With',\n value: 'endsWith',\n },\n {\n name: 'Not Ends With',\n value: 'notEndsWith',\n },\n {\n name: 'Equal',\n value: 'equal',\n },\n {\n name: 'Not Equal',\n value: 'notEqual',\n },\n {\n name: 'Regex Match',\n value: 'regex',\n },\n {\n name: 'Regex Not Match',\n value: 'notRegex',\n },\n {\n name: 'Starts With',\n value: 'startsWith',\n },\n {\n name: 'Not Starts With',\n value: 'notStartsWith',\n },\n {\n name: 'Is Empty',\n value: 'isEmpty',\n },\n {\n name: 'Is Not Empty',\n value: 'isNotEmpty',\n },\n ],\n default: 'equal',\n description: 'Operation to decide where the the data should be mapped to',\n },\n {\n displayName: 'Value 2',\n name: 'value2',\n type: 'string',\n displayOptions: {\n hide: {\n operation: ['isEmpty', 'isNotEmpty', 'regex', 'notRegex'],\n },\n },\n default: '',\n description: 'The value to compare with the first one',\n },\n {\n displayName: 'Regex',\n name: 'value2',\n type: 'string',\n displayOptions: {\n show: {\n operation: ['regex', 'notRegex'],\n },\n },\n default: '',\n placeholder: '/text/i',\n description: 'The regex which has to match',\n },\n ],\n },\n ],\n },\n {\n displayName: 'Combine',\n name: 'combineOperation',\n type: 'options',\n options: [\n {\n name: 'ALL',\n description: 'Only if all conditions are met it goes into \"true\" branch',\n value: 'all',\n },\n {\n name: 'ANY',\n description: 'If any of the conditions is met it goes into \"true\" branch',\n value: 'any',\n },\n ],\n default: 'all',\n description: 'If multiple rules got set this settings decides if it is true as soon as ANY condition matches or only if ALL get meet',\n },\n ],\n };\n }\n async execute() {\n const returnDataTrue = [];\n const returnDataFalse = [];\n const items = this.getInputData();\n let item;\n let combineOperation;\n const isDateObject = (value) => Object.prototype.toString.call(value) === '[object Date]';\n const isDateInvalid = (value) => (value === null || value === void 0 ? void 0 : value.toString()) === 'Invalid Date';\n const compareOperationFunctions = {\n after: (value1, value2) => (value1 || 0) > (value2 || 0),\n before: (value1, value2) => (value1 || 0) < (value2 || 0),\n contains: (value1, value2) => (value1 || '').toString().includes((value2 || '').toString()),\n notContains: (value1, value2) => !(value1 || '').toString().includes((value2 || '').toString()),\n endsWith: (value1, value2) => value1.endsWith(value2),\n notEndsWith: (value1, value2) => !value1.endsWith(value2),\n equal: (value1, value2) => value1 === value2,\n notEqual: (value1, value2) => value1 !== value2,\n larger: (value1, value2) => (value1 || 0) > (value2 || 0),\n largerEqual: (value1, value2) => (value1 || 0) >= (value2 || 0),\n smaller: (value1, value2) => (value1 || 0) < (value2 || 0),\n smallerEqual: (value1, value2) => (value1 || 0) <= (value2 || 0),\n startsWith: (value1, value2) => value1.startsWith(value2),\n notStartsWith: (value1, value2) => !value1.startsWith(value2),\n isEmpty: (value1) => [undefined, null, '', NaN].includes(value1) ||\n (typeof value1 === 'object' && value1 !== null && !isDateObject(value1)\n ? Object.entries(value1).length === 0\n : false) ||\n (isDateObject(value1) && isDateInvalid(value1)),\n isNotEmpty: (value1) => !([undefined, null, '', NaN].includes(value1) ||\n (typeof value1 === 'object' && value1 !== null && !isDateObject(value1)\n ? Object.entries(value1).length === 0\n : false) ||\n (isDateObject(value1) && isDateInvalid(value1))),\n regex: (value1, value2) => {\n const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));\n let regex;\n if (!regexMatch) {\n regex = new RegExp((value2 || '').toString());\n }\n else if (regexMatch.length === 1) {\n regex = new RegExp(regexMatch[1]);\n }\n else {\n regex = new RegExp(regexMatch[1], regexMatch[2]);\n }\n return !!(value1 || '').toString().match(regex);\n },\n notRegex: (value1, value2) => {\n const regexMatch = (value2 || '').toString().match(new RegExp('^/(.*?)/([gimusy]*)$'));\n let regex;\n if (!regexMatch) {\n regex = new RegExp((value2 || '').toString());\n }\n else if (regexMatch.length === 1) {\n regex = new RegExp(regexMatch[1]);\n }\n else {\n regex = new RegExp(regexMatch[1], regexMatch[2]);\n }\n return !(value1 || '').toString().match(regex);\n },\n };\n const convertDateTime = (value) => {\n let returnValue = undefined;\n if (typeof value === 'string') {\n returnValue = new Date(value).getTime();\n }\n else if (typeof value === 'number') {\n returnValue = value;\n }\n if (moment_1.default.isMoment(value)) {\n returnValue = value.unix();\n }\n if (value instanceof Date) {\n returnValue = value.getTime();\n }\n if (returnValue === undefined || isNaN(returnValue)) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The value \"${value}\" is not a valid DateTime.`);\n }\n return returnValue;\n };\n const dataTypes = ['boolean', 'dateTime', 'number', 'string'];\n let dataType;\n let compareOperationResult;\n let value1, value2;\n itemLoop: for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n item = items[itemIndex];\n let compareData;\n combineOperation = this.getNodeParameter('combineOperation', itemIndex);\n for (dataType of dataTypes) {\n for (compareData of this.getNodeParameter(`conditions.${dataType}`, itemIndex, [])) {\n value1 = compareData.value1;\n value2 = compareData.value2;\n if (dataType === 'dateTime') {\n value1 = convertDateTime(value1);\n value2 = convertDateTime(value2);\n }\n compareOperationResult = compareOperationFunctions[compareData.operation](value1, value2);\n if (compareOperationResult && combineOperation === 'any') {\n returnDataTrue.push(item);\n continue itemLoop;\n }\n else if (!compareOperationResult && combineOperation === 'all') {\n returnDataFalse.push(item);\n continue itemLoop;\n }\n }\n }\n if (item.pairedItem === undefined) {\n item.pairedItem = [{ item: itemIndex }];\n }\n if (combineOperation === 'all') {\n returnDataTrue.push(item);\n }\n else {\n returnDataFalse.push(item);\n }\n }\n return [returnDataTrue, returnDataFalse];\n }\n}\nexports.If = If;\n//# sourceMappingURL=If.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 4, - "extracted_at": "2025-06-07T17:49:22.724Z" - }, - { - "node_type": "n8n-nodes-base.SplitInBatches", - "name": "SplitInBatches", - "package_name": "n8n-nodes-base", - "code_hash": "c751422a11e30bf361a6c4803376289740a40434aeb77f90e18cd4dd7ba5c019", - "code_length": 1135, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/SplitInBatches/SplitInBatches.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SplitInBatches = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst SplitInBatchesV1_node_1 = require(\"./v1/SplitInBatchesV1.node\");\nconst SplitInBatchesV2_node_1 = require(\"./v2/SplitInBatchesV2.node\");\nconst SplitInBatchesV3_node_1 = require(\"./v3/SplitInBatchesV3.node\");\nclass SplitInBatches extends n8n_workflow_1.VersionedNodeType {\n constructor() {\n const baseDescription = {\n displayName: 'Split In Batches',\n name: 'splitInBatches',\n icon: 'fa:th-large',\n group: ['organization'],\n description: 'Split data into batches and iterate over each batch',\n defaultVersion: 3,\n };\n const nodeVersions = {\n 1: new SplitInBatchesV1_node_1.SplitInBatchesV1(),\n 2: new SplitInBatchesV2_node_1.SplitInBatchesV2(),\n 3: new SplitInBatchesV3_node_1.SplitInBatchesV3(),\n };\n super(nodeVersions, baseDescription);\n }\n}\nexports.SplitInBatches = SplitInBatches;\n//# sourceMappingURL=SplitInBatches.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 5, - "extracted_at": "2025-06-07T17:49:22.730Z" - }, - { - "node_type": "n8n-nodes-base.Airtable", - "name": "Airtable", - "package_name": "n8n-nodes-base", - "code_hash": "2d67e72931697178946f5127b43e954649c4c5e7ad9e29764796404ae96e7db5", - "code_length": 936, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/Airtable/Airtable.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Airtable = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst AirtableV1_node_1 = require(\"./v1/AirtableV1.node\");\nconst AirtableV2_node_1 = require(\"./v2/AirtableV2.node\");\nclass Airtable extends n8n_workflow_1.VersionedNodeType {\n constructor() {\n const baseDescription = {\n displayName: 'Airtable',\n name: 'airtable',\n icon: 'file:airtable.svg',\n group: ['input'],\n description: 'Read, update, write and delete data from Airtable',\n defaultVersion: 2,\n };\n const nodeVersions = {\n 1: new AirtableV1_node_1.AirtableV1(baseDescription),\n 2: new AirtableV2_node_1.AirtableV2(baseDescription),\n };\n super(nodeVersions, baseDescription);\n }\n}\nexports.Airtable = Airtable;\n//# sourceMappingURL=Airtable.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 5, - "extracted_at": "2025-06-07T17:49:22.782Z" - }, - { - "node_type": "n8n-nodes-base.Slack", - "name": "Slack", - "package_name": "n8n-nodes-base", - "code_hash": "0ed10d0646f3c595406359edfa2c293dac41991cee59ad4fb3ccf2bb70eca6fc", - "code_length": 1007, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/Slack/Slack.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slack = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst SlackV1_node_1 = require(\"./V1/SlackV1.node\");\nconst SlackV2_node_1 = require(\"./V2/SlackV2.node\");\nclass Slack extends n8n_workflow_1.VersionedNodeType {\n constructor() {\n const baseDescription = {\n displayName: 'Slack',\n name: 'slack',\n icon: 'file:slack.svg',\n group: ['output'],\n subtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n description: 'Consume Slack API',\n defaultVersion: 2.1,\n };\n const nodeVersions = {\n 1: new SlackV1_node_1.SlackV1(baseDescription),\n 2: new SlackV2_node_1.SlackV2(baseDescription),\n 2.1: new SlackV2_node_1.SlackV2(baseDescription),\n };\n super(nodeVersions, baseDescription);\n }\n}\nexports.Slack = Slack;\n//# sourceMappingURL=Slack.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 4, - "extracted_at": "2025-06-07T17:49:22.884Z" - }, - { - "node_type": "n8n-nodes-base.Discord", - "name": "Discord", - "package_name": "n8n-nodes-base", - "code_hash": "4995f9ca5c5b57d2486c2e320cc7505238e7f2260861f7e321b44b45ccabeb00", - "code_length": 10049, - "source_location": "node_modules/n8n-nodes-base/dist/nodes/Discord/Discord.node.js", - "has_credentials": false, - "source_code": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Discord = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nclass Discord {\n constructor() {\n this.description = {\n displayName: 'Discord',\n name: 'discord',\n icon: 'file:discord.svg',\n group: ['output'],\n version: 1,\n description: 'Sends data to Discord',\n defaults: {\n name: 'Discord',\n },\n inputs: ['main'],\n outputs: ['main'],\n properties: [\n {\n displayName: 'Webhook URL',\n name: 'webhookUri',\n type: 'string',\n required: true,\n default: '',\n placeholder: 'https://discord.com/api/webhooks/ID/TOKEN',\n },\n {\n displayName: 'Content',\n name: 'text',\n type: 'string',\n typeOptions: {\n maxValue: 2000,\n },\n default: '',\n placeholder: 'Hello World!',\n },\n {\n displayName: 'Additional Fields',\n name: 'options',\n type: 'collection',\n placeholder: 'Add Option',\n default: {},\n options: [\n {\n displayName: 'Allowed Mentions',\n name: 'allowedMentions',\n type: 'json',\n typeOptions: { alwaysOpenEditWindow: true, editor: 'code' },\n default: '',\n },\n {\n displayName: 'Attachments',\n name: 'attachments',\n type: 'json',\n typeOptions: { alwaysOpenEditWindow: true, editor: 'code' },\n default: '',\n },\n {\n displayName: 'Avatar URL',\n name: 'avatarUrl',\n type: 'string',\n default: '',\n },\n {\n displayName: 'Components',\n name: 'components',\n type: 'json',\n typeOptions: { alwaysOpenEditWindow: true, editor: 'code' },\n default: '',\n },\n {\n displayName: 'Embeds',\n name: 'embeds',\n type: 'json',\n typeOptions: { alwaysOpenEditWindow: true, editor: 'code' },\n default: '',\n },\n {\n displayName: 'Flags',\n name: 'flags',\n type: 'number',\n default: '',\n },\n {\n displayName: 'JSON Payload',\n name: 'payloadJson',\n type: 'json',\n typeOptions: { alwaysOpenEditWindow: true, editor: 'code' },\n default: '',\n },\n {\n displayName: 'Username',\n name: 'username',\n type: 'string',\n default: '',\n placeholder: 'User',\n },\n {\n displayName: 'TTS',\n name: 'tts',\n type: 'boolean',\n default: false,\n description: 'Whether this message be sent as a Text To Speech message',\n },\n ],\n },\n ],\n };\n }\n async execute() {\n var _a;\n const returnData = [];\n const webhookUri = this.getNodeParameter('webhookUri', 0, '');\n if (!webhookUri)\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Webhook uri is required.');\n const items = this.getInputData();\n const length = items.length;\n for (let i = 0; i < length; i++) {\n const body = {};\n const iterationWebhookUri = this.getNodeParameter('webhookUri', i);\n body.content = this.getNodeParameter('text', i);\n const options = this.getNodeParameter('options', i);\n if (!body.content && !options.embeds) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Either content or embeds must be set.', {\n itemIndex: i,\n });\n }\n if (options.embeds) {\n try {\n body.embeds = JSON.parse(options.embeds);\n }\n catch (e) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Embeds must be valid JSON.', {\n itemIndex: i,\n });\n }\n if (!Array.isArray(body.embeds)) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Embeds must be an array of embeds.', {\n itemIndex: i,\n });\n }\n }\n if (options.username) {\n body.username = options.username;\n }\n if (options.components) {\n try {\n body.components = JSON.parse(options.components);\n }\n catch (e) {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Components must be valid JSON.', {\n itemIndex: i,\n });\n }\n }\n if (options.allowed_mentions) {\n body.allowed_mentions = (0, n8n_workflow_1.jsonParse)(options.allowed_mentions);\n }\n if (options.avatarUrl) {\n body.avatar_url = options.avatarUrl;\n }\n if (options.flags) {\n body.flags = options.flags;\n }\n if (options.tts) {\n body.tts = options.tts;\n }\n if (options.payloadJson) {\n body.payload_json = (0, n8n_workflow_1.jsonParse)(options.payloadJson);\n }\n if (options.attachments) {\n body.attachments = (0, n8n_workflow_1.jsonParse)(options.attachments);\n }\n if (!body.content)\n delete body.content;\n if (!body.username)\n delete body.username;\n if (!body.avatar_url)\n delete body.avatar_url;\n if (!body.embeds)\n delete body.embeds;\n if (!body.allowed_mentions)\n delete body.allowed_mentions;\n if (!body.flags)\n delete body.flags;\n if (!body.components)\n delete body.components;\n if (!body.payload_json)\n delete body.payload_json;\n if (!body.attachments)\n delete body.attachments;\n let requestOptions;\n if (!body.payload_json) {\n requestOptions = {\n resolveWithFullResponse: true,\n method: 'POST',\n body,\n uri: iterationWebhookUri,\n headers: {\n 'content-type': 'application/json; charset=utf-8',\n },\n json: true,\n };\n }\n else {\n requestOptions = {\n resolveWithFullResponse: true,\n method: 'POST',\n body,\n uri: iterationWebhookUri,\n headers: {\n 'content-type': 'multipart/form-data; charset=utf-8',\n },\n };\n }\n let maxTries = 5;\n let response;\n do {\n try {\n response = await this.helpers.request(requestOptions);\n const resetAfter = response.headers['x-ratelimit-reset-after'] * 1000;\n const remainingRatelimit = response.headers['x-ratelimit-remaining'];\n if (!+remainingRatelimit) {\n await (0, n8n_workflow_1.sleep)(resetAfter !== null && resetAfter !== void 0 ? resetAfter : 1000);\n }\n break;\n }\n catch (error) {\n if (error.statusCode === 429) {\n const retryAfter = ((_a = error.response) === null || _a === void 0 ? void 0 : _a.headers['retry-after']) || 1000;\n await (0, n8n_workflow_1.sleep)(+retryAfter);\n continue;\n }\n throw error;\n }\n } while (--maxTries);\n if (maxTries <= 0) {\n throw new n8n_workflow_1.NodeApiError(this.getNode(), {\n error: 'Could not send Webhook message. Max amount of rate-limit retries reached.',\n });\n }\n const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ success: true }), { itemData: { item: i } });\n returnData.push(...executionData);\n }\n return [returnData];\n }\n}\nexports.Discord = Discord;\n//# sourceMappingURL=Discord.node.js.map", - "package_info": { - "name": "n8n-nodes-base", - "version": "1.14.1", - "description": "Base nodes of n8n", - "license": "SEE LICENSE IN LICENSE.md", - "homepage": "https://n8n.io", - "author": { - "name": "Jan Oberhauser", - "email": "jan@n8n.io" - }, - "main": "index.js", - "repository": { - "type": "git", - "url": "git+https://github.com/n8n-io/n8n.git" - }, - "files": [ - "dist" - ], - "n8n": { - "credentials": [ - "dist/credentials/ActionNetworkApi.credentials.js", - "dist/credentials/ActiveCampaignApi.credentials.js", - "dist/credentials/AcuitySchedulingApi.credentials.js", - "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", - "dist/credentials/AdaloApi.credentials.js", - "dist/credentials/AffinityApi.credentials.js", - "dist/credentials/AgileCrmApi.credentials.js", - "dist/credentials/AirtableApi.credentials.js", - "dist/credentials/AirtableOAuth2Api.credentials.js", - "dist/credentials/AirtableTokenApi.credentials.js", - "dist/credentials/AlienVaultApi.credentials.js", - "dist/credentials/Amqp.credentials.js", - "dist/credentials/ApiTemplateIoApi.credentials.js", - "dist/credentials/AsanaApi.credentials.js", - "dist/credentials/AsanaOAuth2Api.credentials.js", - "dist/credentials/Auth0ManagementApi.credentials.js", - "dist/credentials/AutomizyApi.credentials.js", - "dist/credentials/AutopilotApi.credentials.js", - "dist/credentials/Aws.credentials.js", - "dist/credentials/BambooHrApi.credentials.js", - "dist/credentials/BannerbearApi.credentials.js", - "dist/credentials/BaserowApi.credentials.js", - "dist/credentials/BeeminderApi.credentials.js", - "dist/credentials/BitbucketApi.credentials.js", - "dist/credentials/BitlyApi.credentials.js", - "dist/credentials/BitlyOAuth2Api.credentials.js", - "dist/credentials/BitwardenApi.credentials.js", - "dist/credentials/BoxOAuth2Api.credentials.js", - "dist/credentials/BrandfetchApi.credentials.js", - "dist/credentials/BubbleApi.credentials.js", - "dist/credentials/CalApi.credentials.js", - "dist/credentials/CalendlyApi.credentials.js", - "dist/credentials/CarbonBlackApi.credentials.js", - "dist/credentials/ChargebeeApi.credentials.js", - "dist/credentials/CircleCiApi.credentials.js", - "dist/credentials/CiscoMerakiApi.credentials.js", - "dist/credentials/CiscoSecureEndpointApi.credentials.js", - "dist/credentials/CiscoWebexOAuth2Api.credentials.js", - "dist/credentials/CiscoUmbrellaApi.credentials.js", - "dist/credentials/CitrixAdcApi.credentials.js", - "dist/credentials/CloudflareApi.credentials.js", - "dist/credentials/ClearbitApi.credentials.js", - "dist/credentials/ClickUpApi.credentials.js", - "dist/credentials/ClickUpOAuth2Api.credentials.js", - "dist/credentials/ClockifyApi.credentials.js", - "dist/credentials/CockpitApi.credentials.js", - "dist/credentials/CodaApi.credentials.js", - "dist/credentials/ContentfulApi.credentials.js", - "dist/credentials/ConvertKitApi.credentials.js", - "dist/credentials/CopperApi.credentials.js", - "dist/credentials/CortexApi.credentials.js", - "dist/credentials/CrateDb.credentials.js", - "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", - "dist/credentials/CrowdDevApi.credentials.js", - "dist/credentials/CustomerIoApi.credentials.js", - "dist/credentials/DeepLApi.credentials.js", - "dist/credentials/DemioApi.credentials.js", - "dist/credentials/DhlApi.credentials.js", - "dist/credentials/DiscourseApi.credentials.js", - "dist/credentials/DisqusApi.credentials.js", - "dist/credentials/DriftApi.credentials.js", - "dist/credentials/DriftOAuth2Api.credentials.js", - "dist/credentials/DropboxApi.credentials.js", - "dist/credentials/DropboxOAuth2Api.credentials.js", - "dist/credentials/DropcontactApi.credentials.js", - "dist/credentials/EgoiApi.credentials.js", - "dist/credentials/ElasticsearchApi.credentials.js", - "dist/credentials/ElasticSecurityApi.credentials.js", - "dist/credentials/EmeliaApi.credentials.js", - "dist/credentials/ERPNextApi.credentials.js", - "dist/credentials/EventbriteApi.credentials.js", - "dist/credentials/EventbriteOAuth2Api.credentials.js", - "dist/credentials/F5BigIpApi.credentials.js", - "dist/credentials/FacebookGraphApi.credentials.js", - "dist/credentials/FacebookGraphAppApi.credentials.js", - "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", - "dist/credentials/FigmaApi.credentials.js", - "dist/credentials/FileMaker.credentials.js", - "dist/credentials/FlowApi.credentials.js", - "dist/credentials/FormIoApi.credentials.js", - "dist/credentials/FormstackApi.credentials.js", - "dist/credentials/FormstackOAuth2Api.credentials.js", - "dist/credentials/FortiGateApi.credentials.js", - "dist/credentials/FreshdeskApi.credentials.js", - "dist/credentials/FreshserviceApi.credentials.js", - "dist/credentials/FreshworksCrmApi.credentials.js", - "dist/credentials/Ftp.credentials.js", - "dist/credentials/GetResponseApi.credentials.js", - "dist/credentials/GetResponseOAuth2Api.credentials.js", - "dist/credentials/GhostAdminApi.credentials.js", - "dist/credentials/GhostContentApi.credentials.js", - "dist/credentials/GithubApi.credentials.js", - "dist/credentials/GithubOAuth2Api.credentials.js", - "dist/credentials/GitlabApi.credentials.js", - "dist/credentials/GitlabOAuth2Api.credentials.js", - "dist/credentials/GitPassword.credentials.js", - "dist/credentials/GmailOAuth2Api.credentials.js", - "dist/credentials/GoogleAdsOAuth2Api.credentials.js", - "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", - "dist/credentials/GoogleApi.credentials.js", - "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", - "dist/credentials/GoogleBooksOAuth2Api.credentials.js", - "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", - "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", - "dist/credentials/GoogleContactsOAuth2Api.credentials.js", - "dist/credentials/GoogleDocsOAuth2Api.credentials.js", - "dist/credentials/GoogleDriveOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", - "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", - "dist/credentials/GoogleOAuth2Api.credentials.js", - "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", - "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", - "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", - "dist/credentials/GoogleTasksOAuth2Api.credentials.js", - "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", - "dist/credentials/GotifyApi.credentials.js", - "dist/credentials/GoToWebinarOAuth2Api.credentials.js", - "dist/credentials/GristApi.credentials.js", - "dist/credentials/GrafanaApi.credentials.js", - "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", - "dist/credentials/GumroadApi.credentials.js", - "dist/credentials/HaloPSAApi.credentials.js", - "dist/credentials/HarvestApi.credentials.js", - "dist/credentials/HarvestOAuth2Api.credentials.js", - "dist/credentials/HelpScoutOAuth2Api.credentials.js", - "dist/credentials/HighLevelApi.credentials.js", - "dist/credentials/HomeAssistantApi.credentials.js", - "dist/credentials/HttpBasicAuth.credentials.js", - "dist/credentials/HttpDigestAuth.credentials.js", - "dist/credentials/HttpHeaderAuth.credentials.js", - "dist/credentials/HttpCustomAuth.credentials.js", - "dist/credentials/HttpQueryAuth.credentials.js", - "dist/credentials/HubspotApi.credentials.js", - "dist/credentials/HubspotAppToken.credentials.js", - "dist/credentials/HubspotDeveloperApi.credentials.js", - "dist/credentials/HubspotOAuth2Api.credentials.js", - "dist/credentials/HumanticAiApi.credentials.js", - "dist/credentials/HunterApi.credentials.js", - "dist/credentials/HybridAnalysisApi.credentials.js", - "dist/credentials/Imap.credentials.js", - "dist/credentials/ImpervaWafApi.credentials.js", - "dist/credentials/IntercomApi.credentials.js", - "dist/credentials/InvoiceNinjaApi.credentials.js", - "dist/credentials/IterableApi.credentials.js", - "dist/credentials/JenkinsApi.credentials.js", - "dist/credentials/JiraSoftwareCloudApi.credentials.js", - "dist/credentials/JiraSoftwareServerApi.credentials.js", - "dist/credentials/JotFormApi.credentials.js", - "dist/credentials/Kafka.credentials.js", - "dist/credentials/KeapOAuth2Api.credentials.js", - "dist/credentials/KibanaApi.credentials.js", - "dist/credentials/KitemakerApi.credentials.js", - "dist/credentials/KoBoToolboxApi.credentials.js", - "dist/credentials/Ldap.credentials.js", - "dist/credentials/LemlistApi.credentials.js", - "dist/credentials/LinearApi.credentials.js", - "dist/credentials/LinearOAuth2Api.credentials.js", - "dist/credentials/LineNotifyOAuth2Api.credentials.js", - "dist/credentials/LingvaNexApi.credentials.js", - "dist/credentials/LinkedInOAuth2Api.credentials.js", - "dist/credentials/LoneScaleApi.credentials.js", - "dist/credentials/Magento2Api.credentials.js", - "dist/credentials/MailcheckApi.credentials.js", - "dist/credentials/MailchimpApi.credentials.js", - "dist/credentials/MailchimpOAuth2Api.credentials.js", - "dist/credentials/MailerLiteApi.credentials.js", - "dist/credentials/MailgunApi.credentials.js", - "dist/credentials/MailjetEmailApi.credentials.js", - "dist/credentials/MailjetSmsApi.credentials.js", - "dist/credentials/MandrillApi.credentials.js", - "dist/credentials/MarketstackApi.credentials.js", - "dist/credentials/MatrixApi.credentials.js", - "dist/credentials/MattermostApi.credentials.js", - "dist/credentials/MauticApi.credentials.js", - "dist/credentials/MauticOAuth2Api.credentials.js", - "dist/credentials/MediumApi.credentials.js", - "dist/credentials/MediumOAuth2Api.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MessageBirdApi.credentials.js", - "dist/credentials/MetabaseApi.credentials.js", - "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", - "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", - "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", - "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", - "dist/credentials/MicrosoftSql.credentials.js", - "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", - "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", - "dist/credentials/MindeeInvoiceApi.credentials.js", - "dist/credentials/MindeeReceiptApi.credentials.js", - "dist/credentials/MispApi.credentials.js", - "dist/credentials/MistApi.credentials.js", - "dist/credentials/MoceanApi.credentials.js", - "dist/credentials/MondayComApi.credentials.js", - "dist/credentials/MondayComOAuth2Api.credentials.js", - "dist/credentials/MongoDb.credentials.js", - "dist/credentials/MonicaCrmApi.credentials.js", - "dist/credentials/Mqtt.credentials.js", - "dist/credentials/Msg91Api.credentials.js", - "dist/credentials/MySql.credentials.js", - "dist/credentials/N8nApi.credentials.js", - "dist/credentials/NasaApi.credentials.js", - "dist/credentials/NetlifyApi.credentials.js", - "dist/credentials/NextCloudApi.credentials.js", - "dist/credentials/NextCloudOAuth2Api.credentials.js", - "dist/credentials/NocoDb.credentials.js", - "dist/credentials/NocoDbApiToken.credentials.js", - "dist/credentials/NotionApi.credentials.js", - "dist/credentials/NotionOAuth2Api.credentials.js", - "dist/credentials/NpmApi.credentials.js", - "dist/credentials/OAuth1Api.credentials.js", - "dist/credentials/OAuth2Api.credentials.js", - "dist/credentials/OdooApi.credentials.js", - "dist/credentials/OktaApi.credentials.js", - "dist/credentials/OneSimpleApi.credentials.js", - "dist/credentials/OnfleetApi.credentials.js", - "dist/credentials/OpenAiApi.credentials.js", - "dist/credentials/OpenCTIApi.credentials.js", - "dist/credentials/OpenWeatherMapApi.credentials.js", - "dist/credentials/OrbitApi.credentials.js", - "dist/credentials/OuraApi.credentials.js", - "dist/credentials/PaddleApi.credentials.js", - "dist/credentials/PagerDutyApi.credentials.js", - "dist/credentials/PagerDutyOAuth2Api.credentials.js", - "dist/credentials/PayPalApi.credentials.js", - "dist/credentials/PeekalinkApi.credentials.js", - "dist/credentials/PhantombusterApi.credentials.js", - "dist/credentials/PhilipsHueOAuth2Api.credentials.js", - "dist/credentials/PipedriveApi.credentials.js", - "dist/credentials/PipedriveOAuth2Api.credentials.js", - "dist/credentials/PlivoApi.credentials.js", - "dist/credentials/Postgres.credentials.js", - "dist/credentials/PostHogApi.credentials.js", - "dist/credentials/PostmarkApi.credentials.js", - "dist/credentials/ProfitWellApi.credentials.js", - "dist/credentials/PushbulletOAuth2Api.credentials.js", - "dist/credentials/PushcutApi.credentials.js", - "dist/credentials/PushoverApi.credentials.js", - "dist/credentials/QRadarApi.credentials.js", - "dist/credentials/QualysApi.credentials.js", - "dist/credentials/QuestDb.credentials.js", - "dist/credentials/QuickBaseApi.credentials.js", - "dist/credentials/QuickBooksOAuth2Api.credentials.js", - "dist/credentials/RabbitMQ.credentials.js", - "dist/credentials/RaindropOAuth2Api.credentials.js", - "dist/credentials/RecordedFutureApi.credentials.js", - "dist/credentials/RedditOAuth2Api.credentials.js", - "dist/credentials/Redis.credentials.js", - "dist/credentials/RocketchatApi.credentials.js", - "dist/credentials/RundeckApi.credentials.js", - "dist/credentials/S3.credentials.js", - "dist/credentials/SalesforceJwtApi.credentials.js", - "dist/credentials/SalesforceOAuth2Api.credentials.js", - "dist/credentials/SalesmateApi.credentials.js", - "dist/credentials/SeaTableApi.credentials.js", - "dist/credentials/SecurityScorecardApi.credentials.js", - "dist/credentials/SegmentApi.credentials.js", - "dist/credentials/SekoiaApi.credentials.js", - "dist/credentials/SendGridApi.credentials.js", - "dist/credentials/BrevoApi.credentials.js", - "dist/credentials/SendyApi.credentials.js", - "dist/credentials/SentryIoApi.credentials.js", - "dist/credentials/SentryIoOAuth2Api.credentials.js", - "dist/credentials/SentryIoServerApi.credentials.js", - "dist/credentials/ServiceNowOAuth2Api.credentials.js", - "dist/credentials/ServiceNowBasicApi.credentials.js", - "dist/credentials/Sftp.credentials.js", - "dist/credentials/ShopifyApi.credentials.js", - "dist/credentials/ShopifyAccessTokenApi.credentials.js", - "dist/credentials/ShopifyOAuth2Api.credentials.js", - "dist/credentials/Signl4Api.credentials.js", - "dist/credentials/SlackApi.credentials.js", - "dist/credentials/SlackOAuth2Api.credentials.js", - "dist/credentials/Sms77Api.credentials.js", - "dist/credentials/Smtp.credentials.js", - "dist/credentials/Snowflake.credentials.js", - "dist/credentials/SplunkApi.credentials.js", - "dist/credentials/SpontitApi.credentials.js", - "dist/credentials/SpotifyOAuth2Api.credentials.js", - "dist/credentials/ShufflerApi.credentials.js", - "dist/credentials/SshPassword.credentials.js", - "dist/credentials/SshPrivateKey.credentials.js", - "dist/credentials/StackbyApi.credentials.js", - "dist/credentials/StoryblokContentApi.credentials.js", - "dist/credentials/StoryblokManagementApi.credentials.js", - "dist/credentials/StrapiApi.credentials.js", - "dist/credentials/StrapiTokenApi.credentials.js", - "dist/credentials/StravaOAuth2Api.credentials.js", - "dist/credentials/StripeApi.credentials.js", - "dist/credentials/SupabaseApi.credentials.js", - "dist/credentials/SurveyMonkeyApi.credentials.js", - "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", - "dist/credentials/SyncroMspApi.credentials.js", - "dist/credentials/TaigaApi.credentials.js", - "dist/credentials/TapfiliateApi.credentials.js", - "dist/credentials/TelegramApi.credentials.js", - "dist/credentials/TheHiveProjectApi.credentials.js", - "dist/credentials/TheHiveApi.credentials.js", - "dist/credentials/TimescaleDb.credentials.js", - "dist/credentials/TodoistApi.credentials.js", - "dist/credentials/TodoistOAuth2Api.credentials.js", - "dist/credentials/TogglApi.credentials.js", - "dist/credentials/TotpApi.credentials.js", - "dist/credentials/TravisCiApi.credentials.js", - "dist/credentials/TrellixEpoApi.credentials.js", - "dist/credentials/TrelloApi.credentials.js", - "dist/credentials/TwakeCloudApi.credentials.js", - "dist/credentials/TwakeServerApi.credentials.js", - "dist/credentials/TwilioApi.credentials.js", - "dist/credentials/TwistOAuth2Api.credentials.js", - "dist/credentials/TwitterOAuth1Api.credentials.js", - "dist/credentials/TwitterOAuth2Api.credentials.js", - "dist/credentials/TypeformApi.credentials.js", - "dist/credentials/TypeformOAuth2Api.credentials.js", - "dist/credentials/UnleashedSoftwareApi.credentials.js", - "dist/credentials/UpleadApi.credentials.js", - "dist/credentials/UProcApi.credentials.js", - "dist/credentials/UptimeRobotApi.credentials.js", - "dist/credentials/UrlScanIoApi.credentials.js", - "dist/credentials/VeroApi.credentials.js", - "dist/credentials/VirusTotalApi.credentials.js", - "dist/credentials/VonageApi.credentials.js", - "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", - "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", - "dist/credentials/WebflowApi.credentials.js", - "dist/credentials/WebflowOAuth2Api.credentials.js", - "dist/credentials/WekanApi.credentials.js", - "dist/credentials/WhatsAppApi.credentials.js", - "dist/credentials/WiseApi.credentials.js", - "dist/credentials/WooCommerceApi.credentials.js", - "dist/credentials/WordpressApi.credentials.js", - "dist/credentials/WorkableApi.credentials.js", - "dist/credentials/WufooApi.credentials.js", - "dist/credentials/XeroOAuth2Api.credentials.js", - "dist/credentials/YourlsApi.credentials.js", - "dist/credentials/YouTubeOAuth2Api.credentials.js", - "dist/credentials/ZammadBasicAuthApi.credentials.js", - "dist/credentials/ZammadTokenAuthApi.credentials.js", - "dist/credentials/ZendeskApi.credentials.js", - "dist/credentials/ZendeskOAuth2Api.credentials.js", - "dist/credentials/ZohoOAuth2Api.credentials.js", - "dist/credentials/ZoomApi.credentials.js", - "dist/credentials/ZoomOAuth2Api.credentials.js", - "dist/credentials/ZscalerZiaApi.credentials.js", - "dist/credentials/ZulipApi.credentials.js" - ], - "nodes": [ - "dist/nodes/ActionNetwork/ActionNetwork.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", - "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", - "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", - "dist/nodes/Adalo/Adalo.node.js", - "dist/nodes/Affinity/Affinity.node.js", - "dist/nodes/Affinity/AffinityTrigger.node.js", - "dist/nodes/AgileCrm/AgileCrm.node.js", - "dist/nodes/Airtable/Airtable.node.js", - "dist/nodes/Airtable/AirtableTrigger.node.js", - "dist/nodes/Amqp/Amqp.node.js", - "dist/nodes/Amqp/AmqpTrigger.node.js", - "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", - "dist/nodes/Asana/Asana.node.js", - "dist/nodes/Asana/AsanaTrigger.node.js", - "dist/nodes/Automizy/Automizy.node.js", - "dist/nodes/Autopilot/Autopilot.node.js", - "dist/nodes/Autopilot/AutopilotTrigger.node.js", - "dist/nodes/Aws/AwsLambda.node.js", - "dist/nodes/Aws/AwsSns.node.js", - "dist/nodes/Aws/AwsSnsTrigger.node.js", - "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", - "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", - "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", - "dist/nodes/Aws/ELB/AwsElb.node.js", - "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", - "dist/nodes/Aws/S3/AwsS3.node.js", - "dist/nodes/Aws/SES/AwsSes.node.js", - "dist/nodes/Aws/SQS/AwsSqs.node.js", - "dist/nodes/Aws/Textract/AwsTextract.node.js", - "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", - "dist/nodes/BambooHr/BambooHr.node.js", - "dist/nodes/Bannerbear/Bannerbear.node.js", - "dist/nodes/Baserow/Baserow.node.js", - "dist/nodes/Beeminder/Beeminder.node.js", - "dist/nodes/Bitbucket/BitbucketTrigger.node.js", - "dist/nodes/Bitly/Bitly.node.js", - "dist/nodes/Bitwarden/Bitwarden.node.js", - "dist/nodes/Box/Box.node.js", - "dist/nodes/Box/BoxTrigger.node.js", - "dist/nodes/Brandfetch/Brandfetch.node.js", - "dist/nodes/Bubble/Bubble.node.js", - "dist/nodes/Cal/CalTrigger.node.js", - "dist/nodes/Calendly/CalendlyTrigger.node.js", - "dist/nodes/Chargebee/Chargebee.node.js", - "dist/nodes/Chargebee/ChargebeeTrigger.node.js", - "dist/nodes/CircleCi/CircleCi.node.js", - "dist/nodes/Cisco/Webex/CiscoWebex.node.js", - "dist/nodes/Citrix/ADC/CitrixAdc.node.js", - "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", - "dist/nodes/Cloudflare/Cloudflare.node.js", - "dist/nodes/Clearbit/Clearbit.node.js", - "dist/nodes/ClickUp/ClickUp.node.js", - "dist/nodes/ClickUp/ClickUpTrigger.node.js", - "dist/nodes/Clockify/Clockify.node.js", - "dist/nodes/Clockify/ClockifyTrigger.node.js", - "dist/nodes/Cockpit/Cockpit.node.js", - "dist/nodes/Coda/Coda.node.js", - "dist/nodes/Code/Code.node.js", - "dist/nodes/CoinGecko/CoinGecko.node.js", - "dist/nodes/CompareDatasets/CompareDatasets.node.js", - "dist/nodes/Compression/Compression.node.js", - "dist/nodes/Contentful/Contentful.node.js", - "dist/nodes/ConvertKit/ConvertKit.node.js", - "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", - "dist/nodes/Copper/Copper.node.js", - "dist/nodes/Copper/CopperTrigger.node.js", - "dist/nodes/Cortex/Cortex.node.js", - "dist/nodes/CrateDb/CrateDb.node.js", - "dist/nodes/Cron/Cron.node.js", - "dist/nodes/CrowdDev/CrowdDev.node.js", - "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", - "dist/nodes/Crypto/Crypto.node.js", - "dist/nodes/CustomerIo/CustomerIo.node.js", - "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", - "dist/nodes/DateTime/DateTime.node.js", - "dist/nodes/DebugHelper/DebugHelper.node.js", - "dist/nodes/DeepL/DeepL.node.js", - "dist/nodes/Demio/Demio.node.js", - "dist/nodes/Dhl/Dhl.node.js", - "dist/nodes/Discord/Discord.node.js", - "dist/nodes/Discourse/Discourse.node.js", - "dist/nodes/Disqus/Disqus.node.js", - "dist/nodes/Drift/Drift.node.js", - "dist/nodes/Dropbox/Dropbox.node.js", - "dist/nodes/Dropcontact/Dropcontact.node.js", - "dist/nodes/EditImage/EditImage.node.js", - "dist/nodes/E2eTest/E2eTest.node.js", - "dist/nodes/Egoi/Egoi.node.js", - "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", - "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", - "dist/nodes/EmailReadImap/EmailReadImap.node.js", - "dist/nodes/EmailSend/EmailSend.node.js", - "dist/nodes/Emelia/Emelia.node.js", - "dist/nodes/Emelia/EmeliaTrigger.node.js", - "dist/nodes/ERPNext/ERPNext.node.js", - "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", - "dist/nodes/Eventbrite/EventbriteTrigger.node.js", - "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", - "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", - "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", - "dist/nodes/ExecutionData/ExecutionData.node.js", - "dist/nodes/Facebook/FacebookGraphApi.node.js", - "dist/nodes/Facebook/FacebookTrigger.node.js", - "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", - "dist/nodes/Figma/FigmaTrigger.node.js", - "dist/nodes/FileMaker/FileMaker.node.js", - "dist/nodes/Filter/Filter.node.js", - "dist/nodes/Flow/Flow.node.js", - "dist/nodes/Flow/FlowTrigger.node.js", - "dist/nodes/Form/FormTrigger.node.js", - "dist/nodes/FormIo/FormIoTrigger.node.js", - "dist/nodes/Formstack/FormstackTrigger.node.js", - "dist/nodes/Freshdesk/Freshdesk.node.js", - "dist/nodes/Freshservice/Freshservice.node.js", - "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", - "dist/nodes/Ftp/Ftp.node.js", - "dist/nodes/Function/Function.node.js", - "dist/nodes/FunctionItem/FunctionItem.node.js", - "dist/nodes/GetResponse/GetResponse.node.js", - "dist/nodes/GetResponse/GetResponseTrigger.node.js", - "dist/nodes/Ghost/Ghost.node.js", - "dist/nodes/Git/Git.node.js", - "dist/nodes/Github/Github.node.js", - "dist/nodes/Github/GithubTrigger.node.js", - "dist/nodes/Gitlab/Gitlab.node.js", - "dist/nodes/Gitlab/GitlabTrigger.node.js", - "dist/nodes/Google/Ads/GoogleAds.node.js", - "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", - "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", - "dist/nodes/Google/Books/GoogleBooks.node.js", - "dist/nodes/Google/Calendar/GoogleCalendar.node.js", - "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", - "dist/nodes/Google/Chat/GoogleChat.node.js", - "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", - "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", - "dist/nodes/Google/Contacts/GoogleContacts.node.js", - "dist/nodes/Google/Docs/GoogleDocs.node.js", - "dist/nodes/Google/Drive/GoogleDrive.node.js", - "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", - "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", - "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", - "dist/nodes/Google/Gmail/Gmail.node.js", - "dist/nodes/Google/Gmail/GmailTrigger.node.js", - "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", - "dist/nodes/Google/Perspective/GooglePerspective.node.js", - "dist/nodes/Google/Sheet/GoogleSheets.node.js", - "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", - "dist/nodes/Google/Slides/GoogleSlides.node.js", - "dist/nodes/Google/Task/GoogleTasks.node.js", - "dist/nodes/Google/Translate/GoogleTranslate.node.js", - "dist/nodes/Google/YouTube/YouTube.node.js", - "dist/nodes/Gotify/Gotify.node.js", - "dist/nodes/GoToWebinar/GoToWebinar.node.js", - "dist/nodes/Grafana/Grafana.node.js", - "dist/nodes/GraphQL/GraphQL.node.js", - "dist/nodes/Grist/Grist.node.js", - "dist/nodes/Gumroad/GumroadTrigger.node.js", - "dist/nodes/HackerNews/HackerNews.node.js", - "dist/nodes/HaloPSA/HaloPSA.node.js", - "dist/nodes/Harvest/Harvest.node.js", - "dist/nodes/HelpScout/HelpScout.node.js", - "dist/nodes/HelpScout/HelpScoutTrigger.node.js", - "dist/nodes/HighLevel/HighLevel.node.js", - "dist/nodes/HomeAssistant/HomeAssistant.node.js", - "dist/nodes/HtmlExtract/HtmlExtract.node.js", - "dist/nodes/Html/Html.node.js", - "dist/nodes/HttpRequest/HttpRequest.node.js", - "dist/nodes/Hubspot/Hubspot.node.js", - "dist/nodes/Hubspot/HubspotTrigger.node.js", - "dist/nodes/HumanticAI/HumanticAi.node.js", - "dist/nodes/Hunter/Hunter.node.js", - "dist/nodes/ICalendar/ICalendar.node.js", - "dist/nodes/If/If.node.js", - "dist/nodes/Intercom/Intercom.node.js", - "dist/nodes/Interval/Interval.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", - "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", - "dist/nodes/ItemLists/ItemLists.node.js", - "dist/nodes/Iterable/Iterable.node.js", - "dist/nodes/Jenkins/Jenkins.node.js", - "dist/nodes/Jira/Jira.node.js", - "dist/nodes/Jira/JiraTrigger.node.js", - "dist/nodes/JotForm/JotFormTrigger.node.js", - "dist/nodes/Kafka/Kafka.node.js", - "dist/nodes/Kafka/KafkaTrigger.node.js", - "dist/nodes/Keap/Keap.node.js", - "dist/nodes/Keap/KeapTrigger.node.js", - "dist/nodes/Kitemaker/Kitemaker.node.js", - "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", - "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", - "dist/nodes/Ldap/Ldap.node.js", - "dist/nodes/Lemlist/Lemlist.node.js", - "dist/nodes/Lemlist/LemlistTrigger.node.js", - "dist/nodes/Line/Line.node.js", - "dist/nodes/Linear/Linear.node.js", - "dist/nodes/Linear/LinearTrigger.node.js", - "dist/nodes/LingvaNex/LingvaNex.node.js", - "dist/nodes/LinkedIn/LinkedIn.node.js", - "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", - "dist/nodes/LoneScale/LoneScaleTrigger.node.js", - "dist/nodes/LoneScale/LoneScale.node.js", - "dist/nodes/Magento/Magento2.node.js", - "dist/nodes/Mailcheck/Mailcheck.node.js", - "dist/nodes/Mailchimp/Mailchimp.node.js", - "dist/nodes/Mailchimp/MailchimpTrigger.node.js", - "dist/nodes/MailerLite/MailerLite.node.js", - "dist/nodes/MailerLite/MailerLiteTrigger.node.js", - "dist/nodes/Mailgun/Mailgun.node.js", - "dist/nodes/Mailjet/Mailjet.node.js", - "dist/nodes/Mailjet/MailjetTrigger.node.js", - "dist/nodes/Mandrill/Mandrill.node.js", - "dist/nodes/ManualTrigger/ManualTrigger.node.js", - "dist/nodes/Markdown/Markdown.node.js", - "dist/nodes/Marketstack/Marketstack.node.js", - "dist/nodes/Matrix/Matrix.node.js", - "dist/nodes/Mattermost/Mattermost.node.js", - "dist/nodes/Mautic/Mautic.node.js", - "dist/nodes/Mautic/MauticTrigger.node.js", - "dist/nodes/Medium/Medium.node.js", - "dist/nodes/Merge/Merge.node.js", - "dist/nodes/MessageBird/MessageBird.node.js", - "dist/nodes/Metabase/Metabase.node.js", - "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", - "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", - "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", - "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", - "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", - "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", - "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", - "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", - "dist/nodes/Mindee/Mindee.node.js", - "dist/nodes/Misp/Misp.node.js", - "dist/nodes/Mocean/Mocean.node.js", - "dist/nodes/MondayCom/MondayCom.node.js", - "dist/nodes/MongoDb/MongoDb.node.js", - "dist/nodes/MonicaCrm/MonicaCrm.node.js", - "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", - "dist/nodes/MQTT/Mqtt.node.js", - "dist/nodes/MQTT/MqttTrigger.node.js", - "dist/nodes/Msg91/Msg91.node.js", - "dist/nodes/MySql/MySql.node.js", - "dist/nodes/N8n/N8n.node.js", - "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", - "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", - "dist/nodes/N8nTrigger/N8nTrigger.node.js", - "dist/nodes/Nasa/Nasa.node.js", - "dist/nodes/Netlify/Netlify.node.js", - "dist/nodes/Netlify/NetlifyTrigger.node.js", - "dist/nodes/NextCloud/NextCloud.node.js", - "dist/nodes/NocoDB/NocoDB.node.js", - "dist/nodes/Brevo/Brevo.node.js", - "dist/nodes/Brevo/BrevoTrigger.node.js", - "dist/nodes/StickyNote/StickyNote.node.js", - "dist/nodes/NoOp/NoOp.node.js", - "dist/nodes/Onfleet/Onfleet.node.js", - "dist/nodes/Onfleet/OnfleetTrigger.node.js", - "dist/nodes/Notion/Notion.node.js", - "dist/nodes/Notion/NotionTrigger.node.js", - "dist/nodes/Npm/Npm.node.js", - "dist/nodes/Odoo/Odoo.node.js", - "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", - "dist/nodes/OpenAi/OpenAi.node.js", - "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", - "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", - "dist/nodes/Orbit/Orbit.node.js", - "dist/nodes/Oura/Oura.node.js", - "dist/nodes/Paddle/Paddle.node.js", - "dist/nodes/PagerDuty/PagerDuty.node.js", - "dist/nodes/PayPal/PayPal.node.js", - "dist/nodes/PayPal/PayPalTrigger.node.js", - "dist/nodes/Peekalink/Peekalink.node.js", - "dist/nodes/Phantombuster/Phantombuster.node.js", - "dist/nodes/PhilipsHue/PhilipsHue.node.js", - "dist/nodes/Pipedrive/Pipedrive.node.js", - "dist/nodes/Pipedrive/PipedriveTrigger.node.js", - "dist/nodes/Plivo/Plivo.node.js", - "dist/nodes/PostBin/PostBin.node.js", - "dist/nodes/Postgres/Postgres.node.js", - "dist/nodes/Postgres/PostgresTrigger.node.js", - "dist/nodes/PostHog/PostHog.node.js", - "dist/nodes/Postmark/PostmarkTrigger.node.js", - "dist/nodes/ProfitWell/ProfitWell.node.js", - "dist/nodes/Pushbullet/Pushbullet.node.js", - "dist/nodes/Pushcut/Pushcut.node.js", - "dist/nodes/Pushcut/PushcutTrigger.node.js", - "dist/nodes/Pushover/Pushover.node.js", - "dist/nodes/QuestDb/QuestDb.node.js", - "dist/nodes/QuickBase/QuickBase.node.js", - "dist/nodes/QuickBooks/QuickBooks.node.js", - "dist/nodes/QuickChart/QuickChart.node.js", - "dist/nodes/RabbitMQ/RabbitMQ.node.js", - "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", - "dist/nodes/Raindrop/Raindrop.node.js", - "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", - "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", - "dist/nodes/ReadPdf/ReadPDF.node.js", - "dist/nodes/Reddit/Reddit.node.js", - "dist/nodes/Redis/Redis.node.js", - "dist/nodes/Redis/RedisTrigger.node.js", - "dist/nodes/RenameKeys/RenameKeys.node.js", - "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", - "dist/nodes/Rocketchat/Rocketchat.node.js", - "dist/nodes/RssFeedRead/RssFeedRead.node.js", - "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", - "dist/nodes/Rundeck/Rundeck.node.js", - "dist/nodes/S3/S3.node.js", - "dist/nodes/Salesforce/Salesforce.node.js", - "dist/nodes/Salesmate/Salesmate.node.js", - "dist/nodes/Schedule/ScheduleTrigger.node.js", - "dist/nodes/SeaTable/SeaTable.node.js", - "dist/nodes/SeaTable/SeaTableTrigger.node.js", - "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", - "dist/nodes/Segment/Segment.node.js", - "dist/nodes/SendGrid/SendGrid.node.js", - "dist/nodes/Sendy/Sendy.node.js", - "dist/nodes/SentryIo/SentryIo.node.js", - "dist/nodes/ServiceNow/ServiceNow.node.js", - "dist/nodes/Set/Set.node.js", - "dist/nodes/Shopify/Shopify.node.js", - "dist/nodes/Shopify/ShopifyTrigger.node.js", - "dist/nodes/Signl4/Signl4.node.js", - "dist/nodes/Slack/Slack.node.js", - "dist/nodes/Sms77/Sms77.node.js", - "dist/nodes/Snowflake/Snowflake.node.js", - "dist/nodes/SplitInBatches/SplitInBatches.node.js", - "dist/nodes/Splunk/Splunk.node.js", - "dist/nodes/Spontit/Spontit.node.js", - "dist/nodes/Spotify/Spotify.node.js", - "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", - "dist/nodes/SseTrigger/SseTrigger.node.js", - "dist/nodes/Ssh/Ssh.node.js", - "dist/nodes/Stackby/Stackby.node.js", - "dist/nodes/Start/Start.node.js", - "dist/nodes/StopAndError/StopAndError.node.js", - "dist/nodes/Storyblok/Storyblok.node.js", - "dist/nodes/Strapi/Strapi.node.js", - "dist/nodes/Strava/Strava.node.js", - "dist/nodes/Strava/StravaTrigger.node.js", - "dist/nodes/Stripe/Stripe.node.js", - "dist/nodes/Stripe/StripeTrigger.node.js", - "dist/nodes/Supabase/Supabase.node.js", - "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", - "dist/nodes/Switch/Switch.node.js", - "dist/nodes/SyncroMSP/SyncroMsp.node.js", - "dist/nodes/Taiga/Taiga.node.js", - "dist/nodes/Taiga/TaigaTrigger.node.js", - "dist/nodes/Tapfiliate/Tapfiliate.node.js", - "dist/nodes/Telegram/Telegram.node.js", - "dist/nodes/Telegram/TelegramTrigger.node.js", - "dist/nodes/TheHiveProject/TheHiveProject.node.js", - "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", - "dist/nodes/TheHive/TheHive.node.js", - "dist/nodes/TheHive/TheHiveTrigger.node.js", - "dist/nodes/TimescaleDb/TimescaleDb.node.js", - "dist/nodes/Todoist/Todoist.node.js", - "dist/nodes/Toggl/TogglTrigger.node.js", - "dist/nodes/Totp/Totp.node.js", - "dist/nodes/TravisCi/TravisCi.node.js", - "dist/nodes/Trello/Trello.node.js", - "dist/nodes/Trello/TrelloTrigger.node.js", - "dist/nodes/Twake/Twake.node.js", - "dist/nodes/Twilio/Twilio.node.js", - "dist/nodes/Twist/Twist.node.js", - "dist/nodes/Twitter/Twitter.node.js", - "dist/nodes/Typeform/TypeformTrigger.node.js", - "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", - "dist/nodes/Uplead/Uplead.node.js", - "dist/nodes/UProc/UProc.node.js", - "dist/nodes/UptimeRobot/UptimeRobot.node.js", - "dist/nodes/UrlScanIo/UrlScanIo.node.js", - "dist/nodes/Vero/Vero.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", - "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", - "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", - "dist/nodes/Vonage/Vonage.node.js", - "dist/nodes/Wait/Wait.node.js", - "dist/nodes/Webflow/Webflow.node.js", - "dist/nodes/Webflow/WebflowTrigger.node.js", - "dist/nodes/Webhook/Webhook.node.js", - "dist/nodes/Wekan/Wekan.node.js", - "dist/nodes/WhatsApp/WhatsApp.node.js", - "dist/nodes/Wise/Wise.node.js", - "dist/nodes/Wise/WiseTrigger.node.js", - "dist/nodes/WooCommerce/WooCommerce.node.js", - "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", - "dist/nodes/Wordpress/Wordpress.node.js", - "dist/nodes/Workable/WorkableTrigger.node.js", - "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", - "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", - "dist/nodes/Wufoo/WufooTrigger.node.js", - "dist/nodes/Xero/Xero.node.js", - "dist/nodes/Xml/Xml.node.js", - "dist/nodes/Yourls/Yourls.node.js", - "dist/nodes/Zammad/Zammad.node.js", - "dist/nodes/Zendesk/Zendesk.node.js", - "dist/nodes/Zendesk/ZendeskTrigger.node.js", - "dist/nodes/Zoho/ZohoCrm.node.js", - "dist/nodes/Zoom/Zoom.node.js", - "dist/nodes/Zulip/Zulip.node.js" - ] - }, - "devDependencies": { - "@types/amqplib": "^0.10.1", - "@types/aws4": "^1.5.1", - "@types/basic-auth": "^1.1.3", - "@types/cheerio": "^0.22.15", - "@types/cron": "~1.7.1", - "@types/eventsource": "^1.1.2", - "@types/express": "^4.17.6", - "@types/gm": "^1.25.0", - "@types/imap-simple": "^4.2.0", - "@types/js-nacl": "^1.3.0", - "@types/jsonwebtoken": "^9.0.1", - "@types/lodash": "^4.14.195", - "@types/lossless-json": "^1.0.0", - "@types/mailparser": "^2.7.3", - "@types/mime-types": "^2.1.0", - "@types/mssql": "^6.0.2", - "@types/node-ssh": "^7.0.1", - "@types/nodemailer": "^6.4.0", - "@types/promise-ftp": "^1.3.4", - "@types/redis": "^2.8.11", - "@types/request-promise-native": "~1.0.15", - "@types/rfc2047": "^2.0.1", - "@types/showdown": "^1.9.4", - "@types/snowflake-sdk": "^1.6.12", - "@types/ssh2-sftp-client": "^5.1.0", - "@types/tmp": "^0.2.0", - "@types/uuid": "^8.3.2", - "@types/xml2js": "^0.4.11", - "eslint-plugin-n8n-nodes-base": "^1.16.0", - "gulp": "^4.0.0", - "n8n-core": "1.14.1" - }, - "dependencies": { - "@kafkajs/confluent-schema-registry": "1.0.6", - "@n8n/vm2": "^3.9.20", - "amqplib": "^0.10.3", - "aws4": "^1.8.0", - "basic-auth": "^2.0.1", - "change-case": "^4.1.1", - "cheerio": "1.0.0-rc.6", - "chokidar": "3.5.2", - "cron": "~1.7.2", - "csv-parse": "^5.5.0", - "currency-codes": "^2.1.0", - "eventsource": "^2.0.2", - "fast-glob": "^3.2.5", - "fflate": "^0.7.0", - "get-system-fonts": "^2.0.2", - "gm": "^1.25.0", - "iconv-lite": "^0.6.2", - "ics": "^2.27.0", - "imap-simple": "^4.3.0", - "isbot": "^3.6.13", - "iso-639-1": "^2.1.3", - "js-nacl": "^1.4.0", - "jsonwebtoken": "^9.0.0", - "kafkajs": "^1.14.0", - "ldapts": "^4.2.6", - "lodash": "^4.17.21", - "lossless-json": "^1.0.4", - "luxon": "^3.3.0", - "mailparser": "^3.2.0", - "minifaker": "^1.34.1", - "moment": "~2.29.2", - "moment-timezone": "^0.5.28", - "mongodb": "^4.17.1", - "mqtt": "^5.0.2", - "mssql": "^8.1.2", - "mysql2": "~2.3.0", - "nanoid": "^3.3.6", - "node-html-markdown": "^1.1.3", - "node-ssh": "^12.0.0", - "nodemailer": "^6.7.1", - "otpauth": "^9.1.1", - "pdfjs-dist": "^2.16.105", - "pg": "^8.3.0", - "pg-promise": "^10.5.8", - "pretty-bytes": "^5.6.0", - "promise-ftp": "^1.3.5", - "pyodide": "^0.23.4", - "redis": "^3.1.1", - "rfc2047": "^4.0.1", - "rhea": "^1.0.11", - "rss-parser": "^3.7.0", - "semver": "^7.5.4", - "showdown": "^2.0.3", - "simple-git": "^3.17.0", - "snowflake-sdk": "^1.8.0", - "ssh2-sftp-client": "^7.0.0", - "tmp-promise": "^3.0.2", - "typedi": "^0.10.0", - "uuid": "^8.3.2", - "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", - "xml2js": "^0.5.0", - "n8n-workflow": "1.14.1" - }, - "scripts": { - "clean": "rimraf dist .turbo", - "dev": "pnpm watch", - "typecheck": "tsc", - "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", - "build:translations": "gulp build:translations", - "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", - "format": "prettier --write . --ignore-path ../../.prettierignore", - "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", - "lintfix": "eslint . --fix", - "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", - "test": "jest" - } - }, - "extraction_time_ms": 3, - "extracted_at": "2025-06-07T17:49:22.888Z" - } - ], - "errors": [ - { - "node": "@n8n/n8n-nodes-langchain.Agent", - "error": "Node source code not found for: @n8n/n8n-nodes-langchain.Agent" - }, - { - "node": "@n8n/n8n-nodes-langchain.OpenAiAssistant", - "error": "Node source code not found for: @n8n/n8n-nodes-langchain.OpenAiAssistant" - }, - { - "node": "@n8n/n8n-nodes-langchain.ChainLlm", - "error": "Node source code not found for: @n8n/n8n-nodes-langchain.ChainLlm" - }, - { - "node": "n8n-nodes-base.GoogleSheets", - "error": "Node source code not found for: n8n-nodes-base.GoogleSheets" - } - ], - "totalSize": 53119 -} \ No newline at end of file +[ + { + "nodeType": "n8n-nodes-base.Slack", + "success": true, + "hasPackageInfo": true, + "hasCredentials": true, + "sourceSize": 1007, + "credentialSize": 7553, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.Discord", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 10049, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.HttpRequest", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 1343, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.Webhook", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 10667, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.If", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 20533, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.SplitInBatches", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 1135, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.Airtable", + "success": true, + "hasPackageInfo": true, + "hasCredentials": true, + "sourceSize": 936, + "credentialSize": 5985, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + }, + { + "nodeType": "n8n-nodes-base.Function", + "success": true, + "hasPackageInfo": true, + "hasCredentials": false, + "sourceSize": 7449, + "credentialSize": 0, + "packageName": "n8n-nodes-base", + "packageVersion": "1.14.1" + } +] \ No newline at end of file diff --git a/tests/test-complete-fix.js b/tests/test-complete-fix.js new file mode 100755 index 0000000..94f6fc6 --- /dev/null +++ b/tests/test-complete-fix.js @@ -0,0 +1,94 @@ +#!/usr/bin/env node + +const { NodeDocumentationService } = require('../dist/services/node-documentation-service'); + +async function testCompleteFix() { + console.log('=== Testing Complete Documentation Fix ===\n'); + + const service = new NodeDocumentationService('./data/test-nodes-v2.db'); + + try { + // First check if we have any nodes + const existingNodes = await service.listNodes(); + console.log(`๐Ÿ“Š Current database has ${existingNodes.length} nodes`); + + if (existingNodes.length === 0) { + console.log('\n๐Ÿ”„ Rebuilding database with fixed documentation fetcher...'); + const stats = await service.rebuildDatabase(); + console.log(`\nโœ… Rebuild complete:`); + console.log(` - Total nodes found: ${stats.total}`); + console.log(` - Successfully processed: ${stats.successful}`); + console.log(` - Failed: ${stats.failed}`); + + if (stats.errors.length > 0) { + console.log('\nโš ๏ธ Errors encountered:'); + stats.errors.slice(0, 5).forEach(err => console.log(` - ${err}`)); + } + } + + // Test specific nodes + console.log('\n๐Ÿ“‹ Testing specific nodes:'); + + const testNodes = ['slack', 'if', 'httpRequest', 'webhook']; + + for (const nodeName of testNodes) { + const nodeInfo = await service.getNodeInfo(`n8n-nodes-base.${nodeName}`); + + if (nodeInfo) { + console.log(`\nโœ… ${nodeInfo.displayName || nodeName}:`); + console.log(` - Type: ${nodeInfo.nodeType}`); + console.log(` - Description: ${nodeInfo.description?.substring(0, 80)}...`); + console.log(` - Has source code: ${!!nodeInfo.sourceCode}`); + console.log(` - Has documentation: ${!!nodeInfo.documentation}`); + console.log(` - Documentation URL: ${nodeInfo.documentationUrl || 'N/A'}`); + console.log(` - Has example: ${!!nodeInfo.exampleWorkflow}`); + console.log(` - Category: ${nodeInfo.category || 'N/A'}`); + + // Check if it's getting the right documentation + if (nodeInfo.documentation) { + const isCredentialDoc = nodeInfo.documentation.includes('credentials') && + !nodeInfo.documentation.includes('node documentation'); + console.log(` - Is credential doc: ${isCredentialDoc} ${isCredentialDoc ? 'โŒ' : 'โœ…'}`); + } + } else { + console.log(`\nโŒ ${nodeName}: Not found in database`); + } + } + + // Test search functionality + console.log('\n๐Ÿ” Testing search functionality:'); + + const searchTests = [ + { query: 'webhook', label: 'Webhook nodes' }, + { query: 'http', label: 'HTTP nodes' }, + { query: 'slack', label: 'Slack nodes' } + ]; + + for (const test of searchTests) { + const results = await service.searchNodes({ query: test.query }); + console.log(`\n ${test.label}: ${results.length} results`); + results.slice(0, 3).forEach(node => { + console.log(` - ${node.displayName} (${node.nodeType})`); + }); + } + + // Get final statistics + console.log('\n๐Ÿ“Š Final database statistics:'); + const stats = service.getStatistics(); + console.log(` - Total nodes: ${stats.totalNodes}`); + console.log(` - Nodes with documentation: ${stats.nodesWithDocs}`); + console.log(` - Nodes with examples: ${stats.nodesWithExamples}`); + console.log(` - Trigger nodes: ${stats.triggerNodes}`); + console.log(` - Webhook nodes: ${stats.webhookNodes}`); + + console.log('\nโœ… All tests completed!'); + + } catch (error) { + console.error('\nโŒ Test failed:', error); + process.exit(1); + } finally { + service.close(); + } +} + +testCompleteFix().catch(console.error); \ No newline at end of file diff --git a/tests/test-debug-enhanced.js b/tests/test-debug-enhanced.js new file mode 100644 index 0000000..dd9dcf2 --- /dev/null +++ b/tests/test-debug-enhanced.js @@ -0,0 +1,38 @@ +#!/usr/bin/env node + +const { EnhancedDocumentationFetcher } = require('../dist/utils/enhanced-documentation-fetcher'); + +async function debugTest() { + console.log('=== Debug Enhanced Documentation ===\n'); + + const fetcher = new EnhancedDocumentationFetcher(); + + try { + await fetcher.ensureDocsRepository(); + + // Test Slack documentation parsing + console.log('Testing Slack documentation...'); + const slackDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDoc) { + console.log('\nSlack Documentation:'); + console.log('- Operations found:', slackDoc.operations?.length || 0); + + // Show raw markdown around operations section + const operationsIndex = slackDoc.markdown.indexOf('## Operations'); + if (operationsIndex > -1) { + console.log('\nRaw markdown around Operations section:'); + console.log('---'); + console.log(slackDoc.markdown.substring(operationsIndex, operationsIndex + 1000)); + console.log('---'); + } + } + + } catch (error) { + console.error('Error:', error); + } finally { + await fetcher.cleanup(); + } +} + +debugTest().catch(console.error); \ No newline at end of file diff --git a/tests/test-docs-fix.js b/tests/test-docs-fix.js new file mode 100755 index 0000000..0f801bd --- /dev/null +++ b/tests/test-docs-fix.js @@ -0,0 +1,57 @@ +#!/usr/bin/env node + +const { DocumentationFetcher } = require('../dist/utils/documentation-fetcher'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); + +async function testDocsFix() { + console.log('=== Testing Documentation Fix ===\n'); + + const docsFetcher = new DocumentationFetcher(); + const extractor = new NodeSourceExtractor(); + + try { + // Test nodes + const testNodes = [ + 'n8n-nodes-base.slack', + 'n8n-nodes-base.if', + 'n8n-nodes-base.httpRequest', + 'n8n-nodes-base.webhook' + ]; + + for (const nodeType of testNodes) { + console.log(`\n๐Ÿ“‹ Testing ${nodeType}:`); + + // Test documentation fetching + const docs = await docsFetcher.getNodeDocumentation(nodeType); + if (docs) { + console.log(` โœ… Documentation found`); + console.log(` ๐Ÿ“„ URL: ${docs.url}`); + const titleMatch = docs.markdown.match(/title:\s*(.+)/); + if (titleMatch) { + console.log(` ๐Ÿ“ Title: ${titleMatch[1]}`); + } + console.log(` ๐Ÿ“ Length: ${docs.markdown.length} characters`); + console.log(` ๐Ÿ”ง Has examples: ${docs.examples && docs.examples.length > 0}`); + } else { + console.log(` โŒ No documentation found`); + } + + // Test source extraction + try { + const source = await extractor.extractNodeSource(nodeType); + console.log(` โœ… Source code found at: ${source.location}`); + } catch (error) { + console.log(` โŒ Source extraction failed: ${error.message}`); + } + } + + console.log('\nโœ… Test completed!'); + + } catch (error) { + console.error('\nโŒ Test failed:', error); + } finally { + await docsFetcher.cleanup(); + } +} + +testDocsFix().catch(console.error); \ No newline at end of file diff --git a/tests/test-enhanced-documentation.js b/tests/test-enhanced-documentation.js new file mode 100644 index 0000000..972a5b2 --- /dev/null +++ b/tests/test-enhanced-documentation.js @@ -0,0 +1,141 @@ +#!/usr/bin/env node + +const { EnhancedDocumentationFetcher } = require('../dist/utils/enhanced-documentation-fetcher'); +const { EnhancedSQLiteStorageService } = require('../dist/services/enhanced-sqlite-storage-service'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); + +async function testEnhancedDocumentation() { + console.log('=== Testing Enhanced Documentation Fetcher ===\n'); + + const fetcher = new EnhancedDocumentationFetcher(); + const storage = new EnhancedSQLiteStorageService('./data/test-enhanced.db'); + const extractor = new NodeSourceExtractor(); + + try { + // Test 1: Fetch and parse Slack node documentation + console.log('1. Testing Slack node documentation parsing...'); + const slackDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDoc) { + console.log('\nโœ“ Slack Documentation Found:'); + console.log(` - Title: ${slackDoc.title}`); + console.log(` - Description: ${slackDoc.description}`); + console.log(` - URL: ${slackDoc.url}`); + console.log(` - Operations: ${slackDoc.operations?.length || 0} found`); + console.log(` - API Methods: ${slackDoc.apiMethods?.length || 0} found`); + console.log(` - Examples: ${slackDoc.examples?.length || 0} found`); + console.log(` - Required Scopes: ${slackDoc.requiredScopes?.length || 0} found`); + + // Show sample operations + if (slackDoc.operations && slackDoc.operations.length > 0) { + console.log('\n Sample Operations:'); + slackDoc.operations.slice(0, 5).forEach(op => { + console.log(` - ${op.resource}.${op.operation}: ${op.description}`); + }); + } + + // Show sample API mappings + if (slackDoc.apiMethods && slackDoc.apiMethods.length > 0) { + console.log('\n Sample API Mappings:'); + slackDoc.apiMethods.slice(0, 5).forEach(api => { + console.log(` - ${api.resource}.${api.operation} โ†’ ${api.apiMethod}`); + }); + } + } else { + console.log('โœ— Slack documentation not found'); + } + + // Test 2: Test with If node (core node) + console.log('\n\n2. Testing If node documentation parsing...'); + const ifDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.if'); + + if (ifDoc) { + console.log('\nโœ“ If Documentation Found:'); + console.log(` - Title: ${ifDoc.title}`); + console.log(` - Description: ${ifDoc.description}`); + console.log(` - Examples: ${ifDoc.examples?.length || 0} found`); + console.log(` - Related Resources: ${ifDoc.relatedResources?.length || 0} found`); + } + + // Test 3: Store node with documentation + console.log('\n\n3. Testing node storage with documentation...'); + + // Extract a node + const nodeInfo = await extractor.extractNodeSource('n8n-nodes-base.slack'); + if (nodeInfo) { + const storedNode = await storage.storeNodeWithDocumentation(nodeInfo); + + console.log('\nโœ“ Node stored successfully:'); + console.log(` - Node Type: ${storedNode.nodeType}`); + console.log(` - Has Documentation: ${!!storedNode.documentationMarkdown}`); + console.log(` - Operations: ${storedNode.operationCount}`); + console.log(` - API Methods: ${storedNode.apiMethodCount}`); + console.log(` - Examples: ${storedNode.exampleCount}`); + console.log(` - Resources: ${storedNode.resourceCount}`); + console.log(` - Scopes: ${storedNode.scopeCount}`); + + // Get detailed operations + const operations = await storage.getNodeOperations(storedNode.id); + if (operations.length > 0) { + console.log('\n Stored Operations (first 5):'); + operations.slice(0, 5).forEach(op => { + console.log(` - ${op.resource}.${op.operation}: ${op.description}`); + }); + } + + // Get examples + const examples = await storage.getNodeExamples(storedNode.id); + if (examples.length > 0) { + console.log('\n Stored Examples:'); + examples.forEach(ex => { + console.log(` - ${ex.title || 'Untitled'} (${ex.type}): ${ex.code.length} chars`); + }); + } + } + + // Test 4: Search with enhanced FTS + console.log('\n\n4. Testing enhanced search...'); + + const searchResults = await storage.searchNodes({ query: 'slack message' }); + console.log(`\nโœ“ Search Results for "slack message": ${searchResults.length} nodes found`); + + if (searchResults.length > 0) { + console.log(' First result:'); + const result = searchResults[0]; + console.log(` - ${result.displayName || result.name} (${result.nodeType})`); + console.log(` - Documentation: ${result.documentationTitle || 'No title'}`); + } + + // Test 5: Get statistics + console.log('\n\n5. Getting enhanced statistics...'); + const stats = await storage.getEnhancedStatistics(); + + console.log('\nโœ“ Enhanced Statistics:'); + console.log(` - Total Nodes: ${stats.totalNodes}`); + console.log(` - Nodes with Documentation: ${stats.nodesWithDocumentation}`); + console.log(` - Documentation Coverage: ${stats.documentationCoverage}%`); + console.log(` - Total Operations: ${stats.totalOperations}`); + console.log(` - Total API Methods: ${stats.totalApiMethods}`); + console.log(` - Total Examples: ${stats.totalExamples}`); + console.log(` - Total Resources: ${stats.totalResources}`); + console.log(` - Total Scopes: ${stats.totalScopes}`); + + if (stats.topDocumentedNodes && stats.topDocumentedNodes.length > 0) { + console.log('\n Top Documented Nodes:'); + stats.topDocumentedNodes.slice(0, 3).forEach(node => { + console.log(` - ${node.display_name || node.name}: ${node.operation_count} operations, ${node.example_count} examples`); + }); + } + + } catch (error) { + console.error('Error during testing:', error); + } finally { + // Cleanup + storage.close(); + await fetcher.cleanup(); + console.log('\n\nโœ“ Test completed and cleaned up'); + } +} + +// Run the test +testEnhancedDocumentation().catch(console.error); \ No newline at end of file diff --git a/tests/test-enhanced-final.js b/tests/test-enhanced-final.js new file mode 100644 index 0000000..259c226 --- /dev/null +++ b/tests/test-enhanced-final.js @@ -0,0 +1,156 @@ +#!/usr/bin/env node + +const { EnhancedDocumentationFetcher } = require('../dist/utils/enhanced-documentation-fetcher'); +const { EnhancedSQLiteStorageService } = require('../dist/services/enhanced-sqlite-storage-service'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); + +async function testEnhancedDocumentation() { + console.log('=== Enhanced Documentation Parser Test ===\n'); + + const fetcher = new EnhancedDocumentationFetcher(); + const extractor = new NodeSourceExtractor(); + + try { + // Test 1: Parse Slack documentation + console.log('1. Parsing Slack node documentation...'); + const slackDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDoc) { + console.log('\nโœ“ Slack Documentation Parsed:'); + console.log(` Title: ${slackDoc.title}`); + console.log(` Description: ${slackDoc.description?.substring(0, 100)}...`); + console.log(` URL: ${slackDoc.url}`); + console.log(` Operations: ${slackDoc.operations?.length || 0} found`); + console.log(` API Methods: ${slackDoc.apiMethods?.length || 0} found`); + console.log(` Related Resources: ${slackDoc.relatedResources?.length || 0} found`); + + // Show sample operations + if (slackDoc.operations && slackDoc.operations.length > 0) { + console.log('\n Sample Operations (first 10):'); + slackDoc.operations.slice(0, 10).forEach((op, i) => { + console.log(` ${i + 1}. ${op.resource}.${op.operation}: ${op.description}`); + }); + } + + // Show sample API mappings + if (slackDoc.apiMethods && slackDoc.apiMethods.length > 0) { + console.log('\n Sample API Method Mappings (first 5):'); + slackDoc.apiMethods.slice(0, 5).forEach((api, i) => { + console.log(` ${i + 1}. ${api.resource}.${api.operation} โ†’ ${api.apiMethod} (${api.apiUrl})`); + }); + } + + // Show related resources + if (slackDoc.relatedResources && slackDoc.relatedResources.length > 0) { + console.log('\n Related Resources:'); + slackDoc.relatedResources.forEach((res, i) => { + console.log(` ${i + 1}. ${res.title} (${res.type}): ${res.url}`); + }); + } + } + + // Test 2: Parse HTTP Request documentation (if available) + console.log('\n\n2. Parsing HTTP Request node documentation...'); + const httpDoc = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.httpRequest'); + + if (httpDoc) { + console.log('\nโœ“ HTTP Request Documentation Parsed:'); + console.log(` Title: ${httpDoc.title}`); + console.log(` Examples: ${httpDoc.examples?.length || 0} found`); + + if (httpDoc.examples && httpDoc.examples.length > 0) { + console.log('\n Code Examples:'); + httpDoc.examples.forEach((ex, i) => { + console.log(` ${i + 1}. ${ex.title || 'Example'} (${ex.type}): ${ex.code.length} characters`); + }); + } + } else { + console.log(' HTTP Request documentation not found'); + } + + // Test 3: Database storage test with smaller database + console.log('\n\n3. Testing enhanced database storage...'); + const storage = new EnhancedSQLiteStorageService('./data/demo-enhanced.db'); + + try { + // Store Slack node with documentation + const slackNodeInfo = await extractor.extractNodeSource('n8n-nodes-base.slack'); + if (slackNodeInfo) { + const storedNode = await storage.storeNodeWithDocumentation(slackNodeInfo); + + console.log('\nโœ“ Slack node stored with documentation:'); + console.log(` Node Type: ${storedNode.nodeType}`); + console.log(` Documentation: ${storedNode.documentationTitle || 'No title'}`); + console.log(` Operations stored: ${storedNode.operationCount}`); + console.log(` API methods stored: ${storedNode.apiMethodCount}`); + console.log(` Examples stored: ${storedNode.exampleCount}`); + console.log(` Resources stored: ${storedNode.resourceCount}`); + } + + // Store a few more nodes + const nodeTypes = ['n8n-nodes-base.if', 'n8n-nodes-base.webhook']; + for (const nodeType of nodeTypes) { + try { + const nodeInfo = await extractor.extractNodeSource(nodeType); + if (nodeInfo) { + await storage.storeNodeWithDocumentation(nodeInfo); + console.log(` โœ“ Stored ${nodeType}`); + } + } catch (e) { + console.log(` โœ— Failed to store ${nodeType}: ${e.message}`); + } + } + + // Test search functionality + console.log('\n\n4. Testing enhanced search...'); + + const searchTests = [ + { query: 'slack', description: 'Search for "slack"' }, + { query: 'message send', description: 'Search for "message send"' }, + { query: 'webhook', description: 'Search for "webhook"' } + ]; + + for (const test of searchTests) { + const results = await storage.searchNodes({ query: test.query }); + console.log(`\n ${test.description}: ${results.length} results`); + if (results.length > 0) { + const first = results[0]; + console.log(` Top result: ${first.displayName || first.name} (${first.nodeType})`); + if (first.documentationTitle) { + console.log(` Documentation: ${first.documentationTitle}`); + } + } + } + + // Get final statistics + console.log('\n\n5. Database Statistics:'); + const stats = await storage.getEnhancedStatistics(); + + console.log(` Total Nodes: ${stats.totalNodes}`); + console.log(` Nodes with Documentation: ${stats.nodesWithDocumentation} (${stats.documentationCoverage}% coverage)`); + console.log(` Total Operations: ${stats.totalOperations}`); + console.log(` Total API Methods: ${stats.totalApiMethods}`); + console.log(` Total Examples: ${stats.totalExamples}`); + console.log(` Total Resources: ${stats.totalResources}`); + + if (stats.topDocumentedNodes && stats.topDocumentedNodes.length > 0) { + console.log('\n Best Documented Nodes:'); + stats.topDocumentedNodes.forEach((node, i) => { + console.log(` ${i + 1}. ${node.display_name || node.name}: ${node.operation_count} operations, ${node.example_count} examples`); + }); + } + + } finally { + storage.close(); + } + + } catch (error) { + console.error('\nError:', error); + } finally { + await fetcher.cleanup(); + console.log('\n\nโœ“ Test completed and cleaned up'); + } +} + +// Run the test +testEnhancedDocumentation().catch(console.error); \ No newline at end of file diff --git a/tests/test-enhanced-integration.js b/tests/test-enhanced-integration.js new file mode 100644 index 0000000..c78f157 --- /dev/null +++ b/tests/test-enhanced-integration.js @@ -0,0 +1,163 @@ +#!/usr/bin/env node + +const { DocumentationFetcher } = require('../dist/utils/documentation-fetcher'); +const { NodeDocumentationService } = require('../dist/services/node-documentation-service'); + +async function testEnhancedIntegration() { + console.log('๐Ÿงช Testing Enhanced Documentation Integration...\n'); + + // Test 1: DocumentationFetcher backward compatibility + console.log('1๏ธโƒฃ Testing DocumentationFetcher backward compatibility...'); + const docFetcher = new DocumentationFetcher(); + + try { + // Test getNodeDocumentation (backward compatible method) + const simpleDoc = await docFetcher.getNodeDocumentation('n8n-nodes-base.slack'); + if (simpleDoc) { + console.log(' โœ… Simple documentation format works'); + console.log(` - Has markdown: ${!!simpleDoc.markdown}`); + console.log(` - Has URL: ${!!simpleDoc.url}`); + console.log(` - Has examples: ${simpleDoc.examples?.length || 0}`); + } + + // Test getEnhancedNodeDocumentation (new method) + const enhancedDoc = await docFetcher.getEnhancedNodeDocumentation('n8n-nodes-base.slack'); + if (enhancedDoc) { + console.log(' โœ… Enhanced documentation format works'); + console.log(` - Title: ${enhancedDoc.title || 'N/A'}`); + console.log(` - Operations: ${enhancedDoc.operations?.length || 0}`); + console.log(` - API Methods: ${enhancedDoc.apiMethods?.length || 0}`); + console.log(` - Examples: ${enhancedDoc.examples?.length || 0}`); + console.log(` - Templates: ${enhancedDoc.templates?.length || 0}`); + console.log(` - Related Resources: ${enhancedDoc.relatedResources?.length || 0}`); + } + } catch (error) { + console.error(' โŒ DocumentationFetcher test failed:', error.message); + } + + // Test 2: NodeDocumentationService with enhanced fields + console.log('\n2๏ธโƒฃ Testing NodeDocumentationService enhanced schema...'); + const docService = new NodeDocumentationService('data/test-enhanced-docs.db'); + + try { + // Store a test node with enhanced documentation + const testNode = { + nodeType: 'test.enhanced-node', + name: 'enhanced-node', + displayName: 'Enhanced Test Node', + description: 'A test node with enhanced documentation', + sourceCode: 'const testCode = "example";', + packageName: 'test-package', + documentation: '# Test Documentation', + documentationUrl: 'https://example.com/docs', + documentationTitle: 'Enhanced Test Node Documentation', + operations: [ + { + resource: 'Message', + operation: 'Send', + description: 'Send a message' + } + ], + apiMethods: [ + { + resource: 'Message', + operation: 'Send', + apiMethod: 'chat.postMessage', + apiUrl: 'https://api.slack.com/methods/chat.postMessage' + } + ], + documentationExamples: [ + { + title: 'Send Message Example', + type: 'json', + code: '{"text": "Hello World"}' + } + ], + templates: [ + { + name: 'Basic Message Template', + description: 'Simple message sending template' + } + ], + relatedResources: [ + { + title: 'API Documentation', + url: 'https://api.slack.com', + type: 'api' + } + ], + requiredScopes: ['chat:write'], + hasCredentials: true, + isTrigger: false, + isWebhook: false + }; + + await docService.storeNode(testNode); + console.log(' โœ… Stored node with enhanced documentation'); + + // Retrieve and verify + const retrieved = await docService.getNodeInfo('test.enhanced-node'); + if (retrieved) { + console.log(' โœ… Retrieved node with enhanced fields:'); + console.log(` - Has operations: ${!!retrieved.operations}`); + console.log(` - Has API methods: ${!!retrieved.apiMethods}`); + console.log(` - Has documentation examples: ${!!retrieved.documentationExamples}`); + console.log(` - Has templates: ${!!retrieved.templates}`); + console.log(` - Has related resources: ${!!retrieved.relatedResources}`); + console.log(` - Has required scopes: ${!!retrieved.requiredScopes}`); + } + + // Test search + const searchResults = await docService.searchNodes({ query: 'enhanced' }); + console.log(` โœ… Search found ${searchResults.length} results`); + + } catch (error) { + console.error(' โŒ NodeDocumentationService test failed:', error.message); + } finally { + docService.close(); + } + + // Test 3: MCP Server integration + console.log('\n3๏ธโƒฃ Testing MCP Server integration...'); + try { + const { N8NMCPServer } = require('../dist/mcp/server'); + console.log(' โœ… MCP Server loads with enhanced documentation support'); + + // Check if new tools are available + const { n8nTools } = require('../dist/mcp/tools'); + const enhancedTools = [ + 'get_node_documentation', + 'search_node_documentation', + 'get_node_operations', + 'get_node_examples' + ]; + + const hasAllTools = enhancedTools.every(toolName => + n8nTools.some(tool => tool.name === toolName) + ); + + if (hasAllTools) { + console.log(' โœ… All enhanced documentation tools are available'); + enhancedTools.forEach(toolName => { + const tool = n8nTools.find(t => t.name === toolName); + console.log(` - ${toolName}: ${tool.description}`); + }); + } else { + console.log(' โš ๏ธ Some enhanced tools are missing'); + } + + } catch (error) { + console.error(' โŒ MCP Server integration test failed:', error.message); + } + + console.log('\nโœจ Enhanced documentation integration tests completed!'); + + // Cleanup + await docFetcher.cleanup(); +} + +// Run tests +testEnhancedIntegration().catch(error => { + console.error('Fatal error:', error); + process.exit(1); +}); \ No newline at end of file diff --git a/tests/test-package-info.js b/tests/test-package-info.js new file mode 100644 index 0000000..70de018 --- /dev/null +++ b/tests/test-package-info.js @@ -0,0 +1,30 @@ +#!/usr/bin/env node + +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); + +async function testPackageInfo() { + console.log('๐Ÿงช Testing Package Info Extraction\n'); + + const extractor = new NodeSourceExtractor(); + + const testNodes = [ + 'n8n-nodes-base.Slack', + 'n8n-nodes-base.HttpRequest', + 'n8n-nodes-base.Function' + ]; + + for (const nodeType of testNodes) { + console.log(`\n๐Ÿ“ฆ Testing ${nodeType}:`); + try { + const result = await extractor.extractNodeSource(nodeType); + console.log(` - Source Code: ${result.sourceCode ? 'โœ…' : 'โŒ'} (${result.sourceCode?.length || 0} bytes)`); + console.log(` - Credential Code: ${result.credentialCode ? 'โœ…' : 'โŒ'} (${result.credentialCode?.length || 0} bytes)`); + console.log(` - Package Name: ${result.packageInfo?.name || 'โŒ undefined'}`); + console.log(` - Package Version: ${result.packageInfo?.version || 'โŒ undefined'}`); + } catch (error) { + console.log(` โŒ Error: ${error.message}`); + } + } +} + +testPackageInfo().catch(console.error); \ No newline at end of file diff --git a/tests/test-parsing-operations.js b/tests/test-parsing-operations.js new file mode 100644 index 0000000..24dea86 --- /dev/null +++ b/tests/test-parsing-operations.js @@ -0,0 +1,82 @@ +#!/usr/bin/env node + +const markdown = ` +## Operations + +* **Channel** + * **Archive** a channel. + * **Close** a direct message or multi-person direct message. + * **Create** a public or private channel-based conversation. + * **Get** information about a channel. + * **Get Many**: Get a list of channels in Slack. +* **File** + * **Get** a file. + * **Get Many**: Get and filter team files. + * **Upload**: Create or upload an existing file. + +## Templates and examples +`; + +function extractOperations(markdown) { + const operations = []; + + // Find operations section + const operationsMatch = markdown.match(/##\s+Operations\s*\n([\s\S]*?)(?=\n##|\n#|$)/i); + if (!operationsMatch) { + console.log('No operations section found'); + return operations; + } + + const operationsText = operationsMatch[1]; + console.log('Operations text:', operationsText.substring(0, 200)); + + // Parse operation structure + let currentResource = null; + const lines = operationsText.split('\n'); + + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const trimmedLine = line.trim(); + + // Resource level (e.g., "* **Channel**") + if (trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*/)) { + currentResource = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*/)[1].trim(); + console.log(`Found resource: ${currentResource}`); + continue; + } + + // Skip if we don't have a current resource + if (!currentResource) continue; + + // Operation level - look for indented bullets (4 spaces + *) + if (line.match(/^\s{4}\*\s+/)) { + console.log(`Found operation line: "${line}"`); + + // Extract operation name and description + const operationMatch = trimmedLine.match(/^\*\s+\*\*([^*]+)\*\*(.*)$/); + if (operationMatch) { + const operation = operationMatch[1].trim(); + let description = operationMatch[2].trim(); + + // Clean up description + description = description.replace(/^:\s*/, '').replace(/\.$/, '').trim(); + + operations.push({ + resource: currentResource, + operation, + description: description || operation, + }); + console.log(` Parsed: ${operation} - ${description}`); + } + } + } + + return operations; +} + +const operations = extractOperations(markdown); +console.log('\nTotal operations found:', operations.length); +console.log('\nOperations:'); +operations.forEach(op => { + console.log(`- ${op.resource}.${op.operation}: ${op.description}`); +}); \ No newline at end of file diff --git a/tests/test-results/extracted-nodes.json b/tests/test-results/extracted-nodes.json new file mode 100644 index 0000000..6d58e48 --- /dev/null +++ b/tests/test-results/extracted-nodes.json @@ -0,0 +1,5378 @@ +[ + { + "nodeType": "ActionNetwork", + "name": "ActionNetwork", + "codeLength": 15810, + "codeHash": "c0a880f5754b6b532ff787bdb253dc49ffd7f470f28aeddda5be0c73f9f9935f", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/ActionNetwork/ActionNetwork.node.js", + "extractedAt": "2025-06-08T10:57:56.009Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionNetwork = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst GenericFunctions_1 = require(\"./GenericFunctions\");\nconst descriptions_1 = require(\"./descriptions\");\nclass ActionNetwork {\n constructor() {\n this.description = {\n displayName: 'Action Network',\n name: 'actionNetwork',\n icon: 'file:actionNetwork.svg',\n group: ['transform'],\n version: 1,\n subtitle: '={{$parameter[\"resource\"] + \": \" + $parameter[\"operation\"]}}',\n description: 'Consume the Action Network API',\n defaults: {\n name: 'Action Network',\n },\n inputs: ['main'],\n outputs: ['main'],\n credentials: [\n {\n name: 'actionNetworkApi',\n required: true,\n },\n ],\n properties: [\n {\n displayName: 'Resource',\n name: 'resource',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Attendance',\n value: 'attendance',\n },\n {\n name: 'Event',\n value: 'event',\n },\n {\n name: 'Person',\n value: 'person',\n },\n {\n name: 'Person Tag',\n value: 'personTag',\n },\n {\n name: 'Petition',\n value: 'petition',\n },\n {\n name: 'Signature',\n value: 'signature',\n },\n {\n name: 'Tag',\n value: 'tag',\n },\n ],\n default: 'attendance',\n },\n ...descriptions_1.attendanceOperations,\n ...descriptions_1.attendanceFields,\n ...descriptions_1.eventOperations,\n ...descriptions_1.eventFields,\n ...descriptions_1.personOperations,\n ...descriptions_1.personFields,\n ...descriptions_1.petitionOperations,\n ...descriptions_1.petitionFields,\n ...descriptions_1.signatureOperations,\n ...descriptions_1.signatureFields,\n ...descriptions_1.tagOperations,\n ...descriptions_1.tagFields,\n ...descriptions_1.personTagOperations,\n ...descriptions_1.personTagFields,\n ],\n };\n this.methods = {\n loadOptions: GenericFunctions_1.resourceLoaders,\n };\n }\n async execute() {\n const items = this.getInputData();\n const returnData = [];\n const resource = this.getNodeParameter('resource', 0);\n const operation = this.getNodeParameter('operation', 0);\n let response;\n for (let i = 0; i < items.length; i++) {\n try {\n if (resource === 'attendance') {\n if (operation === 'create') {\n const personId = this.getNodeParameter('personId', i);\n const eventId = this.getNodeParameter('eventId', i);\n const body = (0, GenericFunctions_1.makeOsdiLink)(personId);\n const endpoint = `/events/${eventId}/attendances`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', endpoint, body);\n }\n else if (operation === 'get') {\n const eventId = this.getNodeParameter('eventId', i);\n const attendanceId = this.getNodeParameter('attendanceId', i);\n const endpoint = `/events/${eventId}/attendances/${attendanceId}`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', endpoint);\n }\n else if (operation === 'getAll') {\n const eventId = this.getNodeParameter('eventId', i);\n const endpoint = `/events/${eventId}/attendances`;\n response = await GenericFunctions_1.handleListing.call(this, 'GET', endpoint);\n }\n }\n else if (resource === 'event') {\n if (operation === 'create') {\n const body = {\n origin_system: this.getNodeParameter('originSystem', i),\n title: this.getNodeParameter('title', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (Object.keys(additionalFields).length) {\n Object.assign(body, (0, GenericFunctions_1.adjustEventPayload)(additionalFields));\n }\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', '/events', body);\n }\n else if (operation === 'get') {\n const eventId = this.getNodeParameter('eventId', i);\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', `/events/${eventId}`);\n }\n else if (operation === 'getAll') {\n response = await GenericFunctions_1.handleListing.call(this, 'GET', '/events');\n }\n }\n else if (resource === 'person') {\n if (operation === 'create') {\n const emailAddresses = this.getNodeParameter('email_addresses', i);\n const body = {\n person: {\n email_addresses: [emailAddresses.email_addresses_fields],\n },\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (Object.keys(additionalFields).length && body.person) {\n Object.assign(body.person, (0, GenericFunctions_1.adjustPersonPayload)(additionalFields));\n }\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', '/people', body);\n }\n else if (operation === 'get') {\n const personId = this.getNodeParameter('personId', i);\n response = (await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', `/people/${personId}`));\n }\n else if (operation === 'getAll') {\n response = (await GenericFunctions_1.handleListing.call(this, 'GET', '/people'));\n }\n else if (operation === 'update') {\n const personId = this.getNodeParameter('personId', i);\n const body = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n if (Object.keys(updateFields).length) {\n Object.assign(body, (0, GenericFunctions_1.adjustPersonPayload)(updateFields));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please enter at least one field to update for the ${resource}.`, { itemIndex: i });\n }\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'PUT', `/people/${personId}`, body);\n }\n }\n else if (resource === 'petition') {\n if (operation === 'create') {\n const body = {\n origin_system: this.getNodeParameter('originSystem', i),\n title: this.getNodeParameter('title', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (Object.keys(additionalFields).length) {\n Object.assign(body, (0, GenericFunctions_1.adjustPetitionPayload)(additionalFields));\n }\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', '/petitions', body);\n }\n else if (operation === 'get') {\n const petitionId = this.getNodeParameter('petitionId', i);\n const endpoint = `/petitions/${petitionId}`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', endpoint);\n }\n else if (operation === 'getAll') {\n response = await GenericFunctions_1.handleListing.call(this, 'GET', '/petitions');\n }\n else if (operation === 'update') {\n const petitionId = this.getNodeParameter('petitionId', i);\n const body = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n if (Object.keys(updateFields).length) {\n Object.assign(body, (0, GenericFunctions_1.adjustPetitionPayload)(updateFields));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please enter at least one field to update for the ${resource}.`, { itemIndex: i });\n }\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'PUT', `/petitions/${petitionId}`, body);\n }\n }\n else if (resource === 'signature') {\n if (operation === 'create') {\n const personId = this.getNodeParameter('personId', i);\n const petitionId = this.getNodeParameter('petitionId', i);\n const body = (0, GenericFunctions_1.makeOsdiLink)(personId);\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (Object.keys(additionalFields).length) {\n Object.assign(body, additionalFields);\n }\n const endpoint = `/petitions/${petitionId}/signatures`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', endpoint, body);\n }\n else if (operation === 'get') {\n const petitionId = this.getNodeParameter('petitionId', i);\n const signatureId = this.getNodeParameter('signatureId', i);\n const endpoint = `/petitions/${petitionId}/signatures/${signatureId}`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', endpoint);\n }\n else if (operation === 'getAll') {\n const petitionId = this.getNodeParameter('petitionId', i);\n const endpoint = `/petitions/${petitionId}/signatures`;\n response = await GenericFunctions_1.handleListing.call(this, 'GET', endpoint);\n }\n else if (operation === 'update') {\n const petitionId = this.getNodeParameter('petitionId', i);\n const signatureId = this.getNodeParameter('signatureId', i);\n const body = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n if (Object.keys(updateFields).length) {\n Object.assign(body, updateFields);\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Please enter at least one field to update for the ${resource}.`, { itemIndex: i });\n }\n const endpoint = `/petitions/${petitionId}/signatures/${signatureId}`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'PUT', endpoint, body);\n }\n }\n else if (resource === 'tag') {\n if (operation === 'create') {\n const body = {\n name: this.getNodeParameter('name', i),\n };\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', '/tags', body);\n }\n else if (operation === 'get') {\n const tagId = this.getNodeParameter('tagId', i);\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'GET', `/tags/${tagId}`);\n }\n else if (operation === 'getAll') {\n response = await GenericFunctions_1.handleListing.call(this, 'GET', '/tags');\n }\n }\n else if (resource === 'personTag') {\n if (operation === 'add') {\n const personId = this.getNodeParameter('personId', i);\n const tagId = this.getNodeParameter('tagId', i);\n const body = (0, GenericFunctions_1.makeOsdiLink)(personId);\n const endpoint = `/tags/${tagId}/taggings`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'POST', endpoint, body);\n }\n else if (operation === 'remove') {\n const tagId = this.getNodeParameter('tagId', i);\n const taggingId = this.getNodeParameter('taggingId', i);\n const endpoint = `/tags/${tagId}/taggings/${taggingId}`;\n response = await GenericFunctions_1.actionNetworkApiRequest.call(this, 'DELETE', endpoint);\n }\n }\n const simplify = this.getNodeParameter('simple', i, false);\n if (simplify) {\n response =\n operation === 'getAll'\n ? response.map((entry) => (0, GenericFunctions_1.simplifyResponse)(entry, resource))\n : (0, GenericFunctions_1.simplifyResponse)(response, resource);\n }\n Array.isArray(response)\n ? returnData.push(...response)\n : returnData.push(response);\n }\n catch (error) {\n if (this.continueOnFail()) {\n returnData.push({ error: error.message });\n continue;\n }\n throw error;\n }\n }\n return [this.helpers.returnJsonArray(returnData)];\n }\n}\nexports.ActionNetwork = ActionNetwork;\n//# sourceMappingURL=ActionNetwork.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionNetworkApi = void 0;\nclass ActionNetworkApi {\n constructor() {\n this.name = 'actionNetworkApi';\n this.displayName = 'Action Network API';\n this.documentationUrl = 'actionNetwork';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.test = {\n request: {\n baseURL: 'https://actionnetwork.org/api/v2',\n url: '/events?per_page=1',\n },\n };\n }\n async authenticate(credentials, requestOptions) {\n requestOptions.headers = { 'OSDI-API-Token': credentials.apiKey };\n return requestOptions;\n }\n}\nexports.ActionNetworkApi = ActionNetworkApi;\n//# sourceMappingURL=ActionNetworkApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActionNetworkApi = void 0;\nclass ActionNetworkApi {\n constructor() {\n this.name = 'actionNetworkApi';\n this.displayName = 'Action Network API';\n this.documentationUrl = 'actionNetwork';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.test = {\n request: {\n baseURL: 'https://actionnetwork.org/api/v2',\n url: '/events?per_page=1',\n },\n };\n }\n async authenticate(credentials, requestOptions) {\n requestOptions.headers = { 'OSDI-API-Token': credentials.apiKey };\n return requestOptions;\n }\n}\nexports.ActionNetworkApi = ActionNetworkApi;\n//# sourceMappingURL=ActionNetworkApi.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + }, + { + "nodeType": "ActiveCampaign", + "name": "ActiveCampaign", + "codeLength": 38399, + "codeHash": "5ea90671718d20eecb6cddae2e21c91470fdb778e8be97106ee2539303422ad2", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "extractedAt": "2025-06-08T10:57:56.032Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActiveCampaign = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst GenericFunctions_1 = require(\"./GenericFunctions\");\nconst ContactDescription_1 = require(\"./ContactDescription\");\nconst DealDescription_1 = require(\"./DealDescription\");\nconst EcomOrderDescription_1 = require(\"./EcomOrderDescription\");\nconst EcomCustomerDescription_1 = require(\"./EcomCustomerDescription\");\nconst EcomOrderProductsDescription_1 = require(\"./EcomOrderProductsDescription\");\nconst ConnectionDescription_1 = require(\"./ConnectionDescription\");\nconst AccountDescription_1 = require(\"./AccountDescription\");\nconst TagDescription_1 = require(\"./TagDescription\");\nconst AccountContactDescription_1 = require(\"./AccountContactDescription\");\nconst ContactListDescription_1 = require(\"./ContactListDescription\");\nconst ContactTagDescription_1 = require(\"./ContactTagDescription\");\nconst ListDescription_1 = require(\"./ListDescription\");\nfunction addAdditionalFields(body, additionalFields) {\n for (const key of Object.keys(additionalFields)) {\n if (key === 'customProperties' &&\n additionalFields.customProperties.property !== undefined) {\n for (const customProperty of additionalFields.customProperties\n .property) {\n body[customProperty.name] = customProperty.value;\n }\n }\n else if (key === 'fieldValues' &&\n additionalFields.fieldValues.property !== undefined) {\n body.fieldValues = additionalFields.fieldValues.property;\n }\n else if (key === 'fields' &&\n additionalFields.fields.property !== undefined) {\n body.fields = additionalFields.fields.property;\n }\n else {\n body[key] = additionalFields[key];\n }\n }\n}\nclass ActiveCampaign {\n constructor() {\n this.description = {\n displayName: 'ActiveCampaign',\n name: 'activeCampaign',\n icon: 'file:activeCampaign.png',\n group: ['transform'],\n version: 1,\n subtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n description: 'Create and edit data in ActiveCampaign',\n defaults: {\n name: 'ActiveCampaign',\n },\n inputs: ['main'],\n outputs: ['main'],\n credentials: [\n {\n name: 'activeCampaignApi',\n required: true,\n },\n ],\n properties: [\n {\n displayName: 'Resource',\n name: 'resource',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Account',\n value: 'account',\n },\n {\n name: 'Account Contact',\n value: 'accountContact',\n },\n {\n name: 'Connection',\n value: 'connection',\n },\n {\n name: 'Contact',\n value: 'contact',\n },\n {\n name: 'Contact List',\n value: 'contactList',\n },\n {\n name: 'Contact Tag',\n value: 'contactTag',\n },\n {\n name: 'Deal',\n value: 'deal',\n },\n {\n name: 'E-Commerce Customer',\n value: 'ecommerceCustomer',\n },\n {\n name: 'E-Commerce Order',\n value: 'ecommerceOrder',\n },\n {\n name: 'E-Commerce Order Product',\n value: 'ecommerceOrderProducts',\n },\n {\n name: 'List',\n value: 'list',\n },\n {\n name: 'Tag',\n value: 'tag',\n },\n ],\n default: 'contact',\n },\n ...AccountDescription_1.accountOperations,\n ...ContactDescription_1.contactOperations,\n ...AccountContactDescription_1.accountContactOperations,\n ...ContactListDescription_1.contactListOperations,\n ...ContactTagDescription_1.contactTagOperations,\n ...ListDescription_1.listOperations,\n ...TagDescription_1.tagOperations,\n ...DealDescription_1.dealOperations,\n ...ConnectionDescription_1.connectionOperations,\n ...EcomOrderDescription_1.ecomOrderOperations,\n ...EcomCustomerDescription_1.ecomCustomerOperations,\n ...EcomOrderProductsDescription_1.ecomOrderProductsOperations,\n ...TagDescription_1.tagFields,\n ...ListDescription_1.listFields,\n ...ContactTagDescription_1.contactTagFields,\n ...ContactListDescription_1.contactListFields,\n ...AccountDescription_1.accountFields,\n ...AccountContactDescription_1.accountContactFields,\n ...ContactDescription_1.contactFields,\n ...DealDescription_1.dealFields,\n ...ConnectionDescription_1.connectionFields,\n ...EcomOrderDescription_1.ecomOrderFields,\n ...EcomCustomerDescription_1.ecomCustomerFields,\n ...EcomOrderProductsDescription_1.ecomOrderProductsFields,\n ],\n };\n this.methods = {\n loadOptions: {\n async getContactCustomFields() {\n const returnData = [];\n const { fields } = await GenericFunctions_1.activeCampaignApiRequest.call(this, 'GET', '/api/3/fields', {}, { limit: 100 });\n for (const field of fields) {\n const fieldName = field.title;\n const fieldId = field.id;\n returnData.push({\n name: fieldName,\n value: fieldId,\n });\n }\n return returnData;\n },\n async getAccountCustomFields() {\n const returnData = [];\n const { accountCustomFieldMeta: fields } = await GenericFunctions_1.activeCampaignApiRequest.call(this, 'GET', '/api/3/accountCustomFieldMeta', {}, { limit: 100 });\n for (const field of fields) {\n const fieldName = field.fieldLabel;\n const fieldId = field.id;\n returnData.push({\n name: fieldName,\n value: fieldId,\n });\n }\n return returnData;\n },\n async getTags() {\n const returnData = [];\n const { tags } = await GenericFunctions_1.activeCampaignApiRequest.call(this, 'GET', '/api/3/tags', {}, { limit: 100 });\n for (const tag of tags) {\n returnData.push({\n name: tag.tag,\n value: tag.id,\n });\n }\n return returnData;\n },\n },\n };\n }\n async execute() {\n const items = this.getInputData();\n const returnData = [];\n let resource;\n let operation;\n let body;\n let qs;\n let requestMethod;\n let endpoint;\n let returnAll = false;\n let dataKey;\n for (let i = 0; i < items.length; i++) {\n try {\n dataKey = undefined;\n resource = this.getNodeParameter('resource', 0);\n operation = this.getNodeParameter('operation', 0);\n requestMethod = 'GET';\n endpoint = '';\n body = {};\n qs = {};\n if (resource === 'contact') {\n if (operation === 'create') {\n requestMethod = 'POST';\n const updateIfExists = this.getNodeParameter('updateIfExists', i);\n if (updateIfExists) {\n endpoint = '/api/3/contact/sync';\n }\n else {\n endpoint = '/api/3/contacts';\n }\n dataKey = 'contact';\n body.contact = {\n email: this.getNodeParameter('email', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.contact, additionalFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const contactId = this.getNodeParameter('contactId', i);\n endpoint = `/api/3/contacts/${contactId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const contactId = this.getNodeParameter('contactId', i);\n endpoint = `/api/3/contacts/${contactId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n returnAll = this.getNodeParameter('returnAll', i);\n const simple = this.getNodeParameter('simple', i, true);\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n Object.assign(qs, additionalFields);\n if (qs.orderBy) {\n qs[qs.orderBy] = true;\n delete qs.orderBy;\n }\n if (simple) {\n dataKey = 'contacts';\n }\n endpoint = '/api/3/contacts';\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const contactId = this.getNodeParameter('contactId', i);\n endpoint = `/api/3/contacts/${contactId}`;\n dataKey = 'contact';\n body.contact = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.contact, updateFields);\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'account') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/accounts';\n dataKey = 'account';\n body.account = {\n name: this.getNodeParameter('name', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.account, additionalFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const accountId = this.getNodeParameter('accountId', i);\n endpoint = `/api/3/accounts/${accountId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const accountId = this.getNodeParameter('accountId', i);\n endpoint = `/api/3/accounts/${accountId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'accounts';\n }\n endpoint = '/api/3/accounts';\n const filters = this.getNodeParameter('filters', i);\n Object.assign(qs, filters);\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const accountId = this.getNodeParameter('accountId', i);\n endpoint = `/api/3/accounts/${accountId}`;\n dataKey = 'account';\n body.account = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.account, updateFields);\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'accountContact') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/accountContacts';\n dataKey = 'accountContact';\n body.accountContact = {\n contact: this.getNodeParameter('contact', i),\n account: this.getNodeParameter('account', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.accountContact, additionalFields);\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const accountContactId = this.getNodeParameter('accountContactId', i);\n endpoint = `/api/3/accountContacts/${accountContactId}`;\n dataKey = 'accountContact';\n body.accountContact = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.accountContact, updateFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const accountContactId = this.getNodeParameter('accountContactId', i);\n endpoint = `/api/3/accountContacts/${accountContactId}`;\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'contactTag') {\n if (operation === 'add') {\n requestMethod = 'POST';\n endpoint = '/api/3/contactTags';\n dataKey = 'contactTag';\n body.contactTag = {\n contact: this.getNodeParameter('contactId', i),\n tag: this.getNodeParameter('tagId', i),\n };\n }\n else if (operation === 'remove') {\n requestMethod = 'DELETE';\n const contactTagId = this.getNodeParameter('contactTagId', i);\n endpoint = `/api/3/contactTags/${contactTagId}`;\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'contactList') {\n if (operation === 'add') {\n requestMethod = 'POST';\n endpoint = '/api/3/contactLists';\n dataKey = 'contactTag';\n body.contactList = {\n list: this.getNodeParameter('listId', i),\n contact: this.getNodeParameter('contactId', i),\n status: 1,\n };\n }\n else if (operation === 'remove') {\n requestMethod = 'POST';\n endpoint = '/api/3/contactLists';\n body.contactList = {\n list: this.getNodeParameter('listId', i),\n contact: this.getNodeParameter('contactId', i),\n status: 2,\n };\n dataKey = 'contacts';\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'list') {\n if (operation === 'getAll') {\n requestMethod = 'GET';\n returnAll = this.getNodeParameter('returnAll', i);\n const simple = this.getNodeParameter('simple', i, true);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'lists';\n }\n endpoint = '/api/3/lists';\n }\n }\n else if (resource === 'tag') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/tags';\n dataKey = 'tag';\n body.tag = {\n tag: this.getNodeParameter('name', i),\n tagType: this.getNodeParameter('tagType', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.tag, additionalFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const tagId = this.getNodeParameter('tagId', i);\n endpoint = `/api/3/tags/${tagId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const tagId = this.getNodeParameter('tagId', i);\n endpoint = `/api/3/tags/${tagId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'tags';\n }\n endpoint = '/api/3/tags';\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const tagId = this.getNodeParameter('tagId', i);\n endpoint = `/api/3/tags/${tagId}`;\n dataKey = 'tag';\n body.tag = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.tag, updateFields);\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'deal') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/deals';\n body.deal = {\n title: this.getNodeParameter('title', i),\n contact: this.getNodeParameter('contact', i),\n value: this.getNodeParameter('value', i),\n currency: this.getNodeParameter('currency', i),\n };\n const group = this.getNodeParameter('group', i);\n if (group !== '') {\n addAdditionalFields(body.deal, { group });\n }\n const owner = this.getNodeParameter('owner', i);\n if (owner !== '') {\n addAdditionalFields(body.deal, { owner });\n }\n const stage = this.getNodeParameter('stage', i);\n if (stage !== '') {\n addAdditionalFields(body.deal, { stage });\n }\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.deal, additionalFields);\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const dealId = this.getNodeParameter('dealId', i);\n endpoint = `/api/3/deals/${dealId}`;\n body.deal = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.deal, updateFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const dealId = this.getNodeParameter('dealId', i);\n endpoint = `/api/3/deals/${dealId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const dealId = this.getNodeParameter('dealId', i);\n endpoint = `/api/3/deals/${dealId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'deals';\n }\n endpoint = '/api/3/deals';\n }\n else if (operation === 'createNote') {\n requestMethod = 'POST';\n body.note = {\n note: this.getNodeParameter('dealNote', i),\n };\n const dealId = this.getNodeParameter('dealId', i);\n endpoint = `/api/3/deals/${dealId}/notes`;\n }\n else if (operation === 'updateNote') {\n requestMethod = 'PUT';\n body.note = {\n note: this.getNodeParameter('dealNote', i),\n };\n const dealId = this.getNodeParameter('dealId', i);\n const dealNoteId = this.getNodeParameter('dealNoteId', i);\n endpoint = `/api/3/deals/${dealId}/notes/${dealNoteId}`;\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'connection') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/connections';\n body.connection = {\n service: this.getNodeParameter('service', i),\n externalid: this.getNodeParameter('externalid', i),\n name: this.getNodeParameter('name', i),\n logoUrl: this.getNodeParameter('logoUrl', i),\n linkUrl: this.getNodeParameter('linkUrl', i),\n };\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const connectionId = this.getNodeParameter('connectionId', i);\n endpoint = `/api/3/connections/${connectionId}`;\n body.connection = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.connection, updateFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const connectionId = this.getNodeParameter('connectionId', i);\n endpoint = `/api/3/connections/${connectionId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const connectionId = this.getNodeParameter('connectionId', i);\n endpoint = `/api/3/connections/${connectionId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'connections';\n }\n endpoint = '/api/3/connections';\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'ecommerceOrder') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/ecomOrders';\n body.ecomOrder = {\n source: this.getNodeParameter('source', i),\n email: this.getNodeParameter('email', i),\n totalPrice: this.getNodeParameter('totalPrice', i),\n currency: this.getNodeParameter('currency', i).toString().toUpperCase(),\n externalCreatedDate: this.getNodeParameter('externalCreatedDate', i),\n connectionid: this.getNodeParameter('connectionid', i),\n customerid: this.getNodeParameter('customerid', i),\n };\n const externalid = this.getNodeParameter('externalid', i);\n if (externalid !== '') {\n addAdditionalFields(body.ecomOrder, { externalid });\n }\n const externalcheckoutid = this.getNodeParameter('externalcheckoutid', i);\n if (externalcheckoutid !== '') {\n addAdditionalFields(body.ecomOrder, { externalcheckoutid });\n }\n const abandonedDate = this.getNodeParameter('abandonedDate', i);\n if (abandonedDate !== '') {\n addAdditionalFields(body.ecomOrder, { abandonedDate });\n }\n const orderProducts = this.getNodeParameter('orderProducts', i);\n addAdditionalFields(body.ecomOrder, { orderProducts });\n const additionalFields = this.getNodeParameter('additionalFields', i);\n addAdditionalFields(body.ecomOrder, additionalFields);\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const orderId = this.getNodeParameter('orderId', i);\n endpoint = `/api/3/ecomOrders/${orderId}`;\n body.ecomOrder = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n addAdditionalFields(body.ecomOrder, updateFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const orderId = this.getNodeParameter('orderId', i);\n endpoint = `/api/3/ecomOrders/${orderId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const orderId = this.getNodeParameter('orderId', i);\n endpoint = `/api/3/ecomOrders/${orderId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'ecomOrders';\n }\n endpoint = '/api/3/ecomOrders';\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'ecommerceCustomer') {\n if (operation === 'create') {\n requestMethod = 'POST';\n endpoint = '/api/3/ecomCustomers';\n body.ecomCustomer = {\n connectionid: this.getNodeParameter('connectionid', i),\n externalid: this.getNodeParameter('externalid', i),\n email: this.getNodeParameter('email', i),\n };\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (additionalFields.acceptsMarketing !== undefined) {\n if (additionalFields.acceptsMarketing === true) {\n additionalFields.acceptsMarketing = '1';\n }\n else {\n additionalFields.acceptsMarketing = '0';\n }\n }\n addAdditionalFields(body.ecomCustomer, additionalFields);\n }\n else if (operation === 'update') {\n requestMethod = 'PUT';\n const ecommerceCustomerId = this.getNodeParameter('ecommerceCustomerId', i);\n endpoint = `/api/3/ecomCustomers/${ecommerceCustomerId}`;\n body.ecomCustomer = {};\n const updateFields = this.getNodeParameter('updateFields', i);\n if (updateFields.acceptsMarketing !== undefined) {\n if (updateFields.acceptsMarketing === true) {\n updateFields.acceptsMarketing = '1';\n }\n else {\n updateFields.acceptsMarketing = '0';\n }\n }\n addAdditionalFields(body.ecomCustomer, updateFields);\n }\n else if (operation === 'delete') {\n requestMethod = 'DELETE';\n const ecommerceCustomerId = this.getNodeParameter('ecommerceCustomerId', i);\n endpoint = `/api/3/ecomCustomers/${ecommerceCustomerId}`;\n }\n else if (operation === 'get') {\n requestMethod = 'GET';\n const ecommerceCustomerId = this.getNodeParameter('ecommerceCustomerId', i);\n endpoint = `/api/3/ecomCustomers/${ecommerceCustomerId}`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'ecomCustomers';\n }\n endpoint = '/api/3/ecomCustomers';\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else if (resource === 'ecommerceOrderProducts') {\n if (operation === 'getByProductId') {\n requestMethod = 'GET';\n const procuctId = this.getNodeParameter('procuctId', i);\n endpoint = `/api/3/ecomOrderProducts/${procuctId}`;\n }\n else if (operation === 'getByOrderId') {\n requestMethod = 'GET';\n const orderId = this.getNodeParameter('orderId', i);\n endpoint = `/api/3/ecomOrders/${orderId}/orderProducts`;\n }\n else if (operation === 'getAll') {\n requestMethod = 'GET';\n const simple = this.getNodeParameter('simple', i, true);\n returnAll = this.getNodeParameter('returnAll', i);\n if (!returnAll) {\n qs.limit = this.getNodeParameter('limit', i);\n }\n if (simple) {\n dataKey = 'ecomOrderProducts';\n }\n endpoint = '/api/3/ecomOrderProducts';\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation \"${operation}\" is not known`, { itemIndex: i });\n }\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource \"${resource}\" is not known!`, {\n itemIndex: i,\n });\n }\n let responseData;\n if (returnAll) {\n responseData = await GenericFunctions_1.activeCampaignApiRequestAllItems.call(this, requestMethod, endpoint, body, qs, dataKey);\n }\n else {\n responseData = await GenericFunctions_1.activeCampaignApiRequest.call(this, requestMethod, endpoint, body, qs, dataKey);\n }\n if (resource === 'contactList' && operation === 'add' && responseData === undefined) {\n responseData = { success: true };\n }\n const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } });\n returnData.push(...executionData);\n }\n catch (error) {\n if (this.continueOnFail()) {\n const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } });\n returnData.push(...executionErrorData);\n continue;\n }\n throw error;\n }\n }\n return [returnData];\n }\n}\nexports.ActiveCampaign = ActiveCampaign;\n//# sourceMappingURL=ActiveCampaign.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActiveCampaignApi = void 0;\nclass ActiveCampaignApi {\n constructor() {\n this.name = 'activeCampaignApi';\n this.displayName = 'ActiveCampaign API';\n this.documentationUrl = 'activeCampaign';\n this.properties = [\n {\n displayName: 'API URL',\n name: 'apiUrl',\n type: 'string',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n headers: {\n 'Api-Token': '={{$credentials.apiKey}}',\n },\n },\n };\n this.test = {\n request: {\n baseURL: '={{$credentials.apiUrl}}',\n url: '/api/3/fields',\n },\n };\n }\n}\nexports.ActiveCampaignApi = ActiveCampaignApi;\n//# sourceMappingURL=ActiveCampaignApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActiveCampaignApi = void 0;\nclass ActiveCampaignApi {\n constructor() {\n this.name = 'activeCampaignApi';\n this.displayName = 'ActiveCampaign API';\n this.documentationUrl = 'activeCampaign';\n this.properties = [\n {\n displayName: 'API URL',\n name: 'apiUrl',\n type: 'string',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n headers: {\n 'Api-Token': '={{$credentials.apiKey}}',\n },\n },\n };\n this.test = {\n request: {\n baseURL: '={{$credentials.apiUrl}}',\n url: '/api/3/fields',\n },\n };\n }\n}\nexports.ActiveCampaignApi = ActiveCampaignApi;\n//# sourceMappingURL=ActiveCampaignApi.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + }, + { + "nodeType": "Adalo", + "name": "Adalo", + "codeLength": 8234, + "codeHash": "0fbcb0b60141307fdc3394154af1b2c3133fa6181aac336249c6c211fd24846f", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Adalo/Adalo.node.js", + "extractedAt": "2025-06-08T10:57:57.330Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Adalo = void 0;\nconst CollectionDescription_1 = require(\"./CollectionDescription\");\nclass Adalo {\n constructor() {\n this.description = {\n displayName: 'Adalo',\n name: 'adalo',\n icon: 'file:adalo.svg',\n group: ['transform'],\n version: 1,\n subtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"collectionId\"]}}',\n description: 'Consume Adalo API',\n defaults: {\n name: 'Adalo',\n },\n inputs: ['main'],\n outputs: ['main'],\n credentials: [\n {\n name: 'adaloApi',\n required: true,\n },\n ],\n requestDefaults: {\n baseURL: '=https://api.adalo.com/v0/apps/{{$credentials.appId}}',\n },\n requestOperations: {\n pagination: {\n type: 'offset',\n properties: {\n limitParameter: 'limit',\n offsetParameter: 'offset',\n pageSize: 100,\n type: 'query',\n },\n },\n },\n properties: [\n {\n displayName: 'Resource',\n name: 'resource',\n type: 'options',\n noDataExpression: true,\n default: 'collection',\n options: [\n {\n name: 'Collection',\n value: 'collection',\n },\n ],\n },\n {\n displayName: 'Operation',\n name: 'operation',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Create',\n value: 'create',\n description: 'Create a row',\n routing: {\n send: {\n preSend: [this.presendCreateUpdate],\n },\n request: {\n method: 'POST',\n url: '=/collections/{{$parameter[\"collectionId\"]}}',\n },\n },\n action: 'Create a row',\n },\n {\n name: 'Delete',\n value: 'delete',\n description: 'Delete a row',\n routing: {\n request: {\n method: 'DELETE',\n url: '=/collections/{{$parameter[\"collectionId\"]}}/{{$parameter[\"rowId\"]}}',\n },\n output: {\n postReceive: [\n {\n type: 'set',\n properties: {\n value: '={{ { \"success\": true } }}',\n },\n },\n ],\n },\n },\n action: 'Delete a row',\n },\n {\n name: 'Get',\n value: 'get',\n description: 'Retrieve a row',\n routing: {\n request: {\n method: 'GET',\n url: '=/collections/{{$parameter[\"collectionId\"]}}/{{$parameter[\"rowId\"]}}',\n },\n },\n action: 'Retrieve a row',\n },\n {\n name: 'Get Many',\n value: 'getAll',\n description: 'Retrieve many rows',\n routing: {\n request: {\n method: 'GET',\n url: '=/collections/{{$parameter[\"collectionId\"]}}',\n qs: {\n limit: '={{$parameter[\"limit\"]}}',\n },\n },\n send: {\n paginate: '={{$parameter[\"returnAll\"]}}',\n },\n output: {\n postReceive: [\n {\n type: 'rootProperty',\n properties: {\n property: 'records',\n },\n },\n ],\n },\n },\n action: 'Retrieve all rows',\n },\n {\n name: 'Update',\n value: 'update',\n description: 'Update a row',\n routing: {\n send: {\n preSend: [this.presendCreateUpdate],\n },\n request: {\n method: 'PUT',\n url: '=/collections/{{$parameter[\"collectionId\"]}}/{{$parameter[\"rowId\"]}}',\n },\n },\n action: 'Update a row',\n },\n ],\n default: 'getAll',\n },\n {\n displayName: 'Collection ID',\n name: 'collectionId',\n type: 'string',\n required: true,\n default: '',\n description: 'Open your Adalo application and click on the three buttons beside the collection name, then select API Documentation',\n hint: \"You can find information about app's collections on https://app.adalo.com/apps/your-app-id/api-docs\",\n displayOptions: {\n show: {\n resource: ['collection'],\n },\n },\n },\n ...CollectionDescription_1.collectionFields,\n ],\n };\n }\n async presendCreateUpdate(requestOptions) {\n const dataToSend = this.getNodeParameter('dataToSend', 0);\n requestOptions.body = {};\n if (dataToSend === 'autoMapInputData') {\n const inputData = this.getInputData();\n const rawInputsToIgnore = this.getNodeParameter('inputsToIgnore');\n const inputKeysToIgnore = rawInputsToIgnore.split(',').map((c) => c.trim());\n const inputKeys = Object.keys(inputData.json).filter((key) => !inputKeysToIgnore.includes(key));\n for (const key of inputKeys) {\n requestOptions.body[key] = inputData.json[key];\n }\n }\n else {\n const fields = this.getNodeParameter('fieldsUi.fieldValues');\n for (const field of fields) {\n requestOptions.body[field.fieldId] = field.fieldValue;\n }\n }\n return requestOptions;\n }\n}\nexports.Adalo = Adalo;\n//# sourceMappingURL=Adalo.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdaloApi = void 0;\nclass AdaloApi {\n constructor() {\n this.name = 'adaloApi';\n this.displayName = 'Adalo API';\n this.documentationUrl = 'adalo';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n description: 'The Adalo API is available on paid Adalo plans, find more information here',\n },\n {\n displayName: 'App ID',\n name: 'appId',\n type: 'string',\n default: '',\n description: 'You can get App ID from the URL of your app. For example, if your app URL is https://app.adalo.com/apps/1234567890/screens, then your App ID is 1234567890.',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n headers: {\n Authorization: '=Bearer {{$credentials.apiKey}}',\n },\n },\n };\n }\n}\nexports.AdaloApi = AdaloApi;\n//# sourceMappingURL=AdaloApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AdaloApi = void 0;\nclass AdaloApi {\n constructor() {\n this.name = 'adaloApi';\n this.displayName = 'Adalo API';\n this.documentationUrl = 'adalo';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n description: 'The Adalo API is available on paid Adalo plans, find more information here',\n },\n {\n displayName: 'App ID',\n name: 'appId',\n type: 'string',\n default: '',\n description: 'You can get App ID from the URL of your app. For example, if your app URL is https://app.adalo.com/apps/1234567890/screens, then your App ID is 1234567890.',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n headers: {\n Authorization: '=Bearer {{$credentials.apiKey}}',\n },\n },\n };\n }\n}\nexports.AdaloApi = AdaloApi;\n//# sourceMappingURL=AdaloApi.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + }, + { + "nodeType": "Affinity", + "name": "Affinity", + "codeLength": 16217, + "codeHash": "e605ea187767403dfa55cd374690f7df563a0baa7ca6991d86d522dc101a2846", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Affinity/Affinity.node.js", + "extractedAt": "2025-06-08T10:57:57.343Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Affinity = void 0;\nconst GenericFunctions_1 = require(\"./GenericFunctions\");\nconst OrganizationDescription_1 = require(\"./OrganizationDescription\");\nconst PersonDescription_1 = require(\"./PersonDescription\");\nconst ListDescription_1 = require(\"./ListDescription\");\nconst ListEntryDescription_1 = require(\"./ListEntryDescription\");\nclass Affinity {\n constructor() {\n this.description = {\n displayName: 'Affinity',\n name: 'affinity',\n icon: 'file:affinity.png',\n group: ['output'],\n version: 1,\n subtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n description: 'Consume Affinity API',\n defaults: {\n name: 'Affinity',\n },\n inputs: ['main'],\n outputs: ['main'],\n credentials: [\n {\n name: 'affinityApi',\n required: true,\n },\n ],\n properties: [\n {\n displayName: 'Resource',\n name: 'resource',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'List',\n value: 'list',\n },\n {\n name: 'List Entry',\n value: 'listEntry',\n },\n {\n name: 'Organization',\n value: 'organization',\n },\n {\n name: 'Person',\n value: 'person',\n },\n ],\n default: 'organization',\n },\n ...ListDescription_1.listOperations,\n ...ListDescription_1.listFields,\n ...ListEntryDescription_1.listEntryOperations,\n ...ListEntryDescription_1.listEntryFields,\n ...OrganizationDescription_1.organizationOperations,\n ...OrganizationDescription_1.organizationFields,\n ...PersonDescription_1.personOperations,\n ...PersonDescription_1.personFields,\n ],\n };\n this.methods = {\n loadOptions: {\n async getOrganizations() {\n const returnData = [];\n const organizations = await GenericFunctions_1.affinityApiRequestAllItems.call(this, 'organizations', 'GET', '/organizations', {});\n for (const organization of organizations) {\n const organizationName = organization.name;\n const organizationId = organization.id;\n returnData.push({\n name: organizationName,\n value: organizationId,\n });\n }\n return returnData;\n },\n async getPersons() {\n const returnData = [];\n const persons = await GenericFunctions_1.affinityApiRequestAllItems.call(this, 'persons', 'GET', '/persons', {});\n for (const person of persons) {\n let personName = `${person.first_name} ${person.last_name}`;\n if (person.primary_email !== null) {\n personName += ` (${person.primary_email})`;\n }\n const personId = person.id;\n returnData.push({\n name: personName,\n value: personId,\n });\n }\n return returnData;\n },\n async getLists() {\n const returnData = [];\n const lists = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', '/lists');\n for (const list of lists) {\n returnData.push({\n name: list.name,\n value: list.id,\n });\n }\n return returnData;\n },\n },\n };\n }\n async execute() {\n const items = this.getInputData();\n const returnData = [];\n const length = items.length;\n let responseData;\n const qs = {};\n const resource = this.getNodeParameter('resource', 0);\n const operation = this.getNodeParameter('operation', 0);\n for (let i = 0; i < length; i++) {\n try {\n if (resource === 'list') {\n if (operation === 'get') {\n const listId = this.getNodeParameter('listId', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', `/lists/${listId}`, {}, qs);\n }\n if (operation === 'getAll') {\n const returnAll = this.getNodeParameter('returnAll', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', '/lists', {}, qs);\n if (!returnAll) {\n const limit = this.getNodeParameter('limit', i);\n responseData = responseData.splice(0, limit);\n }\n }\n }\n if (resource === 'listEntry') {\n if (operation === 'create') {\n const listId = this.getNodeParameter('listId', i);\n const entityId = this.getNodeParameter('entityId', i);\n const additionalFields = this.getNodeParameter('additionalFields', i);\n const body = {\n entity_id: parseInt(entityId, 10),\n };\n Object.assign(body, additionalFields);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'POST', `/lists/${listId}/list-entries`, body);\n }\n if (operation === 'get') {\n const listId = this.getNodeParameter('listId', i);\n const listEntryId = this.getNodeParameter('listEntryId', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', `/lists/${listId}/list-entries/${listEntryId}`, {}, qs);\n }\n if (operation === 'getAll') {\n const returnAll = this.getNodeParameter('returnAll', i);\n const listId = this.getNodeParameter('listId', i);\n if (returnAll) {\n responseData = await GenericFunctions_1.affinityApiRequestAllItems.call(this, 'list_entries', 'GET', `/lists/${listId}/list-entries`, {}, qs);\n }\n else {\n qs.page_size = this.getNodeParameter('limit', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', `/lists/${listId}/list-entries`, {}, qs);\n responseData = responseData.list_entries;\n }\n }\n if (operation === 'delete') {\n const listId = this.getNodeParameter('listId', i);\n const listEntryId = this.getNodeParameter('listEntryId', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'DELETE', `/lists/${listId}/list-entries/${listEntryId}`, {}, qs);\n }\n }\n if (resource === 'person') {\n if (operation === 'create') {\n const firstName = this.getNodeParameter('firstName', i);\n const lastName = this.getNodeParameter('lastName', i);\n const emails = this.getNodeParameter('emails', i);\n const additionalFields = this.getNodeParameter('additionalFields', i);\n const body = {\n first_name: firstName,\n last_name: lastName,\n emails,\n };\n if (additionalFields.organizations) {\n body.organization_ids = additionalFields.organizations;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'POST', '/persons', body);\n }\n if (operation === 'update') {\n const personId = this.getNodeParameter('personId', i);\n const updateFields = this.getNodeParameter('updateFields', i);\n const emails = this.getNodeParameter('emails', i);\n const body = {\n emails,\n };\n if (updateFields.firstName) {\n body.first_name = updateFields.firstName;\n }\n if (updateFields.lastName) {\n body.last_name = updateFields.lastName;\n }\n if (updateFields.organizations) {\n body.organization_ids = updateFields.organizations;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'PUT', `/persons/${personId}`, body);\n }\n if (operation === 'get') {\n const personId = this.getNodeParameter('personId', i);\n const options = this.getNodeParameter('options', i);\n if (options.withInteractionDates) {\n qs.with_interaction_dates = options.withInteractionDates;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', `/persons/${personId}`, {}, qs);\n }\n if (operation === 'getAll') {\n const returnAll = this.getNodeParameter('returnAll', i);\n const options = this.getNodeParameter('options', i);\n if (options.term) {\n qs.term = options.term;\n }\n if (options.withInteractionDates) {\n qs.with_interaction_dates = options.withInteractionDates;\n }\n if (returnAll) {\n responseData = await GenericFunctions_1.affinityApiRequestAllItems.call(this, 'persons', 'GET', '/persons', {}, qs);\n }\n else {\n qs.page_size = this.getNodeParameter('limit', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', '/persons', {}, qs);\n responseData = responseData.persons;\n }\n }\n if (operation === 'delete') {\n const personId = this.getNodeParameter('personId', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'DELETE', `/persons/${personId}`, {}, qs);\n }\n }\n if (resource === 'organization') {\n if (operation === 'create') {\n const name = this.getNodeParameter('name', i);\n const domain = this.getNodeParameter('domain', i);\n const additionalFields = this.getNodeParameter('additionalFields', i);\n const body = {\n name,\n domain,\n };\n if (additionalFields.persons) {\n body.person_ids = additionalFields.persons;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'POST', '/organizations', body);\n }\n if (operation === 'update') {\n const organizationId = this.getNodeParameter('organizationId', i);\n const updateFields = this.getNodeParameter('updateFields', i);\n const body = {};\n if (updateFields.name) {\n body.name = updateFields.name;\n }\n if (updateFields.domain) {\n body.domain = updateFields.domain;\n }\n if (updateFields.persons) {\n body.person_ids = updateFields.persons;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'PUT', `/organizations/${organizationId}`, body);\n }\n if (operation === 'get') {\n const organizationId = this.getNodeParameter('organizationId', i);\n const options = this.getNodeParameter('options', i);\n if (options.withInteractionDates) {\n qs.with_interaction_dates = options.withInteractionDates;\n }\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', `/organizations/${organizationId}`, {}, qs);\n }\n if (operation === 'getAll') {\n const returnAll = this.getNodeParameter('returnAll', i);\n const options = this.getNodeParameter('options', i);\n if (options.term) {\n qs.term = options.term;\n }\n if (options.withInteractionDates) {\n qs.with_interaction_dates = options.withInteractionDates;\n }\n if (returnAll) {\n responseData = await GenericFunctions_1.affinityApiRequestAllItems.call(this, 'organizations', 'GET', '/organizations', {}, qs);\n }\n else {\n qs.page_size = this.getNodeParameter('limit', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'GET', '/organizations', {}, qs);\n responseData = responseData.organizations;\n }\n }\n if (operation === 'delete') {\n const organizationId = this.getNodeParameter('organizationId', i);\n responseData = await GenericFunctions_1.affinityApiRequest.call(this, 'DELETE', `/organizations/${organizationId}`, {}, qs);\n }\n }\n const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } });\n returnData.push(...executionData);\n }\n catch (error) {\n if (this.continueOnFail()) {\n const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } });\n returnData.push(...executionErrorData);\n continue;\n }\n throw error;\n }\n }\n return [returnData];\n }\n}\nexports.Affinity = Affinity;\n//# sourceMappingURL=Affinity.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AffinityApi = void 0;\nclass AffinityApi {\n constructor() {\n this.name = 'affinityApi';\n this.displayName = 'Affinity API';\n this.documentationUrl = 'affinity';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n }\n}\nexports.AffinityApi = AffinityApi;\n//# sourceMappingURL=AffinityApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AffinityApi = void 0;\nclass AffinityApi {\n constructor() {\n this.name = 'affinityApi';\n this.displayName = 'Affinity API';\n this.documentationUrl = 'affinity';\n this.properties = [\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n }\n}\nexports.AffinityApi = AffinityApi;\n//# sourceMappingURL=AffinityApi.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + }, + { + "nodeType": "AgileCrm", + "name": "AgileCrm", + "codeLength": 28115, + "codeHash": "ce71c3b5dec23a48d24c5775e9bb79006ce395bed62b306c56340b5c772379c2", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/AgileCrm/AgileCrm.node.js", + "extractedAt": "2025-06-08T10:57:57.925Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgileCrm = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst ContactDescription_1 = require(\"./ContactDescription\");\nconst CompanyDescription_1 = require(\"./CompanyDescription\");\nconst DealDescription_1 = require(\"./DealDescription\");\nconst GenericFunctions_1 = require(\"./GenericFunctions\");\nclass AgileCrm {\n constructor() {\n this.description = {\n displayName: 'Agile CRM',\n name: 'agileCrm',\n icon: 'file:agilecrm.png',\n subtitle: '={{$parameter[\"operation\"] + \": \" + $parameter[\"resource\"]}}',\n group: ['transform'],\n version: 1,\n description: 'Consume Agile CRM API',\n defaults: {\n name: 'Agile CRM',\n },\n inputs: ['main'],\n outputs: ['main'],\n credentials: [\n {\n name: 'agileCrmApi',\n required: true,\n },\n ],\n properties: [\n {\n displayName: 'Resource',\n name: 'resource',\n type: 'options',\n noDataExpression: true,\n options: [\n {\n name: 'Company',\n value: 'company',\n },\n {\n name: 'Contact',\n value: 'contact',\n },\n {\n name: 'Deal',\n value: 'deal',\n },\n ],\n default: 'contact',\n },\n ...ContactDescription_1.contactOperations,\n ...ContactDescription_1.contactFields,\n ...CompanyDescription_1.companyOperations,\n ...CompanyDescription_1.companyFields,\n ...DealDescription_1.dealOperations,\n ...DealDescription_1.dealFields,\n ],\n };\n }\n async execute() {\n const items = this.getInputData();\n const returnData = [];\n let responseData;\n const resource = this.getNodeParameter('resource', 0);\n const operation = this.getNodeParameter('operation', 0);\n for (let i = 0; i < items.length; i++) {\n if (resource === 'contact' || resource === 'company') {\n const idGetter = resource === 'contact' ? 'contactId' : 'companyId';\n if (operation === 'get') {\n const contactId = this.getNodeParameter(idGetter, i);\n const endpoint = `api/contacts/${contactId}`;\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'GET', endpoint, {});\n }\n else if (operation === 'delete') {\n const contactId = this.getNodeParameter(idGetter, i);\n const endpoint = `api/contacts/${contactId}`;\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'DELETE', endpoint, {});\n }\n else if (operation === 'getAll') {\n const simple = this.getNodeParameter('simple', 0);\n const returnAll = this.getNodeParameter('returnAll', 0);\n const filterType = this.getNodeParameter('filterType', i);\n const sort = this.getNodeParameter('options.sort.sort', i, {});\n const body = {};\n const filterJson = {};\n let contactType = '';\n if (resource === 'contact') {\n contactType = 'PERSON';\n }\n else {\n contactType = 'COMPANY';\n }\n filterJson.contact_type = contactType;\n if (filterType === 'manual') {\n const conditions = this.getNodeParameter('filters.conditions', i, []);\n const matchType = this.getNodeParameter('matchType', i);\n let rules;\n if (conditions.length !== 0) {\n rules = (0, GenericFunctions_1.getFilterRules)(conditions, matchType);\n Object.assign(filterJson, rules);\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'At least one condition must be added.', { itemIndex: i });\n }\n }\n else if (filterType === 'json') {\n const filterJsonRules = this.getNodeParameter('filterJson', i);\n if ((0, GenericFunctions_1.validateJSON)(filterJsonRules) !== undefined) {\n Object.assign(filterJson, (0, n8n_workflow_1.jsonParse)(filterJsonRules));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Filter (JSON) must be a valid json', {\n itemIndex: i,\n });\n }\n }\n body.filterJson = JSON.stringify(filterJson);\n if (sort) {\n if (sort.direction === 'ASC') {\n body.global_sort_key = sort.field;\n }\n else if (sort.direction === 'DESC') {\n body.global_sort_key = `-${sort.field}`;\n }\n }\n if (returnAll) {\n body.page_size = 100;\n responseData = await GenericFunctions_1.agileCrmApiRequestAllItems.call(this, 'POST', 'api/filters/filter/dynamic-filter', body, undefined, undefined, true);\n }\n else {\n body.page_size = this.getNodeParameter('limit', 0);\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'POST', 'api/filters/filter/dynamic-filter', body, undefined, undefined, true);\n }\n if (simple) {\n responseData = (0, GenericFunctions_1.simplifyResponse)(responseData);\n }\n }\n else if (operation === 'create') {\n const jsonParameters = this.getNodeParameter('jsonParameters', i);\n const body = {};\n const properties = [];\n if (jsonParameters) {\n const additionalFieldsJson = this.getNodeParameter('additionalFieldsJson', i);\n if (additionalFieldsJson !== '') {\n if ((0, GenericFunctions_1.validateJSON)(additionalFieldsJson) !== undefined) {\n Object.assign(body, (0, n8n_workflow_1.jsonParse)(additionalFieldsJson));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional fields must be a valid JSON', { itemIndex: i });\n }\n }\n }\n else {\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (resource === 'company') {\n body.type = 'COMPANY';\n }\n if (additionalFields.starValue) {\n body.star_value = additionalFields.starValue;\n }\n if (additionalFields.tags) {\n body.tags = additionalFields.tags;\n }\n if (resource === 'contact') {\n if (additionalFields.firstName) {\n properties.push({\n type: 'SYSTEM',\n name: 'first_name',\n value: additionalFields.firstName,\n });\n }\n if (additionalFields.lastName) {\n properties.push({\n type: 'SYSTEM',\n name: 'last_name',\n value: additionalFields.lastName,\n });\n }\n if (additionalFields.company) {\n properties.push({\n type: 'SYSTEM',\n name: 'company',\n value: additionalFields.company,\n });\n }\n if (additionalFields.title) {\n properties.push({\n type: 'SYSTEM',\n name: 'title',\n value: additionalFields.title,\n });\n }\n if (additionalFields.emailOptions) {\n additionalFields.emailOptions.emailProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'email',\n value: property.email,\n });\n });\n }\n if (additionalFields.addressOptions) {\n additionalFields.addressOptions.addressProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'address',\n value: property.address,\n });\n });\n }\n if (additionalFields.phoneOptions) {\n additionalFields.phoneOptions.phoneProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'phone',\n value: property.number,\n });\n });\n }\n }\n else if (resource === 'company') {\n if (additionalFields.email) {\n properties.push({\n type: 'SYSTEM',\n name: 'email',\n value: additionalFields.email,\n });\n }\n if (additionalFields.addressOptions) {\n additionalFields.addressOptions.addressProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'address',\n value: property.address,\n });\n });\n }\n if (additionalFields.phone) {\n properties.push({\n type: 'SYSTEM',\n name: 'phone',\n value: additionalFields.phone,\n });\n }\n if (additionalFields.name) {\n properties.push({\n type: 'SYSTEM',\n name: 'name',\n value: additionalFields.name,\n });\n }\n }\n if (additionalFields.websiteOptions) {\n additionalFields.websiteOptions.websiteProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'website',\n value: property.url,\n });\n });\n }\n if (additionalFields.customProperties) {\n additionalFields.customProperties.customProperty.map((property) => {\n properties.push({\n type: 'CUSTOM',\n subtype: property.subtype,\n name: property.name,\n value: property.value,\n });\n });\n }\n body.properties = properties;\n }\n const endpoint = 'api/contacts';\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'POST', endpoint, body);\n }\n else if (operation === 'update') {\n const contactId = this.getNodeParameter(idGetter, i);\n const contactUpdatePayload = { id: contactId };\n const jsonParameters = this.getNodeParameter('jsonParameters', i);\n const body = {};\n const properties = [];\n if (jsonParameters) {\n const additionalFieldsJson = this.getNodeParameter('additionalFieldsJson', i);\n if (additionalFieldsJson !== '') {\n if ((0, GenericFunctions_1.validateJSON)(additionalFieldsJson) !== undefined) {\n Object.assign(body, (0, n8n_workflow_1.jsonParse)(additionalFieldsJson));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional fields must be a valid JSON', { itemIndex: i });\n }\n }\n }\n else {\n const additionalFields = this.getNodeParameter('additionalFields', i);\n if (additionalFields.starValue) {\n body.star_value = additionalFields.starValue;\n }\n if (additionalFields.tags) {\n body.tags = additionalFields.tags;\n }\n if (resource === 'contact') {\n if (additionalFields.leadScore) {\n body.lead_score = additionalFields.leadScore;\n }\n if (additionalFields.firstName) {\n properties.push({\n type: 'SYSTEM',\n name: 'first_name',\n value: additionalFields.firstName,\n });\n }\n if (additionalFields.lastName) {\n properties.push({\n type: 'SYSTEM',\n name: 'last_name',\n value: additionalFields.lastName,\n });\n }\n if (additionalFields.company) {\n properties.push({\n type: 'SYSTEM',\n name: 'company',\n value: additionalFields.company,\n });\n }\n if (additionalFields.title) {\n properties.push({\n type: 'SYSTEM',\n name: 'title',\n value: additionalFields.title,\n });\n }\n if (additionalFields.emailOptions) {\n additionalFields.emailOptions.emailProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'email',\n value: property.email,\n });\n });\n }\n if (additionalFields.addressOptions) {\n additionalFields.addressOptions.addressProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'address',\n value: property.address,\n });\n });\n }\n if (additionalFields.phoneOptions) {\n additionalFields.phoneOptions.phoneProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'phone',\n value: property.number,\n });\n });\n }\n }\n else if (resource === 'company') {\n if (additionalFields.email) {\n properties.push({\n type: 'SYSTEM',\n name: 'email',\n value: additionalFields.email,\n });\n }\n if (additionalFields.addressOptions) {\n additionalFields.addressOptions.addressProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'address',\n value: property.address,\n });\n });\n }\n if (additionalFields.phone) {\n properties.push({\n type: 'SYSTEM',\n name: 'phone',\n value: additionalFields.phone,\n });\n }\n }\n if (additionalFields.websiteOptions) {\n additionalFields.websiteOptions.websiteProperties.map((property) => {\n properties.push({\n type: 'SYSTEM',\n subtype: property.subtype,\n name: 'website',\n value: property.url,\n });\n });\n }\n if (additionalFields.name) {\n properties.push({\n type: 'SYSTEM',\n name: 'name',\n value: additionalFields.name,\n });\n }\n if (additionalFields.customProperties) {\n additionalFields.customProperties.customProperty.map((property) => {\n properties.push({\n type: 'CUSTOM',\n subtype: property.subtype,\n name: property.name,\n value: property.value,\n });\n });\n }\n body.properties = properties;\n }\n Object.assign(contactUpdatePayload, body);\n responseData = await GenericFunctions_1.agileCrmApiRequestUpdate.call(this, 'PUT', '', contactUpdatePayload);\n }\n }\n else if (resource === 'deal') {\n if (operation === 'get') {\n const dealId = this.getNodeParameter('dealId', i);\n const endpoint = `api/opportunity/${dealId}`;\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'GET', endpoint, {});\n }\n else if (operation === 'delete') {\n const contactId = this.getNodeParameter('dealId', i);\n const endpoint = `api/opportunity/${contactId}`;\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'DELETE', endpoint, {});\n }\n else if (operation === 'getAll') {\n const returnAll = this.getNodeParameter('returnAll', 0);\n const endpoint = 'api/opportunity';\n if (returnAll) {\n const limit = 100;\n responseData = await GenericFunctions_1.agileCrmApiRequestAllItems.call(this, 'GET', endpoint, undefined, {\n page_size: limit,\n });\n }\n else {\n const limit = this.getNodeParameter('limit', 0);\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'GET', endpoint, undefined, {\n page_size: limit,\n });\n }\n }\n else if (operation === 'create') {\n const jsonParameters = this.getNodeParameter('jsonParameters', i);\n const body = {};\n if (jsonParameters) {\n const additionalFieldsJson = this.getNodeParameter('additionalFieldsJson', i);\n if (additionalFieldsJson !== '') {\n if ((0, GenericFunctions_1.validateJSON)(additionalFieldsJson) !== undefined) {\n Object.assign(body, (0, n8n_workflow_1.jsonParse)(additionalFieldsJson));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional fields must be a valid JSON', { itemIndex: i });\n }\n }\n }\n else {\n const additionalFields = this.getNodeParameter('additionalFields', i);\n body.close_date = new Date(this.getNodeParameter('closeDate', i)).getTime();\n body.expected_value = this.getNodeParameter('expectedValue', i);\n body.milestone = this.getNodeParameter('milestone', i);\n body.probability = this.getNodeParameter('probability', i);\n body.name = this.getNodeParameter('name', i);\n if (additionalFields.contactIds) {\n body.contactIds = additionalFields.contactIds;\n }\n if (additionalFields.customData) {\n body.customData = additionalFields.customData.customProperty;\n }\n }\n const endpoint = 'api/opportunity';\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'POST', endpoint, body);\n }\n else if (operation === 'update') {\n const jsonParameters = this.getNodeParameter('jsonParameters', i);\n const body = {};\n if (jsonParameters) {\n const additionalFieldsJson = this.getNodeParameter('additionalFieldsJson', i);\n if (additionalFieldsJson !== '') {\n if ((0, GenericFunctions_1.validateJSON)(additionalFieldsJson) !== undefined) {\n Object.assign(body, (0, n8n_workflow_1.jsonParse)(additionalFieldsJson));\n }\n else {\n throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Additional fields must be valid JSON', { itemIndex: i });\n }\n }\n }\n else {\n const additionalFields = this.getNodeParameter('additionalFields', i);\n body.id = this.getNodeParameter('dealId', i);\n if (additionalFields.expectedValue) {\n body.expected_value = additionalFields.expectedValue;\n }\n if (additionalFields.name) {\n body.name = additionalFields.name;\n }\n if (additionalFields.probability) {\n body.probability = additionalFields.probability;\n }\n if (additionalFields.contactIds) {\n body.contactIds = additionalFields.contactIds;\n }\n if (additionalFields.customData) {\n body.customData = additionalFields.customData.customProperty;\n }\n }\n const endpoint = 'api/opportunity/partial-update';\n responseData = await GenericFunctions_1.agileCrmApiRequest.call(this, 'PUT', endpoint, body);\n }\n }\n if (Array.isArray(responseData)) {\n returnData.push.apply(returnData, responseData);\n }\n else {\n returnData.push(responseData);\n }\n }\n return [this.helpers.returnJsonArray(returnData)];\n }\n}\nexports.AgileCrm = AgileCrm;\n//# sourceMappingURL=AgileCrm.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgileCrmApi = void 0;\nclass AgileCrmApi {\n constructor() {\n this.name = 'agileCrmApi';\n this.displayName = 'AgileCRM API';\n this.documentationUrl = 'agileCrm';\n this.properties = [\n {\n displayName: 'Email',\n name: 'email',\n type: 'string',\n placeholder: 'name@email.com',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n {\n displayName: 'Subdomain',\n name: 'subdomain',\n type: 'string',\n default: '',\n placeholder: 'example',\n description: 'If the domain is https://example.agilecrm.com \"example\" would have to be entered',\n },\n ];\n }\n}\nexports.AgileCrmApi = AgileCrmApi;\n//# sourceMappingURL=AgileCrmApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgileCrmApi = void 0;\nclass AgileCrmApi {\n constructor() {\n this.name = 'agileCrmApi';\n this.displayName = 'AgileCRM API';\n this.documentationUrl = 'agileCrm';\n this.properties = [\n {\n displayName: 'Email',\n name: 'email',\n type: 'string',\n placeholder: 'name@email.com',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n {\n displayName: 'Subdomain',\n name: 'subdomain',\n type: 'string',\n default: '',\n placeholder: 'example',\n description: 'If the domain is https://example.agilecrm.com \"example\" would have to be entered',\n },\n ];\n }\n}\nexports.AgileCrmApi = AgileCrmApi;\n//# sourceMappingURL=AgileCrmApi.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + }, + { + "nodeType": "Airtable", + "name": "Airtable", + "codeLength": 936, + "codeHash": "2d67e72931697178946f5127b43e954649c4c5e7ad9e29764796404ae96e7db5", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Airtable/Airtable.node.js", + "extractedAt": "2025-06-08T10:57:57.941Z", + "sourceCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Airtable = void 0;\nconst n8n_workflow_1 = require(\"n8n-workflow\");\nconst AirtableV1_node_1 = require(\"./v1/AirtableV1.node\");\nconst AirtableV2_node_1 = require(\"./v2/AirtableV2.node\");\nclass Airtable extends n8n_workflow_1.VersionedNodeType {\n constructor() {\n const baseDescription = {\n displayName: 'Airtable',\n name: 'airtable',\n icon: 'file:airtable.svg',\n group: ['input'],\n description: 'Read, update, write and delete data from Airtable',\n defaultVersion: 2,\n };\n const nodeVersions = {\n 1: new AirtableV1_node_1.AirtableV1(baseDescription),\n 2: new AirtableV2_node_1.AirtableV2(baseDescription),\n };\n super(nodeVersions, baseDescription);\n }\n}\nexports.Airtable = Airtable;\n//# sourceMappingURL=Airtable.node.js.map", + "credentialCode": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AirtableApi = void 0;\nclass AirtableApi {\n constructor() {\n this.name = 'airtableApi';\n this.displayName = 'Airtable API';\n this.documentationUrl = 'airtable';\n this.properties = [\n {\n displayName: 'API Keys will be deprecated by the end of January 2024, see this article for more details. We recommend to use Personal Access Token instead.',\n name: 'deprecated',\n type: 'notice',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n qs: {\n api_key: '={{$credentials.apiKey}}',\n },\n },\n };\n }\n}\nexports.AirtableApi = AirtableApi;\n//# sourceMappingURL=AirtableApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AirtableOAuth2Api = void 0;\nconst scopes = ['schema.bases:read', 'data.records:read', 'data.records:write'];\nclass AirtableOAuth2Api {\n constructor() {\n this.name = 'airtableOAuth2Api';\n this.extends = ['oAuth2Api'];\n this.displayName = 'Airtable OAuth2 API';\n this.documentationUrl = 'airtable';\n this.properties = [\n {\n displayName: 'Grant Type',\n name: 'grantType',\n type: 'hidden',\n default: 'pkce',\n },\n {\n displayName: 'Authorization URL',\n name: 'authUrl',\n type: 'hidden',\n default: 'https://airtable.com/oauth2/v1/authorize',\n },\n {\n displayName: 'Access Token URL',\n name: 'accessTokenUrl',\n type: 'hidden',\n default: 'https://airtable.com/oauth2/v1/token',\n },\n {\n displayName: 'Scope',\n name: 'scope',\n type: 'hidden',\n default: `${scopes.join(' ')}`,\n },\n {\n displayName: 'Auth URI Query Parameters',\n name: 'authQueryParameters',\n type: 'hidden',\n default: '',\n },\n {\n displayName: 'Authentication',\n name: 'authentication',\n type: 'hidden',\n default: 'header',\n },\n ];\n }\n}\nexports.AirtableOAuth2Api = AirtableOAuth2Api;\n//# sourceMappingURL=AirtableOAuth2Api.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AirtableApi = void 0;\nclass AirtableApi {\n constructor() {\n this.name = 'airtableApi';\n this.displayName = 'Airtable API';\n this.documentationUrl = 'airtable';\n this.properties = [\n {\n displayName: 'API Keys will be deprecated by the end of January 2024, see this article for more details. We recommend to use Personal Access Token instead.',\n name: 'deprecated',\n type: 'notice',\n default: '',\n },\n {\n displayName: 'API Key',\n name: 'apiKey',\n type: 'string',\n typeOptions: { password: true },\n default: '',\n },\n ];\n this.authenticate = {\n type: 'generic',\n properties: {\n qs: {\n api_key: '={{$credentials.apiKey}}',\n },\n },\n };\n }\n}\nexports.AirtableApi = AirtableApi;\n//# sourceMappingURL=AirtableApi.credentials.js.map\n\n// --- Next Credential File ---\n\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AirtableOAuth2Api = void 0;\nconst scopes = ['schema.bases:read', 'data.records:read', 'data.records:write'];\nclass AirtableOAuth2Api {\n constructor() {\n this.name = 'airtableOAuth2Api';\n this.extends = ['oAuth2Api'];\n this.displayName = 'Airtable OAuth2 API';\n this.documentationUrl = 'airtable';\n this.properties = [\n {\n displayName: 'Grant Type',\n name: 'grantType',\n type: 'hidden',\n default: 'pkce',\n },\n {\n displayName: 'Authorization URL',\n name: 'authUrl',\n type: 'hidden',\n default: 'https://airtable.com/oauth2/v1/authorize',\n },\n {\n displayName: 'Access Token URL',\n name: 'accessTokenUrl',\n type: 'hidden',\n default: 'https://airtable.com/oauth2/v1/token',\n },\n {\n displayName: 'Scope',\n name: 'scope',\n type: 'hidden',\n default: `${scopes.join(' ')}`,\n },\n {\n displayName: 'Auth URI Query Parameters',\n name: 'authQueryParameters',\n type: 'hidden',\n default: '',\n },\n {\n displayName: 'Authentication',\n name: 'authentication',\n type: 'hidden',\n default: 'header',\n },\n ];\n }\n}\nexports.AirtableOAuth2Api = AirtableOAuth2Api;\n//# sourceMappingURL=AirtableOAuth2Api.credentials.js.map", + "packageInfo": { + "name": "n8n-nodes-base", + "version": "1.14.1", + "description": "Base nodes of n8n", + "license": "SEE LICENSE IN LICENSE.md", + "homepage": "https://n8n.io", + "author": { + "name": "Jan Oberhauser", + "email": "jan@n8n.io" + }, + "main": "index.js", + "repository": { + "type": "git", + "url": "git+https://github.com/n8n-io/n8n.git" + }, + "files": [ + "dist" + ], + "n8n": { + "credentials": [ + "dist/credentials/ActionNetworkApi.credentials.js", + "dist/credentials/ActiveCampaignApi.credentials.js", + "dist/credentials/AcuitySchedulingApi.credentials.js", + "dist/credentials/AcuitySchedulingOAuth2Api.credentials.js", + "dist/credentials/AdaloApi.credentials.js", + "dist/credentials/AffinityApi.credentials.js", + "dist/credentials/AgileCrmApi.credentials.js", + "dist/credentials/AirtableApi.credentials.js", + "dist/credentials/AirtableOAuth2Api.credentials.js", + "dist/credentials/AirtableTokenApi.credentials.js", + "dist/credentials/AlienVaultApi.credentials.js", + "dist/credentials/Amqp.credentials.js", + "dist/credentials/ApiTemplateIoApi.credentials.js", + "dist/credentials/AsanaApi.credentials.js", + "dist/credentials/AsanaOAuth2Api.credentials.js", + "dist/credentials/Auth0ManagementApi.credentials.js", + "dist/credentials/AutomizyApi.credentials.js", + "dist/credentials/AutopilotApi.credentials.js", + "dist/credentials/Aws.credentials.js", + "dist/credentials/BambooHrApi.credentials.js", + "dist/credentials/BannerbearApi.credentials.js", + "dist/credentials/BaserowApi.credentials.js", + "dist/credentials/BeeminderApi.credentials.js", + "dist/credentials/BitbucketApi.credentials.js", + "dist/credentials/BitlyApi.credentials.js", + "dist/credentials/BitlyOAuth2Api.credentials.js", + "dist/credentials/BitwardenApi.credentials.js", + "dist/credentials/BoxOAuth2Api.credentials.js", + "dist/credentials/BrandfetchApi.credentials.js", + "dist/credentials/BubbleApi.credentials.js", + "dist/credentials/CalApi.credentials.js", + "dist/credentials/CalendlyApi.credentials.js", + "dist/credentials/CarbonBlackApi.credentials.js", + "dist/credentials/ChargebeeApi.credentials.js", + "dist/credentials/CircleCiApi.credentials.js", + "dist/credentials/CiscoMerakiApi.credentials.js", + "dist/credentials/CiscoSecureEndpointApi.credentials.js", + "dist/credentials/CiscoWebexOAuth2Api.credentials.js", + "dist/credentials/CiscoUmbrellaApi.credentials.js", + "dist/credentials/CitrixAdcApi.credentials.js", + "dist/credentials/CloudflareApi.credentials.js", + "dist/credentials/ClearbitApi.credentials.js", + "dist/credentials/ClickUpApi.credentials.js", + "dist/credentials/ClickUpOAuth2Api.credentials.js", + "dist/credentials/ClockifyApi.credentials.js", + "dist/credentials/CockpitApi.credentials.js", + "dist/credentials/CodaApi.credentials.js", + "dist/credentials/ContentfulApi.credentials.js", + "dist/credentials/ConvertKitApi.credentials.js", + "dist/credentials/CopperApi.credentials.js", + "dist/credentials/CortexApi.credentials.js", + "dist/credentials/CrateDb.credentials.js", + "dist/credentials/CrowdStrikeOAuth2Api.credentials.js", + "dist/credentials/CrowdDevApi.credentials.js", + "dist/credentials/CustomerIoApi.credentials.js", + "dist/credentials/DeepLApi.credentials.js", + "dist/credentials/DemioApi.credentials.js", + "dist/credentials/DhlApi.credentials.js", + "dist/credentials/DiscourseApi.credentials.js", + "dist/credentials/DisqusApi.credentials.js", + "dist/credentials/DriftApi.credentials.js", + "dist/credentials/DriftOAuth2Api.credentials.js", + "dist/credentials/DropboxApi.credentials.js", + "dist/credentials/DropboxOAuth2Api.credentials.js", + "dist/credentials/DropcontactApi.credentials.js", + "dist/credentials/EgoiApi.credentials.js", + "dist/credentials/ElasticsearchApi.credentials.js", + "dist/credentials/ElasticSecurityApi.credentials.js", + "dist/credentials/EmeliaApi.credentials.js", + "dist/credentials/ERPNextApi.credentials.js", + "dist/credentials/EventbriteApi.credentials.js", + "dist/credentials/EventbriteOAuth2Api.credentials.js", + "dist/credentials/F5BigIpApi.credentials.js", + "dist/credentials/FacebookGraphApi.credentials.js", + "dist/credentials/FacebookGraphAppApi.credentials.js", + "dist/credentials/FacebookLeadAdsOAuth2Api.credentials.js", + "dist/credentials/FigmaApi.credentials.js", + "dist/credentials/FileMaker.credentials.js", + "dist/credentials/FlowApi.credentials.js", + "dist/credentials/FormIoApi.credentials.js", + "dist/credentials/FormstackApi.credentials.js", + "dist/credentials/FormstackOAuth2Api.credentials.js", + "dist/credentials/FortiGateApi.credentials.js", + "dist/credentials/FreshdeskApi.credentials.js", + "dist/credentials/FreshserviceApi.credentials.js", + "dist/credentials/FreshworksCrmApi.credentials.js", + "dist/credentials/Ftp.credentials.js", + "dist/credentials/GetResponseApi.credentials.js", + "dist/credentials/GetResponseOAuth2Api.credentials.js", + "dist/credentials/GhostAdminApi.credentials.js", + "dist/credentials/GhostContentApi.credentials.js", + "dist/credentials/GithubApi.credentials.js", + "dist/credentials/GithubOAuth2Api.credentials.js", + "dist/credentials/GitlabApi.credentials.js", + "dist/credentials/GitlabOAuth2Api.credentials.js", + "dist/credentials/GitPassword.credentials.js", + "dist/credentials/GmailOAuth2Api.credentials.js", + "dist/credentials/GoogleAdsOAuth2Api.credentials.js", + "dist/credentials/GoogleAnalyticsOAuth2Api.credentials.js", + "dist/credentials/GoogleApi.credentials.js", + "dist/credentials/GoogleBigQueryOAuth2Api.credentials.js", + "dist/credentials/GoogleBooksOAuth2Api.credentials.js", + "dist/credentials/GoogleCalendarOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudNaturalLanguageOAuth2Api.credentials.js", + "dist/credentials/GoogleCloudStorageOAuth2Api.credentials.js", + "dist/credentials/GoogleContactsOAuth2Api.credentials.js", + "dist/credentials/GoogleDocsOAuth2Api.credentials.js", + "dist/credentials/GoogleDriveOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseCloudFirestoreOAuth2Api.credentials.js", + "dist/credentials/GoogleFirebaseRealtimeDatabaseOAuth2Api.credentials.js", + "dist/credentials/GoogleOAuth2Api.credentials.js", + "dist/credentials/GooglePerspectiveOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsOAuth2Api.credentials.js", + "dist/credentials/GoogleSheetsTriggerOAuth2Api.credentials.js", + "dist/credentials/GoogleSlidesOAuth2Api.credentials.js", + "dist/credentials/GoogleTasksOAuth2Api.credentials.js", + "dist/credentials/GoogleTranslateOAuth2Api.credentials.js", + "dist/credentials/GotifyApi.credentials.js", + "dist/credentials/GoToWebinarOAuth2Api.credentials.js", + "dist/credentials/GristApi.credentials.js", + "dist/credentials/GrafanaApi.credentials.js", + "dist/credentials/GSuiteAdminOAuth2Api.credentials.js", + "dist/credentials/GumroadApi.credentials.js", + "dist/credentials/HaloPSAApi.credentials.js", + "dist/credentials/HarvestApi.credentials.js", + "dist/credentials/HarvestOAuth2Api.credentials.js", + "dist/credentials/HelpScoutOAuth2Api.credentials.js", + "dist/credentials/HighLevelApi.credentials.js", + "dist/credentials/HomeAssistantApi.credentials.js", + "dist/credentials/HttpBasicAuth.credentials.js", + "dist/credentials/HttpDigestAuth.credentials.js", + "dist/credentials/HttpHeaderAuth.credentials.js", + "dist/credentials/HttpCustomAuth.credentials.js", + "dist/credentials/HttpQueryAuth.credentials.js", + "dist/credentials/HubspotApi.credentials.js", + "dist/credentials/HubspotAppToken.credentials.js", + "dist/credentials/HubspotDeveloperApi.credentials.js", + "dist/credentials/HubspotOAuth2Api.credentials.js", + "dist/credentials/HumanticAiApi.credentials.js", + "dist/credentials/HunterApi.credentials.js", + "dist/credentials/HybridAnalysisApi.credentials.js", + "dist/credentials/Imap.credentials.js", + "dist/credentials/ImpervaWafApi.credentials.js", + "dist/credentials/IntercomApi.credentials.js", + "dist/credentials/InvoiceNinjaApi.credentials.js", + "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", + "dist/credentials/JiraSoftwareCloudApi.credentials.js", + "dist/credentials/JiraSoftwareServerApi.credentials.js", + "dist/credentials/JotFormApi.credentials.js", + "dist/credentials/Kafka.credentials.js", + "dist/credentials/KeapOAuth2Api.credentials.js", + "dist/credentials/KibanaApi.credentials.js", + "dist/credentials/KitemakerApi.credentials.js", + "dist/credentials/KoBoToolboxApi.credentials.js", + "dist/credentials/Ldap.credentials.js", + "dist/credentials/LemlistApi.credentials.js", + "dist/credentials/LinearApi.credentials.js", + "dist/credentials/LinearOAuth2Api.credentials.js", + "dist/credentials/LineNotifyOAuth2Api.credentials.js", + "dist/credentials/LingvaNexApi.credentials.js", + "dist/credentials/LinkedInOAuth2Api.credentials.js", + "dist/credentials/LoneScaleApi.credentials.js", + "dist/credentials/Magento2Api.credentials.js", + "dist/credentials/MailcheckApi.credentials.js", + "dist/credentials/MailchimpApi.credentials.js", + "dist/credentials/MailchimpOAuth2Api.credentials.js", + "dist/credentials/MailerLiteApi.credentials.js", + "dist/credentials/MailgunApi.credentials.js", + "dist/credentials/MailjetEmailApi.credentials.js", + "dist/credentials/MailjetSmsApi.credentials.js", + "dist/credentials/MandrillApi.credentials.js", + "dist/credentials/MarketstackApi.credentials.js", + "dist/credentials/MatrixApi.credentials.js", + "dist/credentials/MattermostApi.credentials.js", + "dist/credentials/MauticApi.credentials.js", + "dist/credentials/MauticOAuth2Api.credentials.js", + "dist/credentials/MediumApi.credentials.js", + "dist/credentials/MediumOAuth2Api.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MessageBirdApi.credentials.js", + "dist/credentials/MetabaseApi.credentials.js", + "dist/credentials/MicrosoftDynamicsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftEntraOAuth2Api.credentials.js", + "dist/credentials/MicrosoftExcelOAuth2Api.credentials.js", + "dist/credentials/MicrosoftGraphSecurityOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOneDriveOAuth2Api.credentials.js", + "dist/credentials/MicrosoftOutlookOAuth2Api.credentials.js", + "dist/credentials/MicrosoftSql.credentials.js", + "dist/credentials/MicrosoftTeamsOAuth2Api.credentials.js", + "dist/credentials/MicrosoftToDoOAuth2Api.credentials.js", + "dist/credentials/MindeeInvoiceApi.credentials.js", + "dist/credentials/MindeeReceiptApi.credentials.js", + "dist/credentials/MispApi.credentials.js", + "dist/credentials/MistApi.credentials.js", + "dist/credentials/MoceanApi.credentials.js", + "dist/credentials/MondayComApi.credentials.js", + "dist/credentials/MondayComOAuth2Api.credentials.js", + "dist/credentials/MongoDb.credentials.js", + "dist/credentials/MonicaCrmApi.credentials.js", + "dist/credentials/Mqtt.credentials.js", + "dist/credentials/Msg91Api.credentials.js", + "dist/credentials/MySql.credentials.js", + "dist/credentials/N8nApi.credentials.js", + "dist/credentials/NasaApi.credentials.js", + "dist/credentials/NetlifyApi.credentials.js", + "dist/credentials/NextCloudApi.credentials.js", + "dist/credentials/NextCloudOAuth2Api.credentials.js", + "dist/credentials/NocoDb.credentials.js", + "dist/credentials/NocoDbApiToken.credentials.js", + "dist/credentials/NotionApi.credentials.js", + "dist/credentials/NotionOAuth2Api.credentials.js", + "dist/credentials/NpmApi.credentials.js", + "dist/credentials/OAuth1Api.credentials.js", + "dist/credentials/OAuth2Api.credentials.js", + "dist/credentials/OdooApi.credentials.js", + "dist/credentials/OktaApi.credentials.js", + "dist/credentials/OneSimpleApi.credentials.js", + "dist/credentials/OnfleetApi.credentials.js", + "dist/credentials/OpenAiApi.credentials.js", + "dist/credentials/OpenCTIApi.credentials.js", + "dist/credentials/OpenWeatherMapApi.credentials.js", + "dist/credentials/OrbitApi.credentials.js", + "dist/credentials/OuraApi.credentials.js", + "dist/credentials/PaddleApi.credentials.js", + "dist/credentials/PagerDutyApi.credentials.js", + "dist/credentials/PagerDutyOAuth2Api.credentials.js", + "dist/credentials/PayPalApi.credentials.js", + "dist/credentials/PeekalinkApi.credentials.js", + "dist/credentials/PhantombusterApi.credentials.js", + "dist/credentials/PhilipsHueOAuth2Api.credentials.js", + "dist/credentials/PipedriveApi.credentials.js", + "dist/credentials/PipedriveOAuth2Api.credentials.js", + "dist/credentials/PlivoApi.credentials.js", + "dist/credentials/Postgres.credentials.js", + "dist/credentials/PostHogApi.credentials.js", + "dist/credentials/PostmarkApi.credentials.js", + "dist/credentials/ProfitWellApi.credentials.js", + "dist/credentials/PushbulletOAuth2Api.credentials.js", + "dist/credentials/PushcutApi.credentials.js", + "dist/credentials/PushoverApi.credentials.js", + "dist/credentials/QRadarApi.credentials.js", + "dist/credentials/QualysApi.credentials.js", + "dist/credentials/QuestDb.credentials.js", + "dist/credentials/QuickBaseApi.credentials.js", + "dist/credentials/QuickBooksOAuth2Api.credentials.js", + "dist/credentials/RabbitMQ.credentials.js", + "dist/credentials/RaindropOAuth2Api.credentials.js", + "dist/credentials/RecordedFutureApi.credentials.js", + "dist/credentials/RedditOAuth2Api.credentials.js", + "dist/credentials/Redis.credentials.js", + "dist/credentials/RocketchatApi.credentials.js", + "dist/credentials/RundeckApi.credentials.js", + "dist/credentials/S3.credentials.js", + "dist/credentials/SalesforceJwtApi.credentials.js", + "dist/credentials/SalesforceOAuth2Api.credentials.js", + "dist/credentials/SalesmateApi.credentials.js", + "dist/credentials/SeaTableApi.credentials.js", + "dist/credentials/SecurityScorecardApi.credentials.js", + "dist/credentials/SegmentApi.credentials.js", + "dist/credentials/SekoiaApi.credentials.js", + "dist/credentials/SendGridApi.credentials.js", + "dist/credentials/BrevoApi.credentials.js", + "dist/credentials/SendyApi.credentials.js", + "dist/credentials/SentryIoApi.credentials.js", + "dist/credentials/SentryIoOAuth2Api.credentials.js", + "dist/credentials/SentryIoServerApi.credentials.js", + "dist/credentials/ServiceNowOAuth2Api.credentials.js", + "dist/credentials/ServiceNowBasicApi.credentials.js", + "dist/credentials/Sftp.credentials.js", + "dist/credentials/ShopifyApi.credentials.js", + "dist/credentials/ShopifyAccessTokenApi.credentials.js", + "dist/credentials/ShopifyOAuth2Api.credentials.js", + "dist/credentials/Signl4Api.credentials.js", + "dist/credentials/SlackApi.credentials.js", + "dist/credentials/SlackOAuth2Api.credentials.js", + "dist/credentials/Sms77Api.credentials.js", + "dist/credentials/Smtp.credentials.js", + "dist/credentials/Snowflake.credentials.js", + "dist/credentials/SplunkApi.credentials.js", + "dist/credentials/SpontitApi.credentials.js", + "dist/credentials/SpotifyOAuth2Api.credentials.js", + "dist/credentials/ShufflerApi.credentials.js", + "dist/credentials/SshPassword.credentials.js", + "dist/credentials/SshPrivateKey.credentials.js", + "dist/credentials/StackbyApi.credentials.js", + "dist/credentials/StoryblokContentApi.credentials.js", + "dist/credentials/StoryblokManagementApi.credentials.js", + "dist/credentials/StrapiApi.credentials.js", + "dist/credentials/StrapiTokenApi.credentials.js", + "dist/credentials/StravaOAuth2Api.credentials.js", + "dist/credentials/StripeApi.credentials.js", + "dist/credentials/SupabaseApi.credentials.js", + "dist/credentials/SurveyMonkeyApi.credentials.js", + "dist/credentials/SurveyMonkeyOAuth2Api.credentials.js", + "dist/credentials/SyncroMspApi.credentials.js", + "dist/credentials/TaigaApi.credentials.js", + "dist/credentials/TapfiliateApi.credentials.js", + "dist/credentials/TelegramApi.credentials.js", + "dist/credentials/TheHiveProjectApi.credentials.js", + "dist/credentials/TheHiveApi.credentials.js", + "dist/credentials/TimescaleDb.credentials.js", + "dist/credentials/TodoistApi.credentials.js", + "dist/credentials/TodoistOAuth2Api.credentials.js", + "dist/credentials/TogglApi.credentials.js", + "dist/credentials/TotpApi.credentials.js", + "dist/credentials/TravisCiApi.credentials.js", + "dist/credentials/TrellixEpoApi.credentials.js", + "dist/credentials/TrelloApi.credentials.js", + "dist/credentials/TwakeCloudApi.credentials.js", + "dist/credentials/TwakeServerApi.credentials.js", + "dist/credentials/TwilioApi.credentials.js", + "dist/credentials/TwistOAuth2Api.credentials.js", + "dist/credentials/TwitterOAuth1Api.credentials.js", + "dist/credentials/TwitterOAuth2Api.credentials.js", + "dist/credentials/TypeformApi.credentials.js", + "dist/credentials/TypeformOAuth2Api.credentials.js", + "dist/credentials/UnleashedSoftwareApi.credentials.js", + "dist/credentials/UpleadApi.credentials.js", + "dist/credentials/UProcApi.credentials.js", + "dist/credentials/UptimeRobotApi.credentials.js", + "dist/credentials/UrlScanIoApi.credentials.js", + "dist/credentials/VeroApi.credentials.js", + "dist/credentials/VirusTotalApi.credentials.js", + "dist/credentials/VonageApi.credentials.js", + "dist/credentials/VenafiTlsProtectCloudApi.credentials.js", + "dist/credentials/VenafiTlsProtectDatacenterApi.credentials.js", + "dist/credentials/WebflowApi.credentials.js", + "dist/credentials/WebflowOAuth2Api.credentials.js", + "dist/credentials/WekanApi.credentials.js", + "dist/credentials/WhatsAppApi.credentials.js", + "dist/credentials/WiseApi.credentials.js", + "dist/credentials/WooCommerceApi.credentials.js", + "dist/credentials/WordpressApi.credentials.js", + "dist/credentials/WorkableApi.credentials.js", + "dist/credentials/WufooApi.credentials.js", + "dist/credentials/XeroOAuth2Api.credentials.js", + "dist/credentials/YourlsApi.credentials.js", + "dist/credentials/YouTubeOAuth2Api.credentials.js", + "dist/credentials/ZammadBasicAuthApi.credentials.js", + "dist/credentials/ZammadTokenAuthApi.credentials.js", + "dist/credentials/ZendeskApi.credentials.js", + "dist/credentials/ZendeskOAuth2Api.credentials.js", + "dist/credentials/ZohoOAuth2Api.credentials.js", + "dist/credentials/ZoomApi.credentials.js", + "dist/credentials/ZoomOAuth2Api.credentials.js", + "dist/credentials/ZscalerZiaApi.credentials.js", + "dist/credentials/ZulipApi.credentials.js" + ], + "nodes": [ + "dist/nodes/ActionNetwork/ActionNetwork.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js", + "dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js", + "dist/nodes/Adalo/Adalo.node.js", + "dist/nodes/Affinity/Affinity.node.js", + "dist/nodes/Affinity/AffinityTrigger.node.js", + "dist/nodes/AgileCrm/AgileCrm.node.js", + "dist/nodes/Airtable/Airtable.node.js", + "dist/nodes/Airtable/AirtableTrigger.node.js", + "dist/nodes/Amqp/Amqp.node.js", + "dist/nodes/Amqp/AmqpTrigger.node.js", + "dist/nodes/ApiTemplateIo/ApiTemplateIo.node.js", + "dist/nodes/Asana/Asana.node.js", + "dist/nodes/Asana/AsanaTrigger.node.js", + "dist/nodes/Automizy/Automizy.node.js", + "dist/nodes/Autopilot/Autopilot.node.js", + "dist/nodes/Autopilot/AutopilotTrigger.node.js", + "dist/nodes/Aws/AwsLambda.node.js", + "dist/nodes/Aws/AwsSns.node.js", + "dist/nodes/Aws/AwsSnsTrigger.node.js", + "dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js", + "dist/nodes/Aws/Comprehend/AwsComprehend.node.js", + "dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js", + "dist/nodes/Aws/ELB/AwsElb.node.js", + "dist/nodes/Aws/Rekognition/AwsRekognition.node.js", + "dist/nodes/Aws/S3/AwsS3.node.js", + "dist/nodes/Aws/SES/AwsSes.node.js", + "dist/nodes/Aws/SQS/AwsSqs.node.js", + "dist/nodes/Aws/Textract/AwsTextract.node.js", + "dist/nodes/Aws/Transcribe/AwsTranscribe.node.js", + "dist/nodes/BambooHr/BambooHr.node.js", + "dist/nodes/Bannerbear/Bannerbear.node.js", + "dist/nodes/Baserow/Baserow.node.js", + "dist/nodes/Beeminder/Beeminder.node.js", + "dist/nodes/Bitbucket/BitbucketTrigger.node.js", + "dist/nodes/Bitly/Bitly.node.js", + "dist/nodes/Bitwarden/Bitwarden.node.js", + "dist/nodes/Box/Box.node.js", + "dist/nodes/Box/BoxTrigger.node.js", + "dist/nodes/Brandfetch/Brandfetch.node.js", + "dist/nodes/Bubble/Bubble.node.js", + "dist/nodes/Cal/CalTrigger.node.js", + "dist/nodes/Calendly/CalendlyTrigger.node.js", + "dist/nodes/Chargebee/Chargebee.node.js", + "dist/nodes/Chargebee/ChargebeeTrigger.node.js", + "dist/nodes/CircleCi/CircleCi.node.js", + "dist/nodes/Cisco/Webex/CiscoWebex.node.js", + "dist/nodes/Citrix/ADC/CitrixAdc.node.js", + "dist/nodes/Cisco/Webex/CiscoWebexTrigger.node.js", + "dist/nodes/Cloudflare/Cloudflare.node.js", + "dist/nodes/Clearbit/Clearbit.node.js", + "dist/nodes/ClickUp/ClickUp.node.js", + "dist/nodes/ClickUp/ClickUpTrigger.node.js", + "dist/nodes/Clockify/Clockify.node.js", + "dist/nodes/Clockify/ClockifyTrigger.node.js", + "dist/nodes/Cockpit/Cockpit.node.js", + "dist/nodes/Coda/Coda.node.js", + "dist/nodes/Code/Code.node.js", + "dist/nodes/CoinGecko/CoinGecko.node.js", + "dist/nodes/CompareDatasets/CompareDatasets.node.js", + "dist/nodes/Compression/Compression.node.js", + "dist/nodes/Contentful/Contentful.node.js", + "dist/nodes/ConvertKit/ConvertKit.node.js", + "dist/nodes/ConvertKit/ConvertKitTrigger.node.js", + "dist/nodes/Copper/Copper.node.js", + "dist/nodes/Copper/CopperTrigger.node.js", + "dist/nodes/Cortex/Cortex.node.js", + "dist/nodes/CrateDb/CrateDb.node.js", + "dist/nodes/Cron/Cron.node.js", + "dist/nodes/CrowdDev/CrowdDev.node.js", + "dist/nodes/CrowdDev/CrowdDevTrigger.node.js", + "dist/nodes/Crypto/Crypto.node.js", + "dist/nodes/CustomerIo/CustomerIo.node.js", + "dist/nodes/CustomerIo/CustomerIoTrigger.node.js", + "dist/nodes/DateTime/DateTime.node.js", + "dist/nodes/DebugHelper/DebugHelper.node.js", + "dist/nodes/DeepL/DeepL.node.js", + "dist/nodes/Demio/Demio.node.js", + "dist/nodes/Dhl/Dhl.node.js", + "dist/nodes/Discord/Discord.node.js", + "dist/nodes/Discourse/Discourse.node.js", + "dist/nodes/Disqus/Disqus.node.js", + "dist/nodes/Drift/Drift.node.js", + "dist/nodes/Dropbox/Dropbox.node.js", + "dist/nodes/Dropcontact/Dropcontact.node.js", + "dist/nodes/EditImage/EditImage.node.js", + "dist/nodes/E2eTest/E2eTest.node.js", + "dist/nodes/Egoi/Egoi.node.js", + "dist/nodes/Elastic/Elasticsearch/Elasticsearch.node.js", + "dist/nodes/Elastic/ElasticSecurity/ElasticSecurity.node.js", + "dist/nodes/EmailReadImap/EmailReadImap.node.js", + "dist/nodes/EmailSend/EmailSend.node.js", + "dist/nodes/Emelia/Emelia.node.js", + "dist/nodes/Emelia/EmeliaTrigger.node.js", + "dist/nodes/ERPNext/ERPNext.node.js", + "dist/nodes/ErrorTrigger/ErrorTrigger.node.js", + "dist/nodes/Eventbrite/EventbriteTrigger.node.js", + "dist/nodes/ExecuteCommand/ExecuteCommand.node.js", + "dist/nodes/ExecuteWorkflow/ExecuteWorkflow.node.js", + "dist/nodes/ExecuteWorkflowTrigger/ExecuteWorkflowTrigger.node.js", + "dist/nodes/ExecutionData/ExecutionData.node.js", + "dist/nodes/Facebook/FacebookGraphApi.node.js", + "dist/nodes/Facebook/FacebookTrigger.node.js", + "dist/nodes/FacebookLeadAds/FacebookLeadAdsTrigger.node.js", + "dist/nodes/Figma/FigmaTrigger.node.js", + "dist/nodes/FileMaker/FileMaker.node.js", + "dist/nodes/Filter/Filter.node.js", + "dist/nodes/Flow/Flow.node.js", + "dist/nodes/Flow/FlowTrigger.node.js", + "dist/nodes/Form/FormTrigger.node.js", + "dist/nodes/FormIo/FormIoTrigger.node.js", + "dist/nodes/Formstack/FormstackTrigger.node.js", + "dist/nodes/Freshdesk/Freshdesk.node.js", + "dist/nodes/Freshservice/Freshservice.node.js", + "dist/nodes/FreshworksCrm/FreshworksCrm.node.js", + "dist/nodes/Ftp/Ftp.node.js", + "dist/nodes/Function/Function.node.js", + "dist/nodes/FunctionItem/FunctionItem.node.js", + "dist/nodes/GetResponse/GetResponse.node.js", + "dist/nodes/GetResponse/GetResponseTrigger.node.js", + "dist/nodes/Ghost/Ghost.node.js", + "dist/nodes/Git/Git.node.js", + "dist/nodes/Github/Github.node.js", + "dist/nodes/Github/GithubTrigger.node.js", + "dist/nodes/Gitlab/Gitlab.node.js", + "dist/nodes/Gitlab/GitlabTrigger.node.js", + "dist/nodes/Google/Ads/GoogleAds.node.js", + "dist/nodes/Google/Analytics/GoogleAnalytics.node.js", + "dist/nodes/Google/BigQuery/GoogleBigQuery.node.js", + "dist/nodes/Google/Books/GoogleBooks.node.js", + "dist/nodes/Google/Calendar/GoogleCalendar.node.js", + "dist/nodes/Google/Calendar/GoogleCalendarTrigger.node.js", + "dist/nodes/Google/Chat/GoogleChat.node.js", + "dist/nodes/Google/CloudNaturalLanguage/GoogleCloudNaturalLanguage.node.js", + "dist/nodes/Google/CloudStorage/GoogleCloudStorage.node.js", + "dist/nodes/Google/Contacts/GoogleContacts.node.js", + "dist/nodes/Google/Docs/GoogleDocs.node.js", + "dist/nodes/Google/Drive/GoogleDrive.node.js", + "dist/nodes/Google/Drive/GoogleDriveTrigger.node.js", + "dist/nodes/Google/Firebase/CloudFirestore/GoogleFirebaseCloudFirestore.node.js", + "dist/nodes/Google/Firebase/RealtimeDatabase/GoogleFirebaseRealtimeDatabase.node.js", + "dist/nodes/Google/Gmail/Gmail.node.js", + "dist/nodes/Google/Gmail/GmailTrigger.node.js", + "dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js", + "dist/nodes/Google/Perspective/GooglePerspective.node.js", + "dist/nodes/Google/Sheet/GoogleSheets.node.js", + "dist/nodes/Google/Sheet/GoogleSheetsTrigger.node.js", + "dist/nodes/Google/Slides/GoogleSlides.node.js", + "dist/nodes/Google/Task/GoogleTasks.node.js", + "dist/nodes/Google/Translate/GoogleTranslate.node.js", + "dist/nodes/Google/YouTube/YouTube.node.js", + "dist/nodes/Gotify/Gotify.node.js", + "dist/nodes/GoToWebinar/GoToWebinar.node.js", + "dist/nodes/Grafana/Grafana.node.js", + "dist/nodes/GraphQL/GraphQL.node.js", + "dist/nodes/Grist/Grist.node.js", + "dist/nodes/Gumroad/GumroadTrigger.node.js", + "dist/nodes/HackerNews/HackerNews.node.js", + "dist/nodes/HaloPSA/HaloPSA.node.js", + "dist/nodes/Harvest/Harvest.node.js", + "dist/nodes/HelpScout/HelpScout.node.js", + "dist/nodes/HelpScout/HelpScoutTrigger.node.js", + "dist/nodes/HighLevel/HighLevel.node.js", + "dist/nodes/HomeAssistant/HomeAssistant.node.js", + "dist/nodes/HtmlExtract/HtmlExtract.node.js", + "dist/nodes/Html/Html.node.js", + "dist/nodes/HttpRequest/HttpRequest.node.js", + "dist/nodes/Hubspot/Hubspot.node.js", + "dist/nodes/Hubspot/HubspotTrigger.node.js", + "dist/nodes/HumanticAI/HumanticAi.node.js", + "dist/nodes/Hunter/Hunter.node.js", + "dist/nodes/ICalendar/ICalendar.node.js", + "dist/nodes/If/If.node.js", + "dist/nodes/Intercom/Intercom.node.js", + "dist/nodes/Interval/Interval.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinja.node.js", + "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", + "dist/nodes/ItemLists/ItemLists.node.js", + "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", + "dist/nodes/Jira/Jira.node.js", + "dist/nodes/Jira/JiraTrigger.node.js", + "dist/nodes/JotForm/JotFormTrigger.node.js", + "dist/nodes/Kafka/Kafka.node.js", + "dist/nodes/Kafka/KafkaTrigger.node.js", + "dist/nodes/Keap/Keap.node.js", + "dist/nodes/Keap/KeapTrigger.node.js", + "dist/nodes/Kitemaker/Kitemaker.node.js", + "dist/nodes/KoBoToolbox/KoBoToolbox.node.js", + "dist/nodes/KoBoToolbox/KoBoToolboxTrigger.node.js", + "dist/nodes/Ldap/Ldap.node.js", + "dist/nodes/Lemlist/Lemlist.node.js", + "dist/nodes/Lemlist/LemlistTrigger.node.js", + "dist/nodes/Line/Line.node.js", + "dist/nodes/Linear/Linear.node.js", + "dist/nodes/Linear/LinearTrigger.node.js", + "dist/nodes/LingvaNex/LingvaNex.node.js", + "dist/nodes/LinkedIn/LinkedIn.node.js", + "dist/nodes/LocalFileTrigger/LocalFileTrigger.node.js", + "dist/nodes/LoneScale/LoneScaleTrigger.node.js", + "dist/nodes/LoneScale/LoneScale.node.js", + "dist/nodes/Magento/Magento2.node.js", + "dist/nodes/Mailcheck/Mailcheck.node.js", + "dist/nodes/Mailchimp/Mailchimp.node.js", + "dist/nodes/Mailchimp/MailchimpTrigger.node.js", + "dist/nodes/MailerLite/MailerLite.node.js", + "dist/nodes/MailerLite/MailerLiteTrigger.node.js", + "dist/nodes/Mailgun/Mailgun.node.js", + "dist/nodes/Mailjet/Mailjet.node.js", + "dist/nodes/Mailjet/MailjetTrigger.node.js", + "dist/nodes/Mandrill/Mandrill.node.js", + "dist/nodes/ManualTrigger/ManualTrigger.node.js", + "dist/nodes/Markdown/Markdown.node.js", + "dist/nodes/Marketstack/Marketstack.node.js", + "dist/nodes/Matrix/Matrix.node.js", + "dist/nodes/Mattermost/Mattermost.node.js", + "dist/nodes/Mautic/Mautic.node.js", + "dist/nodes/Mautic/MauticTrigger.node.js", + "dist/nodes/Medium/Medium.node.js", + "dist/nodes/Merge/Merge.node.js", + "dist/nodes/MessageBird/MessageBird.node.js", + "dist/nodes/Metabase/Metabase.node.js", + "dist/nodes/Microsoft/Dynamics/MicrosoftDynamicsCrm.node.js", + "dist/nodes/Microsoft/Excel/MicrosoftExcel.node.js", + "dist/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.js", + "dist/nodes/Microsoft/OneDrive/MicrosoftOneDrive.node.js", + "dist/nodes/Microsoft/Outlook/MicrosoftOutlook.node.js", + "dist/nodes/Microsoft/Sql/MicrosoftSql.node.js", + "dist/nodes/Microsoft/Teams/MicrosoftTeams.node.js", + "dist/nodes/Microsoft/ToDo/MicrosoftToDo.node.js", + "dist/nodes/Mindee/Mindee.node.js", + "dist/nodes/Misp/Misp.node.js", + "dist/nodes/Mocean/Mocean.node.js", + "dist/nodes/MondayCom/MondayCom.node.js", + "dist/nodes/MongoDb/MongoDb.node.js", + "dist/nodes/MonicaCrm/MonicaCrm.node.js", + "dist/nodes/MoveBinaryData/MoveBinaryData.node.js", + "dist/nodes/MQTT/Mqtt.node.js", + "dist/nodes/MQTT/MqttTrigger.node.js", + "dist/nodes/Msg91/Msg91.node.js", + "dist/nodes/MySql/MySql.node.js", + "dist/nodes/N8n/N8n.node.js", + "dist/nodes/N8nTrainingCustomerDatastore/N8nTrainingCustomerDatastore.node.js", + "dist/nodes/N8nTrainingCustomerMessenger/N8nTrainingCustomerMessenger.node.js", + "dist/nodes/N8nTrigger/N8nTrigger.node.js", + "dist/nodes/Nasa/Nasa.node.js", + "dist/nodes/Netlify/Netlify.node.js", + "dist/nodes/Netlify/NetlifyTrigger.node.js", + "dist/nodes/NextCloud/NextCloud.node.js", + "dist/nodes/NocoDB/NocoDB.node.js", + "dist/nodes/Brevo/Brevo.node.js", + "dist/nodes/Brevo/BrevoTrigger.node.js", + "dist/nodes/StickyNote/StickyNote.node.js", + "dist/nodes/NoOp/NoOp.node.js", + "dist/nodes/Onfleet/Onfleet.node.js", + "dist/nodes/Onfleet/OnfleetTrigger.node.js", + "dist/nodes/Notion/Notion.node.js", + "dist/nodes/Notion/NotionTrigger.node.js", + "dist/nodes/Npm/Npm.node.js", + "dist/nodes/Odoo/Odoo.node.js", + "dist/nodes/OneSimpleApi/OneSimpleApi.node.js", + "dist/nodes/OpenAi/OpenAi.node.js", + "dist/nodes/OpenThesaurus/OpenThesaurus.node.js", + "dist/nodes/OpenWeatherMap/OpenWeatherMap.node.js", + "dist/nodes/Orbit/Orbit.node.js", + "dist/nodes/Oura/Oura.node.js", + "dist/nodes/Paddle/Paddle.node.js", + "dist/nodes/PagerDuty/PagerDuty.node.js", + "dist/nodes/PayPal/PayPal.node.js", + "dist/nodes/PayPal/PayPalTrigger.node.js", + "dist/nodes/Peekalink/Peekalink.node.js", + "dist/nodes/Phantombuster/Phantombuster.node.js", + "dist/nodes/PhilipsHue/PhilipsHue.node.js", + "dist/nodes/Pipedrive/Pipedrive.node.js", + "dist/nodes/Pipedrive/PipedriveTrigger.node.js", + "dist/nodes/Plivo/Plivo.node.js", + "dist/nodes/PostBin/PostBin.node.js", + "dist/nodes/Postgres/Postgres.node.js", + "dist/nodes/Postgres/PostgresTrigger.node.js", + "dist/nodes/PostHog/PostHog.node.js", + "dist/nodes/Postmark/PostmarkTrigger.node.js", + "dist/nodes/ProfitWell/ProfitWell.node.js", + "dist/nodes/Pushbullet/Pushbullet.node.js", + "dist/nodes/Pushcut/Pushcut.node.js", + "dist/nodes/Pushcut/PushcutTrigger.node.js", + "dist/nodes/Pushover/Pushover.node.js", + "dist/nodes/QuestDb/QuestDb.node.js", + "dist/nodes/QuickBase/QuickBase.node.js", + "dist/nodes/QuickBooks/QuickBooks.node.js", + "dist/nodes/QuickChart/QuickChart.node.js", + "dist/nodes/RabbitMQ/RabbitMQ.node.js", + "dist/nodes/RabbitMQ/RabbitMQTrigger.node.js", + "dist/nodes/Raindrop/Raindrop.node.js", + "dist/nodes/ReadBinaryFile/ReadBinaryFile.node.js", + "dist/nodes/ReadBinaryFiles/ReadBinaryFiles.node.js", + "dist/nodes/ReadPdf/ReadPDF.node.js", + "dist/nodes/Reddit/Reddit.node.js", + "dist/nodes/Redis/Redis.node.js", + "dist/nodes/Redis/RedisTrigger.node.js", + "dist/nodes/RenameKeys/RenameKeys.node.js", + "dist/nodes/RespondToWebhook/RespondToWebhook.node.js", + "dist/nodes/Rocketchat/Rocketchat.node.js", + "dist/nodes/RssFeedRead/RssFeedRead.node.js", + "dist/nodes/RssFeedRead/RssFeedReadTrigger.node.js", + "dist/nodes/Rundeck/Rundeck.node.js", + "dist/nodes/S3/S3.node.js", + "dist/nodes/Salesforce/Salesforce.node.js", + "dist/nodes/Salesmate/Salesmate.node.js", + "dist/nodes/Schedule/ScheduleTrigger.node.js", + "dist/nodes/SeaTable/SeaTable.node.js", + "dist/nodes/SeaTable/SeaTableTrigger.node.js", + "dist/nodes/SecurityScorecard/SecurityScorecard.node.js", + "dist/nodes/Segment/Segment.node.js", + "dist/nodes/SendGrid/SendGrid.node.js", + "dist/nodes/Sendy/Sendy.node.js", + "dist/nodes/SentryIo/SentryIo.node.js", + "dist/nodes/ServiceNow/ServiceNow.node.js", + "dist/nodes/Set/Set.node.js", + "dist/nodes/Shopify/Shopify.node.js", + "dist/nodes/Shopify/ShopifyTrigger.node.js", + "dist/nodes/Signl4/Signl4.node.js", + "dist/nodes/Slack/Slack.node.js", + "dist/nodes/Sms77/Sms77.node.js", + "dist/nodes/Snowflake/Snowflake.node.js", + "dist/nodes/SplitInBatches/SplitInBatches.node.js", + "dist/nodes/Splunk/Splunk.node.js", + "dist/nodes/Spontit/Spontit.node.js", + "dist/nodes/Spotify/Spotify.node.js", + "dist/nodes/SpreadsheetFile/SpreadsheetFile.node.js", + "dist/nodes/SseTrigger/SseTrigger.node.js", + "dist/nodes/Ssh/Ssh.node.js", + "dist/nodes/Stackby/Stackby.node.js", + "dist/nodes/Start/Start.node.js", + "dist/nodes/StopAndError/StopAndError.node.js", + "dist/nodes/Storyblok/Storyblok.node.js", + "dist/nodes/Strapi/Strapi.node.js", + "dist/nodes/Strava/Strava.node.js", + "dist/nodes/Strava/StravaTrigger.node.js", + "dist/nodes/Stripe/Stripe.node.js", + "dist/nodes/Stripe/StripeTrigger.node.js", + "dist/nodes/Supabase/Supabase.node.js", + "dist/nodes/SurveyMonkey/SurveyMonkeyTrigger.node.js", + "dist/nodes/Switch/Switch.node.js", + "dist/nodes/SyncroMSP/SyncroMsp.node.js", + "dist/nodes/Taiga/Taiga.node.js", + "dist/nodes/Taiga/TaigaTrigger.node.js", + "dist/nodes/Tapfiliate/Tapfiliate.node.js", + "dist/nodes/Telegram/Telegram.node.js", + "dist/nodes/Telegram/TelegramTrigger.node.js", + "dist/nodes/TheHiveProject/TheHiveProject.node.js", + "dist/nodes/TheHiveProject/TheHiveProjectTrigger.node.js", + "dist/nodes/TheHive/TheHive.node.js", + "dist/nodes/TheHive/TheHiveTrigger.node.js", + "dist/nodes/TimescaleDb/TimescaleDb.node.js", + "dist/nodes/Todoist/Todoist.node.js", + "dist/nodes/Toggl/TogglTrigger.node.js", + "dist/nodes/Totp/Totp.node.js", + "dist/nodes/TravisCi/TravisCi.node.js", + "dist/nodes/Trello/Trello.node.js", + "dist/nodes/Trello/TrelloTrigger.node.js", + "dist/nodes/Twake/Twake.node.js", + "dist/nodes/Twilio/Twilio.node.js", + "dist/nodes/Twist/Twist.node.js", + "dist/nodes/Twitter/Twitter.node.js", + "dist/nodes/Typeform/TypeformTrigger.node.js", + "dist/nodes/UnleashedSoftware/UnleashedSoftware.node.js", + "dist/nodes/Uplead/Uplead.node.js", + "dist/nodes/UProc/UProc.node.js", + "dist/nodes/UptimeRobot/UptimeRobot.node.js", + "dist/nodes/UrlScanIo/UrlScanIo.node.js", + "dist/nodes/Vero/Vero.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.js", + "dist/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloudTrigger.node.js", + "dist/nodes/Venafi/Datacenter/VenafiTlsProtectDatacenter.node.js", + "dist/nodes/Vonage/Vonage.node.js", + "dist/nodes/Wait/Wait.node.js", + "dist/nodes/Webflow/Webflow.node.js", + "dist/nodes/Webflow/WebflowTrigger.node.js", + "dist/nodes/Webhook/Webhook.node.js", + "dist/nodes/Wekan/Wekan.node.js", + "dist/nodes/WhatsApp/WhatsApp.node.js", + "dist/nodes/Wise/Wise.node.js", + "dist/nodes/Wise/WiseTrigger.node.js", + "dist/nodes/WooCommerce/WooCommerce.node.js", + "dist/nodes/WooCommerce/WooCommerceTrigger.node.js", + "dist/nodes/Wordpress/Wordpress.node.js", + "dist/nodes/Workable/WorkableTrigger.node.js", + "dist/nodes/WorkflowTrigger/WorkflowTrigger.node.js", + "dist/nodes/WriteBinaryFile/WriteBinaryFile.node.js", + "dist/nodes/Wufoo/WufooTrigger.node.js", + "dist/nodes/Xero/Xero.node.js", + "dist/nodes/Xml/Xml.node.js", + "dist/nodes/Yourls/Yourls.node.js", + "dist/nodes/Zammad/Zammad.node.js", + "dist/nodes/Zendesk/Zendesk.node.js", + "dist/nodes/Zendesk/ZendeskTrigger.node.js", + "dist/nodes/Zoho/ZohoCrm.node.js", + "dist/nodes/Zoom/Zoom.node.js", + "dist/nodes/Zulip/Zulip.node.js" + ] + }, + "devDependencies": { + "@types/amqplib": "^0.10.1", + "@types/aws4": "^1.5.1", + "@types/basic-auth": "^1.1.3", + "@types/cheerio": "^0.22.15", + "@types/cron": "~1.7.1", + "@types/eventsource": "^1.1.2", + "@types/express": "^4.17.6", + "@types/gm": "^1.25.0", + "@types/imap-simple": "^4.2.0", + "@types/js-nacl": "^1.3.0", + "@types/jsonwebtoken": "^9.0.1", + "@types/lodash": "^4.14.195", + "@types/lossless-json": "^1.0.0", + "@types/mailparser": "^2.7.3", + "@types/mime-types": "^2.1.0", + "@types/mssql": "^6.0.2", + "@types/node-ssh": "^7.0.1", + "@types/nodemailer": "^6.4.0", + "@types/promise-ftp": "^1.3.4", + "@types/redis": "^2.8.11", + "@types/request-promise-native": "~1.0.15", + "@types/rfc2047": "^2.0.1", + "@types/showdown": "^1.9.4", + "@types/snowflake-sdk": "^1.6.12", + "@types/ssh2-sftp-client": "^5.1.0", + "@types/tmp": "^0.2.0", + "@types/uuid": "^8.3.2", + "@types/xml2js": "^0.4.11", + "eslint-plugin-n8n-nodes-base": "^1.16.0", + "gulp": "^4.0.0", + "n8n-core": "1.14.1" + }, + "dependencies": { + "@kafkajs/confluent-schema-registry": "1.0.6", + "@n8n/vm2": "^3.9.20", + "amqplib": "^0.10.3", + "aws4": "^1.8.0", + "basic-auth": "^2.0.1", + "change-case": "^4.1.1", + "cheerio": "1.0.0-rc.6", + "chokidar": "3.5.2", + "cron": "~1.7.2", + "csv-parse": "^5.5.0", + "currency-codes": "^2.1.0", + "eventsource": "^2.0.2", + "fast-glob": "^3.2.5", + "fflate": "^0.7.0", + "get-system-fonts": "^2.0.2", + "gm": "^1.25.0", + "iconv-lite": "^0.6.2", + "ics": "^2.27.0", + "imap-simple": "^4.3.0", + "isbot": "^3.6.13", + "iso-639-1": "^2.1.3", + "js-nacl": "^1.4.0", + "jsonwebtoken": "^9.0.0", + "kafkajs": "^1.14.0", + "ldapts": "^4.2.6", + "lodash": "^4.17.21", + "lossless-json": "^1.0.4", + "luxon": "^3.3.0", + "mailparser": "^3.2.0", + "minifaker": "^1.34.1", + "moment": "~2.29.2", + "moment-timezone": "^0.5.28", + "mongodb": "^4.17.1", + "mqtt": "^5.0.2", + "mssql": "^8.1.2", + "mysql2": "~2.3.0", + "nanoid": "^3.3.6", + "node-html-markdown": "^1.1.3", + "node-ssh": "^12.0.0", + "nodemailer": "^6.7.1", + "otpauth": "^9.1.1", + "pdfjs-dist": "^2.16.105", + "pg": "^8.3.0", + "pg-promise": "^10.5.8", + "pretty-bytes": "^5.6.0", + "promise-ftp": "^1.3.5", + "pyodide": "^0.23.4", + "redis": "^3.1.1", + "rfc2047": "^4.0.1", + "rhea": "^1.0.11", + "rss-parser": "^3.7.0", + "semver": "^7.5.4", + "showdown": "^2.0.3", + "simple-git": "^3.17.0", + "snowflake-sdk": "^1.8.0", + "ssh2-sftp-client": "^7.0.0", + "tmp-promise": "^3.0.2", + "typedi": "^0.10.0", + "uuid": "^8.3.2", + "xlsx": "https://cdn.sheetjs.com/xlsx-0.19.3/xlsx-0.19.3.tgz", + "xml2js": "^0.5.0", + "n8n-workflow": "1.14.1" + }, + "scripts": { + "clean": "rimraf dist .turbo", + "dev": "pnpm watch", + "typecheck": "tsc", + "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && gulp build:icons && gulp build:translations && pnpm build:metadata", + "build:translations": "gulp build:translations", + "build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types", + "format": "prettier --write . --ignore-path ../../.prettierignore", + "lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js", + "lintfix": "eslint . --fix", + "watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"", + "test": "jest" + } + } + } +] \ No newline at end of file diff --git a/tests/test-results/test-summary.json b/tests/test-results/test-summary.json new file mode 100644 index 0000000..802ac66 --- /dev/null +++ b/tests/test-results/test-summary.json @@ -0,0 +1,760 @@ +{ + "totalTests": 6, + "passed": 6, + "failed": 0, + "startTime": "2025-06-08T10:57:55.233Z", + "endTime": "2025-06-08T10:57:59.249Z", + "tests": [ + { + "name": "Basic Node Extraction", + "status": "passed", + "startTime": "2025-06-08T10:57:55.236Z", + "endTime": "2025-06-08T10:57:55.342Z", + "error": null, + "details": { + "results": [ + { + "nodeType": "@n8n/n8n-nodes-langchain.Agent", + "extracted": false, + "error": "Node source code not found for: @n8n/n8n-nodes-langchain.Agent" + }, + { + "nodeType": "n8n-nodes-base.Function", + "extracted": true, + "codeLength": 7449, + "hasCredentials": false, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Function/Function.node.js" + }, + { + "nodeType": "n8n-nodes-base.Webhook", + "extracted": true, + "codeLength": 10667, + "hasCredentials": false, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Webhook/Webhook.node.js" + } + ], + "successCount": 2, + "totalTested": 3 + } + }, + { + "name": "List Available Nodes", + "status": "passed", + "startTime": "2025-06-08T10:57:55.342Z", + "endTime": "2025-06-08T10:57:55.689Z", + "error": null, + "details": { + "totalNodes": 439, + "packages": [ + "unknown" + ], + "nodesByPackage": { + "unknown": [ + "ActionNetwork", + "ActiveCampaign", + "ActiveCampaignTrigger", + "AcuitySchedulingTrigger", + "Adalo", + "Affinity", + "AffinityTrigger", + "AgileCrm", + "Airtable", + "AirtableTrigger", + "AirtableV1", + "Amqp", + "AmqpTrigger", + "ApiTemplateIo", + "Asana", + "AsanaTrigger", + "Automizy", + "Autopilot", + "AutopilotTrigger", + "AwsLambda", + "AwsSns", + "AwsSnsTrigger", + "AwsCertificateManager", + "AwsComprehend", + "AwsDynamoDB", + "AwsElb", + "AwsRekognition", + "AwsS3", + "AwsS3V1", + "AwsS3V2", + "AwsSes", + "AwsSqs", + "AwsTextract", + "AwsTranscribe", + "Bannerbear", + "Baserow", + "Beeminder", + "BitbucketTrigger", + "Bitly", + "Bitwarden", + "Box", + "BoxTrigger", + "Brandfetch", + "Brevo", + "BrevoTrigger", + "Bubble", + "CalTrigger", + "CalendlyTrigger", + "Chargebee", + "ChargebeeTrigger", + "CircleCi", + "CiscoWebex", + "CiscoWebexTrigger", + "CitrixAdc", + "Clearbit", + "ClickUp", + "ClickUpTrigger", + "Clockify", + "ClockifyTrigger", + "Cloudflare", + "Cockpit", + "Coda", + "Code", + "CoinGecko", + "CompareDatasets", + "Compression", + "Contentful", + "ConvertKit", + "ConvertKitTrigger", + "Copper", + "CopperTrigger", + "Cortex", + "CrateDb", + "Cron", + "CrowdDev", + "CrowdDevTrigger", + "Crypto", + "CustomerIo", + "CustomerIoTrigger", + "DateTime", + "DateTimeV1", + "DateTimeV2", + "DebugHelper", + "DeepL", + "Demio", + "Dhl", + "Discord", + "Discourse", + "Disqus", + "Drift", + "Dropbox", + "Dropcontact", + "E2eTest", + "ERPNext", + "EditImage", + "Egoi", + "ElasticSecurity", + "Elasticsearch", + "EmailReadImap", + "EmailReadImapV1", + "EmailReadImapV2", + "EmailSend", + "EmailSendV1", + "EmailSendV2", + "Emelia", + "EmeliaTrigger", + "ErrorTrigger", + "EventbriteTrigger", + "ExecuteCommand", + "ExecuteWorkflow", + "ExecuteWorkflowTrigger", + "ExecutionData", + "FacebookGraphApi", + "FacebookTrigger", + "FacebookLeadAdsTrigger", + "FigmaTrigger", + "FileMaker", + "Filter", + "Flow", + "FlowTrigger", + "FormTrigger", + "FormIoTrigger", + "FormstackTrigger", + "Freshdesk", + "Freshservice", + "FreshworksCrm", + "Ftp", + "Function", + "FunctionItem", + "GetResponse", + "GetResponseTrigger", + "Ghost", + "Git", + "Github", + "GithubTrigger", + "Gitlab", + "GitlabTrigger", + "GoToWebinar", + "GoogleAds", + "GoogleAnalytics", + "GoogleAnalyticsV1", + "GoogleBigQuery", + "GoogleBigQueryV1", + "GoogleBooks", + "GoogleCalendar", + "GoogleCalendarTrigger", + "GoogleChat", + "GoogleCloudNaturalLanguage", + "GoogleCloudStorage", + "GoogleContacts", + "GoogleDocs", + "GoogleDrive", + "GoogleDriveTrigger", + "GoogleDriveV1", + "GoogleFirebaseCloudFirestore", + "GoogleFirebaseRealtimeDatabase", + "GSuiteAdmin", + "Gmail", + "GmailTrigger", + "GmailV1", + "GmailV2", + "GooglePerspective", + "GoogleSheets", + "GoogleSheetsTrigger", + "GoogleSlides", + "GoogleTasks", + "GoogleTranslate", + "YouTube", + "Gotify", + "Grafana", + "GraphQL", + "Grist", + "GumroadTrigger", + "HackerNews", + "HaloPSA", + "Harvest", + "HelpScout", + "HelpScoutTrigger", + "HighLevel", + "HomeAssistant", + "Html", + "HtmlExtract", + "HttpRequest", + "HttpRequestV1", + "HttpRequestV2", + "HttpRequestV3", + "Hubspot", + "HubspotTrigger", + "HubspotV1", + "HubspotV2", + "HumanticAi", + "Hunter", + "ICalendar", + "If", + "Intercom", + "Interval", + "InvoiceNinja", + "InvoiceNinjaTrigger", + "ItemLists", + "ItemListsV1", + "ItemListsV2", + "Iterable", + "Jenkins", + "Jira", + "JiraTrigger", + "JotFormTrigger", + "Kafka", + "KafkaTrigger", + "Keap", + "KeapTrigger", + "Kitemaker", + "KoBoToolbox", + "KoBoToolboxTrigger", + "Ldap", + "Lemlist", + "LemlistTrigger", + "Line", + "Linear", + "LinearTrigger", + "LingvaNex", + "LinkedIn", + "LocalFileTrigger", + "LoneScale", + "LoneScaleTrigger", + "Mqtt", + "MqttTrigger", + "Magento2", + "Mailcheck", + "Mailchimp", + "MailchimpTrigger", + "MailerLite", + "MailerLiteTrigger", + "Mailgun", + "Mailjet", + "MailjetTrigger", + "Mandrill", + "ManualTrigger", + "Markdown", + "Marketstack", + "Matrix", + "Mattermost", + "Mautic", + "MauticTrigger", + "Medium", + "Merge", + "MergeV1", + "MergeV2", + "MessageBird", + "Metabase", + "MicrosoftDynamicsCrm", + "MicrosoftExcel", + "MicrosoftExcelV1", + "MicrosoftGraphSecurity", + "MicrosoftOneDrive", + "MicrosoftOutlook", + "MicrosoftOutlookV1", + "MicrosoftSql", + "MicrosoftTeams", + "MicrosoftToDo", + "Mindee", + "Misp", + "Mocean", + "MondayCom", + "MongoDb", + "MonicaCrm", + "MoveBinaryData", + "Msg91", + "MySql", + "MySqlV1", + "N8n", + "N8nTrainingCustomerDatastore", + "N8nTrainingCustomerMessenger", + "N8nTrigger", + "Nasa", + "Netlify", + "NetlifyTrigger", + "NextCloud", + "NoOp", + "NocoDB", + "Notion", + "NotionTrigger", + "Npm", + "Odoo", + "OneSimpleApi", + "Onfleet", + "OnfleetTrigger", + "OpenAi", + "OpenThesaurus", + "OpenWeatherMap", + "Orbit", + "Oura", + "Paddle", + "PagerDuty", + "PayPal", + "PayPalTrigger", + "Peekalink", + "Phantombuster", + "PhilipsHue", + "Pipedrive", + "PipedriveTrigger", + "Plivo", + "PostBin", + "PostHog", + "Postgres", + "PostgresTrigger", + "PostgresV1", + "PostmarkTrigger", + "ProfitWell", + "Pushbullet", + "Pushcut", + "PushcutTrigger", + "Pushover", + "QuestDb", + "QuickBase", + "QuickBooks", + "QuickChart", + "RabbitMQ", + "RabbitMQTrigger", + "Raindrop", + "ReadBinaryFile", + "ReadBinaryFiles", + "ReadPDF", + "Reddit", + "Redis", + "RedisTrigger", + "RenameKeys", + "RespondToWebhook", + "Rocketchat", + "RssFeedRead", + "RssFeedReadTrigger", + "Rundeck", + "S3", + "Salesforce", + "Salesmate", + "ScheduleTrigger", + "SeaTable", + "SeaTableTrigger", + "SecurityScorecard", + "Segment", + "SendGrid", + "Sendy", + "SentryIo", + "ServiceNow", + "Set", + "SetV1", + "SetV2", + "Shopify", + "ShopifyTrigger", + "Signl4", + "Slack", + "SlackV1", + "SlackV2", + "Sms77", + "Snowflake", + "SplitInBatches", + "SplitInBatchesV1", + "SplitInBatchesV2", + "SplitInBatchesV3", + "Splunk", + "Spontit", + "Spotify", + "SpreadsheetFile", + "SseTrigger", + "Ssh", + "Stackby", + "Start", + "StickyNote", + "StopAndError", + "Storyblok", + "Strapi", + "Strava", + "StravaTrigger", + "Stripe", + "StripeTrigger", + "Supabase", + "SurveyMonkeyTrigger", + "Switch", + "SwitchV1", + "SwitchV2", + "SyncroMsp", + "Taiga", + "TaigaTrigger", + "Tapfiliate", + "Telegram", + "TelegramTrigger", + "TheHive", + "TheHiveTrigger", + "TheHiveProjectTrigger", + "TimescaleDb", + "Todoist", + "TodoistV1", + "TodoistV2", + "TogglTrigger", + "Totp", + "TravisCi", + "Trello", + "TrelloTrigger", + "Twake", + "Twilio", + "Twist", + "Twitter", + "TwitterV1", + "TwitterV2", + "TypeformTrigger", + "UProc", + "UnleashedSoftware", + "Uplead", + "UptimeRobot", + "UrlScanIo", + "VenafiTlsProtectDatacenter", + "VenafiTlsProtectDatacenterTrigger", + "VenafiTlsProtectCloud", + "VenafiTlsProtectCloudTrigger", + "Vero", + "Vonage", + "Wait", + "Webflow", + "WebflowTrigger", + "Webhook", + "Wekan", + "WhatsApp", + "Wise", + "WiseTrigger", + "WooCommerce", + "WooCommerceTrigger", + "Wordpress", + "WorkableTrigger", + "WorkflowTrigger", + "WriteBinaryFile", + "WufooTrigger", + "Xero", + "Xml", + "Yourls", + "Zammad", + "Zendesk", + "ZendeskTrigger", + "ZohoCrm", + "Zoom", + "Zulip" + ] + }, + "sampleNodes": [ + { + "name": "ActionNetwork", + "displayName": "Action Network", + "description": "Consume the Action Network API", + "location": "node_modules/n8n-nodes-base/dist/nodes/ActionNetwork/ActionNetwork.node.js" + }, + { + "name": "ActiveCampaign", + "displayName": "ActiveCampaign", + "description": "Create and edit data in ActiveCampaign", + "location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaign.node.js" + }, + { + "name": "ActiveCampaignTrigger", + "displayName": "ActiveCampaign Trigger", + "description": "Handle ActiveCampaign events via webhooks", + "location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaignTrigger.node.js" + }, + { + "name": "AcuitySchedulingTrigger", + "displayName": "Acuity Scheduling Trigger", + "description": "Handle Acuity Scheduling events via webhooks", + "location": "node_modules/n8n-nodes-base/dist/nodes/AcuityScheduling/AcuitySchedulingTrigger.node.js" + }, + { + "name": "Adalo", + "displayName": "Adalo", + "description": "Consume Adalo API", + "location": "node_modules/n8n-nodes-base/dist/nodes/Adalo/Adalo.node.js" + } + ] + } + }, + { + "name": "Bulk Node Extraction", + "status": "passed", + "startTime": "2025-06-08T10:57:55.689Z", + "endTime": "2025-06-08T10:57:58.574Z", + "error": null, + "details": { + "totalAttempted": 10, + "successCount": 6, + "failureCount": 4, + "timeElapsed": 2581, + "results": [ + { + "success": true, + "data": { + "nodeType": "ActionNetwork", + "name": "ActionNetwork", + "codeLength": 15810, + "codeHash": "c0a880f5754b6b532ff787bdb253dc49ffd7f470f28aeddda5be0c73f9f9935f", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/ActionNetwork/ActionNetwork.node.js", + "extractedAt": "2025-06-08T10:57:56.009Z" + } + }, + { + "success": true, + "data": { + "nodeType": "ActiveCampaign", + "name": "ActiveCampaign", + "codeLength": 38399, + "codeHash": "5ea90671718d20eecb6cddae2e21c91470fdb778e8be97106ee2539303422ad2", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/ActiveCampaign/ActiveCampaign.node.js", + "extractedAt": "2025-06-08T10:57:56.032Z" + } + }, + { + "success": false, + "nodeType": "ActiveCampaignTrigger", + "error": "Node source code not found for: ActiveCampaignTrigger" + }, + { + "success": false, + "nodeType": "AcuitySchedulingTrigger", + "error": "Node source code not found for: AcuitySchedulingTrigger" + }, + { + "success": true, + "data": { + "nodeType": "Adalo", + "name": "Adalo", + "codeLength": 8234, + "codeHash": "0fbcb0b60141307fdc3394154af1b2c3133fa6181aac336249c6c211fd24846f", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Adalo/Adalo.node.js", + "extractedAt": "2025-06-08T10:57:57.330Z" + } + }, + { + "success": true, + "data": { + "nodeType": "Affinity", + "name": "Affinity", + "codeLength": 16217, + "codeHash": "e605ea187767403dfa55cd374690f7df563a0baa7ca6991d86d522dc101a2846", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Affinity/Affinity.node.js", + "extractedAt": "2025-06-08T10:57:57.343Z" + } + }, + { + "success": false, + "nodeType": "AffinityTrigger", + "error": "Node source code not found for: AffinityTrigger" + }, + { + "success": true, + "data": { + "nodeType": "AgileCrm", + "name": "AgileCrm", + "codeLength": 28115, + "codeHash": "ce71c3b5dec23a48d24c5775e9bb79006ce395bed62b306c56340b5c772379c2", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/AgileCrm/AgileCrm.node.js", + "extractedAt": "2025-06-08T10:57:57.925Z" + } + }, + { + "success": true, + "data": { + "nodeType": "Airtable", + "name": "Airtable", + "codeLength": 936, + "codeHash": "2d67e72931697178946f5127b43e954649c4c5e7ad9e29764796404ae96e7db5", + "hasCredentials": true, + "hasPackageInfo": true, + "location": "node_modules/n8n-nodes-base/dist/nodes/Airtable/Airtable.node.js", + "extractedAt": "2025-06-08T10:57:57.941Z" + } + }, + { + "success": false, + "nodeType": "AirtableTrigger", + "error": "Node source code not found for: AirtableTrigger" + } + ] + } + }, + { + "name": "Database Schema Validation", + "status": "passed", + "startTime": "2025-06-08T10:57:58.574Z", + "endTime": "2025-06-08T10:57:58.575Z", + "error": null, + "details": { + "schemaValid": true, + "tablesCount": 4, + "estimatedStoragePerNode": 16834 + } + }, + { + "name": "Error Handling", + "status": "passed", + "startTime": "2025-06-08T10:57:58.575Z", + "endTime": "2025-06-08T10:57:59.244Z", + "error": null, + "details": { + "totalTests": 3, + "passed": 2, + "results": [ + { + "name": "Non-existent node", + "nodeType": "non-existent-package.FakeNode", + "expectedError": "not found", + "passed": true, + "actualError": "Node source code not found for: non-existent-package.FakeNode" + }, + { + "name": "Invalid node type format", + "nodeType": "", + "expectedError": "invalid", + "passed": false, + "actualError": "Node source code not found for: " + }, + { + "name": "Malformed package name", + "nodeType": "@invalid@package.Node", + "expectedError": "not found", + "passed": true, + "actualError": "Node source code not found for: @invalid@package.Node" + } + ] + } + }, + { + "name": "MCP Server Integration", + "status": "passed", + "startTime": "2025-06-08T10:57:59.244Z", + "endTime": "2025-06-08T10:57:59.249Z", + "error": null, + "details": { + "serverCreated": true, + "config": { + "port": 3000, + "host": "0.0.0.0", + "authToken": "test-token" + } + } + } + ], + "extractedNodes": 6, + "databaseSchema": { + "tables": { + "nodes": { + "columns": { + "id": "UUID PRIMARY KEY", + "node_type": "VARCHAR(255) UNIQUE NOT NULL", + "name": "VARCHAR(255) NOT NULL", + "package_name": "VARCHAR(255)", + "display_name": "VARCHAR(255)", + "description": "TEXT", + "version": "VARCHAR(50)", + "code_hash": "VARCHAR(64) NOT NULL", + "code_length": "INTEGER NOT NULL", + "source_location": "TEXT", + "extracted_at": "TIMESTAMP NOT NULL", + "updated_at": "TIMESTAMP" + }, + "indexes": [ + "node_type", + "package_name", + "code_hash" + ] + }, + "node_source_code": { + "columns": { + "id": "UUID PRIMARY KEY", + "node_id": "UUID REFERENCES nodes(id)", + "source_code": "TEXT NOT NULL", + "compiled_code": "TEXT", + "source_map": "TEXT" + } + }, + "node_credentials": { + "columns": { + "id": "UUID PRIMARY KEY", + "node_id": "UUID REFERENCES nodes(id)", + "credential_type": "VARCHAR(255) NOT NULL", + "credential_code": "TEXT NOT NULL", + "required_fields": "JSONB" + } + }, + "node_metadata": { + "columns": { + "id": "UUID PRIMARY KEY", + "node_id": "UUID REFERENCES nodes(id)", + "package_info": "JSONB", + "dependencies": "JSONB", + "icon": "TEXT", + "categories": "TEXT[]", + "documentation_url": "TEXT" + } + } + } + } +} \ No newline at end of file diff --git a/tests/test-slack-docs-issue.js b/tests/test-slack-docs-issue.js new file mode 100755 index 0000000..6e832da --- /dev/null +++ b/tests/test-slack-docs-issue.js @@ -0,0 +1,133 @@ +#!/usr/bin/env node + +const { DocumentationFetcher } = require('../dist/utils/documentation-fetcher'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); +const { execSync } = require('child_process'); +const path = require('path'); +const fs = require('fs'); + +async function investigateSlackDocs() { + console.log('=== Investigating Slack Node Documentation Issue ===\n'); + + const docsFetcher = new DocumentationFetcher(); + const extractor = new NodeSourceExtractor(); + + try { + // 1. Ensure docs repo is available + console.log('1๏ธโƒฃ Ensuring documentation repository...'); + await docsFetcher.ensureDocsRepository(); + + // 2. Check what files exist for Slack + console.log('\n2๏ธโƒฃ Searching for Slack documentation files...'); + const docsPath = path.join(process.cwd(), 'temp', 'n8n-docs'); + + try { + const slackFiles = execSync( + `find ${docsPath} -name "*slack*" -type f | grep -v ".git"`, + { encoding: 'utf-8' } + ).trim().split('\n').filter(Boolean); + + console.log(`Found ${slackFiles.length} files with "slack" in the name:`); + slackFiles.forEach(file => { + const relPath = path.relative(docsPath, file); + console.log(` - ${relPath}`); + }); + + // Check content of each file + console.log('\n3๏ธโƒฃ Checking content of Slack-related files...'); + for (const file of slackFiles.slice(0, 5)) { // Check first 5 files + if (file.endsWith('.md')) { + const content = fs.readFileSync(file, 'utf-8'); + const firstLine = content.split('\n')[0]; + const isCredential = content.includes('credential') || content.includes('authentication'); + console.log(`\n ๐Ÿ“„ ${path.basename(file)}`); + console.log(` First line: ${firstLine}`); + console.log(` Is credential doc: ${isCredential}`); + + // Check if it mentions being a node or credential + if (content.includes('# Slack node')) { + console.log(' โœ… This is the Slack NODE documentation!'); + console.log(` Path: ${file}`); + } else if (content.includes('# Slack credentials')) { + console.log(' โš ๏ธ This is the Slack CREDENTIALS documentation'); + } + } + } + } catch (error) { + console.log('Error searching for Slack files:', error.message); + } + + // 4. Test the getNodeDocumentation method + console.log('\n4๏ธโƒฃ Testing getNodeDocumentation for Slack...'); + const slackDocs = await docsFetcher.getNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDocs) { + console.log(' โœ… Found documentation for Slack node'); + console.log(` URL: ${slackDocs.url}`); + console.log(` Content preview: ${slackDocs.markdown.substring(0, 200)}...`); + + // Check if it's credential or node docs + const isCredentialDoc = slackDocs.markdown.includes('credential') || + slackDocs.markdown.includes('authentication') || + slackDocs.markdown.includes('# Slack credentials'); + const isNodeDoc = slackDocs.markdown.includes('# Slack node') || + slackDocs.markdown.includes('## Properties'); + + console.log(` Is credential doc: ${isCredentialDoc}`); + console.log(` Is node doc: ${isNodeDoc}`); + } else { + console.log(' โŒ No documentation found for Slack node'); + } + + // 5. Extract the Slack node source to understand its structure + console.log('\n5๏ธโƒฃ Extracting Slack node source code...'); + try { + const slackNode = await extractor.extractNodeSource('n8n-nodes-base.slack'); + console.log(' โœ… Successfully extracted Slack node'); + console.log(` Location: ${slackNode.location}`); + console.log(` Has credential code: ${!!slackNode.credentialCode}`); + + // Parse the node definition + const descMatch = slackNode.sourceCode.match(/description\s*[:=]\s*({[\s\S]*?})\s*[,;]/); + if (descMatch) { + console.log(' Found node description in source'); + } + } catch (error) { + console.log(' โŒ Failed to extract Slack node:', error.message); + } + + // 6. Check documentation structure + console.log('\n6๏ธโƒฃ Checking n8n-docs repository structure...'); + const docStructure = [ + 'docs/integrations/builtin/app-nodes', + 'docs/integrations/builtin/core-nodes', + 'docs/integrations/builtin/trigger-nodes', + 'docs/integrations/builtin/credentials' + ]; + + for (const dir of docStructure) { + const fullPath = path.join(docsPath, dir); + try { + const files = fs.readdirSync(fullPath); + const slackFile = files.find(f => f.toLowerCase().includes('slack')); + console.log(`\n ๐Ÿ“ ${dir}:`); + if (slackFile) { + console.log(` Found: ${slackFile}`); + } else { + console.log(` No Slack files found`); + } + } catch (error) { + console.log(` Directory doesn't exist`); + } + } + + } catch (error) { + console.error('\nโŒ Investigation failed:', error); + } finally { + // Cleanup + await docsFetcher.cleanup(); + } +} + +// Run investigation +investigateSlackDocs().catch(console.error); \ No newline at end of file diff --git a/tests/test-slack-fix.js b/tests/test-slack-fix.js new file mode 100755 index 0000000..758ad4a --- /dev/null +++ b/tests/test-slack-fix.js @@ -0,0 +1,119 @@ +#!/usr/bin/env node + +const { NodeDocumentationService } = require('../dist/services/node-documentation-service'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); +const { DocumentationFetcher } = require('../dist/utils/documentation-fetcher'); + +async function testSlackFix() { + console.log('=== Testing Slack Node Fix ===\n'); + + const extractor = new NodeSourceExtractor(); + const docsFetcher = new DocumentationFetcher(); + + try { + // Test 1: Node source extraction + console.log('1๏ธโƒฃ Testing Slack node source extraction...'); + const slackSource = await extractor.extractNodeSource('n8n-nodes-base.slack'); + console.log(` โœ… Source code found at: ${slackSource.location}`); + console.log(` ๐Ÿ“ Source length: ${slackSource.sourceCode.length} bytes`); + + // Extract display name from source + const displayNameMatch = slackSource.sourceCode.match(/displayName\s*[:=]\s*['"`]([^'"`]+)['"`]/); + console.log(` ๐Ÿ“› Display name: ${displayNameMatch ? displayNameMatch[1] : 'Not found'}`); + + // Test 2: Documentation fetching + console.log('\n2๏ธโƒฃ Testing Slack documentation fetching...'); + const slackDocs = await docsFetcher.getNodeDocumentation('n8n-nodes-base.slack'); + + if (slackDocs) { + console.log(` โœ… Documentation found`); + console.log(` ๐Ÿ“„ URL: ${slackDocs.url}`); + + // Extract title from markdown + const titleMatch = slackDocs.markdown.match(/title:\s*(.+)/); + console.log(` ๐Ÿ“ Title: ${titleMatch ? titleMatch[1] : 'Not found'}`); + + // Check if it's the correct documentation + const isNodeDoc = slackDocs.markdown.includes('Slack node') || + slackDocs.markdown.includes('node documentation'); + const isCredentialDoc = slackDocs.markdown.includes('Slack credentials') && + !slackDocs.markdown.includes('node documentation'); + + console.log(` โœ… Is node documentation: ${isNodeDoc}`); + console.log(` โŒ Is credential documentation: ${isCredentialDoc}`); + + if (isNodeDoc && !isCredentialDoc) { + console.log('\n๐ŸŽ‰ SUCCESS: Slack node documentation is correctly fetched!'); + } else { + console.log('\nโš ๏ธ WARNING: Documentation may not be correct'); + } + + // Show first few lines of content + console.log('\n๐Ÿ“‹ Documentation preview:'); + const lines = slackDocs.markdown.split('\n').slice(0, 15); + lines.forEach(line => console.log(` ${line}`)); + + } else { + console.log(' โŒ No documentation found'); + } + + // Test 3: Complete node info using NodeDocumentationService + console.log('\n3๏ธโƒฃ Testing complete node info storage...'); + const service = new NodeDocumentationService('./data/test-slack-fix.db'); + + try { + // Parse node definition + const nodeDefinition = { + displayName: displayNameMatch ? displayNameMatch[1] : 'Slack', + description: 'Send messages to Slack channels, users and conversations', + category: 'Communication', + icon: 'file:slack.svg', + version: 2 + }; + + // Store node info + await service.storeNode({ + nodeType: 'n8n-nodes-base.slack', + name: 'slack', + displayName: nodeDefinition.displayName, + description: nodeDefinition.description, + category: nodeDefinition.category, + icon: nodeDefinition.icon, + sourceCode: slackSource.sourceCode, + credentialCode: slackSource.credentialCode, + documentation: slackDocs?.markdown, + documentationUrl: slackDocs?.url, + packageName: 'n8n-nodes-base', + version: nodeDefinition.version, + hasCredentials: !!slackSource.credentialCode, + isTrigger: false, + isWebhook: false + }); + + console.log(' โœ… Node info stored successfully'); + + // Retrieve and verify + const retrievedNode = await service.getNodeInfo('n8n-nodes-base.slack'); + if (retrievedNode) { + console.log(' โœ… Node retrieved successfully'); + console.log(` ๐Ÿ“› Display name: ${retrievedNode.displayName}`); + console.log(` ๐Ÿ“ Has documentation: ${!!retrievedNode.documentation}`); + console.log(` ๐Ÿ“„ Documentation URL: ${retrievedNode.documentationUrl || 'N/A'}`); + } + + service.close(); + } catch (error) { + console.error(' โŒ Error with node service:', error.message); + service.close(); + } + + console.log('\nโœ… All tests completed!'); + + } catch (error) { + console.error('\nโŒ Test failed:', error); + } finally { + await docsFetcher.cleanup(); + } +} + +testSlackFix().catch(console.error); \ No newline at end of file diff --git a/tests/test-slack-node-complete.js b/tests/test-slack-node-complete.js new file mode 100644 index 0000000..58c3287 --- /dev/null +++ b/tests/test-slack-node-complete.js @@ -0,0 +1,137 @@ +#!/usr/bin/env node + +const { NodeDocumentationService } = require('../dist/services/node-documentation-service'); +const { EnhancedDocumentationFetcher } = require('../dist/utils/documentation-fetcher'); +const { NodeSourceExtractor } = require('../dist/utils/node-source-extractor'); +const path = require('path'); + +async function testSlackNode() { + console.log('๐Ÿงช Testing Slack Node Complete Information Extraction\n'); + + const dbPath = path.join(__dirname, '../data/test-slack.db'); + const service = new NodeDocumentationService(dbPath); + const fetcher = new EnhancedDocumentationFetcher(); + const extractor = new NodeSourceExtractor(); + + try { + console.log('๐Ÿ“š Fetching Slack node documentation...'); + const docs = await fetcher.getEnhancedNodeDocumentation('n8n-nodes-base.Slack'); + + console.log('\nโœ… Documentation Structure:'); + console.log(`- Title: ${docs.title}`); + console.log(`- Has markdown: ${docs.markdown?.length > 0 ? 'Yes' : 'No'} (${docs.markdown?.length || 0} chars)`); + console.log(`- Operations: ${docs.operations?.length || 0}`); + console.log(`- API Methods: ${docs.apiMethods?.length || 0}`); + console.log(`- Examples: ${docs.examples?.length || 0}`); + console.log(`- Templates: ${docs.templates?.length || 0}`); + console.log(`- Related Resources: ${docs.relatedResources?.length || 0}`); + console.log(`- Required Scopes: ${docs.requiredScopes?.length || 0}`); + + console.log('\n๐Ÿ“‹ Operations by Resource:'); + const resourceMap = new Map(); + if (docs.operations) { + docs.operations.forEach(op => { + if (!resourceMap.has(op.resource)) { + resourceMap.set(op.resource, []); + } + resourceMap.get(op.resource).push(op); + }); + } + + for (const [resource, ops] of resourceMap) { + console.log(`\n ${resource}:`); + ops.forEach(op => { + console.log(` - ${op.operation}: ${op.description}`); + }); + } + + console.log('\n๐Ÿ”Œ Sample API Methods:'); + if (docs.apiMethods) { + docs.apiMethods.slice(0, 5).forEach(method => { + console.log(` - ${method.operation} โ†’ ${method.apiMethod}`); + }); + } + + console.log('\n๐Ÿ’ป Extracting Slack node source code...'); + const sourceInfo = await extractor.extractNodeSource('n8n-nodes-base.Slack'); + + console.log('\nโœ… Source Code Extraction:'); + console.log(`- Has source code: ${sourceInfo.sourceCode ? 'Yes' : 'No'} (${sourceInfo.sourceCode?.length || 0} chars)`); + console.log(`- Has credential code: ${sourceInfo.credentialCode ? 'Yes' : 'No'} (${sourceInfo.credentialCode?.length || 0} chars)`); + console.log(`- Package name: ${sourceInfo.packageInfo?.name}`); + console.log(`- Package version: ${sourceInfo.packageInfo?.version}`); + + // Store in database + console.log('\n๐Ÿ’พ Storing in database...'); + await service.storeNode({ + nodeType: 'n8n-nodes-base.Slack', + name: 'Slack', + displayName: 'Slack', + description: 'Send and receive messages, manage channels, and more', + category: 'Communication', + documentationUrl: docs?.url || 'https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/', + documentationMarkdown: docs?.markdown, + documentationTitle: docs?.title, + operations: docs?.operations, + apiMethods: docs?.apiMethods, + documentationExamples: docs?.examples, + templates: docs?.templates, + relatedResources: docs?.relatedResources, + requiredScopes: docs?.requiredScopes, + sourceCode: sourceInfo.sourceCode || '', + credentialCode: sourceInfo.credentialCode, + packageName: sourceInfo.packageInfo?.name || 'n8n-nodes-base', + version: sourceInfo.packageInfo?.version, + hasCredentials: true, + isTrigger: false, + isWebhook: false + }); + + // Retrieve and verify + console.log('\n๐Ÿ” Retrieving from database...'); + const storedNode = await service.getNodeInfo('n8n-nodes-base.Slack'); + + console.log('\nโœ… Verification Results:'); + console.log(`- Node found: ${storedNode ? 'Yes' : 'No'}`); + if (storedNode) { + console.log(`- Has operations: ${storedNode.operations?.length > 0 ? 'Yes' : 'No'} (${storedNode.operations?.length || 0})`); + console.log(`- Has API methods: ${storedNode.apiMethods?.length > 0 ? 'Yes' : 'No'} (${storedNode.apiMethods?.length || 0})`); + console.log(`- Has examples: ${storedNode.documentationExamples?.length > 0 ? 'Yes' : 'No'} (${storedNode.documentationExamples?.length || 0})`); + console.log(`- Has source code: ${storedNode.sourceCode ? 'Yes' : 'No'}`); + console.log(`- Has credential code: ${storedNode.credentialCode ? 'Yes' : 'No'}`); + } + + // Test search + console.log('\n๐Ÿ” Testing search...'); + const searchResults = await service.searchNodes('message send'); + const slackInResults = searchResults.some(r => r.nodeType === 'n8n-nodes-base.Slack'); + console.log(`- Slack found in search results: ${slackInResults ? 'Yes' : 'No'}`); + + console.log('\nโœ… Complete Information Test Summary:'); + const hasCompleteInfo = + storedNode && + storedNode.operations?.length > 0 && + storedNode.apiMethods?.length > 0 && + storedNode.sourceCode && + storedNode.documentationMarkdown; + + console.log(`- Has complete information: ${hasCompleteInfo ? 'โœ… YES' : 'โŒ NO'}`); + + if (!hasCompleteInfo) { + console.log('\nโŒ Missing Information:'); + if (!storedNode) console.log(' - Node not stored properly'); + if (!storedNode?.operations?.length) console.log(' - No operations extracted'); + if (!storedNode?.apiMethods?.length) console.log(' - No API methods extracted'); + if (!storedNode?.sourceCode) console.log(' - No source code extracted'); + if (!storedNode?.documentationMarkdown) console.log(' - No documentation extracted'); + } + + } catch (error) { + console.error('โŒ Test failed:', error); + } finally { + await service.close(); + } +} + +// Run the test +testSlackNode().catch(console.error); \ No newline at end of file