@n8n/n8n-nodes-langchain 1.122.38 → 1.122.39
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.
|
@@ -29,6 +29,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
29
|
var templates_exports = {};
|
|
30
30
|
__export(templates_exports, {
|
|
31
31
|
createPage: () => createPage,
|
|
32
|
+
escapeForScriptContext: () => escapeForScriptContext,
|
|
32
33
|
getSanitizedCustomCss: () => getSanitizedCustomCss,
|
|
33
34
|
getSanitizedI18nConfig: () => getSanitizedI18nConfig,
|
|
34
35
|
getSanitizedInitialMessages: () => getSanitizedInitialMessages
|
|
@@ -49,6 +50,16 @@ function getSanitizedInitialMessages(initialMessages) {
|
|
|
49
50
|
const sanitizedString = sanitizeUserInput(initialMessages);
|
|
50
51
|
return sanitizedString.split("\n").map((line) => line.trim()).filter((line) => line !== "");
|
|
51
52
|
}
|
|
53
|
+
const SCRIPT_CONTEXT_ESCAPES = {
|
|
54
|
+
"<": "\\u003c",
|
|
55
|
+
">": "\\u003e",
|
|
56
|
+
"&": "\\u0026",
|
|
57
|
+
"\u2028": "\\u2028",
|
|
58
|
+
"\u2029": "\\u2029"
|
|
59
|
+
};
|
|
60
|
+
function escapeForScriptContext(value) {
|
|
61
|
+
return JSON.stringify(value).replace(/[<>&\u2028\u2029]/g, (c) => SCRIPT_CONTEXT_ESCAPES[c]);
|
|
62
|
+
}
|
|
52
63
|
function getSanitizedI18nConfig(config) {
|
|
53
64
|
const sanitized = {};
|
|
54
65
|
for (const [key, value] of Object.entries(config)) {
|
|
@@ -145,7 +156,7 @@ function createPage({
|
|
|
145
156
|
|
|
146
157
|
createChat({
|
|
147
158
|
mode: 'fullscreen',
|
|
148
|
-
webhookUrl:
|
|
159
|
+
webhookUrl: ${escapeForScriptContext(webhookUrl ?? "")},
|
|
149
160
|
showWelcomeScreen: ${sanitizedShowWelcomeScreen},
|
|
150
161
|
loadPreviousSession: ${sanitizedLoadPreviousSession !== "notSupported"},
|
|
151
162
|
metadata: metadata,
|
|
@@ -156,11 +167,11 @@ function createPage({
|
|
|
156
167
|
}
|
|
157
168
|
},
|
|
158
169
|
allowFileUploads: ${sanitizedAllowFileUploads},
|
|
159
|
-
allowedFilesMimeTypes: ${
|
|
170
|
+
allowedFilesMimeTypes: ${escapeForScriptContext(sanitizedAllowedFilesMimeTypes)},
|
|
160
171
|
i18n: {
|
|
161
|
-
${Object.keys(sanitizedI18nConfig).length ? `en: ${
|
|
172
|
+
${Object.keys(sanitizedI18nConfig).length ? `en: ${escapeForScriptContext(sanitizedI18nConfig)},` : ""}
|
|
162
173
|
},
|
|
163
|
-
${sanitizedInitialMessages.length ? `initialMessages: ${
|
|
174
|
+
${sanitizedInitialMessages.length ? `initialMessages: ${escapeForScriptContext(sanitizedInitialMessages)},` : ""}
|
|
164
175
|
enableStreaming: ${!!enableStreaming},
|
|
165
176
|
});
|
|
166
177
|
})();
|
|
@@ -171,6 +182,7 @@ function createPage({
|
|
|
171
182
|
// Annotate the CommonJS export names for ESM import in node:
|
|
172
183
|
0 && (module.exports = {
|
|
173
184
|
createPage,
|
|
185
|
+
escapeForScriptContext,
|
|
174
186
|
getSanitizedCustomCss,
|
|
175
187
|
getSanitizedI18nConfig,
|
|
176
188
|
getSanitizedInitialMessages
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../nodes/trigger/ChatTrigger/templates.ts"],"sourcesContent":["import sanitizeHtml from 'sanitize-html';\n\nimport type { AuthenticationChatOption, LoadPreviousSessionChatOption } from './types';\n\nfunction sanitizeUserInput(input: string): string {\n\t// Sanitize HTML tags and entities\n\tlet sanitized = sanitizeHtml(input, {\n\t\tallowedTags: [],\n\t\tallowedAttributes: {},\n\t});\n\t// Remove dangerous protocols\n\tsanitized = sanitized.replace(/javascript:/gi, '');\n\tsanitized = sanitized.replace(/data:/gi, '');\n\tsanitized = sanitized.replace(/vbscript:/gi, '');\n\treturn sanitized;\n}\n\nexport function getSanitizedInitialMessages(initialMessages: string): string[] {\n\tconst sanitizedString = sanitizeUserInput(initialMessages);\n\n\treturn sanitizedString\n\t\t.split('\\n')\n\t\t.map((line) => line.trim())\n\t\t.filter((line) => line !== '');\n}\n\nexport function getSanitizedI18nConfig(config: Record<string, string>): Record<string, string> {\n\tconst sanitized: Record<string, string> = {};\n\n\tfor (const [key, value] of Object.entries<string>(config)) {\n\t\tsanitized[key] = sanitizeUserInput(value);\n\t}\n\n\treturn sanitized;\n}\nexport function getSanitizedCustomCss(customCss: string): string {\n\t// Strip any sequence that could close the <style> context.\n\t// Browsers treat </style followed by /, space, tab, or > as a closing tag,\n\t// so we remove all </style variants (case-insensitive) to prevent breakout.\n\treturn customCss.replace(/<\\/style/gi, '');\n}\n\nexport function createPage({\n\tinstanceId,\n\twebhookUrl,\n\tshowWelcomeScreen,\n\tloadPreviousSession,\n\ti18n: { en },\n\tinitialMessages,\n\tauthentication,\n\tallowFileUploads,\n\tallowedFilesMimeTypes,\n\tcustomCss,\n\tenableStreaming,\n}: {\n\tinstanceId: string;\n\twebhookUrl?: string;\n\tshowWelcomeScreen?: boolean;\n\tloadPreviousSession?: LoadPreviousSessionChatOption;\n\ti18n: {\n\t\ten: Record<string, string>;\n\t};\n\tinitialMessages: string;\n\tmode: 'test' | 'production';\n\tauthentication: AuthenticationChatOption;\n\tallowFileUploads?: boolean;\n\tallowedFilesMimeTypes?: string;\n\tcustomCss?: string;\n\tenableStreaming?: boolean;\n}) {\n\tconst validAuthenticationOptions: AuthenticationChatOption[] = [\n\t\t'none',\n\t\t'basicAuth',\n\t\t'n8nUserAuth',\n\t];\n\tconst validLoadPreviousSessionOptions: LoadPreviousSessionChatOption[] = [\n\t\t'manually',\n\t\t'memory',\n\t\t'notSupported',\n\t];\n\n\tconst sanitizedAuthentication = validAuthenticationOptions.includes(authentication)\n\t\t? authentication\n\t\t: 'none';\n\tconst sanitizedShowWelcomeScreen = !!showWelcomeScreen;\n\tconst sanitizedAllowFileUploads = !!allowFileUploads;\n\tconst sanitizedAllowedFilesMimeTypes = sanitizeUserInput(allowedFilesMimeTypes?.toString() ?? '');\n\tconst sanitizedCustomCss = getSanitizedCustomCss(customCss?.toString() ?? '');\n\n\tconst sanitizedLoadPreviousSession = validLoadPreviousSessionOptions.includes(\n\t\tloadPreviousSession as LoadPreviousSessionChatOption,\n\t)\n\t\t? loadPreviousSession\n\t\t: 'notSupported';\n\n\tconst sanitizedInitialMessages = getSanitizedInitialMessages(initialMessages);\n\tconst sanitizedI18nConfig = getSanitizedI18nConfig(en || {});\n\n\treturn `<!doctype html>\n\t<html lang=\"en\">\n\t\t<head>\n\t\t\t<meta charset=\"utf-8\">\n\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\t\t\t<title>Chat</title>\n\t\t\t<link href=\"https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css\" rel=\"stylesheet\" />\n\t\t\t<link href=\"https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css\" rel=\"stylesheet\" />\n\t\t\t<style>\n\t\t\t\thtml,\n\t\t\t\tbody,\n\t\t\t\t#n8n-chat {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<style>${sanitizedCustomCss}</style>\n\t\t</head>\n\t\t<body>\n\t\t\t<script type=\"module\">\n\t\t\t\timport { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';\n\n\t\t\t\t(async function () {\n\t\t\t\t\tconst authentication = '${sanitizedAuthentication}';\n\t\t\t\t\tlet metadata;\n\t\t\t\t\tif (authentication === 'n8nUserAuth') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst response = await fetch('/rest/login', {\n\t\t\t\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\t\t\t\theaders: { 'browser-id': localStorage.getItem('n8n-browserId') }\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t\t\tthrow new Error('Not logged in');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst responseData = await response.json();\n\t\t\t\t\t\t\tmetadata = {\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tid: responseData.data.id,\n\t\t\t\t\t\t\t\t\tfirstName: responseData.data.firstName,\n\t\t\t\t\t\t\t\t\tlastName: responseData.data.lastName,\n\t\t\t\t\t\t\t\t\temail: responseData.data.email,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\twindow.location.href = '/signin?redirect=' + window.location.href;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateChat({\n\t\t\t\t\t\tmode: 'fullscreen',\n\t\t\t\t\t\twebhookUrl:
|
|
1
|
+
{"version":3,"sources":["../../../../nodes/trigger/ChatTrigger/templates.ts"],"sourcesContent":["import sanitizeHtml from 'sanitize-html';\n\nimport type { AuthenticationChatOption, LoadPreviousSessionChatOption } from './types';\n\nfunction sanitizeUserInput(input: string): string {\n\t// Sanitize HTML tags and entities\n\tlet sanitized = sanitizeHtml(input, {\n\t\tallowedTags: [],\n\t\tallowedAttributes: {},\n\t});\n\t// Remove dangerous protocols\n\tsanitized = sanitized.replace(/javascript:/gi, '');\n\tsanitized = sanitized.replace(/data:/gi, '');\n\tsanitized = sanitized.replace(/vbscript:/gi, '');\n\treturn sanitized;\n}\n\nexport function getSanitizedInitialMessages(initialMessages: string): string[] {\n\tconst sanitizedString = sanitizeUserInput(initialMessages);\n\n\treturn sanitizedString\n\t\t.split('\\n')\n\t\t.map((line) => line.trim())\n\t\t.filter((line) => line !== '');\n}\n\nconst SCRIPT_CONTEXT_ESCAPES: Record<string, string> = {\n\t'<': '\\\\u003c',\n\t'>': '\\\\u003e',\n\t'&': '\\\\u0026',\n\t'\\u2028': '\\\\u2028',\n\t'\\u2029': '\\\\u2029',\n};\n\n// Returns a JSON literal safe to embed inside an inline <script> block. Escapes\n// `<`/`>` to prevent </script> breakout and U+2028/U+2029 for legacy JS engines.\n// For string inputs the returned literal includes surrounding double quotes \\u2014\n// do not add quotes at the call site.\nexport function escapeForScriptContext(value: string | object): string {\n\treturn JSON.stringify(value).replace(/[<>&\\u2028\\u2029]/g, (c) => SCRIPT_CONTEXT_ESCAPES[c]);\n}\n\nexport function getSanitizedI18nConfig(config: Record<string, string>): Record<string, string> {\n\tconst sanitized: Record<string, string> = {};\n\n\tfor (const [key, value] of Object.entries<string>(config)) {\n\t\tsanitized[key] = sanitizeUserInput(value);\n\t}\n\n\treturn sanitized;\n}\nexport function getSanitizedCustomCss(customCss: string): string {\n\t// Strip any sequence that could close the <style> context.\n\t// Browsers treat </style followed by /, space, tab, or > as a closing tag,\n\t// so we remove all </style variants (case-insensitive) to prevent breakout.\n\treturn customCss.replace(/<\\/style/gi, '');\n}\n\nexport function createPage({\n\tinstanceId,\n\twebhookUrl,\n\tshowWelcomeScreen,\n\tloadPreviousSession,\n\ti18n: { en },\n\tinitialMessages,\n\tauthentication,\n\tallowFileUploads,\n\tallowedFilesMimeTypes,\n\tcustomCss,\n\tenableStreaming,\n}: {\n\tinstanceId: string;\n\twebhookUrl?: string;\n\tshowWelcomeScreen?: boolean;\n\tloadPreviousSession?: LoadPreviousSessionChatOption;\n\ti18n: {\n\t\ten: Record<string, string>;\n\t};\n\tinitialMessages: string;\n\tmode: 'test' | 'production';\n\tauthentication: AuthenticationChatOption;\n\tallowFileUploads?: boolean;\n\tallowedFilesMimeTypes?: string;\n\tcustomCss?: string;\n\tenableStreaming?: boolean;\n}) {\n\tconst validAuthenticationOptions: AuthenticationChatOption[] = [\n\t\t'none',\n\t\t'basicAuth',\n\t\t'n8nUserAuth',\n\t];\n\tconst validLoadPreviousSessionOptions: LoadPreviousSessionChatOption[] = [\n\t\t'manually',\n\t\t'memory',\n\t\t'notSupported',\n\t];\n\n\tconst sanitizedAuthentication = validAuthenticationOptions.includes(authentication)\n\t\t? authentication\n\t\t: 'none';\n\tconst sanitizedShowWelcomeScreen = !!showWelcomeScreen;\n\tconst sanitizedAllowFileUploads = !!allowFileUploads;\n\tconst sanitizedAllowedFilesMimeTypes = sanitizeUserInput(allowedFilesMimeTypes?.toString() ?? '');\n\tconst sanitizedCustomCss = getSanitizedCustomCss(customCss?.toString() ?? '');\n\n\tconst sanitizedLoadPreviousSession = validLoadPreviousSessionOptions.includes(\n\t\tloadPreviousSession as LoadPreviousSessionChatOption,\n\t)\n\t\t? loadPreviousSession\n\t\t: 'notSupported';\n\n\tconst sanitizedInitialMessages = getSanitizedInitialMessages(initialMessages);\n\tconst sanitizedI18nConfig = getSanitizedI18nConfig(en || {});\n\n\treturn `<!doctype html>\n\t<html lang=\"en\">\n\t\t<head>\n\t\t\t<meta charset=\"utf-8\">\n\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\t\t\t<title>Chat</title>\n\t\t\t<link href=\"https://cdn.jsdelivr.net/npm/normalize.css@8.0.1/normalize.min.css\" rel=\"stylesheet\" />\n\t\t\t<link href=\"https://cdn.jsdelivr.net/npm/@n8n/chat/dist/style.css\" rel=\"stylesheet\" />\n\t\t\t<style>\n\t\t\t\thtml,\n\t\t\t\tbody,\n\t\t\t\t#n8n-chat {\n\t\t\t\t\twidth: 100%;\n\t\t\t\t\theight: 100%;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<style>${sanitizedCustomCss}</style>\n\t\t</head>\n\t\t<body>\n\t\t\t<script type=\"module\">\n\t\t\t\timport { createChat } from 'https://cdn.jsdelivr.net/npm/@n8n/chat/dist/chat.bundle.es.js';\n\n\t\t\t\t(async function () {\n\t\t\t\t\tconst authentication = '${sanitizedAuthentication}';\n\t\t\t\t\tlet metadata;\n\t\t\t\t\tif (authentication === 'n8nUserAuth') {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst response = await fetch('/rest/login', {\n\t\t\t\t\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\t\t\t\t\theaders: { 'browser-id': localStorage.getItem('n8n-browserId') }\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (response.status !== 200) {\n\t\t\t\t\t\t\t\tthrow new Error('Not logged in');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst responseData = await response.json();\n\t\t\t\t\t\t\tmetadata = {\n\t\t\t\t\t\t\t\tuser: {\n\t\t\t\t\t\t\t\t\tid: responseData.data.id,\n\t\t\t\t\t\t\t\t\tfirstName: responseData.data.firstName,\n\t\t\t\t\t\t\t\t\tlastName: responseData.data.lastName,\n\t\t\t\t\t\t\t\t\temail: responseData.data.email,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\twindow.location.href = '/signin?redirect=' + window.location.href;\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcreateChat({\n\t\t\t\t\t\tmode: 'fullscreen',\n\t\t\t\t\t\twebhookUrl: ${escapeForScriptContext(webhookUrl ?? '')},\n\t\t\t\t\t\tshowWelcomeScreen: ${sanitizedShowWelcomeScreen},\n\t\t\t\t\t\tloadPreviousSession: ${sanitizedLoadPreviousSession !== 'notSupported'},\n\t\t\t\t\t\tmetadata: metadata,\n\t\t\t\t\t\twebhookConfig: {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t\t\t\t'X-Instance-Id': '${instanceId}',\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowFileUploads: ${sanitizedAllowFileUploads},\n\t\t\t\t\t\tallowedFilesMimeTypes: ${escapeForScriptContext(sanitizedAllowedFilesMimeTypes)},\n\t\t\t\t\t\ti18n: {\n\t\t\t\t\t\t\t${Object.keys(sanitizedI18nConfig).length ? `en: ${escapeForScriptContext(sanitizedI18nConfig)},` : ''}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t${sanitizedInitialMessages.length ? `initialMessages: ${escapeForScriptContext(sanitizedInitialMessages)},` : ''}\n\t\t\t\t\t\tenableStreaming: ${!!enableStreaming},\n\t\t\t\t\t});\n\t\t\t\t})();\n\t\t\t</script>\n\t\t</body>\n\t</html>`;\n}\n"],"mappings":"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","names":["sanitizeHtml"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/n8n-nodes-langchain",
|
|
3
|
-
"version": "1.122.
|
|
3
|
+
"version": "1.122.39",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"LICENSE_EE.md",
|
|
9
|
+
"LICENSE.md"
|
|
10
10
|
],
|
|
11
11
|
"n8n": {
|
|
12
12
|
"n8nNodesApiVersion": 1,
|
|
@@ -159,8 +159,8 @@
|
|
|
159
159
|
"fast-glob": "3.2.12",
|
|
160
160
|
"jest-mock-extended": "^3.0.4",
|
|
161
161
|
"tsup": "^8.5.1",
|
|
162
|
-
"
|
|
163
|
-
"n8n-
|
|
162
|
+
"n8n-core": "1.122.32",
|
|
163
|
+
"@n8n/eslint-plugin-community-nodes": "0.7.0"
|
|
164
164
|
},
|
|
165
165
|
"dependencies": {
|
|
166
166
|
"@aws-sdk/client-sso-oidc": "3.808.0",
|
|
@@ -230,13 +230,13 @@
|
|
|
230
230
|
"zod": "3.25.67",
|
|
231
231
|
"zod-to-json-schema": "3.23.3",
|
|
232
232
|
"@n8n/client-oauth2": "0.33.5",
|
|
233
|
-
"@n8n/di": "0.10.0",
|
|
234
|
-
"@n8n/typescript-config": "1.3.0",
|
|
235
233
|
"@n8n/config": "1.65.6",
|
|
236
234
|
"@n8n/errors": "0.5.1",
|
|
235
|
+
"@n8n/typescript-config": "1.3.0",
|
|
237
236
|
"@n8n/json-schema-to-zod": "1.6.0",
|
|
238
|
-
"n8n
|
|
239
|
-
"n8n-workflow": "1.120.
|
|
237
|
+
"@n8n/di": "0.10.0",
|
|
238
|
+
"n8n-workflow": "1.120.17",
|
|
239
|
+
"n8n-nodes-base": "1.121.35"
|
|
240
240
|
},
|
|
241
241
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
242
242
|
"homepage": "https://n8n.io",
|