n8n-nodes-browser-smart-automation 0.1.1 → 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.
- package/dist/McpClientTool/McpClientTool.node.js +2 -13
- package/dist/McpClientTool/McpClientTool.node.js.map +1 -1
- package/dist/McpClientTool/utils.js +1 -1
- package/dist/McpClientTool/utils.js.map +1 -1
- package/dist/McpTrigger/McpTrigger.node.js +1 -1
- package/dist/McpTrigger/McpTrigger.node.js.map +1 -1
- package/dist/shared/N8nBinaryLoader.js +203 -0
- package/dist/shared/N8nBinaryLoader.js.map +1 -0
- package/dist/shared/N8nJsonLoader.js +89 -0
- package/dist/shared/N8nJsonLoader.js.map +1 -0
- package/dist/shared/N8nTool.js +106 -0
- package/dist/shared/N8nTool.js.map +1 -0
- package/dist/shared/embeddingInputValidation.js +55 -0
- package/dist/shared/embeddingInputValidation.js.map +1 -0
- package/dist/shared/helpers.js +220 -13
- package/dist/shared/helpers.js.map +1 -1
- package/dist/shared/httpProxyAgent.js +40 -2
- package/dist/shared/httpProxyAgent.js.map +1 -1
- package/dist/shared/logWrapper.js +347 -2
- package/dist/shared/logWrapper.js.map +1 -1
- package/dist/shared/schemaParsing.js +47 -4
- package/dist/shared/schemaParsing.js.map +1 -1
- package/dist/shared/sharedFields.js +142 -7
- package/dist/shared/sharedFields.js.map +1 -1
- package/dist/shared/typesN8nTool.js +17 -0
- package/dist/shared/typesN8nTool.js.map +1 -0
- package/dist/shared/utils.js +1 -1
- package/dist/shared/utils.js.map +1 -1
- package/package.json +23 -7
- package/jest.config.js +0 -24
- package/nodes/McpClient/McpClient.node.ts +0 -327
- package/nodes/McpClient/__test__/McpClient.node.test.ts +0 -221
- package/nodes/McpClient/__test__/utils.test.ts +0 -302
- package/nodes/McpClient/listSearch.ts +0 -48
- package/nodes/McpClient/resourceMapping.ts +0 -48
- package/nodes/McpClient/utils.ts +0 -281
- package/nodes/McpClientTool/McpClientTool.node.ts +0 -468
- package/nodes/McpClientTool/__test__/McpClientTool.node.test.ts +0 -730
- package/nodes/McpClientTool/loadOptions.ts +0 -45
- package/nodes/McpClientTool/types.ts +0 -1
- package/nodes/McpClientTool/utils.ts +0 -116
- package/nodes/McpTrigger/FlushingTransport.ts +0 -61
- package/nodes/McpTrigger/McpServer.ts +0 -317
- package/nodes/McpTrigger/McpTrigger.node.ts +0 -204
- package/nodes/McpTrigger/__test__/FlushingTransport.test.ts +0 -102
- package/nodes/McpTrigger/__test__/McpServer.test.ts +0 -532
- package/nodes/McpTrigger/__test__/McpTrigger.node.test.ts +0 -171
- package/nodes/shared/__test__/utils.test.ts +0 -318
- package/nodes/shared/descriptions.ts +0 -65
- package/nodes/shared/helpers.ts +0 -31
- package/nodes/shared/httpProxyAgent.ts +0 -11
- package/nodes/shared/logWrapper.ts +0 -13
- package/nodes/shared/schemaParsing.ts +0 -9
- package/nodes/shared/sharedFields.ts +0 -20
- package/nodes/shared/types.ts +0 -12
- package/nodes/shared/utils.ts +0 -296
- package/officail/package.json +0 -255
- package/tsconfig.json +0 -32
- package/tsup.config.ts +0 -13
package/nodes/shared/utils.ts
DELETED
|
@@ -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
|
-
}
|
package/officail/package.json
DELETED
|
@@ -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,13 +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
|
-
});
|