@kubb/plugin-oas 3.16.2 → 3.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/Oas-CuqAnIw-.js +60 -0
  2. package/dist/Oas-CuqAnIw-.js.map +1 -0
  3. package/dist/Oas-Cv_pyXRM.cjs +78 -0
  4. package/dist/Oas-Cv_pyXRM.cjs.map +1 -0
  5. package/dist/OperationGenerator-CgbXErhW.d.cts +900 -0
  6. package/dist/OperationGenerator-OtLcGk2y.d.ts +900 -0
  7. package/dist/Schema-DJshqHto.d.cts +38 -0
  8. package/dist/Schema-DOXGUW1m.d.ts +38 -0
  9. package/dist/SchemaGenerator-8205BXCp.cjs +942 -0
  10. package/dist/SchemaGenerator-8205BXCp.cjs.map +1 -0
  11. package/dist/SchemaGenerator-B8Io6kky.js +930 -0
  12. package/dist/SchemaGenerator-B8Io6kky.js.map +1 -0
  13. package/dist/SchemaMapper-BaZQKrQB.js +54 -0
  14. package/dist/SchemaMapper-BaZQKrQB.js.map +1 -0
  15. package/dist/SchemaMapper-BiagBQN4.d.cts +388 -0
  16. package/dist/SchemaMapper-C2J2d3o4.d.ts +388 -0
  17. package/dist/SchemaMapper-D8J0V9Pj.cjs +66 -0
  18. package/dist/SchemaMapper-D8J0V9Pj.cjs.map +1 -0
  19. package/dist/chunk-CUT6urMc.cjs +30 -0
  20. package/dist/components.cjs +4 -19
  21. package/dist/components.d.cts +42 -35
  22. package/dist/components.d.ts +42 -35
  23. package/dist/components.js +3 -3
  24. package/dist/generators-BhLMlRNk.js +137 -0
  25. package/dist/generators-BhLMlRNk.js.map +1 -0
  26. package/dist/generators-DLH2kvlh.cjs +155 -0
  27. package/dist/generators-DLH2kvlh.cjs.map +1 -0
  28. package/dist/generators.cjs +4 -13
  29. package/dist/generators.d.cts +5 -7
  30. package/dist/generators.d.ts +5 -7
  31. package/dist/generators.js +5 -5
  32. package/dist/getFooter-BChY2kC1.cjs +43 -0
  33. package/dist/getFooter-BChY2kC1.cjs.map +1 -0
  34. package/dist/getFooter-T7_pZ6f8.js +31 -0
  35. package/dist/getFooter-T7_pZ6f8.js.map +1 -0
  36. package/dist/getSchemas-D8mP129c.cjs +67 -0
  37. package/dist/getSchemas-D8mP129c.cjs.map +1 -0
  38. package/dist/getSchemas-WoSBIxG8.js +55 -0
  39. package/dist/getSchemas-WoSBIxG8.js.map +1 -0
  40. package/dist/hooks.cjs +213 -195
  41. package/dist/hooks.cjs.map +1 -1
  42. package/dist/hooks.d.cts +91 -86
  43. package/dist/hooks.d.ts +91 -86
  44. package/dist/hooks.js +212 -193
  45. package/dist/hooks.js.map +1 -1
  46. package/dist/index.cjs +280 -342
  47. package/dist/index.cjs.map +1 -1
  48. package/dist/index.d.cts +7 -10
  49. package/dist/index.d.ts +7 -10
  50. package/dist/index.js +274 -318
  51. package/dist/index.js.map +1 -1
  52. package/dist/mocks.cjs +802 -737
  53. package/dist/mocks.cjs.map +1 -1
  54. package/dist/mocks.d.cts +12 -11
  55. package/dist/mocks.d.ts +12 -11
  56. package/dist/mocks.js +802 -735
  57. package/dist/mocks.js.map +1 -1
  58. package/dist/parseFromConfig-CMNGsef2.cjs +33 -0
  59. package/dist/parseFromConfig-CMNGsef2.cjs.map +1 -0
  60. package/dist/parseFromConfig-yAiFK03V.js +27 -0
  61. package/dist/parseFromConfig-yAiFK03V.js.map +1 -0
  62. package/dist/utils.cjs +58 -74
  63. package/dist/utils.cjs.map +1 -1
  64. package/dist/utils.d.cts +96 -42
  65. package/dist/utils.d.ts +96 -42
  66. package/dist/utils.js +47 -46
  67. package/dist/utils.js.map +1 -1
  68. package/package.json +26 -34
  69. package/src/components/Operation.tsx +1 -2
  70. package/src/mocks/schemas.ts +39 -0
  71. package/src/utils/getBanner.ts +5 -5
  72. package/src/utils/getFooter.ts +4 -4
  73. package/dist/OperationGenerator-C7NPZtOM.d.ts +0 -288
  74. package/dist/OperationGenerator-DJE2XQ83.d.cts +0 -288
  75. package/dist/Schema-AjebpeVY.d.ts +0 -32
  76. package/dist/Schema-M6983FL1.d.cts +0 -32
  77. package/dist/SchemaMapper-B21ZmWag.d.cts +0 -275
  78. package/dist/SchemaMapper-B21ZmWag.d.ts +0 -275
  79. package/dist/chunk-6S7YFY6F.js +0 -33
  80. package/dist/chunk-6S7YFY6F.js.map +0 -1
  81. package/dist/chunk-76E35IZ2.js +0 -56
  82. package/dist/chunk-76E35IZ2.js.map +0 -1
  83. package/dist/chunk-7RFNM43R.cjs +0 -41
  84. package/dist/chunk-7RFNM43R.cjs.map +0 -1
  85. package/dist/chunk-DTD4ZUDA.cjs +0 -36
  86. package/dist/chunk-DTD4ZUDA.cjs.map +0 -1
  87. package/dist/chunk-G3FDK7YW.js +0 -35
  88. package/dist/chunk-G3FDK7YW.js.map +0 -1
  89. package/dist/chunk-JNN4JPWK.js +0 -28
  90. package/dist/chunk-JNN4JPWK.js.map +0 -1
  91. package/dist/chunk-MBX66JAT.js +0 -93
  92. package/dist/chunk-MBX66JAT.js.map +0 -1
  93. package/dist/chunk-NC5PWNEF.js +0 -866
  94. package/dist/chunk-NC5PWNEF.js.map +0 -1
  95. package/dist/chunk-PORSNYI5.js +0 -47
  96. package/dist/chunk-PORSNYI5.js.map +0 -1
  97. package/dist/chunk-QJMOOF2A.cjs +0 -97
  98. package/dist/chunk-QJMOOF2A.cjs.map +0 -1
  99. package/dist/chunk-RKHCI3WI.cjs +0 -1002
  100. package/dist/chunk-RKHCI3WI.cjs.map +0 -1
  101. package/dist/chunk-YWMMI3MO.cjs +0 -59
  102. package/dist/chunk-YWMMI3MO.cjs.map +0 -1
  103. package/dist/chunk-Z2NREI4X.cjs +0 -32
  104. package/dist/chunk-Z2NREI4X.cjs.map +0 -1
  105. package/dist/chunk-ZVFL3NXX.cjs +0 -50
  106. package/dist/chunk-ZVFL3NXX.cjs.map +0 -1
  107. package/dist/components.cjs.map +0 -1
  108. package/dist/components.js.map +0 -1
  109. package/dist/generators.cjs.map +0 -1
  110. package/dist/generators.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"names":["path","options","oas"],"mappings":"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","file":"index.js","sourcesContent":["import { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type { KubbFile } from '@kubb/core/fs'\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, SchemaObject, contentType } from '@kubb/oas'\nimport type { Generator } from './generator.tsx'\nimport type { Exclude, Include, OperationSchemas, Override } from './types.ts'\nimport pLimit from 'p-limit'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return (\n override.find(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return exclude.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return include.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const operationId = operation.getOperationId({ friendlyCase: true })\n const method = operation.method\n const operationName = transformers.pascalCase(operationId)\n\n const resolveKeys = (schema?: SchemaObject) => (schema?.properties ? Object.keys(schema.properties) : undefined)\n\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n const name = statusCode === 'default' ? 'error' : statusCode\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n const keys = resolveKeys(schema)\n\n return {\n name: resolveName(transformers.pascalCase(`${operationId} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName,\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys,\n keysToOmit: keys?.filter((key) => (schema?.properties?.[key] as OasTypes.SchemaObject)?.writeOnly),\n }\n })\n\n const successful = statusCodes.filter((item) => item.statusCode?.toString().startsWith('2'))\n const errors = statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} PathParams`)),\n operation,\n operationName,\n schema: pathParamsSchema,\n keys: resolveKeys(pathParamsSchema),\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} QueryParams`)),\n operation,\n operationName,\n schema: queryParamsSchema,\n keys: resolveKeys(queryParamsSchema) || [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} HeaderParams`)),\n operation,\n operationName,\n schema: headerParamsSchema,\n keys: resolveKeys(headerParamsSchema),\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName,\n schema: requestSchema,\n keys: resolveKeys(requestSchema),\n keysToOmit: resolveKeys(requestSchema)?.filter((key) => (requestSchema.properties?.[key] as OasTypes.SchemaObject)?.readOnly),\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName,\n schema: {\n oneOf: successful.map((item) => ({ ...item.schema, $ref: item.name })) || undefined,\n } as SchemaObject,\n },\n responses: successful,\n errors,\n statusCodes,\n }\n }\n\n async getOperations(): Promise<Array<{ path: string; method: HttpMethod; operation: Operation }>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n\n return Object.entries(paths).flatMap(([path, methods]) =>\n Object.entries(methods)\n .map((values) => {\n const [method, operation] = values as [HttpMethod, Operation]\n if (this.#isExcluded(operation, method)) {\n return null\n }\n\n if (this.context.include && !this.#isIncluded(operation, method)) {\n return null\n }\n\n return operation ? { path, method: method as HttpMethod, operation } : null\n })\n .filter(Boolean),\n )\n }\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const operations = await this.getOperations()\n\n const generatorLimit = pLimit(1)\n const operationLimit = pLimit(10)\n\n const writeTasks = generators.map((generator) =>\n generatorLimit(async () => {\n const operationTasks = operations.map(({ operation, method }) =>\n operationLimit(async () => {\n const options = this.#getOptions(operation, method)\n\n const result = await generator.operation?.({\n instance: this,\n operation,\n options: { ...this.options, ...options },\n })\n\n return result ?? []\n }),\n )\n\n const operationResults = await Promise.all(operationTasks)\n const opResultsFlat = operationResults.flat()\n\n const operationsResult = await generator.operations?.({\n instance: this,\n operations: operations.map((op) => op.operation),\n options: this.options,\n })\n\n return [...opResultsFlat, ...(operationsResult ?? [])] as unknown as KubbFile.File<TFileMeta>\n }),\n )\n\n const nestedResults = await Promise.all(writeTasks)\n\n return nestedResults.flat()\n }\n}\n","import path from 'node:path'\nimport type { Config } from '@kubb/core'\nimport { createPlugin, FileManager, type Group } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { Oas } from '@kubb/oas'\nimport { jsonGenerator } from './generators'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport type { PluginOas } from './types.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n group,\n validate = true,\n generators = [jsonGenerator],\n serverIndex,\n contentType,\n oasClass,\n discriminator = 'strict',\n } = options\n let oas: Oas\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n oas = await parseFromConfig(config, oasClass)\n\n oas.setOptions({\n contentType,\n discriminator,\n })\n\n try {\n if (validate) {\n await oas.valdiate()\n }\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n }\n\n return oas\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n validate,\n discriminator,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n if (serverIndex) {\n return oasInstance.api.servers?.at(serverIndex)?.url\n }\n\n return undefined\n },\n }\n },\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 (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n emptySchemaType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"]}
1
+ {"version":3,"file":"index.js","names":["operation: Operation","method: HttpMethod","schema?: SchemaObject","path","#isExcluded","#isIncluded","#getOptions","oas: Oas","options","groupName: Group['name']","oas"],"sources":["../src/OperationGenerator.ts","../src/plugin.ts"],"sourcesContent":["import { BaseGenerator, type FileMetaBase } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type { KubbFile } from '@kubb/core/fs'\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, SchemaObject, contentType } from '@kubb/oas'\nimport type { Generator } from './generator.tsx'\nimport type { Exclude, Include, OperationSchemas, Override } from './types.ts'\nimport pLimit from 'p-limit'\n\nexport type OperationMethodResult<TFileMeta extends FileMetaBase> = Promise<KubbFile.File<TFileMeta> | Array<KubbFile.File<TFileMeta>> | null>\n\ntype Context<TOptions, TPluginOptions extends PluginFactoryOptions> = {\n oas: Oas\n exclude: Array<Exclude> | undefined\n include: Array<Include> | undefined\n override: Array<Override<TOptions>> | undefined\n contentType: contentType | undefined\n pluginManager: PluginManager\n /**\n * Current plugin\n */\n plugin: Plugin<TPluginOptions>\n mode: KubbFile.Mode\n}\n\nexport class OperationGenerator<\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends BaseGenerator<TPluginOptions['resolvedOptions'], Context<TPluginOptions['resolvedOptions'], TPluginOptions>> {\n #getOptions(operation: Operation, method: HttpMethod): Partial<TPluginOptions['resolvedOptions']> {\n const { override = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return (\n override.find(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })?.options || {}\n )\n }\n\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return exclude.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n const operationId = operation.getOperationId({ friendlyCase: true })\n const contentType = operation.getContentType()\n\n return include.some(({ pattern, type }) => {\n switch (type) {\n case 'tag':\n return operation.getTags().some((tag) => tag.name.match(pattern))\n case 'operationId':\n return !!operationId.match(pattern)\n case 'path':\n return !!operation.path.match(pattern)\n case 'method':\n return !!method.match(pattern)\n case 'contentType':\n return !!contentType.match(pattern)\n default:\n return false\n }\n })\n }\n\n getSchemas(\n operation: Operation,\n {\n resolveName = (name) => name,\n }: {\n resolveName?: (name: string) => string\n } = {},\n ): OperationSchemas {\n const operationId = operation.getOperationId({ friendlyCase: true })\n const method = operation.method\n const operationName = transformers.pascalCase(operationId)\n\n const resolveKeys = (schema?: SchemaObject) => (schema?.properties ? Object.keys(schema.properties) : undefined)\n\n const pathParamsSchema = this.context.oas.getParametersSchema(operation, 'path')\n const queryParamsSchema = this.context.oas.getParametersSchema(operation, 'query')\n const headerParamsSchema = this.context.oas.getParametersSchema(operation, 'header')\n const requestSchema = this.context.oas.getRequestSchema(operation)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n const name = statusCode === 'default' ? 'error' : statusCode\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n const keys = resolveKeys(schema)\n\n return {\n name: resolveName(transformers.pascalCase(`${operationId} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName,\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys,\n keysToOmit: keys?.filter((key) => (schema?.properties?.[key] as OasTypes.SchemaObject)?.writeOnly),\n }\n })\n\n const successful = statusCodes.filter((item) => item.statusCode?.toString().startsWith('2'))\n const errors = statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5'))\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} PathParams`)),\n operation,\n operationName,\n schema: pathParamsSchema,\n keys: resolveKeys(pathParamsSchema),\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} QueryParams`)),\n operation,\n operationName,\n schema: queryParamsSchema,\n keys: resolveKeys(queryParamsSchema) || [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} HeaderParams`)),\n operation,\n operationName,\n schema: headerParamsSchema,\n keys: resolveKeys(headerParamsSchema),\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName,\n schema: requestSchema,\n keys: resolveKeys(requestSchema),\n keysToOmit: resolveKeys(requestSchema)?.filter((key) => (requestSchema.properties?.[key] as OasTypes.SchemaObject)?.readOnly),\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operationId} ${method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n operation,\n operationName,\n schema: {\n oneOf: successful.map((item) => ({ ...item.schema, $ref: item.name })) || undefined,\n } as SchemaObject,\n },\n responses: successful,\n errors,\n statusCodes,\n }\n }\n\n async getOperations(): Promise<Array<{ path: string; method: HttpMethod; operation: Operation }>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n\n return Object.entries(paths).flatMap(([path, methods]) =>\n Object.entries(methods)\n .map((values) => {\n const [method, operation] = values as [HttpMethod, Operation]\n if (this.#isExcluded(operation, method)) {\n return null\n }\n\n if (this.context.include && !this.#isIncluded(operation, method)) {\n return null\n }\n\n return operation ? { path, method: method as HttpMethod, operation } : null\n })\n .filter(Boolean),\n )\n }\n\n async build(...generators: Array<Generator<TPluginOptions>>): Promise<Array<KubbFile.File<TFileMeta>>> {\n const operations = await this.getOperations()\n\n const generatorLimit = pLimit(1)\n const operationLimit = pLimit(10)\n\n const writeTasks = generators.map((generator) =>\n generatorLimit(async () => {\n const operationTasks = operations.map(({ operation, method }) =>\n operationLimit(async () => {\n const options = this.#getOptions(operation, method)\n\n const result = await generator.operation?.({\n instance: this,\n operation,\n options: { ...this.options, ...options },\n })\n\n return result ?? []\n }),\n )\n\n const operationResults = await Promise.all(operationTasks)\n const opResultsFlat = operationResults.flat()\n\n const operationsResult = await generator.operations?.({\n instance: this,\n operations: operations.map((op) => op.operation),\n options: this.options,\n })\n\n return [...opResultsFlat, ...(operationsResult ?? [])] as unknown as KubbFile.File<TFileMeta>\n }),\n )\n\n const nestedResults = await Promise.all(writeTasks)\n\n return nestedResults.flat()\n }\n}\n","import path from 'node:path'\nimport type { Config } from '@kubb/core'\nimport { createPlugin, FileManager, type Group } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport { camelCase } from '@kubb/core/transformers'\nimport type { Oas } from '@kubb/oas'\nimport { jsonGenerator } from './generators'\nimport { OperationGenerator } from './OperationGenerator.ts'\nimport { SchemaGenerator } from './SchemaGenerator.ts'\nimport type { PluginOas } from './types.ts'\nimport { parseFromConfig } from './utils/parseFromConfig.ts'\n\nexport const pluginOasName = 'plugin-oas' satisfies PluginOas['name']\n\nexport const pluginOas = createPlugin<PluginOas>((options) => {\n const {\n output = {\n path: 'schemas',\n },\n group,\n validate = true,\n generators = [jsonGenerator],\n serverIndex,\n contentType,\n oasClass,\n discriminator = 'strict',\n } = options\n let oas: Oas\n\n const getOas = async ({ config, logger }: { config: Config; logger: Logger }): Promise<Oas> => {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n oas = await parseFromConfig(config, oasClass)\n\n oas.setOptions({\n contentType,\n discriminator,\n })\n\n try {\n if (validate) {\n await oas.valdiate()\n }\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n }\n\n return oas\n }\n\n return {\n name: pluginOasName,\n options: {\n output,\n validate,\n discriminator,\n ...options,\n },\n context() {\n const { config, logger } = this\n\n return {\n getOas() {\n return getOas({ config, logger })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n if (serverIndex) {\n return oasInstance.api.servers?.at(serverIndex)?.url\n }\n\n return undefined\n },\n }\n },\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 (group && (options?.group?.path || options?.group?.tag)) {\n const groupName: Group['name'] = group?.name\n ? group.name\n : (ctx) => {\n if (group?.type === 'path') {\n return `${ctx.group.split('/')[1]}`\n }\n return `${camelCase(ctx.group)}Controller`\n }\n\n return path.resolve(\n root,\n output.path,\n groupName({\n group: group.type === 'path' ? options.group.path! : options.group.tag!,\n }),\n baseName,\n )\n }\n\n return path.resolve(root, output.path, baseName)\n },\n async buildStart() {\n if (!output) {\n return\n }\n\n const oas = await getOas({\n config: this.config,\n logger: this.logger,\n })\n await oas.dereference()\n\n const schemaGenerator = new SchemaGenerator(\n {\n unknownType: 'unknown',\n emptySchemaType: 'unknown',\n dateType: 'date',\n transformers: {},\n ...this.plugin.options,\n },\n {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n include: undefined,\n override: undefined,\n mode: 'split',\n output: output.path,\n },\n )\n\n const schemaFiles = await schemaGenerator.build(...generators)\n await this.addFile(...schemaFiles)\n\n const operationGenerator = new OperationGenerator(this.plugin.options, {\n oas,\n pluginManager: this.pluginManager,\n plugin: this.plugin,\n contentType,\n exclude: undefined,\n include: undefined,\n override: undefined,\n mode: 'split',\n })\n\n const operationFiles = await operationGenerator.build(...generators)\n\n await this.addFile(...operationFiles)\n },\n }\n})\n"],"mappings":"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"}