@n8n/ai-utilities 0.3.0 → 0.4.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 (240) hide show
  1. package/README.md +9 -462
  2. package/dist/{adapters → cjs/adapters}/langchain-chat-model.d.ts +1 -1
  3. package/dist/cjs/adapters/langchain-chat-model.js +201 -0
  4. package/dist/cjs/adapters/langchain-chat-model.js.map +1 -0
  5. package/dist/cjs/adapters/langchain-history.js +37 -0
  6. package/dist/cjs/adapters/langchain-history.js.map +1 -0
  7. package/dist/cjs/adapters/langchain-memory.js +46 -0
  8. package/dist/cjs/adapters/langchain-memory.js.map +1 -0
  9. package/dist/cjs/ai-node-sdk-version.d.ts +1 -0
  10. package/dist/cjs/ai-node-sdk-version.js +15 -0
  11. package/dist/cjs/ai-node-sdk-version.js.map +1 -0
  12. package/dist/cjs/chat-model/base.js +35 -0
  13. package/dist/cjs/chat-model/base.js.map +1 -0
  14. package/dist/{converters → cjs/converters}/message.d.ts +1 -0
  15. package/dist/cjs/converters/message.js +388 -0
  16. package/dist/cjs/converters/message.js.map +1 -0
  17. package/dist/cjs/converters/tool.js +69 -0
  18. package/dist/cjs/converters/tool.js.map +1 -0
  19. package/dist/cjs/guards.js +37 -0
  20. package/dist/cjs/guards.js.map +1 -0
  21. package/dist/{index.d.ts → cjs/index.d.ts} +7 -5
  22. package/dist/cjs/index.js +73 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/memory/base-chat-history.js +22 -0
  25. package/dist/cjs/memory/base-chat-history.js.map +1 -0
  26. package/dist/cjs/memory/base-chat-memory.js +17 -0
  27. package/dist/cjs/memory/base-chat-memory.js.map +1 -0
  28. package/dist/cjs/memory/windowed-chat-memory.js +48 -0
  29. package/dist/cjs/memory/windowed-chat-memory.js.map +1 -0
  30. package/dist/cjs/suppliers/supplyMemory.js +24 -0
  31. package/dist/cjs/suppliers/supplyMemory.js.map +1 -0
  32. package/dist/cjs/suppliers/supplyModel.d.ts +8 -0
  33. package/dist/cjs/suppliers/supplyModel.js +89 -0
  34. package/dist/cjs/suppliers/supplyModel.js.map +1 -0
  35. package/dist/cjs/typecheck.tsbuildinfo +1 -0
  36. package/dist/cjs/types/chat-model.js +13 -0
  37. package/dist/{types → cjs/types}/chat-model.js.map +1 -1
  38. package/dist/cjs/types/json.js +13 -0
  39. package/dist/{types → cjs/types}/json.js.map +1 -1
  40. package/dist/cjs/types/memory.js +13 -0
  41. package/dist/{types → cjs/types}/memory.js.map +1 -1
  42. package/dist/{types → cjs/types}/message.d.ts +8 -1
  43. package/dist/cjs/types/message.js +13 -0
  44. package/dist/{types → cjs/types}/message.js.map +1 -1
  45. package/dist/cjs/types/openai.js +13 -0
  46. package/dist/{types → cjs/types}/openai.js.map +1 -1
  47. package/dist/cjs/types/output.js +13 -0
  48. package/dist/{types → cjs/types}/output.js.map +1 -1
  49. package/dist/cjs/types/tool.js +13 -0
  50. package/dist/{types → cjs/types}/tool.js.map +1 -1
  51. package/dist/cjs/utils/embeddings-input-validation.js +38 -0
  52. package/dist/cjs/utils/embeddings-input-validation.js.map +1 -0
  53. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js +40 -0
  54. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -0
  55. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js +38 -0
  56. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -0
  57. package/dist/cjs/utils/helpers.js +63 -0
  58. package/dist/cjs/utils/helpers.js.map +1 -0
  59. package/dist/cjs/utils/http-proxy-agent.js +58 -0
  60. package/dist/cjs/utils/http-proxy-agent.js.map +1 -0
  61. package/dist/cjs/utils/log-ai-event.js +23 -0
  62. package/dist/cjs/utils/log-ai-event.js.map +1 -0
  63. package/dist/cjs/utils/log-wrapper.js +339 -0
  64. package/dist/cjs/utils/log-wrapper.js.map +1 -0
  65. package/dist/cjs/utils/n8n-binary-loader.js +169 -0
  66. package/dist/cjs/utils/n8n-binary-loader.js.map +1 -0
  67. package/dist/cjs/utils/n8n-json-loader.js +76 -0
  68. package/dist/cjs/utils/n8n-json-loader.js.map +1 -0
  69. package/dist/cjs/utils/n8n-llm-tracing.js +167 -0
  70. package/dist/cjs/utils/n8n-llm-tracing.js.map +1 -0
  71. package/dist/{utils → cjs/utils}/sse.d.ts +1 -1
  72. package/dist/cjs/utils/sse.js +107 -0
  73. package/dist/cjs/utils/sse.js.map +1 -0
  74. package/dist/cjs/utils/tokenizer/tiktoken.js +50 -0
  75. package/dist/cjs/utils/tokenizer/tiktoken.js.map +1 -0
  76. package/dist/cjs/utils/tokenizer/token-estimator.js +108 -0
  77. package/dist/cjs/utils/tokenizer/token-estimator.js.map +1 -0
  78. package/dist/esm/adapters/langchain-chat-model.d.ts +20 -0
  79. package/dist/{adapters → esm/adapters}/langchain-chat-model.js +4 -4
  80. package/dist/esm/adapters/langchain-chat-model.js.map +1 -0
  81. package/dist/esm/adapters/langchain-history.d.ts +12 -0
  82. package/dist/esm/adapters/langchain-history.js.map +1 -0
  83. package/dist/esm/adapters/langchain-memory.d.ts +11 -0
  84. package/dist/esm/adapters/langchain-memory.js.map +1 -0
  85. package/dist/esm/ai-node-sdk-version.d.ts +1 -0
  86. package/dist/esm/ai-node-sdk-version.js +5 -0
  87. package/dist/esm/ai-node-sdk-version.js.map +1 -0
  88. package/dist/esm/chat-model/base.d.ts +15 -0
  89. package/dist/esm/chat-model/base.js.map +1 -0
  90. package/dist/esm/converters/message.d.ts +7 -0
  91. package/dist/{converters → esm/converters}/message.js +24 -13
  92. package/dist/esm/converters/message.js.map +1 -0
  93. package/dist/esm/converters/tool.d.ts +5 -0
  94. package/dist/esm/converters/tool.js.map +1 -0
  95. package/dist/esm/guards.d.ts +8 -0
  96. package/dist/esm/guards.js.map +1 -0
  97. package/dist/esm/index.d.ts +30 -0
  98. package/dist/{index.js → esm/index.js} +13 -6
  99. package/dist/esm/index.js.map +1 -0
  100. package/dist/esm/memory/base-chat-history.d.ts +8 -0
  101. package/dist/esm/memory/base-chat-history.js.map +1 -0
  102. package/dist/esm/memory/base-chat-memory.d.ts +8 -0
  103. package/dist/esm/memory/base-chat-memory.js.map +1 -0
  104. package/dist/esm/memory/windowed-chat-memory.d.ts +14 -0
  105. package/dist/esm/memory/windowed-chat-memory.js.map +1 -0
  106. package/dist/esm/suppliers/supplyMemory.d.ts +6 -0
  107. package/dist/esm/suppliers/supplyMemory.js.map +1 -0
  108. package/dist/esm/suppliers/supplyModel.d.ts +8 -0
  109. package/dist/{suppliers → esm/suppliers}/supplyModel.js +1 -1
  110. package/dist/esm/suppliers/supplyModel.js.map +1 -0
  111. package/dist/esm/typecheck.tsbuildinfo +1 -0
  112. package/dist/esm/types/chat-model.d.ts +26 -0
  113. package/dist/esm/types/chat-model.js.map +1 -0
  114. package/dist/esm/types/json.d.ts +5 -0
  115. package/dist/esm/types/json.js.map +1 -0
  116. package/dist/esm/types/memory.d.ts +13 -0
  117. package/dist/esm/types/memory.js.map +1 -0
  118. package/dist/esm/types/message.d.ts +56 -0
  119. package/dist/esm/types/message.js.map +1 -0
  120. package/dist/esm/types/openai.d.ts +39 -0
  121. package/dist/esm/types/openai.js.map +1 -0
  122. package/dist/esm/types/output.d.ts +47 -0
  123. package/dist/esm/types/output.js.map +1 -0
  124. package/dist/esm/types/tool.d.ts +28 -0
  125. package/dist/esm/types/tool.js.map +1 -0
  126. package/dist/esm/utils/embeddings-input-validation.d.ts +3 -0
  127. package/dist/esm/utils/embeddings-input-validation.js.map +1 -0
  128. package/dist/esm/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.d.ts +1 -0
  129. package/dist/esm/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -0
  130. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +3 -0
  131. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -0
  132. package/dist/esm/utils/helpers.d.ts +3 -0
  133. package/dist/esm/utils/helpers.js.map +1 -0
  134. package/dist/esm/utils/http-proxy-agent.d.ts +10 -0
  135. package/dist/esm/utils/http-proxy-agent.js.map +1 -0
  136. package/dist/esm/utils/log-ai-event.d.ts +2 -0
  137. package/dist/esm/utils/log-ai-event.js.map +1 -0
  138. package/dist/esm/utils/log-wrapper.d.ts +28 -0
  139. package/dist/esm/utils/log-wrapper.js.map +1 -0
  140. package/dist/esm/utils/n8n-binary-loader.d.ts +18 -0
  141. package/dist/esm/utils/n8n-binary-loader.js.map +1 -0
  142. package/dist/esm/utils/n8n-json-loader.d.ts +11 -0
  143. package/dist/esm/utils/n8n-json-loader.js.map +1 -0
  144. package/dist/esm/utils/n8n-llm-tracing.d.ts +46 -0
  145. package/dist/esm/utils/n8n-llm-tracing.js.map +1 -0
  146. package/dist/esm/utils/sse.d.ts +8 -0
  147. package/dist/{utils → esm/utils}/sse.js +17 -27
  148. package/dist/esm/utils/sse.js.map +1 -0
  149. package/dist/esm/utils/tokenizer/cl100k_base.json +1 -0
  150. package/dist/esm/utils/tokenizer/o200k_base.json +1 -0
  151. package/dist/esm/utils/tokenizer/tiktoken.d.ts +4 -0
  152. package/dist/esm/utils/tokenizer/tiktoken.js.map +1 -0
  153. package/dist/esm/utils/tokenizer/token-estimator.d.ts +4 -0
  154. package/dist/esm/utils/tokenizer/token-estimator.js.map +1 -0
  155. package/package.json +18 -11
  156. package/dist/adapters/langchain-chat-model.js.map +0 -1
  157. package/dist/adapters/langchain-history.js.map +0 -1
  158. package/dist/adapters/langchain-memory.js.map +0 -1
  159. package/dist/build.tsbuildinfo +0 -1
  160. package/dist/chat-model/base.js.map +0 -1
  161. package/dist/converters/message.js.map +0 -1
  162. package/dist/converters/tool.js.map +0 -1
  163. package/dist/guards.js.map +0 -1
  164. package/dist/index.js.map +0 -1
  165. package/dist/memory/base-chat-history.js.map +0 -1
  166. package/dist/memory/base-chat-memory.js.map +0 -1
  167. package/dist/memory/windowed-chat-memory.js.map +0 -1
  168. package/dist/suppliers/supplyMemory.js.map +0 -1
  169. package/dist/suppliers/supplyModel.d.ts +0 -15
  170. package/dist/suppliers/supplyModel.js.map +0 -1
  171. package/dist/utils/embeddings-input-validation.js.map +0 -1
  172. package/dist/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +0 -1
  173. package/dist/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +0 -1
  174. package/dist/utils/helpers.js.map +0 -1
  175. package/dist/utils/http-proxy-agent.js.map +0 -1
  176. package/dist/utils/log-ai-event.js.map +0 -1
  177. package/dist/utils/log-wrapper.js.map +0 -1
  178. package/dist/utils/n8n-binary-loader.js.map +0 -1
  179. package/dist/utils/n8n-json-loader.js.map +0 -1
  180. package/dist/utils/n8n-llm-tracing.js.map +0 -1
  181. package/dist/utils/sse.js.map +0 -1
  182. package/dist/utils/tokenizer/tiktoken.js.map +0 -1
  183. package/dist/utils/tokenizer/token-estimator.js.map +0 -1
  184. /package/dist/{adapters → cjs/adapters}/langchain-history.d.ts +0 -0
  185. /package/dist/{adapters → cjs/adapters}/langchain-memory.d.ts +0 -0
  186. /package/dist/{chat-model → cjs/chat-model}/base.d.ts +0 -0
  187. /package/dist/{converters → cjs/converters}/tool.d.ts +0 -0
  188. /package/dist/{guards.d.ts → cjs/guards.d.ts} +0 -0
  189. /package/dist/{memory → cjs/memory}/base-chat-history.d.ts +0 -0
  190. /package/dist/{memory → cjs/memory}/base-chat-memory.d.ts +0 -0
  191. /package/dist/{memory → cjs/memory}/windowed-chat-memory.d.ts +0 -0
  192. /package/dist/{suppliers → cjs/suppliers}/supplyMemory.d.ts +0 -0
  193. /package/dist/{types → cjs/types}/chat-model.d.ts +0 -0
  194. /package/dist/{types → cjs/types}/json.d.ts +0 -0
  195. /package/dist/{types → cjs/types}/memory.d.ts +0 -0
  196. /package/dist/{types → cjs/types}/openai.d.ts +0 -0
  197. /package/dist/{types → cjs/types}/output.d.ts +0 -0
  198. /package/dist/{types → cjs/types}/tool.d.ts +0 -0
  199. /package/dist/{utils → cjs/utils}/embeddings-input-validation.d.ts +0 -0
  200. /package/dist/{utils → cjs/utils}/failed-attempt-handler/n8nDefaultFailedAttemptHandler.d.ts +0 -0
  201. /package/dist/{utils → cjs/utils}/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +0 -0
  202. /package/dist/{utils → cjs/utils}/helpers.d.ts +0 -0
  203. /package/dist/{utils → cjs/utils}/http-proxy-agent.d.ts +0 -0
  204. /package/dist/{utils → cjs/utils}/log-ai-event.d.ts +0 -0
  205. /package/dist/{utils → cjs/utils}/log-wrapper.d.ts +0 -0
  206. /package/dist/{utils → cjs/utils}/n8n-binary-loader.d.ts +0 -0
  207. /package/dist/{utils → cjs/utils}/n8n-json-loader.d.ts +0 -0
  208. /package/dist/{utils → cjs/utils}/n8n-llm-tracing.d.ts +0 -0
  209. /package/dist/{utils → cjs/utils}/tokenizer/cl100k_base.json +0 -0
  210. /package/dist/{utils → cjs/utils}/tokenizer/o200k_base.json +0 -0
  211. /package/dist/{utils → cjs/utils}/tokenizer/tiktoken.d.ts +0 -0
  212. /package/dist/{utils → cjs/utils}/tokenizer/token-estimator.d.ts +0 -0
  213. /package/dist/{adapters → esm/adapters}/langchain-history.js +0 -0
  214. /package/dist/{adapters → esm/adapters}/langchain-memory.js +0 -0
  215. /package/dist/{chat-model → esm/chat-model}/base.js +0 -0
  216. /package/dist/{converters → esm/converters}/tool.js +0 -0
  217. /package/dist/{guards.js → esm/guards.js} +0 -0
  218. /package/dist/{memory → esm/memory}/base-chat-history.js +0 -0
  219. /package/dist/{memory → esm/memory}/base-chat-memory.js +0 -0
  220. /package/dist/{memory → esm/memory}/windowed-chat-memory.js +0 -0
  221. /package/dist/{suppliers → esm/suppliers}/supplyMemory.js +0 -0
  222. /package/dist/{types → esm/types}/chat-model.js +0 -0
  223. /package/dist/{types → esm/types}/json.js +0 -0
  224. /package/dist/{types → esm/types}/memory.js +0 -0
  225. /package/dist/{types → esm/types}/message.js +0 -0
  226. /package/dist/{types → esm/types}/openai.js +0 -0
  227. /package/dist/{types → esm/types}/output.js +0 -0
  228. /package/dist/{types → esm/types}/tool.js +0 -0
  229. /package/dist/{utils → esm/utils}/embeddings-input-validation.js +0 -0
  230. /package/dist/{utils → esm/utils}/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js +0 -0
  231. /package/dist/{utils → esm/utils}/failed-attempt-handler/n8nLlmFailedAttemptHandler.js +0 -0
  232. /package/dist/{utils → esm/utils}/helpers.js +0 -0
  233. /package/dist/{utils → esm/utils}/http-proxy-agent.js +0 -0
  234. /package/dist/{utils → esm/utils}/log-ai-event.js +0 -0
  235. /package/dist/{utils → esm/utils}/log-wrapper.js +0 -0
  236. /package/dist/{utils → esm/utils}/n8n-binary-loader.js +0 -0
  237. /package/dist/{utils → esm/utils}/n8n-json-loader.js +0 -0
  238. /package/dist/{utils → esm/utils}/n8n-llm-tracing.js +0 -0
  239. /package/dist/{utils → esm/utils}/tokenizer/tiktoken.js +0 -0
  240. /package/dist/{utils → esm/utils}/tokenizer/token-estimator.js +0 -0
@@ -0,0 +1,339 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@langchain/core/embeddings", "@langchain/core/retrievers", "@langchain/core/retrievers/document_compressors", "@langchain/core/vectorstores", "@langchain/textsplitters", "n8n-workflow", "../guards", "./embeddings-input-validation", "./log-ai-event", "./n8n-binary-loader", "./n8n-json-loader"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.callMethodAsync = callMethodAsync;
13
+ exports.callMethodSync = callMethodSync;
14
+ exports.logWrapper = logWrapper;
15
+ const embeddings_1 = require("@langchain/core/embeddings");
16
+ const retrievers_1 = require("@langchain/core/retrievers");
17
+ const document_compressors_1 = require("@langchain/core/retrievers/document_compressors");
18
+ const vectorstores_1 = require("@langchain/core/vectorstores");
19
+ const textsplitters_1 = require("@langchain/textsplitters");
20
+ const n8n_workflow_1 = require("n8n-workflow");
21
+ const guards_1 = require("../guards");
22
+ const embeddings_input_validation_1 = require("./embeddings-input-validation");
23
+ const log_ai_event_1 = require("./log-ai-event");
24
+ const n8n_binary_loader_1 = require("./n8n-binary-loader");
25
+ const n8n_json_loader_1 = require("./n8n-json-loader");
26
+ async function callMethodAsync(parameters) {
27
+ try {
28
+ return await parameters.method.call(this, ...parameters.arguments);
29
+ }
30
+ catch (e) {
31
+ const connectedNode = parameters.executeFunctions.getNode();
32
+ const error = new n8n_workflow_1.NodeOperationError(connectedNode, e, {
33
+ functionality: 'configuration-node',
34
+ });
35
+ const metadata = (0, n8n_workflow_1.parseErrorMetadata)(error);
36
+ parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error, metadata);
37
+ if (error.message) {
38
+ if (!error.description) {
39
+ error.description = error.message;
40
+ }
41
+ throw error;
42
+ }
43
+ throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' });
44
+ }
45
+ }
46
+ function callMethodSync(parameters) {
47
+ try {
48
+ return parameters.method.call(this, ...parameters.arguments);
49
+ }
50
+ catch (e) {
51
+ const connectedNode = parameters.executeFunctions.getNode();
52
+ const error = new n8n_workflow_1.NodeOperationError(connectedNode, e);
53
+ parameters.executeFunctions.addOutputData(parameters.connectionType, parameters.currentNodeRunIndex, error);
54
+ throw new n8n_workflow_1.NodeOperationError(connectedNode, `Error on node "${connectedNode.name}" which is connected via input "${parameters.connectionType}"`, { functionality: 'configuration-node' });
55
+ }
56
+ }
57
+ function logWrapper(originalInstance, executeFunctions) {
58
+ return new Proxy(originalInstance, {
59
+ get: (target, prop) => {
60
+ let connectionType;
61
+ if ((0, guards_1.isBaseChatMemory)(originalInstance)) {
62
+ if (prop === 'loadMemoryVariables' && 'loadMemoryVariables' in target) {
63
+ return async (values) => {
64
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
65
+ const { index } = executeFunctions.addInputData(connectionType, [
66
+ [{ json: { action: 'loadMemoryVariables', values } }],
67
+ ]);
68
+ const response = (await callMethodAsync.call(target, {
69
+ executeFunctions,
70
+ connectionType,
71
+ currentNodeRunIndex: index,
72
+ method: target[prop],
73
+ arguments: [values],
74
+ }));
75
+ const chatHistory = response?.chat_history ?? response;
76
+ executeFunctions.addOutputData(connectionType, index, [
77
+ [{ json: { action: 'loadMemoryVariables', chatHistory } }],
78
+ ]);
79
+ return response;
80
+ };
81
+ }
82
+ else if (prop === 'saveContext' && 'saveContext' in target) {
83
+ return async (input, output) => {
84
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
85
+ const { index } = executeFunctions.addInputData(connectionType, [
86
+ [{ json: { action: 'saveContext', input, output } }],
87
+ ]);
88
+ const response = (await callMethodAsync.call(target, {
89
+ executeFunctions,
90
+ connectionType,
91
+ currentNodeRunIndex: index,
92
+ method: target[prop],
93
+ arguments: [input, output],
94
+ }));
95
+ const chatHistory = await target.chatHistory.getMessages();
96
+ executeFunctions.addOutputData(connectionType, index, [
97
+ [{ json: { action: 'saveContext', chatHistory } }],
98
+ ]);
99
+ return response;
100
+ };
101
+ }
102
+ }
103
+ if ((0, guards_1.isBaseChatMessageHistory)(originalInstance)) {
104
+ if (prop === 'getMessages' && 'getMessages' in target) {
105
+ return async () => {
106
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
107
+ const { index } = executeFunctions.addInputData(connectionType, [
108
+ [{ json: { action: 'getMessages' } }],
109
+ ]);
110
+ const response = (await callMethodAsync.call(target, {
111
+ executeFunctions,
112
+ connectionType,
113
+ currentNodeRunIndex: index,
114
+ method: target[prop],
115
+ arguments: [],
116
+ }));
117
+ const payload = { action: 'getMessages', response };
118
+ executeFunctions.addOutputData(connectionType, index, [[{ json: payload }]]);
119
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-messages-retrieved-from-memory', { response });
120
+ return response;
121
+ };
122
+ }
123
+ else if (prop === 'addMessage' && 'addMessage' in target) {
124
+ return async (message) => {
125
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiMemory;
126
+ const payload = { action: 'addMessage', message };
127
+ const { index } = executeFunctions.addInputData(connectionType, [[{ json: payload }]]);
128
+ await callMethodAsync.call(target, {
129
+ executeFunctions,
130
+ connectionType,
131
+ currentNodeRunIndex: index,
132
+ method: target[prop],
133
+ arguments: [message],
134
+ });
135
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-message-added-to-memory', { message });
136
+ executeFunctions.addOutputData(connectionType, index, [[{ json: payload }]]);
137
+ };
138
+ }
139
+ }
140
+ if (originalInstance instanceof retrievers_1.BaseRetriever) {
141
+ if (prop === 'getRelevantDocuments' && 'getRelevantDocuments' in target) {
142
+ return async (query, config) => {
143
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiRetriever;
144
+ const { index } = executeFunctions.addInputData(connectionType, [
145
+ [{ json: { query, config } }],
146
+ ]);
147
+ const response = (await callMethodAsync.call(target, {
148
+ executeFunctions,
149
+ connectionType,
150
+ currentNodeRunIndex: index,
151
+ method: target[prop],
152
+ arguments: [query, config],
153
+ }));
154
+ const executionId = response[0]?.metadata?.executionId;
155
+ const workflowId = response[0]?.metadata?.workflowId;
156
+ const metadata = {};
157
+ if (executionId && workflowId) {
158
+ metadata.subExecution = {
159
+ executionId,
160
+ workflowId,
161
+ };
162
+ }
163
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-documents-retrieved', { query });
164
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]], metadata);
165
+ return response;
166
+ };
167
+ }
168
+ }
169
+ if (originalInstance instanceof embeddings_1.Embeddings) {
170
+ if (prop === 'embedDocuments' && 'embedDocuments' in target) {
171
+ return async (documents) => {
172
+ const validatedDocuments = (0, embeddings_input_validation_1.validateEmbedDocumentsInput)(documents, executeFunctions.getNode());
173
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiEmbedding;
174
+ const { index } = executeFunctions.addInputData(connectionType, [
175
+ [{ json: { documents: validatedDocuments } }],
176
+ ]);
177
+ const response = (await callMethodAsync.call(target, {
178
+ executeFunctions,
179
+ connectionType,
180
+ currentNodeRunIndex: index,
181
+ method: target[prop],
182
+ arguments: [validatedDocuments],
183
+ }));
184
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-embedded');
185
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
186
+ return response;
187
+ };
188
+ }
189
+ if (prop === 'embedQuery' && 'embedQuery' in target) {
190
+ return async (query) => {
191
+ const validatedQuery = (0, embeddings_input_validation_1.validateEmbedQueryInput)(query, executeFunctions.getNode());
192
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiEmbedding;
193
+ const { index } = executeFunctions.addInputData(connectionType, [
194
+ [{ json: { query: validatedQuery } }],
195
+ ]);
196
+ const response = (await callMethodAsync.call(target, {
197
+ executeFunctions,
198
+ connectionType,
199
+ currentNodeRunIndex: index,
200
+ method: target[prop],
201
+ arguments: [validatedQuery],
202
+ }));
203
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-query-embedded');
204
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
205
+ return response;
206
+ };
207
+ }
208
+ }
209
+ if (originalInstance instanceof document_compressors_1.BaseDocumentCompressor) {
210
+ if (prop === 'compressDocuments' && 'compressDocuments' in target) {
211
+ return async (documents, query) => {
212
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiReranker;
213
+ const { index } = executeFunctions.addInputData(connectionType, [
214
+ [{ json: { query, documents } }],
215
+ ]);
216
+ const response = (await callMethodAsync.call(target, {
217
+ executeFunctions,
218
+ connectionType,
219
+ currentNodeRunIndex: index,
220
+ method: target[prop],
221
+ arguments: [(0, n8n_workflow_1.deepCopy)(documents), query],
222
+ }));
223
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-reranked', { query });
224
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
225
+ return response;
226
+ };
227
+ }
228
+ }
229
+ if (originalInstance instanceof n8n_json_loader_1.N8nJsonLoader ||
230
+ originalInstance instanceof n8n_binary_loader_1.N8nBinaryLoader) {
231
+ if (prop === 'processAll' && 'processAll' in target) {
232
+ return async (items) => {
233
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiDocument;
234
+ const { index } = executeFunctions.addInputData(connectionType, [items]);
235
+ const response = (await callMethodAsync.call(target, {
236
+ executeFunctions,
237
+ connectionType,
238
+ currentNodeRunIndex: index,
239
+ method: target[prop],
240
+ arguments: [items],
241
+ }));
242
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
243
+ return response;
244
+ };
245
+ }
246
+ if (prop === 'processItem' && 'processItem' in target) {
247
+ return async (item, itemIndex) => {
248
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiDocument;
249
+ const { index } = executeFunctions.addInputData(connectionType, [[item]]);
250
+ const response = (await callMethodAsync.call(target, {
251
+ executeFunctions,
252
+ connectionType,
253
+ currentNodeRunIndex: index,
254
+ method: target[prop],
255
+ arguments: [item, itemIndex],
256
+ }));
257
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-document-processed');
258
+ executeFunctions.addOutputData(connectionType, index, [
259
+ [{ json: { response }, pairedItem: { item: itemIndex } }],
260
+ ]);
261
+ return response;
262
+ };
263
+ }
264
+ }
265
+ if (originalInstance instanceof textsplitters_1.TextSplitter) {
266
+ if (prop === 'splitText' && 'splitText' in target) {
267
+ return async (text) => {
268
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiTextSplitter;
269
+ const { index } = executeFunctions.addInputData(connectionType, [
270
+ [{ json: { textSplitter: text } }],
271
+ ]);
272
+ const response = (await callMethodAsync.call(target, {
273
+ executeFunctions,
274
+ connectionType,
275
+ currentNodeRunIndex: index,
276
+ method: target[prop],
277
+ arguments: [text],
278
+ }));
279
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-text-split');
280
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
281
+ return response;
282
+ };
283
+ }
284
+ }
285
+ if ((0, guards_1.isToolsInstance)(originalInstance)) {
286
+ if (prop === '_call' && '_call' in target) {
287
+ return async (query) => {
288
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiTool;
289
+ const inputData = { query };
290
+ if (target.metadata?.isFromToolkit) {
291
+ inputData.tool = {
292
+ name: target.name,
293
+ description: target.description,
294
+ };
295
+ }
296
+ const { index } = executeFunctions.addInputData(connectionType, [
297
+ [{ json: inputData }],
298
+ ]);
299
+ const response = (await callMethodAsync.call(target, {
300
+ executeFunctions,
301
+ connectionType,
302
+ currentNodeRunIndex: index,
303
+ method: target[prop],
304
+ arguments: [query],
305
+ }));
306
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-tool-called', { ...inputData, response });
307
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
308
+ if (typeof response === 'string')
309
+ return response;
310
+ return JSON.stringify(response);
311
+ };
312
+ }
313
+ }
314
+ if (originalInstance instanceof vectorstores_1.VectorStore) {
315
+ if (prop === 'similaritySearch' && 'similaritySearch' in target) {
316
+ return async (query, k, filter, _callbacks) => {
317
+ connectionType = n8n_workflow_1.NodeConnectionTypes.AiVectorStore;
318
+ const { index } = executeFunctions.addInputData(connectionType, [
319
+ [{ json: { query, k, filter } }],
320
+ ]);
321
+ const response = (await callMethodAsync.call(target, {
322
+ executeFunctions,
323
+ connectionType,
324
+ currentNodeRunIndex: index,
325
+ method: target[prop],
326
+ arguments: [query, k, filter, _callbacks],
327
+ }));
328
+ (0, log_ai_event_1.logAiEvent)(executeFunctions, 'ai-vector-store-searched', { query });
329
+ executeFunctions.addOutputData(connectionType, index, [[{ json: { response } }]]);
330
+ return response;
331
+ };
332
+ }
333
+ }
334
+ return target[prop];
335
+ },
336
+ });
337
+ }
338
+ });
339
+ //# sourceMappingURL=log-wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-wrapper.js","sourceRoot":"","sources":["../../../src/utils/log-wrapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@langchain/classic/document_loaders/fs/json", "@langchain/classic/document_loaders/fs/text", "@langchain/community/document_loaders/fs/csv", "@langchain/community/document_loaders/fs/docx", "@langchain/community/document_loaders/fs/epub", "@langchain/community/document_loaders/fs/pdf", "fs", "n8n-workflow", "stream/promises", "tmp-promise", "./helpers"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.N8nBinaryLoader = void 0;
13
+ const json_1 = require("@langchain/classic/document_loaders/fs/json");
14
+ const text_1 = require("@langchain/classic/document_loaders/fs/text");
15
+ const csv_1 = require("@langchain/community/document_loaders/fs/csv");
16
+ const docx_1 = require("@langchain/community/document_loaders/fs/docx");
17
+ const epub_1 = require("@langchain/community/document_loaders/fs/epub");
18
+ const pdf_1 = require("@langchain/community/document_loaders/fs/pdf");
19
+ const fs_1 = require("fs");
20
+ const n8n_workflow_1 = require("n8n-workflow");
21
+ const promises_1 = require("stream/promises");
22
+ const tmp_promise_1 = require("tmp-promise");
23
+ const helpers_1 = require("./helpers");
24
+ const SUPPORTED_MIME_TYPES = {
25
+ auto: ['*/*'],
26
+ pdfLoader: ['application/pdf'],
27
+ csvLoader: ['text/csv'],
28
+ epubLoader: ['application/epub+zip'],
29
+ docxLoader: ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
30
+ textLoader: ['text/plain', 'text/mdx', 'text/md', 'text/markdown'],
31
+ jsonLoader: ['application/json'],
32
+ };
33
+ class N8nBinaryLoader {
34
+ constructor(context, optionsPrefix = '', binaryDataKey = '', textSplitter) {
35
+ this.context = context;
36
+ this.optionsPrefix = optionsPrefix;
37
+ this.binaryDataKey = binaryDataKey;
38
+ this.textSplitter = textSplitter;
39
+ }
40
+ async processAll(items) {
41
+ const docs = [];
42
+ if (!items)
43
+ return [];
44
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
45
+ const processedDocuments = await this.processItem(items[itemIndex], itemIndex);
46
+ docs.push(...processedDocuments);
47
+ }
48
+ return docs;
49
+ }
50
+ async validateMimeType(mimeType, selectedLoader) {
51
+ if (selectedLoader !== 'auto' && !SUPPORTED_MIME_TYPES[selectedLoader].includes(mimeType)) {
52
+ const neededLoader = Object.keys(SUPPORTED_MIME_TYPES).find((loader) => SUPPORTED_MIME_TYPES[loader].includes(mimeType));
53
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Mime type doesn't match selected loader. Please select under "Loader Type": ${neededLoader}`);
54
+ }
55
+ if (!Object.values(SUPPORTED_MIME_TYPES).flat().includes(mimeType)) {
56
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported mime type: ${mimeType}`);
57
+ }
58
+ if (!SUPPORTED_MIME_TYPES[selectedLoader].includes(mimeType) &&
59
+ selectedLoader !== 'textLoader' &&
60
+ selectedLoader !== 'auto') {
61
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `Unsupported mime type: ${mimeType} for selected loader: ${selectedLoader}`);
62
+ }
63
+ }
64
+ async getFilePathOrBlob(binaryData, mimeType) {
65
+ if (binaryData.id) {
66
+ const binaryBuffer = await this.context.helpers.binaryToBuffer(await this.context.helpers.getBinaryStream(binaryData.id));
67
+ return new Blob([binaryBuffer], {
68
+ type: mimeType,
69
+ });
70
+ }
71
+ else {
72
+ return new Blob([Buffer.from(binaryData.data, n8n_workflow_1.BINARY_ENCODING)], {
73
+ type: mimeType,
74
+ });
75
+ }
76
+ }
77
+ async getLoader(mimeType, filePathOrBlob, itemIndex) {
78
+ switch (mimeType) {
79
+ case 'application/pdf':
80
+ const splitPages = this.context.getNodeParameter(`${this.optionsPrefix}splitPages`, itemIndex, false);
81
+ return new pdf_1.PDFLoader(filePathOrBlob, { splitPages });
82
+ case 'text/csv':
83
+ const column = this.context.getNodeParameter(`${this.optionsPrefix}column`, itemIndex, null);
84
+ const separator = this.context.getNodeParameter(`${this.optionsPrefix}separator`, itemIndex, ',');
85
+ return new csv_1.CSVLoader(filePathOrBlob, { column: column ?? undefined, separator });
86
+ case 'application/epub+zip':
87
+ let filePath;
88
+ if (filePathOrBlob instanceof Blob) {
89
+ const tmpFileData = await (0, tmp_promise_1.file)({ prefix: 'epub-loader-' });
90
+ const bufferData = await filePathOrBlob.arrayBuffer();
91
+ await (0, promises_1.pipeline)([new Uint8Array(bufferData)], (0, fs_1.createWriteStream)(tmpFileData.path));
92
+ return new epub_1.EPubLoader(tmpFileData.path);
93
+ }
94
+ else {
95
+ filePath = filePathOrBlob;
96
+ }
97
+ return new epub_1.EPubLoader(filePath);
98
+ case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':
99
+ return new docx_1.DocxLoader(filePathOrBlob);
100
+ case 'text/plain':
101
+ return new text_1.TextLoader(filePathOrBlob);
102
+ case 'application/json':
103
+ const pointers = this.context.getNodeParameter(`${this.optionsPrefix}pointers`, itemIndex, '');
104
+ const pointersArray = pointers.split(',').map((pointer) => pointer.trim());
105
+ return new json_1.JSONLoader(filePathOrBlob, pointersArray);
106
+ default:
107
+ return new text_1.TextLoader(filePathOrBlob);
108
+ }
109
+ }
110
+ async loadDocuments(loader) {
111
+ return this.textSplitter
112
+ ? await this.textSplitter.splitDocuments(await loader.load())
113
+ : await loader.load();
114
+ }
115
+ async cleanupTmpFileIfNeeded(cleanupTmpFile) {
116
+ if (cleanupTmpFile) {
117
+ await cleanupTmpFile();
118
+ }
119
+ }
120
+ async processItem(item, itemIndex) {
121
+ const docs = [];
122
+ const binaryMode = this.context.getNodeParameter('binaryMode', itemIndex, 'allInputData');
123
+ if (binaryMode === 'allInputData') {
124
+ const binaryData = this.context.getInputData();
125
+ for (const data of binaryData) {
126
+ if (data.binary) {
127
+ const binaryDataKeys = Object.keys(data.binary);
128
+ for (const fileKey of binaryDataKeys) {
129
+ const processedDocuments = await this.processItemByKey(item, itemIndex, fileKey);
130
+ docs.push(...processedDocuments);
131
+ }
132
+ }
133
+ }
134
+ }
135
+ else {
136
+ const processedDocuments = await this.processItemByKey(item, itemIndex, this.binaryDataKey);
137
+ docs.push(...processedDocuments);
138
+ }
139
+ return docs;
140
+ }
141
+ async processItemByKey(item, itemIndex, binaryKey) {
142
+ const selectedLoader = this.context.getNodeParameter('loader', itemIndex, 'auto');
143
+ const docs = [];
144
+ const metadata = (0, helpers_1.getMetadataFiltersValues)(this.context, itemIndex);
145
+ if (!item)
146
+ return [];
147
+ const binaryData = this.context.helpers.assertBinaryData(itemIndex, binaryKey);
148
+ const { mimeType } = binaryData;
149
+ await this.validateMimeType(mimeType, selectedLoader);
150
+ const filePathOrBlob = await this.getFilePathOrBlob(binaryData, mimeType);
151
+ const cleanupTmpFile = undefined;
152
+ const loader = await this.getLoader(mimeType, filePathOrBlob, itemIndex);
153
+ const loadedDoc = await this.loadDocuments(loader);
154
+ docs.push(...loadedDoc);
155
+ if (metadata) {
156
+ docs.forEach((document) => {
157
+ document.metadata = {
158
+ ...document.metadata,
159
+ ...metadata,
160
+ };
161
+ });
162
+ }
163
+ await this.cleanupTmpFileIfNeeded(cleanupTmpFile);
164
+ return docs;
165
+ }
166
+ }
167
+ exports.N8nBinaryLoader = N8nBinaryLoader;
168
+ });
169
+ //# sourceMappingURL=n8n-binary-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-binary-loader.js","sourceRoot":"","sources":["../../../src/utils/n8n-binary-loader.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,sEAAyE;IACzE,sEAAyE;IACzE,sEAAyE;IACzE,wEAA2E;IAC3E,wEAA2E;IAC3E,sEAAyE;IAGzE,2BAAuC;IAOvC,+CAAmE;IACnE,8CAA2C;IAC3C,6CAAoE;IAEpE,uCAAqD;IAErD,MAAM,oBAAoB,GAAG;QAC5B,IAAI,EAAE,CAAC,KAAK,CAAC;QACb,SAAS,EAAE,CAAC,iBAAiB,CAAC;QAC9B,SAAS,EAAE,CAAC,UAAU,CAAC;QACvB,UAAU,EAAE,CAAC,sBAAsB,CAAC;QACpC,UAAU,EAAE,CAAC,yEAAyE,CAAC;QACvF,UAAU,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,CAAC;QAClE,UAAU,EAAE,CAAC,kBAAkB,CAAC;KAChC,CAAC;IAEF,MAAa,eAAe;QAC3B,YACS,OAAiD,EACjD,gBAAgB,EAAE,EAClB,gBAAgB,EAAE,EAClB,YAA2B;YAH3B,YAAO,GAAP,OAAO,CAA0C;YACjD,kBAAa,GAAb,aAAa,CAAK;YAClB,kBAAa,GAAb,aAAa,CAAK;YAClB,iBAAY,GAAZ,YAAY,CAAe;QACjC,CAAC;QAEJ,KAAK,CAAC,UAAU,CAAC,KAA4B;YAC5C,MAAM,IAAI,GAAe,EAAE,CAAC;YAE5B,IAAI,CAAC,KAAK;gBAAE,OAAO,EAAE,CAAC;YAEtB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;gBAC/D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;gBAE/E,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAEO,KAAK,CAAC,gBAAgB,CAC7B,QAAgB,EAChB,cAAiD;YAGjD,IAAI,cAAc,KAAK,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3F,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACtE,oBAAoB,CAAC,MAA2C,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpF,CAAC;gBAEF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EACtB,+EAA+E,YAAY,EAAE,CAC7F,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpE,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,0BAA0B,QAAQ,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,IACC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACxD,cAAc,KAAK,YAAY;gBAC/B,cAAc,KAAK,MAAM,EACxB,CAAC;gBACF,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EACtB,0BAA0B,QAAQ,yBAAyB,cAAc,EAAE,CAC3E,CAAC;YACH,CAAC;QACF,CAAC;QAEO,KAAK,CAAC,iBAAiB,CAC9B,UAAuB,EACvB,QAAgB;YAEhB,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAC7D,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CACzD,CAAC;gBACF,OAAO,IAAI,IAAI,CAAC,CAAC,YAAwB,CAAC,EAAE;oBAC3C,IAAI,EAAE,QAAQ;iBACd,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,OAAO,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,8BAAe,CAAC,CAAC,EAAE;oBAChE,IAAI,EAAE,QAAQ;iBACd,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAEO,KAAK,CAAC,SAAS,CACtB,QAAgB,EAChB,cAA6B,EAC7B,SAAiB;YAEjB,QAAQ,QAAQ,EAAE,CAAC;gBAClB,KAAK,iBAAiB;oBACrB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC/C,GAAG,IAAI,CAAC,aAAa,YAAY,EACjC,SAAS,EACT,KAAK,CACM,CAAC;oBACb,OAAO,IAAI,eAAS,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;gBACtD,KAAK,UAAU;oBACd,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC3C,GAAG,IAAI,CAAC,aAAa,QAAQ,EAC7B,SAAS,EACT,IAAI,CACM,CAAC;oBACZ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC9C,GAAG,IAAI,CAAC,aAAa,WAAW,EAChC,SAAS,EACT,GAAG,CACO,CAAC;oBACZ,OAAO,IAAI,eAAS,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;gBAClF,KAAK,sBAAsB;oBAE1B,IAAI,QAAgB,CAAC;oBACrB,IAAI,cAAc,YAAY,IAAI,EAAE,CAAC;wBACpC,MAAM,WAAW,GAAG,MAAM,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;wBAC9D,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;wBACtD,MAAM,IAAA,mBAAQ,EAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,IAAA,sBAAiB,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;wBAClF,OAAO,IAAI,iBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;oBACzC,CAAC;yBAAM,CAAC;wBACP,QAAQ,GAAG,cAAc,CAAC;oBAC3B,CAAC;oBACD,OAAO,IAAI,iBAAU,CAAC,QAAQ,CAAC,CAAC;gBACjC,KAAK,yEAAyE;oBAC7E,OAAO,IAAI,iBAAU,CAAC,cAAc,CAAC,CAAC;gBACvC,KAAK,YAAY;oBAChB,OAAO,IAAI,iBAAU,CAAC,cAAc,CAAC,CAAC;gBACvC,KAAK,kBAAkB;oBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC7C,GAAG,IAAI,CAAC,aAAa,UAAU,EAC/B,SAAS,EACT,EAAE,CACQ,CAAC;oBACZ,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC3E,OAAO,IAAI,iBAAU,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBACtD;oBACC,OAAO,IAAI,iBAAU,CAAC,cAAc,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QAEO,KAAK,CAAC,aAAa,CAC1B,MAAiF;YAEjF,OAAO,IAAI,CAAC,YAAY;gBACvB,CAAC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC7D,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAEO,KAAK,CAAC,sBAAsB,CACnC,cAAsD;YAEtD,IAAI,cAAc,EAAE,CAAC;gBACpB,MAAM,cAAc,EAAE,CAAC;YACxB,CAAC;QACF,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,IAAwB,EAAE,SAAiB;YAC5D,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;YAC1F,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAE/C,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC/B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAEhD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;4BACtC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;4BACjF,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;wBAClC,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5F,IAAI,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAED,KAAK,CAAC,gBAAgB,CACrB,IAAwB,EACxB,SAAiB,EACjB,SAAiB;YAEjB,MAAM,cAAc,GAAsC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACtF,QAAQ,EACR,SAAS,EACT,MAAM,CAC+B,CAAC;YAEvC,MAAM,IAAI,GAAe,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAA,kCAAwB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAEnE,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YAErB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/E,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;YAEhC,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAEtD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC1E,MAAM,cAAc,GAA2C,SAAS,CAAC;YACzE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YAExB,IAAI,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACzB,QAAQ,CAAC,QAAQ,GAAG;wBACnB,GAAG,QAAQ,CAAC,QAAQ;wBACpB,GAAG,QAAQ;qBACX,CAAC;gBACH,CAAC,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;YAElD,OAAO,IAAI,CAAC;QACb,CAAC;KACD;IA/MD,0CA+MC"}
@@ -0,0 +1,76 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "@langchain/classic/document_loaders/fs/json", "@langchain/classic/document_loaders/fs/text", "n8n-workflow", "./helpers"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.N8nJsonLoader = void 0;
13
+ const json_1 = require("@langchain/classic/document_loaders/fs/json");
14
+ const text_1 = require("@langchain/classic/document_loaders/fs/text");
15
+ const n8n_workflow_1 = require("n8n-workflow");
16
+ const helpers_1 = require("./helpers");
17
+ class N8nJsonLoader {
18
+ constructor(context, optionsPrefix = '', textSplitter) {
19
+ this.context = context;
20
+ this.optionsPrefix = optionsPrefix;
21
+ this.textSplitter = textSplitter;
22
+ }
23
+ async processAll(items) {
24
+ const docs = [];
25
+ if (!items)
26
+ return [];
27
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
28
+ const processedDocuments = await this.processItem(items[itemIndex], itemIndex);
29
+ docs.push(...processedDocuments);
30
+ }
31
+ return docs;
32
+ }
33
+ async processItem(item, itemIndex) {
34
+ const mode = this.context.getNodeParameter('jsonMode', itemIndex, 'allInputData');
35
+ const pointers = this.context.getNodeParameter(`${this.optionsPrefix}pointers`, itemIndex, '');
36
+ const pointersArray = pointers.split(',').map((pointer) => pointer.trim());
37
+ const metadata = (0, helpers_1.getMetadataFiltersValues)(this.context, itemIndex) ?? [];
38
+ if (!item)
39
+ return [];
40
+ let documentLoader = null;
41
+ if (mode === 'allInputData') {
42
+ const itemString = JSON.stringify(item.json);
43
+ const itemBlob = new Blob([itemString], { type: 'application/json' });
44
+ documentLoader = new json_1.JSONLoader(itemBlob, pointersArray);
45
+ }
46
+ if (mode === 'expressionData') {
47
+ const dataString = this.context.getNodeParameter('jsonData', itemIndex);
48
+ if (typeof dataString === 'object') {
49
+ const itemBlob = new Blob([JSON.stringify(dataString)], { type: 'application/json' });
50
+ documentLoader = new json_1.JSONLoader(itemBlob, pointersArray);
51
+ }
52
+ if (typeof dataString === 'string') {
53
+ const itemBlob = new Blob([dataString], { type: 'text/plain' });
54
+ documentLoader = new text_1.TextLoader(itemBlob);
55
+ }
56
+ }
57
+ if (documentLoader === null) {
58
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), 'Document loader is not initialized');
59
+ }
60
+ const docs = this.textSplitter
61
+ ? await this.textSplitter.splitDocuments(await documentLoader.load())
62
+ : await documentLoader.load();
63
+ if (metadata) {
64
+ docs.forEach((doc) => {
65
+ doc.metadata = {
66
+ ...doc.metadata,
67
+ ...metadata,
68
+ };
69
+ });
70
+ }
71
+ return docs;
72
+ }
73
+ }
74
+ exports.N8nJsonLoader = N8nJsonLoader;
75
+ });
76
+ //# sourceMappingURL=n8n-json-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"n8n-json-loader.js","sourceRoot":"","sources":["../../../src/utils/n8n-json-loader.ts"],"names":[],"mappings":"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"}