@kubb/plugin-oas 3.0.0-alpha.0 → 3.0.0-alpha.2

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 (43) hide show
  1. package/dist/{OperationGenerator-CrCcKl3S.d.cts → OperationGenerator-CeM_9pxW.d.cts} +1 -1
  2. package/dist/{OperationGenerator-B0RLFu4P.d.ts → OperationGenerator-DhUhvRJE.d.ts} +1 -1
  3. package/dist/{chunk-K4GEQ3C2.cjs → chunk-CJXRFYEF.cjs} +21 -21
  4. package/dist/{chunk-K4GEQ3C2.cjs.map → chunk-CJXRFYEF.cjs.map} +1 -1
  5. package/dist/{chunk-UKUEVTRB.cjs → chunk-DRLYORTT.cjs} +23 -23
  6. package/dist/{chunk-UKUEVTRB.cjs.map → chunk-DRLYORTT.cjs.map} +1 -1
  7. package/dist/{chunk-ZZ7ZC4TT.js → chunk-K6KUETAI.js} +2 -2
  8. package/dist/{chunk-QSM6A5QX.js → chunk-LEACSHKT.js} +3 -3
  9. package/dist/{chunk-J7IF3KA3.cjs → chunk-P42X362U.cjs} +3 -3
  10. package/dist/chunk-P42X362U.cjs.map +1 -0
  11. package/dist/{chunk-3UN2S6P2.cjs → chunk-QLJIL3U5.cjs} +3 -3
  12. package/dist/{chunk-3UN2S6P2.cjs.map → chunk-QLJIL3U5.cjs.map} +1 -1
  13. package/dist/{chunk-Y272OQMW.js → chunk-UB552H4J.js} +3 -3
  14. package/dist/chunk-UB552H4J.js.map +1 -0
  15. package/dist/{chunk-GUPCIAYT.js → chunk-Y4V7HHX7.js} +2 -2
  16. package/dist/components.cjs +5 -5
  17. package/dist/components.d.cts +2 -2
  18. package/dist/components.d.ts +2 -2
  19. package/dist/components.js +3 -3
  20. package/dist/hooks.cjs +13 -13
  21. package/dist/hooks.d.cts +1 -1
  22. package/dist/hooks.d.ts +1 -1
  23. package/dist/hooks.js +3 -3
  24. package/dist/index.cjs +21 -27
  25. package/dist/index.cjs.map +1 -1
  26. package/dist/index.d.cts +3 -3
  27. package/dist/index.d.ts +3 -3
  28. package/dist/index.js +4 -10
  29. package/dist/index.js.map +1 -1
  30. package/dist/{types-BP45TdiW.d.ts → types-Dte3MA6H.d.cts} +0 -5
  31. package/dist/{types-BP45TdiW.d.cts → types-Dte3MA6H.d.ts} +0 -5
  32. package/dist/utils.cjs +8 -8
  33. package/dist/utils.d.cts +2 -2
  34. package/dist/utils.d.ts +2 -2
  35. package/dist/utils.js +2 -2
  36. package/package.json +11 -11
  37. package/src/plugin.ts +1 -9
  38. package/src/types.ts +0 -6
  39. package/dist/chunk-J7IF3KA3.cjs.map +0 -1
  40. package/dist/chunk-Y272OQMW.js.map +0 -1
  41. /package/dist/{chunk-ZZ7ZC4TT.js.map → chunk-K6KUETAI.js.map} +0 -0
  42. /package/dist/{chunk-QSM6A5QX.js.map → chunk-LEACSHKT.js.map} +0 -0
  43. /package/dist/{chunk-GUPCIAYT.js.map → chunk-Y4V7HHX7.js.map} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as _kubb_core from '@kubb/core';
2
2
  import { FileMetaBase, ResolveNameParams, PluginFactoryOptions, Generator, PluginManager, Plugin } from '@kubb/core';
3
- import { O as Options, P as PluginOas, a as OperationSchema, R as Refs, b as Override } from './types-BP45TdiW.js';
4
- export { A as API, E as Exclude, I as Include, f as OperationSchemas, g as OperationsByMethod, d as Ref, c as ResolvePathOptions, e as Resolver } from './types-BP45TdiW.js';
5
- export { G as GetOperationGeneratorOptions, a as OperationGenerator, O as OperationMethodResult } from './OperationGenerator-B0RLFu4P.js';
3
+ import { O as Options, P as PluginOas, a as OperationSchema, R as Refs, b as Override } from './types-Dte3MA6H.js';
4
+ export { A as API, E as Exclude, I as Include, f as OperationSchemas, g as OperationsByMethod, d as Ref, c as ResolvePathOptions, e as Resolver } from './types-Dte3MA6H.js';
5
+ export { G as GetOperationGeneratorOptions, a as OperationGenerator, O as OperationMethodResult } from './OperationGenerator-DhUhvRJE.js';
6
6
  import * as KubbFile from '@kubb/fs/types';
7
7
  import { SchemaObject, Oas, contentType } from '@kubb/oas';
8
8
  import { S as Schema, a as SchemaKeywordMapper } from './SchemaMapper-CsBQ6eEx.js';
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  parseFromConfig
3
- } from "./chunk-GUPCIAYT.js";
3
+ } from "./chunk-Y4V7HHX7.js";
4
4
  import {
5
5
  SchemaGenerator,
6
6
  isKeyword,
7
7
  schemaKeywords
8
- } from "./chunk-ZZ7ZC4TT.js";
8
+ } from "./chunk-K6KUETAI.js";
9
9
  import {
10
10
  __privateAdd,
11
11
  __privateGet,
@@ -13,7 +13,7 @@ import {
13
13
  __privateSet,
14
14
  getSchemas,
15
15
  init_esm_shims
16
- } from "./chunk-Y272OQMW.js";
16
+ } from "./chunk-UB552H4J.js";
17
17
 
18
18
  // src/index.ts
19
19
  init_esm_shims();
@@ -50,7 +50,7 @@ var pluginOas = createPlugin((options) => {
50
50
  return {
51
51
  name: pluginOasName,
52
52
  options,
53
- api() {
53
+ context() {
54
54
  const { config, logger } = this;
55
55
  return {
56
56
  getOas(formatOptions) {
@@ -78,12 +78,6 @@ var pluginOas = createPlugin((options) => {
78
78
  resolveName(name, type) {
79
79
  return camelCase(name, { isFile: type === "file" });
80
80
  },
81
- async writeFile(path2, source) {
82
- if (!path2.endsWith(".json") || !source) {
83
- return;
84
- }
85
- return this.fileManager.write(path2, source, { sanity: false });
86
- },
87
81
  async buildStart() {
88
82
  if (!output) {
89
83
  return;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/OperationGenerator.ts"],"sourcesContent":["import { pluginOas } from './plugin.ts'\n\nexport type {\n GetOperationGeneratorOptions,\n OperationMethodResult,\n} from './OperationGenerator.ts'\nexport { OperationGenerator } from './OperationGenerator.ts'\nexport { pluginOas, pluginOasName } from './plugin.ts'\nexport type {\n GetSchemaGeneratorOptions,\n SchemaGeneratorBuildOptions,\n SchemaGeneratorOptions,\n} from './SchemaGenerator.ts'\nexport type { SchemaMethodResult } from './SchemaGenerator.ts'\nexport { SchemaGenerator } from './SchemaGenerator.ts'\nexport type {\n Schema,\n SchemaKeyword,\n SchemaKeywordBase,\n SchemaKeywordMapper,\n SchemaMapper,\n} from './SchemaMapper.ts'\nexport { isKeyword, schemaKeywords } from './SchemaMapper.ts'\nexport type * from './types.ts'\n\n/**\n * @deprecated Use `import { pluginOas } from '@kubb/plugin-oas'` instead\n */\nconst definePluginDefault = pluginOas\n\nexport default definePluginDefault\n","import path from 'node:path'\n\nimport { createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\n\nimport { getSchemas } from './utils/getSchemas.ts'\n\nimport type { Config } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport type { Oas, OasTypes } from '@kubb/oas'\nimport type { FormatOptions } from '@kubb/oas/parser'\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 = { path: 'schemas', export: false },\n experimentalFilter: filter,\n experimentalSort: sort,\n validate = true,\n serverIndex = 0,\n contentType,\n oasClass,\n } = options\n\n const getOas = async ({ config, logger, formatOptions }: { config: Config; logger: Logger; formatOptions?: FormatOptions }): Promise<Oas> => {\n try {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n const oas = await parseFromConfig(config, formatOptions, oasClass)\n\n if (validate) {\n await oas.valdiate()\n }\n\n return oas\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n return parseFromConfig(config, {}, oasClass)\n }\n }\n\n return {\n name: pluginOasName,\n options,\n\n api() {\n const { config, logger } = this\n\n return {\n getOas(formatOptions) {\n return getOas({ config, logger, formatOptions })\n },\n async getSchemas({ includes } = {}) {\n const oas = await this.getOas()\n return getSchemas({ oas, contentType, includes })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n const baseURL = oasInstance.api.servers?.at(serverIndex)?.url\n return baseURL\n },\n contentType,\n }\n },\n resolvePath(baseName) {\n if (output === false) {\n return undefined\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n return camelCase(name, { isFile: type === 'file' })\n },\n async writeFile(path, source) {\n if (!path.endsWith('.json') || !source) {\n return\n }\n\n return this.fileManager.write(path, source, { sanity: false })\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 formatOptions: {\n filterSet: filter,\n sortSet: sort,\n },\n })\n await oas.dereference()\n const schemas = getSchemas({ oas, contentType })\n\n const mapSchema = async ([name, schema]: [string, OasTypes.SchemaObject]) => {\n const resolvedPath = this.resolvePath({\n baseName: `${name}.json`,\n pluginKey: this.plugin.key,\n })\n\n const resvoledFileName = this.resolveName({\n name: `${name}.json`,\n pluginKey: [pluginOasName],\n type: 'file',\n }) as `${string}.json`\n\n if (!resolvedPath) {\n return\n }\n\n await this.addFile({\n path: resolvedPath,\n baseName: resvoledFileName,\n source: JSON.stringify(schema),\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\n\n const promises = Object.entries(schemas).map(mapSchema)\n await Promise.all(promises)\n },\n }\n})\n","import { type FileMetaBase, Generator } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, contentType } from '@kubb/oas'\nimport type { Exclude, Include, OperationSchemas, OperationsByMethod, Override } from './types.ts'\n\nexport type GetOperationGeneratorOptions<T extends OperationGenerator<any, any, any>> = T extends OperationGenerator<infer Options, any, any> ? Options : never\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 abstract class OperationGenerator<\n TOptions = unknown,\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends Generator<TOptions, Context<TOptions, TPluginOptions>> {\n #operationsByMethod: OperationsByMethod = {}\n get operationsByMethod(): OperationsByMethod {\n return this.#operationsByMethod\n }\n\n set operationsByMethod(paths: OperationsByMethod) {\n this.#operationsByMethod = paths\n }\n\n #getOptions(operation: Operation, method: HttpMethod): Partial<TOptions> {\n const { override = [] } = this.context\n\n return (\n override.find(({ pattern, type }) => {\n if (type === 'tag') {\n return !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId') {\n return !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path') {\n return !!operation.path.match(pattern)\n }\n\n if (type === 'method') {\n return !!method.match(pattern)\n }\n\n return false\n })?.options || {}\n )\n }\n /**\n *\n * @deprecated\n */\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n let matched = false\n\n exclude.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n /**\n *\n * @deprecated\n */\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n let matched = false\n\n include.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n getSchemas(\n operation: Operation,\n { forStatusCode, resolveName = (name) => name }: { forStatusCode?: string | number; resolveName?: (name: string) => string } = {},\n ): OperationSchemas {\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 responseStatusCode =\n forStatusCode || (operation.schema.responses && Object.keys(operation.schema.responses).find((key) => key.startsWith('2'))) || 200\n const responseSchema = this.context.oas.getResponseSchema(operation, responseStatusCode)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n let name = statusCode\n if (name === 'default') {\n name = 'error'\n }\n\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n\n return {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys: schema?.properties ? Object.keys(schema.properties) : undefined,\n }\n })\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} PathParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: pathParamsSchema,\n keys: pathParamsSchema.properties ? Object.keys(pathParamsSchema.properties) : undefined,\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} QueryParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: queryParamsSchema,\n keys: queryParamsSchema.properties ? Object.keys(queryParamsSchema.properties) : [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} HeaderParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: headerParamsSchema,\n keys: headerParamsSchema.properties ? Object.keys(headerParamsSchema.properties) : undefined,\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: requestSchema,\n keys: requestSchema.properties ? Object.keys(requestSchema.properties) : undefined,\n keysToOmit: requestSchema.properties\n ? Object.keys(requestSchema.properties).filter((key) => {\n const item = requestSchema.properties?.[key] as OasTypes.SchemaObject\n\n return item?.readOnly\n })\n : undefined,\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n description: operation.getResponseAsJSONSchema(responseStatusCode)?.at(0)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: responseSchema,\n statusCode: Number(responseStatusCode),\n keys: responseSchema?.properties ? Object.keys(responseSchema.properties) : undefined,\n keysToOmit: responseSchema?.properties\n ? Object.keys(responseSchema.properties).filter((key) => {\n const item = responseSchema.properties?.[key] as OasTypes.SchemaObject\n return item?.writeOnly\n })\n : undefined,\n },\n errors: statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5')),\n statusCodes,\n }\n }\n\n get #methods() {\n return {\n get: this.get,\n post: this.post,\n patch: this.patch,\n put: this.put,\n delete: this.delete,\n head: undefined,\n options: undefined,\n trace: undefined,\n } as const\n }\n\n async build(): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n this.operationsByMethod = Object.entries(paths).reduce((acc, [path, method]) => {\n const methods = Object.keys(method) as HttpMethod[]\n\n methods.forEach((method) => {\n const operation = oas.operation(path, method)\n if (operation && this.#methods[method]) {\n const isExcluded = this.#isExcluded(operation, method)\n const isIncluded = this.context.include ? this.#isIncluded(operation, method) : true\n\n if (isIncluded && !isExcluded) {\n if (!acc[path]) {\n acc[path] = {} as OperationsByMethod['get']\n }\n acc[path] = {\n ...acc[path],\n [method]: {\n operation,\n schemas: this.getSchemas(operation),\n },\n } as OperationsByMethod['get']\n }\n }\n })\n\n return acc\n }, {} as OperationsByMethod)\n\n const promises = Object.keys(this.operationsByMethod).reduce((acc, path) => {\n const methods = this.operationsByMethod[path] ? (Object.keys(this.operationsByMethod[path]!) as HttpMethod[]) : []\n\n methods.forEach((method) => {\n const { operation } = this.operationsByMethod[path]?.[method]!\n const options = this.#getOptions(operation, method)\n const promiseMethod = this.#methods[method]?.call(this, operation, {\n ...this.options,\n ...options,\n })\n const promiseOperation = this.operation.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseMethod) {\n acc.push(promiseMethod)\n }\n if (promiseOperation) {\n acc.push(promiseOperation)\n }\n })\n\n return acc\n }, [] as OperationMethodResult<TFileMeta>[])\n\n const operations = Object.values(this.operationsByMethod).map((item) => Object.values(item).map((item) => item.operation))\n\n promises.push(this.all(operations.flat().filter(Boolean), this.operationsByMethod))\n\n const files = await Promise.all(promises)\n\n // using .flat because operationGenerator[method] can return a array of files or just one file\n return files.flat().filter(Boolean)\n }\n\n /**\n * Operation\n */\n async operation(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * GET\n */\n async get(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * POST\n */\n async post(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n /**\n * PATCH\n */\n async patch(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * PUT\n */\n async put(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * DELETE\n */\n async delete(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * Combination of GET, POST, PATCH, PUT, DELETE\n */\n async all(operations: Operation[], paths: OperationsByMethod): OperationMethodResult<TFileMeta> {\n return null\n }\n}\n"],"mappings":"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","names":["path","path","method","item"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/plugin.ts","../src/OperationGenerator.ts"],"sourcesContent":["import { pluginOas } from './plugin.ts'\n\nexport type {\n GetOperationGeneratorOptions,\n OperationMethodResult,\n} from './OperationGenerator.ts'\nexport { OperationGenerator } from './OperationGenerator.ts'\nexport { pluginOas, pluginOasName } from './plugin.ts'\nexport type {\n GetSchemaGeneratorOptions,\n SchemaGeneratorBuildOptions,\n SchemaGeneratorOptions,\n} from './SchemaGenerator.ts'\nexport type { SchemaMethodResult } from './SchemaGenerator.ts'\nexport { SchemaGenerator } from './SchemaGenerator.ts'\nexport type {\n Schema,\n SchemaKeyword,\n SchemaKeywordBase,\n SchemaKeywordMapper,\n SchemaMapper,\n} from './SchemaMapper.ts'\nexport { isKeyword, schemaKeywords } from './SchemaMapper.ts'\nexport type * from './types.ts'\n\n/**\n * @deprecated Use `import { pluginOas } from '@kubb/plugin-oas'` instead\n */\nconst definePluginDefault = pluginOas\n\nexport default definePluginDefault\n","import path from 'node:path'\n\nimport { createPlugin } from '@kubb/core'\nimport { camelCase } from '@kubb/core/transformers'\n\nimport { getSchemas } from './utils/getSchemas.ts'\n\nimport type { Config } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\nimport type { Oas, OasTypes } from '@kubb/oas'\nimport type { FormatOptions } from '@kubb/oas/parser'\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 = { path: 'schemas', export: false },\n experimentalFilter: filter,\n experimentalSort: sort,\n validate = true,\n serverIndex = 0,\n contentType,\n oasClass,\n } = options\n\n const getOas = async ({ config, logger, formatOptions }: { config: Config; logger: Logger; formatOptions?: FormatOptions }): Promise<Oas> => {\n try {\n // needs to be in a different variable or the catch here will not work(return of a promise instead)\n const oas = await parseFromConfig(config, formatOptions, oasClass)\n\n if (validate) {\n await oas.valdiate()\n }\n\n return oas\n } catch (e) {\n const error = e as Error\n\n logger.emit('warning', error?.message)\n return parseFromConfig(config, {}, oasClass)\n }\n }\n\n return {\n name: pluginOasName,\n options,\n context() {\n const { config, logger } = this\n\n return {\n getOas(formatOptions) {\n return getOas({ config, logger, formatOptions })\n },\n async getSchemas({ includes } = {}) {\n const oas = await this.getOas()\n return getSchemas({ oas, contentType, includes })\n },\n async getBaseURL() {\n const oasInstance = await this.getOas()\n const baseURL = oasInstance.api.servers?.at(serverIndex)?.url\n return baseURL\n },\n contentType,\n }\n },\n resolvePath(baseName) {\n if (output === false) {\n return undefined\n }\n\n const root = path.resolve(this.config.root, this.config.output.path)\n\n return path.resolve(root, output.path, baseName)\n },\n resolveName(name, type) {\n return camelCase(name, { isFile: type === 'file' })\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 formatOptions: {\n filterSet: filter,\n sortSet: sort,\n },\n })\n await oas.dereference()\n const schemas = getSchemas({ oas, contentType })\n\n const mapSchema = async ([name, schema]: [string, OasTypes.SchemaObject]) => {\n const resolvedPath = this.resolvePath({\n baseName: `${name}.json`,\n pluginKey: this.plugin.key,\n })\n\n const resvoledFileName = this.resolveName({\n name: `${name}.json`,\n pluginKey: [pluginOasName],\n type: 'file',\n }) as `${string}.json`\n\n if (!resolvedPath) {\n return\n }\n\n await this.addFile({\n path: resolvedPath,\n baseName: resvoledFileName,\n source: JSON.stringify(schema),\n meta: {\n pluginKey: this.plugin.key,\n },\n })\n }\n\n const promises = Object.entries(schemas).map(mapSchema)\n await Promise.all(promises)\n },\n }\n})\n","import { type FileMetaBase, Generator } from '@kubb/core'\nimport transformers from '@kubb/core/transformers'\n\nimport type { PluginFactoryOptions, PluginManager } from '@kubb/core'\nimport type * as KubbFile from '@kubb/fs/types'\n\nimport type { Plugin } from '@kubb/core'\nimport type { HttpMethod, Oas, OasTypes, Operation, contentType } from '@kubb/oas'\nimport type { Exclude, Include, OperationSchemas, OperationsByMethod, Override } from './types.ts'\n\nexport type GetOperationGeneratorOptions<T extends OperationGenerator<any, any, any>> = T extends OperationGenerator<infer Options, any, any> ? Options : never\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 abstract class OperationGenerator<\n TOptions = unknown,\n TPluginOptions extends PluginFactoryOptions = PluginFactoryOptions,\n TFileMeta extends FileMetaBase = FileMetaBase,\n> extends Generator<TOptions, Context<TOptions, TPluginOptions>> {\n #operationsByMethod: OperationsByMethod = {}\n get operationsByMethod(): OperationsByMethod {\n return this.#operationsByMethod\n }\n\n set operationsByMethod(paths: OperationsByMethod) {\n this.#operationsByMethod = paths\n }\n\n #getOptions(operation: Operation, method: HttpMethod): Partial<TOptions> {\n const { override = [] } = this.context\n\n return (\n override.find(({ pattern, type }) => {\n if (type === 'tag') {\n return !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId') {\n return !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path') {\n return !!operation.path.match(pattern)\n }\n\n if (type === 'method') {\n return !!method.match(pattern)\n }\n\n return false\n })?.options || {}\n )\n }\n /**\n *\n * @deprecated\n */\n #isExcluded(operation: Operation, method: HttpMethod): boolean {\n const { exclude = [] } = this.context\n let matched = false\n\n exclude.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n /**\n *\n * @deprecated\n */\n #isIncluded(operation: Operation, method: HttpMethod): boolean {\n const { include = [] } = this.context\n let matched = false\n\n include.forEach(({ pattern, type }) => {\n if (type === 'tag' && !matched) {\n matched = !!operation.getTags()[0]?.name.match(pattern)\n }\n\n if (type === 'operationId' && !matched) {\n matched = !!operation.getOperationId().match(pattern)\n }\n\n if (type === 'path' && !matched) {\n matched = !!operation.path.match(pattern)\n }\n\n if (type === 'method' && !matched) {\n matched = !!method.match(pattern)\n }\n })\n\n return matched\n }\n\n getSchemas(\n operation: Operation,\n { forStatusCode, resolveName = (name) => name }: { forStatusCode?: string | number; resolveName?: (name: string) => string } = {},\n ): OperationSchemas {\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 responseStatusCode =\n forStatusCode || (operation.schema.responses && Object.keys(operation.schema.responses).find((key) => key.startsWith('2'))) || 200\n const responseSchema = this.context.oas.getResponseSchema(operation, responseStatusCode)\n const statusCodes = operation.getResponseStatusCodes().map((statusCode) => {\n let name = statusCode\n if (name === 'default') {\n name = 'error'\n }\n\n const schema = this.context.oas.getResponseSchema(operation, statusCode)\n\n return {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${name}`)),\n description: (operation.getResponseByStatusCode(statusCode) as OasTypes.ResponseObject)?.description,\n schema,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n statusCode: name === 'error' ? undefined : Number(statusCode),\n keys: schema?.properties ? Object.keys(schema.properties) : undefined,\n }\n })\n\n return {\n pathParams: pathParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} PathParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: pathParamsSchema,\n keys: pathParamsSchema.properties ? Object.keys(pathParamsSchema.properties) : undefined,\n }\n : undefined,\n queryParams: queryParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} QueryParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: queryParamsSchema,\n keys: queryParamsSchema.properties ? Object.keys(queryParamsSchema.properties) : [],\n }\n : undefined,\n headerParams: headerParamsSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} HeaderParams`)),\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: headerParamsSchema,\n keys: headerParamsSchema.properties ? Object.keys(headerParamsSchema.properties) : undefined,\n }\n : undefined,\n request: requestSchema\n ? {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryRequest' : 'mutationRequest'}`)),\n description: (operation.schema.requestBody as OasTypes.RequestBodyObject)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: requestSchema,\n keys: requestSchema.properties ? Object.keys(requestSchema.properties) : undefined,\n keysToOmit: requestSchema.properties\n ? Object.keys(requestSchema.properties).filter((key) => {\n const item = requestSchema.properties?.[key] as OasTypes.SchemaObject\n\n return item?.readOnly\n })\n : undefined,\n }\n : undefined,\n response: {\n name: resolveName(transformers.pascalCase(`${operation.getOperationId()} ${operation.method === 'get' ? 'queryResponse' : 'mutationResponse'}`)),\n description: operation.getResponseAsJSONSchema(responseStatusCode)?.at(0)?.description,\n operation,\n operationName: transformers.pascalCase(`${operation.getOperationId()}`),\n schema: responseSchema,\n statusCode: Number(responseStatusCode),\n keys: responseSchema?.properties ? Object.keys(responseSchema.properties) : undefined,\n keysToOmit: responseSchema?.properties\n ? Object.keys(responseSchema.properties).filter((key) => {\n const item = responseSchema.properties?.[key] as OasTypes.SchemaObject\n return item?.writeOnly\n })\n : undefined,\n },\n errors: statusCodes.filter((item) => item.statusCode?.toString().startsWith('4') || item.statusCode?.toString().startsWith('5')),\n statusCodes,\n }\n }\n\n get #methods() {\n return {\n get: this.get,\n post: this.post,\n patch: this.patch,\n put: this.put,\n delete: this.delete,\n head: undefined,\n options: undefined,\n trace: undefined,\n } as const\n }\n\n async build(): Promise<Array<KubbFile.File<TFileMeta>>> {\n const { oas } = this.context\n\n const paths = oas.getPaths()\n this.operationsByMethod = Object.entries(paths).reduce((acc, [path, method]) => {\n const methods = Object.keys(method) as HttpMethod[]\n\n methods.forEach((method) => {\n const operation = oas.operation(path, method)\n if (operation && this.#methods[method]) {\n const isExcluded = this.#isExcluded(operation, method)\n const isIncluded = this.context.include ? this.#isIncluded(operation, method) : true\n\n if (isIncluded && !isExcluded) {\n if (!acc[path]) {\n acc[path] = {} as OperationsByMethod['get']\n }\n acc[path] = {\n ...acc[path],\n [method]: {\n operation,\n schemas: this.getSchemas(operation),\n },\n } as OperationsByMethod['get']\n }\n }\n })\n\n return acc\n }, {} as OperationsByMethod)\n\n const promises = Object.keys(this.operationsByMethod).reduce((acc, path) => {\n const methods = this.operationsByMethod[path] ? (Object.keys(this.operationsByMethod[path]!) as HttpMethod[]) : []\n\n methods.forEach((method) => {\n const { operation } = this.operationsByMethod[path]?.[method]!\n const options = this.#getOptions(operation, method)\n const promiseMethod = this.#methods[method]?.call(this, operation, {\n ...this.options,\n ...options,\n })\n const promiseOperation = this.operation.call(this, operation, {\n ...this.options,\n ...options,\n })\n\n if (promiseMethod) {\n acc.push(promiseMethod)\n }\n if (promiseOperation) {\n acc.push(promiseOperation)\n }\n })\n\n return acc\n }, [] as OperationMethodResult<TFileMeta>[])\n\n const operations = Object.values(this.operationsByMethod).map((item) => Object.values(item).map((item) => item.operation))\n\n promises.push(this.all(operations.flat().filter(Boolean), this.operationsByMethod))\n\n const files = await Promise.all(promises)\n\n // using .flat because operationGenerator[method] can return a array of files or just one file\n return files.flat().filter(Boolean)\n }\n\n /**\n * Operation\n */\n async operation(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * GET\n */\n async get(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * POST\n */\n async post(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n /**\n * PATCH\n */\n async patch(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * PUT\n */\n async put(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * DELETE\n */\n async delete(operation: Operation, options: TOptions): OperationMethodResult<TFileMeta> {\n return null\n }\n\n /**\n * Combination of GET, POST, PATCH, PUT, DELETE\n */\n async all(operations: Operation[], paths: OperationsByMethod): OperationMethodResult<TFileMeta> {\n return null\n }\n}\n"],"mappings":"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","names":["path","method","item"]}
@@ -139,10 +139,5 @@ type Override<TOptions> = (ByTag | ByOperationId | ByPath | ByMethod | BySchemaN
139
139
  options: Partial<TOptions>;
140
140
  };
141
141
  type PluginOas = PluginFactoryOptions<'plugin-oas', Options, Options, API, never>;
142
- declare module '@kubb/core' {
143
- interface _Register {
144
- ['@kubb/plugin-oas']: PluginOas;
145
- }
146
- }
147
142
 
148
143
  export { type API as A, type Exclude as E, type GetSchemasProps as G, type Include as I, type Options as O, type PluginOas as P, type Refs as R, type OperationSchema as a, type Override as b, type ResolvePathOptions as c, type Ref as d, type Resolver as e, type OperationSchemas as f, type OperationsByMethod as g, getSchemas as h };
@@ -139,10 +139,5 @@ type Override<TOptions> = (ByTag | ByOperationId | ByPath | ByMethod | BySchemaN
139
139
  options: Partial<TOptions>;
140
140
  };
141
141
  type PluginOas = PluginFactoryOptions<'plugin-oas', Options, Options, API, never>;
142
- declare module '@kubb/core' {
143
- interface _Register {
144
- ['@kubb/plugin-oas']: PluginOas;
145
- }
146
- }
147
142
 
148
143
  export { type API as A, type Exclude as E, type GetSchemasProps as G, type Include as I, type Options as O, type PluginOas as P, type Refs as R, type OperationSchema as a, type Override as b, type ResolvePathOptions as c, type Ref as d, type Resolver as e, type OperationSchemas as f, type OperationsByMethod as g, getSchemas as h };
package/dist/utils.cjs CHANGED
@@ -1,17 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunk3UN2S6P2cjs = require('./chunk-3UN2S6P2.cjs');
3
+ var _chunkQLJIL3U5cjs = require('./chunk-QLJIL3U5.cjs');
4
4
 
5
5
 
6
6
 
7
7
 
8
- var _chunkJ7IF3KA3cjs = require('./chunk-J7IF3KA3.cjs');
8
+ var _chunkP42X362Ucjs = require('./chunk-P42X362U.cjs');
9
9
 
10
10
  // src/utils/index.ts
11
- _chunkJ7IF3KA3cjs.init_cjs_shims.call(void 0, );
11
+ _chunkP42X362Ucjs.init_cjs_shims.call(void 0, );
12
12
 
13
13
  // src/utils/getComments.ts
14
- _chunkJ7IF3KA3cjs.init_cjs_shims.call(void 0, );
14
+ _chunkP42X362Ucjs.init_cjs_shims.call(void 0, );
15
15
  var _transformers = require('@kubb/core/transformers'); var _transformers2 = _interopRequireDefault(_transformers);
16
16
  var _utils = require('@kubb/core/utils');
17
17
  function getComments(operation) {
@@ -24,7 +24,7 @@ function getComments(operation) {
24
24
  }
25
25
 
26
26
  // src/utils/getGroupedByTagFiles.ts
27
- _chunkJ7IF3KA3cjs.init_cjs_shims.call(void 0, );
27
+ _chunkP42X362Ucjs.init_cjs_shims.call(void 0, );
28
28
  var _path = require('path');
29
29
  var _core = require('@kubb/core');
30
30
 
@@ -69,7 +69,7 @@ async function getGroupedByTagFiles({ logger, files, plugin, template, exportAs,
69
69
  }
70
70
 
71
71
  // src/utils/getParams.ts
72
- _chunkJ7IF3KA3cjs.init_cjs_shims.call(void 0, );
72
+ _chunkP42X362Ucjs.init_cjs_shims.call(void 0, );
73
73
  var _oas = require('@kubb/oas');
74
74
 
75
75
  function getASTParams(operationSchema, {
@@ -104,7 +104,7 @@ function getPathParams(operationSchema, options = {}) {
104
104
  }
105
105
 
106
106
  // src/utils/refSorter.ts
107
- _chunkJ7IF3KA3cjs.init_cjs_shims.call(void 0, );
107
+ _chunkP42X362Ucjs.init_cjs_shims.call(void 0, );
108
108
  function refsSorter(a, b) {
109
109
  if (_optionalChain([Object, 'access', _10 => _10.keys, 'call', _11 => _11(a.import.refs), 'optionalAccess', _12 => _12.length]) < _optionalChain([Object, 'access', _13 => _13.keys, 'call', _14 => _14(b.import.refs), 'optionalAccess', _15 => _15.length])) {
110
110
  return -1;
@@ -123,5 +123,5 @@ function refsSorter(a, b) {
123
123
 
124
124
 
125
125
 
126
- exports.getASTParams = getASTParams; exports.getComments = getComments; exports.getGroupedByTagFiles = getGroupedByTagFiles; exports.getPathParams = getPathParams; exports.getSchemaFactory = _chunkJ7IF3KA3cjs.getSchemaFactory; exports.getSchemas = _chunkJ7IF3KA3cjs.getSchemas; exports.parseFromConfig = _chunk3UN2S6P2cjs.parseFromConfig; exports.refsSorter = refsSorter;
126
+ exports.getASTParams = getASTParams; exports.getComments = getComments; exports.getGroupedByTagFiles = getGroupedByTagFiles; exports.getPathParams = getPathParams; exports.getSchemaFactory = _chunkP42X362Ucjs.getSchemaFactory; exports.getSchemas = _chunkP42X362Ucjs.getSchemas; exports.parseFromConfig = _chunkQLJIL3U5cjs.parseFromConfig; exports.refsSorter = refsSorter;
127
127
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.d.cts CHANGED
@@ -4,8 +4,8 @@ import { Logger } from '@kubb/core/logger';
4
4
  import * as KubbFile from '@kubb/fs/types';
5
5
  import { FunctionParamsAST } from '@kubb/core/utils';
6
6
  import { Params } from '@kubb/react';
7
- import { a as OperationSchema, R as Refs } from './types-BP45TdiW.cjs';
8
- export { G as GetSchemasProps, h as getSchemas } from './types-BP45TdiW.cjs';
7
+ import { a as OperationSchema, R as Refs } from './types-Dte3MA6H.cjs';
8
+ export { G as GetSchemasProps, h as getSchemas } from './types-Dte3MA6H.cjs';
9
9
  import { FormatOptions } from '@kubb/oas/parser';
10
10
 
11
11
  declare function getComments(operation: Operation): string[];
package/dist/utils.d.ts CHANGED
@@ -4,8 +4,8 @@ import { Logger } from '@kubb/core/logger';
4
4
  import * as KubbFile from '@kubb/fs/types';
5
5
  import { FunctionParamsAST } from '@kubb/core/utils';
6
6
  import { Params } from '@kubb/react';
7
- import { a as OperationSchema, R as Refs } from './types-BP45TdiW.js';
8
- export { G as GetSchemasProps, h as getSchemas } from './types-BP45TdiW.js';
7
+ import { a as OperationSchema, R as Refs } from './types-Dte3MA6H.js';
8
+ export { G as GetSchemasProps, h as getSchemas } from './types-Dte3MA6H.js';
9
9
  import { FormatOptions } from '@kubb/oas/parser';
10
10
 
11
11
  declare function getComments(operation: Operation): string[];
package/dist/utils.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  parseFromConfig
3
- } from "./chunk-GUPCIAYT.js";
3
+ } from "./chunk-Y4V7HHX7.js";
4
4
  import {
5
5
  getSchemaFactory,
6
6
  getSchemas,
7
7
  init_esm_shims
8
- } from "./chunk-Y272OQMW.js";
8
+ } from "./chunk-UB552H4J.js";
9
9
 
10
10
  // src/utils/index.ts
11
11
  init_esm_shims();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-oas",
3
- "version": "3.0.0-alpha.0",
3
+ "version": "3.0.0-alpha.2",
4
4
  "description": "Generator swagger",
5
5
  "keywords": [
6
6
  "typescript",
@@ -67,24 +67,24 @@
67
67
  ],
68
68
  "dependencies": {
69
69
  "@stoplight/yaml": "^4.3.0",
70
- "remeda": "^2.10.1",
71
- "@kubb/core": "3.0.0-alpha.0",
72
- "@kubb/fs": "3.0.0-alpha.0",
73
- "@kubb/oas": "3.0.0-alpha.0",
74
- "@kubb/react": "3.0.0-alpha.0"
70
+ "remeda": "^2.11.0",
71
+ "@kubb/core": "3.0.0-alpha.2",
72
+ "@kubb/fs": "3.0.0-alpha.2",
73
+ "@kubb/oas": "3.0.0-alpha.2",
74
+ "@kubb/react": "3.0.0-alpha.2"
75
75
  },
76
76
  "devDependencies": {
77
- "@types/react": "^18.3.3",
77
+ "@types/react": "^18.3.4",
78
78
  "@types/react-dom": "^18.3.0",
79
79
  "react": "^18.3.1",
80
80
  "tsup": "^8.2.4",
81
81
  "typescript": "^5.5.4",
82
- "@kubb/config-biome": "3.0.0-alpha.0",
83
- "@kubb/config-ts": "3.0.0-alpha.0",
84
- "@kubb/config-tsup": "3.0.0-alpha.0"
82
+ "@kubb/config-biome": "3.0.0-alpha.2",
83
+ "@kubb/config-ts": "3.0.0-alpha.2",
84
+ "@kubb/config-tsup": "3.0.0-alpha.2"
85
85
  },
86
86
  "peerDependencies": {
87
- "@kubb/react": "3.0.0-alpha.0"
87
+ "@kubb/react": "3.0.0-alpha.2"
88
88
  },
89
89
  "engines": {
90
90
  "node": ">=20"
package/src/plugin.ts CHANGED
@@ -46,8 +46,7 @@ export const pluginOas = createPlugin<PluginOas>((options) => {
46
46
  return {
47
47
  name: pluginOasName,
48
48
  options,
49
-
50
- api() {
49
+ context() {
51
50
  const { config, logger } = this
52
51
 
53
52
  return {
@@ -78,13 +77,6 @@ export const pluginOas = createPlugin<PluginOas>((options) => {
78
77
  resolveName(name, type) {
79
78
  return camelCase(name, { isFile: type === 'file' })
80
79
  },
81
- async writeFile(path, source) {
82
- if (!path.endsWith('.json') || !source) {
83
- return
84
- }
85
-
86
- return this.fileManager.write(path, source, { sanity: false })
87
- },
88
80
  async buildStart() {
89
81
  if (!output) {
90
82
  return
package/src/types.ts CHANGED
@@ -142,9 +142,3 @@ export type Override<TOptions> = (ByTag | ByOperationId | ByPath | ByMethod | By
142
142
  }
143
143
 
144
144
  export type PluginOas = PluginFactoryOptions<'plugin-oas', Options, Options, API, never>
145
-
146
- declare module '@kubb/core' {
147
- export interface _Register {
148
- ['@kubb/plugin-oas']: PluginOas
149
- }
150
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-J7IF3KA3.cjs","../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.5_@types+node@20.14.15__jiti@1.21.6_postcss@8.4.40_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/cjs_shims.js","../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"names":[],"mappings":"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","file":"/home/runner/work/kubb/kubb/packages/plugin-oas/dist/chunk-J7IF3KA3.cjs","sourcesContent":[null,"// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n typeof document === 'undefined'\n ? new URL(`file:${__filename}`).href\n : (document.currentScript && document.currentScript.src) ||\n new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\nexport type GetSchemasProps = {\n oas: Oas\n contentType?: contentType\n includes?: Mode[]\n}\n\nexport function getSchemas({ oas, contentType, includes = ['schemas', 'requestBodies', 'responses'] }: GetSchemasProps): Record<string, OasTypes.SchemaObject> {\n const components = oas.getDefinition().components\n\n let schemas: Record<string, OasTypes.SchemaObject> = {}\n\n if (includes.includes('schemas')) {\n schemas = {\n ...schemas,\n ...((components?.schemas as Record<string, OasTypes.SchemaObject>) || {}),\n }\n }\n\n const requestBodies = components?.requestBodies || {}\n if (includes.includes('responses')) {\n const responses = components?.responses || {}\n\n Object.entries(responses).forEach(([name, response]: [string, OasTypes.ResponseObject]) => {\n if (response.content && !schemas[name]) {\n const firstContentType = Object.keys(response.content)[0] || 'application/json'\n schemas[name] = response.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n if (includes.includes('requestBodies')) {\n Object.entries(requestBodies).forEach(([name, request]: [string, OasTypes.RequestBodyObject]) => {\n if (request.content && !schemas[name]) {\n const firstContentType = Object.keys(request.content)[0] || 'application/json'\n schemas[name] = request.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n return schemas\n}\n","import { isOpenApiV3_1Document } from '@kubb/oas'\n\nimport type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'\n\n/**\n * Make it possible to narrow down the schema based on a specific version(3 or 3.1)\n */\ntype SchemaResult<TWithRef extends boolean = false> =\n | {\n schema?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schema?: (TWithRef extends true ? OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject : OpenAPIV3_1.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.1'\n }\n\nexport function getSchemaFactory<TWithRef extends boolean = false>(oas: Oas): (schema?: SchemaObject) => SchemaResult<TWithRef> {\n return (schema?: SchemaObject) => {\n const version = isOpenApiV3_1Document(oas.api) ? '3.1' : '3.0'\n\n return {\n schema,\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.2.4_@microsoft+api-extractor@7.47.5_@types+node@20.14.15__jiti@1.21.6_postcss@8.4.40_typescript@5.5.4_yaml@2.4.5/node_modules/tsup/assets/esm_shims.js","../src/utils/getSchemas.ts","../src/utils/getSchemaFactory.ts"],"sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n","import type { Oas, OasTypes, contentType } from '@kubb/oas'\n\ntype Mode = 'schemas' | 'responses' | 'requestBodies'\n\nexport type GetSchemasProps = {\n oas: Oas\n contentType?: contentType\n includes?: Mode[]\n}\n\nexport function getSchemas({ oas, contentType, includes = ['schemas', 'requestBodies', 'responses'] }: GetSchemasProps): Record<string, OasTypes.SchemaObject> {\n const components = oas.getDefinition().components\n\n let schemas: Record<string, OasTypes.SchemaObject> = {}\n\n if (includes.includes('schemas')) {\n schemas = {\n ...schemas,\n ...((components?.schemas as Record<string, OasTypes.SchemaObject>) || {}),\n }\n }\n\n const requestBodies = components?.requestBodies || {}\n if (includes.includes('responses')) {\n const responses = components?.responses || {}\n\n Object.entries(responses).forEach(([name, response]: [string, OasTypes.ResponseObject]) => {\n if (response.content && !schemas[name]) {\n const firstContentType = Object.keys(response.content)[0] || 'application/json'\n schemas[name] = response.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n if (includes.includes('requestBodies')) {\n Object.entries(requestBodies).forEach(([name, request]: [string, OasTypes.RequestBodyObject]) => {\n if (request.content && !schemas[name]) {\n const firstContentType = Object.keys(request.content)[0] || 'application/json'\n schemas[name] = request.content?.[contentType || firstContentType]?.schema as OasTypes.SchemaObject\n }\n })\n }\n\n return schemas\n}\n","import { isOpenApiV3_1Document } from '@kubb/oas'\n\nimport type { Oas, OpenAPIV3, OpenAPIV3_1, SchemaObject } from '@kubb/oas'\n\n/**\n * Make it possible to narrow down the schema based on a specific version(3 or 3.1)\n */\ntype SchemaResult<TWithRef extends boolean = false> =\n | {\n schema?: (TWithRef extends true ? OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject : OpenAPIV3.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.0'\n }\n | {\n schema?: (TWithRef extends true ? OpenAPIV3_1.SchemaObject | OpenAPIV3_1.ReferenceObject : OpenAPIV3_1.SchemaObject) & {\n nullable?: boolean\n 'x-nullable'?: boolean\n }\n version: '3.1'\n }\n\nexport function getSchemaFactory<TWithRef extends boolean = false>(oas: Oas): (schema?: SchemaObject) => SchemaResult<TWithRef> {\n return (schema?: SchemaObject) => {\n const version = isOpenApiV3_1Document(oas.api) ? '3.1' : '3.0'\n\n return {\n schema,\n version,\n } as SchemaResult<TWithRef>\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA;AAUO,SAAS,WAAW,EAAE,KAAK,aAAa,WAAW,CAAC,WAAW,iBAAiB,WAAW,EAAE,GAA2D;AAC7J,QAAM,aAAa,IAAI,cAAc,EAAE;AAEvC,MAAI,UAAiD,CAAC;AAEtD,MAAI,SAAS,SAAS,SAAS,GAAG;AAChC,cAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAK,YAAY,WAAqD,CAAC;AAAA,IACzE;AAAA,EACF;AAEA,QAAM,gBAAgB,YAAY,iBAAiB,CAAC;AACpD,MAAI,SAAS,SAAS,WAAW,GAAG;AAClC,UAAM,YAAY,YAAY,aAAa,CAAC;AAE5C,WAAO,QAAQ,SAAS,EAAE,QAAQ,CAAC,CAAC,MAAM,QAAQ,MAAyC;AACzF,UAAI,SAAS,WAAW,CAAC,QAAQ,IAAI,GAAG;AACtC,cAAM,mBAAmB,OAAO,KAAK,SAAS,OAAO,EAAE,CAAC,KAAK;AAC7D,gBAAQ,IAAI,IAAI,SAAS,UAAU,eAAe,gBAAgB,GAAG;AAAA,MACvE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,MAAI,SAAS,SAAS,eAAe,GAAG;AACtC,WAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAA4C;AAC/F,UAAI,QAAQ,WAAW,CAAC,QAAQ,IAAI,GAAG;AACrC,cAAM,mBAAmB,OAAO,KAAK,QAAQ,OAAO,EAAE,CAAC,KAAK;AAC5D,gBAAQ,IAAI,IAAI,QAAQ,UAAU,eAAe,gBAAgB,GAAG;AAAA,MACtE;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;;;AC5CA;AAAA,SAAS,6BAA6B;AAuB/B,SAAS,iBAAmD,KAA6D;AAC9H,SAAO,CAAC,WAA0B;AAChC,UAAM,UAAU,sBAAsB,IAAI,GAAG,IAAI,QAAQ;AAEzD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}