@kubb/plugin-ts 5.0.0-alpha.15 → 5.0.0-alpha.17

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 (45) hide show
  1. package/dist/{Type-C8EHVKjc.js → Type-CEYpKTNb.js} +9 -6
  2. package/dist/Type-CEYpKTNb.js.map +1 -0
  3. package/dist/{Type-DrOq6-nh.cjs → Type-DQjV9V0o.cjs} +8 -5
  4. package/dist/Type-DQjV9V0o.cjs.map +1 -0
  5. package/dist/components.cjs +1 -1
  6. package/dist/components.d.ts +1 -1
  7. package/dist/components.js +1 -1
  8. package/dist/{generators-B6JGhHkV.cjs → generators-SVexNxhl.cjs} +16 -13
  9. package/dist/generators-SVexNxhl.cjs.map +1 -0
  10. package/dist/{generators-BTTcjgbY.js → generators-huxvj9y4.js} +17 -14
  11. package/dist/generators-huxvj9y4.js.map +1 -0
  12. package/dist/generators.cjs +1 -1
  13. package/dist/generators.d.ts +1 -1
  14. package/dist/generators.js +1 -1
  15. package/dist/index.cjs +23 -9
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.ts +2 -3
  18. package/dist/index.js +27 -10
  19. package/dist/index.js.map +1 -1
  20. package/dist/{resolvers-C_vYX56l.js → resolvers-DsKabI0F.js} +7 -6
  21. package/dist/resolvers-DsKabI0F.js.map +1 -0
  22. package/dist/{resolvers-DDZC7d43.cjs → resolvers-YIpeP5YD.cjs} +7 -6
  23. package/dist/resolvers-YIpeP5YD.cjs.map +1 -0
  24. package/dist/resolvers.cjs +1 -1
  25. package/dist/resolvers.d.ts +52 -2
  26. package/dist/resolvers.js +1 -1
  27. package/dist/{types-D9zzvE0V.d.ts → types-zqLMbIqZ.d.ts} +20 -18
  28. package/package.json +5 -5
  29. package/src/components/Type.tsx +3 -2
  30. package/src/generators/typeGenerator.tsx +24 -10
  31. package/src/generators/utils.ts +3 -2
  32. package/src/index.ts +0 -1
  33. package/src/plugin.ts +10 -8
  34. package/src/presets.ts +23 -0
  35. package/src/printer.ts +7 -4
  36. package/src/resolvers/resolverTs.ts +6 -4
  37. package/src/resolvers/resolverTsLegacy.ts +2 -1
  38. package/src/types.ts +19 -17
  39. package/dist/Type-C8EHVKjc.js.map +0 -1
  40. package/dist/Type-DrOq6-nh.cjs.map +0 -1
  41. package/dist/generators-B6JGhHkV.cjs.map +0 -1
  42. package/dist/generators-BTTcjgbY.js.map +0 -1
  43. package/dist/index-B5pSjbZv.d.ts +0 -51
  44. package/dist/resolvers-C_vYX56l.js.map +0 -1
  45. package/dist/resolvers-DDZC7d43.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators-SVexNxhl.cjs","names":["pascalCase","File","Type","schemaTypes","ENUM_TYPES_WITH_KEY_SUFFIX"],"sources":["../src/generators/utils.ts","../src/generators/typeGenerator.tsx"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { createProperty, createSchema, narrowSchema, transform } from '@kubb/ast'\nimport type { OperationNode, ParameterNode, SchemaNode } from '@kubb/ast/types'\nimport type { ResolverTs } from '../types.ts'\n\ntype BuildParamsSchemaOptions = {\n params: Array<ParameterNode>\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a group of parameters (path/query/header).\n * Each property is a `ref` schema pointing to the individually-resolved parameter type.\n * The ref name includes the parameter location so generated type names follow\n * the `<OperationId><Location><ParamName>` convention.\n */\nexport function buildParamsSchema({ params, node, resolver }: BuildParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) =>\n createProperty({\n name: param.name,\n required: param.required,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveParamName(node, param),\n }),\n }),\n ),\n })\n}\n\ntype BuildOperationSchemaOptions = {\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing the `<OperationId>RequestConfig` type:\n * - `data` → request body ref (optional) or `never`\n * - `pathParams` → inline object of path param refs, or `never`\n * - `queryParams` → inline object of query param refs (optional), or `never`\n * - `headerParams` → inline object of header param refs (optional), or `never`\n * - `url` → Express-style template literal (plugin-ts extension, handled by printer)\n */\nexport function buildDataSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const pathParams = node.parameters.filter((p) => p.in === 'path')\n const queryParams = node.parameters.filter((p) => p.in === 'query')\n const headerParams = node.parameters.filter((p) => p.in === 'header')\n\n return createSchema({\n type: 'object',\n deprecated: node.deprecated,\n properties: [\n createProperty({\n name: 'data',\n schema: node.requestBody?.schema\n ? createSchema({\n type: 'ref',\n name: resolver.resolveDataTypedName(node),\n optional: true,\n })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'pathParams',\n required: pathParams.length > 0,\n schema: pathParams.length > 0 ? buildParamsSchema({ params: pathParams, node, resolver }) : createSchema({ type: 'never' }),\n }),\n createProperty({\n name: 'queryParams',\n schema:\n queryParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: queryParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'headerParams',\n schema:\n headerParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: headerParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'url',\n required: true,\n schema: createSchema({ type: 'url', path: node.path }),\n }),\n ],\n })\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing `<OperationId>Responses` — keyed by HTTP status code.\n * Numeric status codes produce unquoted numeric keys (e.g. `200:`).\n * All responses are included; those without a schema are represented as a ref to a `never` type.\n */\nexport function buildResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n if (node.responses.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'object',\n properties: node.responses.map((res) =>\n createProperty({\n name: String(res.statusCode),\n required: true,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n }),\n ),\n })\n}\n\n/**\n * Builds a `UnionSchemaNode` representing `<OperationId>Response` — all response types in union format.\n * Returns `null` when the operation has no responses with schemas.\n */\nexport function buildResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const responsesWithSchema = node.responses.filter((res) => res.schema)\n\n if (responsesWithSchema.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'union',\n members: responsesWithSchema.map((res) =>\n createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n ),\n })\n}\n\ntype BuildGroupedParamsSchemaOptions = {\n params: Array<ParameterNode>\n /**\n * Parent type name (e.g. `FindPetsByStatusQueryParams`) used to derive enum names\n * for inline enum properties (e.g. `FindPetsByStatusQueryParamsStatusEnum`).\n */\n parentName?: string\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a grouped parameters type (path/query/header) in legacy mode.\n * Each property directly embeds the parameter's schema inline (not a ref).\n * Used to generate `<OperationId>PathParams`, `<OperationId>QueryParams`, `<OperationId>HeaderParams`.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildGroupedParamsSchema({ params, parentName }: BuildGroupedParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) => {\n let schema = param.schema\n if (narrowSchema(schema, 'enum') && !schema.name && parentName) {\n schema = { ...schema, name: pascalCase([parentName, param.name, 'enum'].join(' ')) }\n }\n return createProperty({\n name: param.name,\n required: param.required,\n schema,\n })\n }),\n })\n}\n\n/**\n * Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.\n * Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.\n * Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const isGet = node.method.toLowerCase() === 'get'\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n const errorResponses = node.responses.filter((res) => res.statusCode === 'default' || Number(res.statusCode) >= 400)\n\n const responseSchema =\n successResponses.length > 0\n ? successResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const errorsSchema =\n errorResponses.length > 0\n ? errorResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, errorResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: errorResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const properties = [createProperty({ name: 'Response', required: true, schema: responseSchema })]\n\n if (!isGet && node.requestBody?.schema) {\n properties.push(\n createProperty({\n name: 'Request',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveDataTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'query') && resolver.resolveQueryParamsTypedName) {\n properties.push(\n createProperty({\n name: 'QueryParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveQueryParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'path') && resolver.resolvePathParamsTypedName) {\n properties.push(\n createProperty({\n name: 'PathParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolvePathParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'header') && resolver.resolveHeaderParamsTypedName) {\n properties.push(\n createProperty({\n name: 'HeaderParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveHeaderParamsTypedName(node) }),\n }),\n )\n }\n\n properties.push(createProperty({ name: 'Errors', required: true, schema: errorsSchema }))\n\n return createSchema({ type: 'object', properties })\n}\n\n/**\n * Builds the legacy response union for `<OperationId>MutationResponse` / `<OperationId>QueryResponse`.\n * In legacy mode this is the **success** response only (not the full union including errors).\n * Returns an `any` schema when there is no success response, matching v4 behavior.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n\n if (successResponses.length === 0) {\n return createSchema({ type: 'any' })\n }\n\n if (successResponses.length === 1) {\n return createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n }\n\n return createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n}\n\n/**\n * Names unnamed enum nodes within a schema tree based on the parent type name.\n * Used in legacy mode to ensure inline enums in response/request schemas get\n * extracted as named enum declarations (e.g. `DeletePet200Enum`).\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function nameUnnamedEnums(node: SchemaNode, parentName: string): SchemaNode {\n return transform(node, {\n schema(n) {\n const enumNode = narrowSchema(n, 'enum')\n if (enumNode && !enumNode.name) {\n return { ...enumNode, name: pascalCase([parentName, 'enum'].join(' ')) }\n }\n return undefined\n },\n property(p) {\n const enumNode = narrowSchema(p.schema, 'enum')\n if (enumNode && !enumNode.name) {\n return {\n ...p,\n schema: { ...enumNode, name: pascalCase([parentName, p.name, 'enum'].join(' ')) },\n }\n }\n return undefined\n },\n })\n}\n","import { caseParams, composeTransformers, narrowSchema, schemaTypes, transform } from '@kubb/ast'\nimport type { SchemaNode } from '@kubb/ast/types'\nimport { defineGenerator } from '@kubb/core'\nimport { useKubb } from '@kubb/core/hooks'\nimport { File } from '@kubb/react-fabric'\nimport { Type } from '../components/Type.tsx'\nimport { ENUM_TYPES_WITH_KEY_SUFFIX } from '../constants.ts'\nimport type { PluginTs } from '../types'\nimport {\n buildDataSchemaNode,\n buildGroupedParamsSchema,\n buildLegacyResponsesSchemaNode,\n buildLegacyResponseUnionSchemaNode,\n buildParamsSchema,\n buildResponsesSchemaNode,\n buildResponseUnionSchemaNode,\n nameUnnamedEnums,\n} from './utils.ts'\n\nexport const typeGenerator = defineGenerator<PluginTs>({\n name: 'typescript',\n type: 'react',\n Operation({ node, adapter, options }) {\n const {\n enumType,\n enumKeyCasing,\n optionalType,\n arrayType,\n syntaxType,\n paramsCasing,\n group,\n resolver,\n baseResolver,\n compatibilityPreset,\n transformers = [],\n } = options\n const isKubbV4Compatibility = compatibilityPreset === 'kubbV4'\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n const file = getFile({\n name: node.operationId,\n extname: '.ts',\n mode,\n options: {\n group: group ? (group.type === 'tag' ? { tag: node.tags[0] ?? 'default' } : { path: node.path }) : undefined,\n },\n })\n const params = caseParams(node.parameters, paramsCasing)\n\n function renderSchemaType({\n node: schemaNode,\n name,\n typedName,\n description,\n keysToOmit,\n }: {\n node: SchemaNode | null\n name: string\n typedName: string\n description?: string\n keysToOmit?: Array<string>\n }) {\n if (!schemaNode) {\n return null\n }\n\n const transformedNode = transform(schemaNode, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n return (\n <>\n {mode === 'split' &&\n imports.map((imp) => <File.Import key={[name, imp.path, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} isTypeOnly />)}\n <Type\n name={name}\n typedName={typedName}\n node={transformedNode}\n description={description}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n keysToOmit={keysToOmit}\n legacy={isKubbV4Compatibility}\n />\n </>\n )\n }\n\n const responseTypes = isKubbV4Compatibility\n ? node.responses.map((res) => {\n const responseName = resolver.resolveResponseStatusName(node, res.statusCode)\n const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode)\n\n return renderSchemaType({\n node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,\n name: responseName,\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n })\n })\n : node.responses.map((res) =>\n renderSchemaType({\n node: res.schema,\n name: resolver.resolveResponseStatusName(node, res.statusCode),\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n }),\n )\n\n const requestType = node.requestBody?.schema\n ? renderSchemaType({\n node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,\n name: resolver.resolveDataName(node),\n typedName: resolver.resolveDataTypedName(node),\n description: node.requestBody.description ?? node.requestBody.schema.description,\n keysToOmit: node.requestBody.keysToOmit,\n })\n : null\n\n if (isKubbV4Compatibility) {\n const pathParams = params.filter((p) => p.in === 'path')\n const queryParams = params.filter((p) => p.in === 'query')\n const headerParams = params.filter((p) => p.in === 'header')\n\n const legacyParamTypes = [\n pathParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: pathParams, parentName: baseResolver.resolvePathParamsName!(node) }),\n name: resolver.resolvePathParamsName!(node),\n typedName: resolver.resolvePathParamsTypedName!(node),\n })\n : null,\n queryParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: queryParams, parentName: baseResolver.resolveQueryParamsName!(node) }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null,\n headerParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: headerParams, parentName: baseResolver.resolveHeaderParamsName!(node) }),\n name: resolver.resolveHeaderParamsName!(node),\n typedName: resolver.resolveHeaderParamsTypedName!(node),\n })\n : null,\n ]\n\n const legacyResponsesType = renderSchemaType({\n node: buildLegacyResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const legacyResponseType = renderSchemaType({\n node: buildLegacyResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {legacyParamTypes}\n {responseTypes}\n {requestType}\n {legacyResponseType}\n {legacyResponsesType}\n </File>\n )\n }\n\n const paramTypes = params.map((param) =>\n renderSchemaType({\n node: param.schema,\n name: resolver.resolveParamName(node, param),\n typedName: resolver.resolveParamTypedName(node, param),\n }),\n )\n\n const queryParamsList = params.filter((p) => p.in === 'query')\n const queryParamsType =\n queryParamsList.length > 0\n ? renderSchemaType({\n node: buildParamsSchema({ params: queryParamsList, node, resolver }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null\n\n const dataType = renderSchemaType({\n node: buildDataSchemaNode({ node: { ...node, parameters: params }, resolver }),\n name: resolver.resolveRequestConfigName(node),\n typedName: resolver.resolveRequestConfigTypedName(node),\n })\n\n const responsesType = renderSchemaType({\n node: buildResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const responseType = renderSchemaType({\n node: buildResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n description: 'Union of all possible responses',\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {paramTypes}\n {queryParamsType}\n {responseTypes}\n {requestType}\n {dataType}\n {responsesType}\n {responseType}\n </File>\n )\n },\n Schema({ node, adapter, options }) {\n const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, compatibilityPreset, transformers = [] } = options\n const isKubbV4Compatibility = compatibilityPreset === 'kubbV4'\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n if (!node.name) {\n return\n }\n\n const transformedNode = transform(node, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n const isEnumSchema = !!narrowSchema(node, schemaTypes.enum)\n\n const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name)\n\n const type = {\n name: resolver.resolveName(node.name),\n typedName,\n file: getFile({ name: node.name, extname: '.ts', mode }),\n } as const\n\n return (\n <File baseName={type.file.baseName} path={type.file.path} meta={type.file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {mode === 'split' &&\n imports.map((imp) => (\n <File.Import key={[node.name, imp.path, imp.isTypeOnly].join('-')} root={type.file.path} path={imp.path} name={imp.name} isTypeOnly />\n ))}\n <Type\n name={type.name}\n typedName={type.typedName}\n node={transformedNode}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n legacy={isKubbV4Compatibility}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import "./chunk--u3MIqq1.js";
2
2
  import { n as pascalCase } from "./casing-Cp-jbC_k.js";
3
- import { r as ENUM_TYPES_WITH_KEY_SUFFIX, t as Type } from "./Type-C8EHVKjc.js";
4
- import { applyParamsCasing, composeTransformers, createProperty, createSchema, narrowSchema, transform } from "@kubb/ast";
3
+ import { r as ENUM_TYPES_WITH_KEY_SUFFIX, t as Type } from "./Type-CEYpKTNb.js";
4
+ import { caseParams, composeTransformers, createProperty, createSchema, narrowSchema, schemaTypes, transform } from "@kubb/ast";
5
5
  import { defineGenerator } from "@kubb/core";
6
6
  import { useKubb } from "@kubb/core/hooks";
7
7
  import { File } from "@kubb/react-fabric";
@@ -277,8 +277,9 @@ function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
277
277
  function nameUnnamedEnums(node, parentName) {
278
278
  return transform(node, {
279
279
  schema(n) {
280
- if (n.type === "enum" && !n.name) return {
281
- ...n,
280
+ const enumNode = narrowSchema(n, "enum");
281
+ if (enumNode && !enumNode.name) return {
282
+ ...enumNode,
282
283
  name: pascalCase([parentName, "enum"].join(" "))
283
284
  };
284
285
  },
@@ -304,7 +305,8 @@ const typeGenerator = defineGenerator({
304
305
  name: "typescript",
305
306
  type: "react",
306
307
  Operation({ node, adapter, options }) {
307
- const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, legacy, transformers = [] } = options;
308
+ const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, compatibilityPreset, transformers = [] } = options;
309
+ const isKubbV4Compatibility = compatibilityPreset === "kubbV4";
308
310
  const { mode, getFile, resolveBanner, resolveFooter } = useKubb();
309
311
  const file = getFile({
310
312
  name: node.operationId,
@@ -312,7 +314,7 @@ const typeGenerator = defineGenerator({
312
314
  mode,
313
315
  options: { group: group ? group.type === "tag" ? { tag: node.tags[0] ?? "default" } : { path: node.path } : void 0 }
314
316
  });
315
- const params = applyParamsCasing(node.parameters, paramsCasing);
317
+ const params = caseParams(node.parameters, paramsCasing);
316
318
  function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
317
319
  if (!schemaNode) return null;
318
320
  const transformedNode = transform(schemaNode, composeTransformers(...transformers));
@@ -345,10 +347,10 @@ const typeGenerator = defineGenerator({
345
347
  syntaxType,
346
348
  resolver,
347
349
  keysToOmit,
348
- legacy
350
+ legacy: isKubbV4Compatibility
349
351
  })] });
350
352
  }
351
- const responseTypes = legacy ? node.responses.map((res) => {
353
+ const responseTypes = isKubbV4Compatibility ? node.responses.map((res) => {
352
354
  const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
353
355
  const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
354
356
  return renderSchemaType({
@@ -366,13 +368,13 @@ const typeGenerator = defineGenerator({
366
368
  keysToOmit: res.keysToOmit
367
369
  }));
368
370
  const requestType = node.requestBody?.schema ? renderSchemaType({
369
- node: legacy ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
371
+ node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
370
372
  name: resolver.resolveDataName(node),
371
373
  typedName: resolver.resolveDataTypedName(node),
372
374
  description: node.requestBody.description ?? node.requestBody.schema.description,
373
375
  keysToOmit: node.requestBody.keysToOmit
374
376
  }) : null;
375
- if (legacy) {
377
+ if (isKubbV4Compatibility) {
376
378
  const pathParams = params.filter((p) => p.in === "path");
377
379
  const queryParams = params.filter((p) => p.in === "query");
378
380
  const headerParams = params.filter((p) => p.in === "header");
@@ -494,7 +496,8 @@ const typeGenerator = defineGenerator({
494
496
  });
495
497
  },
496
498
  Schema({ node, adapter, options }) {
497
- const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, legacy, transformers = [] } = options;
499
+ const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, compatibilityPreset, transformers = [] } = options;
500
+ const isKubbV4Compatibility = compatibilityPreset === "kubbV4";
498
501
  const { mode, getFile, resolveBanner, resolveFooter } = useKubb();
499
502
  if (!node.name) return;
500
503
  const transformedNode = transform(node, composeTransformers(...transformers));
@@ -506,7 +509,7 @@ const typeGenerator = defineGenerator({
506
509
  mode
507
510
  }).path
508
511
  }));
509
- const isEnumSchema = node.type === "enum";
512
+ const isEnumSchema = !!narrowSchema(node, schemaTypes.enum);
510
513
  const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
511
514
  const type = {
512
515
  name: resolver.resolveName(node.name),
@@ -542,7 +545,7 @@ const typeGenerator = defineGenerator({
542
545
  arrayType,
543
546
  syntaxType,
544
547
  resolver,
545
- legacy
548
+ legacy: isKubbV4Compatibility
546
549
  })]
547
550
  });
548
551
  }
@@ -550,4 +553,4 @@ const typeGenerator = defineGenerator({
550
553
  //#endregion
551
554
  export { typeGenerator as t };
552
555
 
553
- //# sourceMappingURL=generators-BTTcjgbY.js.map
556
+ //# sourceMappingURL=generators-huxvj9y4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators-huxvj9y4.js","names":[],"sources":["../src/generators/utils.ts","../src/generators/typeGenerator.tsx"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { createProperty, createSchema, narrowSchema, transform } from '@kubb/ast'\nimport type { OperationNode, ParameterNode, SchemaNode } from '@kubb/ast/types'\nimport type { ResolverTs } from '../types.ts'\n\ntype BuildParamsSchemaOptions = {\n params: Array<ParameterNode>\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a group of parameters (path/query/header).\n * Each property is a `ref` schema pointing to the individually-resolved parameter type.\n * The ref name includes the parameter location so generated type names follow\n * the `<OperationId><Location><ParamName>` convention.\n */\nexport function buildParamsSchema({ params, node, resolver }: BuildParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) =>\n createProperty({\n name: param.name,\n required: param.required,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveParamName(node, param),\n }),\n }),\n ),\n })\n}\n\ntype BuildOperationSchemaOptions = {\n node: OperationNode\n resolver: ResolverTs\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing the `<OperationId>RequestConfig` type:\n * - `data` → request body ref (optional) or `never`\n * - `pathParams` → inline object of path param refs, or `never`\n * - `queryParams` → inline object of query param refs (optional), or `never`\n * - `headerParams` → inline object of header param refs (optional), or `never`\n * - `url` → Express-style template literal (plugin-ts extension, handled by printer)\n */\nexport function buildDataSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const pathParams = node.parameters.filter((p) => p.in === 'path')\n const queryParams = node.parameters.filter((p) => p.in === 'query')\n const headerParams = node.parameters.filter((p) => p.in === 'header')\n\n return createSchema({\n type: 'object',\n deprecated: node.deprecated,\n properties: [\n createProperty({\n name: 'data',\n schema: node.requestBody?.schema\n ? createSchema({\n type: 'ref',\n name: resolver.resolveDataTypedName(node),\n optional: true,\n })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'pathParams',\n required: pathParams.length > 0,\n schema: pathParams.length > 0 ? buildParamsSchema({ params: pathParams, node, resolver }) : createSchema({ type: 'never' }),\n }),\n createProperty({\n name: 'queryParams',\n schema:\n queryParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: queryParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'headerParams',\n schema:\n headerParams.length > 0\n ? createSchema({ ...buildParamsSchema({ params: headerParams, node, resolver }), optional: true })\n : createSchema({ type: 'never', optional: true }),\n }),\n createProperty({\n name: 'url',\n required: true,\n schema: createSchema({ type: 'url', path: node.path }),\n }),\n ],\n })\n}\n\n/**\n * Builds an `ObjectSchemaNode` representing `<OperationId>Responses` — keyed by HTTP status code.\n * Numeric status codes produce unquoted numeric keys (e.g. `200:`).\n * All responses are included; those without a schema are represented as a ref to a `never` type.\n */\nexport function buildResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n if (node.responses.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'object',\n properties: node.responses.map((res) =>\n createProperty({\n name: String(res.statusCode),\n required: true,\n schema: createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n }),\n ),\n })\n}\n\n/**\n * Builds a `UnionSchemaNode` representing `<OperationId>Response` — all response types in union format.\n * Returns `null` when the operation has no responses with schemas.\n */\nexport function buildResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const responsesWithSchema = node.responses.filter((res) => res.schema)\n\n if (responsesWithSchema.length === 0) {\n return null\n }\n\n return createSchema({\n type: 'union',\n members: responsesWithSchema.map((res) =>\n createSchema({\n type: 'ref',\n name: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n }),\n ),\n })\n}\n\ntype BuildGroupedParamsSchemaOptions = {\n params: Array<ParameterNode>\n /**\n * Parent type name (e.g. `FindPetsByStatusQueryParams`) used to derive enum names\n * for inline enum properties (e.g. `FindPetsByStatusQueryParamsStatusEnum`).\n */\n parentName?: string\n}\n\n/**\n * Builds an `ObjectSchemaNode` for a grouped parameters type (path/query/header) in legacy mode.\n * Each property directly embeds the parameter's schema inline (not a ref).\n * Used to generate `<OperationId>PathParams`, `<OperationId>QueryParams`, `<OperationId>HeaderParams`.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildGroupedParamsSchema({ params, parentName }: BuildGroupedParamsSchemaOptions): SchemaNode {\n return createSchema({\n type: 'object',\n properties: params.map((param) => {\n let schema = param.schema\n if (narrowSchema(schema, 'enum') && !schema.name && parentName) {\n schema = { ...schema, name: pascalCase([parentName, param.name, 'enum'].join(' ')) }\n }\n return createProperty({\n name: param.name,\n required: param.required,\n schema,\n })\n }),\n })\n}\n\n/**\n * Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.\n * Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.\n * Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponsesSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode | null {\n const isGet = node.method.toLowerCase() === 'get'\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n const errorResponses = node.responses.filter((res) => res.statusCode === 'default' || Number(res.statusCode) >= 400)\n\n const responseSchema =\n successResponses.length > 0\n ? successResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const errorsSchema =\n errorResponses.length > 0\n ? errorResponses.length === 1\n ? createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, errorResponses[0]!.statusCode) })\n : createSchema({\n type: 'union',\n members: errorResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n : createSchema({ type: 'any' })\n\n const properties = [createProperty({ name: 'Response', required: true, schema: responseSchema })]\n\n if (!isGet && node.requestBody?.schema) {\n properties.push(\n createProperty({\n name: 'Request',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveDataTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'query') && resolver.resolveQueryParamsTypedName) {\n properties.push(\n createProperty({\n name: 'QueryParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveQueryParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'path') && resolver.resolvePathParamsTypedName) {\n properties.push(\n createProperty({\n name: 'PathParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolvePathParamsTypedName(node) }),\n }),\n )\n }\n\n if (node.parameters.some((p) => p.in === 'header') && resolver.resolveHeaderParamsTypedName) {\n properties.push(\n createProperty({\n name: 'HeaderParams',\n required: true,\n schema: createSchema({ type: 'ref', name: resolver.resolveHeaderParamsTypedName(node) }),\n }),\n )\n }\n\n properties.push(createProperty({ name: 'Errors', required: true, schema: errorsSchema }))\n\n return createSchema({ type: 'object', properties })\n}\n\n/**\n * Builds the legacy response union for `<OperationId>MutationResponse` / `<OperationId>QueryResponse`.\n * In legacy mode this is the **success** response only (not the full union including errors).\n * Returns an `any` schema when there is no success response, matching v4 behavior.\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function buildLegacyResponseUnionSchemaNode({ node, resolver }: BuildOperationSchemaOptions): SchemaNode {\n const successResponses = node.responses.filter((res) => {\n const code = Number(res.statusCode)\n return !Number.isNaN(code) && code >= 200 && code < 300\n })\n\n if (successResponses.length === 0) {\n return createSchema({ type: 'any' })\n }\n\n if (successResponses.length === 1) {\n return createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, successResponses[0]!.statusCode) })\n }\n\n return createSchema({\n type: 'union',\n members: successResponses.map((res) => createSchema({ type: 'ref', name: resolver.resolveResponseStatusTypedName(node, res.statusCode) })),\n })\n}\n\n/**\n * Names unnamed enum nodes within a schema tree based on the parent type name.\n * Used in legacy mode to ensure inline enums in response/request schemas get\n * extracted as named enum declarations (e.g. `DeletePet200Enum`).\n *\n * @deprecated Legacy only — will be removed in v6.\n */\nexport function nameUnnamedEnums(node: SchemaNode, parentName: string): SchemaNode {\n return transform(node, {\n schema(n) {\n const enumNode = narrowSchema(n, 'enum')\n if (enumNode && !enumNode.name) {\n return { ...enumNode, name: pascalCase([parentName, 'enum'].join(' ')) }\n }\n return undefined\n },\n property(p) {\n const enumNode = narrowSchema(p.schema, 'enum')\n if (enumNode && !enumNode.name) {\n return {\n ...p,\n schema: { ...enumNode, name: pascalCase([parentName, p.name, 'enum'].join(' ')) },\n }\n }\n return undefined\n },\n })\n}\n","import { caseParams, composeTransformers, narrowSchema, schemaTypes, transform } from '@kubb/ast'\nimport type { SchemaNode } from '@kubb/ast/types'\nimport { defineGenerator } from '@kubb/core'\nimport { useKubb } from '@kubb/core/hooks'\nimport { File } from '@kubb/react-fabric'\nimport { Type } from '../components/Type.tsx'\nimport { ENUM_TYPES_WITH_KEY_SUFFIX } from '../constants.ts'\nimport type { PluginTs } from '../types'\nimport {\n buildDataSchemaNode,\n buildGroupedParamsSchema,\n buildLegacyResponsesSchemaNode,\n buildLegacyResponseUnionSchemaNode,\n buildParamsSchema,\n buildResponsesSchemaNode,\n buildResponseUnionSchemaNode,\n nameUnnamedEnums,\n} from './utils.ts'\n\nexport const typeGenerator = defineGenerator<PluginTs>({\n name: 'typescript',\n type: 'react',\n Operation({ node, adapter, options }) {\n const {\n enumType,\n enumKeyCasing,\n optionalType,\n arrayType,\n syntaxType,\n paramsCasing,\n group,\n resolver,\n baseResolver,\n compatibilityPreset,\n transformers = [],\n } = options\n const isKubbV4Compatibility = compatibilityPreset === 'kubbV4'\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n const file = getFile({\n name: node.operationId,\n extname: '.ts',\n mode,\n options: {\n group: group ? (group.type === 'tag' ? { tag: node.tags[0] ?? 'default' } : { path: node.path }) : undefined,\n },\n })\n const params = caseParams(node.parameters, paramsCasing)\n\n function renderSchemaType({\n node: schemaNode,\n name,\n typedName,\n description,\n keysToOmit,\n }: {\n node: SchemaNode | null\n name: string\n typedName: string\n description?: string\n keysToOmit?: Array<string>\n }) {\n if (!schemaNode) {\n return null\n }\n\n const transformedNode = transform(schemaNode, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n return (\n <>\n {mode === 'split' &&\n imports.map((imp) => <File.Import key={[name, imp.path, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} isTypeOnly />)}\n <Type\n name={name}\n typedName={typedName}\n node={transformedNode}\n description={description}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n keysToOmit={keysToOmit}\n legacy={isKubbV4Compatibility}\n />\n </>\n )\n }\n\n const responseTypes = isKubbV4Compatibility\n ? node.responses.map((res) => {\n const responseName = resolver.resolveResponseStatusName(node, res.statusCode)\n const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode)\n\n return renderSchemaType({\n node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,\n name: responseName,\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n })\n })\n : node.responses.map((res) =>\n renderSchemaType({\n node: res.schema,\n name: resolver.resolveResponseStatusName(node, res.statusCode),\n typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),\n description: res.description,\n keysToOmit: res.keysToOmit,\n }),\n )\n\n const requestType = node.requestBody?.schema\n ? renderSchemaType({\n node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,\n name: resolver.resolveDataName(node),\n typedName: resolver.resolveDataTypedName(node),\n description: node.requestBody.description ?? node.requestBody.schema.description,\n keysToOmit: node.requestBody.keysToOmit,\n })\n : null\n\n if (isKubbV4Compatibility) {\n const pathParams = params.filter((p) => p.in === 'path')\n const queryParams = params.filter((p) => p.in === 'query')\n const headerParams = params.filter((p) => p.in === 'header')\n\n const legacyParamTypes = [\n pathParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: pathParams, parentName: baseResolver.resolvePathParamsName!(node) }),\n name: resolver.resolvePathParamsName!(node),\n typedName: resolver.resolvePathParamsTypedName!(node),\n })\n : null,\n queryParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: queryParams, parentName: baseResolver.resolveQueryParamsName!(node) }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null,\n headerParams.length > 0\n ? renderSchemaType({\n node: buildGroupedParamsSchema({ params: headerParams, parentName: baseResolver.resolveHeaderParamsName!(node) }),\n name: resolver.resolveHeaderParamsName!(node),\n typedName: resolver.resolveHeaderParamsTypedName!(node),\n })\n : null,\n ]\n\n const legacyResponsesType = renderSchemaType({\n node: buildLegacyResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const legacyResponseType = renderSchemaType({\n node: buildLegacyResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {legacyParamTypes}\n {responseTypes}\n {requestType}\n {legacyResponseType}\n {legacyResponsesType}\n </File>\n )\n }\n\n const paramTypes = params.map((param) =>\n renderSchemaType({\n node: param.schema,\n name: resolver.resolveParamName(node, param),\n typedName: resolver.resolveParamTypedName(node, param),\n }),\n )\n\n const queryParamsList = params.filter((p) => p.in === 'query')\n const queryParamsType =\n queryParamsList.length > 0\n ? renderSchemaType({\n node: buildParamsSchema({ params: queryParamsList, node, resolver }),\n name: resolver.resolveQueryParamsName!(node),\n typedName: resolver.resolveQueryParamsTypedName!(node),\n })\n : null\n\n const dataType = renderSchemaType({\n node: buildDataSchemaNode({ node: { ...node, parameters: params }, resolver }),\n name: resolver.resolveRequestConfigName(node),\n typedName: resolver.resolveRequestConfigTypedName(node),\n })\n\n const responsesType = renderSchemaType({\n node: buildResponsesSchemaNode({ node, resolver }),\n name: resolver.resolveResponsesName(node),\n typedName: resolver.resolveResponsesTypedName(node),\n })\n\n const responseType = renderSchemaType({\n node: buildResponseUnionSchemaNode({ node, resolver }),\n name: resolver.resolveResponseName(node),\n typedName: resolver.resolveResponseTypedName(node),\n description: 'Union of all possible responses',\n })\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {paramTypes}\n {queryParamsType}\n {responseTypes}\n {requestType}\n {dataType}\n {responsesType}\n {responseType}\n </File>\n )\n },\n Schema({ node, adapter, options }) {\n const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, compatibilityPreset, transformers = [] } = options\n const isKubbV4Compatibility = compatibilityPreset === 'kubbV4'\n const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()\n\n if (!node.name) {\n return\n }\n\n const transformedNode = transform(node, composeTransformers(...transformers))\n\n const imports = adapter.getImports(transformedNode, (schemaName) => ({\n name: resolver.default(schemaName, 'type'),\n path: getFile({ name: schemaName, extname: '.ts', mode }).path,\n }))\n\n const isEnumSchema = !!narrowSchema(node, schemaTypes.enum)\n\n const typedName = ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name)\n\n const type = {\n name: resolver.resolveName(node.name),\n typedName,\n file: getFile({ name: node.name, extname: '.ts', mode }),\n } as const\n\n return (\n <File baseName={type.file.baseName} path={type.file.path} meta={type.file.meta} banner={resolveBanner()} footer={resolveFooter()}>\n {mode === 'split' &&\n imports.map((imp) => (\n <File.Import key={[node.name, imp.path, imp.isTypeOnly].join('-')} root={type.file.path} path={imp.path} name={imp.name} isTypeOnly />\n ))}\n <Type\n name={type.name}\n typedName={type.typedName}\n node={transformedNode}\n enumType={enumType}\n enumKeyCasing={enumKeyCasing}\n optionalType={optionalType}\n arrayType={arrayType}\n syntaxType={syntaxType}\n resolver={resolver}\n legacy={isKubbV4Compatibility}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_generators = require("./generators-B6JGhHkV.cjs");
2
+ const require_generators = require("./generators-SVexNxhl.cjs");
3
3
  exports.typeGenerator = require_generators.typeGenerator;
@@ -1,5 +1,5 @@
1
1
  import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { n as PluginTs } from "./types-D9zzvE0V.js";
2
+ import { n as PluginTs } from "./types-zqLMbIqZ.js";
3
3
  import * as _kubb_core0 from "@kubb/core";
4
4
 
5
5
  //#region src/generators/typeGenerator.d.ts
@@ -1,2 +1,2 @@
1
- import { t as typeGenerator } from "./generators-BTTcjgbY.js";
1
+ import { t as typeGenerator } from "./generators-huxvj9y4.js";
2
2
  export { typeGenerator };
package/dist/index.cjs CHANGED
@@ -1,20 +1,36 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_casing = require("./casing-D2uQKLWS.cjs");
3
- const require_generators = require("./generators-B6JGhHkV.cjs");
4
- const require_resolvers = require("./resolvers-DDZC7d43.cjs");
3
+ const require_generators = require("./generators-SVexNxhl.cjs");
4
+ const require_resolvers = require("./resolvers-YIpeP5YD.cjs");
5
5
  let node_path = require("node:path");
6
6
  node_path = require_casing.__toESM(node_path);
7
7
  let _kubb_ast = require("@kubb/ast");
8
8
  let _kubb_core = require("@kubb/core");
9
+ //#region src/presets.ts
10
+ const presets = (0, _kubb_core.definePresets)({
11
+ default: (0, _kubb_core.definePreset)("default", { resolvers: [require_resolvers.resolverTs] }),
12
+ kubbV4: (0, _kubb_core.definePreset)("kubbV4", { resolvers: [require_resolvers.resolverTsLegacy] })
13
+ });
14
+ function getPreset(preset, { resolvers, transformers } = {}) {
15
+ return (0, _kubb_core.getPreset)({
16
+ preset,
17
+ presets,
18
+ resolvers: [require_resolvers.resolverTs, ...resolvers ?? []],
19
+ transformers
20
+ });
21
+ }
22
+ //#endregion
9
23
  //#region src/plugin.ts
10
24
  const pluginTsName = "plugin-ts";
11
25
  const pluginTs = (0, _kubb_core.createPlugin)((options) => {
12
26
  const { output = {
13
27
  path: "types",
14
28
  barrelType: "named"
15
- }, group, exclude = [], include, override = [], enumType = "asConst", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, generators = [require_generators.typeGenerator].filter(Boolean), legacy = false, resolvers: userResolvers, transformers = [] } = options;
16
- const baseResolver = legacy ? require_resolvers.resolverTsLegacy : require_resolvers.resolverTs;
17
- const resolver = (0, _kubb_core.mergeResolvers)(...userResolvers ?? [baseResolver]);
29
+ }, group, exclude = [], include, override = [], enumType = "asConst", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, generators = [require_generators.typeGenerator].filter(Boolean), compatibilityPreset = "default", resolvers: userResolvers, transformers: userTransformers = [] } = options;
30
+ const { baseResolver, resolver, transformers } = getPreset(compatibilityPreset, {
31
+ resolvers: userResolvers,
32
+ transformers: userTransformers
33
+ });
18
34
  let resolveNameWarning = false;
19
35
  return {
20
36
  name: pluginTsName,
@@ -28,9 +44,9 @@ const pluginTs = (0, _kubb_core.createPlugin)((options) => {
28
44
  group,
29
45
  override,
30
46
  paramsCasing,
31
- legacy,
32
- resolver,
47
+ compatibilityPreset,
33
48
  baseResolver,
49
+ resolver,
34
50
  transformers
35
51
  },
36
52
  resolvePath(baseName, pathMode, options) {
@@ -127,7 +143,5 @@ const pluginTs = (0, _kubb_core.createPlugin)((options) => {
127
143
  //#endregion
128
144
  exports.pluginTs = pluginTs;
129
145
  exports.pluginTsName = pluginTsName;
130
- exports.resolverTs = require_resolvers.resolverTs;
131
- exports.resolverTsLegacy = require_resolvers.resolverTsLegacy;
132
146
 
133
147
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["typeGenerator","resolverTsLegacy","resolverTs","path","camelCase"],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { camelCase } from '@internals/utils'\nimport { walk } from '@kubb/ast'\nimport { createPlugin, type Group, getBarrelFiles, getMode, mergeResolvers, renderOperation, renderSchema } from '@kubb/core'\nimport { typeGenerator } from './generators/index.ts'\nimport { resolverTs, resolverTsLegacy } from './resolvers/index.ts'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumKeyCasing = 'none',\n optionalType = 'questionToken',\n arrayType = 'array',\n syntaxType = 'type',\n paramsCasing,\n generators = [typeGenerator].filter(Boolean),\n legacy = false,\n resolvers: userResolvers,\n transformers = [],\n } = options\n\n const baseResolver = legacy ? resolverTsLegacy : resolverTs\n const resolver = mergeResolvers(...(userResolvers ?? [baseResolver]))\n\n let resolveNameWarning = false\n\n return {\n name: pluginTsName,\n options: {\n output,\n optionalType,\n arrayType,\n enumType,\n enumKeyCasing,\n syntaxType,\n group,\n override,\n paramsCasing,\n legacy,\n resolver,\n baseResolver,\n transformers,\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 resolveName(name, type) {\n if (!resolveNameWarning) {\n this.driver.events.emit('warn', 'Do not use resolveName for pluginTs, use resolverTs instead')\n resolveNameWarning = true\n }\n\n return resolver.default(name, type)\n },\n async install() {\n const { config, fabric, plugin, adapter, rootNode, driver, openInStudio } = this\n\n const root = path.resolve(config.root, config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n\n if (!adapter) {\n throw new Error('Plugin cannot work without adapter being set')\n }\n\n await openInStudio({ ast: true })\n\n await walk(rootNode, {\n depth: 'shallow',\n async schema(schemaNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(schemaNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderSchema(schemaNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Schema,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n async operation(operationNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(operationNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderOperation(operationNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Operation,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n })\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginName: this.plugin.name,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["resolverTs","resolverTsLegacy","typeGenerator","path","camelCase"],"sources":["../src/presets.ts","../src/plugin.ts"],"sourcesContent":["import type { Visitor } from '@kubb/ast/types'\nimport { type CompatibilityPreset, definePreset, definePresets, getPreset as getCorePreset } from '@kubb/core'\nimport { resolverTs, resolverTsLegacy } from './resolvers/index.ts'\nimport type { ResolverTs } from './types.ts'\n\nexport const presets = definePresets<ResolverTs>({\n default: definePreset('default', { resolvers: [resolverTs] }),\n kubbV4: definePreset('kubbV4', { resolvers: [resolverTsLegacy] }),\n})\n\ntype GetPresetOptions = {\n resolvers?: Array<ResolverTs>\n transformers?: Array<Visitor>\n}\n\nexport function getPreset(preset: CompatibilityPreset, { resolvers, transformers }: GetPresetOptions = {}) {\n return getCorePreset({\n preset,\n presets,\n resolvers: [resolverTs, ...(resolvers ?? [])],\n transformers,\n })\n}\n","import path from 'node:path'\nimport { camelCase } from '@internals/utils'\nimport { walk } from '@kubb/ast'\nimport { createPlugin, type Group, getBarrelFiles, getMode, renderOperation, renderSchema } from '@kubb/core'\nimport { typeGenerator } from './generators/index.ts'\nimport { getPreset } from './presets.ts'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumKeyCasing = 'none',\n optionalType = 'questionToken',\n arrayType = 'array',\n syntaxType = 'type',\n paramsCasing,\n generators = [typeGenerator].filter(Boolean),\n compatibilityPreset = 'default',\n resolvers: userResolvers,\n transformers: userTransformers = [],\n } = options\n\n const { baseResolver, resolver, transformers } = getPreset(compatibilityPreset, {\n resolvers: userResolvers,\n transformers: userTransformers,\n })\n\n let resolveNameWarning = false\n\n return {\n name: pluginTsName,\n options: {\n output,\n optionalType,\n arrayType,\n enumType,\n enumKeyCasing,\n syntaxType,\n group,\n override,\n paramsCasing,\n compatibilityPreset,\n baseResolver,\n resolver,\n transformers,\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 resolveName(name, type) {\n if (!resolveNameWarning) {\n this.driver.events.emit('warn', 'Do not use resolveName for pluginTs, use resolverTs instead')\n resolveNameWarning = true\n }\n\n return resolver.default(name, type)\n },\n async install() {\n const { config, fabric, plugin, adapter, rootNode, driver, openInStudio } = this\n\n const root = path.resolve(config.root, config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n\n if (!adapter) {\n throw new Error('Plugin cannot work without adapter being set')\n }\n\n await openInStudio({ ast: true })\n\n await walk(rootNode, {\n depth: 'shallow',\n async schema(schemaNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(schemaNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderSchema(schemaNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Schema,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n async operation(operationNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(operationNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderOperation(operationNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Operation,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n })\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginName: this.plugin.name,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,10 @@
1
1
  import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { n as PluginTs, r as ResolverTs, t as Options } from "./types-D9zzvE0V.js";
3
- import { n as resolverTs, t as resolverTsLegacy } from "./index-B5pSjbZv.js";
2
+ import { n as PluginTs, r as ResolverTs, t as Options } from "./types-zqLMbIqZ.js";
4
3
  import * as _kubb_core0 from "@kubb/core";
5
4
 
6
5
  //#region src/plugin.d.ts
7
6
  declare const pluginTsName = "plugin-ts";
8
7
  declare const pluginTs: (options?: Options | undefined) => _kubb_core0.UserPluginWithLifeCycle<PluginTs>;
9
8
  //#endregion
10
- export { type PluginTs, type ResolverTs, pluginTs, pluginTsName, resolverTs, resolverTsLegacy };
9
+ export { type PluginTs, type ResolverTs, pluginTs, pluginTsName };
11
10
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,19 +1,36 @@
1
- import "./chunk--u3MIqq1.js";
1
+ import { t as __name } from "./chunk--u3MIqq1.js";
2
2
  import { t as camelCase } from "./casing-Cp-jbC_k.js";
3
- import { t as typeGenerator } from "./generators-BTTcjgbY.js";
4
- import { n as resolverTs, t as resolverTsLegacy } from "./resolvers-C_vYX56l.js";
3
+ import { t as typeGenerator } from "./generators-huxvj9y4.js";
4
+ import { n as resolverTs, t as resolverTsLegacy } from "./resolvers-DsKabI0F.js";
5
5
  import path from "node:path";
6
6
  import { walk } from "@kubb/ast";
7
- import { createPlugin, getBarrelFiles, getMode, mergeResolvers, renderOperation, renderSchema } from "@kubb/core";
7
+ import { createPlugin, definePreset, definePresets, getBarrelFiles, getMode, getPreset, renderOperation, renderSchema } from "@kubb/core";
8
+ //#region src/presets.ts
9
+ const presets = definePresets({
10
+ default: definePreset("default", { resolvers: [resolverTs] }),
11
+ kubbV4: definePreset("kubbV4", { resolvers: [resolverTsLegacy] })
12
+ });
13
+ function getPreset$1(preset, { resolvers, transformers } = {}) {
14
+ return getPreset({
15
+ preset,
16
+ presets,
17
+ resolvers: [resolverTs, ...resolvers ?? []],
18
+ transformers
19
+ });
20
+ }
21
+ __name(getPreset$1, "getPreset");
22
+ //#endregion
8
23
  //#region src/plugin.ts
9
24
  const pluginTsName = "plugin-ts";
10
25
  const pluginTs = createPlugin((options) => {
11
26
  const { output = {
12
27
  path: "types",
13
28
  barrelType: "named"
14
- }, group, exclude = [], include, override = [], enumType = "asConst", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, generators = [typeGenerator].filter(Boolean), legacy = false, resolvers: userResolvers, transformers = [] } = options;
15
- const baseResolver = legacy ? resolverTsLegacy : resolverTs;
16
- const resolver = mergeResolvers(...userResolvers ?? [baseResolver]);
29
+ }, group, exclude = [], include, override = [], enumType = "asConst", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, generators = [typeGenerator].filter(Boolean), compatibilityPreset = "default", resolvers: userResolvers, transformers: userTransformers = [] } = options;
30
+ const { baseResolver, resolver, transformers } = getPreset$1(compatibilityPreset, {
31
+ resolvers: userResolvers,
32
+ transformers: userTransformers
33
+ });
17
34
  let resolveNameWarning = false;
18
35
  return {
19
36
  name: pluginTsName,
@@ -27,9 +44,9 @@ const pluginTs = createPlugin((options) => {
27
44
  group,
28
45
  override,
29
46
  paramsCasing,
30
- legacy,
31
- resolver,
47
+ compatibilityPreset,
32
48
  baseResolver,
49
+ resolver,
33
50
  transformers
34
51
  },
35
52
  resolvePath(baseName, pathMode, options) {
@@ -124,6 +141,6 @@ const pluginTs = createPlugin((options) => {
124
141
  };
125
142
  });
126
143
  //#endregion
127
- export { pluginTs, pluginTsName, resolverTs, resolverTsLegacy };
144
+ export { pluginTs, pluginTsName };
128
145
 
129
146
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import path from 'node:path'\nimport { camelCase } from '@internals/utils'\nimport { walk } from '@kubb/ast'\nimport { createPlugin, type Group, getBarrelFiles, getMode, mergeResolvers, renderOperation, renderSchema } from '@kubb/core'\nimport { typeGenerator } from './generators/index.ts'\nimport { resolverTs, resolverTsLegacy } from './resolvers/index.ts'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumKeyCasing = 'none',\n optionalType = 'questionToken',\n arrayType = 'array',\n syntaxType = 'type',\n paramsCasing,\n generators = [typeGenerator].filter(Boolean),\n legacy = false,\n resolvers: userResolvers,\n transformers = [],\n } = options\n\n const baseResolver = legacy ? resolverTsLegacy : resolverTs\n const resolver = mergeResolvers(...(userResolvers ?? [baseResolver]))\n\n let resolveNameWarning = false\n\n return {\n name: pluginTsName,\n options: {\n output,\n optionalType,\n arrayType,\n enumType,\n enumKeyCasing,\n syntaxType,\n group,\n override,\n paramsCasing,\n legacy,\n resolver,\n baseResolver,\n transformers,\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 resolveName(name, type) {\n if (!resolveNameWarning) {\n this.driver.events.emit('warn', 'Do not use resolveName for pluginTs, use resolverTs instead')\n resolveNameWarning = true\n }\n\n return resolver.default(name, type)\n },\n async install() {\n const { config, fabric, plugin, adapter, rootNode, driver, openInStudio } = this\n\n const root = path.resolve(config.root, config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n\n if (!adapter) {\n throw new Error('Plugin cannot work without adapter being set')\n }\n\n await openInStudio({ ast: true })\n\n await walk(rootNode, {\n depth: 'shallow',\n async schema(schemaNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(schemaNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderSchema(schemaNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Schema,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n async operation(operationNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(operationNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderOperation(operationNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Operation,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n })\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginName: this.plugin.name,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["getPreset","getCorePreset","getPreset"],"sources":["../src/presets.ts","../src/plugin.ts"],"sourcesContent":["import type { Visitor } from '@kubb/ast/types'\nimport { type CompatibilityPreset, definePreset, definePresets, getPreset as getCorePreset } from '@kubb/core'\nimport { resolverTs, resolverTsLegacy } from './resolvers/index.ts'\nimport type { ResolverTs } from './types.ts'\n\nexport const presets = definePresets<ResolverTs>({\n default: definePreset('default', { resolvers: [resolverTs] }),\n kubbV4: definePreset('kubbV4', { resolvers: [resolverTsLegacy] }),\n})\n\ntype GetPresetOptions = {\n resolvers?: Array<ResolverTs>\n transformers?: Array<Visitor>\n}\n\nexport function getPreset(preset: CompatibilityPreset, { resolvers, transformers }: GetPresetOptions = {}) {\n return getCorePreset({\n preset,\n presets,\n resolvers: [resolverTs, ...(resolvers ?? [])],\n transformers,\n })\n}\n","import path from 'node:path'\nimport { camelCase } from '@internals/utils'\nimport { walk } from '@kubb/ast'\nimport { createPlugin, type Group, getBarrelFiles, getMode, renderOperation, renderSchema } from '@kubb/core'\nimport { typeGenerator } from './generators/index.ts'\nimport { getPreset } from './presets.ts'\nimport type { PluginTs } from './types.ts'\n\nexport const pluginTsName = 'plugin-ts' satisfies PluginTs['name']\n\nexport const pluginTs = createPlugin<PluginTs>((options) => {\n const {\n output = { path: 'types', barrelType: 'named' },\n group,\n exclude = [],\n include,\n override = [],\n enumType = 'asConst',\n enumKeyCasing = 'none',\n optionalType = 'questionToken',\n arrayType = 'array',\n syntaxType = 'type',\n paramsCasing,\n generators = [typeGenerator].filter(Boolean),\n compatibilityPreset = 'default',\n resolvers: userResolvers,\n transformers: userTransformers = [],\n } = options\n\n const { baseResolver, resolver, transformers } = getPreset(compatibilityPreset, {\n resolvers: userResolvers,\n transformers: userTransformers,\n })\n\n let resolveNameWarning = false\n\n return {\n name: pluginTsName,\n options: {\n output,\n optionalType,\n arrayType,\n enumType,\n enumKeyCasing,\n syntaxType,\n group,\n override,\n paramsCasing,\n compatibilityPreset,\n baseResolver,\n resolver,\n transformers,\n },\n resolvePath(baseName, pathMode, options) {\n const root = path.resolve(this.config.root, this.config.output.path)\n const mode = pathMode ?? 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 resolveName(name, type) {\n if (!resolveNameWarning) {\n this.driver.events.emit('warn', 'Do not use resolveName for pluginTs, use resolverTs instead')\n resolveNameWarning = true\n }\n\n return resolver.default(name, type)\n },\n async install() {\n const { config, fabric, plugin, adapter, rootNode, driver, openInStudio } = this\n\n const root = path.resolve(config.root, config.output.path)\n const mode = getMode(path.resolve(root, output.path))\n\n if (!adapter) {\n throw new Error('Plugin cannot work without adapter being set')\n }\n\n await openInStudio({ ast: true })\n\n await walk(rootNode, {\n depth: 'shallow',\n async schema(schemaNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(schemaNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderSchema(schemaNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Schema,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n async operation(operationNode) {\n const writeTasks = generators.map(async (generator) => {\n if (generator.type === 'react' && generator.version === '2') {\n const options = resolver.resolveOptions(operationNode, { options: plugin.options, exclude, include, override })\n\n if (options === null) {\n return\n }\n\n await renderOperation(operationNode, {\n options,\n adapter,\n config,\n fabric,\n Component: generator.Operation,\n plugin,\n driver,\n mode,\n })\n }\n })\n\n await Promise.all(writeTasks)\n },\n })\n\n const barrelFiles = await getBarrelFiles(this.fabric.files, {\n type: output.barrelType ?? 'named',\n root,\n output,\n meta: {\n pluginName: this.plugin.name,\n },\n })\n\n await this.upsertFile(...barrelFiles)\n },\n }\n})\n"],"mappings":"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"}
@@ -78,10 +78,10 @@ const resolverTs = defineResolver(() => {
78
78
  return `${this.resolveTypedName(node.name ?? "")}Key`;
79
79
  },
80
80
  resolvePathParamsName(_node) {
81
- throw new Error("resolvePathParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.");
81
+ throw new Error("resolvePathParamsName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamName per individual parameter instead.");
82
82
  },
83
83
  resolvePathParamsTypedName(_node) {
84
- throw new Error("resolvePathParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.");
84
+ throw new Error("resolvePathParamsTypedName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamTypedName per individual parameter instead.");
85
85
  },
86
86
  resolveQueryParamsName(node) {
87
87
  return this.resolveName(`${node.operationId} QueryParams`);
@@ -90,10 +90,10 @@ const resolverTs = defineResolver(() => {
90
90
  return this.resolveTypedName(`${node.operationId} QueryParams`);
91
91
  },
92
92
  resolveHeaderParamsName(_node) {
93
- throw new Error("resolveHeaderParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.");
93
+ throw new Error("resolveHeaderParamsName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamName per individual parameter instead.");
94
94
  },
95
95
  resolveHeaderParamsTypedName(_node) {
96
- throw new Error("resolveHeaderParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.");
96
+ throw new Error("resolveHeaderParamsTypedName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamTypedName per individual parameter instead.");
97
97
  }
98
98
  };
99
99
  });
@@ -101,7 +101,8 @@ const resolverTs = defineResolver(() => {
101
101
  //#region src/resolvers/resolverTsLegacy.ts
102
102
  /**
103
103
  * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions
104
- * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.
104
+ * used before the v2 resolver refactor. Enable via `compatibilityPreset: 'kubbV4'`
105
+ * (or by composing this resolver manually).
105
106
  *
106
107
  * Key differences from the default resolver:
107
108
  * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`
@@ -180,4 +181,4 @@ const resolverTsLegacy = defineResolver(() => {
180
181
  //#endregion
181
182
  export { resolverTs as n, resolverTsLegacy as t };
182
183
 
183
- //# sourceMappingURL=resolvers-C_vYX56l.js.map
184
+ //# sourceMappingURL=resolvers-DsKabI0F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers-DsKabI0F.js","names":[],"sources":["../src/resolvers/resolverTs.ts","../src/resolvers/resolverTsLegacy.ts"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\n\nfunction resolveName(name: string, type?: 'file' | 'function' | 'type' | 'const'): string {\n return pascalCase(name, { isFile: type === 'file' })\n}\n\n/**\n * Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution\n * helpers used by the plugin. Import this in other plugins to resolve the exact names and\n * paths that `plugin-ts` generates without hardcoding the conventions.\n *\n * The `default` method is automatically injected by `defineResolver` — it uses `camelCase`\n * for identifiers/files and `pascalCase` for type names.\n *\n * @example\n * ```ts\n * import { resolver } from '@kubb/plugin-ts'\n *\n * resolver.default('list pets', 'type') // → 'ListPets'\n * resolver.resolveName('list pets status 200') // → 'listPetsStatus200'\n * resolver.resolveTypedName('list pets status 200') // → 'ListPetsStatus200'\n * resolver.resolvePathName('list pets', 'file') // → 'listPets'\n * ```\n */\nexport const resolverTs = defineResolver<PluginTs>(() => {\n return {\n name: 'default',\n default(name, type) {\n return resolveName(name, type)\n },\n resolveName(name) {\n return this.default(name, 'function')\n },\n resolveTypedName(name) {\n return this.default(name, 'type')\n },\n resolvePathName(name, type) {\n return this.default(name, type)\n },\n resolveParamName(node, param) {\n return this.resolveName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveParamTypedName(node, param) {\n return this.resolveTypedName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveResponseStatusName(node, statusCode) {\n return this.resolveName(`${node.operationId} Status ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n return this.resolveTypedName(`${node.operationId} Status ${statusCode}`)\n },\n resolveDataName(node) {\n return this.resolveName(`${node.operationId} Data`)\n },\n resolveDataTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Data`)\n },\n resolveRequestConfigName(node) {\n return this.resolveName(`${node.operationId} RequestConfig`)\n },\n resolveRequestConfigTypedName(node) {\n return this.resolveTypedName(`${node.operationId} RequestConfig`)\n },\n resolveResponsesName(node) {\n return this.resolveName(`${node.operationId} Responses`)\n },\n resolveResponsesTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Responses`)\n },\n resolveResponseName(node) {\n return this.resolveName(`${node.operationId} Response`)\n },\n resolveResponseTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Response`)\n },\n resolveEnumKeyTypedName(node) {\n return `${this.resolveTypedName(node.name ?? '')}Key`\n },\n resolvePathParamsName(_node) {\n throw new Error(\"resolvePathParamsName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamName per individual parameter instead.\")\n },\n resolvePathParamsTypedName(_node) {\n throw new Error(\n \"resolvePathParamsTypedName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamTypedName per individual parameter instead.\",\n )\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(_node) {\n throw new Error(\"resolveHeaderParamsName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamName per individual parameter instead.\")\n },\n resolveHeaderParamsTypedName(_node) {\n throw new Error(\n \"resolveHeaderParamsTypedName is only available with compatibilityPreset: 'kubbV4'. Use resolveParamTypedName per individual parameter instead.\",\n )\n },\n }\n})\n","import { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\nimport { resolverTs } from './resolverTs.ts'\n\n/**\n * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions\n * used before the v2 resolver refactor. Enable via `compatibilityPreset: 'kubbV4'`\n * (or by composing this resolver manually).\n *\n * Key differences from the default resolver:\n * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`\n * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`\n * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)\n * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`\n * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`\n *\n * @example\n * ```ts\n * import { resolverTsLegacy } from '@kubb/plugin-ts'\n *\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'\n * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)\n * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)\n * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)\n * ```\n */\nexport const resolverTsLegacy = defineResolver<PluginTs>(() => {\n return {\n ...resolverTs,\n name: 'legacy',\n resolveResponseStatusName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveName(`${node.operationId} Error`)\n }\n return this.resolveName(`${node.operationId} ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveTypedName(`${node.operationId} Error`)\n }\n return this.resolveTypedName(`${node.operationId} ${statusCode}`)\n },\n resolveDataName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveDataTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolveResponsesName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'function')}${suffix}`\n },\n resolveResponsesTypedName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'type')}${suffix}`\n },\n resolveResponseName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveResponseTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolvePathParamsName(node) {\n return this.resolveName(`${node.operationId} PathParams`)\n },\n resolvePathParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} PathParams`)\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(node) {\n return this.resolveName(`${node.operationId} HeaderParams`)\n },\n resolveHeaderParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} HeaderParams`)\n },\n }\n})\n"],"mappings":"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"}