@n8n/n8n-nodes-langchain 1.122.40 → 1.122.42

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.
@@ -37,7 +37,8 @@ __export(templates_exports, {
37
37
  module.exports = __toCommonJS(templates_exports);
38
38
  var import_sanitize_html = __toESM(require("sanitize-html"));
39
39
  function sanitizeUserInput(input) {
40
- let sanitized = (0, import_sanitize_html.default)(input, {
40
+ const value = typeof input === "string" ? input : typeof input === "number" ? String(input) : "";
41
+ let sanitized = (0, import_sanitize_html.default)(value, {
41
42
  allowedTags: [],
42
43
  allowedAttributes: {}
43
44
  });
@@ -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\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"]}
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: unknown): string {\n\t// Only strings and numbers are meaningful display values; sanitize-html\n\t// requires a string input, so coerce numbers and drop everything else.\n\tconst value = typeof input === 'string' ? input : typeof input === 'number' ? String(input) : '';\n\t// Sanitize HTML tags and entities\n\tlet sanitized = sanitizeHtml(value, {\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,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/n8n-nodes-langchain",
3
- "version": "1.122.40",
3
+ "version": "1.122.42",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "files": [
@@ -160,7 +160,7 @@
160
160
  "jest-mock-extended": "^3.0.4",
161
161
  "tsup": "^8.5.1",
162
162
  "@n8n/eslint-plugin-community-nodes": "0.7.0",
163
- "n8n-core": "1.122.33"
163
+ "n8n-core": "1.122.35"
164
164
  },
165
165
  "dependencies": {
166
166
  "@aws-sdk/client-sso-oidc": "3.808.0",
@@ -220,7 +220,7 @@
220
220
  "pg": "8.12.0",
221
221
  "proxy-from-env": "^1.1.0",
222
222
  "redis": "4.6.14",
223
- "sanitize-html": "2.12.1",
223
+ "sanitize-html": "2.17.4",
224
224
  "sqlite3": "5.1.7",
225
225
  "temp": "0.9.4",
226
226
  "tmp-promise": "3.0.3",
@@ -229,14 +229,14 @@
229
229
  "weaviate-client": "3.6.2",
230
230
  "zod": "3.25.67",
231
231
  "zod-to-json-schema": "3.23.3",
232
- "@n8n/client-oauth2": "0.33.5",
232
+ "@n8n/config": "1.65.6",
233
+ "@n8n/client-oauth2": "0.33.6",
233
234
  "@n8n/di": "0.10.0",
234
- "@n8n/errors": "0.5.1",
235
235
  "@n8n/json-schema-to-zod": "1.6.0",
236
- "@n8n/config": "1.65.6",
237
- "n8n-nodes-base": "1.121.36",
238
- "@n8n/typescript-config": "1.3.0",
239
- "n8n-workflow": "1.120.17"
236
+ "@n8n/errors": "0.5.1",
237
+ "@n8n/typescript-config": "1.3.1",
238
+ "n8n-nodes-base": "1.121.38",
239
+ "n8n-workflow": "1.120.19"
240
240
  },
241
241
  "license": "SEE LICENSE IN LICENSE.md",
242
242
  "homepage": "https://n8n.io",