{"version":3,"file":"src-BeNy9O9X.mjs","names":["createClient","ms","pCreateClient"],"sources":["../src/generate/output.ts","../src/createClient.ts","../src/generate.ts","../src/index.ts"],"sourcesContent":["import fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\nimport path from 'node:path';\n\nimport type { Context } from '@hey-api/shared';\nimport { IntentContext } from '@hey-api/shared';\n\nimport { getTypedConfig } from '../config/utils';\nimport { getClientPlugin } from '../plugins/@hey-api/client-core/utils';\nimport { generateClientBundle } from './client';\n\nexport async function generateOutput(context: Context): Promise<{ fileCount: number }> {\n  const outputPath = path.resolve(context.config.output.path);\n\n  if (context.config.output.clean) {\n    if (fs.existsSync(outputPath)) {\n      fs.rmSync(outputPath, { force: true, recursive: true });\n    }\n  }\n\n  const config = getTypedConfig(context);\n\n  const client = getClientPlugin(config);\n  if ('bundle' in client.config && client.config.bundle && !config.dryRun) {\n    // not proud of this one\n    // @ts-expect-error\n    config._FRAGILE_CLIENT_BUNDLE_RENAMED = generateClientBundle({\n      header: config.output.header,\n      module: config.output.module,\n      outputPath,\n      // @ts-expect-error\n      plugin: client,\n      project: context.gen,\n    });\n  }\n\n  for (const plugin of context.registerPlugins()) {\n    await plugin.run();\n  }\n\n  context.gen.plan();\n\n  const ctx = new IntentContext(context.spec);\n  for (const intent of context.intents) {\n    await intent.run(ctx);\n  }\n\n  let fileCount = 0;\n  const writes: Promise<void>[] = [];\n  for (const file of context.gen.render()) {\n    const filePath = path.resolve(outputPath, file.path);\n    const dir = path.dirname(filePath);\n    if (!context.config.dryRun) {\n      writes.push(\n        fsPromises\n          .mkdir(dir, { recursive: true })\n          .then(() => fsPromises.writeFile(filePath, file.content, { encoding: 'utf8' })),\n      );\n    }\n    fileCount++;\n  }\n  await Promise.all(writes);\n\n  const { source } = context.config.output;\n  if (source.enabled) {\n    const sourcePath = source.path === null ? undefined : path.resolve(outputPath, source.path);\n    if (!context.config.dryRun && sourcePath && sourcePath !== outputPath) {\n      await fsPromises.mkdir(sourcePath, { recursive: true });\n    }\n    const serialized = await source.serialize(context.spec);\n    // TODO: handle yaml (convert before writing)\n    if (!context.config.dryRun && sourcePath) {\n      await fsPromises.writeFile(\n        path.resolve(sourcePath, `${source.fileName}.${source.extension}`),\n        serialized,\n        { encoding: 'utf8' },\n      );\n      fileCount++;\n    }\n    if (source.callback) {\n      await source.callback(serialized);\n    }\n  }\n\n  return { fileCount };\n}\n","import path from 'node:path';\n\nimport { type Logger, Project } from '@hey-api/codegen-core';\nimport { $RefParser, ResolverError } from '@hey-api/json-schema-ref-parser';\nimport type { Input, OpenApi, WatchValues } from '@hey-api/shared';\nimport {\n  applyNaming,\n  buildGraph,\n  compileInputPath,\n  Context,\n  getSpec,\n  InputError,\n  logInputPaths,\n  parseOpenApiSpec,\n  patchOpenApiSpec,\n  postprocessOutput,\n} from '@hey-api/shared';\nimport { format as ms } from '@lukeed/ms';\nimport colors from 'ansi-colors';\n\nimport { postProcessors } from './config/output/postprocess';\nimport type { Config } from './config/types';\nimport { generateOutput } from './generate/output';\nimport { TypeScriptRenderer } from './ts-dsl';\n\nexport async function createClient({\n  config,\n  dependencies,\n  jobIndex,\n  logger,\n  watches: _watches,\n}: {\n  config: Config;\n  dependencies: Record<string, string>;\n  jobIndex: number;\n  logger: Logger;\n  /**\n   * Always undefined on the first run, defined on subsequent runs.\n   */\n  watches?: ReadonlyArray<WatchValues>;\n}): Promise<Context | undefined> {\n  const watches: ReadonlyArray<WatchValues> =\n    _watches ||\n    Array.from({ length: config.input.length }, () => ({\n      headers: new Headers(),\n    }));\n\n  const jobStart = Date.now();\n  const inputPaths = config.input.map((input) => compileInputPath(input));\n\n  // on first run, print the message as soon as possible\n  if (config.logs.level !== 'silent' && !_watches) {\n    logInputPaths(inputPaths, jobIndex);\n  }\n\n  const getSpecData = async (input: Input, index: number) => {\n    const eventSpec = logger.timeEvent('spec');\n    const { arrayBuffer, error, resolvedInput, response } = await getSpec({\n      fetchOptions: input.fetch,\n      inputPath: inputPaths[index]!.path,\n      timeout: input.watch.timeout,\n      watch: watches[index]!,\n    });\n    eventSpec.timeEnd();\n\n    // throw on first run if there's an error to preserve user experience\n    // if in watch mode, subsequent errors won't throw to gracefully handle\n    // cases where server might be reloading\n    if (error && !_watches) {\n      const text = await response.text().catch(() => '');\n      const message = `Request failed with status ${response.status}: ${text || response.statusText}`;\n      // Handle 4xx client errors as input errors (bad URL, bad API key, etc.)\n      if (response.status >= 400 && response.status < 500) {\n        const statusText = response.statusText || 'Unknown';\n        const originalError = new Error(message) as Error & { source?: string };\n        originalError.source = String(inputPaths[index]!.path);\n        throw new InputError(\n          `Input request failed: ${response.status} ${statusText}`,\n          originalError,\n        );\n      }\n      // For 5xx server errors, keep the generic error (could be a bug)\n      throw new Error(message);\n    }\n\n    return { arrayBuffer, resolvedInput };\n  };\n  const specData = (\n    await Promise.all(config.input.map((input, index) => getSpecData(input, index)))\n  ).filter((data) => data.arrayBuffer || data.resolvedInput);\n\n  let context: Context | undefined;\n\n  if (specData.length) {\n    const refParser = new $RefParser();\n    let data: unknown;\n    try {\n      data =\n        specData.length > 1\n          ? await refParser.bundleMany({\n              arrayBuffer: specData.map((data) => data.arrayBuffer!),\n              pathOrUrlOrSchemas: [],\n              resolvedInputs: specData.map((data) => data.resolvedInput!),\n            })\n          : await refParser.bundle({\n              arrayBuffer: specData[0]!.arrayBuffer,\n              pathOrUrlOrSchema: undefined,\n              resolvedInput: specData[0]!.resolvedInput!,\n            });\n    } catch (err) {\n      if (err instanceof ResolverError && err.ioErrorCode === 'ENOENT') {\n        throw new InputError('Input file not found', err);\n      }\n      throw err;\n    }\n\n    // on subsequent runs in watch mode, print the message only if we know we're\n    // generating the output\n    if (config.logs.level !== 'silent' && _watches) {\n      console.clear();\n      logInputPaths(inputPaths, jobIndex);\n    }\n\n    const eventInputPatch = logger.timeEvent('input.patch');\n    await patchOpenApiSpec({ patchOptions: config.parser.patch, spec: data });\n    eventInputPatch.timeEnd();\n\n    const eventParser = logger.timeEvent('parser');\n    const header = config.output.header;\n    // TODO: allow overriding via config\n    const project = new Project({\n      defaultFileName: 'index',\n      fileName: (base) => {\n        const name = applyNaming(base, config.output.fileName);\n        const { suffix } = config.output.fileName;\n        if (!suffix) {\n          return name;\n        }\n        return name === 'index' || name.endsWith(suffix) ? name : `${name}${suffix}`;\n      },\n      nameConflictResolvers: config.output.nameConflictResolver\n        ? {\n            typescript: config.output.nameConflictResolver,\n          }\n        : undefined,\n      renderers: [\n        new TypeScriptRenderer({\n          header: (ctx) => {\n            const defaultValue = ['// This file is auto-generated by @hey-api/openapi-ts'];\n            const result = typeof header === 'function' ? header({ ...ctx, defaultValue }) : header;\n            return result === undefined ? defaultValue : result;\n          },\n          module: config.output.module,\n          preferExportAll: config.output.preferExportAll,\n        }),\n      ],\n      root: config.output.path,\n    });\n    context = new Context<OpenApi.V2_0_X | OpenApi.V3_0_X | OpenApi.V3_1_X, Config>({\n      config,\n      dependencies,\n      logger,\n      project,\n      spec: data as OpenApi.V2_0_X | OpenApi.V3_0_X | OpenApi.V3_1_X,\n    });\n    parseOpenApiSpec(context);\n    context.graph = buildGraph(context.ir, logger).graph;\n    eventParser.timeEnd();\n\n    const eventGenerator = logger.timeEvent('generator');\n    const { fileCount } = await generateOutput(context);\n    eventGenerator.timeEnd();\n\n    const totalMs = Date.now() - jobStart;\n\n    const eventPostprocess = logger.timeEvent('postprocess');\n    if (!config.dryRun) {\n      const jobPrefix = colors.gray(`[Job ${jobIndex + 1}] `);\n      postprocessOutput(config.output, postProcessors, jobPrefix);\n\n      if (config.logs.level !== 'silent') {\n        const outputPath = process.env.INIT_CWD\n          ? `./${path.relative(process.env.INIT_CWD, config.output.path)}`\n          : config.output.path;\n        console.log(\n          `${jobPrefix}${colors.green('✅ Done!')} Your output is in ${colors.cyanBright(outputPath)} ${colors.gray(`(${fileCount} ${fileCount === 1 ? 'file' : 'files'} in ${ms(totalMs)})`)}`,\n        );\n      }\n    }\n    eventPostprocess.timeEnd();\n  }\n\n  const watchedInput = config.input.find(\n    (input, index) => input.watch.enabled && typeof inputPaths[index]!.path === 'string',\n  );\n\n  if (watchedInput) {\n    setTimeout(() => {\n      createClient({\n        config,\n        dependencies,\n        jobIndex,\n        logger,\n        watches,\n      });\n    }, watchedInput.watch.interval);\n  }\n\n  return context;\n}\n","import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\nimport { Logger } from '@hey-api/codegen-core';\nimport type { Context } from '@hey-api/shared';\nimport {\n  checkNodeVersion,\n  ConfigValidationError,\n  getInputError,\n  getLogs,\n  JobError,\n  logCrashReport,\n  openGitHubIssueWithCrashReport,\n  printCliIntro,\n  printCrashReport,\n  shouldReportCrash,\n} from '@hey-api/shared';\nimport type { LazyOrAsync, MaybeArray } from '@hey-api/types';\n\nimport type { Configs } from './config/init';\nimport { resolveJobs } from './config/init';\nimport type { UserConfig } from './config/types';\nimport { createClient as pCreateClient } from './createClient';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n/**\n * Generate a client from the provided configuration.\n *\n * @param userConfig User provided {@link UserConfig} configuration(s).\n */\nexport async function createClient(\n  userConfig?: LazyOrAsync<MaybeArray<UserConfig>>,\n  logger = new Logger(),\n): Promise<ReadonlyArray<Context>> {\n  const resolvedConfig = typeof userConfig === 'function' ? await userConfig() : userConfig;\n  const userConfigs = resolvedConfig\n    ? resolvedConfig instanceof Array\n      ? resolvedConfig\n      : [resolvedConfig]\n    : [];\n\n  let rawLogs = userConfigs.find((config) => getLogs(config.logs).level !== 'silent')?.logs;\n  if (typeof rawLogs === 'string') {\n    rawLogs = getLogs(rawLogs);\n  }\n\n  let jobs: Configs['jobs'] = [];\n\n  try {\n    checkNodeVersion();\n\n    const eventCreateClient = logger.timeEvent('createClient');\n\n    const eventConfig = logger.timeEvent('config');\n    const resolved = await resolveJobs({ logger, userConfigs });\n    const dependencies = resolved.dependencies;\n    jobs = resolved.jobs;\n    const printIntro = jobs.some((job) => job.config.logs.level !== 'silent');\n    if (printIntro) printCliIntro(__dirname);\n    eventConfig.timeEnd();\n\n    const configErrors = jobs.flatMap((job) =>\n      job.errors.map((error) => ({ error, jobIndex: job.index })),\n    );\n    if (configErrors.length) {\n      throw new ConfigValidationError(configErrors);\n    }\n\n    const outputs = await Promise.all(\n      jobs.map(async (job) => {\n        try {\n          return await pCreateClient({\n            config: job.config,\n            dependencies,\n            jobIndex: job.index,\n            logger,\n          });\n        } catch (error) {\n          if (error instanceof Error) {\n            throw new JobError('', {\n              error,\n              jobIndex: job.index,\n            });\n          }\n        }\n      }),\n    );\n    const contexts = outputs.filter((ctx): ctx is Context => ctx !== undefined);\n\n    eventCreateClient.timeEnd();\n\n    logger.report(jobs.some((job) => job.config.logs.level === 'debug'));\n\n    return contexts;\n  } catch (error) {\n    const logs =\n      jobs.find((job) => job.config.logs.level !== 'silent')?.config.logs ??\n      jobs[0]?.config.logs ??\n      rawLogs;\n    const dryRun =\n      jobs.some((job) => job.config.dryRun) ?? userConfigs.some((config) => config.dryRun) ?? false;\n\n    const inputError = getInputError(error);\n    const normalizedError = inputError ?? error;\n\n    const logPath =\n      logs?.file && !dryRun ? logCrashReport(normalizedError, logs.path ?? '') : undefined;\n    if (!logs || logs.level !== 'silent') {\n      printCrashReport({ error, logPath });\n      const isInteractive =\n        jobs.some((job) => job.config.interactive) ??\n        userConfigs.some((config) => config.interactive) ??\n        false;\n      if (await shouldReportCrash({ error: normalizedError, isInteractive })) {\n        await openGitHubIssueWithCrashReport(error, __dirname);\n      }\n    }\n\n    if (inputError) return [];\n\n    throw error;\n  }\n}\n","/* eslint-disable @typescript-eslint/no-namespace */\n// OVERRIDES\n// hard-coded here because build process doesn't pick up overrides from separate files\nimport '@hey-api/codegen-core';\nimport '@hey-api/shared';\n\ndeclare module '@hey-api/codegen-core' {\n  interface ProjectRenderMeta {\n    /**\n     * If specified, this will be the file extension used when importing\n     * other modules. By default, we don't add a file extension and let the\n     * runtime resolve it.\n     *\n     * @default null\n     */\n    importFileExtension?: AnyString | null;\n  }\n\n  interface SymbolMeta {\n    category?:\n      | 'client'\n      | 'external'\n      | 'hook'\n      | 'schema'\n      | 'sdk'\n      | 'transform'\n      | 'type'\n      | 'utility'\n      | AnyString;\n    /**\n     * Path to the resource this symbol represents.\n     */\n    path?: ReadonlyArray<string | number>;\n    /**\n     * Name of the plugin that registered this symbol.\n     */\n    pluginName?: string;\n    resource?: 'client' | 'definition' | 'operation' | 'webhook' | AnyString;\n    resourceId?: string;\n    role?: 'data' | 'error' | 'errors' | 'options' | 'response' | 'responses' | AnyString;\n    /**\n     * Tags associated with this symbol.\n     */\n    tags?: ReadonlyArray<string>;\n    tool?:\n      | 'angular'\n      | 'arktype'\n      | 'fastify'\n      | 'json-schema'\n      | 'sdk'\n      | 'typescript'\n      | 'valibot'\n      | 'zod'\n      | AnyString;\n    variant?: 'container' | AnyString;\n  }\n}\n\ndeclare module '@hey-api/shared' {\n  interface PluginConfigMap {\n    '@angular/common': Plugins.AngularCommon.Types['Types'];\n    '@faker-js/faker': Plugins.FakerJsFaker.Types['Types'];\n    '@hey-api/client-angular': Plugins.HeyApiClientAngular.Types['Types'];\n    '@hey-api/client-axios': Plugins.HeyApiClientAxios.Types['Types'];\n    '@hey-api/client-fetch': Plugins.HeyApiClientFetch.Types['Types'];\n    '@hey-api/client-ky': Plugins.HeyApiClientKy.Types['Types'];\n    '@hey-api/client-next': Plugins.HeyApiClientNext.Types['Types'];\n    '@hey-api/client-nuxt': Plugins.HeyApiClientNuxt.Types['Types'];\n    '@hey-api/client-ofetch': Plugins.HeyApiClientOfetch.Types['Types'];\n    '@hey-api/schemas': Plugins.HeyApiSchemas.Types['Types'];\n    '@hey-api/sdk': Plugins.HeyApiSdk.Types['Types'];\n    '@hey-api/transformers': Plugins.HeyApiTransformers.Types['Types'];\n    '@hey-api/typescript': Plugins.HeyApiTypeScript.Types['Types'];\n    '@pinia/colada': Plugins.PiniaColada.Types['Types'];\n    '@tanstack/angular-query-experimental': Plugins.TanStackAngularQuery.Types['Types'];\n    '@tanstack/preact-query': Plugins.TanStackPreactQuery.Types['Types'];\n    '@tanstack/react-query': Plugins.TanStackReactQuery.Types['Types'];\n    '@tanstack/solid-query': Plugins.TanStackSolidQuery.Types['Types'];\n    '@tanstack/svelte-query': Plugins.TanStackSvelteQuery.Types['Types'];\n    '@tanstack/vue-query': Plugins.TanStackVueQuery.Types['Types'];\n    arktype: Plugins.Arktype.Types['Types'];\n    fastify: Plugins.Fastify.Types['Types'];\n    nestjs: Plugins.NestJs.Types['Types'];\n    orpc: Plugins.Orpc.Types['Types'];\n    swr: Plugins.Swr.Types['Types'];\n    valibot: Plugins.Valibot.Types['Types'];\n    zod: Plugins.Zod.Types['Types'];\n  }\n\n  interface PluginInstanceTypes {\n    Node: TsDsl;\n  }\n}\n// END OVERRIDES\n\nimport type { AnyString, LazyOrAsync, MaybeArray } from '@hey-api/types';\nimport colors from 'ansi-colors';\n// @ts-expect-error\nimport colorSupport from 'color-support';\n\nimport type { UserConfig } from './config/types';\nimport type { AngularCommonPlugin } from './plugins/@angular/common';\nimport type { FakerJsFakerPlugin, FakerJsFakerResolvers } from './plugins/@faker-js/faker';\nimport type {\n  AngularClient as AngularClientImp,\n  HeyApiClientAngularPlugin,\n} from './plugins/@hey-api/client-angular';\nimport type {\n  AxiosClient as AxiosClientImp,\n  HeyApiClientAxiosPlugin,\n} from './plugins/@hey-api/client-axios';\nimport type {\n  FetchClient as FetchClientImp,\n  HeyApiClientFetchPlugin,\n} from './plugins/@hey-api/client-fetch';\nimport type { HeyApiClientKyPlugin, KyClient as KyClientImp } from './plugins/@hey-api/client-ky';\nimport type {\n  HeyApiClientNextPlugin,\n  NextClient as NextClientImp,\n} from './plugins/@hey-api/client-next';\nimport type {\n  HeyApiClientNuxtPlugin,\n  NuxtClient as NuxtClientImp,\n} from './plugins/@hey-api/client-nuxt';\nimport type {\n  HeyApiClientOfetchPlugin,\n  OfetchClient as OfetchClientImp,\n} from './plugins/@hey-api/client-ofetch';\nimport type { HeyApiSchemasPlugin } from './plugins/@hey-api/schemas';\nimport type { HeyApiSdkPlugin } from './plugins/@hey-api/sdk';\nimport type { HeyApiTransformersPlugin } from './plugins/@hey-api/transformers';\nimport type {\n  HeyApiTypeScriptPlugin,\n  HeyApiTypeScriptResolvers,\n} from './plugins/@hey-api/typescript';\nimport type { PiniaColadaPlugin } from './plugins/@pinia/colada';\nimport type { TanStackAngularQueryPlugin } from './plugins/@tanstack/angular-query-experimental';\nimport type { TanStackPreactQueryPlugin } from './plugins/@tanstack/preact-query';\nimport type { TanStackReactQueryPlugin } from './plugins/@tanstack/react-query';\nimport type { TanStackSolidQueryPlugin } from './plugins/@tanstack/solid-query';\nimport type { TanStackSvelteQueryPlugin } from './plugins/@tanstack/svelte-query';\nimport type { TanStackVueQueryPlugin } from './plugins/@tanstack/vue-query';\nimport type { ArktypePlugin } from './plugins/arktype';\nimport type { FastifyPlugin } from './plugins/fastify';\nimport type { NestJsPlugin } from './plugins/nestjs';\nimport type { OrpcPlugin } from './plugins/orpc';\nimport type { SwrPlugin } from './plugins/swr';\nimport type { ValibotPlugin, ValibotResolvers } from './plugins/valibot';\nimport type { ZodPlugin, ZodResolvers } from './plugins/zod';\nimport type { TsDsl } from './ts-dsl';\n\ncolors.enabled = colorSupport().hasBasic;\n\nexport { createClient } from './generate';\n\n/**\n * Type helper for configuration object, returns {@link MaybeArray<UserConfig>} object(s)\n */\nexport function defineConfig(\n  config: LazyOrAsync<ReadonlyArray<UserConfig>>,\n): Promise<ReadonlyArray<UserConfig>>;\nexport function defineConfig(config: LazyOrAsync<UserConfig>): Promise<UserConfig>;\nexport async function defineConfig<T extends MaybeArray<UserConfig>>(\n  config: LazyOrAsync<T>,\n): Promise<T> {\n  return typeof config === 'function' ? await config() : config;\n}\n\nexport { defaultPlugins } from './config/plugins';\nexport type { UserConfig } from './config/types';\nexport { clientDefaultConfig, clientDefaultMeta } from './plugins/@hey-api/client-core/config';\nexport { clientPluginHandler } from './plugins/@hey-api/client-core/plugin';\nexport type { Client } from './plugins/@hey-api/client-core/types';\nexport type { ExpressionTransformer, TypeTransformer } from './plugins/@hey-api/transformers/types';\nexport * from './ts-dsl';\nexport { Logger } from '@hey-api/codegen-core';\nexport type {\n  DefinePlugin,\n  IR,\n  OpenApi,\n  OpenApiMetaObject,\n  OpenApiOperationObject,\n  OpenApiParameterObject,\n  OpenApiRequestBodyObject,\n  OpenApiResponseObject,\n  OpenApiSchemaObject,\n  Plugin,\n} from '@hey-api/shared';\nexport {\n  defaultPaginationKeywords,\n  definePluginConfig,\n  OperationPath,\n  OperationStrategy,\n  utils,\n} from '@hey-api/shared';\n\nexport namespace Plugins {\n  export namespace AngularCommon {\n    export type Types = AngularCommonPlugin;\n  }\n\n  export namespace Arktype {\n    export type Types = ArktypePlugin;\n  }\n\n  export namespace FakerJsFaker {\n    export type Types = FakerJsFakerPlugin;\n    export type Resolvers = Required<FakerJsFakerResolvers>['~resolvers'];\n  }\n\n  export namespace Fastify {\n    export type Types = FastifyPlugin;\n  }\n\n  export namespace HeyApiClientAngular {\n    export type Client = AngularClientImp;\n    export type Types = HeyApiClientAngularPlugin;\n  }\n\n  export namespace HeyApiClientAxios {\n    export type Client = AxiosClientImp;\n    export type Types = HeyApiClientAxiosPlugin;\n  }\n\n  export namespace HeyApiClientFetch {\n    export type Client = FetchClientImp;\n    export type Types = HeyApiClientFetchPlugin;\n  }\n\n  export namespace HeyApiClientKy {\n    export type Client = KyClientImp;\n    export type Types = HeyApiClientKyPlugin;\n  }\n\n  export namespace HeyApiClientNext {\n    export type Client = NextClientImp;\n    export type Types = HeyApiClientNextPlugin;\n  }\n\n  export namespace HeyApiClientNuxt {\n    export type Client = NuxtClientImp;\n    export type Types = HeyApiClientNuxtPlugin;\n  }\n\n  export namespace HeyApiClientOfetch {\n    export type Client = OfetchClientImp;\n    export type Types = HeyApiClientOfetchPlugin;\n  }\n\n  export namespace HeyApiSchemas {\n    export type Types = HeyApiSchemasPlugin;\n  }\n\n  export namespace HeyApiSdk {\n    export type Types = HeyApiSdkPlugin;\n  }\n\n  export namespace HeyApiTransformers {\n    export type Types = HeyApiTransformersPlugin;\n  }\n\n  export namespace HeyApiTypeScript {\n    export type Resolvers = Required<HeyApiTypeScriptResolvers>['~resolvers'];\n    export type Types = HeyApiTypeScriptPlugin;\n  }\n\n  export namespace NestJs {\n    export type Types = NestJsPlugin;\n  }\n\n  export namespace Orpc {\n    export type Types = OrpcPlugin;\n  }\n\n  export namespace PiniaColada {\n    export type Types = PiniaColadaPlugin;\n  }\n\n  export namespace Swr {\n    export type Types = SwrPlugin;\n  }\n\n  export namespace TanStackAngularQuery {\n    export type Types = TanStackAngularQueryPlugin;\n  }\n\n  export namespace TanStackPreactQuery {\n    export type Types = TanStackPreactQueryPlugin;\n  }\n\n  export namespace TanStackReactQuery {\n    export type Types = TanStackReactQueryPlugin;\n  }\n\n  export namespace TanStackSolidQuery {\n    export type Types = TanStackSolidQueryPlugin;\n  }\n\n  export namespace TanStackSvelteQuery {\n    export type Types = TanStackSvelteQueryPlugin;\n  }\n\n  export namespace TanStackVueQuery {\n    export type Types = TanStackVueQueryPlugin;\n  }\n\n  export namespace Valibot {\n    export type Resolvers = Required<ValibotResolvers>['~resolvers'];\n    export type Types = ValibotPlugin;\n  }\n\n  export namespace Zod {\n    export type Resolvers = Required<ZodResolvers>['~resolvers'];\n    export type Types = ZodPlugin;\n  }\n}\n\n// DEPRECATED\n/** @deprecated Use `Plugins.HeyApiClientAngular.Client` instead. */\nexport type AngularClient = AngularClientImp;\n/** @deprecated Use `Plugins.HeyApiClientAxios.Client` instead. */\nexport type AxiosClient = AxiosClientImp;\n/** @deprecated Use `Plugins.HeyApiClientFetch.Client` instead. */\nexport type FetchClient = FetchClientImp;\n/** @deprecated Use `Plugins.HeyApiClientKy.Client` instead. */\nexport type KyClient = KyClientImp;\n/** @deprecated Use `Plugins.HeyApiClientNext.Client` instead. */\nexport type NextClient = NextClientImp;\n/** @deprecated Use `Plugins.HeyApiClientNuxt.Client` instead. */\nexport type NuxtClient = NuxtClientImp;\n/** @deprecated Use `Plugins.HeyApiClientOfetch.Client` instead. */\nexport type OfetchClient = OfetchClientImp;\n"],"mappings":"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"}