{"version":3,"sources":["../../client-core/src/auth.ts","../../client-core/src/bodySerializer.ts","../../client-core/src/params.ts","../../client-core/src/pathSerializer.ts","../src/utils.ts","../src/client.ts"],"names":["getAuthToken","auth","callback","token","serializeFormDataPair","data","key","value","serializeUrlSearchParamsPair","formDataBodySerializer","body","v","jsonBodySerializer","urlSearchParamsBodySerializer","extraPrefixesMap","extraPrefixes","buildKeyMap","fields","map","config","stripEmptySlots","params","slot","buildClientParams","args","index","arg","field","name","extra","prefix","allowed","separatorArrayExplode","style","separatorArrayNoExplode","separatorObjectExplode","serializeArrayParam","allowReserved","explode","joinedValues","separator","serializePrimitiveParam","serializeObjectParam","valueOnly","values","PATH_PARAM_RE","defaultPathSerializer","path","_url","url","matches","match","R","$","f","replaceValue","createQuerySerializer","array","object","queryParams","search","serializedArray","serializedObject","serializedPrimitive","getParseAs","contentType","cleanContent","type","setAuthParams","security","options","h","buildUrl","getUrl","baseUrl","query","querySerializer","pathUrl","mergeConfigs","a","b","mergeHeaders","headers","mergedHeaders","header","iterator","Interceptors","id","fn","createInterceptors","defaultQuerySerializer","defaultHeaders","createConfig","override","z","createClient","_config","getConfig","setConfig","interceptors","request","opts","requestInit","_fetch","response","result","parseAs","error","finalError"],"mappings":"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","file":"index.cjs","sourcesContent":["export type AuthToken = string | undefined;\n\nexport interface Auth {\n  /**\n   * Which part of the request do we use to send the auth?\n   *\n   * @default 'header'\n   */\n  in?: 'header' | 'query' | 'cookie';\n  /**\n   * Header or query parameter name.\n   *\n   * @default 'Authorization'\n   */\n  name?: string;\n  scheme?: 'basic' | 'bearer';\n  type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n  auth: Auth,\n  callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n  const token =\n    typeof callback === 'function' ? await callback(auth) : callback;\n\n  if (!token) {\n    return;\n  }\n\n  if (auth.scheme === 'bearer') {\n    return `Bearer ${token}`;\n  }\n\n  if (auth.scheme === 'basic') {\n    return `Basic ${btoa(token)}`;\n  }\n\n  return token;\n};\n","import type {\n  ArrayStyle,\n  ObjectStyle,\n  SerializerOptions,\n} from './pathSerializer';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: any) => any;\n\nexport interface QuerySerializerOptions {\n  allowReserved?: boolean;\n  array?: SerializerOptions<ArrayStyle>;\n  object?: SerializerOptions<ObjectStyle>;\n}\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown) => {\n  if (typeof value === 'string' || value instanceof Blob) {\n    data.append(key, value);\n  } else {\n    data.append(key, JSON.stringify(value));\n  }\n};\n\nconst serializeUrlSearchParamsPair = (\n  data: URLSearchParams,\n  key: string,\n  value: unknown,\n) => {\n  if (typeof value === 'string') {\n    data.append(key, value);\n  } else {\n    data.append(key, JSON.stringify(value));\n  }\n};\n\nexport const formDataBodySerializer = {\n  bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n    body: T,\n  ) => {\n    const data = new FormData();\n\n    Object.entries(body).forEach(([key, value]) => {\n      if (value === undefined || value === null) {\n        return;\n      }\n      if (Array.isArray(value)) {\n        value.forEach((v) => serializeFormDataPair(data, key, v));\n      } else {\n        serializeFormDataPair(data, key, value);\n      }\n    });\n\n    return data;\n  },\n};\n\nexport const jsonBodySerializer = {\n  bodySerializer: <T>(body: T) =>\n    JSON.stringify(body, (key, value) =>\n      typeof value === 'bigint' ? value.toString() : value,\n    ),\n};\n\nexport const urlSearchParamsBodySerializer = {\n  bodySerializer: <T extends Record<string, any> | Array<Record<string, any>>>(\n    body: T,\n  ) => {\n    const data = new URLSearchParams();\n\n    Object.entries(body).forEach(([key, value]) => {\n      if (value === undefined || value === null) {\n        return;\n      }\n      if (Array.isArray(value)) {\n        value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n      } else {\n        serializeUrlSearchParamsPair(data, key, value);\n      }\n    });\n\n    return data.toString();\n  },\n};\n","type Slot = 'body' | 'headers' | 'path' | 'query';\n\nexport type Field =\n  | {\n      in: Exclude<Slot, 'body'>;\n      key: string;\n      map?: string;\n    }\n  | {\n      in: Extract<Slot, 'body'>;\n      key?: string;\n      map?: string;\n    };\n\nexport interface Fields {\n  allowExtra?: Partial<Record<Slot, boolean>>;\n  args?: ReadonlyArray<Field>;\n}\n\nexport type FieldsConfig = ReadonlyArray<Field | Fields>;\n\nconst extraPrefixesMap: Record<string, Slot> = {\n  $body_: 'body',\n  $headers_: 'headers',\n  $path_: 'path',\n  $query_: 'query',\n};\nconst extraPrefixes = Object.entries(extraPrefixesMap);\n\ntype KeyMap = Map<\n  string,\n  {\n    in: Slot;\n    map?: string;\n  }\n>;\n\nconst buildKeyMap = (fields: FieldsConfig, map?: KeyMap): KeyMap => {\n  if (!map) {\n    map = new Map();\n  }\n\n  for (const config of fields) {\n    if ('in' in config) {\n      if (config.key) {\n        map.set(config.key, {\n          in: config.in,\n          map: config.map,\n        });\n      }\n    } else if (config.args) {\n      buildKeyMap(config.args, map);\n    }\n  }\n\n  return map;\n};\n\ninterface Params {\n  body: unknown;\n  headers: Record<string, unknown>;\n  path: Record<string, unknown>;\n  query: Record<string, unknown>;\n}\n\nconst stripEmptySlots = (params: Params) => {\n  for (const [slot, value] of Object.entries(params)) {\n    if (value && typeof value === 'object' && !Object.keys(value).length) {\n      delete params[slot as Slot];\n    }\n  }\n};\n\nexport const buildClientParams = (\n  args: ReadonlyArray<unknown>,\n  fields: FieldsConfig,\n) => {\n  const params: Params = {\n    body: {},\n    headers: {},\n    path: {},\n    query: {},\n  };\n\n  const map = buildKeyMap(fields);\n\n  let config: FieldsConfig[number] | undefined;\n\n  for (const [index, arg] of args.entries()) {\n    if (fields[index]) {\n      config = fields[index];\n    }\n\n    if (!config) {\n      continue;\n    }\n\n    if ('in' in config) {\n      if (config.key) {\n        const field = map.get(config.key)!;\n        const name = field.map || config.key;\n        (params[field.in] as Record<string, unknown>)[name] = arg;\n      } else {\n        params.body = arg;\n      }\n    } else {\n      for (const [key, value] of Object.entries(arg ?? {})) {\n        const field = map.get(key);\n\n        if (field) {\n          const name = field.map || key;\n          (params[field.in] as Record<string, unknown>)[name] = value;\n        } else {\n          const extra = extraPrefixes.find(([prefix]) =>\n            key.startsWith(prefix),\n          );\n\n          if (extra) {\n            const [prefix, slot] = extra;\n            (params[slot] as Record<string, unknown>)[\n              key.slice(prefix.length)\n            ] = value;\n          } else {\n            for (const [slot, allowed] of Object.entries(\n              config.allowExtra ?? {},\n            )) {\n              if (allowed) {\n                (params[slot as Slot] as Record<string, unknown>)[key] = value;\n                break;\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n\n  stripEmptySlots(params);\n\n  return params;\n};\n","interface SerializeOptions<T>\n  extends SerializePrimitiveOptions,\n    SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n  allowReserved?: boolean;\n  name: string;\n}\n\nexport interface SerializerOptions<T> {\n  /**\n   * @default true\n   */\n  explode: boolean;\n  style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n  value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle) => {\n  switch (style) {\n    case 'label':\n      return '.';\n    case 'matrix':\n      return ';';\n    case 'simple':\n      return ',';\n    default:\n      return '&';\n  }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle) => {\n  switch (style) {\n    case 'form':\n      return ',';\n    case 'pipeDelimited':\n      return '|';\n    case 'spaceDelimited':\n      return '%20';\n    default:\n      return ',';\n  }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle) => {\n  switch (style) {\n    case 'label':\n      return '.';\n    case 'matrix':\n      return ';';\n    case 'simple':\n      return ',';\n    default:\n      return '&';\n  }\n};\n\nexport const serializeArrayParam = ({\n  allowReserved,\n  explode,\n  name,\n  style,\n  value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n  value: unknown[];\n}) => {\n  if (!explode) {\n    const joinedValues = (\n      allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n    ).join(separatorArrayNoExplode(style));\n    switch (style) {\n      case 'label':\n        return `.${joinedValues}`;\n      case 'matrix':\n        return `;${name}=${joinedValues}`;\n      case 'simple':\n        return joinedValues;\n      default:\n        return `${name}=${joinedValues}`;\n    }\n  }\n\n  const separator = separatorArrayExplode(style);\n  const joinedValues = value\n    .map((v) => {\n      if (style === 'label' || style === 'simple') {\n        return allowReserved ? v : encodeURIComponent(v as string);\n      }\n\n      return serializePrimitiveParam({\n        allowReserved,\n        name,\n        value: v as string,\n      });\n    })\n    .join(separator);\n  return style === 'label' || style === 'matrix'\n    ? separator + joinedValues\n    : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n  allowReserved,\n  name,\n  value,\n}: SerializePrimitiveParam) => {\n  if (value === undefined || value === null) {\n    return '';\n  }\n\n  if (typeof value === 'object') {\n    throw new Error(\n      'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n    );\n  }\n\n  return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n  allowReserved,\n  explode,\n  name,\n  style,\n  value,\n  valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n  value: Record<string, unknown> | Date;\n  valueOnly?: boolean;\n}) => {\n  if (value instanceof Date) {\n    return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n  }\n\n  if (style !== 'deepObject' && !explode) {\n    let values: string[] = [];\n    Object.entries(value).forEach(([key, v]) => {\n      values = [\n        ...values,\n        key,\n        allowReserved ? (v as string) : encodeURIComponent(v as string),\n      ];\n    });\n    const joinedValues = values.join(',');\n    switch (style) {\n      case 'form':\n        return `${name}=${joinedValues}`;\n      case 'label':\n        return `.${joinedValues}`;\n      case 'matrix':\n        return `;${name}=${joinedValues}`;\n      default:\n        return joinedValues;\n    }\n  }\n\n  const separator = separatorObjectExplode(style);\n  const joinedValues = Object.entries(value)\n    .map(([key, v]) =>\n      serializePrimitiveParam({\n        allowReserved,\n        name: style === 'deepObject' ? `${name}[${key}]` : key,\n        value: v as string,\n      }),\n    )\n    .join(separator);\n  return style === 'label' || style === 'matrix'\n    ? separator + joinedValues\n    : joinedValues;\n};\n","import type {\n  QuerySerializer,\n  QuerySerializerOptions,\n} from '@hey-api/client-core';\nimport {\n  getAuthToken,\n  jsonBodySerializer,\n  serializeArrayParam,\n  serializeObjectParam,\n  serializePrimitiveParam,\n} from '@hey-api/client-core';\n\nimport type { Client, ClientOptions, Config, RequestOptions } from './types';\n\ninterface PathSerializer {\n  path: Record<string, unknown>;\n  url: string;\n}\n\nconst PATH_PARAM_RE = /\\{[^{}]+\\}/g;\n\ntype ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\ntype ArraySeparatorStyle = ArrayStyle | MatrixStyle;\n\nconst defaultPathSerializer = ({ path, url: _url }: PathSerializer) => {\n  let url = _url;\n  const matches = _url.match(PATH_PARAM_RE);\n  if (matches) {\n    for (const match of matches) {\n      let explode = false;\n      let name = match.substring(1, match.length - 1);\n      let style: ArraySeparatorStyle = 'simple';\n\n      if (name.endsWith('*')) {\n        explode = true;\n        name = name.substring(0, name.length - 1);\n      }\n\n      if (name.startsWith('.')) {\n        name = name.substring(1);\n        style = 'label';\n      } else if (name.startsWith(';')) {\n        name = name.substring(1);\n        style = 'matrix';\n      }\n\n      const value = path[name];\n\n      if (value === undefined || value === null) {\n        continue;\n      }\n\n      if (Array.isArray(value)) {\n        url = url.replace(\n          match,\n          serializeArrayParam({ explode, name, style, value }),\n        );\n        continue;\n      }\n\n      if (typeof value === 'object') {\n        url = url.replace(\n          match,\n          serializeObjectParam({\n            explode,\n            name,\n            style,\n            value: value as Record<string, unknown>,\n            valueOnly: true,\n          }),\n        );\n        continue;\n      }\n\n      if (style === 'matrix') {\n        url = url.replace(\n          match,\n          `;${serializePrimitiveParam({\n            name,\n            value: value as string,\n          })}`,\n        );\n        continue;\n      }\n\n      const replaceValue = encodeURIComponent(\n        style === 'label' ? `.${value as string}` : (value as string),\n      );\n      url = url.replace(match, replaceValue);\n    }\n  }\n  return url;\n};\n\nexport const createQuerySerializer = <T = unknown>({\n  allowReserved,\n  array,\n  object,\n}: QuerySerializerOptions = {}) => {\n  const querySerializer = (queryParams: T) => {\n    const search: string[] = [];\n    if (queryParams && typeof queryParams === 'object') {\n      for (const name in queryParams) {\n        const value = queryParams[name];\n\n        if (value === undefined || value === null) {\n          continue;\n        }\n\n        if (Array.isArray(value)) {\n          const serializedArray = serializeArrayParam({\n            allowReserved,\n            explode: true,\n            name,\n            style: 'form',\n            value,\n            ...array,\n          });\n          if (serializedArray) search.push(serializedArray);\n        } else if (typeof value === 'object') {\n          const serializedObject = serializeObjectParam({\n            allowReserved,\n            explode: true,\n            name,\n            style: 'deepObject',\n            value: value as Record<string, unknown>,\n            ...object,\n          });\n          if (serializedObject) search.push(serializedObject);\n        } else {\n          const serializedPrimitive = serializePrimitiveParam({\n            allowReserved,\n            name,\n            value: value as string,\n          });\n          if (serializedPrimitive) search.push(serializedPrimitive);\n        }\n      }\n    }\n    return search.join('&');\n  };\n  return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (\n  contentType: string | null,\n): Exclude<Config['parseAs'], 'auto'> => {\n  if (!contentType) {\n    // If no Content-Type header is provided, the best we can do is return the raw response body,\n    // which is effectively the same as the 'stream' option.\n    return 'stream';\n  }\n\n  const cleanContent = contentType.split(';')[0]?.trim();\n\n  if (!cleanContent) {\n    return;\n  }\n\n  if (\n    cleanContent.startsWith('application/json') ||\n    cleanContent.endsWith('+json')\n  ) {\n    return 'json';\n  }\n\n  if (cleanContent === 'multipart/form-data') {\n    return 'formData';\n  }\n\n  if (\n    ['application/', 'audio/', 'image/', 'video/'].some((type) =>\n      cleanContent.startsWith(type),\n    )\n  ) {\n    return 'blob';\n  }\n\n  if (cleanContent.startsWith('text/')) {\n    return 'text';\n  }\n};\n\nexport const setAuthParams = async ({\n  security,\n  ...options\n}: Pick<Required<RequestOptions>, 'security'> &\n  Pick<RequestOptions, 'auth' | 'query'> & {\n    headers: Headers;\n  }) => {\n  for (const auth of security) {\n    const token = await getAuthToken(auth, options.auth);\n\n    if (!token) {\n      continue;\n    }\n\n    const name = auth.name ?? 'Authorization';\n\n    switch (auth.in) {\n      case 'query':\n        if (!options.query) {\n          options.query = {};\n        }\n        options.query[name] = token;\n        break;\n      case 'cookie':\n        options.headers.append('Cookie', `${name}=${token}`);\n        break;\n      case 'header':\n      default:\n        options.headers.set(name, token);\n        break;\n    }\n\n    return;\n  }\n};\n\nexport const buildUrl: Client['buildUrl'] = (options) => {\n  const url = getUrl({\n    baseUrl: options.baseUrl as string,\n    path: options.path,\n    query: options.query,\n    querySerializer:\n      typeof options.querySerializer === 'function'\n        ? options.querySerializer\n        : createQuerySerializer(options.querySerializer),\n    url: options.url,\n  });\n  return url;\n};\n\nexport const getUrl = ({\n  baseUrl,\n  path,\n  query,\n  querySerializer,\n  url: _url,\n}: {\n  baseUrl?: string;\n  path?: Record<string, unknown>;\n  query?: Record<string, unknown>;\n  querySerializer: QuerySerializer;\n  url: string;\n}) => {\n  const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n  let url = (baseUrl ?? '') + pathUrl;\n  if (path) {\n    url = defaultPathSerializer({ path, url });\n  }\n  let search = query ? querySerializer(query) : '';\n  if (search.startsWith('?')) {\n    search = search.substring(1);\n  }\n  if (search) {\n    url += `?${search}`;\n  }\n  return url;\n};\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n  const config = { ...a, ...b };\n  if (config.baseUrl?.endsWith('/')) {\n    config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n  }\n  config.headers = mergeHeaders(a.headers, b.headers);\n  return config;\n};\n\nexport const mergeHeaders = (\n  ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n  const mergedHeaders = new Headers();\n  for (const header of headers) {\n    if (!header || typeof header !== 'object') {\n      continue;\n    }\n\n    const iterator =\n      header instanceof Headers ? header.entries() : Object.entries(header);\n\n    for (const [key, value] of iterator) {\n      if (value === null) {\n        mergedHeaders.delete(key);\n      } else if (Array.isArray(value)) {\n        for (const v of value) {\n          mergedHeaders.append(key, v as string);\n        }\n      } else if (value !== undefined) {\n        // assume object headers are meant to be JSON stringified, i.e. their\n        // content value in OpenAPI specification is 'application/json'\n        mergedHeaders.set(\n          key,\n          typeof value === 'object' ? JSON.stringify(value) : (value as string),\n        );\n      }\n    }\n  }\n  return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n  error: Err,\n  response: Res,\n  request: Req,\n  options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (\n  request: Req,\n  options: Options,\n) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n  response: Res,\n  request: Req,\n  options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n  _fns: (Interceptor | null)[];\n\n  constructor() {\n    this._fns = [];\n  }\n\n  clear() {\n    this._fns = [];\n  }\n\n  getInterceptorIndex(id: number | Interceptor): number {\n    if (typeof id === 'number') {\n      return this._fns[id] ? id : -1;\n    } else {\n      return this._fns.indexOf(id);\n    }\n  }\n  exists(id: number | Interceptor) {\n    const index = this.getInterceptorIndex(id);\n    return !!this._fns[index];\n  }\n\n  eject(id: number | Interceptor) {\n    const index = this.getInterceptorIndex(id);\n    if (this._fns[index]) {\n      this._fns[index] = null;\n    }\n  }\n\n  update(id: number | Interceptor, fn: Interceptor) {\n    const index = this.getInterceptorIndex(id);\n    if (this._fns[index]) {\n      this._fns[index] = fn;\n      return id;\n    } else {\n      return false;\n    }\n  }\n\n  use(fn: Interceptor) {\n    this._fns = [...this._fns, fn];\n    return this._fns.length - 1;\n  }\n}\n\n// `createInterceptors()` response, meant for external use as it does not\n// expose internals\nexport interface Middleware<Req, Res, Err, Options> {\n  error: Pick<\n    Interceptors<ErrInterceptor<Err, Res, Req, Options>>,\n    'eject' | 'use'\n  >;\n  request: Pick<Interceptors<ReqInterceptor<Req, Options>>, 'eject' | 'use'>;\n  response: Pick<\n    Interceptors<ResInterceptor<Res, Req, Options>>,\n    'eject' | 'use'\n  >;\n}\n\n// do not add `Middleware` as return type so we can use _fns internally\nexport const createInterceptors = <Req, Res, Err, Options>() => ({\n  error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n  request: new Interceptors<ReqInterceptor<Req, Options>>(),\n  response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n  allowReserved: false,\n  array: {\n    explode: true,\n    style: 'form',\n  },\n  object: {\n    explode: true,\n    style: 'deepObject',\n  },\n});\n\nconst defaultHeaders = {\n  'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n  override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n  ...jsonBodySerializer,\n  headers: defaultHeaders,\n  parseAs: 'auto',\n  querySerializer: defaultQuerySerializer,\n  ...override,\n});\n","import type { Client, Config, RequestOptions } from './types';\nimport {\n  buildUrl,\n  createConfig,\n  createInterceptors,\n  getParseAs,\n  mergeConfigs,\n  mergeHeaders,\n  setAuthParams,\n} from './utils';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n  body?: any;\n  headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n  let _config = mergeConfigs(createConfig(), config);\n\n  const getConfig = (): Config => ({ ..._config });\n\n  const setConfig = (config: Config): Config => {\n    _config = mergeConfigs(_config, config);\n    return getConfig();\n  };\n\n  const interceptors = createInterceptors<\n    Request,\n    Response,\n    unknown,\n    RequestOptions\n  >();\n\n  const request: Client['request'] = async (options) => {\n    const opts = {\n      ..._config,\n      ...options,\n      fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n      headers: mergeHeaders(_config.headers, options.headers),\n    };\n\n    if (opts.security) {\n      await setAuthParams({\n        ...opts,\n        security: opts.security,\n      });\n    }\n\n    if (opts.body && opts.bodySerializer) {\n      opts.body = opts.bodySerializer(opts.body);\n    }\n\n    // remove Content-Type header if body is empty to avoid sending invalid requests\n    if (opts.body === undefined || opts.body === '') {\n      opts.headers.delete('Content-Type');\n    }\n\n    const url = buildUrl(opts);\n    const requestInit: ReqInit = {\n      redirect: 'follow',\n      ...opts,\n    };\n\n    let request = new Request(url, requestInit);\n\n    for (const fn of interceptors.request._fns) {\n      if (fn) {\n        request = await fn(request, opts);\n      }\n    }\n\n    // fetch must be assigned here, otherwise it would throw the error:\n    // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n    const _fetch = opts.fetch!;\n    let response = await _fetch(request);\n\n    for (const fn of interceptors.response._fns) {\n      if (fn) {\n        response = await fn(response, request, opts);\n      }\n    }\n\n    const result = {\n      request,\n      response,\n    };\n\n    if (response.ok) {\n      if (\n        response.status === 204 ||\n        response.headers.get('Content-Length') === '0'\n      ) {\n        return opts.responseStyle === 'data'\n          ? {}\n          : {\n              data: {},\n              ...result,\n            };\n      }\n\n      const parseAs =\n        (opts.parseAs === 'auto'\n          ? getParseAs(response.headers.get('Content-Type'))\n          : opts.parseAs) ?? 'json';\n\n      if (parseAs === 'stream') {\n        return opts.responseStyle === 'data'\n          ? response.body\n          : {\n              data: response.body,\n              ...result,\n            };\n      }\n\n      let data = await response[parseAs]();\n      if (parseAs === 'json') {\n        if (opts.responseValidator) {\n          await opts.responseValidator(data);\n        }\n\n        if (opts.responseTransformer) {\n          data = await opts.responseTransformer(data);\n        }\n      }\n\n      return opts.responseStyle === 'data'\n        ? data\n        : {\n            data,\n            ...result,\n          };\n    }\n\n    let error = await response.text();\n\n    try {\n      error = JSON.parse(error);\n    } catch {\n      // noop\n    }\n\n    let finalError = error;\n\n    for (const fn of interceptors.error._fns) {\n      if (fn) {\n        finalError = (await fn(error, response, request, opts)) as string;\n      }\n    }\n\n    finalError = finalError || ({} as string);\n\n    if (opts.throwOnError) {\n      throw finalError;\n    }\n\n    // TODO: we probably want to return error and improve types\n    return opts.responseStyle === 'data'\n      ? undefined\n      : {\n          error: finalError,\n          ...result,\n        };\n  };\n\n  return {\n    buildUrl,\n    connect: (options) => request({ ...options, method: 'CONNECT' }),\n    delete: (options) => request({ ...options, method: 'DELETE' }),\n    get: (options) => request({ ...options, method: 'GET' }),\n    getConfig,\n    head: (options) => request({ ...options, method: 'HEAD' }),\n    interceptors,\n    options: (options) => request({ ...options, method: 'OPTIONS' }),\n    patch: (options) => request({ ...options, method: 'PATCH' }),\n    post: (options) => request({ ...options, method: 'POST' }),\n    put: (options) => request({ ...options, method: 'PUT' }),\n    request,\n    setConfig,\n    trace: (options) => request({ ...options, method: 'TRACE' }),\n  };\n};\n"]}