n8n-nodes-browser-smart-automation 0.1.2 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/McpClientTool/McpClientTool.node.js +2 -13
  2. package/dist/McpClientTool/McpClientTool.node.js.map +1 -1
  3. package/dist/McpClientTool/utils.js +1 -1
  4. package/dist/McpClientTool/utils.js.map +1 -1
  5. package/dist/McpTrigger/McpTrigger.node.js +1 -1
  6. package/dist/McpTrigger/McpTrigger.node.js.map +1 -1
  7. package/dist/shared/N8nBinaryLoader.js +203 -0
  8. package/dist/shared/N8nBinaryLoader.js.map +1 -0
  9. package/dist/shared/N8nJsonLoader.js +89 -0
  10. package/dist/shared/N8nJsonLoader.js.map +1 -0
  11. package/dist/shared/N8nTool.js +106 -0
  12. package/dist/shared/N8nTool.js.map +1 -0
  13. package/dist/shared/embeddingInputValidation.js +55 -0
  14. package/dist/shared/embeddingInputValidation.js.map +1 -0
  15. package/dist/shared/helpers.js +220 -13
  16. package/dist/shared/helpers.js.map +1 -1
  17. package/dist/shared/httpProxyAgent.js +40 -2
  18. package/dist/shared/httpProxyAgent.js.map +1 -1
  19. package/dist/shared/logWrapper.js +347 -2
  20. package/dist/shared/logWrapper.js.map +1 -1
  21. package/dist/shared/schemaParsing.js +47 -4
  22. package/dist/shared/schemaParsing.js.map +1 -1
  23. package/dist/shared/sharedFields.js +142 -7
  24. package/dist/shared/sharedFields.js.map +1 -1
  25. package/dist/shared/typesN8nTool.js +17 -0
  26. package/dist/shared/typesN8nTool.js.map +1 -0
  27. package/dist/shared/utils.js +1 -1
  28. package/dist/shared/utils.js.map +1 -1
  29. package/package.json +23 -7
  30. package/jest.config.js +0 -24
  31. package/nodes/McpClient/McpClient.node.ts +0 -327
  32. package/nodes/McpClient/__test__/McpClient.node.test.ts +0 -221
  33. package/nodes/McpClient/__test__/utils.test.ts +0 -302
  34. package/nodes/McpClient/listSearch.ts +0 -48
  35. package/nodes/McpClient/resourceMapping.ts +0 -48
  36. package/nodes/McpClient/utils.ts +0 -281
  37. package/nodes/McpClientTool/McpClientTool.node.ts +0 -468
  38. package/nodes/McpClientTool/__test__/McpClientTool.node.test.ts +0 -730
  39. package/nodes/McpClientTool/loadOptions.ts +0 -45
  40. package/nodes/McpClientTool/types.ts +0 -1
  41. package/nodes/McpClientTool/utils.ts +0 -116
  42. package/nodes/McpTrigger/FlushingTransport.ts +0 -61
  43. package/nodes/McpTrigger/McpServer.ts +0 -317
  44. package/nodes/McpTrigger/McpTrigger.node.ts +0 -204
  45. package/nodes/McpTrigger/__test__/FlushingTransport.test.ts +0 -102
  46. package/nodes/McpTrigger/__test__/McpServer.test.ts +0 -532
  47. package/nodes/McpTrigger/__test__/McpTrigger.node.test.ts +0 -171
  48. package/nodes/shared/__test__/utils.test.ts +0 -318
  49. package/nodes/shared/descriptions.ts +0 -65
  50. package/nodes/shared/helpers.ts +0 -31
  51. package/nodes/shared/httpProxyAgent.ts +0 -11
  52. package/nodes/shared/logWrapper.ts +0 -13
  53. package/nodes/shared/schemaParsing.ts +0 -9
  54. package/nodes/shared/sharedFields.ts +0 -20
  55. package/nodes/shared/types.ts +0 -12
  56. package/nodes/shared/utils.ts +0 -296
  57. package/officail/package.json +0 -255
  58. package/tsconfig.json +0 -32
  59. package/tsup.config.ts +0 -16
@@ -1,296 +0,0 @@
1
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
- import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
3
- import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
4
- // import type { ClientOAuth2TokenData } from '@n8n/client-oauth2';
5
-
6
- export interface ClientOAuth2TokenData {
7
- access_token: string;
8
- expires_in: number;
9
- refresh_token?: string;
10
- token_type: string;
11
- }
12
- import type {
13
- IExecuteFunctions,
14
- ILoadOptionsFunctions,
15
- INode,
16
- ISupplyDataFunctions,
17
- Result,
18
- } from 'n8n-workflow';
19
- import { createResultError, createResultOk, NodeOperationError } from 'n8n-workflow';
20
-
21
- import { proxyFetch } from '@utils/httpProxyAgent';
22
-
23
- import type { McpAuthenticationOption, McpServerTransport, McpTool } from './types';
24
-
25
- export async function getAllTools(client: Client, cursor?: string): Promise<McpTool[]> {
26
- const { tools, nextCursor } = await client.listTools({ cursor });
27
-
28
- if (nextCursor) {
29
- return (tools as McpTool[]).concat(await getAllTools(client, nextCursor));
30
- }
31
-
32
- return tools as McpTool[];
33
- }
34
-
35
- function safeCreateUrl(url: string, baseUrl?: string | URL): Result<URL, Error> {
36
- try {
37
- return createResultOk(new URL(url, baseUrl));
38
- } catch (error) {
39
- return createResultError(error);
40
- }
41
- }
42
-
43
- function normalizeAndValidateUrl(input: string): Result<URL, Error> {
44
- const withProtocol = !/^https?:\/\//i.test(input) ? `https://${input}` : input;
45
- const parsedUrl = safeCreateUrl(withProtocol);
46
-
47
- if (!parsedUrl.ok) {
48
- return createResultError(parsedUrl.error);
49
- }
50
-
51
- return parsedUrl;
52
- }
53
-
54
- function errorHasCode(error: unknown, code: number): boolean {
55
- return (
56
- !!error &&
57
- typeof error === 'object' &&
58
- (('code' in error && Number(error.code) === code) ||
59
- ('message' in error &&
60
- typeof error.message === 'string' &&
61
- error.message.includes(code.toString())))
62
- );
63
- }
64
-
65
- function isUnauthorizedError(error: unknown): boolean {
66
- return errorHasCode(error, 401);
67
- }
68
-
69
- function isForbiddenError(error: unknown): boolean {
70
- return errorHasCode(error, 403);
71
- }
72
-
73
- type OnUnauthorizedHandler = (
74
- headers?: Record<string, string>,
75
- ) => Promise<Record<string, string> | null>;
76
-
77
- type ConnectMcpClientError =
78
- | { type: 'invalid_url'; error: Error }
79
- | { type: 'connection'; error: Error }
80
- | { type: 'auth'; error: Error };
81
-
82
- export function mapToNodeOperationError(
83
- node: INode,
84
- error: ConnectMcpClientError,
85
- ): NodeOperationError {
86
- switch (error.type) {
87
- case 'invalid_url':
88
- return new NodeOperationError(node, error.error, {
89
- message: 'Could not connect to your MCP server. The provided URL is invalid.',
90
- });
91
- case 'auth':
92
- return new NodeOperationError(node, error.error, {
93
- message: 'Could not connect to your MCP server. Authentication failed.',
94
- });
95
- case 'connection':
96
- default:
97
- return new NodeOperationError(node, error.error, {
98
- message: 'Could not connect to your MCP server',
99
- });
100
- }
101
- }
102
-
103
- export async function connectMcpClient({
104
- headers,
105
- serverTransport,
106
- endpointUrl,
107
- name,
108
- version,
109
- onUnauthorized,
110
- }: {
111
- serverTransport: McpServerTransport;
112
- endpointUrl: string;
113
- headers?: Record<string, string>;
114
- name: string;
115
- version: number;
116
- onUnauthorized?: OnUnauthorizedHandler;
117
- }): Promise<Result<Client, ConnectMcpClientError>> {
118
- const endpoint = normalizeAndValidateUrl(endpointUrl);
119
-
120
- if (!endpoint.ok) {
121
- return createResultError({ type: 'invalid_url', error: endpoint.error });
122
- }
123
-
124
- const client = new Client({ name, version: version.toString() }, { capabilities: {} });
125
-
126
- if (serverTransport === 'httpStreamable') {
127
- try {
128
- const transport = new StreamableHTTPClientTransport(endpoint.result, {
129
- requestInit: { headers },
130
- fetch: proxyFetch,
131
- });
132
- await client.connect(transport);
133
- return createResultOk(client);
134
- } catch (error) {
135
- if (onUnauthorized && isUnauthorizedError(error)) {
136
- const newHeaders = await onUnauthorized(headers);
137
- if (newHeaders) {
138
- // Don't pass `onUnauthorized` to avoid possible infinite recursion
139
- return await connectMcpClient({
140
- headers: newHeaders,
141
- serverTransport,
142
- endpointUrl,
143
- name,
144
- version,
145
- });
146
- }
147
- }
148
-
149
- if (isUnauthorizedError(error) || isForbiddenError(error)) {
150
- return createResultError({ type: 'auth', error: error as Error });
151
- } else {
152
- return createResultError({ type: 'connection', error: error as Error });
153
- }
154
- }
155
- }
156
-
157
- try {
158
- const sseTransport = new SSEClientTransport(endpoint.result, {
159
- eventSourceInit: {
160
- fetch: async (url, init) =>
161
- await proxyFetch(url, {
162
- ...init,
163
- headers: {
164
- ...headers,
165
- Accept: 'text/event-stream',
166
- },
167
- }),
168
- },
169
- fetch: proxyFetch,
170
- requestInit: { headers },
171
- });
172
- await client.connect(sseTransport);
173
- return createResultOk(client);
174
- } catch (error) {
175
- if (onUnauthorized && isUnauthorizedError(error)) {
176
- const newHeaders = await onUnauthorized(headers);
177
- if (newHeaders) {
178
- // Don't pass `onUnauthorized` to avoid possible infinite recursion
179
- return await connectMcpClient({
180
- headers: newHeaders,
181
- serverTransport,
182
- endpointUrl,
183
- name,
184
- version,
185
- });
186
- }
187
- }
188
-
189
- if (isUnauthorizedError(error) || isForbiddenError(error)) {
190
- return createResultError({ type: 'auth', error: error as Error });
191
- } else {
192
- return createResultError({ type: 'connection', error: error as Error });
193
- }
194
- }
195
- }
196
-
197
- export async function getAuthHeaders(
198
- ctx: Pick<IExecuteFunctions, 'getCredentials'>,
199
- authentication: McpAuthenticationOption,
200
- ): Promise<{ headers?: Record<string, string> }> {
201
- switch (authentication) {
202
- case 'headerAuth': {
203
- const header = await ctx
204
- .getCredentials<{ name: string; value: string }>('httpHeaderAuth')
205
- .catch(() => null);
206
-
207
- if (!header) return {};
208
-
209
- return { headers: { [header.name]: header.value } };
210
- }
211
- case 'bearerAuth': {
212
- const result = await ctx
213
- .getCredentials<{ token: string }>('httpBearerAuth')
214
- .catch(() => null);
215
-
216
- if (!result) return {};
217
-
218
- return { headers: { Authorization: `Bearer ${result.token}` } };
219
- }
220
- case 'mcpOAuth2Api': {
221
- const result = await ctx
222
- .getCredentials<{ oauthTokenData: { access_token: string } }>('mcpOAuth2Api')
223
- .catch(() => null);
224
-
225
- if (!result) return {};
226
-
227
- return { headers: { Authorization: `Bearer ${result.oauthTokenData.access_token}` } };
228
- }
229
- case 'multipleHeadersAuth': {
230
- const result = await ctx
231
- .getCredentials<{ headers: { values: Array<{ name: string; value: string }> } }>(
232
- 'httpMultipleHeadersAuth',
233
- )
234
- .catch(() => null);
235
-
236
- if (!result) return {};
237
-
238
- return {
239
- headers: result.headers.values.reduce(
240
- (acc, cur) => {
241
- acc[cur.name] = cur.value;
242
- return acc;
243
- },
244
- {} as Record<string, string>,
245
- ),
246
- };
247
- }
248
- case 'none':
249
- default: {
250
- return {};
251
- }
252
- }
253
- }
254
-
255
- /**
256
- * Tries to refresh the OAuth2 token, storing them in the database if successful
257
- * @param ctx - The execution context
258
- * @param authentication - The authentication method
259
- * @param headers - The headers to refresh
260
- * @returns The refreshed headers or null if the authentication method is not oAuth2Api or has failed
261
- */
262
- export async function tryRefreshOAuth2Token(
263
- ctx: IExecuteFunctions | ISupplyDataFunctions | ILoadOptionsFunctions,
264
- authentication: McpAuthenticationOption,
265
- headers?: Record<string, string>,
266
- ) {
267
- if (authentication !== 'mcpOAuth2Api') {
268
- return null;
269
- }
270
-
271
- let access_token: string | null = null;
272
- try {
273
- const result = (await ctx.helpers.refreshOAuth2Token.call(
274
- ctx,
275
- 'mcpOAuth2Api',
276
- )) as ClientOAuth2TokenData;
277
- access_token = result?.access_token;
278
- } catch (error) {
279
- return null;
280
- }
281
-
282
- if (!access_token) {
283
- return null;
284
- }
285
-
286
- if (!headers) {
287
- return {
288
- Authorization: `Bearer ${access_token}`,
289
- };
290
- }
291
-
292
- return {
293
- ...headers,
294
- Authorization: `Bearer ${access_token}`,
295
- };
296
- }
@@ -1,255 +0,0 @@
1
- {
2
- "name": "@n8n/n8n-nodes-langchain",
3
- "version": "2.1.0",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
- "clean": "rimraf dist .turbo",
8
- "dev": "pnpm run watch",
9
- "typecheck": "tsc --noEmit",
10
- "copy-nodes-json": "node ../../nodes-base/scripts/copy-nodes-json.js .",
11
- "copy-tokenizer-json": "node scripts/copy-tokenizer-json.js .",
12
- "build": "tsup --tsconfig tsconfig.build.json && pnpm copy-nodes-json && tsc-alias -p tsconfig.build.json && pnpm copy-tokenizer-json && pnpm n8n-copy-static-files && pnpm n8n-generate-metadata",
13
- "format": "biome format --write .",
14
- "format:check": "biome ci .",
15
- "lint": "eslint nodes credentials utils --quiet",
16
- "lint:fix": "eslint nodes credentials utils --fix",
17
- "watch": "tsup --watch nodes --watch credentials --watch utils --watch types --tsconfig tsconfig.build.json --onSuccess \"node ./scripts/post-build.js\"",
18
- "test": "jest",
19
- "test:unit": "jest",
20
- "test:dev": "jest --watch"
21
- },
22
- "files": [
23
- "dist"
24
- ],
25
- "n8n": {
26
- "n8nNodesApiVersion": 1,
27
- "credentials": [
28
- "dist/credentials/AnthropicApi.credentials.js",
29
- "dist/credentials/AzureAiSearchApi.credentials.js",
30
- "dist/credentials/AzureOpenAiApi.credentials.js",
31
- "dist/credentials/AzureEntraCognitiveServicesOAuth2Api.credentials.js",
32
- "dist/credentials/CohereApi.credentials.js",
33
- "dist/credentials/DeepSeekApi.credentials.js",
34
- "dist/credentials/GooglePalmApi.credentials.js",
35
- "dist/credentials/GroqApi.credentials.js",
36
- "dist/credentials/HuggingFaceApi.credentials.js",
37
- "dist/credentials/McpOAuth2Api.credentials.js",
38
- "dist/credentials/MotorheadApi.credentials.js",
39
- "dist/credentials/MilvusApi.credentials.js",
40
- "dist/credentials/MistralCloudApi.credentials.js",
41
- "dist/credentials/LemonadeApi.credentials.js",
42
- "dist/credentials/OllamaApi.credentials.js",
43
- "dist/credentials/OpenRouterApi.credentials.js",
44
- "dist/credentials/PineconeApi.credentials.js",
45
- "dist/credentials/QdrantApi.credentials.js",
46
- "dist/credentials/SearXngApi.credentials.js",
47
- "dist/credentials/SerpApi.credentials.js",
48
- "dist/credentials/VercelAiGatewayApi.credentials.js",
49
- "dist/credentials/WeaviateApi.credentials.js",
50
- "dist/credentials/WolframAlphaApi.credentials.js",
51
- "dist/credentials/XAiApi.credentials.js",
52
- "dist/credentials/XataApi.credentials.js",
53
- "dist/credentials/ZepApi.credentials.js"
54
- ],
55
- "nodes": [
56
- "dist/nodes/vendors/Anthropic/Anthropic.node.js",
57
- "dist/nodes/vendors/GoogleGemini/GoogleGemini.node.js",
58
- "dist/nodes/vendors/Ollama/Ollama.node.js",
59
- "dist/nodes/vendors/OpenAi/OpenAi.node.js",
60
- "dist/nodes/agents/Agent/Agent.node.js",
61
- "dist/nodes/agents/Agent/AgentTool.node.js",
62
- "dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js",
63
- "dist/nodes/chains/ChainSummarization/ChainSummarization.node.js",
64
- "dist/nodes/chains/ChainLLM/ChainLlm.node.js",
65
- "dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js",
66
- "dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.js",
67
- "dist/nodes/chains/InformationExtractor/InformationExtractor.node.js",
68
- "dist/nodes/chains/TextClassifier/TextClassifier.node.js",
69
- "dist/nodes/code/Code.node.js",
70
- "dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.js",
71
- "dist/nodes/document_loaders/DocumentBinaryInputLoader/DocumentBinaryInputLoader.node.js",
72
- "dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.js",
73
- "dist/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.js",
74
- "dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.js",
75
- "dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.js",
76
- "dist/nodes/embeddings/EmbeddingsAzureOpenAi/EmbeddingsAzureOpenAi.node.js",
77
- "dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.js",
78
- "dist/nodes/embeddings/EmbeddingsGoogleVertex/EmbeddingsGoogleVertex.node.js",
79
- "dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.js",
80
- "dist/nodes/embeddings/EmbeddingsMistralCloud/EmbeddingsMistralCloud.node.js",
81
- "dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js",
82
- "dist/nodes/embeddings/EmbeddingsLemonade/EmbeddingsLemonade.node.js",
83
- "dist/nodes/embeddings/EmbeddingsOllama/EmbeddingsOllama.node.js",
84
- "dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.js",
85
- "dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js",
86
- "dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.js",
87
- "dist/nodes/llms/LmChatCohere/LmChatCohere.node.js",
88
- "dist/nodes/llms/LmChatDeepSeek/LmChatDeepSeek.node.js",
89
- "dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.js",
90
- "dist/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.js",
91
- "dist/nodes/llms/LmChatGroq/LmChatGroq.node.js",
92
- "dist/nodes/llms/LmChatMistralCloud/LmChatMistralCloud.node.js",
93
- "dist/nodes/llms/LMChatLemonade/LmChatLemonade.node.js",
94
- "dist/nodes/llms/LMChatOllama/LmChatOllama.node.js",
95
- "dist/nodes/llms/LmChatOpenRouter/LmChatOpenRouter.node.js",
96
- "dist/nodes/llms/LmChatVercelAiGateway/LmChatVercelAiGateway.node.js",
97
- "dist/nodes/llms/LmChatXAiGrok/LmChatXAiGrok.node.js",
98
- "dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js",
99
- "dist/nodes/llms/LMOpenAi/LmOpenAi.node.js",
100
- "dist/nodes/llms/LMCohere/LmCohere.node.js",
101
- "dist/nodes/llms/LMLemonade/LmLemonade.node.js",
102
- "dist/nodes/llms/LMOllama/LmOllama.node.js",
103
- "dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js",
104
- "dist/nodes/mcp/McpClient/McpClient.node.js",
105
- "dist/nodes/mcp/McpClientTool/McpClientTool.node.js",
106
- "dist/nodes/mcp/McpTrigger/McpTrigger.node.js",
107
- "dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js",
108
- "dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.js",
109
- "dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.js",
110
- "dist/nodes/memory/MemoryMongoDbChat/MemoryMongoDbChat.node.js",
111
- "dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.js",
112
- "dist/nodes/memory/MemoryManager/MemoryManager.node.js",
113
- "dist/nodes/memory/MemoryChatRetriever/MemoryChatRetriever.node.js",
114
- "dist/nodes/memory/MemoryXata/MemoryXata.node.js",
115
- "dist/nodes/memory/MemoryZep/MemoryZep.node.js",
116
- "dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.js",
117
- "dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js",
118
- "dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js",
119
- "dist/nodes/rerankers/RerankerCohere/RerankerCohere.node.js",
120
- "dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js",
121
- "dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js",
122
- "dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js",
123
- "dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js",
124
- "dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js",
125
- "dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js",
126
- "dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js",
127
- "dist/nodes/tools/ToolCalculator/ToolCalculator.node.js",
128
- "dist/nodes/tools/ToolCode/ToolCode.node.js",
129
- "dist/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.js",
130
- "dist/nodes/tools/ToolSearXng/ToolSearXng.node.js",
131
- "dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.js",
132
- "dist/nodes/tools/ToolThink/ToolThink.node.js",
133
- "dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.js",
134
- "dist/nodes/tools/ToolWikipedia/ToolWikipedia.node.js",
135
- "dist/nodes/tools/ToolWolframAlpha/ToolWolframAlpha.node.js",
136
- "dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js",
137
- "dist/nodes/trigger/ManualChatTrigger/ManualChatTrigger.node.js",
138
- "dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js",
139
- "dist/nodes/trigger/ChatTrigger/Chat.node.js",
140
- "dist/nodes/vector_store/VectorStoreAzureAISearch/VectorStoreAzureAISearch.node.js",
141
- "dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js",
142
- "dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.js",
143
- "dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.js",
144
- "dist/nodes/vector_store/VectorStoreMilvus/VectorStoreMilvus.node.js",
145
- "dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.js",
146
- "dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js",
147
- "dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js",
148
- "dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js",
149
- "dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js",
150
- "dist/nodes/vector_store/VectorStoreRedis/VectorStoreRedis.node.js",
151
- "dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.js",
152
- "dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js",
153
- "dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js",
154
- "dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js",
155
- "dist/nodes/vector_store/VectorStoreWeaviate/VectorStoreWeaviate.node.js",
156
- "dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.js",
157
- "dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.js",
158
- "dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.js",
159
- "dist/nodes/ToolExecutor/ToolExecutor.node.js",
160
- "dist/nodes/ModelSelector/ModelSelector.node.js",
161
- "dist/nodes/Guardrails/Guardrails.node.js"
162
- ]
163
- },
164
- "devDependencies": {
165
- "@n8n/eslint-plugin-community-nodes": "workspace:*",
166
- "@types/basic-auth": "catalog:",
167
- "@types/cheerio": "^0.22.15",
168
- "@types/html-to-text": "^9.0.1",
169
- "@types/json-schema": "^7.0.15",
170
- "@types/mime-types": "catalog:",
171
- "@types/pg": "^8.11.6",
172
- "@types/sanitize-html": "^2.11.0",
173
- "@types/temp": "^0.9.1",
174
- "fast-glob": "catalog:",
175
- "jest-mock-extended": "^3.0.4",
176
- "n8n-core": "workspace:*",
177
- "tsup": "^8.5.0"
178
- },
179
- "dependencies": {
180
- "@aws-sdk/client-sso-oidc": "3.808.0",
181
- "@azure/identity": "catalog:",
182
- "@azure/search-documents": "12.1.0",
183
- "@getzep/zep-cloud": "1.0.6",
184
- "@getzep/zep-js": "0.9.0",
185
- "@google-cloud/resource-manager": "5.3.0",
186
- "@google/generative-ai": "0.21.0",
187
- "@google/genai": "1.19.0",
188
- "@huggingface/inference": "4.0.5",
189
- "@langchain/anthropic": "catalog:",
190
- "@langchain/aws": "1.0.3",
191
- "@langchain/cohere": "1.0.1",
192
- "@langchain/community": "catalog:",
193
- "@langchain/core": "catalog:",
194
- "@langchain/google-genai": "2.0.0",
195
- "@langchain/google-vertexai": "2.0.0",
196
- "@langchain/groq": "1.0.2",
197
- "@langchain/mistralai": "1.0.1",
198
- "@langchain/mongodb": "1.0.1",
199
- "@langchain/ollama": "1.0.2",
200
- "@langchain/openai": "catalog:",
201
- "@langchain/pinecone": "1.0.1",
202
- "@langchain/qdrant": "1.0.1",
203
- "@langchain/redis": "1.0.1",
204
- "@langchain/textsplitters": "1.0.1",
205
- "@langchain/weaviate": "1.0.1",
206
- "@modelcontextprotocol/sdk": "1.24.0",
207
- "@mozilla/readability": "0.6.0",
208
- "@n8n/client-oauth2": "workspace:*",
209
- "@n8n/config": "workspace:*",
210
- "@n8n/di": "workspace:*",
211
- "@n8n/errors": "workspace:*",
212
- "@n8n/json-schema-to-zod": "workspace:*",
213
- "@n8n/typeorm": "catalog:",
214
- "@n8n/typescript-config": "workspace:*",
215
- "@n8n/vm2": "3.9.25",
216
- "@pinecone-database/pinecone": "^5.0.2",
217
- "@qdrant/js-client-rest": "^1.16.2",
218
- "@supabase/supabase-js": "2.49.9",
219
- "@xata.io/client": "0.28.4",
220
- "@zilliz/milvus2-sdk-node": "^2.5.7",
221
- "basic-auth": "catalog:",
222
- "cheerio": "1.0.0",
223
- "cohere-ai": "7.14.0",
224
- "d3-dsv": "2.0.0",
225
- "epub2": "3.0.2",
226
- "form-data": "catalog:",
227
- "generate-schema": "2.6.0",
228
- "html-to-text": "9.0.5",
229
- "https-proxy-agent": "catalog:",
230
- "ignore": "^5.2.0",
231
- "js-tiktoken": "^1.0.12",
232
- "jsdom": "23.0.1",
233
- "langchain": "1.1.1",
234
- "@langchain/classic": "1.0.5",
235
- "lodash": "catalog:",
236
- "mammoth": "1.11.0",
237
- "mime-types": "catalog:",
238
- "mongodb": "^6.17.0",
239
- "n8n-nodes-base": "workspace:*",
240
- "n8n-workflow": "workspace:*",
241
- "openai": "^6.9.0",
242
- "pdf-parse": "1.1.1",
243
- "pg": "8.12.0",
244
- "proxy-from-env": "^1.1.0",
245
- "redis": "4.6.14",
246
- "sanitize-html": "2.12.1",
247
- "sqlite3": "5.1.7",
248
- "temp": "0.9.4",
249
- "tmp-promise": "3.0.3",
250
- "undici": "^6.21.0",
251
- "weaviate-client": "3.6.2",
252
- "zod": "catalog:",
253
- "zod-to-json-schema": "3.23.3"
254
- }
255
- }
package/tsconfig.json DELETED
@@ -1,32 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2022",
4
- "module": "commonjs",
5
- "lib": [
6
- "es2022"
7
- ],
8
- "declaration": true,
9
- "outDir": "./dist",
10
- "rootDir": "./nodes",
11
- "strict": true,
12
- "baseUrl": ".",
13
- "paths": {
14
- "@utils/*": [
15
- "nodes/shared/*"
16
- ]
17
- },
18
- "types": [],
19
- "esModuleInterop": true,
20
- "skipLibCheck": true,
21
- "forceConsistentCasingInFileNames": true
22
- },
23
- "include": [
24
- "nodes/**/*"
25
- ],
26
- "exclude": [
27
- "node_modules",
28
- "dist",
29
- "**/__test__/**",
30
- "**/*.test.ts"
31
- ]
32
- }
package/tsup.config.ts DELETED
@@ -1,16 +0,0 @@
1
- import { defineConfig } from 'tsup';
2
-
3
- export default defineConfig({
4
- entry: ['nodes/**/*.ts', '!nodes/**/*.test.ts', '!nodes/**/__test__/**'],
5
- format: ['cjs'],
6
- clean: true,
7
- dts: false,
8
- bundle: false,
9
- sourcemap: true,
10
- silent: true,
11
- outDir: 'dist',
12
- outExtension: () => ({ js: '.js' }),
13
- esbuildOptions(options) {
14
- options.outbase = 'nodes';
15
- },
16
- });