{"version":3,"file":"middleware.browser.cjs","sources":["../src/middleware/base.ts","../src/middleware/debug.ts","../src/middleware/headers.ts","../src/middleware/httpErrors.ts","../src/middleware/injectResponse.ts","../src/middleware/jsonRequest.ts","../src/middleware/jsonResponse.ts","../src/middleware/keepAlive/browser-keepAlive.ts","../src/middleware/mtls.ts","../src/util/global.ts","../src/middleware/observable.ts","../src/middleware/progress/browser-progress.ts","../src/middleware/promise.ts","../src/middleware/proxy.ts","../src/util/browser-shouldRetry.ts","../src/middleware/retry/shared-retry.ts","../src/middleware/retry/browser-retry.ts","../src/middleware/urlEncoded.ts"],"sourcesContent":["const leadingSlash = /^\\//\nconst trailingSlash = /\\/$/\n\n/** @public */\nexport function base(baseUrl: any): any {\n  const baseUri = baseUrl.replace(trailingSlash, '')\n  return {\n    processOptions: (options: any) => {\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  }\n}\n","import debugIt from 'debug'\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 = {}): 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: any) => {\n      options.debug = log\n      options.requestId = options.requestId || ++requestId\n      return options\n    },\n\n    onRequest: (event: any) => {\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: any, context: any) => {\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: any, context: any) => {\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  }\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 (err) {\n    return body\n  }\n}\n","/** @public */\nexport function headers(_headers: any, opts: any = {}): any {\n  return {\n    processOptions: (options: any) => {\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  }\n}\n","import createErrorClass from 'create-error-class'\n\nconst HttpError = createErrorClass('HttpError', function (res, ctx) {\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/** @public */\nexport function httpErrors() {\n  return {\n    onResponse: (res: any, ctx: any) => {\n      const isHttpError = res.statusCode >= 400\n      if (!isHttpError) {\n        return res\n      }\n\n      throw new HttpError(res, ctx)\n    },\n  }\n}\n","/** @public */\nexport function injectResponse(opts: any = {}) {\n  if (typeof opts.inject !== 'function') {\n    throw new Error('`injectResponse` middleware requires a `inject` function')\n  }\n\n  function inject(prevValue: any, event: any) {\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 Object.assign(\n      {},\n      {\n        body: '',\n        url: options.url,\n        method: options.method,\n        headers: {},\n        statusCode: 200,\n        statusMessage: 'OK',\n      },\n      response\n    )\n  }\n\n  return {interceptRequest: inject}\n}\n","import {isPlainObject} from 'is-plain-object'\n\nconst serializeTypes = ['boolean', 'string', 'number']\nconst isBuffer = (obj: any) =>\n  !!obj.constructor &&\n  typeof obj.constructor.isBuffer === 'function' &&\n  obj.constructor.isBuffer(obj)\n\n/** @public */\nexport function jsonRequest() {\n  return {\n    processOptions: (options: any) => {\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  }\n}\n","/** @public */\nexport function jsonResponse(opts?: any) {\n  return {\n    onResponse: (response: any) => {\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: any) =>\n      Object.assign({}, options, {\n        headers: Object.assign({Accept: 'application/json'}, options.headers),\n      }),\n  }\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","// not applicable in the browser so we just return a noop function\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function keepAlive(): void {}\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: any) => {\n      const mtlsOpts = {\n        cert: config.cert,\n        key: config.key,\n        ca: config.ca,\n      }\n      return Object.assign({}, options, mtlsOpts)\n    },\n  }\n}\n","let actualGlobal: any\n/* global globalThis */\n/* eslint-disable no-negated-condition */\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} else {\n  actualGlobal = {}\n}\n\nexport default actualGlobal\n","import global from '../util/global'\n\n/** @public */\nexport function observable(opts: any = {}) {\n  const Observable = opts.implementation || global.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: any, context: any) =>\n      new Observable((observer: any) => {\n        channels.error.subscribe((err: any) => observer.error(err))\n        channels.progress.subscribe((event: any) =>\n          observer.next(Object.assign({type: 'progress'}, event))\n        )\n        channels.response.subscribe((response: any) => {\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  }\n}\n","export function progress() {\n  return {\n    onRequest: (evt: any) => {\n      if (evt.adapter !== 'xhr') {\n        return\n      }\n\n      const xhr = evt.request\n      const context = evt.context\n\n      if ('upload' in xhr && 'onprogress' in xhr.upload) {\n        xhr.upload.onprogress = handleProgress('upload')\n      }\n\n      if ('onprogress' in xhr) {\n        xhr.onprogress = handleProgress('download')\n      }\n\n      function handleProgress(stage: any) {\n        return (event: any) => {\n          const percent = event.lengthComputable ? (event.loaded / event.total) * 100 : -1\n          context.channels.progress.publish({\n            stage,\n            percent,\n            total: event.total,\n            loaded: event.loaded,\n            lengthComputable: event.lengthComputable,\n          })\n        }\n      }\n    },\n  }\n}\n","/** @public */\nexport const promise = (options: any = {}) => {\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: any, context: any) =>\n      new PromiseImplementation((resolve: any, reject: any) => {\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: any) => {\n          resolve(options.onlyBody ? response.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  }\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\n\n  constructor(message: any) {\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: any) {\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: any) => {\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\n    const token = new CancelToken((can: any) => {\n      cancel = can\n    })\n\n    return {\n      token: token,\n      cancel: cancel,\n    }\n  }\n}\n\nconst isCancel = (value: any) => !!(value && value.__CANCEL__)\n\npromise.Cancel = Cancel\npromise.CancelToken = CancelToken\npromise.isCancel = isCancel\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: any) => Object.assign({proxy: _proxy}, options),\n  }\n}\n","export default (err: any, attempt: any, options: any) => {\n  if (options.method !== 'GET' && options.method !== 'HEAD') {\n    return false\n  }\n\n  return err.isNetworkError || false\n}\n","import type {RetryOptions} from '../../types'\n\nconst isStream = (stream: any) =>\n  stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function'\n\n/** @public */\nexport default (opts: RetryOptions): any => {\n  const maxRetries = opts.maxRetries || 5\n  const retryDelay = opts.retryDelay || getRetryDelay\n  const allowRetry = opts.shouldRetry\n\n  return {\n    onError: (err: any, context: any) => {\n      const options = context.options\n      const max = options.maxRetries || maxRetries\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), retryDelay(attemptNumber))\n\n      // Signal that we've handled the error and that it should not propagate further\n      return null\n    },\n  }\n}\n\nfunction getRetryDelay(attemptNum: number) {\n  return 100 * Math.pow(2, attemptNum) + Math.random() * 100\n}\n","import type {RetryOptions} from '../../types'\nimport defaultShouldRetry from '../../util/browser-shouldRetry'\nimport sharedRetry from './shared-retry'\n\n/** @public */\nexport const retry = (opts: Partial<RetryOptions> = {}): any =>\n  sharedRetry({shouldRetry: defaultShouldRetry, ...opts})\n\nretry.shouldRetry = defaultShouldRetry\n","import encode from 'form-urlencoded'\nimport {isPlainObject} from 'is-plain-object'\n\nconst isBuffer = (obj: any) =>\n  !!obj.constructor &&\n  typeof obj.constructor.isBuffer === 'function' &&\n  obj.constructor.isBuffer(obj)\n\n/** @public */\nexport function urlEncoded(): any {\n  return {\n    processOptions: (options: any) => {\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 Object.assign({}, options, {\n        body: encode(options.body),\n        headers: Object.assign({}, options.headers, {\n          'Content-Type': 'application/x-www-form-urlencoded',\n        }),\n      })\n    },\n  }\n}\n"],"names":["leadingSlash","trailingSlash","base","baseUrl","baseUri","replace","processOptions","options","test","url","join","Object","assign","SENSITIVE_HEADERS","hasOwn","prototype","hasOwnProperty","redactKeys","source","redacted","target","key","call","indexOf","toLowerCase","debug","opts","verbose","namespace","defaultLogger","debugIt","log","shortCircuit","enabled","requestId","onRequest","event","method","body","headers","redactSensitiveHeaders","JSON","stringify","onResponse","res","context","reqId","statusCode","statusMessage","stringifyBody","onError","err","message","contentType","isJson","tryFormat","parsed","parse","_headers","existing","override","HttpError","createErrorClass","ctx","truncatedUrl","length","slice","msg","trim","response","request","httpErrors","isHttpError","injectResponse","inject","Error","prevValue","interceptRequest","serializeTypes","isBuffer","obj","constructor","jsonRequest","isStream","pipe","shouldSerialize","Array","isArray","isPlainObject","jsonResponse","shouldDecode","force","tryParse","Accept","keepAlive","mtls","config","ca","cert","finalizeOptions","mtlsOpts","actualGlobal","globalThis","window","global","self","global$1","observable","Observable","implementation","onReturn","channels","observer","error","subscribe","progress","next","type","complete","publish","abort","evt","adapter","xhr","upload","onprogress","handleProgress","stage","percent","lengthComputable","loaded","total","promise","PromiseImplementation","Promise","resolve","reject","cancel","cancelToken","then","reason","onlyBody","setTimeout","Cancel","__CANCEL__","toString","_CancelToken","executor","TypeError","resolvePromise","CancelToken","token","can","isCancel","value","proxy","_proxy","host","defaultShouldRetry","attempt","isNetworkError","stream","sharedRetry","maxRetries","retryDelay","getRetryDelay","allowRetry","shouldRetry","max","attemptNumber","newContext","attemptNum","Math","pow","random","retry","urlEncoded","encode"],"mappings":"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"}