{"version":3,"file":"generators-ncr9ueNW.cjs","names":["camelCase","File","pluginTsName","pluginZodName","camelCase","pascalCase","File","path","ClassClient","pluginTsName","pluginZodName","File","path","Url","Client","camelCase","File","Function","File","Operations","pluginTsName","pluginZodName","camelCase","pascalCase","File","path","StaticClassClient"],"sources":["../src/components/WrapperClient.tsx","../src/generators/classClientGenerator.tsx","../src/generators/clientGenerator.tsx","../src/generators/groupedClientGenerator.tsx","../src/generators/operationsGenerator.tsx","../src/generators/staticClassClientGenerator.tsx"],"sourcesContent":["import { camelCase } from '@internals/utils'\nimport { File } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype Props = {\n  name: string\n  classNames: Array<string>\n  isExportable?: boolean\n  isIndexable?: boolean\n}\n\nexport function WrapperClient({ name, classNames, isExportable = true, isIndexable = true }: Props): FabricReactNode {\n  const properties = classNames.map((className) => `  readonly ${camelCase(className)}: ${className}`).join('\\n')\n  const assignments = classNames.map((className) => `    this.${camelCase(className)} = new ${className}(config)`).join('\\n')\n\n  const classCode = `export class ${name} {\n${properties}\n\n  constructor(config: Partial<RequestConfig> & { client?: Client } = {}) {\n${assignments}\n  }\n}`\n\n  return (\n    <File.Source name={name} isExportable={isExportable} isIndexable={isIndexable}>\n      {classCode}\n    </File.Source>\n  )\n}\n","import path from 'node:path'\nimport { camelCase, pascalCase } from '@internals/utils'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { ClassClient } from '../components/ClassClient'\nimport { WrapperClient } from '../components/WrapperClient'\nimport type { PluginClient } from '../types'\n\ntype OperationData = {\n  operation: Operation\n  name: string\n  typeSchemas: OperationSchemas\n  zodSchemas: OperationSchemas | undefined\n  typeFile: KubbFile.File\n  zodFile: KubbFile.File\n}\n\ntype Controller = {\n  name: string\n  file: KubbFile.File\n  operations: Array<OperationData>\n}\n\nexport const classClientGenerator = createReactGenerator<PluginClient>({\n  name: 'classClient',\n  Operations({ operations, generator, plugin, config }) {\n    const { options, key: pluginKey } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n    const { getName, getFile, getGroup, getSchemas } = useOperationManager(generator)\n\n    function buildOperationData(operation: Operation): OperationData {\n      const type = {\n        file: getFile(operation, { pluginKey: [pluginTsName] }),\n        schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n      }\n\n      const zod = {\n        file: getFile(operation, { pluginKey: [pluginZodName] }),\n        schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n      }\n\n      return {\n        operation,\n        name: getName(operation, { type: 'function' }),\n        typeSchemas: type.schemas,\n        zodSchemas: zod.schemas,\n        typeFile: type.file,\n        zodFile: zod.file,\n      }\n    }\n\n    // Group operations by tag\n    const controllers = operations.reduce(\n      (acc, operation) => {\n        const group = getGroup(operation)\n        const groupName = group?.tag ? (options.group?.name?.({ group: camelCase(group.tag) }) ?? pascalCase(group.tag)) : 'Client'\n\n        if (!group?.tag && !options.group) {\n          // If no grouping, put all operations in a single class\n          const name = 'ApiClient'\n          const file = pluginManager.getFile({\n            name,\n            extname: '.ts',\n            pluginKey,\n          })\n\n          const operationData = buildOperationData(operation)\n          const previousFile = acc.find((item) => item.file.path === file.path)\n\n          if (previousFile) {\n            previousFile.operations.push(operationData)\n          } else {\n            acc.push({ name, file, operations: [operationData] })\n          }\n        } else if (group?.tag) {\n          // Group by tag\n          const name = groupName\n          const file = pluginManager.getFile({\n            name,\n            extname: '.ts',\n            pluginKey,\n            options: { group },\n          })\n\n          const operationData = buildOperationData(operation)\n          const previousFile = acc.find((item) => item.file.path === file.path)\n\n          if (previousFile) {\n            previousFile.operations.push(operationData)\n          } else {\n            acc.push({ name, file, operations: [operationData] })\n          }\n        }\n\n        return acc\n      },\n      [] as Array<Controller>,\n    )\n\n    function collectTypeImports(ops: Array<OperationData>) {\n      const typeImportsByFile = new Map<string, Set<string>>()\n      const typeFilesByPath = new Map<string, KubbFile.File>()\n\n      ops.forEach((op) => {\n        const { typeSchemas, typeFile } = op\n\n        if (!typeImportsByFile.has(typeFile.path)) {\n          typeImportsByFile.set(typeFile.path, new Set())\n        }\n        const typeImports = typeImportsByFile.get(typeFile.path)!\n\n        if (typeSchemas.request?.name) typeImports.add(typeSchemas.request.name)\n        if (typeSchemas.response?.name) typeImports.add(typeSchemas.response.name)\n        if (typeSchemas.pathParams?.name) typeImports.add(typeSchemas.pathParams.name)\n        if (typeSchemas.queryParams?.name) typeImports.add(typeSchemas.queryParams.name)\n        if (typeSchemas.headerParams?.name) typeImports.add(typeSchemas.headerParams.name)\n        typeSchemas.statusCodes?.forEach((item) => {\n          if (item?.name) typeImports.add(item.name)\n        })\n        typeFilesByPath.set(typeFile.path, typeFile)\n      })\n\n      return { typeImportsByFile, typeFilesByPath }\n    }\n\n    function collectZodImports(ops: Array<OperationData>) {\n      const zodImportsByFile = new Map<string, Set<string>>()\n      const zodFilesByPath = new Map<string, KubbFile.File>()\n\n      ops.forEach((op) => {\n        const { zodSchemas, zodFile } = op\n\n        if (!zodImportsByFile.has(zodFile.path)) {\n          zodImportsByFile.set(zodFile.path, new Set())\n        }\n        const zodImports = zodImportsByFile.get(zodFile.path)!\n\n        if (zodSchemas?.response?.name) zodImports.add(zodSchemas.response.name)\n        if (zodSchemas?.request?.name) zodImports.add(zodSchemas.request.name)\n        zodFilesByPath.set(zodFile.path, zodFile)\n      })\n\n      return { zodImportsByFile, zodFilesByPath }\n    }\n\n    const files = controllers.map(({ name, file, operations: ops }) => {\n      const { typeImportsByFile, typeFilesByPath } = collectTypeImports(ops)\n      const { zodImportsByFile, zodFilesByPath } =\n        options.parser === 'zod'\n          ? collectZodImports(ops)\n          : { zodImportsByFile: new Map<string, Set<string>>(), zodFilesByPath: new Map<string, KubbFile.File>() }\n      const hasFormData = ops.some((op) => op.operation.getContentType() === 'multipart/form-data')\n\n      return (\n        <File\n          key={file.path}\n          baseName={file.baseName}\n          path={file.path}\n          meta={file.meta}\n          banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n          footer={getFooter({ oas, output: options.output })}\n        >\n          {options.importPath ? (\n            <>\n              <File.Import name={'fetch'} path={options.importPath} />\n              <File.Import name={['mergeConfig']} path={options.importPath} />\n              <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n            </>\n          ) : (\n            <>\n              <File.Import name={['fetch']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n              <File.Import name={['mergeConfig']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n              <File.Import\n                name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n                root={file.path}\n                path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n                isTypeOnly\n              />\n            </>\n          )}\n\n          {hasFormData && <File.Import name={['buildFormData']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />}\n\n          {Array.from(typeImportsByFile.entries()).map(([filePath, imports]) => {\n            const typeFile = typeFilesByPath.get(filePath)\n            if (!typeFile) {\n              return null\n            }\n            const importNames = Array.from(imports).filter(Boolean)\n            if (importNames.length === 0) {\n              return null\n            }\n            return <File.Import key={filePath} name={importNames} root={file.path} path={typeFile.path} isTypeOnly />\n          })}\n\n          {options.parser === 'zod' &&\n            Array.from(zodImportsByFile.entries()).map(([filePath, imports]) => {\n              const zodFile = zodFilesByPath.get(filePath)\n              if (!zodFile) {\n                return null\n              }\n              const importNames = Array.from(imports).filter(Boolean)\n              if (importNames.length === 0) {\n                return null\n              }\n\n              return <File.Import key={filePath} name={importNames} root={file.path} path={zodFile.path} />\n            })}\n\n          <ClassClient\n            name={name}\n            operations={ops}\n            baseURL={options.baseURL}\n            dataReturnType={options.dataReturnType}\n            pathParamsType={options.pathParamsType}\n            paramsCasing={options.paramsCasing}\n            paramsType={options.paramsType}\n            parser={options.parser}\n          />\n        </File>\n      )\n    })\n\n    if (options.wrapper) {\n      const wrapperFile = pluginManager.getFile({\n        name: options.wrapper.className,\n        extname: '.ts',\n        pluginKey,\n      })\n\n      files.push(\n        <File\n          key={wrapperFile.path}\n          baseName={wrapperFile.baseName}\n          path={wrapperFile.path}\n          meta={wrapperFile.meta}\n          banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n          footer={getFooter({ oas, output: options.output })}\n        >\n          {options.importPath ? (\n            <File.Import name={['Client', 'RequestConfig']} path={options.importPath} isTypeOnly />\n          ) : (\n            <File.Import\n              name={['Client', 'RequestConfig']}\n              root={wrapperFile.path}\n              path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n              isTypeOnly\n            />\n          )}\n\n          {controllers.map(({ name, file }) => (\n            <File.Import key={name} name={[name]} root={wrapperFile.path} path={file.path} />\n          ))}\n\n          <WrapperClient name={options.wrapper.className} classNames={controllers.map(({ name }) => name)} />\n        </File>,\n      )\n    }\n\n    return files\n  },\n})\n","import path from 'node:path'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { Client } from '../components/Client'\nimport { Url } from '../components/Url.tsx'\nimport type { PluginClient } from '../types'\n\nexport const clientGenerator = createReactGenerator<PluginClient>({\n  name: 'client',\n  Operation({ config, plugin, operation, generator }) {\n    const pluginManager = usePluginManager()\n    const {\n      options,\n      options: { output, urlType },\n    } = plugin\n\n    const oas = useOas()\n    const { getSchemas, getName, getFile } = useOperationManager(generator)\n\n    const client = {\n      name: getName(operation, { type: 'function' }),\n      file: getFile(operation),\n    }\n\n    const url = {\n      name: getName(operation, { type: 'function', suffix: 'url', prefix: 'get' }),\n      file: getFile(operation),\n    }\n\n    const type = {\n      file: getFile(operation, { pluginKey: [pluginTsName] }),\n      schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n    }\n\n    const zod = {\n      file: getFile(operation, { pluginKey: [pluginZodName] }),\n      schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n    }\n\n    const isFormData = operation.getContentType() === 'multipart/form-data'\n\n    return (\n      <File\n        baseName={client.file.baseName}\n        path={client.file.path}\n        meta={client.file.meta}\n        banner={getBanner({ oas, output, config: pluginManager.config })}\n        footer={getFooter({ oas, output })}\n      >\n        {options.importPath ? (\n          <>\n            <File.Import name={'fetch'} path={options.importPath} />\n            <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n          </>\n        ) : (\n          <>\n            <File.Import name={['fetch']} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n            <File.Import\n              name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n              root={client.file.path}\n              path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n              isTypeOnly\n            />\n          </>\n        )}\n\n        {isFormData && type.schemas.request?.name && (\n          <File.Import name={['buildFormData']} root={client.file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />\n        )}\n\n        {options.parser === 'zod' && (\n          <File.Import\n            name={[zod.schemas.response.name, zod.schemas.request?.name].filter((x): x is string => Boolean(x))}\n            root={client.file.path}\n            path={zod.file.path}\n          />\n        )}\n        <File.Import\n          name={[\n            type.schemas.request?.name,\n            type.schemas.response.name,\n            type.schemas.pathParams?.name,\n            type.schemas.queryParams?.name,\n            type.schemas.headerParams?.name,\n            ...(type.schemas.statusCodes?.map((item) => item.name) || []),\n          ].filter((x): x is string => Boolean(x))}\n          root={client.file.path}\n          path={type.file.path}\n          isTypeOnly\n        />\n\n        <Url\n          name={url.name}\n          baseURL={options.baseURL}\n          pathParamsType={options.pathParamsType}\n          paramsCasing={options.paramsCasing}\n          paramsType={options.paramsType}\n          typeSchemas={type.schemas}\n          operation={operation}\n          isIndexable={urlType === 'export'}\n          isExportable={urlType === 'export'}\n        />\n\n        <Client\n          name={client.name}\n          urlName={url.name}\n          baseURL={options.baseURL}\n          dataReturnType={options.dataReturnType}\n          pathParamsType={options.pathParamsType}\n          paramsCasing={options.paramsCasing}\n          paramsType={options.paramsType}\n          typeSchemas={type.schemas}\n          operation={operation}\n          parser={options.parser}\n          zodSchemas={zod.schemas}\n        />\n      </File>\n    )\n  },\n})\n","import { camelCase } from '@internals/utils'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, Function } from '@kubb/react-fabric'\nimport type { PluginClient } from '../types'\n\nexport const groupedClientGenerator = createReactGenerator<PluginClient>({\n  name: 'groupedClient',\n  Operations({ operations, generator, plugin }) {\n    const { options, key: pluginKey } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n    const { getName, getFile, getGroup } = useOperationManager(generator)\n\n    const controllers = operations.reduce(\n      (acc, operation) => {\n        if (options.group?.type === 'tag') {\n          const group = getGroup(operation)\n          const name = group?.tag ? options.group?.name?.({ group: camelCase(group.tag) }) : undefined\n\n          if (!group?.tag || !name) {\n            return acc\n          }\n\n          const file = pluginManager.getFile({\n            name,\n            extname: '.ts',\n            pluginKey,\n            options: { group },\n          })\n\n          const client = {\n            name: getName(operation, { type: 'function' }),\n            file: getFile(operation),\n          }\n\n          const previousFile = acc.find((item) => item.file.path === file.path)\n\n          if (previousFile) {\n            previousFile.clients.push(client)\n          } else {\n            acc.push({ name, file, clients: [client] })\n          }\n        }\n\n        return acc\n      },\n      [] as Array<{ name: string; file: KubbFile.File; clients: Array<{ name: string; file: KubbFile.File }> }>,\n    )\n\n    return controllers.map(({ name, file, clients }) => {\n      return (\n        <File\n          key={file.path}\n          baseName={file.baseName}\n          path={file.path}\n          meta={file.meta}\n          banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n          footer={getFooter({ oas, output: options.output })}\n        >\n          {clients.map((client) => (\n            <File.Import key={client.name} name={[client.name]} root={file.path} path={client.file.path} />\n          ))}\n\n          <File.Source name={name} isExportable isIndexable>\n            <Function export name={name}>\n              {`return { ${clients.map((client) => client.name).join(', ')} }`}\n            </Function>\n          </File.Source>\n        </File>\n      )\n    })\n  },\n})\n","import { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File } from '@kubb/react-fabric'\nimport { Operations } from '../components/Operations'\nimport type { PluginClient } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginClient>({\n  name: 'client',\n  Operations({ operations, plugin }) {\n    const {\n      key: pluginKey,\n      options: { output },\n    } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n\n    const name = 'operations'\n    const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n    return (\n      <File\n        baseName={file.baseName}\n        path={file.path}\n        meta={file.meta}\n        banner={getBanner({ oas, output, config: pluginManager.config })}\n        footer={getFooter({ oas, output })}\n      >\n        <Operations name={name} operations={operations} />\n      </File>\n    )\n  },\n})\n","import path from 'node:path'\nimport { camelCase, pascalCase } from '@internals/utils'\nimport { usePluginManager } from '@kubb/core/hooks'\nimport type { KubbFile } from '@kubb/fabric-core/types'\nimport type { Operation } from '@kubb/oas'\nimport type { OperationSchemas } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { pluginZodName } from '@kubb/plugin-zod'\nimport { File } from '@kubb/react-fabric'\nimport { StaticClassClient } from '../components/StaticClassClient'\nimport type { PluginClient } from '../types'\n\ntype OperationData = {\n  operation: Operation\n  name: string\n  typeSchemas: OperationSchemas\n  zodSchemas: OperationSchemas | undefined\n  typeFile: KubbFile.File\n  zodFile: KubbFile.File\n}\n\ntype Controller = {\n  name: string\n  file: KubbFile.File\n  operations: Array<OperationData>\n}\n\nexport const staticClassClientGenerator = createReactGenerator<PluginClient>({\n  name: 'staticClassClient',\n  Operations({ operations, generator, plugin, config }) {\n    const { options, key: pluginKey } = plugin\n    const pluginManager = usePluginManager()\n\n    const oas = useOas()\n    const { getName, getFile, getGroup, getSchemas } = useOperationManager(generator)\n\n    function buildOperationData(operation: Operation): OperationData {\n      const type = {\n        file: getFile(operation, { pluginKey: [pluginTsName] }),\n        schemas: getSchemas(operation, { pluginKey: [pluginTsName], type: 'type' }),\n      }\n\n      const zod = {\n        file: getFile(operation, { pluginKey: [pluginZodName] }),\n        schemas: getSchemas(operation, { pluginKey: [pluginZodName], type: 'function' }),\n      }\n\n      return {\n        operation,\n        name: getName(operation, { type: 'function' }),\n        typeSchemas: type.schemas,\n        zodSchemas: zod.schemas,\n        typeFile: type.file,\n        zodFile: zod.file,\n      }\n    }\n\n    // Group operations by tag\n    const controllers = operations.reduce(\n      (acc, operation) => {\n        const group = getGroup(operation)\n        const groupName = group?.tag ? (options.group?.name?.({ group: camelCase(group.tag) }) ?? pascalCase(group.tag)) : 'Client'\n\n        if (!group?.tag && !options.group) {\n          // If no grouping, put all operations in a single class\n          const name = 'ApiClient'\n          const file = pluginManager.getFile({\n            name,\n            extname: '.ts',\n            pluginKey,\n          })\n\n          const operationData = buildOperationData(operation)\n          const previousFile = acc.find((item) => item.file.path === file.path)\n\n          if (previousFile) {\n            previousFile.operations.push(operationData)\n          } else {\n            acc.push({ name, file, operations: [operationData] })\n          }\n        } else if (group?.tag) {\n          // Group by tag\n          const name = groupName\n          const file = pluginManager.getFile({\n            name,\n            extname: '.ts',\n            pluginKey,\n            options: { group },\n          })\n\n          const operationData = buildOperationData(operation)\n          const previousFile = acc.find((item) => item.file.path === file.path)\n\n          if (previousFile) {\n            previousFile.operations.push(operationData)\n          } else {\n            acc.push({ name, file, operations: [operationData] })\n          }\n        }\n\n        return acc\n      },\n      [] as Array<Controller>,\n    )\n\n    function collectTypeImports(ops: Array<OperationData>) {\n      const typeImportsByFile = new Map<string, Set<string>>()\n      const typeFilesByPath = new Map<string, KubbFile.File>()\n\n      ops.forEach((op) => {\n        const { typeSchemas, typeFile } = op\n\n        if (!typeImportsByFile.has(typeFile.path)) {\n          typeImportsByFile.set(typeFile.path, new Set())\n        }\n        const typeImports = typeImportsByFile.get(typeFile.path)!\n\n        if (typeSchemas.request?.name) typeImports.add(typeSchemas.request.name)\n        if (typeSchemas.response?.name) typeImports.add(typeSchemas.response.name)\n        if (typeSchemas.pathParams?.name) typeImports.add(typeSchemas.pathParams.name)\n        if (typeSchemas.queryParams?.name) typeImports.add(typeSchemas.queryParams.name)\n        if (typeSchemas.headerParams?.name) typeImports.add(typeSchemas.headerParams.name)\n        typeSchemas.statusCodes?.forEach((item) => {\n          if (item?.name) typeImports.add(item.name)\n        })\n        typeFilesByPath.set(typeFile.path, typeFile)\n      })\n\n      return { typeImportsByFile, typeFilesByPath }\n    }\n\n    function collectZodImports(ops: Array<OperationData>) {\n      const zodImportsByFile = new Map<string, Set<string>>()\n      const zodFilesByPath = new Map<string, KubbFile.File>()\n\n      ops.forEach((op) => {\n        const { zodSchemas, zodFile } = op\n\n        if (!zodImportsByFile.has(zodFile.path)) {\n          zodImportsByFile.set(zodFile.path, new Set())\n        }\n        const zodImports = zodImportsByFile.get(zodFile.path)!\n\n        if (zodSchemas?.response?.name) zodImports.add(zodSchemas.response.name)\n        if (zodSchemas?.request?.name) zodImports.add(zodSchemas.request.name)\n        zodFilesByPath.set(zodFile.path, zodFile)\n      })\n\n      return { zodImportsByFile, zodFilesByPath }\n    }\n\n    return controllers.map(({ name, file, operations: ops }) => {\n      const { typeImportsByFile, typeFilesByPath } = collectTypeImports(ops)\n      const { zodImportsByFile, zodFilesByPath } =\n        options.parser === 'zod'\n          ? collectZodImports(ops)\n          : { zodImportsByFile: new Map<string, Set<string>>(), zodFilesByPath: new Map<string, KubbFile.File>() }\n      const hasFormData = ops.some((op) => op.operation.getContentType() === 'multipart/form-data')\n\n      return (\n        <File\n          key={file.path}\n          baseName={file.baseName}\n          path={file.path}\n          meta={file.meta}\n          banner={getBanner({ oas, output: options.output, config: pluginManager.config })}\n          footer={getFooter({ oas, output: options.output })}\n        >\n          {options.importPath ? (\n            <>\n              <File.Import name={'fetch'} path={options.importPath} />\n              <File.Import name={['mergeConfig']} path={options.importPath} />\n              <File.Import name={['Client', 'RequestConfig', 'ResponseErrorConfig']} path={options.importPath} isTypeOnly />\n            </>\n          ) : (\n            <>\n              <File.Import name={['fetch']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n              <File.Import name={['mergeConfig']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')} />\n              <File.Import\n                name={['Client', 'RequestConfig', 'ResponseErrorConfig']}\n                root={file.path}\n                path={path.resolve(config.root, config.output.path, '.kubb/fetch.ts')}\n                isTypeOnly\n              />\n            </>\n          )}\n\n          {hasFormData && <File.Import name={['buildFormData']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/config.ts')} />}\n\n          {Array.from(typeImportsByFile.entries()).map(([filePath, imports]) => {\n            const typeFile = typeFilesByPath.get(filePath)\n            if (!typeFile) {\n              return null\n            }\n            const importNames = Array.from(imports).filter(Boolean)\n            if (importNames.length === 0) {\n              return null\n            }\n            return <File.Import key={filePath} name={importNames} root={file.path} path={typeFile.path} isTypeOnly />\n          })}\n\n          {options.parser === 'zod' &&\n            Array.from(zodImportsByFile.entries()).map(([filePath, imports]) => {\n              const zodFile = zodFilesByPath.get(filePath)\n              if (!zodFile) {\n                return null\n              }\n              const importNames = Array.from(imports).filter(Boolean)\n              if (importNames.length === 0) {\n                return null\n              }\n\n              return <File.Import key={filePath} name={importNames} root={file.path} path={zodFile.path} />\n            })}\n\n          <StaticClassClient\n            name={name}\n            operations={ops}\n            baseURL={options.baseURL}\n            dataReturnType={options.dataReturnType}\n            pathParamsType={options.pathParamsType}\n            paramsCasing={options.paramsCasing}\n            paramsType={options.paramsType}\n            parser={options.parser}\n          />\n        </File>\n      )\n    })\n  },\n})\n"],"mappings":"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"}