{"version":3,"file":"client.gen.cjs","names":["mergeConfigs","createConfig","createInterceptors","mergeHeaders","setAuthParams","buildUrl","getValidRequestBody","isHTTPError","getParseAs","createSseClient"],"sources":["../../../../src/generated/mapi/client/client.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { KyResponse, Options as KyOptions } from 'ky';\nimport ky, { isHTTPError } from 'ky';\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport type { Middleware } from './utils.gen';\nimport {\n  buildUrl,\n  createConfig,\n  createInterceptors,\n  getParseAs,\n  mergeConfigs,\n  mergeHeaders,\n  setAuthParams,\n} from './utils.gen';\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<Request, Response, unknown, ResolvedRequestOptions>();\n\n  const beforeRequest = async <\n    TData = unknown,\n    TResponseStyle extends 'data' | 'fields' = 'fields',\n    ThrowOnError extends boolean = boolean,\n    Url extends string = string,\n  >(\n    options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n  ) => {\n    const opts = {\n      ..._config,\n      ...options,\n      headers: mergeHeaders(_config.headers, options.headers),\n      ky: options.ky ?? _config.ky ?? ky,\n      // deep merge kyOptions to ensure base _config is being respected\n      kyOptions: {\n        ..._config.kyOptions,\n        ...options.kyOptions,\n      },\n      serializedBody: undefined as string | undefined,\n    };\n\n    if (opts.security) {\n      await setAuthParams(opts);\n    }\n\n    if (opts.requestValidator) {\n      await opts.requestValidator(opts);\n    }\n\n    if (opts.body !== undefined && opts.bodySerializer) {\n      opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n    }\n\n    if (opts.body === undefined || opts.serializedBody === '') {\n      opts.headers.delete('Content-Type');\n    }\n\n    const resolvedOpts = opts as typeof opts &\n      ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n    const url = buildUrl(resolvedOpts);\n\n    return { opts: resolvedOpts, url };\n  };\n\n  const parseErrorResponse = async (\n    response: Response,\n    request: Request,\n    opts: ResolvedRequestOptions,\n    interceptorsMiddleware: Middleware<Request, Response, unknown, ResolvedRequestOptions>,\n  ) => {\n    const result = {\n      request,\n      response,\n    };\n\n    const textError = await response.text();\n    let jsonError: unknown;\n\n    try {\n      jsonError = JSON.parse(textError);\n    } catch {\n      jsonError = undefined;\n    }\n\n    const error = jsonError ?? textError;\n    let finalError = error;\n\n    for (const fn of interceptorsMiddleware.error.fns) {\n      if (fn) {\n        finalError = (await fn(finalError, response, request, opts)) as string;\n      }\n    }\n\n    finalError = finalError || ({} as string);\n\n    if (opts.throwOnError) {\n      throw finalError;\n    }\n\n    return opts.responseStyle === 'data'\n      ? undefined\n      : {\n          error: finalError,\n          ...result,\n        };\n  };\n\n  const request: Client['request'] = async (options) => {\n    const throwOnError = options.throwOnError ?? _config.throwOnError;\n    const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n    let request: Request | undefined;\n    let response: KyResponse | undefined;\n    let errorInterceptorsInvoked = false;\n\n    try {\n      const { opts, url } = await beforeRequest(options);\n\n      const kyInstance = opts.ky!;\n\n      const validBody = getValidRequestBody(opts);\n\n      const kyOptions: KyOptions = {\n        body: validBody as BodyInit,\n        ...(opts.cache !== undefined ? { cache: opts.cache } : {}),\n        ...(opts.credentials !== undefined ? { credentials: opts.credentials } : {}),\n        ...(opts.headers !== undefined ? { headers: opts.headers } : {}),\n        ...(opts.integrity !== undefined ? { integrity: opts.integrity } : {}),\n        ...(opts.keepalive !== undefined ? { keepalive: opts.keepalive } : {}),\n        ...(opts.method !== undefined ? { method: opts.method } : {}),\n        ...(opts.mode !== undefined ? { mode: opts.mode } : {}),\n        redirect: opts.redirect ?? 'follow',\n        ...(opts.referrer !== undefined ? { referrer: opts.referrer } : {}),\n        ...(opts.referrerPolicy !== undefined ? { referrerPolicy: opts.referrerPolicy } : {}),\n        ...(opts.signal !== undefined ? { signal: opts.signal } : {}),\n        throwHttpErrors: opts.throwOnError ?? false,\n        ...(opts.timeout !== undefined ? { timeout: opts.timeout } : {}),\n        ...opts.kyOptions,\n        retry: opts.retry ?? opts.kyOptions?.retry ?? 2,\n      };\n\n      request = new Request(url, {\n        body: kyOptions.body,\n        headers: kyOptions.headers as HeadersInit,\n        method: kyOptions.method,\n      });\n\n      for (const fn of interceptors.request.fns) {\n        if (fn) {\n          request = await fn(request, opts);\n        }\n      }\n\n      try {\n        response = await kyInstance(request, kyOptions);\n      } catch (error) {\n        if (isHTTPError(error)) {\n          response = error.response;\n\n          for (const fn of interceptors.response.fns) {\n            if (fn) {\n              response = await fn(response, request, opts);\n            }\n          }\n\n          // parseErrorResponse will run error interceptors, and re-throw when\n          // throwOnError is true, which bubbles already intercepted error to\n          // outer catch. With this flag, we can avoid outer catch running interceptors again\n          errorInterceptorsInvoked = true;\n          return parseErrorResponse(response, request, opts, interceptors);\n        }\n\n        throw error;\n      }\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        const parseAs =\n          (opts.parseAs === 'auto'\n            ? getParseAs(response.headers.get('Content-Type'))\n            : opts.parseAs) ?? 'json';\n\n        if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n          let emptyData: any;\n          switch (parseAs) {\n            case 'arrayBuffer':\n            case 'blob':\n            case 'text':\n              emptyData = await response[parseAs]();\n              break;\n            case 'formData':\n              emptyData = new FormData();\n              break;\n            case 'stream':\n              emptyData = response.body;\n              break;\n            case 'json':\n            default:\n              emptyData = {};\n              break;\n          }\n          return opts.responseStyle === 'data'\n            ? emptyData\n            : {\n                data: emptyData,\n                ...result,\n              };\n        }\n\n        let data: any;\n        switch (parseAs) {\n          case 'arrayBuffer':\n          case 'blob':\n          case 'formData':\n          case 'text':\n            data = await response[parseAs]();\n            break;\n          case 'json': {\n            // Some servers return 200 with no Content-Length and empty body.\n            // response.json() would throw; read as text and parse if non-empty.\n            const text = await response.text();\n            data = text ? JSON.parse(text) : {};\n            break;\n          }\n          case 'stream':\n            return opts.responseStyle === 'data'\n              ? response.body\n              : {\n                  data: response.body,\n                  ...result,\n                };\n        }\n\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      // parseErrorResponse will run error interceptors, and re-throw when\n      // throwOnError is true, which bubbles already intercepted error to\n      // outer catch. With this flag, we can avoid outer catch running interceptors again\n      errorInterceptorsInvoked = true;\n      return parseErrorResponse(response, request, opts, interceptors);\n    } catch (error) {\n      let finalError = error;\n\n      // error may already be processed by parseErrorResponse, in this case\n      // we can skip running interceptors again\n      if (!errorInterceptorsInvoked) {\n        // run error interceptors for errors not already handled by parseErrorResponse\n        for (const fn of interceptors.error.fns) {\n          if (fn) {\n            finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n          }\n        }\n\n        finalError = finalError || ({} as string);\n      }\n\n      if (throwOnError) {\n        throw finalError;\n      }\n\n      return responseStyle === 'data'\n        ? undefined\n        : {\n            error: finalError,\n            request,\n            response,\n          };\n    }\n  };\n\n  const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n    request({ ...options, method });\n\n  const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n    const { opts, url } = await beforeRequest(options);\n    return createSseClient({\n      ...opts,\n      body: opts.body as BodyInit | null | undefined,\n      fetch: globalThis.fetch,\n      method,\n      onRequest: async (url, init) => {\n        let request = new Request(url, init);\n        for (const fn of interceptors.request.fns) {\n          if (fn) {\n            request = await fn(request, opts);\n          }\n        }\n        return request;\n      },\n      serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n      url,\n    });\n  };\n\n  const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n  return {\n    buildUrl: _buildUrl,\n    connect: makeMethodFn('CONNECT'),\n    delete: makeMethodFn('DELETE'),\n    get: makeMethodFn('GET'),\n    getConfig,\n    head: makeMethodFn('HEAD'),\n    interceptors,\n    options: makeMethodFn('OPTIONS'),\n    patch: makeMethodFn('PATCH'),\n    post: makeMethodFn('POST'),\n    put: makeMethodFn('PUT'),\n    request,\n    setConfig,\n    sse: {\n      connect: makeSseFn('CONNECT'),\n      delete: makeSseFn('DELETE'),\n      get: makeSseFn('GET'),\n      head: makeSseFn('HEAD'),\n      options: makeSseFn('OPTIONS'),\n      patch: makeSseFn('PATCH'),\n      post: makeSseFn('POST'),\n      put: makeSseFn('PUT'),\n      trace: makeSseFn('TRACE'),\n    },\n    trace: makeMethodFn('TRACE'),\n  } as Client;\n};\n"],"mappings":"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"}