{"version":3,"sources":["../src/hooks/useOas.ts","../src/hooks/useOperation.ts","../src/hooks/useOperationManager.ts","../src/hooks/useOperations.ts","../src/hooks/useSchema.ts","../src/hooks/useSchemaManager.ts"],"names":["useContext","Oas","Operation","useApp","Schema","SchemaGenerator","schemaKeywords"],"mappings":"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","file":"hooks.cjs","sourcesContent":["import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { Oas as OasType } from '@kubb/oas'\n\nexport function useOas(): OasType {\n  const { oas } = useContext(Oas.Context)\n\n  if (!oas) {\n    throw new Error('Oas is not defined')\n  }\n\n  return oas\n}\n","import { useContext } from '@kubb/react'\n\nimport { Operation } from '../components/Operation.tsx'\n\nimport type { Operation as OperationType } from '@kubb/oas'\n\n/**\n * `useOperation` will return the current `Operation`\n */\nexport function useOperation(): OperationType {\n  const { operation } = useContext(Operation.Context)\n\n  if (!operation) {\n    throw new Error('Operation is not defined')\n  }\n\n  return operation\n}\n","import { useApp, useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\n\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { Operation, Operation as OperationType } from '@kubb/oas'\nimport type { OperationSchemas } from '../types.ts'\n\ntype FileMeta = FileMetaBase & {\n  pluginKey: Plugin['key']\n  name: string\n  group?: {\n    tag?: string\n    path?: string\n  }\n}\n\nexport type SchemaNames = {\n  request: string | undefined\n  parameters: {\n    path: string | undefined\n    query: string | undefined\n    header: string | undefined\n  }\n  responses: { default?: string } & Record<number | string, string>\n  errors: Record<number | string, string>\n}\n\ntype UseOperationManagerResult = {\n  getName: (\n    operation: OperationType,\n    params: {\n      prefix?: string\n      suffix?: string\n      pluginKey?: Plugin['key']\n      type: ResolveNameParams['type']\n    },\n  ) => string\n  getFile: (\n    operation: OperationType,\n    params?: {\n      prefix?: string\n      suffix?: string\n      pluginKey?: Plugin['key']\n      extname?: KubbFile.Extname\n      group?: {\n        tag?: string\n        path?: string\n      }\n    },\n  ) => KubbFile.File<FileMeta>\n  groupSchemasByName: (\n    operation: OperationType,\n    params: {\n      pluginKey?: Plugin['key']\n      type: ResolveNameParams['type']\n    },\n  ) => SchemaNames\n  getSchemas: (operation: Operation, params?: { pluginKey?: Plugin['key']; type?: ResolveNameParams['type'] }) => OperationSchemas\n  getGroup: (operation: Operation) => FileMeta['group'] | undefined\n}\n\n/**\n * `useOperationManager` will return some helper functions that can be used to get the operation file, get the operation name.\n */\nexport function useOperationManager(): UseOperationManagerResult {\n  const { plugin, pluginManager } = useApp()\n  const { generator } = useContext(Oas.Context)\n\n  const getName: UseOperationManagerResult['getName'] = (operation, { prefix = '', suffix = '', pluginKey = plugin.key, type }) => {\n    return pluginManager.resolveName({\n      name: `${prefix} ${operation.getOperationId()} ${suffix}`,\n      pluginKey,\n      type,\n    })\n  }\n\n  const getGroup: UseOperationManagerResult['getGroup'] = (operation) => {\n    return {\n      tag: operation.getTags().at(0)?.name,\n      path: operation.path,\n    }\n  }\n\n  const getSchemas: UseOperationManagerResult['getSchemas'] = (operation, params) => {\n    if (!generator) {\n      throw new Error(`'generator' is not defined`)\n    }\n\n    return generator.getSchemas(operation, {\n      resolveName: (name) =>\n        pluginManager.resolveName({\n          name,\n          pluginKey: params?.pluginKey,\n          type: params?.type,\n        }),\n    })\n  }\n\n  const getFile: UseOperationManagerResult['getFile'] = (operation, { prefix, suffix, pluginKey = plugin.key, extname = '.ts' } = {}) => {\n    const name = getName(operation, { type: 'file', pluginKey, prefix, suffix })\n    const group = getGroup(operation)\n\n    const file = pluginManager.getFile({\n      name,\n      extname,\n      pluginKey,\n      options: { type: 'file', pluginKey, group },\n    })\n\n    return {\n      ...file,\n      meta: {\n        ...file.meta,\n        name,\n        pluginKey,\n        group,\n      },\n    }\n  }\n\n  const groupSchemasByName: UseOperationManagerResult['groupSchemasByName'] = (operation, { pluginKey = plugin.key, type }) => {\n    if (!generator) {\n      throw new Error(`'generator' is not defined`)\n    }\n\n    const schemas = generator.getSchemas(operation)\n\n    const errors = (schemas.errors || []).reduce(\n      (prev, acc) => {\n        if (!acc.statusCode) {\n          return prev\n        }\n\n        prev[acc.statusCode] = pluginManager.resolveName({\n          name: acc.name,\n          pluginKey,\n          type,\n        })\n\n        return prev\n      },\n      {} as Record<number, string>,\n    )\n\n    const responses = (schemas.responses || []).reduce(\n      (prev, acc) => {\n        if (!acc.statusCode) {\n          return prev\n        }\n\n        prev[acc.statusCode] = pluginManager.resolveName({\n          name: acc.name,\n          pluginKey,\n          type,\n        })\n\n        return prev\n      },\n      {} as Record<number, string>,\n    )\n\n    return {\n      request: schemas.request?.name\n        ? pluginManager.resolveName({\n            name: schemas.request.name,\n            pluginKey,\n            type,\n          })\n        : undefined,\n      parameters: {\n        path: schemas.pathParams?.name\n          ? pluginManager.resolveName({\n              name: schemas.pathParams.name,\n              pluginKey,\n              type,\n            })\n          : undefined,\n        query: schemas.queryParams?.name\n          ? pluginManager.resolveName({\n              name: schemas.queryParams.name,\n              pluginKey,\n              type,\n            })\n          : undefined,\n        header: schemas.headerParams?.name\n          ? pluginManager.resolveName({\n              name: schemas.headerParams.name,\n              pluginKey,\n              type,\n            })\n          : undefined,\n      },\n      responses: {\n        ...responses,\n        ['default']: pluginManager.resolveName({\n          name: schemas.response.name,\n          pluginKey,\n          type,\n        }),\n        ...errors,\n      },\n      errors,\n    }\n  }\n\n  return {\n    getName,\n    getFile,\n    getSchemas,\n    groupSchemasByName,\n    getGroup,\n  }\n}\n","import { useContext } from '@kubb/react'\n\nimport { Oas } from '../components/Oas.tsx'\n\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype UseOperationsProps = {\n  /**\n   * Filter based on path\n   * Weight: 2\n   */\n  path?: string\n  /**\n   * Filter based on method\n   * Weight: 1\n   */\n  method?: HttpMethod\n}\n\n/**\n * `useOperations` will return all the Operations\n */\nexport function useOperations({ method, path }: UseOperationsProps = {}): Operation[] {\n  const { operations } = useContext(Oas.Context)\n\n  if (!operations) {\n    throw new Error('Operations is not defined')\n  }\n  let items = operations\n\n  if (path) {\n    items = items.filter((item) => item.path === path)\n  }\n\n  if (method) {\n    items = items.filter((item) => item.method === method)\n  }\n\n  return items\n}\n","import { useContext } from '@kubb/react'\n\nimport { Schema } from '../components/Schema.tsx'\n\nimport type { SchemaContextProps } from '../components/Schema.tsx'\n\ntype UseSchemaResult = SchemaContextProps\n\n/**\n * `useSchema` will return the current `schema properties`\n */\nexport function useSchema(): UseSchemaResult {\n  const props = useContext(Schema.Context)\n\n  return props as UseSchemaResult\n}\n","import { useApp } from '@kubb/react'\n\nimport type { FileMetaBase, Plugin, ResolveNameParams } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\nimport type { Mode } from '@kubb/fs/types'\nimport { SchemaGenerator } from '../SchemaGenerator.ts'\nimport { type Schema, schemaKeywords } from '../SchemaMapper'\n\ntype FileMeta = FileMetaBase & {\n  pluginKey: Plugin['key']\n  name: string\n  group?: {\n    tag?: string\n    path?: string\n  }\n}\n\ntype UseSchemaManagerResult = {\n  getName: (name: string, params: { pluginKey?: Plugin['key']; type: ResolveNameParams['type'] }) => string\n  getFile: (\n    name: string,\n    params?: {\n      pluginKey?: Plugin['key']\n      mode?: Mode\n      extname?: KubbFile.Extname\n      group?: {\n        tag?: string\n        path?: string\n      }\n    },\n  ) => KubbFile.File<FileMeta>\n  getImports: (tree: Array<Schema>) => Array<KubbFile.Import>\n}\n\n/**\n * `useSchemaManager` will return some helper functions that can be used to get the schema file, get the schema name.\n */\nexport function useSchemaManager(): UseSchemaManagerResult {\n  const { plugin, pluginManager } = useApp()\n\n  const getName: UseSchemaManagerResult['getName'] = (name, { pluginKey = plugin.key, type }) => {\n    return pluginManager.resolveName({\n      name,\n      pluginKey,\n      type,\n    })\n  }\n\n  const getFile: UseSchemaManagerResult['getFile'] = (name, { mode = 'split', pluginKey = plugin.key, extname = '.ts', group } = {}) => {\n    const resolvedName = mode === 'single' ? '' : getName(name, { type: 'file', pluginKey })\n\n    const file = pluginManager.getFile({\n      name: resolvedName,\n      extname,\n      pluginKey,\n      options: { type: 'file', pluginKey, group },\n    })\n\n    return {\n      ...file,\n      meta: {\n        ...file.meta,\n        name: resolvedName,\n        pluginKey,\n      },\n    }\n  }\n\n  const getImports: UseSchemaManagerResult['getImports'] = (tree) => {\n    const refs = SchemaGenerator.deepSearch(tree, schemaKeywords.ref)\n\n    return refs\n      ?.map((item) => {\n        if (!item.args.path || !item.args.isImportable) {\n          return undefined\n        }\n\n        return {\n          name: [item.args.name],\n          path: item.args.path,\n        }\n      })\n      .filter(Boolean)\n  }\n\n  return {\n    getName,\n    getFile,\n    getImports,\n  }\n}\n"]}