{"version":3,"sources":["/home/runner/work/kubb/kubb/packages/swagger-client/dist/index.cjs","../src/plugin.ts","../src/OperationGenerator.tsx","../src/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/swagger-client/dist/index.cjs","sourcesContent":[null,"import path from 'node:path'\n\nimport { FileManager, PluginManager, createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\nimport { renderTemplate } from '@kubb/core/utils'\nimport { pluginOasName } from '@kubb/plugin-oas'\nimport { getGroupedByTagFiles } from '@kubb/plugin-oas/utils'\n\nimport { OperationGenerator } from './OperationGenerator.tsx'\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Plugin } from '@kubb/core'\nimport type { PluginOas as SwaggerPluginOptions } from '@kubb/plugin-oas'\nimport type { PluginClient } from './types.ts'\n\nexport const pluginClientName = 'plugin-client' satisfies PluginClient['name']\n\nexport const pluginClient = createPlugin<PluginClient>((options) => {\n  const {\n    output = { path: 'clients' },\n    group,\n    exclude = [],\n    include,\n    override = [],\n    transformers = {},\n    dataReturnType = 'data',\n    pathParamsType = 'inline',\n    templates,\n  } = options\n\n  const template = group?.output ? group.output : `${output.path}/{{tag}}Controller`\n\n  return {\n    name: pluginClientName,\n    options: {\n      extName: output.extName,\n      dataReturnType,\n      client: {\n        importPath: '@kubb/swagger-client/client',\n        ...options.client,\n      },\n      pathParamsType,\n      templates: {\n        operations: Operations.templates,\n        client: Client.templates,\n        ...templates,\n      },\n      baseURL: undefined,\n    },\n    pre: [pluginOasName],\n    resolvePath(baseName, pathMode, options) {\n      const root = path.resolve(this.config.root, this.config.output.path)\n      const mode = pathMode ?? FileManager.getMode(path.resolve(root, output.path))\n\n      if (mode === 'single') {\n        /**\n         * when output is a file then we will always append to the same file(output file), see fileManager.addOrAppend\n         * Other plugins then need to call addOrAppend instead of just add from the fileManager class\n         */\n        return path.resolve(root, output.path)\n      }\n\n      if (options?.tag && group?.type === 'tag') {\n        const tag = camelCase(options.tag)\n\n        return path.resolve(root, renderTemplate(template, { tag }), baseName)\n      }\n\n      return path.resolve(root, output.path, baseName)\n    },\n    resolveName(name, type) {\n      const resolvedName = camelCase(name, { isFile: type === 'file' })\n\n      if (type) {\n        return transformers?.name?.(resolvedName, type) || resolvedName\n      }\n\n      return resolvedName\n    },\n    async writeFile(path, source) {\n      if (!source) {\n        return\n      }\n\n      return this.fileManager.write(path, source, { sanity: false })\n    },\n    async buildStart() {\n      const [swaggerPlugin]: [Plugin<SwaggerPluginOptions>] = PluginManager.getDependedPlugins<SwaggerPluginOptions>(this.plugins, [pluginOasName])\n\n      const oas = await swaggerPlugin.api.getOas()\n      const root = path.resolve(this.config.root, this.config.output.path)\n      const mode = FileManager.getMode(path.resolve(root, output.path))\n      const baseURL = await swaggerPlugin.api.getBaseURL()\n\n      const operationGenerator = new OperationGenerator(\n        {\n          ...this.plugin.options,\n          baseURL,\n        },\n        {\n          oas,\n          pluginManager: this.pluginManager,\n          plugin: this.plugin,\n          contentType: swaggerPlugin.api.contentType,\n          exclude,\n          include,\n          override,\n          mode,\n        },\n      )\n\n      const files = await operationGenerator.build()\n\n      await this.addFile(...files)\n    },\n    async buildEnd() {\n      if (this.config.output.write === false) {\n        return\n      }\n\n      const root = path.resolve(this.config.root, this.config.output.path)\n\n      if (group?.type === 'tag') {\n        const rootFiles = await getGroupedByTagFiles({\n          logger: this.logger,\n          files: this.fileManager.files,\n          plugin: this.plugin,\n          template,\n          exportAs: group.exportAs || '{{tag}}Service',\n          root,\n          output,\n        })\n\n        await this.addFile(...rootFiles)\n      }\n\n      await this.fileManager.addIndexes({\n        root,\n        output,\n        meta: { pluginKey: this.plugin.key },\n        logger: this.logger,\n      })\n    },\n  }\n})\n","import { OperationGenerator as Generator } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { App, createRoot } from '@kubb/react'\n\nimport { Client, Operations } from './components/index.ts'\n\nimport type { Operation } from '@kubb/oas'\nimport type { OperationMethodResult, OperationsByMethod } from '@kubb/plugin-oas'\nimport type { FileMeta, PluginClient } from './types.ts'\n\nexport class OperationGenerator extends Generator<PluginClient['resolvedOptions'], PluginClient> {\n  async all(operations: Operation[], _operationsByMethod: OperationsByMethod): OperationMethodResult<FileMeta> {\n    const { pluginManager, oas, plugin, mode } = this.context\n\n    const root = createRoot({\n      logger: pluginManager.logger,\n    })\n\n    const templates = {\n      operations: Operations.templates,\n      client: Client.templates,\n      ...this.options.templates,\n    }\n\n    root.render(\n      <App pluginManager={pluginManager} plugin={plugin} mode={mode}>\n        <Oas oas={oas} operations={operations} generator={this}>\n          {templates.operations && <Operations.File baseURL={this.options.baseURL} templates={templates.operations} />}\n        </Oas>\n      </App>,\n    )\n\n    return root.files\n  }\n\n  async operation(operation: Operation, options: PluginClient['resolvedOptions']): OperationMethodResult<FileMeta> {\n    const { oas, pluginManager, plugin, mode } = this.context\n\n    const root = createRoot({\n      logger: pluginManager.logger,\n    })\n\n    const templates = {\n      operations: Operations.templates,\n      client: Client.templates,\n      ...options.templates,\n    }\n\n    if (!templates.client) {\n      return []\n    }\n\n    root.render(\n      <App pluginManager={pluginManager} plugin={{ ...plugin, options }} mode={mode}>\n        <Oas oas={oas} operations={[operation]} generator={this}>\n          <Oas.Operation operation={operation}>\n            <Client.File baseURL={this.options.baseURL} templates={templates.client} />\n          </Oas.Operation>\n        </Oas>\n      </App>,\n    )\n\n    return root.files\n  }\n}\n","import { pluginClient } from './plugin.ts'\n\nexport { pluginClient, pluginClientName } from './plugin.ts'\nexport type { PluginClient } from './types.ts'\n\n/**\n * @deprecated Use `import { pluginClient } from '@kubb/swagger-client'` instead\n */\nconst definePluginDefault = pluginClient\n/**\n * @deprecated Use `import { pluginClient } from '@kubb/swagger-client'` instead\n */\nexport const definePlugin = pluginClient\n\nexport default definePluginDefault\n"]}