@n8n/n8n-nodes-langchain 2.37.2 → 2.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/node-definitions/.nodes-hash +1 -1
  2. package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_generate.schema.js +4 -3
  3. package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v1/resource_image/operation_generate.ts +33 -2
  4. package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v11/resource_image/operation_generate.schema.js +3 -2
  5. package/dist/node-definitions/nodes/n8n-nodes-langchain/alibabaCloud/v11/resource_image/operation_generate.ts +32 -1
  6. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v1.schema.js +1 -0
  7. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v1.ts +6 -0
  8. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v11.schema.js +1 -0
  9. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v11.ts +6 -0
  10. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v12.schema.js +1 -0
  11. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v12.ts +6 -0
  12. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v13.schema.js +1 -0
  13. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v13.ts +6 -0
  14. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v14.schema.js +1 -0
  15. package/dist/node-definitions/nodes/n8n-nodes-langchain/chatTrigger/v14.ts +6 -0
  16. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js +3 -1
  17. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js.map +1 -1
  18. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js +3 -1
  19. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js.map +1 -1
  20. package/dist/nodes/agents/Agent/agents/ToolsAgent/V2/execute.js +3 -1
  21. package/dist/nodes/agents/Agent/agents/ToolsAgent/V2/execute.js.map +1 -1
  22. package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/execute.js +3 -1
  23. package/dist/nodes/agents/Agent/agents/ToolsAgent/V3/execute.js.map +1 -1
  24. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +17 -4
  25. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
  26. package/dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.js +12 -3
  27. package/dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.js.map +1 -1
  28. package/dist/nodes/tools/ToolCode/ToolCode.node.js +3 -0
  29. package/dist/nodes/tools/ToolCode/ToolCode.node.js.map +1 -1
  30. package/dist/nodes/tools/ToolHttpRequest/utils.js +4 -6
  31. package/dist/nodes/tools/ToolHttpRequest/utils.js.map +1 -1
  32. package/dist/nodes/tools/ToolWorkflow/v1/ToolWorkflowV1.node.js +2 -0
  33. package/dist/nodes/tools/ToolWorkflow/v1/ToolWorkflowV1.node.js.map +1 -1
  34. package/dist/nodes/tools/ToolWorkflow/v2/utils/WorkflowToolService.js +19 -3
  35. package/dist/nodes/tools/ToolWorkflow/v2/utils/WorkflowToolService.js.map +1 -1
  36. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js +47 -5
  37. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js.map +1 -1
  38. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.d.ts +3 -0
  39. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js +81 -0
  40. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js.map +1 -1
  41. package/dist/nodes/trigger/ChatTrigger/shell.d.ts +9 -0
  42. package/dist/nodes/trigger/ChatTrigger/shell.js +62 -0
  43. package/dist/nodes/trigger/ChatTrigger/shell.js.map +1 -0
  44. package/dist/nodes/trigger/ChatTrigger/templates.d.ts +7 -2
  45. package/dist/nodes/trigger/ChatTrigger/templates.js +121 -27
  46. package/dist/nodes/trigger/ChatTrigger/templates.js.map +1 -1
  47. package/dist/nodes/trigger/ChatTrigger/types.d.ts +5 -1
  48. package/dist/nodes/trigger/ChatTrigger/types.js.map +1 -1
  49. package/dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.js +18 -7
  50. package/dist/nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.js.map +1 -1
  51. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.d.ts +8 -2
  52. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js +113 -46
  53. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js.map +1 -1
  54. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js +3 -3
  55. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js.map +1 -1
  56. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js +2 -2
  57. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js.map +1 -1
  58. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js +2 -2
  59. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js.map +1 -1
  60. package/dist/nodes/vector_store/shared/supabase.d.ts +2 -0
  61. package/dist/nodes/vector_store/shared/supabase.js +10 -0
  62. package/dist/nodes/vector_store/shared/supabase.js.map +1 -0
  63. package/dist/nodes/vendors/AlibabaCloud/actions/image/generate.operation.js +245 -22
  64. package/dist/nodes/vendors/AlibabaCloud/actions/image/generate.operation.js.map +1 -1
  65. package/dist/nodes/vendors/AlibabaCloud/helpers/interfaces.d.ts +2 -0
  66. package/dist/nodes/vendors/AlibabaCloud/helpers/wanImage.d.ts +13 -0
  67. package/dist/nodes/vendors/AlibabaCloud/helpers/wanImage.js +84 -0
  68. package/dist/nodes/vendors/AlibabaCloud/helpers/wanImage.js.map +1 -0
  69. package/dist/nodes/vendors/AlibabaCloud/methods/listSearch.js +2 -1
  70. package/dist/nodes/vendors/AlibabaCloud/methods/listSearch.js.map +1 -1
  71. package/dist/nodes/vendors/AlibabaCloud/transport/index.js +2 -2
  72. package/dist/nodes/vendors/AlibabaCloud/transport/index.js.map +1 -1
  73. package/dist/typecheck.tsbuildinfo +1 -1
  74. package/dist/types/nodes.json +2 -2
  75. package/dist/utils/output_parsers/langchainParserError.d.ts +1 -0
  76. package/dist/utils/output_parsers/langchainParserError.js +3 -3
  77. package/dist/utils/output_parsers/langchainParserError.js.map +1 -1
  78. package/dist/utils/sqlIdentifier.d.ts +5 -0
  79. package/dist/utils/sqlIdentifier.js +36 -0
  80. package/dist/utils/sqlIdentifier.js.map +1 -0
  81. package/package.json +15 -13
@@ -4,8 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.validateAuth = validateAuth;
7
+ exports.establishChatSessionIdentity = establishChatSessionIdentity;
8
+ exports.resolveInnerFrameIdentity = resolveInnerFrameIdentity;
7
9
  const basic_auth_1 = __importDefault(require("basic-auth"));
10
+ const n8n_workflow_1 = require("n8n-workflow");
8
11
  const error_1 = require("./error");
12
+ const shell_1 = require("./shell");
9
13
  async function validateAuth(context) {
10
14
  const authentication = context.getNodeParameter('authentication', 'none');
11
15
  const req = context.getRequestObject();
@@ -40,6 +44,21 @@ async function validateAuth(context) {
40
44
  }
41
45
  return '';
42
46
  }
47
+ const mode = context.getNodeParameter('mode', 'hostedChat');
48
+ if ((0, shell_1.isChatOAuth2Enabled)() && mode === 'hostedChat') {
49
+ const chatToken = headers['x-auth-token'];
50
+ if (typeof chatToken === 'string' && chatToken) {
51
+ const resourceUrl = context.getWebhookResourceUrl('default');
52
+ if (resourceUrl) {
53
+ const validation = await context.validateN8nOAuth2Token(chatToken, resourceUrl);
54
+ if (validation.valid) {
55
+ await context.establishTriggerIdentity(chatToken, resourceUrl, validation.user.id);
56
+ return;
57
+ }
58
+ }
59
+ throw new error_1.ChatTriggerAuthorizationError(401, 'Invalid authentication token');
60
+ }
61
+ }
43
62
  const authCookie = getCookie('n8n-auth');
44
63
  if (!authCookie) {
45
64
  throw new error_1.ChatTriggerAuthorizationError(401, 'User not authenticated!');
@@ -54,4 +73,66 @@ async function validateAuth(context) {
54
73
  }
55
74
  return;
56
75
  }
76
+ async function establishChatSessionIdentity(context, resourceUrl) {
77
+ const req = context.getRequestObject();
78
+ const res = context.getResponseObject();
79
+ const { code, state } = req.query;
80
+ if (typeof req.query.error === 'string') {
81
+ context.logger.warn('Chat OAuth2 authorization was denied or failed', {
82
+ error: req.query.error,
83
+ });
84
+ res.status(403).send('Access denied');
85
+ res.end();
86
+ return false;
87
+ }
88
+ if (typeof code === 'string' && typeof state === 'string') {
89
+ try {
90
+ const result = await context.completeN8nOAuth2Flow(code, state);
91
+ if (result.valid) {
92
+ (0, shell_1.setChatOAuthToken)(res, req, resourceUrl, result.token);
93
+ const redirectPath = req.originalUrl.split('?')[0];
94
+ res.writeHead(302, { Location: redirectPath });
95
+ res.end();
96
+ return false;
97
+ }
98
+ context.logger.warn('Chat OAuth2 flow failed, restarting', { reason: result.reason });
99
+ }
100
+ catch (error) {
101
+ context.logger.warn('Chat OAuth2 flow failed, restarting', { error });
102
+ }
103
+ }
104
+ else {
105
+ const cookieToken = (0, shell_1.readChatOAuthToken)(req);
106
+ if (cookieToken) {
107
+ const validation = await context.validateN8nOAuth2Token(cookieToken, resourceUrl);
108
+ if (validation.valid) {
109
+ return true;
110
+ }
111
+ }
112
+ }
113
+ try {
114
+ const authorizationUrl = await context.beginN8nOAuth2Flow(resourceUrl);
115
+ res.writeHead(302, { Location: authorizationUrl });
116
+ res.end();
117
+ }
118
+ catch (error) {
119
+ context.logger.warn('Chat OAuth2 flow failed', { error });
120
+ throw new n8n_workflow_1.UnexpectedError('Chat OAuth2 flow failed');
121
+ }
122
+ return false;
123
+ }
124
+ async function resolveInnerFrameIdentity(context, resourceUrl) {
125
+ const req = context.getRequestObject();
126
+ const res = context.getResponseObject();
127
+ const cookieToken = (0, shell_1.readChatOAuthToken)(req);
128
+ if (!cookieToken) {
129
+ return null;
130
+ }
131
+ (0, shell_1.clearChatOAuthToken)(res, req, resourceUrl);
132
+ const validation = await context.validateN8nOAuth2Token(cookieToken, resourceUrl);
133
+ if (!validation.valid) {
134
+ return null;
135
+ }
136
+ return { visitor: validation.user, authToken: cookieToken };
137
+ }
57
138
  //# sourceMappingURL=GenericFunctions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/GenericFunctions.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAmC;AAGnC,mCAAwD;AAGjD,KAAK,uBAAuB,OAA0B;IAC5D,MAAM,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAC9C,gBAAgB,EAChB,MAAM,CACsB,CAAC;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAExC,IAAI,cAAc,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO;IACR,CAAC;SAAM,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QAE3C,IAAI,YAAwD,CAAC;QAC7D,IAAI,CAAC;YACJ,YAAY,GAAG,MAAM,OAAO,CAAC,cAAc,CAAiC,eAAe,CAAC,CAAC;QAC9F,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,YAAY,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAEhF,MAAM,IAAI,qCAA6B,CAAC,GAAG,EAAE,yCAAyC,CAAC,CAAC;QACzF,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,oBAAS,EAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,qCAA6B,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,IAAI,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,QAAQ,EAAE,CAAC;YAE5F,MAAM,IAAI,qCAA6B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;SAAM,IAAI,cAAc,KAAK,aAAa,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAE7C,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;YAC7B,SAAS,SAAS,CAAC,IAAY;gBAC9B,MAAM,KAAK,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC;gBAExC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxC,CAAC;gBACD,OAAO,EAAE,CAAC;YACX,CAAC;YAED,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,MAAM,IAAI,qCAA6B,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;YACzE,CAAC;YAED,IAAI,CAAC;gBACJ,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,IAAI,qCAA6B,CAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;YAC9E,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO;AACR,CAAC"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { Request, Response } from 'express';
2
+ export declare function isChatOAuth2Enabled(): boolean;
3
+ export declare const CHAT_SHELL_INNER_PARAM = "n8nShellInner";
4
+ export declare const CHAT_FRAME_SANDBOX = "allow-scripts allow-forms allow-modals allow-popups";
5
+ export declare function isShellInnerRequest(req: Request): boolean;
6
+ export declare function buildInnerFrameSrc(req: Request): string;
7
+ export declare function setChatOAuthToken(res: Response, req: Request, resourceUrl: string, token: string): void;
8
+ export declare function readChatOAuthToken(req: Request): string | null;
9
+ export declare function clearChatOAuthToken(res: Response, req: Request, resourceUrl: string): void;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CHAT_FRAME_SANDBOX = exports.CHAT_SHELL_INNER_PARAM = void 0;
4
+ exports.isChatOAuth2Enabled = isChatOAuth2Enabled;
5
+ exports.isShellInnerRequest = isShellInnerRequest;
6
+ exports.buildInnerFrameSrc = buildInnerFrameSrc;
7
+ exports.setChatOAuthToken = setChatOAuthToken;
8
+ exports.readChatOAuthToken = readChatOAuthToken;
9
+ exports.clearChatOAuthToken = clearChatOAuthToken;
10
+ function isChatOAuth2Enabled() {
11
+ return process.env.N8N_ENV_FEAT_CHAT_TRIGGER_OAUTH2 === 'true';
12
+ }
13
+ exports.CHAT_SHELL_INNER_PARAM = 'n8nShellInner';
14
+ exports.CHAT_FRAME_SANDBOX = 'allow-scripts allow-forms allow-modals allow-popups';
15
+ function isShellInnerRequest(req) {
16
+ if (req.query[exports.CHAT_SHELL_INNER_PARAM] !== '1')
17
+ return false;
18
+ return req.headers['sec-fetch-dest'] === 'iframe';
19
+ }
20
+ function buildInnerFrameSrc(req) {
21
+ const [path, query] = req.originalUrl.split('?');
22
+ const params = new URLSearchParams(query);
23
+ params.set(exports.CHAT_SHELL_INNER_PARAM, '1');
24
+ return `${path}?${params.toString()}`;
25
+ }
26
+ const CHAT_OAUTH_COOKIE_NAME = 'n8n-chat-oauth';
27
+ function isSecureRequest(req) {
28
+ const forwardedProto = req.headers['x-forwarded-proto'];
29
+ const firstValue = Array.isArray(forwardedProto) ? forwardedProto[0] : forwardedProto;
30
+ const proto = firstValue?.split(',')[0]?.trim() || req.protocol;
31
+ return proto === 'https';
32
+ }
33
+ function chatOAuthCookieOptions(req, resourceUrl) {
34
+ return {
35
+ httpOnly: true,
36
+ sameSite: 'lax',
37
+ secure: isSecureRequest(req),
38
+ path: new URL(resourceUrl).pathname,
39
+ };
40
+ }
41
+ function setChatOAuthToken(res, req, resourceUrl, token) {
42
+ res.cookie(CHAT_OAUTH_COOKIE_NAME, token, {
43
+ ...chatOAuthCookieOptions(req, resourceUrl),
44
+ maxAge: 60_000,
45
+ });
46
+ }
47
+ function decodeCookieValue(value) {
48
+ try {
49
+ return decodeURIComponent(value.trim());
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ }
55
+ function readChatOAuthToken(req) {
56
+ const match = (req.headers.cookie ?? '').match(/(?:^|;\s*)n8n-chat-oauth=([^;]+)/);
57
+ return match ? decodeCookieValue(match[1]) : null;
58
+ }
59
+ function clearChatOAuthToken(res, req, resourceUrl) {
60
+ res.clearCookie(CHAT_OAUTH_COOKIE_NAME, chatOAuthCookieOptions(req, resourceUrl));
61
+ }
62
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/shell.ts"],"names":[],"mappings":";;;;;;;;;AAGA;IACC,OAAO,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,MAAM,CAAC;AAChE,CAAC;AAGY,QAAA,sBAAsB,GAAG,eAAe,CAAC;AASzC,QAAA,kBAAkB,GAAG,qDAAqD,CAAC;AAQxF,6BAAoC,GAAY;IAC/C,IAAI,GAAG,CAAC,KAAK,CAAC,QAAA,sBAAsB,CAAC,KAAK,GAAG;QAAE,OAAO,KAAK,CAAC;IAC5D,OAAO,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC;AACnD,CAAC;AAGD,4BAAmC,GAAY;IAC9C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,QAAA,sBAAsB,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AACvC,CAAC;AAOD,MAAM,sBAAsB,GAAG,gBAAgB,CAAC;AAOhD,SAAS,eAAe,CAAC,GAAY;IACpC,MAAM,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAIxD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACtF,MAAM,KAAK,GAAG,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC;IAChE,OAAO,KAAK,KAAK,OAAO,CAAC;AAC1B,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAY,EAAE,WAAmB;IAChE,OAAO;QACN,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,KAAc;QACxB,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC;QAC5B,IAAI,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,QAAQ;KACnC,CAAC;AACH,CAAC;AAED,2BACC,GAAa,EACb,GAAY,EACZ,WAAmB,EACnB,KAAa;IAEb,GAAG,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE;QACzC,GAAG,sBAAsB,CAAC,GAAG,EAAE,WAAW,CAAC;QAC3C,MAAM,EAAE,MAAM;KACd,CAAC,CAAC;AACJ,CAAC;AAOD,SAAS,iBAAiB,CAAC,KAAa;IACvC,IAAI,CAAC;QACJ,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,4BAAmC,GAAY;IAC9C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,6BAAoC,GAAa,EAAE,GAAY,EAAE,WAAmB;IACnF,GAAG,CAAC,WAAW,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AACnF,CAAC"}
@@ -1,9 +1,13 @@
1
- import type { AuthenticationChatOption, LoadPreviousSessionChatOption } from './types';
1
+ import type { AuthenticationChatOption, ChatFrameIdentity, LoadPreviousSessionChatOption } from './types';
2
2
  export declare function getSanitizedInitialMessages(initialMessages: string): string[];
3
3
  export declare function escapeForScriptContext(value: string | object): string;
4
+ export declare function escapeForHtmlAttribute(value: string): string;
4
5
  export declare function getSanitizedI18nConfig(config: Record<string, string>): Record<string, string>;
5
6
  export declare function getSanitizedCustomCss(customCss: string): string;
6
- export declare function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSession, i18n: { en }, initialMessages, authentication, allowFileUploads, allowedFilesMimeTypes, customCss, enableStreaming, }: {
7
+ export declare function createShellPage({ iframeSrc }: {
8
+ iframeSrc: string;
9
+ }): string;
10
+ export declare function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSession, i18n: { en }, initialMessages, authentication, allowFileUploads, allowedFilesMimeTypes, customCss, enableStreaming, frameIdentity, }: {
7
11
  instanceId: string;
8
12
  webhookUrl?: string;
9
13
  showWelcomeScreen?: boolean;
@@ -18,4 +22,5 @@ export declare function createPage({ instanceId, webhookUrl, showWelcomeScreen,
18
22
  allowedFilesMimeTypes?: string;
19
23
  customCss?: string;
20
24
  enableStreaming?: boolean;
25
+ frameIdentity?: ChatFrameIdentity;
21
26
  }): string;
@@ -5,10 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getSanitizedInitialMessages = getSanitizedInitialMessages;
7
7
  exports.escapeForScriptContext = escapeForScriptContext;
8
+ exports.escapeForHtmlAttribute = escapeForHtmlAttribute;
8
9
  exports.getSanitizedI18nConfig = getSanitizedI18nConfig;
9
10
  exports.getSanitizedCustomCss = getSanitizedCustomCss;
11
+ exports.createShellPage = createShellPage;
10
12
  exports.createPage = createPage;
11
13
  const sanitize_html_1 = __importDefault(require("sanitize-html"));
14
+ const shell_1 = require("./shell");
12
15
  function sanitizeUserInput(input) {
13
16
  const value = typeof input === 'string' ? input : typeof input === 'number' ? String(input) : '';
14
17
  let sanitized = (0, sanitize_html_1.default)(value, {
@@ -37,6 +40,16 @@ const SCRIPT_CONTEXT_ESCAPES = {
37
40
  function escapeForScriptContext(value) {
38
41
  return JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (c) => SCRIPT_CONTEXT_ESCAPES[c]);
39
42
  }
43
+ const HTML_ATTRIBUTE_ESCAPES = {
44
+ '&': '&amp;',
45
+ '"': '&quot;',
46
+ "'": '&#39;',
47
+ '<': '&lt;',
48
+ '>': '&gt;',
49
+ };
50
+ function escapeForHtmlAttribute(value) {
51
+ return value.replace(/[&"'<>]/g, (c) => HTML_ATTRIBUTE_ESCAPES[c]);
52
+ }
40
53
  function getSanitizedI18nConfig(config) {
41
54
  const sanitized = {};
42
55
  for (const [key, value] of Object.entries(config)) {
@@ -47,7 +60,74 @@ function getSanitizedI18nConfig(config) {
47
60
  function getSanitizedCustomCss(customCss) {
48
61
  return customCss.replace(/<\/style/gi, '');
49
62
  }
50
- function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSession, i18n: { en }, initialMessages, authentication, allowFileUploads, allowedFilesMimeTypes, customCss, enableStreaming, }) {
63
+ const WIDGET_SESSION_ID_KEY = 'n8n-chat/sessionId';
64
+ const innerBootstrapScript = `
65
+ <script>
66
+ (function () {
67
+ var store = Object.create(null);
68
+ var shim = {
69
+ getItem: function (key) { return key in store ? store[key] : null; },
70
+ setItem: function (key, value) { store[key] = String(value); },
71
+ removeItem: function (key) { delete store[key]; },
72
+ clear: function () { store = Object.create(null); },
73
+ key: function (index) {
74
+ var keys = Object.keys(store);
75
+ return index < keys.length ? keys[index] : null;
76
+ },
77
+ get length() { return Object.keys(store).length; },
78
+ };
79
+ try {
80
+ Object.defineProperty(window, 'localStorage', { value: shim, configurable: true });
81
+ } catch (error) {}
82
+
83
+ var match = /(?:^|&)sessionId=([^&]*)/.exec(window.location.hash.slice(1));
84
+ window.__n8nChatSessionId = match ? decodeURIComponent(match[1]) : '';
85
+ if (window.__n8nChatSessionId) {
86
+ shim.setItem(${escapeForScriptContext(WIDGET_SESSION_ID_KEY)}, window.__n8nChatSessionId);
87
+ }
88
+ })();
89
+ </script>`;
90
+ function createShellPage({ iframeSrc }) {
91
+ return `<!doctype html>
92
+ <html lang="en">
93
+ <head>
94
+ <meta charset="utf-8">
95
+ <meta name="viewport" content="width=device-width, initial-scale=1">
96
+ <title>Chat</title>
97
+ <style>
98
+ html, body { width: 100%; height: 100%; margin: 0; padding: 0; }
99
+ #n8n-chat-frame { display: block; width: 100%; height: 100%; border: 0; }
100
+ </style>
101
+ </head>
102
+ <body>
103
+ <iframe
104
+ id="n8n-chat-frame"
105
+ title="Chat"
106
+ sandbox="${shell_1.CHAT_FRAME_SANDBOX}"
107
+ data-src="${escapeForHtmlAttribute(iframeSrc)}"
108
+ ></iframe>
109
+ <script>
110
+ (function () {
111
+ // Held here, not in the frame, whose storage dies with its opaque origin on
112
+ // every reload. Keyed by path so two chats don't share a conversation.
113
+ var key = 'n8n-chat-shell/sessionId' + window.location.pathname;
114
+ var sessionId = '';
115
+ try { sessionId = window.localStorage.getItem(key) || ''; } catch (error) {}
116
+ if (!sessionId) {
117
+ sessionId =
118
+ window.crypto && window.crypto.randomUUID
119
+ ? window.crypto.randomUUID()
120
+ : String(Date.now()) + Math.random().toString(16).slice(2);
121
+ try { window.localStorage.setItem(key, sessionId); } catch (error) {}
122
+ }
123
+ var frame = document.getElementById('n8n-chat-frame');
124
+ frame.src = frame.getAttribute('data-src') + '#sessionId=' + encodeURIComponent(sessionId);
125
+ })();
126
+ </script>
127
+ </body>
128
+ </html>`;
129
+ }
130
+ function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSession, i18n: { en }, initialMessages, authentication, allowFileUploads, allowedFilesMimeTypes, customCss, enableStreaming, frameIdentity, }) {
51
131
  const validAuthenticationOptions = [
52
132
  'none',
53
133
  'basicAuth',
@@ -70,32 +150,14 @@ function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSes
70
150
  : 'notSupported';
71
151
  const sanitizedInitialMessages = getSanitizedInitialMessages(initialMessages);
72
152
  const sanitizedI18nConfig = getSanitizedI18nConfig(en || {});
73
- return `<!doctype html>
74
- <html lang="en">
75
- <head>
76
- <meta charset="utf-8">
77
- <meta name="viewport" content="width=device-width, initial-scale=1">
78
- <title>Chat</title>
79
- <link href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css" rel="stylesheet" />
80
- <link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
81
- <style>
82
- html,
83
- body,
84
- #n8n-chat {
85
- width: 100%;
86
- height: 100%;
87
- }
88
- </style>
89
- <style>${sanitizedCustomCss}</style>
90
- </head>
91
- <body>
92
- <script type="module">
93
- import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';
94
-
95
- (async function () {
96
- const authentication = '${sanitizedAuthentication}';
153
+ const shellInner = frameIdentity !== undefined;
154
+ const identityBootstrap = !frameIdentity
155
+ ? `const authentication = '${sanitizedAuthentication}';
156
+ const injectedVisitor = null;
97
157
  let metadata;
98
- if (authentication === 'n8nUserAuth') {
158
+ if (injectedVisitor) {
159
+ metadata = { user: injectedVisitor };
160
+ } else if (authentication === 'n8nUserAuth') {
99
161
  try {
100
162
  const response = await fetch('/rest/login', {
101
163
  method: 'GET',
@@ -119,7 +181,37 @@ function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSes
119
181
  window.location.href = '/signin?redirect=' + window.location.href;
120
182
  return;
121
183
  }
122
- }
184
+ }`
185
+ : `const metadata = { user: ${escapeForScriptContext({
186
+ id: frameIdentity.visitor.id,
187
+ firstName: frameIdentity.visitor.firstName,
188
+ lastName: frameIdentity.visitor.lastName,
189
+ email: frameIdentity.visitor.email,
190
+ })} };`;
191
+ return `<!doctype html>
192
+ <html lang="en">
193
+ <head>
194
+ <meta charset="utf-8">
195
+ <meta name="viewport" content="width=device-width, initial-scale=1">
196
+ <title>Chat</title>
197
+ <link href="https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css" rel="stylesheet" />
198
+ <link href="https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css" rel="stylesheet" />
199
+ <style>
200
+ html,
201
+ body,
202
+ #n8n-chat {
203
+ width: 100%;
204
+ height: 100%;
205
+ }
206
+ </style>
207
+ <style>${sanitizedCustomCss}</style>
208
+ </head>
209
+ <body>${shellInner ? innerBootstrapScript : ''}
210
+ <script type="module">
211
+ import { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';
212
+
213
+ (async function () {
214
+ ${identityBootstrap}
123
215
 
124
216
  createChat({
125
217
  mode: 'fullscreen',
@@ -127,9 +219,11 @@ function createPage({ instanceId, webhookUrl, showWelcomeScreen, loadPreviousSes
127
219
  showWelcomeScreen: ${sanitizedShowWelcomeScreen},
128
220
  loadPreviousSession: ${sanitizedLoadPreviousSession !== 'notSupported'},
129
221
  metadata: metadata,
222
+ ${shellInner ? 'sessionId: window.__n8nChatSessionId || undefined,' : ''}
130
223
  webhookConfig: {
131
224
  headers: {
132
225
  'X-Instance-Id': '${instanceId}',
226
+ ${frameIdentity ? `'x-auth-token': ${escapeForScriptContext(frameIdentity.authToken)},` : ''}
133
227
  }
134
228
  },
135
229
  allowFileUploads: ${sanitizedAllowFileUploads},
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/templates.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- import type { INode } from 'n8n-workflow';
1
+ import type { INode, IUser } from 'n8n-workflow';
2
2
  declare const validOptions: readonly ['notSupported', 'memory', 'manually'];
3
3
  export type AuthenticationChatOption = 'none' | 'basicAuth' | 'n8nUserAuth';
4
4
  export type LoadPreviousSessionChatOption = (typeof validOptions)[number];
5
+ export type ChatFrameIdentity = {
6
+ visitor: IUser;
7
+ authToken: string;
8
+ };
5
9
  export declare function assertValidLoadPreviousSessionOption(value: string | undefined, node: INode): asserts value is LoadPreviousSessionChatOption | undefined;
6
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/types.ts"],"names":[],"mappings":";;;AACA,+CAAkD;AAElD,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAIrE,SAAS,gCAAgC,CAAC,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,8CACC,KAAyB,EACzB,IAAW;IAEX,IAAI,KAAK,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,uCAAuC,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/trigger/ChatTrigger/types.ts"],"names":[],"mappings":";;;AACA,+CAAkD;AAElD,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAU,CAAC;AAYrE,SAAS,gCAAgC,CAAC,KAAc;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,YAAkC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,8CACC,KAAyB,EACzB,IAAW;IAEX,IAAI,KAAK,IAAI,CAAC,gCAAgC,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,iCAAkB,CAAC,IAAI,EAAE,uCAAuC,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;AACF,CAAC"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ChatHubVectorStorePGVector = void 0;
4
- const pgvector_1 = require("@langchain/community/vectorstores/pgvector");
5
4
  const ai_utilities_1 = require("@n8n/ai-utilities");
6
5
  const index_1 = require("n8n-nodes-base/dist/nodes/Postgres/transport/index");
7
6
  const credentialTest_1 = require("n8n-nodes-base/dist/nodes/Postgres/v2/methods/credentialTest");
8
7
  const n8n_workflow_1 = require("n8n-workflow");
8
+ const sqlIdentifier_1 = require("../../../utils/sqlIdentifier");
9
+ const chatHub_1 = require("../shared/chatHub");
9
10
  const userScoped_1 = require("../shared/userScoped");
10
11
  const VectorStorePGVector_node_1 = require("../VectorStorePGVector/VectorStorePGVector.node");
11
- const chatHub_1 = require("../shared/chatHub");
12
12
  const retrieveFields = [
13
13
  {
14
14
  displayName: 'Options',
@@ -26,7 +26,7 @@ async function deleteDocuments(payload) {
26
26
  const pgConf = await index_1.configurePostgres.call(this, credentials);
27
27
  const pool = pgConf.db.$pool;
28
28
  if (!filter || Object.keys(filter).length === 0) {
29
- await pool.query(`DROP TABLE IF EXISTS "${tableName}"`);
29
+ await pool.query(`DROP TABLE IF EXISTS ${(0, sqlIdentifier_1.escapeQualifiedSqlIdentifier)(tableName)}`);
30
30
  return null;
31
31
  }
32
32
  const conditions = [];
@@ -42,7 +42,7 @@ async function deleteDocuments(payload) {
42
42
  values.push(key, value);
43
43
  paramIndex += 2;
44
44
  }
45
- await pool.query(`DELETE FROM "${tableName}" WHERE ${conditions.join(' AND ')}`, values);
45
+ await pool.query(`DELETE FROM ${(0, sqlIdentifier_1.escapeQualifiedSqlIdentifier)(tableName)} WHERE ${conditions.join(' AND ')}`, values);
46
46
  return null;
47
47
  }
48
48
  async function chatHubVectorStorePGVectorApiConnectionTest(credential) {
@@ -110,7 +110,10 @@ class ChatHubVectorStorePGVector extends (0, ai_utilities_1.createVectorStoreNod
110
110
  tableName,
111
111
  filter,
112
112
  };
113
- const store = await VectorStorePGVector_node_1.ExtendedPGVectorStore.initialize(embeddings, config);
113
+ const store = await VectorStorePGVector_node_1.ExtendedPGVectorStore.initialize(embeddings, {
114
+ ...config,
115
+ n8nNode: context.getNode(),
116
+ });
114
117
  const originalSearch = store.similaritySearchVectorWithScore.bind(store);
115
118
  store.similaritySearchVectorWithScore = async (...args) => {
116
119
  const results = await originalSearch(...args);
@@ -130,8 +133,16 @@ class ChatHubVectorStorePGVector extends (0, ai_utilities_1.createVectorStoreNod
130
133
  pool,
131
134
  tableName,
132
135
  };
133
- const vectorStore = await pgvector_1.PGVectorStore.fromDocuments((0, chatHub_1.filterChatHubInsertDocuments)(documents), embeddings, config);
134
- vectorStore.client?.release();
136
+ const vectorStore = await VectorStorePGVector_node_1.ExtendedPGVectorStore.initialize(embeddings, {
137
+ ...config,
138
+ n8nNode: context.getNode(),
139
+ });
140
+ try {
141
+ await vectorStore.addDocuments((0, chatHub_1.filterChatHubInsertDocuments)(documents));
142
+ }
143
+ finally {
144
+ vectorStore.client?.release();
145
+ }
135
146
  },
136
147
  releaseVectorStoreClient(vectorStore) {
137
148
  vectorStore.client?.release();
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHubVectorStorePGVector.node.js","sourceRoot":"","sources":["../../../../nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatHubVectorStorePGVector.node.js","sourceRoot":"","sources":["../../../../nodes/vector_store/ChatHubVectorStorePGVector/ChatHubVectorStorePGVector.node.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  import { PGVectorStore, type PGVectorStoreArgs } from '@langchain/community/vectorstores/pgvector';
2
2
  import type { EmbeddingsInterface } from '@langchain/core/embeddings';
3
+ import type { IExecuteFunctions, INode, ISupplyDataFunctions } from 'n8n-workflow';
3
4
  export declare class ExtendedPGVectorStore extends PGVectorStore {
5
+ n8nNode: INode;
6
+ get computedTableName(): string;
7
+ get computedCollectionTableName(): string;
8
+ ensureCollectionTableInDatabase(): Promise<void>;
4
9
  static initialize(embeddings: EmbeddingsInterface, args: PGVectorStoreArgs & {
5
10
  dimensions?: number;
11
+ n8nNode: INode;
6
12
  }): Promise<ExtendedPGVectorStore>;
7
13
  similaritySearchVectorWithScore(query: number[], k: number, filter?: PGVectorStore['FilterType']): Promise<[import("@langchain/core/documents").Document<Record<string, any>>, number][]>;
8
14
  }
@@ -19,8 +25,8 @@ declare const VectorStorePGVector_base: new () => {
19
25
  [functionName: string]: import("n8n-workflow").ICredentialTestFunction;
20
26
  };
21
27
  } | undefined;
22
- execute(this: import("n8n-workflow").IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
23
- supplyData(this: import("n8n-workflow").ISupplyDataFunctions, itemIndex: number): Promise<import("n8n-workflow").SupplyData>;
28
+ execute(this: IExecuteFunctions): Promise<import("n8n-workflow").INodeExecutionData[][]>;
29
+ supplyData(this: ISupplyDataFunctions, itemIndex: number): Promise<import("n8n-workflow").SupplyData>;
24
30
  };
25
31
  export declare class VectorStorePGVector extends VectorStorePGVector_base {
26
32
  }