@abyss-project/main 16.0.0 → 17.0.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.
@@ -1,16 +1,64 @@
1
- import { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';
1
+ import { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  export declare const SAFE_OUTBOUND_TIMEOUT_MS = 8000;
3
3
  export declare const SAFE_OUTBOUND_MAX_REDIRECTS = 5;
4
- export declare const isBlockedIp: (ip: string) => boolean;
5
- export declare const assertSafeRequestUrl: (url: string, resolver?: (hostname: string) => Promise<Array<{
4
+ export declare const ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV = "ABYSS_ALLOW_PRIVATE_OUTBOUND_TARGETS";
5
+ export declare const assertOutboundGuardEnvironment: (env?: NodeJS.ProcessEnv) => void;
6
+ export declare enum UnsafeDestinationReason {
7
+ INVALID_URL = "invalid_url",
8
+ UNSUPPORTED_SCHEME = "unsupported_scheme",
9
+ PRIVATE_ADDRESS = "private_address",
10
+ UNRESOLVABLE_HOST = "unresolvable_host",
11
+ TOO_MANY_REDIRECTS = "too_many_redirects"
12
+ }
13
+ export declare class UnsafeDestinationError extends Error {
14
+ readonly reason: UnsafeDestinationReason;
15
+ readonly hostname: string | null;
16
+ constructor(reason: UnsafeDestinationReason, hostname: string | null, message: string);
17
+ }
18
+ export declare class HostResolutionError extends UnsafeDestinationError {
19
+ readonly resolverCode: string | null;
20
+ constructor(hostname: string, resolverCode: string | null);
21
+ }
22
+ export declare const isUnsafeDestinationError: (error: unknown) => error is UnsafeDestinationError;
23
+ export type HostResolver = (hostname: string) => Promise<Array<{
24
+ address: string;
25
+ }>>;
26
+ export interface ValidatedAddress {
6
27
  address: string;
7
- }>>) => Promise<URL>;
28
+ family: 4 | 6;
29
+ }
30
+ export declare const isBlockedIp: (ip: string) => boolean;
31
+ export declare const assertSafeHost: (host: string, resolver?: HostResolver) => Promise<ValidatedAddress[] | null>;
32
+ export interface SafeRequestTarget {
33
+ url: URL;
34
+ addresses: ValidatedAddress[] | null;
35
+ }
36
+ export declare const pinnedLookup: (hostname: string, addresses: ValidatedAddress[]) => (requested: string, _options: object, callback: (error: Error | null, addresses: ValidatedAddress[]) => void) => void;
37
+ export declare const pinnedLookupConfig: (target: SafeRequestTarget) => Pick<AxiosRequestConfig, "lookup" | "proxy">;
38
+ export declare const assertSafeRequestUrl: (url: string, resolver?: HostResolver) => Promise<SafeRequestTarget>;
39
+ export interface RedirectedRequest<T> {
40
+ headers: Record<string, T>;
41
+ method: string;
42
+ sendsBody: boolean;
43
+ }
44
+ export declare const requestForRedirect: <T>(current: {
45
+ headers: Record<string, T>;
46
+ method: string;
47
+ }, from: URL, to: URL, status: number, confidentialHeaders?: readonly string[]) => RedirectedRequest<T>;
48
+ export declare const isOutboundDeadlineError: (error: unknown) => boolean;
49
+ export interface SafeAxiosRequestOptions {
50
+ resolver?: HostResolver;
51
+ confidentialHeaders?: readonly string[];
52
+ onSettled?: (info: {
53
+ hops: number;
54
+ durationMs: number;
55
+ }) => void;
56
+ }
8
57
  export declare const safeAxiosRequest: <T = unknown>(config: AxiosRequestConfig & {
9
58
  url: string;
10
- }, resolver?: (hostname: string) => Promise<Array<{
11
- address: string;
12
- }>>) => Promise<AxiosResponse<T>>;
13
- export declare const safeAxiosGet: <T = unknown>(url: string, config?: AxiosRequestConfig, resolver?: (hostname: string) => Promise<Array<{
14
- address: string;
15
- }>>) => Promise<AxiosResponse<T>>;
59
+ }, options?: SafeAxiosRequestOptions) => Promise<AxiosResponse<T>>;
60
+ export declare const safeAxiosGet: <T = unknown>(url: string, config?: AxiosRequestConfig, options?: SafeAxiosRequestOptions) => Promise<AxiosResponse<T>>;
61
+ export declare const safeAxiosInstanceRequest: <T = unknown>(instance: AxiosInstance, config: AxiosRequestConfig & {
62
+ url: string;
63
+ }, options?: SafeAxiosRequestOptions) => Promise<AxiosResponse<T>>;
16
64
  export type { AxiosError };
@@ -33,19 +33,63 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.safeAxiosGet = exports.safeAxiosRequest = exports.assertSafeRequestUrl = exports.isBlockedIp = exports.SAFE_OUTBOUND_MAX_REDIRECTS = exports.SAFE_OUTBOUND_TIMEOUT_MS = void 0;
36
+ exports.safeAxiosInstanceRequest = exports.safeAxiosGet = exports.safeAxiosRequest = exports.isOutboundDeadlineError = exports.requestForRedirect = exports.assertSafeRequestUrl = exports.pinnedLookupConfig = exports.pinnedLookup = exports.assertSafeHost = exports.isBlockedIp = exports.isUnsafeDestinationError = exports.HostResolutionError = exports.UnsafeDestinationError = exports.UnsafeDestinationReason = exports.assertOutboundGuardEnvironment = exports.ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV = exports.SAFE_OUTBOUND_MAX_REDIRECTS = exports.SAFE_OUTBOUND_TIMEOUT_MS = void 0;
37
37
  const net_1 = require("net");
38
38
  const promises_1 = require("dns/promises");
39
39
  const axios_1 = __importStar(require("axios"));
40
- const types_1 = require("../types");
41
- const error_utils_1 = require("../utils/error.utils");
42
40
  exports.SAFE_OUTBOUND_TIMEOUT_MS = 8000;
43
41
  exports.SAFE_OUTBOUND_MAX_REDIRECTS = 5;
42
+ exports.ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV = 'ABYSS_ALLOW_PRIVATE_OUTBOUND_TARGETS';
43
+ const isProductionEnvironment = (env) => (env.NODE_ENV || '').toUpperCase() === 'PRODUCTION';
44
+ const privateTargetsAllowed = () => process.env[exports.ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV] === 'true' &&
45
+ !isProductionEnvironment(process.env);
46
+ const assertOutboundGuardEnvironment = (env = process.env) => {
47
+ if (env[exports.ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV] === 'true' && isProductionEnvironment(env)) {
48
+ throw new Error(`${exports.ALLOW_PRIVATE_OUTBOUND_TARGETS_ENV}=true is a development exception and must never be set in production`);
49
+ }
50
+ };
51
+ exports.assertOutboundGuardEnvironment = assertOutboundGuardEnvironment;
44
52
  const ALLOWED_PROTOCOLS = new Set(['http:', 'https:']);
45
- const ssrfError = (message) => (0, error_utils_1.handleError)({
46
- code: types_1.Code.validationError,
47
- type: types_1.ErrorType.resourceError,
48
- message,
53
+ var UnsafeDestinationReason;
54
+ (function (UnsafeDestinationReason) {
55
+ UnsafeDestinationReason["INVALID_URL"] = "invalid_url";
56
+ UnsafeDestinationReason["UNSUPPORTED_SCHEME"] = "unsupported_scheme";
57
+ UnsafeDestinationReason["PRIVATE_ADDRESS"] = "private_address";
58
+ UnsafeDestinationReason["UNRESOLVABLE_HOST"] = "unresolvable_host";
59
+ UnsafeDestinationReason["TOO_MANY_REDIRECTS"] = "too_many_redirects";
60
+ })(UnsafeDestinationReason || (exports.UnsafeDestinationReason = UnsafeDestinationReason = {}));
61
+ const UNSAFE_DESTINATION_ERROR_NAME = 'UnsafeDestinationError';
62
+ class UnsafeDestinationError extends Error {
63
+ constructor(reason, hostname, message) {
64
+ super(message);
65
+ this.name = UNSAFE_DESTINATION_ERROR_NAME;
66
+ this.reason = reason;
67
+ this.hostname = hostname;
68
+ }
69
+ }
70
+ exports.UnsafeDestinationError = UnsafeDestinationError;
71
+ class HostResolutionError extends UnsafeDestinationError {
72
+ constructor(hostname, resolverCode) {
73
+ super(UnsafeDestinationReason.UNRESOLVABLE_HOST, hostname, resolverCode
74
+ ? `Could not resolve host ${hostname} (${resolverCode})`
75
+ : `Could not resolve host ${hostname}`);
76
+ this.resolverCode = resolverCode;
77
+ }
78
+ }
79
+ exports.HostResolutionError = HostResolutionError;
80
+ const isUnsafeDestinationError = (error) => error instanceof Error &&
81
+ error.name === UNSAFE_DESTINATION_ERROR_NAME &&
82
+ Object.values(UnsafeDestinationReason).includes(error.reason);
83
+ exports.isUnsafeDestinationError = isUnsafeDestinationError;
84
+ const unsafe = (reason, hostname, message) => new UnsafeDestinationError(reason, hostname, message);
85
+ const resolverErrorCode = (error) => {
86
+ const code = error?.code;
87
+ return typeof code === 'string' && code !== '' ? code : null;
88
+ };
89
+ const systemResolver = (hostname) => (0, promises_1.lookup)(hostname, { all: true });
90
+ const validatedAddress = (address) => ({
91
+ address,
92
+ family: (0, net_1.isIP)(address) === 6 ? 6 : 4,
49
93
  });
50
94
  const ipv4ToInt = (ip) => {
51
95
  const parts = ip.split('.');
@@ -154,6 +198,16 @@ const isBlockedIPv6 = (ip) => {
154
198
  const v4 = `${groups[6] >> 8}.${groups[6] & 0xff}.${groups[7] >> 8}.${groups[7] & 0xff}`;
155
199
  return isBlockedIPv4(v4);
156
200
  }
201
+ const hextetToIPv4 = (high, low) => `${high >> 8}.${high & 0xff}.${low >> 8}.${low & 0xff}`;
202
+ if (groups[0] === 0x64 && groups[1] === 0xff9b && groups.slice(2, 6).every((g) => g === 0)) {
203
+ return isBlockedIPv4(hextetToIPv4(groups[6], groups[7]));
204
+ }
205
+ if (groups[0] === 0x64 && groups[1] === 0xff9b && groups[2] === 1) {
206
+ return true;
207
+ }
208
+ if (groups[0] === 0x2002) {
209
+ return isBlockedIPv4(hextetToIPv4(groups[1], groups[2]));
210
+ }
157
211
  if ((groups[0] & 0xffc0) === 0xfe80) {
158
212
  return true;
159
213
  }
@@ -176,72 +230,245 @@ const isBlockedIp = (ip) => {
176
230
  return true;
177
231
  };
178
232
  exports.isBlockedIp = isBlockedIp;
179
- const assertSafeRequestUrl = async (url, resolver = (hostname) => (0, promises_1.lookup)(hostname, { all: true })) => {
180
- let parsed;
181
- try {
182
- parsed = new URL(url);
183
- }
184
- catch {
185
- throw ssrfError(`Invalid URL: ${url}`);
186
- }
187
- if (!ALLOWED_PROTOCOLS.has(parsed.protocol)) {
188
- throw ssrfError(`Blocked URL scheme "${parsed.protocol}" (only http/https are allowed)`);
233
+ const assertSafeHost = async (host, resolver = systemResolver) => {
234
+ if (privateTargetsAllowed()) {
235
+ return null;
189
236
  }
190
- const hostname = parsed.hostname.replace(/^\[|\]$/g, '');
237
+ const hostname = host.replace(/^\[|\]$/g, '');
191
238
  if (!hostname) {
192
- throw ssrfError(`Invalid URL host: ${url}`);
239
+ throw unsafe(UnsafeDestinationReason.INVALID_URL, null, `Invalid host: ${host}`);
193
240
  }
194
241
  if ((0, net_1.isIP)(hostname) !== 0) {
195
242
  if ((0, exports.isBlockedIp)(hostname)) {
196
- throw ssrfError(`Blocked request to non-public address ${hostname}`);
243
+ throw unsafe(UnsafeDestinationReason.PRIVATE_ADDRESS, hostname, `Blocked request to non-public address ${hostname}`);
197
244
  }
198
- return parsed;
245
+ return [validatedAddress(hostname)];
199
246
  }
200
247
  let addresses;
201
248
  try {
202
249
  addresses = await resolver(hostname);
203
250
  }
204
- catch {
205
- throw ssrfError(`Could not resolve host ${hostname}`);
251
+ catch (error) {
252
+ throw new HostResolutionError(hostname, resolverErrorCode(error));
206
253
  }
207
254
  if (!addresses || addresses.length === 0) {
208
- throw ssrfError(`Host ${hostname} did not resolve to any address`);
255
+ throw new HostResolutionError(hostname, null);
209
256
  }
210
257
  for (const { address } of addresses) {
211
258
  if ((0, exports.isBlockedIp)(address)) {
212
- throw ssrfError(`Blocked request to ${hostname}: resolves to non-public address ${address}`);
259
+ throw unsafe(UnsafeDestinationReason.PRIVATE_ADDRESS, hostname, `Blocked request to ${hostname}: resolves to non-public address ${address}`);
213
260
  }
214
261
  }
215
- return parsed;
262
+ return addresses.map(({ address }) => validatedAddress(address));
263
+ };
264
+ exports.assertSafeHost = assertSafeHost;
265
+ const pinnedLookup = (hostname, addresses) => (requested, _options, callback) => {
266
+ if (requested !== hostname) {
267
+ callback(new Error(`Refusing to resolve ${requested}: only ${hostname} was validated`), []);
268
+ return;
269
+ }
270
+ callback(null, addresses);
271
+ };
272
+ exports.pinnedLookup = pinnedLookup;
273
+ const pinnedLookupConfig = (target) => target.addresses
274
+ ? {
275
+ lookup: (0, exports.pinnedLookup)(target.url.hostname.replace(/^\[|\]$/g, ''), target.addresses),
276
+ proxy: false,
277
+ }
278
+ : {};
279
+ exports.pinnedLookupConfig = pinnedLookupConfig;
280
+ const assertSafeRequestUrl = async (url, resolver = systemResolver) => {
281
+ let parsed;
282
+ try {
283
+ parsed = new URL(url);
284
+ }
285
+ catch {
286
+ throw unsafe(UnsafeDestinationReason.INVALID_URL, null, 'Invalid URL');
287
+ }
288
+ if (!ALLOWED_PROTOCOLS.has(parsed.protocol)) {
289
+ throw unsafe(UnsafeDestinationReason.UNSUPPORTED_SCHEME, parsed.hostname || null, `Blocked URL scheme "${parsed.protocol}" (only http/https are allowed)`);
290
+ }
291
+ if (!parsed.hostname.replace(/^\[|\]$/g, '')) {
292
+ throw unsafe(UnsafeDestinationReason.INVALID_URL, null, 'Invalid URL host');
293
+ }
294
+ return { url: parsed, addresses: await (0, exports.assertSafeHost)(parsed.hostname, resolver) };
216
295
  };
217
296
  exports.assertSafeRequestUrl = assertSafeRequestUrl;
218
- const safeAxiosRequest = async (config, resolver) => {
219
- let currentUrl = config.url;
220
- for (let hop = 0; hop <= exports.SAFE_OUTBOUND_MAX_REDIRECTS; hop++) {
221
- await (0, exports.assertSafeRequestUrl)(currentUrl, resolver);
222
- try {
223
- return await axios_1.default.request({
224
- timeout: exports.SAFE_OUTBOUND_TIMEOUT_MS,
225
- ...config,
226
- url: currentUrl,
227
- maxRedirects: 0,
228
- });
297
+ const CONFIDENTIAL_REDIRECT_HEADERS = /^(?:(?:proxy-)?authorization|cookie)$/i;
298
+ const ABYSS_SIGNATURE_HEADER = /^abyss-[a-z0-9-]*-signature$/i;
299
+ const HOST_HEADER = /^host$/i;
300
+ const CONTENT_HEADERS = /^content-/i;
301
+ const isSubdomainOf = (host, parentHost) => {
302
+ const dot = host.length - parentHost.length - 1;
303
+ return dot > 0 && host[dot] === '.' && host.endsWith(parentHost);
304
+ };
305
+ const headersForRedirect = (currentHeaders, from, to, extraConfidential) => {
306
+ const downgradesProtocol = to.protocol !== from.protocol && to.protocol !== 'https:';
307
+ const leavesHost = to.host !== from.host && !isSubdomainOf(to.host, from.host);
308
+ const dropsConfidential = downgradesProtocol || leavesHost;
309
+ const isConfidential = (name) => CONFIDENTIAL_REDIRECT_HEADERS.test(name) ||
310
+ ABYSS_SIGNATURE_HEADER.test(name) ||
311
+ extraConfidential.has(name.toLowerCase());
312
+ const kept = {};
313
+ for (const [name, value] of Object.entries(currentHeaders)) {
314
+ if (HOST_HEADER.test(name) || (dropsConfidential && isConfidential(name))) {
315
+ continue;
316
+ }
317
+ kept[name] = value;
318
+ }
319
+ return kept;
320
+ };
321
+ const methodForRedirect = (currentMethod, status) => {
322
+ if (status === 303 && !/^(?:GET|HEAD)$/i.test(currentMethod)) {
323
+ return 'GET';
324
+ }
325
+ if ((status === 301 || status === 302) && /^POST$/i.test(currentMethod)) {
326
+ return 'GET';
327
+ }
328
+ return currentMethod;
329
+ };
330
+ const requestForRedirect = (current, from, to, status, confidentialHeaders = []) => {
331
+ const method = methodForRedirect(current.method, status);
332
+ const normalisedToGet = method !== current.method;
333
+ const headers = headersForRedirect(current.headers, from, to, new Set(confidentialHeaders.map((name) => name.toLowerCase())));
334
+ if (!normalisedToGet) {
335
+ return { headers, method, sendsBody: true };
336
+ }
337
+ const withoutBodyHeaders = {};
338
+ for (const [name, value] of Object.entries(headers)) {
339
+ if (!CONTENT_HEADERS.test(name)) {
340
+ withoutBodyHeaders[name] = value;
229
341
  }
230
- catch (error) {
231
- if ((0, axios_1.isAxiosError)(error)) {
232
- const status = error.response?.status;
233
- const location = error.response?.headers?.location;
234
- if (status && status >= 300 && status < 400 && location) {
235
- currentUrl = new URL(location, currentUrl).toString();
236
- continue;
342
+ }
343
+ return { headers: withoutBodyHeaders, method, sendsBody: false };
344
+ };
345
+ exports.requestForRedirect = requestForRedirect;
346
+ const plainHeaders = (headers) => {
347
+ if (!headers) {
348
+ return {};
349
+ }
350
+ const source = typeof headers.toJSON === 'function'
351
+ ? headers.toJSON()
352
+ : headers;
353
+ return { ...source };
354
+ };
355
+ const DEADLINE_ERROR_CODES = new Set([
356
+ 'ECONNABORTED',
357
+ 'ETIMEDOUT',
358
+ 'ERR_CANCELED',
359
+ ]);
360
+ const isOutboundDeadlineError = (error) => (0, axios_1.isAxiosError)(error) &&
361
+ !error.response &&
362
+ error.code !== undefined &&
363
+ DEADLINE_ERROR_CODES.has(error.code);
364
+ exports.isOutboundDeadlineError = isOutboundDeadlineError;
365
+ const runSafeChain = async (send, config, options = {}) => {
366
+ const deadlineMs = config.timeout || exports.SAFE_OUTBOUND_TIMEOUT_MS;
367
+ const startedAt = Date.now();
368
+ const attempt = new AbortController();
369
+ let deadlineReached = false;
370
+ const timer = setTimeout(() => {
371
+ deadlineReached = true;
372
+ attempt.abort();
373
+ }, deadlineMs);
374
+ const callerSignal = config.signal;
375
+ const onCallerAbort = () => attempt.abort();
376
+ if (callerSignal?.aborted) {
377
+ attempt.abort();
378
+ }
379
+ else {
380
+ callerSignal?.addEventListener?.('abort', onCallerAbort, { once: true });
381
+ }
382
+ const signal = attempt.signal;
383
+ const errorConfig = () => ({
384
+ ...config,
385
+ headers: new axios_1.AxiosHeaders(),
386
+ });
387
+ const deadlineError = () => new axios_1.AxiosError(`Outbound deadline of ${deadlineMs}ms exceeded`, 'ETIMEDOUT', errorConfig());
388
+ const abortedError = () => (deadlineReached ? deadlineError() : new axios_1.CanceledError());
389
+ const beforeAbort = (pending) => new Promise((resolve, reject) => {
390
+ if (signal.aborted) {
391
+ reject(abortedError());
392
+ return;
393
+ }
394
+ const onAbort = () => reject(abortedError());
395
+ signal.addEventListener('abort', onAbort, { once: true });
396
+ pending.then((value) => {
397
+ signal.removeEventListener('abort', onAbort);
398
+ resolve(value);
399
+ }, (error) => {
400
+ signal.removeEventListener('abort', onAbort);
401
+ reject(error);
402
+ });
403
+ });
404
+ let currentUrl = config.url;
405
+ let currentMethod = config.method ?? 'GET';
406
+ let currentHeaders = {};
407
+ let sendsBody = true;
408
+ let hasRedirected = false;
409
+ let hops = 0;
410
+ try {
411
+ for (let hop = 0; hop <= exports.SAFE_OUTBOUND_MAX_REDIRECTS; hop++) {
412
+ hops = hop;
413
+ const target = await beforeAbort((0, exports.assertSafeRequestUrl)(currentUrl, options.resolver));
414
+ const remainingMs = deadlineMs - (Date.now() - startedAt);
415
+ if (remainingMs <= 0) {
416
+ throw deadlineError();
417
+ }
418
+ try {
419
+ return await send({
420
+ ...config,
421
+ url: currentUrl,
422
+ ...(hasRedirected
423
+ ? {
424
+ method: currentMethod,
425
+ headers: currentHeaders,
426
+ ...(sendsBody ? {} : { data: undefined }),
427
+ }
428
+ : {}),
429
+ timeout: remainingMs,
430
+ signal,
431
+ maxRedirects: 0,
432
+ ...(0, exports.pinnedLookupConfig)(target),
433
+ });
434
+ }
435
+ catch (error) {
436
+ if ((0, axios_1.isAxiosError)(error)) {
437
+ const status = error.response?.status;
438
+ const location = error.response?.headers?.location;
439
+ if (status && status >= 300 && status < 400 && location) {
440
+ const nextUrl = new URL(location, currentUrl);
441
+ const nextHop = (0, exports.requestForRedirect)({
442
+ headers: hasRedirected ? currentHeaders : plainHeaders(config.headers),
443
+ method: currentMethod,
444
+ }, target.url, nextUrl, status, options.confidentialHeaders);
445
+ currentHeaders = nextHop.headers;
446
+ currentMethod = nextHop.method;
447
+ sendsBody = sendsBody && nextHop.sendsBody;
448
+ currentUrl = nextUrl.toString();
449
+ hasRedirected = true;
450
+ continue;
451
+ }
452
+ const hopTimedOut = !error.response && (error.code === 'ECONNABORTED' || error.code === 'ETIMEDOUT');
453
+ if (deadlineReached || hopTimedOut) {
454
+ throw deadlineError();
455
+ }
237
456
  }
457
+ throw error;
238
458
  }
239
- throw error;
240
459
  }
460
+ throw unsafe(UnsafeDestinationReason.TOO_MANY_REDIRECTS, new URL(config.url).hostname, `Too many redirects (more than ${exports.SAFE_OUTBOUND_MAX_REDIRECTS})`);
461
+ }
462
+ finally {
463
+ clearTimeout(timer);
464
+ callerSignal?.removeEventListener?.('abort', onCallerAbort);
465
+ options.onSettled?.({ hops, durationMs: Date.now() - startedAt });
241
466
  }
242
- throw ssrfError(`Too many redirects following ${config.url}`);
243
467
  };
468
+ const safeAxiosRequest = (config, options) => runSafeChain((hopConfig) => axios_1.default.request(hopConfig), config, options);
244
469
  exports.safeAxiosRequest = safeAxiosRequest;
245
- const safeAxiosGet = (url, config = {}, resolver) => (0, exports.safeAxiosRequest)({ ...config, method: 'GET', url }, resolver);
470
+ const safeAxiosGet = (url, config = {}, options) => (0, exports.safeAxiosRequest)({ ...config, method: 'GET', url }, options);
246
471
  exports.safeAxiosGet = safeAxiosGet;
472
+ const safeAxiosInstanceRequest = (instance, config, options) => runSafeChain((hopConfig) => instance.request(hopConfig), config, options);
473
+ exports.safeAxiosInstanceRequest = safeAxiosInstanceRequest;
247
474
  //# sourceMappingURL=safe-url.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe-url.util.js","sourceRoot":"","sources":["../../src/server/safe-url.util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"safe-url.util.js","sourceRoot":"","sources":["../../src/server/safe-url.util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};