@n8n/ai-utilities 0.30.1 → 0.31.1

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 (61) hide show
  1. package/dist/cjs/index.d.ts +3 -1
  2. package/dist/cjs/index.js +6 -2
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/model-discovery/chat-model-errors.d.ts +2 -0
  5. package/dist/cjs/model-discovery/chat-model-errors.js +34 -0
  6. package/dist/cjs/model-discovery/chat-model-errors.js.map +1 -0
  7. package/dist/cjs/model-discovery/index.d.ts +5 -0
  8. package/dist/cjs/model-discovery/index.js +17 -1
  9. package/dist/cjs/model-discovery/index.js.map +1 -1
  10. package/dist/cjs/model-discovery/providers/alibaba.d.ts +2 -0
  11. package/dist/cjs/model-discovery/providers/alibaba.js +13 -0
  12. package/dist/cjs/model-discovery/providers/alibaba.js.map +1 -0
  13. package/dist/cjs/model-discovery/providers/minimax.d.ts +1 -0
  14. package/dist/cjs/model-discovery/providers/minimax.js +6 -0
  15. package/dist/cjs/model-discovery/providers/minimax.js.map +1 -0
  16. package/dist/cjs/model-discovery/providers/moonshotai.d.ts +1 -0
  17. package/dist/cjs/model-discovery/providers/moonshotai.js +6 -0
  18. package/dist/cjs/model-discovery/providers/moonshotai.js.map +1 -0
  19. package/dist/cjs/model-discovery/request.d.ts +3 -0
  20. package/dist/cjs/model-discovery/request.js +12 -0
  21. package/dist/cjs/model-discovery/request.js.map +1 -1
  22. package/dist/cjs/typecheck.tsbuildinfo +1 -1
  23. package/dist/cjs/utils/http-proxy-agent.d.ts +8 -2
  24. package/dist/cjs/utils/http-proxy-agent.js +12 -14
  25. package/dist/cjs/utils/http-proxy-agent.js.map +1 -1
  26. package/dist/cjs/utils/log-ai-event.js +3 -1
  27. package/dist/cjs/utils/log-ai-event.js.map +1 -1
  28. package/dist/cjs/utils/redact-secrets.d.ts +2 -0
  29. package/dist/cjs/utils/redact-secrets.js +99 -0
  30. package/dist/cjs/utils/redact-secrets.js.map +1 -0
  31. package/dist/esm/index.d.ts +3 -1
  32. package/dist/esm/index.js +6 -2
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/model-discovery/chat-model-errors.d.ts +2 -0
  35. package/dist/esm/model-discovery/chat-model-errors.js +34 -0
  36. package/dist/esm/model-discovery/chat-model-errors.js.map +1 -0
  37. package/dist/esm/model-discovery/index.d.ts +5 -0
  38. package/dist/esm/model-discovery/index.js +17 -1
  39. package/dist/esm/model-discovery/index.js.map +1 -1
  40. package/dist/esm/model-discovery/providers/alibaba.d.ts +2 -0
  41. package/dist/esm/model-discovery/providers/alibaba.js +13 -0
  42. package/dist/esm/model-discovery/providers/alibaba.js.map +1 -0
  43. package/dist/esm/model-discovery/providers/minimax.d.ts +1 -0
  44. package/dist/esm/model-discovery/providers/minimax.js +6 -0
  45. package/dist/esm/model-discovery/providers/minimax.js.map +1 -0
  46. package/dist/esm/model-discovery/providers/moonshotai.d.ts +1 -0
  47. package/dist/esm/model-discovery/providers/moonshotai.js +6 -0
  48. package/dist/esm/model-discovery/providers/moonshotai.js.map +1 -0
  49. package/dist/esm/model-discovery/request.d.ts +3 -0
  50. package/dist/esm/model-discovery/request.js +12 -0
  51. package/dist/esm/model-discovery/request.js.map +1 -1
  52. package/dist/esm/typecheck.tsbuildinfo +1 -1
  53. package/dist/esm/utils/http-proxy-agent.d.ts +8 -2
  54. package/dist/esm/utils/http-proxy-agent.js +12 -14
  55. package/dist/esm/utils/http-proxy-agent.js.map +1 -1
  56. package/dist/esm/utils/log-ai-event.js +3 -1
  57. package/dist/esm/utils/log-ai-event.js.map +1 -1
  58. package/dist/esm/utils/redact-secrets.d.ts +2 -0
  59. package/dist/esm/utils/redact-secrets.js +99 -0
  60. package/dist/esm/utils/redact-secrets.js.map +1 -0
  61. package/package.json +7 -7
@@ -6,6 +6,12 @@ export interface AgentTimeoutOptions {
6
6
  bodyTimeout?: number;
7
7
  connectTimeout?: number;
8
8
  }
9
- export declare function getProxyAgent(targetUrl?: string, timeoutOptions?: AgentTimeoutOptions, lookup?: LookupFunction): Agent | ProxyAgent | undefined;
10
- export declare function proxyFetch(input: RequestInfo | URL, init?: RequestInit, timeoutOptions?: AgentTimeoutOptions, lookup?: LookupFunction): Promise<Response>;
9
+ export declare function getProxyAgent(targetUrl?: string, timeoutOptions?: AgentTimeoutOptions, lookup?: LookupFunction): Agent | ProxyAgent;
10
+ export interface ProxyFetchOptions {
11
+ input: RequestInfo | URL;
12
+ init?: RequestInit;
13
+ timeoutOptions?: AgentTimeoutOptions;
14
+ lookup: LookupFunction;
15
+ }
16
+ export declare function proxyFetch({ input, init, timeoutOptions, lookup, }: ProxyFetchOptions): Promise<Response>;
11
17
  export declare function getNodeProxyAgent(targetUrl?: string, agentOptions?: AgentOptions): import("https").Agent | undefined;
@@ -4,10 +4,12 @@ exports.getProxyAgent = getProxyAgent;
4
4
  exports.proxyFetch = proxyFetch;
5
5
  exports.getNodeProxyAgent = getNodeProxyAgent;
6
6
  const proxy_1 = require("@n8n/backend-network/proxy");
7
+ const node_dns_1 = require("node:dns");
7
8
  const undici_1 = require("undici");
8
9
  const DEFAULT_TIMEOUT = parseInt(process.env.N8N_AI_TIMEOUT_MAX ?? '3600000', 10);
9
10
  const PROXY_FALLBACK_TARGET = 'https://example.nonexistent/';
10
- function getProxyAgent(targetUrl, timeoutOptions, lookup) {
11
+ let sharedAgent;
12
+ function getProxyAgent(targetUrl, timeoutOptions, lookup = node_dns_1.lookup) {
11
13
  const proxyUrl = (0, proxy_1.resolveProxyUrl)(targetUrl, PROXY_FALLBACK_TARGET);
12
14
  const agentOptions = {
13
15
  headersTimeout: timeoutOptions?.headersTimeout ?? DEFAULT_TIMEOUT,
@@ -16,21 +18,17 @@ function getProxyAgent(targetUrl, timeoutOptions, lookup) {
16
18
  connectTimeout: timeoutOptions.connectTimeout,
17
19
  }),
18
20
  };
19
- if (!proxyUrl) {
20
- if (lookup) {
21
- return new undici_1.Agent({ ...agentOptions, connect: { lookup } });
22
- }
23
- if (timeoutOptions) {
24
- return new undici_1.Agent(agentOptions);
25
- }
26
- if (process.env.N8N_AI_TIMEOUT_MAX) {
27
- return new undici_1.Agent(agentOptions);
28
- }
29
- return undefined;
21
+ if (proxyUrl) {
22
+ return new undici_1.ProxyAgent({ uri: proxyUrl, ...agentOptions });
23
+ }
24
+ const isDefaultCase = !timeoutOptions && !process.env.N8N_AI_TIMEOUT_MAX && lookup === node_dns_1.lookup;
25
+ if (isDefaultCase) {
26
+ sharedAgent ??= new undici_1.Agent({ ...agentOptions, connect: { lookup } });
27
+ return sharedAgent;
30
28
  }
31
- return new undici_1.ProxyAgent({ uri: proxyUrl, ...agentOptions });
29
+ return new undici_1.Agent({ ...agentOptions, connect: { lookup } });
32
30
  }
33
- async function proxyFetch(input, init, timeoutOptions, lookup) {
31
+ async function proxyFetch({ input, init, timeoutOptions, lookup, }) {
34
32
  const targetUrl = input instanceof Request ? input.url : input.toString();
35
33
  const dispatcher = getProxyAgent(targetUrl, timeoutOptions, lookup);
36
34
  return (await (0, undici_1.fetch)(input, {
@@ -1 +1 @@
1
- {"version":3,"file":"http-proxy-agent.js","sourceRoot":"","sources":["../../../src/utils/http-proxy-agent.ts"],"names":[],"mappings":";;;;;AAkBA,sDAAoF;AAIpF,mCAAiE;AAejE,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,EAAE,EAAE,CAAC,CAAC;AAMlF,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAsB7D,uBACC,SAAkB,EAClB,cAAoC,EACpC,MAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG;QACpB,cAAc,EAAE,cAAc,EAAE,cAAc,IAAI,eAAe;QACjE,WAAW,EAAE,cAAc,EAAE,WAAW,IAAI,eAAe;QAC3D,GAAG,CAAC,cAAc,EAAE,cAAc,KAAK,SAAS,IAAI;YACnD,cAAc,EAAE,cAAc,CAAC,cAAc;SAC7C,CAAC;KACF,CAAC;IAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,cAAK,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACpB,OAAO,IAAI,cAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YACpC,OAAO,IAAI,cAAK,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;AAC3D,CAAC;AAWM,KAAK,qBACX,KAAwB,EACxB,IAAkB,EAClB,cAAoC,EACpC,MAAuB;IAEvB,MAAM,SAAS,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAIpE,OAAO,CAAC,MAAM,IAAA,cAAW,EAAC,KAA0C,EAAE;QACrE,GAAI,IAA0C;QAC9C,UAAU;KACV,CAAC,CAAwB,CAAC;AAC5B,CAAC;AAUD,2BAAkC,SAAkB,EAAE,YAA2B;IAChF,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAA,6BAAqB,EAAC,SAAS,IAAI,qBAAqB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"http-proxy-agent.js","sourceRoot":"","sources":["../../../src/utils/http-proxy-agent.ts"],"names":[],"mappings":";;;;;AAkBA,sDAAoF;AACpF,uCAAmD;AAInD,mCAAiE;AAejE,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,EAAE,EAAE,CAAC,CAAC;AAMlF,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAO7D,IAAI,WAA8B,CAAC;AAkBnC,uBACC,SAAkB,EAClB,cAAoC,EACpC,MAAM,GAAmB,iBAAa;IAEtC,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEnE,MAAM,YAAY,GAAG;QACpB,cAAc,EAAE,cAAc,EAAE,cAAc,IAAI,eAAe;QACjE,WAAW,EAAE,cAAc,EAAE,WAAW,IAAI,eAAe;QAC3D,GAAG,CAAC,cAAc,EAAE,cAAc,KAAK,SAAS,IAAI;YACnD,cAAc,EAAE,cAAc,CAAC,cAAc;SAC7C,CAAC;KACF,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,mBAAU,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,aAAa,GAClB,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,KAAK,iBAAa,CAAC;IAEhF,IAAI,aAAa,EAAE,CAAC;QACnB,WAAW,KAAK,IAAI,cAAK,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpE,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,cAAK,CAAC,EAAE,GAAG,YAAY,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAoBM,KAAK,qBAAqB,EAChC,KAAK,EACL,IAAI,EACJ,cAAc,EACd,MAAM,GACa;IACnB,MAAM,SAAS,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAIpE,OAAO,CAAC,MAAM,IAAA,cAAW,EAAC,KAA0C,EAAE;QACrE,GAAI,IAA0C;QAC9C,UAAU;KACV,CAAC,CAAwB,CAAC;AAC5B,CAAC;AAUD,2BAAkC,SAAkB,EAAE,YAA2B;IAChF,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAEnE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO,IAAA,6BAAqB,EAAC,SAAS,IAAI,qBAAqB,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAC1F,CAAC"}
@@ -2,9 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.logAiEvent = logAiEvent;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
+ const redact_secrets_1 = require("./redact-secrets");
5
6
  function logAiEvent(executeFunctions, event, data) {
6
7
  try {
7
- executeFunctions.logAiEvent(event, data ? (0, n8n_workflow_1.jsonStringify)(data) : undefined);
8
+ const payload = event === 'ai-tool-called' && data ? (0, redact_secrets_1.sanitizeCredentialShapedValues)(data) : data;
9
+ executeFunctions.logAiEvent(event, payload ? (0, n8n_workflow_1.jsonStringify)(payload) : undefined);
8
10
  }
9
11
  catch (error) {
10
12
  executeFunctions.logger.debug(`Error logging AI event: ${event}`);
@@ -1 +1 @@
1
- {"version":3,"file":"log-ai-event.js","sourceRoot":"","sources":["../../../src/utils/log-ai-event.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAE7C,oBACC,gBAA0D,EAC1D,KAAc,EACd,IAAkB;IAElB,IAAI,CAAC;QACJ,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"log-ai-event.js","sourceRoot":"","sources":["../../../src/utils/log-ai-event.ts"],"names":[],"mappings":";;;AACA,+CAA6C;AAE7C,qDAAkE;AAElE,oBACC,gBAA0D,EAC1D,KAAc,EACd,IAAkB;IAElB,IAAI,CAAC;QACJ,MAAM,OAAO,GACZ,KAAK,KAAK,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAA,+CAA8B,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAClF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;AACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const redactSecrets: (content: string) => string;
2
+ export declare function sanitizeCredentialShapedValues(value: unknown): unknown;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.redactSecrets = void 0;
4
+ exports.sanitizeCredentialShapedValues = sanitizeCredentialShapedValues;
5
+ const redact_text_1 = require("@n8n/utils/redaction/redact-text");
6
+ const n8n_workflow_1 = require("n8n-workflow");
7
+ const OPTIONS = { secrets: true, redactSensitiveKeys: true };
8
+ function isPlainObject(value) {
9
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
10
+ }
11
+ function parseJsonObject(value) {
12
+ try {
13
+ const parsed = JSON.parse(value);
14
+ if (parsed !== null && typeof parsed === 'object') {
15
+ return parsed;
16
+ }
17
+ }
18
+ catch {
19
+ return undefined;
20
+ }
21
+ return undefined;
22
+ }
23
+ function serializeJson(original, parsed, redacted) {
24
+ if ((0, n8n_workflow_1.jsonStringify)(redacted) === (0, n8n_workflow_1.jsonStringify)(parsed)) {
25
+ return original;
26
+ }
27
+ return original.includes('\n') ? JSON.stringify(redacted, null, 2) : (0, n8n_workflow_1.jsonStringify)(redacted);
28
+ }
29
+ function parseNestedJson(value) {
30
+ if (typeof value === 'string') {
31
+ const parsed = parseJsonObject(value);
32
+ return parsed === undefined ? value : parseNestedJson(parsed);
33
+ }
34
+ if (Array.isArray(value)) {
35
+ return value.map(parseNestedJson);
36
+ }
37
+ if (isPlainObject(value)) {
38
+ const walked = {};
39
+ for (const [key, child] of Object.entries(value)) {
40
+ walked[key] = parseNestedJson(child);
41
+ }
42
+ return walked;
43
+ }
44
+ return value;
45
+ }
46
+ function restoreJsonStrings(original, redacted) {
47
+ if (typeof original === 'string') {
48
+ const parsed = parseJsonObject(original);
49
+ if (parsed !== undefined) {
50
+ return serializeJson(original, parsed, restoreJsonStrings(parsed, redacted));
51
+ }
52
+ return redacted;
53
+ }
54
+ if (Array.isArray(original) && Array.isArray(redacted)) {
55
+ return original.map((item, index) => restoreJsonStrings(item, redacted[index]));
56
+ }
57
+ if (isPlainObject(original) && isPlainObject(redacted)) {
58
+ const restored = {};
59
+ for (const [key, child] of Object.entries(original)) {
60
+ restored[key] = restoreJsonStrings(child, redacted[key]);
61
+ }
62
+ return restored;
63
+ }
64
+ return redacted;
65
+ }
66
+ function redactJsonValue(value) {
67
+ return restoreJsonStrings(value, (0, redact_text_1.redactDeep)(parseNestedJson(value), OPTIONS).value);
68
+ }
69
+ const redactSecrets = (content) => {
70
+ const parsed = parseJsonObject(content);
71
+ if (parsed !== undefined) {
72
+ return serializeJson(content, parsed, redactJsonValue(parsed));
73
+ }
74
+ const start = content.indexOf('{');
75
+ const end = content.lastIndexOf('}');
76
+ if (start !== -1 && end > start) {
77
+ const slice = content.slice(start, end + 1);
78
+ const nested = parseJsonObject(slice);
79
+ if (nested !== undefined) {
80
+ content =
81
+ content.slice(0, start) +
82
+ serializeJson(slice, nested, redactJsonValue(nested)) +
83
+ content.slice(end + 1);
84
+ }
85
+ }
86
+ return (0, redact_text_1.redactText)(content, OPTIONS).text;
87
+ };
88
+ exports.redactSecrets = redactSecrets;
89
+ function sanitizeCredentialShapedValues(value) {
90
+ if (value !== null && typeof value === 'object') {
91
+ const parsed = (0, n8n_workflow_1.jsonParse)((0, n8n_workflow_1.jsonStringify)(value), { fallbackValue: undefined });
92
+ if (parsed === undefined) {
93
+ throw new Error('Unable to sanitize tool-called payload');
94
+ }
95
+ return redactJsonValue(parsed);
96
+ }
97
+ return redactJsonValue(value);
98
+ }
99
+ //# sourceMappingURL=redact-secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-secrets.js","sourceRoot":"","sources":["../../../src/utils/redact-secrets.ts"],"names":[],"mappings":";;;;AAAA,kEAA0E;AAC1E,+CAAwD;AAExD,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAE7D,SAAS,aAAa,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACrC,IAAI,CAAC;QACJ,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACnD,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAGD,SAAS,aAAa,CAAC,QAAgB,EAAE,MAAe,EAAE,QAAiB;IAC1E,IAAI,IAAA,4BAAa,EAAC,QAAQ,CAAC,KAAK,IAAA,4BAAa,EAAC,MAAM,CAAC,EAAE,CAAC;QACvD,OAAO,QAAQ,CAAC;IACjB,CAAC;IACD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAa,EAAC,QAAQ,CAAC,CAAC;AAC9F,CAAC;AAGD,SAAS,eAAe,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAGD,SAAS,kBAAkB,CAAC,QAAiB,EAAE,QAAiB;IAC/D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACtC,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAA,wBAAU,EAAC,eAAe,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;AACrF,CAAC;AAMM,MAAM,aAAa,GAAG,CAAC,OAAe,EAAU,EAAE;IACxD,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO;gBACN,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;oBACvB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACrD,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO,IAAA,wBAAU,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC,CAAC;AApBW,QAAA,aAAa,GAAb,aAAa,CAoBxB;AAOF,wCAA+C,KAAc;IAC5D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACjD,MAAM,MAAM,GAAY,IAAA,wBAAS,EAAC,IAAA,4BAAa,EAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/ai-utilities",
3
- "version": "0.30.1",
3
+ "version": "0.31.1",
4
4
  "description": "Utilities for building AI nodes in n8n",
5
5
  "types": "dist/esm/index.d.ts",
6
6
  "module": "dist/esm/index.js",
@@ -133,12 +133,12 @@
133
133
  "@thednp/dommatrix": "^3.1.1",
134
134
  "pdf-parse": "2.4.5",
135
135
  "undici": "^7.29.0",
136
- "@n8n/backend-network": "1.11.1",
137
- "@n8n/api-types": "1.37.1",
138
- "@n8n/config": "2.35.0",
139
- "@n8n/utils": "1.45.0",
140
- "@n8n/typescript-config": "1.10.0",
141
- "n8n-workflow": "2.37.1"
136
+ "@n8n/api-types": "1.38.1",
137
+ "@n8n/typescript-config": "1.11.0",
138
+ "@n8n/backend-network": "1.12.1",
139
+ "@n8n/config": "2.36.1",
140
+ "n8n-workflow": "2.38.1",
141
+ "@n8n/utils": "1.46.1"
142
142
  },
143
143
  "license": "SEE LICENSE IN LICENSE.md",
144
144
  "homepage": "https://n8n.io",