@n8n/ai-utilities 0.31.0 → 0.32.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.
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +6 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/typecheck.tsbuildinfo +1 -1
- package/dist/cjs/utils/follow-redirects.d.ts +3 -1
- package/dist/cjs/utils/follow-redirects.js +10 -1
- package/dist/cjs/utils/follow-redirects.js.map +1 -1
- package/dist/cjs/utils/http-proxy-agent.d.ts +8 -2
- package/dist/cjs/utils/http-proxy-agent.js +22 -16
- package/dist/cjs/utils/http-proxy-agent.js.map +1 -1
- package/dist/cjs/utils/refreshing-auth-fetch.d.ts +8 -0
- package/dist/cjs/utils/refreshing-auth-fetch.js +68 -0
- package/dist/cjs/utils/refreshing-auth-fetch.js.map +1 -0
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +6 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/typecheck.tsbuildinfo +1 -1
- package/dist/esm/utils/follow-redirects.d.ts +3 -1
- package/dist/esm/utils/follow-redirects.js +10 -1
- package/dist/esm/utils/follow-redirects.js.map +1 -1
- package/dist/esm/utils/http-proxy-agent.d.ts +8 -2
- package/dist/esm/utils/http-proxy-agent.js +22 -16
- package/dist/esm/utils/http-proxy-agent.js.map +1 -1
- package/dist/esm/utils/refreshing-auth-fetch.d.ts +8 -0
- package/dist/esm/utils/refreshing-auth-fetch.js +68 -0
- package/dist/esm/utils/refreshing-auth-fetch.js.map +1 -0
- package/package.json +12 -12
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export interface FollowRedirectsOptions {
|
|
2
|
-
onBeforeHop?: (url: string
|
|
2
|
+
onBeforeHop?: (url: string, info: {
|
|
3
|
+
crossedOrigin: boolean;
|
|
4
|
+
}) => void | Promise<void>;
|
|
3
5
|
maxRedirects?: number;
|
|
4
6
|
}
|
|
5
7
|
export declare function fetchFollowingRedirects(fetcher: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>, url: string | URL, init?: RequestInit, options?: FollowRedirectsOptions): Promise<Response>;
|
|
@@ -3,15 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.fetchFollowingRedirects = fetchFollowingRedirects;
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
5
|
const DEFAULT_MAX_REDIRECTS = 20;
|
|
6
|
+
const CREDENTIAL_HEADERS = ['authorization', 'cookie', 'proxy-authorization'];
|
|
6
7
|
async function fetchFollowingRedirects(fetcher, url, init, options) {
|
|
7
8
|
const maxRedirects = options?.maxRedirects ?? DEFAULT_MAX_REDIRECTS;
|
|
8
9
|
let currentInput = url;
|
|
9
10
|
let currentInit = { ...init };
|
|
10
11
|
let hops = 0;
|
|
12
|
+
let crossedOrigin = false;
|
|
11
13
|
while (true) {
|
|
12
14
|
const currentUrlString = currentInput instanceof URL ? currentInput.href : currentInput;
|
|
13
15
|
if (options?.onBeforeHop) {
|
|
14
|
-
await options.onBeforeHop(currentUrlString);
|
|
16
|
+
await options.onBeforeHop(currentUrlString, { crossedOrigin });
|
|
15
17
|
}
|
|
16
18
|
const response = await fetcher(currentInput, {
|
|
17
19
|
...currentInit,
|
|
@@ -30,6 +32,13 @@ async function fetchFollowingRedirects(fetcher, url, init, options) {
|
|
|
30
32
|
}
|
|
31
33
|
await response.body?.cancel().catch(() => { });
|
|
32
34
|
currentInput = new URL(location, currentUrlString);
|
|
35
|
+
if (currentInput.origin !== new URL(currentUrlString).origin) {
|
|
36
|
+
crossedOrigin = true;
|
|
37
|
+
const headers = new Headers(currentInit.headers);
|
|
38
|
+
for (const header of CREDENTIAL_HEADERS)
|
|
39
|
+
headers.delete(header);
|
|
40
|
+
currentInit = { ...currentInit, headers };
|
|
41
|
+
}
|
|
33
42
|
const method = (currentInit.method ?? 'GET').toUpperCase();
|
|
34
43
|
const isUnsafe = method !== 'GET' && method !== 'HEAD';
|
|
35
44
|
if (response.status === 303 ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"follow-redirects.js","sourceRoot":"","sources":["../../../src/utils/follow-redirects.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAM,qBAAqB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"follow-redirects.js","sourceRoot":"","sources":["../../../src/utils/follow-redirects.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAEhD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAajC,MAAM,kBAAkB,GAAG,CAAC,eAAe,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AAOvE,KAAK,kCACX,OAA4E,EAC5E,GAAiB,EACjB,IAAkB,EAClB,OAAgC;IAEhC,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,qBAAqB,CAAC;IACpE,IAAI,YAAY,GAAiB,GAAG,CAAC;IACrC,IAAI,WAAW,GAAgB,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3C,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,gBAAgB,GAAG,YAAY,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;QACxF,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;YAC1B,MAAM,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE;YAC5C,GAAG,WAAW;YACd,QAAQ,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACrD,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;YACzB,MAAM,IAAI,+BAAgB,CAAC,2BAA2B,YAAY,GAAG,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE9C,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAEnD,IAAI,YAAY,CAAC,MAAM,KAAK,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9D,aAAa,GAAG,IAAI,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACjD,KAAK,MAAM,MAAM,IAAI,kBAAkB;gBAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChE,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,OAAO,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;QACvD,IACC,QAAQ,CAAC,MAAM,KAAK,GAAG;YACvB,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,EACjE,CAAC;YACF,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAClE,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -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
|
|
10
|
-
export
|
|
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
|
-
|
|
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,24 +18,28 @@ function getProxyAgent(targetUrl, timeoutOptions, lookup) {
|
|
|
16
18
|
connectTimeout: timeoutOptions.connectTimeout,
|
|
17
19
|
}),
|
|
18
20
|
};
|
|
19
|
-
if (
|
|
20
|
-
|
|
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 });
|
|
30
23
|
}
|
|
31
|
-
|
|
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;
|
|
28
|
+
}
|
|
29
|
+
return new undici_1.Agent({ ...agentOptions, connect: { lookup } });
|
|
32
30
|
}
|
|
33
|
-
async function proxyFetch(input, init, timeoutOptions, lookup) {
|
|
34
|
-
const
|
|
31
|
+
async function proxyFetch({ input, init, timeoutOptions, lookup, }) {
|
|
32
|
+
const isRequest = typeof input !== 'string' && !(input instanceof URL);
|
|
33
|
+
const targetUrl = isRequest ? input.url : input.toString();
|
|
35
34
|
const dispatcher = getProxyAgent(targetUrl, timeoutOptions, lookup);
|
|
36
|
-
return (await (0, undici_1.fetch)(
|
|
35
|
+
return (await (0, undici_1.fetch)(targetUrl, {
|
|
36
|
+
...(isRequest && {
|
|
37
|
+
method: input.method,
|
|
38
|
+
headers: [...input.headers],
|
|
39
|
+
body: input.body === null ? undefined : await input.arrayBuffer(),
|
|
40
|
+
signal: input.signal,
|
|
41
|
+
redirect: input.redirect,
|
|
42
|
+
}),
|
|
37
43
|
...init,
|
|
38
44
|
dispatcher,
|
|
39
45
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-proxy-agent.js","sourceRoot":"","sources":["../../../src/utils/http-proxy-agent.ts"],"names":[],"mappings":";;;;;AAkBA,sDAAoF;
|
|
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;IAGnB,MAAM,SAAS,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3D,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAOpE,OAAO,CAAC,MAAM,IAAA,cAAW,EAAC,SAAS,EAAE;QACpC,GAAG,CAAC,SAAS,IAAI;YAChB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAC3B,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE;YACjE,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACxB,CAAC;QACF,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface RefreshingAuthFetchOptions {
|
|
2
|
+
baseFetch: typeof fetch;
|
|
3
|
+
initialHeaders?: HeadersInit;
|
|
4
|
+
refreshHeaders?: (current: Headers) => Promise<HeadersInit | null>;
|
|
5
|
+
shouldRefresh?: () => boolean;
|
|
6
|
+
assertAllowedUrl?: (url: string) => void | Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare function createRefreshingAuthFetch({ baseFetch, initialHeaders, refreshHeaders, shouldRefresh, assertAllowedUrl, }: RefreshingAuthFetchOptions): typeof fetch;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createRefreshingAuthFetch = createRefreshingAuthFetch;
|
|
4
|
+
const follow_redirects_1 = require("./follow-redirects");
|
|
5
|
+
function mergeHeaders(requestHeaders, authHeaders) {
|
|
6
|
+
const merged = new Headers(requestHeaders);
|
|
7
|
+
authHeaders.forEach((value, name) => merged.set(name, value));
|
|
8
|
+
return merged;
|
|
9
|
+
}
|
|
10
|
+
function getInputHeaders(input, init) {
|
|
11
|
+
return init?.headers ?? (input instanceof Request ? input.headers : undefined);
|
|
12
|
+
}
|
|
13
|
+
function createRefreshingAuthFetch({ baseFetch, initialHeaders, refreshHeaders, shouldRefresh, assertAllowedUrl, }) {
|
|
14
|
+
let authHeaders = new Headers(initialHeaders);
|
|
15
|
+
let authVersion = 0;
|
|
16
|
+
let refreshInFlight;
|
|
17
|
+
const refresh = async () => {
|
|
18
|
+
refreshInFlight ??= (async () => {
|
|
19
|
+
const refreshed = await refreshHeaders?.(new Headers(authHeaders));
|
|
20
|
+
if (!refreshed)
|
|
21
|
+
return false;
|
|
22
|
+
authHeaders = new Headers(refreshed);
|
|
23
|
+
authVersion += 1;
|
|
24
|
+
return true;
|
|
25
|
+
})();
|
|
26
|
+
try {
|
|
27
|
+
return await refreshInFlight;
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
refreshInFlight = undefined;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
return async (input, init) => {
|
|
34
|
+
let retried = false;
|
|
35
|
+
let sendAuth = true;
|
|
36
|
+
const authedFetch = async (requestInput, requestInit) => {
|
|
37
|
+
if (sendAuth && refreshHeaders && shouldRefresh?.()) {
|
|
38
|
+
await refresh();
|
|
39
|
+
}
|
|
40
|
+
const requestAuthVersion = authVersion;
|
|
41
|
+
const execute = async () => await baseFetch(requestInput instanceof Request ? requestInput.clone() : requestInput, {
|
|
42
|
+
...requestInit,
|
|
43
|
+
headers: sendAuth
|
|
44
|
+
? mergeHeaders(getInputHeaders(requestInput, requestInit), authHeaders)
|
|
45
|
+
: getInputHeaders(requestInput, requestInit),
|
|
46
|
+
});
|
|
47
|
+
const response = await execute();
|
|
48
|
+
if (response.status !== 401 || !refreshHeaders || retried || !sendAuth)
|
|
49
|
+
return response;
|
|
50
|
+
retried = true;
|
|
51
|
+
const canRetry = authVersion !== requestAuthVersion || (await refresh());
|
|
52
|
+
if (!canRetry)
|
|
53
|
+
return response;
|
|
54
|
+
await response.body?.cancel().catch(() => { });
|
|
55
|
+
return await execute();
|
|
56
|
+
};
|
|
57
|
+
if (!assertAllowedUrl)
|
|
58
|
+
return await authedFetch(input, init);
|
|
59
|
+
const startUrl = input instanceof Request ? input.url : input;
|
|
60
|
+
return await (0, follow_redirects_1.fetchFollowingRedirects)(authedFetch, startUrl, init, {
|
|
61
|
+
onBeforeHop: async (hopUrl, { crossedOrigin }) => {
|
|
62
|
+
sendAuth = !crossedOrigin;
|
|
63
|
+
await assertAllowedUrl(hopUrl);
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=refreshing-auth-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refreshing-auth-fetch.js","sourceRoot":"","sources":["../../../src/utils/refreshing-auth-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -9,15 +9,17 @@ export { N8nBinaryLoader } from './utils/n8n-binary-loader';
|
|
|
9
9
|
export { N8nJsonLoader } from './utils/n8n-json-loader';
|
|
10
10
|
export { N8nPdfLoader } from './utils/loaders/n8n-pdf-loader';
|
|
11
11
|
export { N8nLlmTracing } from './utils/n8n-llm-tracing';
|
|
12
|
+
export { redactHeaderValues } from './utils/redact-headers';
|
|
12
13
|
export { TextEditorDocument, NoMatchFoundError, MultipleMatchesError, InvalidLineNumberError, InvalidViewRangeError, InvalidPathError, FileExistsError, FileNotFoundError, BatchReplacementError, formatTextWithLineNumbers, findDivergenceContext, parseStrReplacements, } from './utils/workflow-text-editor';
|
|
13
14
|
export type { ViewCommand, CreateCommand, StrReplaceCommand, InsertCommand, BatchStrReplaceCommand, TextEditorCommand, TextEditorCommandWithBatch, TextEditorToolCall, TextEditorResult, StrReplacement, BatchReplaceResult, TextEditorDocumentOptions, } from './utils/workflow-text-editor';
|
|
14
15
|
export { estimateTokensFromStringList, estimateTokensByCharCount, estimateTextSplitsByTokens, } from './utils/tokenizer/token-estimator';
|
|
15
16
|
export { encodingForModel, getEncoding } from './utils/tokenizer/tiktoken';
|
|
16
17
|
export { makeN8nLlmFailedAttemptHandler } from './utils/failed-attempt-handler/n8nLlmFailedAttemptHandler';
|
|
17
|
-
export { getProxyAgent, getNodeProxyAgent, proxyFetch, type AgentTimeoutOptions, } from './utils/http-proxy-agent';
|
|
18
|
+
export { getProxyAgent, getNodeProxyAgent, proxyFetch, type AgentTimeoutOptions, type ProxyFetchOptions, } from './utils/http-proxy-agent';
|
|
18
19
|
export { braveSearch, searxngSearch, type BraveSearchOptions } from './web-search';
|
|
19
20
|
export type { WebSearchOptions, WebSearchResponse, WebSearchResult } from './web-search';
|
|
20
21
|
export { fetchFollowingRedirects, type FollowRedirectsOptions, } from './utils/follow-redirects';
|
|
22
|
+
export { createRefreshingAuthFetch, type RefreshingAuthFetchOptions, } from './utils/refreshing-auth-fetch';
|
|
21
23
|
export { getConnectionHintNoticeField, metadataFilterField, getBatchingOptionFields, getTemplateNoticeField, } from './utils/shared-fields';
|
|
22
24
|
export { createToolFromNode, createZodSchemaFromArgs, extractFromAIParameters, } from './utils/fromai-tool-factory';
|
|
23
25
|
export { createVectorStoreNode } from './utils/vector-store/createVectorStoreNode/createVectorStoreNode';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.supplyModel = exports.supplyMemory = exports.WindowedChatMemory = exports.BaseChatMemory = exports.BaseChatHistory = exports.BaseChatModel = exports.LangchainChatModelAdapter = exports.isToolsInstance = exports.isChatInstance = exports.isBaseChatMessageHistory = exports.isBaseChatMemory = exports.fromLcContent = exports.toLcContent = exports.toLcMessage = void 0;
|
|
3
|
+
exports.processDocument = exports.processDocuments = exports.MemoryVectorStoreManager = exports.createVectorStoreNode = exports.extractFromAIParameters = exports.createZodSchemaFromArgs = exports.createToolFromNode = exports.getTemplateNoticeField = exports.getBatchingOptionFields = exports.metadataFilterField = exports.getConnectionHintNoticeField = exports.createRefreshingAuthFetch = exports.fetchFollowingRedirects = exports.searxngSearch = exports.braveSearch = exports.proxyFetch = exports.getNodeProxyAgent = exports.getProxyAgent = exports.makeN8nLlmFailedAttemptHandler = exports.getEncoding = exports.encodingForModel = exports.estimateTextSplitsByTokens = exports.estimateTokensByCharCount = exports.estimateTokensFromStringList = exports.parseStrReplacements = exports.findDivergenceContext = exports.formatTextWithLineNumbers = exports.BatchReplacementError = exports.FileNotFoundError = exports.FileExistsError = exports.InvalidPathError = exports.InvalidViewRangeError = exports.InvalidLineNumberError = exports.MultipleMatchesError = exports.NoMatchFoundError = exports.TextEditorDocument = exports.redactHeaderValues = exports.N8nLlmTracing = exports.N8nPdfLoader = exports.N8nJsonLoader = exports.N8nBinaryLoader = exports.hasLongSequentialRepeat = exports.getMetadataFiltersValues = exports.validateEmbedDocumentsInput = exports.validateEmbedQueryInput = exports.parseSSEStream = exports.redactSecrets = exports.logAiEvent = exports.logWrapper = exports.AI_NODE_SDK_VERSION = void 0;
|
|
4
|
+
exports.supplyModel = exports.supplyMemory = exports.WindowedChatMemory = exports.BaseChatMemory = exports.BaseChatHistory = exports.BaseChatModel = exports.LangchainChatModelAdapter = exports.isToolsInstance = exports.isChatInstance = exports.isBaseChatMessageHistory = exports.isBaseChatMemory = exports.fromLcContent = exports.toLcContent = exports.toLcMessage = exports.fromLcMessage = exports.getParametersJsonSchema = void 0;
|
|
5
5
|
var ai_node_sdk_version_1 = require("./ai-node-sdk-version");
|
|
6
6
|
Object.defineProperty(exports, "AI_NODE_SDK_VERSION", { enumerable: true, get: function () { return ai_node_sdk_version_1.AI_NODE_SDK_VERSION; } });
|
|
7
7
|
var log_wrapper_1 = require("./utils/log-wrapper");
|
|
@@ -26,6 +26,8 @@ var n8n_pdf_loader_1 = require("./utils/loaders/n8n-pdf-loader");
|
|
|
26
26
|
Object.defineProperty(exports, "N8nPdfLoader", { enumerable: true, get: function () { return n8n_pdf_loader_1.N8nPdfLoader; } });
|
|
27
27
|
var n8n_llm_tracing_1 = require("./utils/n8n-llm-tracing");
|
|
28
28
|
Object.defineProperty(exports, "N8nLlmTracing", { enumerable: true, get: function () { return n8n_llm_tracing_1.N8nLlmTracing; } });
|
|
29
|
+
var redact_headers_1 = require("./utils/redact-headers");
|
|
30
|
+
Object.defineProperty(exports, "redactHeaderValues", { enumerable: true, get: function () { return redact_headers_1.redactHeaderValues; } });
|
|
29
31
|
var workflow_text_editor_1 = require("./utils/workflow-text-editor");
|
|
30
32
|
Object.defineProperty(exports, "TextEditorDocument", { enumerable: true, get: function () { return workflow_text_editor_1.TextEditorDocument; } });
|
|
31
33
|
Object.defineProperty(exports, "NoMatchFoundError", { enumerable: true, get: function () { return workflow_text_editor_1.NoMatchFoundError; } });
|
|
@@ -57,6 +59,8 @@ Object.defineProperty(exports, "braveSearch", { enumerable: true, get: function
|
|
|
57
59
|
Object.defineProperty(exports, "searxngSearch", { enumerable: true, get: function () { return web_search_1.searxngSearch; } });
|
|
58
60
|
var follow_redirects_1 = require("./utils/follow-redirects");
|
|
59
61
|
Object.defineProperty(exports, "fetchFollowingRedirects", { enumerable: true, get: function () { return follow_redirects_1.fetchFollowingRedirects; } });
|
|
62
|
+
var refreshing_auth_fetch_1 = require("./utils/refreshing-auth-fetch");
|
|
63
|
+
Object.defineProperty(exports, "createRefreshingAuthFetch", { enumerable: true, get: function () { return refreshing_auth_fetch_1.createRefreshingAuthFetch; } });
|
|
60
64
|
var shared_fields_1 = require("./utils/shared-fields");
|
|
61
65
|
Object.defineProperty(exports, "getConnectionHintNoticeField", { enumerable: true, get: function () { return shared_fields_1.getConnectionHintNoticeField; } });
|
|
62
66
|
Object.defineProperty(exports, "metadataFilterField", { enumerable: true, get: function () { return shared_fields_1.metadataFilterField; } });
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AACA,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAG5B,mDAAiD;AAAxC,yGAAA,UAAU,OAAA;AACnB,qDAAkD;AAAzC,0GAAA,UAAU,OAAA;AACnB,yDAAuD;AAA9C,+GAAA,aAAa,OAAA;AACtB,mCAA6C;AAApC,qGAAA,cAAc,OAAA;AACvB,mFAG6C;AAF5C,sIAAA,uBAAuB,OAAA;AACvB,0IAAA,2BAA2B,OAAA;AAE5B,2CAAoF;AAA3E,mHAAA,wBAAwB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AAC1D,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,iEAA8D;AAArD,8GAAA,YAAY,OAAA;AACrB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,qEAasC;AAZrC,0HAAA,kBAAkB,OAAA;AAClB,yHAAA,iBAAiB,OAAA;AACjB,4HAAA,oBAAoB,OAAA;AACpB,8HAAA,sBAAsB,OAAA;AACtB,6HAAA,qBAAqB,OAAA;AACrB,wHAAA,gBAAgB,OAAA;AAChB,uHAAA,eAAe,OAAA;AACf,yHAAA,iBAAiB,OAAA;AACjB,6HAAA,qBAAqB,OAAA;AACrB,iIAAA,yBAAyB,OAAA;AACzB,6HAAA,qBAAqB,OAAA;AACrB,4HAAA,oBAAoB,OAAA;AAgBrB,qEAI2C;AAH1C,+HAAA,4BAA4B,OAAA;AAC5B,4HAAA,yBAAyB,OAAA;AACzB,6HAAA,0BAA0B,OAAA;AAE3B,uDAA2E;AAAlE,4GAAA,gBAAgB,OAAA;AAAE,uGAAA,WAAW,OAAA;AACtC,wGAA2G;AAAlG,4IAAA,8BAA8B,OAAA;AACvC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AACA,6DAA4D;AAAnD,0HAAA,mBAAmB,OAAA;AAG5B,mDAAiD;AAAxC,yGAAA,UAAU,OAAA;AACnB,qDAAkD;AAAzC,0GAAA,UAAU,OAAA;AACnB,yDAAuD;AAA9C,+GAAA,aAAa,OAAA;AACtB,mCAA6C;AAApC,qGAAA,cAAc,OAAA;AACvB,mFAG6C;AAF5C,sIAAA,uBAAuB,OAAA;AACvB,0IAAA,2BAA2B,OAAA;AAE5B,2CAAoF;AAA3E,mHAAA,wBAAwB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AAC1D,+DAA4D;AAAnD,oHAAA,eAAe,OAAA;AACxB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,iEAA8D;AAArD,8GAAA,YAAY,OAAA;AACrB,2DAAwD;AAA/C,gHAAA,aAAa,OAAA;AACtB,yDAA4D;AAAnD,oHAAA,kBAAkB,OAAA;AAC3B,qEAasC;AAZrC,0HAAA,kBAAkB,OAAA;AAClB,yHAAA,iBAAiB,OAAA;AACjB,4HAAA,oBAAoB,OAAA;AACpB,8HAAA,sBAAsB,OAAA;AACtB,6HAAA,qBAAqB,OAAA;AACrB,wHAAA,gBAAgB,OAAA;AAChB,uHAAA,eAAe,OAAA;AACf,yHAAA,iBAAiB,OAAA;AACjB,6HAAA,qBAAqB,OAAA;AACrB,iIAAA,yBAAyB,OAAA;AACzB,6HAAA,qBAAqB,OAAA;AACrB,4HAAA,oBAAoB,OAAA;AAgBrB,qEAI2C;AAH1C,+HAAA,4BAA4B,OAAA;AAC5B,4HAAA,yBAAyB,OAAA;AACzB,6HAAA,0BAA0B,OAAA;AAE3B,uDAA2E;AAAlE,4GAAA,gBAAgB,OAAA;AAAE,uGAAA,WAAW,OAAA;AACtC,wGAA2G;AAAlG,4IAAA,8BAA8B,OAAA;AACvC,6DAMkC;AALjC,iHAAA,aAAa,OAAA;AACb,qHAAA,iBAAiB,OAAA;AACjB,8GAAA,UAAU,OAAA;AAIX,2CAAmF;AAA1E,yGAAA,WAAW,OAAA;AAAE,2GAAA,aAAa,OAAA;AAEnC,6DAGkC;AAFjC,2HAAA,uBAAuB,OAAA;AAGxB,uEAGuC;AAFtC,kIAAA,yBAAyB,OAAA;AAG1B,uDAK+B;AAJ9B,6HAAA,4BAA4B,OAAA;AAC5B,oHAAA,mBAAmB,OAAA;AACnB,wHAAA,uBAAuB,OAAA;AACvB,uHAAA,sBAAsB,OAAA;AAEvB,mEAIqC;AAHpC,yHAAA,kBAAkB,OAAA;AAClB,8HAAA,uBAAuB,OAAA;AACvB,8HAAA,uBAAuB,OAAA;AAExB,0GAAyG;AAAhG,8HAAA,qBAAqB,OAAA;AAM9B,wGAAuG;AAA9F,oIAAA,wBAAwB,OAAA;AACjC,0EAG+C;AAF9C,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAKhB,0CAA4D;AAAnD,+GAAA,uBAAuB,OAAA;AAChC,gDAA8F;AAArF,wGAAA,aAAa,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,wGAAA,aAAa,OAAA;AAG/D,mCAKkB;AAJjB,0GAAA,gBAAgB,OAAA;AAChB,kHAAA,wBAAwB,OAAA;AACxB,wGAAA,cAAc,OAAA;AACd,yGAAA,eAAe,OAAA;AAsBhB,wEAA4E;AAAnE,iIAAA,yBAAyB,OAAA;AAClC,0CAAkD;AAAzC,qGAAA,aAAa,OAAA;AAGtB,gEAA6D;AAApD,oHAAA,eAAe,OAAA;AACxB,8DAA2D;AAAlD,kHAAA,cAAc,OAAA;AAGvB,sEAAkG;AAAzF,0HAAA,kBAAkB,OAAA;AAG3B,yDAAkF;AAAzE,4GAAA,YAAY,OAAA;AACrB,uDAAiG;AAAxF,0GAAA,WAAW,OAAA"}
|