{"version":3,"file":"middleware.cjs","sources":["../src/middleware/agent/node-agent.ts","../src/middleware/base.ts","../src/middleware/debug.ts","../src/middleware/httpErrors.ts","../src/util/isBuffer.ts","../src/util/isPlainObject.ts","../src/middleware/jsonRequest.ts","../src/util/global.ts","../src/middleware/progress/node-progress.ts","../src/middleware/promise.ts","../src/util/node-shouldRetry.ts","../src/middleware/retry/shared-retry.ts","../src/middleware/retry/node-retry.ts","../src/middleware/urlEncoded.ts","../src/middleware.ts","../src/middleware/keepAlive.ts","../src/middleware/headers.ts","../src/middleware/injectResponse.ts","../src/middleware/jsonResponse.ts","../src/middleware/mtls.ts","../src/util/isBrowserOptions.ts","../src/middleware/observable.ts","../src/middleware/proxy.ts"],"sourcesContent":["import {Agent as HttpAgent, type AgentOptions} from 'http'\nimport {Agent as HttpsAgent} from 'https'\nimport {type Middleware} from 'get-it'\n\nconst isHttpsProto = /^https:/i\n\n/**\n * Constructs a http.Agent and uses it for all requests.\n * This can be used to override settings such as `maxSockets`, `maxTotalSockets` (to limit concurrency) or change the `timeout`.\n * @public\n */\nexport function agent(opts?: AgentOptions) {\n  const httpAgent = new HttpAgent(opts)\n  const httpsAgent = new HttpsAgent(opts)\n  const agents = {http: httpAgent, https: httpsAgent}\n\n  return {\n    finalizeOptions: (options: any) => {\n      if (options.agent) {\n        return options\n      }\n\n      // When maxRedirects>0 we're using the follow-redirects package and this supports the `agents` option.\n      if (options.maxRedirects > 0) {\n        return {...options, agents}\n      }\n\n      // ... otherwise we'll have to detect which agent to use:\n      const isHttps = isHttpsProto.test(options.href || options.protocol)\n      return {...options, agent: isHttps ? httpsAgent : httpAgent}\n    },\n  } satisfies Middleware\n}\n","import type {Middleware} from 'get-it'\n\nconst leadingSlash = /^\\//\nconst trailingSlash = /\\/$/\n\n/** @public */\nexport function base(baseUrl: string) {\n  const baseUri = baseUrl.replace(trailingSlash, '')\n  return {\n    processOptions: (options) => {\n      if (/^https?:\\/\\//i.test(options.url)) {\n        return options // Already prefixed\n      }\n\n      const url = [baseUri, options.url.replace(leadingSlash, '')].join('/')\n      return Object.assign({}, options, {url})\n    },\n  } satisfies Middleware\n}\n","import debugIt from 'debug'\nimport type {Middleware} from 'get-it'\n\nconst SENSITIVE_HEADERS = ['cookie', 'authorization']\n\nconst hasOwn = Object.prototype.hasOwnProperty\nconst redactKeys = (source: any, redacted: any) => {\n  const target: any = {}\n  for (const key in source) {\n    if (hasOwn.call(source, key)) {\n      target[key] = redacted.indexOf(key.toLowerCase()) > -1 ? '<redacted>' : source[key]\n    }\n  }\n  return target\n}\n\n/** @public */\nexport function debug(opts: any = {}) {\n  const verbose = opts.verbose\n  const namespace = opts.namespace || 'get-it'\n  const defaultLogger = debugIt(namespace)\n  const log = opts.log || defaultLogger\n  const shortCircuit = log === defaultLogger && !debugIt.enabled(namespace)\n  let requestId = 0\n\n  return {\n    processOptions: (options) => {\n      options.debug = log\n      options.requestId = options.requestId || ++requestId\n      return options\n    },\n\n    onRequest: (event) => {\n      // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n      if (shortCircuit || !event) {\n        return event\n      }\n\n      const options = event.options\n\n      log('[%s] HTTP %s %s', options.requestId, options.method, options.url)\n\n      if (verbose && options.body && typeof options.body === 'string') {\n        log('[%s] Request body: %s', options.requestId, options.body)\n      }\n\n      if (verbose && options.headers) {\n        const headers =\n          opts.redactSensitiveHeaders === false\n            ? options.headers\n            : redactKeys(options.headers, SENSITIVE_HEADERS)\n\n        log('[%s] Request headers: %s', options.requestId, JSON.stringify(headers, null, 2))\n      }\n\n      return event\n    },\n\n    onResponse: (res, context) => {\n      // Short-circuit if not enabled, to save some CPU cycles with formatting stuff\n      if (shortCircuit || !res) {\n        return res\n      }\n\n      const reqId = context.options.requestId\n\n      log('[%s] Response code: %s %s', reqId, res.statusCode, res.statusMessage)\n\n      if (verbose && res.body) {\n        log('[%s] Response body: %s', reqId, stringifyBody(res))\n      }\n\n      return res\n    },\n\n    onError: (err, context) => {\n      const reqId = context.options.requestId\n      if (!err) {\n        log('[%s] Error encountered, but handled by an earlier middleware', reqId)\n        return err\n      }\n\n      log('[%s] ERROR: %s', reqId, err.message)\n      return err\n    },\n  } satisfies Middleware\n}\n\nfunction stringifyBody(res: any) {\n  const contentType = (res.headers['content-type'] || '').toLowerCase()\n  const isJson = contentType.indexOf('application/json') !== -1\n  return isJson ? tryFormat(res.body) : res.body\n}\n\n// Attempt pretty-formatting JSON\nfunction tryFormat(body: any) {\n  try {\n    const parsed = typeof body === 'string' ? JSON.parse(body) : body\n    return JSON.stringify(parsed, null, 2)\n  } catch {\n    return body\n  }\n}\n","import type {HttpContext, Middleware, MiddlewareResponse, RequestOptions} from 'get-it'\n\nclass HttpError extends Error {\n  response: MiddlewareResponse\n  request: RequestOptions\n  constructor(res: MiddlewareResponse, ctx: HttpContext) {\n    super()\n    const truncatedUrl = res.url.length > 400 ? `${res.url.slice(0, 399)}…` : res.url\n    let msg = `${res.method}-request to ${truncatedUrl} resulted in `\n    msg += `HTTP ${res.statusCode} ${res.statusMessage}`\n\n    this.message = msg.trim()\n    this.response = res\n    this.request = ctx.options\n  }\n}\n\n/** @public */\nexport function httpErrors() {\n  return {\n    onResponse: (res, ctx) => {\n      const isHttpError = res.statusCode >= 400\n      if (!isHttpError) {\n        return res\n      }\n\n      throw new HttpError(res, ctx)\n    },\n  } satisfies Middleware\n}\n","export const isBuffer =\n  typeof Buffer === 'undefined' ? () => false : (obj: unknown) => Buffer.isBuffer(obj)\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o: unknown): o is Record<string, unknown> {\n  return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isPlainObject(o: unknown): boolean {\n  if (isObject(o) === false) return false\n\n  // If has modified constructor\n  const ctor = o.constructor\n  if (ctor === undefined) return true\n\n  // If has modified prototype\n  const prot = ctor.prototype\n  if (isObject(prot) === false) return false\n\n  // If constructor does not have an Object-specific method\n  if (\n    // eslint-disable-next-line no-prototype-builtins\n    prot.hasOwnProperty('isPrototypeOf') === false\n  ) {\n    return false\n  }\n\n  // Most likely a plain Object\n  return true\n}\n","import type {Middleware} from 'get-it'\n\nimport {isBuffer} from '../util/isBuffer'\nimport {isPlainObject} from '../util/isPlainObject'\n\nconst serializeTypes = ['boolean', 'string', 'number']\n\n/** @public */\nexport function jsonRequest() {\n  return {\n    processOptions: (options) => {\n      const body = options.body\n      if (!body) {\n        return options\n      }\n\n      const isStream = typeof body.pipe === 'function'\n      const shouldSerialize =\n        !isStream &&\n        !isBuffer(body) &&\n        (serializeTypes.indexOf(typeof body) !== -1 || Array.isArray(body) || isPlainObject(body))\n\n      if (!shouldSerialize) {\n        return options\n      }\n\n      return Object.assign({}, options, {\n        body: JSON.stringify(options.body),\n        headers: Object.assign({}, options.headers, {\n          'Content-Type': 'application/json',\n        }),\n      })\n    },\n  } satisfies Middleware\n}\n","let actualGlobal = {} as typeof globalThis\n\nif (typeof globalThis !== 'undefined') {\n  actualGlobal = globalThis\n} else if (typeof window !== 'undefined') {\n  actualGlobal = window\n} else if (typeof global !== 'undefined') {\n  actualGlobal = global\n} else if (typeof self !== 'undefined') {\n  actualGlobal = self\n}\n\nexport default actualGlobal\n","import type {Middleware} from 'get-it'\n\nimport {type Progress, progressStream} from '../../util/progress-stream'\n\nfunction normalizer(stage: 'download' | 'upload') {\n  return (prog: Pick<Progress, 'percentage' | 'length' | 'transferred'>) => ({\n    stage,\n    percent: prog.percentage,\n    total: prog.length,\n    loaded: prog.transferred,\n    lengthComputable: !(prog.length === 0 && prog.percentage === 0),\n  })\n}\n\n/** @public */\nexport function progress() {\n  let didEmitUpload = false\n  const onDownload = normalizer('download')\n  const onUpload = normalizer('upload')\n  return {\n    onHeaders: (response, evt) => {\n      const stream = progressStream({time: 32})\n\n      stream.on('progress', (prog) => evt.context.channels.progress.publish(onDownload(prog)))\n      return response.pipe(stream)\n    },\n\n    onRequest: (evt) => {\n      if (!evt.progress) {\n        return\n      }\n\n      evt.progress.on('progress', (prog: Progress) => {\n        didEmitUpload = true\n        evt.context.channels.progress.publish(onUpload(prog))\n      })\n    },\n\n    onResponse: (res, evt) => {\n      if (!didEmitUpload && typeof evt.options.body !== 'undefined') {\n        evt.channels.progress.publish(onUpload({length: 0, transferred: 0, percentage: 100}))\n      }\n\n      return res\n    },\n  } satisfies Middleware\n}\n","import type {Middleware} from 'get-it'\n\n/** @public */\nexport const promise = (\n  options: {onlyBody?: boolean; implementation?: PromiseConstructor} = {},\n) => {\n  const PromiseImplementation = options.implementation || Promise\n  if (!PromiseImplementation) {\n    throw new Error('`Promise` is not available in global scope, and no implementation was passed')\n  }\n\n  return {\n    onReturn: (channels, context) =>\n      new PromiseImplementation((resolve, reject) => {\n        const cancel = context.options.cancelToken\n        if (cancel) {\n          cancel.promise.then((reason: any) => {\n            channels.abort.publish(reason)\n            reject(reason)\n          })\n        }\n\n        channels.error.subscribe(reject)\n        channels.response.subscribe((response) => {\n          resolve(options.onlyBody ? (response as any).body : response)\n        })\n\n        // Wait until next tick in case cancel has been performed\n        setTimeout(() => {\n          try {\n            channels.request.publish(context)\n          } catch (err) {\n            reject(err)\n          }\n        }, 0)\n      }),\n  } satisfies Middleware\n}\n\n/**\n * The cancel token API is based on the [cancelable promises proposal](https://github.com/tc39/proposal-cancelable-promises), which is currently at Stage 1.\n *\n * Code shamelessly stolen/borrowed from MIT-licensed [axios](https://github.com/mzabriskie/axios). Thanks to [Nick Uraltsev](https://github.com/nickuraltsev), [Matt Zabriskie](https://github.com/mzabriskie) and the other contributors of that project!\n */\n/** @public */\nexport class Cancel {\n  __CANCEL__ = true\n\n  message: string | undefined\n\n  constructor(message: string | undefined) {\n    this.message = message\n  }\n\n  toString() {\n    return `Cancel${this.message ? `: ${this.message}` : ''}`\n  }\n}\n\n/** @public */\nexport class CancelToken {\n  promise: Promise<any>\n  reason?: Cancel\n\n  constructor(executor: (cb: (message?: string) => void) => void) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.')\n    }\n\n    let resolvePromise: any = null\n\n    this.promise = new Promise((resolve) => {\n      resolvePromise = resolve\n    })\n\n    executor((message?: string) => {\n      if (this.reason) {\n        // Cancellation has already been requested\n        return\n      }\n\n      this.reason = new Cancel(message)\n      resolvePromise(this.reason)\n    })\n  }\n\n  static source = () => {\n    let cancel: (message?: string) => void\n    const token = new CancelToken((can) => {\n      cancel = can\n    })\n\n    return {\n      token: token,\n      cancel: cancel!,\n    }\n  }\n}\n\nconst isCancel = (value: any): value is Cancel => !!(value && value?.__CANCEL__)\n\npromise.Cancel = Cancel\npromise.CancelToken = CancelToken\npromise.isCancel = isCancel\n","import allowed from 'is-retry-allowed'\n\nexport default (err: any, _num: number, options: any) => {\n  if (options.method !== 'GET' && options.method !== 'HEAD') {\n    return false\n  }\n\n  // Don't allow retries if we get any http status code by default\n  if (err.response && err.response.statusCode) {\n    return false\n  }\n\n  return allowed(err)\n}\n","import type {Middleware, RetryOptions} from 'get-it'\n\nconst isStream = (stream: any) =>\n  stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'\n\n/** @public */\nexport default (opts: RetryOptions) => {\n  const maxRetries = opts.maxRetries || 5\n  const retryDelay = opts.retryDelay || getRetryDelay\n  const allowRetry = opts.shouldRetry\n\n  return {\n    onError: (err, context) => {\n      const options = context.options\n      const max = options.maxRetries || maxRetries\n      const delay = options.retryDelay || retryDelay\n      const shouldRetry = options.shouldRetry || allowRetry\n      const attemptNumber = options.attemptNumber || 0\n\n      // We can't retry if body is a stream, since it'll be drained\n      if (isStream(options.body)) {\n        return err\n      }\n\n      // Give up?\n      if (!shouldRetry(err, attemptNumber, options) || attemptNumber >= max) {\n        return err\n      }\n\n      // Create a new context with an increased attempt number, so we can exit if we reach a limit\n      const newContext = Object.assign({}, context, {\n        options: Object.assign({}, options, {attemptNumber: attemptNumber + 1}),\n      })\n\n      // Wait a given amount of time before doing the request again\n      setTimeout(() => context.channels.request.publish(newContext), delay(attemptNumber))\n\n      // Signal that we've handled the error and that it should not propagate further\n      return null\n    },\n  } satisfies Middleware\n}\n\nfunction getRetryDelay(attemptNum: number) {\n  return 100 * Math.pow(2, attemptNum) + Math.random() * 100\n}\n","import type {RetryOptions} from 'get-it'\n\nimport defaultShouldRetry from '../../util/node-shouldRetry'\nimport sharedRetry from './shared-retry'\n\n/** @public */\nexport const retry = (opts: Partial<RetryOptions> = {}) =>\n  sharedRetry({shouldRetry: defaultShouldRetry, ...opts})\n\nretry.shouldRetry = defaultShouldRetry\n","import type {Middleware} from 'get-it'\n\nimport {isBuffer} from '../util/isBuffer'\nimport {isPlainObject} from '../util/isPlainObject'\n\nfunction encode(data: Record<string, string | Set<number | string>>): string {\n  const query = new URLSearchParams()\n\n  const nest = (name: string, _value: unknown) => {\n    const value = _value instanceof Set ? Array.from(_value) : _value\n    if (Array.isArray(value)) {\n      if (value.length) {\n        for (const index in value) {\n          nest(`${name}[${index}]`, value[index])\n        }\n      } else {\n        query.append(`${name}[]`, '')\n      }\n    } else if (typeof value === 'object' && value !== null) {\n      for (const [key, obj] of Object.entries(value)) {\n        nest(`${name}[${key}]`, obj)\n      }\n    } else {\n      query.append(name, value as string)\n    }\n  }\n\n  for (const [key, value] of Object.entries(data)) {\n    nest(key, value)\n  }\n\n  return query.toString()\n}\n\n/** @public */\nexport function urlEncoded() {\n  return {\n    processOptions: (options) => {\n      const body = options.body\n      if (!body) {\n        return options\n      }\n\n      const isStream = typeof body.pipe === 'function'\n      const shouldSerialize = !isStream && !isBuffer(body) && isPlainObject(body)\n\n      if (!shouldSerialize) {\n        return options\n      }\n\n      return {\n        ...options,\n        body: encode(options.body),\n        headers: {\n          ...options.headers,\n          'Content-Type': 'application/x-www-form-urlencoded',\n        },\n      }\n    },\n  } satisfies Middleware\n}\n","export * from './middleware/agent/node-agent'\nexport * from './middleware/base'\nexport * from './middleware/debug'\nexport * from './middleware/defaultOptionsProcessor'\nexport * from './middleware/defaultOptionsValidator'\nexport * from './middleware/headers'\nexport * from './middleware/httpErrors'\nexport * from './middleware/injectResponse'\nexport * from './middleware/jsonRequest'\nexport * from './middleware/jsonResponse'\nexport * from './middleware/mtls'\nexport * from './middleware/observable'\nexport * from './middleware/progress/node-progress'\nexport * from './middleware/promise'\nexport * from './middleware/proxy'\nexport * from './middleware/retry/node-retry'\nexport * from './middleware/urlEncoded'\n\nimport {agent} from './middleware/agent/node-agent'\nimport {buildKeepAlive} from './middleware/keepAlive'\n/** @public */\nexport const keepAlive = buildKeepAlive(agent)\n","import type {Middleware} from 'get-it'\nimport type {AgentOptions} from 'http'\n\nimport {NodeRequestError} from '../request/node-request-error'\n\ntype KeepAliveOptions = {\n  ms?: number\n  maxFree?: number\n\n  /**\n    How many times to retry in case of ECONNRESET error. Default: 3\n  */\n  maxRetries?: number\n}\n\nexport function buildKeepAlive(agent: (opts: AgentOptions) => Pick<Middleware, 'finalizeOptions'>) {\n  return function keepAlive(config: KeepAliveOptions = {}): any {\n    const {maxRetries = 3, ms = 1000, maxFree = 256} = config\n\n    const {finalizeOptions} = agent({\n      keepAlive: true,\n      keepAliveMsecs: ms,\n      maxFreeSockets: maxFree,\n    })\n\n    return {\n      finalizeOptions,\n      onError: (err, context) => {\n        // When sending request through a keep-alive enabled agent, the underlying socket might be reused.\n        // But if server closes connection at unfortunate time, client may run into a 'ECONNRESET' error.\n        // We retry three times in case of ECONNRESET error.\n        // https://nodejs.org/docs/latest-v20.x/api/http.html#requestreusedsocket\n        if (\n          (context.options.method === 'GET' || context.options.method === 'POST') &&\n          err instanceof NodeRequestError &&\n          err.code === 'ECONNRESET' &&\n          err.request.reusedSocket\n        ) {\n          const attemptNumber = context.options.attemptNumber || 0\n          if (attemptNumber < maxRetries) {\n            // Create a new context with an increased attempt number, so we can exit if we reach a limit\n            const newContext = Object.assign({}, context, {\n              options: Object.assign({}, context.options, {attemptNumber: attemptNumber + 1}),\n            })\n            // If this is a reused socket we retry immediately\n            setImmediate(() => context.channels.request.publish(newContext))\n\n            return null\n          }\n        }\n\n        return err\n      },\n    } satisfies Middleware\n  }\n}\n","import type {Middleware} from 'get-it'\n\n/** @public */\nexport function headers(_headers: any, opts: any = {}) {\n  return {\n    processOptions: (options) => {\n      const existing = options.headers || {}\n      options.headers = opts.override\n        ? Object.assign({}, existing, _headers)\n        : Object.assign({}, _headers, existing)\n\n      return options\n    },\n  } satisfies Middleware\n}\n","import type {Middleware, MiddlewareHooks, MiddlewareResponse} from 'get-it'\n\n/** @public */\nexport function injectResponse(\n  opts: {\n    inject: (\n      event: Parameters<MiddlewareHooks['interceptRequest']>[1],\n      prevValue: Parameters<MiddlewareHooks['interceptRequest']>[0],\n    ) => Partial<MiddlewareResponse | undefined | void>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } = {} as any,\n) {\n  if (typeof opts.inject !== 'function') {\n    throw new Error('`injectResponse` middleware requires a `inject` function')\n  }\n\n  const inject = function inject(prevValue, event) {\n    const response = opts.inject(event, prevValue)\n    if (!response) {\n      return prevValue\n    }\n\n    // Merge defaults so we don't have to provide the most basic of details unless we want to\n    const options = event.context.options\n    return {\n      body: '',\n      url: options.url,\n      method: options.method!,\n      headers: {},\n      statusCode: 200,\n      statusMessage: 'OK',\n      ...response,\n    } satisfies MiddlewareResponse\n  } satisfies Middleware['interceptRequest']\n\n  return {interceptRequest: inject} satisfies Middleware\n}\n","import type {Middleware} from 'get-it'\n\n/** @public */\nexport function jsonResponse(opts?: any) {\n  return {\n    onResponse: (response) => {\n      const contentType = response.headers['content-type'] || ''\n      const shouldDecode = (opts && opts.force) || contentType.indexOf('application/json') !== -1\n      if (!response.body || !contentType || !shouldDecode) {\n        return response\n      }\n\n      return Object.assign({}, response, {body: tryParse(response.body)})\n    },\n\n    processOptions: (options) =>\n      Object.assign({}, options, {\n        headers: Object.assign({Accept: 'application/json'}, options.headers),\n      }),\n  } satisfies Middleware\n\n  function tryParse(body: any) {\n    try {\n      return JSON.parse(body)\n    } catch (err: any) {\n      err.message = `Failed to parsed response body as JSON: ${err.message}`\n      throw err\n    }\n  }\n}\n","import type {Middleware} from 'get-it'\n\nimport {isBrowserOptions} from '../util/isBrowserOptions'\n\n/** @public */\nexport function mtls(config: any = {}) {\n  if (!config.ca) {\n    throw new Error('Required mtls option \"ca\" is missing')\n  }\n  if (!config.cert) {\n    throw new Error('Required mtls option \"cert\" is missing')\n  }\n  if (!config.key) {\n    throw new Error('Required mtls option \"key\" is missing')\n  }\n\n  return {\n    finalizeOptions: (options) => {\n      if (isBrowserOptions(options)) {\n        return options\n      }\n\n      const mtlsOpts = {\n        cert: config.cert,\n        key: config.key,\n        ca: config.ca,\n      }\n      return Object.assign({}, options, mtlsOpts)\n    },\n  } satisfies Middleware\n}\n","import type {RequestOptions} from 'get-it'\n\nexport function isBrowserOptions(options: unknown): options is RequestOptions {\n  return typeof options === 'object' && options !== null && !('protocol' in options)\n}\n","import type {Middleware} from 'get-it'\n\nimport global from '../util/global'\n\n/** @public */\nexport function observable(\n  opts: {\n    implementation?: any\n  } = {},\n) {\n  const Observable =\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any -- @TODO consider dropping checking for a global Observable since it's not on a standards track\n    opts.implementation || (global as any).Observable\n  if (!Observable) {\n    throw new Error(\n      '`Observable` is not available in global scope, and no implementation was passed',\n    )\n  }\n\n  return {\n    onReturn: (channels, context) =>\n      new Observable((observer: any) => {\n        channels.error.subscribe((err) => observer.error(err))\n        channels.progress.subscribe((event) =>\n          observer.next(Object.assign({type: 'progress'}, event)),\n        )\n        channels.response.subscribe((response) => {\n          observer.next(Object.assign({type: 'response'}, response))\n          observer.complete()\n        })\n\n        channels.request.publish(context)\n        return () => channels.abort.publish()\n      }),\n  } satisfies Middleware\n}\n","import type {Middleware} from 'get-it'\n\n/** @public */\nexport function proxy(_proxy: any) {\n  if (_proxy !== false && (!_proxy || !_proxy.host)) {\n    throw new Error('Proxy middleware takes an object of host, port and auth properties')\n  }\n\n  return {\n    processOptions: (options) => Object.assign({proxy: _proxy}, options),\n  } satisfies Middleware\n}\n"],"names":["isHttpsProto","agent","opts","httpAgent","HttpAgent","httpsAgent","HttpsAgent","agents","http","https","finalizeOptions","options","maxRedirects","isHttps","test","href","protocol","leadingSlash","trailingSlash","srcExports","nodeRequestError","r","SENSITIVE_HEADERS","hasOwn","Object","prototype","hasOwnProperty","HttpError","Error","response","request","constructor","res","ctx","super","truncatedUrl","url","length","slice","msg","method","statusCode","statusMessage","this","message","trim","isBuffer","Buffer","obj","isObject","o","toString","call","isPlainObject","ctor","prot","serializeTypes","actualGlobal","globalThis","window","global","self","global$1","normalizer","stage","prog","percent","percentage","total","loaded","transferred","lengthComputable","promise","PromiseImplementation","implementation","Promise","onReturn","channels","context","resolve","reject","cancel","cancelToken","then","reason","abort","publish","error","subscribe","onlyBody","body","setTimeout","err","Cancel","__CANCEL__","CancelToken","executor","TypeError","resolvePromise","static","token","can","isCancel","value","defaultShouldRetry","_num","allowed","getRetryDelay","attemptNum","Math","pow","random","retry","maxRetries","retryDelay","allowRetry","shouldRetry","onError","max","delay","attemptNumber","stream","pipe","newContext","assign","sharedRetry","encode","data","query","URLSearchParams","nest","name","_value","Set","Array","from","isArray","index","append","key","entries","keepAlive","config","ms","maxFree","keepAliveMsecs","maxFreeSockets","NodeRequestError","code","reusedSocket","setImmediate","exports","processOptions","p","validateOptions","v","base","baseUrl","baseUri","replace","join","debug","verbose","namespace","defaultLogger","debugIt","log","shortCircuit","enabled","requestId","onRequest","event","headers","redactSensitiveHeaders","source","redacted","target","indexOf","toLowerCase","redactKeys","JSON","stringify","onResponse","reqId","parsed","parse","tryFormat","stringifyBody","_headers","existing","override","httpErrors","injectResponse","inject","interceptRequest","prevValue","jsonRequest","jsonResponse","contentType","shouldDecode","force","tryParse","Accept","mtls","ca","cert","isBrowserOptions","mtlsOpts","observable","Observable","observer","progress","next","type","complete","didEmitUpload","onDownload","onUpload","onHeaders","evt","progressStream","time","on","proxy","_proxy","host","urlEncoded"],"mappings":"2RAIA,MAAMA,EAAe,WAOd,SAASC,EAAMC,GACpB,MAAMC,EAAY,IAAIC,EAAAA,MAAUF,GAC1BG,EAAa,IAAIC,EAAAA,MAAWJ,GAC5BK,EAAS,CAACC,KAAML,EAAWM,MAAOJ,GAExC,MAAO,CACLK,gBAAkBC,IAChB,GAAIA,EAAQV,MACV,OAAOU,EAIT,GAAIA,EAAQC,aAAe,EACzB,MAAO,IAAID,EAASJ,UAItB,MAAMM,EAAUb,EAAac,KAAKH,EAAQI,MAAQJ,EAAQK,UAC1D,MAAO,IAAIL,EAASV,MAAOY,EAAUR,EAAaF,IAGxD,CC9BA,MAAMc,EAAe,MACfC,EAAgB,MAetB,IAAAC,EAAAC,EAAAC,4BCfA,MAAMC,EAAoB,CAAC,SAAU,iBAE/BC,EAASC,OAAOC,UAAUC,eCHhC,MAAMC,UAAkBC,MACtBC,SACAC,QACA,WAAAC,CAAYC,EAAyBC,GACnCC,QACA,MAAMC,EAAeH,EAAII,IAAIC,OAAS,IAAM,GAAGL,EAAII,IAAIE,MAAM,EAAG,QAAUN,EAAII,IAC9E,IAAIG,EAAM,GAAGP,EAAIQ,qBAAqBL,iBACtCI,GAAO,QAAQP,EAAIS,cAAcT,EAAIU,gBAErCC,KAAKC,QAAUL,EAAIM,OACnBF,KAAKd,SAAWG,EAChBW,KAAKb,QAAUG,EAAItB,OAAA,ECbhB,MAAMmC,SACJC,OAAW,IAAc,KAAM,EAASC,GAAiBD,OAAOD,SAASE,GCMlF,SAASC,EAASC,GAChB,MAA6C,oBAAtC1B,OAAOC,UAAU0B,SAASC,KAAKF,EACxC,CAEO,SAASG,EAAcH,GAC5B,IAAoB,IAAhBD,EAASC,GAAc,OAAO,EAGlC,MAAMI,EAAOJ,EAAEnB,YACf,QAAa,IAATuB,EAAoB,OAAO,EAG/B,MAAMC,EAAOD,EAAK7B,UAIlB,SAHuB,IAAnBwB,EAASM,KAK8B,IAAzCA,EAAK7B,eAAe,iBAOxB,CC3BA,MAAM8B,EAAiB,CAAC,UAAW,SAAU,UCL7C,IAAIC,EAAe,CAAA,SAERC,WAAe,IACxBD,EAAeC,kBACCC,OAAW,IAC3BF,EAAeE,cACCC,OAAW,IAC3BH,EAAeG,cACCC,KAAS,MACzBJ,EAAeI,MAGjB,IAAAC,EAAeL,ECRf,SAASM,EAAWC,GAClB,OAAQC,IAAA,CACND,QACAE,QAASD,EAAKE,WACdC,MAAOH,EAAK5B,OACZgC,OAAQJ,EAAKK,YACbC,mBAAoC,IAAhBN,EAAK5B,QAAoC,IAApB4B,EAAKE,aAElD,CCTO,MAAMK,EAAU,CACrB7D,EAAqE,MAErE,MAAM8D,EAAwB9D,EAAQ+D,gBAAkBC,QACxD,IAAKF,EACH,MAAM,IAAI7C,MAAM,gFAGlB,MAAO,CACLgD,SAAU,CAACC,EAAUC,IACnB,IAAIL,EAAsB,CAACM,EAASC,KAClC,MAAMC,EAASH,EAAQnE,QAAQuE,YAC3BD,GACFA,EAAOT,QAAQW,KAAMC,IACnBP,EAASQ,MAAMC,QAAQF,GACvBJ,EAAOI,KAIXP,EAASU,MAAMC,UAAUR,GACzBH,EAAShD,SAAS2D,UAAW3D,IAC3BkD,EAAQpE,EAAQ8E,SAAY5D,EAAiB6D,KAAO7D,KAItD8D,WAAW,KACT,IACEd,EAAS/C,QAAQwD,QAAQR,EAAO,OACzBc,GACPZ,EAAOY,EAAG,GAEX,OAWJ,MAAMC,EACXC,YAAa,EAEblD,QAEA,WAAAb,CAAYa,GACVD,KAAKC,QAAUA,CAAA,CAGjB,QAAAO,GACE,MAAO,UAASR,KAAKC,QAAU,KAAKD,KAAKC,UAAY,GAAE,EAKpD,MAAMmD,EACXvB,QACAY,OAEA,WAAArD,CAAYiE,GACV,GAAwB,mBAAbA,EACT,MAAM,IAAIC,UAAU,gCAGtB,IAAIC,EAAsB,KAE1BvD,KAAK6B,QAAU,IAAIG,QAASI,IAC1BmB,EAAiBnB,IAGnBiB,EAAUpD,IACJD,KAAKyC,SAKTzC,KAAKyC,OAAS,IAAIS,EAAOjD,GACzBsD,EAAevD,KAAKyC,UACrB,CAGHe,cAAgB,KACd,IAAIlB,EAKJ,MAAO,CACLmB,MALY,IAAIL,EAAaM,IAC7BpB,EAASoB,IAKTpB,WAONT,EAAQqB,OAASA,EACjBrB,EAAQuB,YAAcA,EACtBvB,EAAQ8B,SAJUC,MAAmCA,IAASA,GAAOT,YCjGrE,IAAAU,EAAe,CAACZ,EAAUa,EAAc9F,MACf,QAAnBA,EAAQ6B,QAAuC,SAAnB7B,EAAQ6B,QAKpCoD,EAAI/D,UAAY+D,EAAI/D,SAASY,aAI1BiE,EAAAA,QAAQd,GC+BjB,SAASe,EAAcC,GACrB,OAAO,IAAMC,KAAKC,IAAI,EAAGF,GAA8B,IAAhBC,KAAKE,QAC9C,CCvCO,MAAMC,EAAQ,CAAC9G,EAA8B,CAAA,IDArC,CAACA,IACd,MAAM+G,EAAa/G,EAAK+G,YAAc,EAChCC,EAAahH,EAAKgH,YAAcP,EAChCQ,EAAajH,EAAKkH,YAExB,MAAO,CACLC,QAAS,CAACzB,EAAKd,KACb,MAAMnE,EAAUmE,EAAQnE,QAClB2G,EAAM3G,EAAQsG,YAAcA,EAC5BM,EAAQ5G,EAAQuG,YAAcA,EAC9BE,EAAczG,EAAQyG,aAAeD,EACrCK,EAAgB7G,EAAQ6G,eAAiB,EAQ/C,GAtBO,QADKC,EAkBC9G,EAAQ+E,OAjBY,iBAAX+B,GAA8C,mBAAhBA,EAAOC,OAsBtDN,EAAYxB,EAAK4B,EAAe7G,IAAY6G,GAAiBF,EAChE,OAAO1B,EAxBE,IAAC6B,EA4BZ,MAAME,EAAanG,OAAOoG,OAAO,CAAA,EAAI9C,EAAS,CAC5CnE,QAASa,OAAOoG,OAAO,CAAA,EAAIjH,EAAS,CAAC6G,cAAeA,EAAgB,MAItE,OAAA7B,WAAW,IAAMb,EAAQD,SAAS/C,QAAQwD,QAAQqC,GAAaJ,EAAMC,IAG9D,QC/BXK,CAAY,CAACT,YAAaZ,KAAuBtG,ICFnD,SAAS4H,EAAOC,GACd,MAAMC,EAAQ,IAAIC,gBAEZC,EAAO,CAACC,EAAcC,KAC1B,MAAM7B,EAAQ6B,aAAkBC,IAAMC,MAAMC,KAAKH,GAAUA,EAC3D,GAAIE,MAAME,QAAQjC,GAChB,GAAIA,EAAMlE,OACR,IAAA,MAAWoG,KAASlC,EAClB2B,EAAK,GAAGC,KAAQM,KAAUlC,EAAMkC,SAGlCT,EAAMU,OAAO,GAAGP,MAAU,SAAE,GAEJ,iBAAV5B,GAAgC,OAAVA,EACtC,IAAA,MAAYoC,EAAK3F,KAAQxB,OAAOoH,QAAQrC,GACtC2B,EAAK,GAAGC,KAAQQ,KAAQ3F,QAG1BgF,EAAMU,OAAOP,EAAM5B,IAIvB,IAAA,MAAYoC,EAAKpC,KAAU/E,OAAOoH,QAAQb,GACxCG,EAAKS,EAAKpC,GAGZ,OAAOyB,EAAM7E,UACf,CDvBA6D,EAAMI,YAAcZ,EEYb,MAAMqC,GCNkB5I,EDMSA,ECL/B,SAAmB6I,EAA2B,IACnD,MAAM7B,WAACA,EAAa,EAAA8B,GAAGA,EAAK,IAAAC,QAAMA,EAAU,KAAOF,GAE7CpI,gBAACA,GAAmBT,EAAM,CAC9B4I,WAAW,EACXI,eAAgBF,EAChBG,eAAgBF,IAGlB,MAAO,CACLtI,kBACA2G,QAAS,CAACzB,EAAKd,KAKb,IAC8B,QAA3BA,EAAQnE,QAAQ6B,QAA+C,SAA3BsC,EAAQnE,QAAQ6B,SACrDoD,aAAeuD,EAAAA,GACF,eAAbvD,EAAIwD,MACJxD,EAAI9D,QAAQuH,aACZ,CACA,MAAM7B,EAAgB1C,EAAQnE,QAAQ6G,eAAiB,EACvD,GAAIA,EAAgBP,EAAY,CAE9B,MAAMU,EAAanG,OAAOoG,OAAO,CAAA,EAAI9C,EAAS,CAC5CnE,QAASa,OAAOoG,OAAO,GAAI9C,EAAQnE,QAAS,CAAC6G,cAAeA,EAAgB,MAG9E,OAAA8B,aAAa,IAAMxE,EAAQD,SAAS/C,QAAQwD,QAAQqC,IAE7C,IAAA,CACT,CAGF,OAAO/B,GAEX,GAtCG,IAAwB3F,EDMcsJ,QAAAC,eAAApI,EAAAqI,EAAAF,QAAAG,gBAAAtI,EAAAuI,EAAAJ,QAAA1D,OAAAA,EAAA0D,QAAAxD,YAAAA,EAAAwD,QAAAtJ,MAAAA,EAAAsJ,QAAAK,KbftC,SAAcC,GACnB,MAAMC,EAAUD,EAAQE,QAAQ7I,EAAe,IAC/C,MAAO,CACLsI,eAAiB7I,IACf,GAAI,gBAAgBG,KAAKH,EAAQyB,KAC/B,OAAOzB,EAGT,MAAMyB,EAAM,CAAC0H,EAASnJ,EAAQyB,IAAI2H,QAAQ9I,EAAc,KAAK+I,KAAK,KAClE,OAAOxI,OAAOoG,OAAO,CAAA,EAAIjH,EAAS,CAACyB,SAGzC,EaG6CmH,QAAAU,MZJtC,SAAe/J,EAAY,IAChC,MAAMgK,EAAUhK,EAAKgK,QACfC,EAAYjK,EAAKiK,WAAa,SAC9BC,EAAgBC,EAAQF,GACxBG,EAAMpK,EAAKoK,KAAOF,EAClBG,EAAeD,IAAQF,IAAkBC,EAAQG,QAAQL,GAC/D,IAAIM,EAAY,EAEhB,MAAO,CACLjB,eAAiB7I,IACfA,EAAQsJ,MAAQK,EAChB3J,EAAQ8J,UAAY9J,EAAQ8J,aAAeA,EACpC9J,GAGT+J,UAAYC,IAEV,GAAIJ,IAAiBI,EACnB,OAAOA,EAGT,MAAMhK,EAAUgK,EAAMhK,QAQtB,GANA2J,EAAI,kBAAmB3J,EAAQ8J,UAAW9J,EAAQ6B,OAAQ7B,EAAQyB,KAE9D8H,GAAWvJ,EAAQ+E,MAAgC,iBAAjB/E,EAAQ+E,MAC5C4E,EAAI,wBAAyB3J,EAAQ8J,UAAW9J,EAAQ+E,MAGtDwE,GAAWvJ,EAAQiK,QAAS,CAC9B,MAAMA,GAC4B,IAAhC1K,EAAK2K,uBACDlK,EAAQiK,QA3CH,EAACE,EAAaC,KAC/B,MAAMC,EAAc,CAAA,EACpB,IAAA,MAAWrC,KAAOmC,EACZvJ,EAAO6B,KAAK0H,EAAQnC,KACtBqC,EAAOrC,GAAOoC,EAASE,QAAQtC,EAAIuC,gBAAiB,EAAK,aAAeJ,EAAOnC,IAGnF,OAAOqC,GAqCKG,CAAWxK,EAAQiK,QAAStJ,GAElCgJ,EAAI,2BAA4B3J,EAAQ8J,UAAWW,KAAKC,UAAUT,EAAS,KAAM,GAAE,CAGrF,OAAOD,GAGTW,WAAY,CAACtJ,EAAK8C,KAEhB,GAAIyF,IAAiBvI,EACnB,OAAOA,EAGT,MAAMuJ,EAAQzG,EAAQnE,QAAQ8J,UAE9B,OAAAH,EAAI,4BAA6BiB,EAAOvJ,EAAIS,WAAYT,EAAIU,eAExDwH,GAAWlI,EAAI0D,MACjB4E,EAAI,yBAA0BiB,EAmBtC,SAAuBvJ,GAGrB,OAD2D,KADtCA,EAAI4I,QAAQ,iBAAmB,IAAIM,cAC7BD,QAAQ,oBAKrC,SAAmBvF,GACjB,IACE,MAAM8F,EAAyB,iBAAT9F,EAAoB0F,KAAKK,MAAM/F,GAAQA,EAC7D,OAAO0F,KAAKC,UAAUG,EAAQ,KAAM,EAAC,CAAA,MAErC,OAAO9F,CAAA,CAEX,CAXkBgG,CAAU1J,EAAI0D,MAAQ1D,EAAI0D,IAC5C,CAvB6CiG,CAAc3J,IAG9CA,GAGTqF,QAAS,CAACzB,EAAKd,KACb,MAAMyG,EAAQzG,EAAQnE,QAAQ8J,UAC9B,OAAK7E,GAKL0E,EAAI,iBAAkBiB,EAAO3F,EAAIhD,SAC1BgD,IALL0E,EAAI,+DAAgEiB,GAC7D3F,IAOf,EYjE6C2D,QAAAqB,QElBtC,SAAiBgB,EAAe1L,EAAY,IACjD,MAAO,CACLsJ,eAAiB7I,IACf,MAAMkL,EAAWlL,EAAQiK,SAAW,CAAA,EACpC,OAAAjK,EAAQiK,QAAU1K,EAAK4L,SACnBtK,OAAOoG,OAAO,CAAA,EAAIiE,EAAUD,GAC5BpK,OAAOoG,OAAO,CAAA,EAAIgE,EAAUC,GAEzBlL,GAGb,EFO6C4I,QAAAwC,WXHtC,WACL,MAAO,CACLT,WAAY,CAACtJ,EAAKC,KAEhB,KADoBD,EAAIS,YAAc,KAEpC,OAAOT,EAGT,MAAM,IAAIL,EAAUK,EAAKC,IAG/B,EWR6CsH,QAAAyC,eGlBtC,SACL9L,EAMI,IAEJ,GAA2B,mBAAhBA,EAAK+L,OACd,MAAM,IAAIrK,MAAM,4DAsBlB,MAAO,CAACsK,iBAnBO,SAAgBC,EAAWxB,GACxC,MAAM9I,EAAW3B,EAAK+L,OAAOtB,EAAOwB,GACpC,IAAKtK,EACH,OAAOsK,EAIT,MAAMxL,EAAUgK,EAAM7F,QAAQnE,QAC9B,MAAO,CACL+E,KAAM,GACNtD,IAAKzB,EAAQyB,IACbI,OAAQ7B,EAAQ6B,OAChBoI,QAAS,CAAA,EACTnI,WAAY,IACZC,cAAe,QACZb,EACL,EAIJ,EHf6C0H,QAAA6C,YRbtC,WACL,MAAO,CACL5C,eAAiB7I,IACf,MAAM+E,EAAO/E,EAAQ+E,KAWrB,OAVKA,GAIiC,mBAAdA,EAAKgC,MAG1B5E,EAAS4C,KAC+B,IAAxClC,EAAeyH,eAAevF,KAAgB4C,MAAME,QAAQ9C,KAASrC,EAAcqC,GAG7E/E,EAGFa,OAAOoG,OAAO,CAAA,EAAIjH,EAAS,CAChC+E,KAAM0F,KAAKC,UAAU1K,EAAQ+E,MAC7BkF,QAASpJ,OAAOoG,OAAO,CAAA,EAAIjH,EAAQiK,QAAS,CAC1C,eAAgB,wBAK1B,EQb6CrB,QAAA8C,aIlBtC,SAAsBnM,GAC3B,MAAO,CACLoL,WAAazJ,IACX,MAAMyK,EAAczK,EAAS+I,QAAQ,iBAAmB,GAClD2B,EAAgBrM,GAAQA,EAAKsM,QAAsD,IAA5CF,EAAYrB,QAAQ,oBACjE,OAAKpJ,EAAS6D,MAAS4G,GAAgBC,EAIhC/K,OAAOoG,OAAO,CAAA,EAAI/F,EAAU,CAAC6D,KAAM+G,EAAS5K,EAAS6D,QAHnD7D,GAMX2H,eAAiB7I,GACfa,OAAOoG,OAAO,CAAA,EAAIjH,EAAS,CACzBiK,QAASpJ,OAAOoG,OAAO,CAAC8E,OAAQ,oBAAqB/L,EAAQiK,YAInE,SAAS6B,EAAS/G,GAChB,IACE,OAAO0F,KAAKK,MAAM/F,EAAI,OACfE,GACP,MAAAA,EAAIhD,QAAU,2CAA2CgD,EAAIhD,UACvDgD,CAAA,CACR,CAEJ,EJR6C2D,QAAAV,UAAAA,EAAAU,QAAAoD,KKhBtC,SAAc7D,EAAc,IACjC,IAAKA,EAAO8D,GACV,MAAM,IAAIhL,MAAM,wCAElB,IAAKkH,EAAO+D,KACV,MAAM,IAAIjL,MAAM,0CAElB,IAAKkH,EAAOH,IACV,MAAM,IAAI/G,MAAM,yCAGlB,MAAO,CACLlB,gBAAkBC,IAChB,GChBC,SAA0BA,GAC/B,MAA0B,iBAAZA,GAAoC,OAAZA,KAAsB,aAAcA,EAC5E,CDcUmM,CAAiBnM,GACnB,OAAOA,EAGT,MAAMoM,EAAW,CACfF,KAAM/D,EAAO+D,KACblE,IAAKG,EAAOH,IACZiE,GAAI9D,EAAO8D,IAEb,OAAOpL,OAAOoG,OAAO,GAAIjH,EAASoM,IAGxC,ELT6CxD,QAAAyD,WOhBtC,SACL9M,EAEI,IAEJ,MAAM+M,EAEJ/M,EAAKwE,gBAAmBd,EAAeqJ,WACzC,IAAKA,EACH,MAAM,IAAIrL,MACR,mFAIJ,MAAO,CACLgD,SAAU,CAACC,EAAUC,IACnB,IAAImI,EAAYC,IACdrI,EAASU,MAAMC,UAAWI,GAAQsH,EAAS3H,MAAMK,IACjDf,EAASsI,SAAS3H,UAAWmF,GAC3BuC,EAASE,KAAK5L,OAAOoG,OAAO,CAACyF,KAAM,YAAa1C,KAElD9F,EAAShD,SAAS2D,UAAW3D,IAC3BqL,EAASE,KAAK5L,OAAOoG,OAAO,CAACyF,KAAM,YAAaxL,IAChDqL,EAASI,aAGXzI,EAAS/C,QAAQwD,QAAQR,GAClB,IAAMD,EAASQ,MAAMC,YAGpC,EPd6CiE,QAAA4D,SNNtC,WACL,IAAII,GAAgB,EACpB,MAAMC,EAAazJ,EAAW,YACxB0J,EAAW1J,EAAW,UAC5B,MAAO,CACL2J,UAAW,CAAC7L,EAAU8L,KACpB,MAAMlG,EAASmG,EAAAA,EAAe,CAACC,KAAM,KAErC,OAAApG,EAAOqG,GAAG,WAAa7J,GAAS0J,EAAI7I,QAAQD,SAASsI,SAAS7H,QAAQkI,EAAWvJ,KAC1EpC,EAAS6F,KAAKD,IAGvBiD,UAAYiD,IACLA,EAAIR,UAITQ,EAAIR,SAASW,GAAG,WAAa7J,IAC3BsJ,GAAgB,EAChBI,EAAI7I,QAAQD,SAASsI,SAAS7H,QAAQmI,EAASxJ,OAInDqH,WAAY,CAACtJ,EAAK2L,MACXJ,UAAwBI,EAAIhN,QAAQ+E,KAAS,KAChDiI,EAAI9I,SAASsI,SAAS7H,QAAQmI,EAAS,CAACpL,OAAQ,EAAGiC,YAAa,EAAGH,WAAY,OAG1EnC,GAGb,EMzB6CuH,QAAA/E,QAAAA,EAAA+E,QAAAwE,MQlBtC,SAAeC,GACpB,MAAe,IAAXA,GAAsBA,GAAWA,EAAOC,MAC1C,MAAM,IAAIrM,MAAM,sEAGlB,MAAO,CACL4H,eAAiB7I,GAAYa,OAAOoG,OAAO,CAACmG,MAAOC,GAASrN,GAEhE,ERU6C4I,QAAAvC,MAAAA,EAAAuC,QAAA2E,WDctC,WACL,MAAO,CACL1E,eAAiB7I,IACf,MAAM+E,EAAO/E,EAAQ+E,KAQrB,OAPKA,GAIiC,mBAAdA,EAAKgC,OACS5E,EAAS4C,IAASrC,EAAcqC,GAM/D,IACF/E,EACH+E,KAAMoC,EAAOnH,EAAQ+E,MACrBkF,QAAS,IACJjK,EAAQiK,QACX,eAAgB,sCARXjK,GAaf"}