@kubb/plugin-ts 5.0.0-alpha.20 → 5.0.0-alpha.22

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 (71) hide show
  1. package/dist/Type-Bf8raoQX.cjs +124 -0
  2. package/dist/Type-Bf8raoQX.cjs.map +1 -0
  3. package/dist/Type-BpXxT4l_.js +113 -0
  4. package/dist/Type-BpXxT4l_.js.map +1 -0
  5. package/dist/builderTs-COUg3xtQ.cjs +135 -0
  6. package/dist/builderTs-COUg3xtQ.cjs.map +1 -0
  7. package/dist/builderTs-DPpkJKd1.js +131 -0
  8. package/dist/builderTs-DPpkJKd1.js.map +1 -0
  9. package/dist/builders.cjs +3 -0
  10. package/dist/builders.d.ts +23 -0
  11. package/dist/builders.js +2 -0
  12. package/dist/{casing-Cp-jbC_k.js → casing-BJHFg-zZ.js} +1 -1
  13. package/dist/{casing-Cp-jbC_k.js.map → casing-BJHFg-zZ.js.map} +1 -1
  14. package/dist/{casing-D2uQKLWS.cjs → casing-DHfdqpLi.cjs} +2 -39
  15. package/dist/{casing-D2uQKLWS.cjs.map → casing-DHfdqpLi.cjs.map} +1 -1
  16. package/dist/chunk-ByKO4r7w.cjs +38 -0
  17. package/dist/components.cjs +1 -1
  18. package/dist/components.d.ts +5 -2
  19. package/dist/components.js +1 -1
  20. package/dist/generators-DFDut8o-.js +555 -0
  21. package/dist/generators-DFDut8o-.js.map +1 -0
  22. package/dist/{generators-xHWQCNd9.cjs → generators-DKd7MYbx.cjs} +300 -293
  23. package/dist/generators-DKd7MYbx.cjs.map +1 -0
  24. package/dist/generators.cjs +2 -1
  25. package/dist/generators.d.ts +5 -2
  26. package/dist/generators.js +2 -2
  27. package/dist/index.cjs +75 -36
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +21 -2
  30. package/dist/index.js +73 -35
  31. package/dist/index.js.map +1 -1
  32. package/dist/{Type-B70QnSzH.cjs → printerTs-BcHudagv.cjs} +41 -135
  33. package/dist/printerTs-BcHudagv.cjs.map +1 -0
  34. package/dist/{Type-CMC7L-38.js → printerTs-CMBCOuqd.js} +19 -132
  35. package/dist/printerTs-CMBCOuqd.js.map +1 -0
  36. package/dist/printers.cjs +3 -0
  37. package/dist/printers.d.ts +81 -0
  38. package/dist/printers.js +2 -0
  39. package/dist/{resolvers-DsKabI0F.js → resolverTsLegacy-CPiqqsO6.js} +10 -9
  40. package/dist/resolverTsLegacy-CPiqqsO6.js.map +1 -0
  41. package/dist/{resolvers-YIpeP5YD.cjs → resolverTsLegacy-CuR9XbKk.cjs} +11 -9
  42. package/dist/resolverTsLegacy-CuR9XbKk.cjs.map +1 -0
  43. package/dist/resolvers.cjs +3 -3
  44. package/dist/resolvers.d.ts +1 -1
  45. package/dist/resolvers.js +1 -1
  46. package/dist/{types-zqLMbIqZ.d.ts → types-CRtcZOCz.d.ts} +59 -25
  47. package/package.json +17 -5
  48. package/src/builders/builderTs.ts +107 -0
  49. package/src/builders/index.ts +1 -0
  50. package/src/components/Enum.tsx +15 -11
  51. package/src/components/Type.tsx +20 -9
  52. package/src/factory.ts +0 -32
  53. package/src/generators/index.ts +1 -0
  54. package/src/generators/typeGenerator.tsx +53 -141
  55. package/src/generators/typeGeneratorLegacy.tsx +348 -0
  56. package/src/index.ts +1 -1
  57. package/src/plugin.ts +36 -44
  58. package/src/presets.ts +27 -7
  59. package/src/printers/index.ts +1 -0
  60. package/src/{printer.ts → printers/printerTs.ts} +31 -19
  61. package/src/resolvers/resolverTs.ts +9 -6
  62. package/src/resolvers/resolverTsLegacy.ts +1 -1
  63. package/src/types.ts +72 -24
  64. package/dist/Type-B70QnSzH.cjs.map +0 -1
  65. package/dist/Type-CMC7L-38.js.map +0 -1
  66. package/dist/generators-BFkr7ecU.js +0 -556
  67. package/dist/generators-BFkr7ecU.js.map +0 -1
  68. package/dist/generators-xHWQCNd9.cjs.map +0 -1
  69. package/dist/resolvers-DsKabI0F.js.map +0 -1
  70. package/dist/resolvers-YIpeP5YD.cjs.map +0 -1
  71. package/src/generators/utils.ts +0 -308
@@ -1,145 +1,210 @@
1
- const require_casing = require("./casing-D2uQKLWS.cjs");
2
- const require_Type = require("./Type-B70QnSzH.cjs");
1
+ const require_chunk = require("./chunk-ByKO4r7w.cjs");
2
+ const require_builderTs = require("./builderTs-COUg3xtQ.cjs");
3
+ const require_casing = require("./casing-DHfdqpLi.cjs");
4
+ const require_printerTs = require("./printerTs-BcHudagv.cjs");
5
+ const require_Type = require("./Type-Bf8raoQX.cjs");
6
+ const require_resolverTsLegacy = require("./resolverTsLegacy-CuR9XbKk.cjs");
7
+ let node_path = require("node:path");
8
+ node_path = require_chunk.__toESM(node_path);
3
9
  let _kubb_ast = require("@kubb/ast");
4
10
  let _kubb_core = require("@kubb/core");
5
- let _kubb_core_hooks = require("@kubb/core/hooks");
6
11
  let _kubb_react_fabric = require("@kubb/react-fabric");
7
12
  let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime");
8
- //#region src/generators/utils.ts
9
- /**
10
- * Builds an `ObjectSchemaNode` for a group of parameters (path/query/header).
11
- * Each property is a `ref` schema pointing to the individually-resolved parameter type.
12
- * The ref name includes the parameter location so generated type names follow
13
- * the `<OperationId><Location><ParamName>` convention.
14
- */
15
- function buildParamsSchema({ params, node, resolver }) {
16
- return (0, _kubb_ast.createSchema)({
17
- type: "object",
18
- properties: params.map((param) => (0, _kubb_ast.createProperty)({
19
- name: param.name,
20
- required: param.required,
21
- schema: (0, _kubb_ast.createSchema)({
22
- type: "ref",
23
- name: resolver.resolveParamName(node, param)
24
- })
25
- }))
26
- });
27
- }
28
- /**
29
- * Builds an `ObjectSchemaNode` representing the `<OperationId>RequestConfig` type:
30
- * - `data` → request body ref (optional) or `never`
31
- * - `pathParams` → inline object of path param refs, or `never`
32
- * - `queryParams` → inline object of query param refs (optional), or `never`
33
- * - `headerParams` → inline object of header param refs (optional), or `never`
34
- * - `url` → Express-style template literal (plugin-ts extension, handled by printer)
35
- */
36
- function buildDataSchemaNode({ node, resolver }) {
37
- const pathParams = node.parameters.filter((p) => p.in === "path");
38
- const queryParams = node.parameters.filter((p) => p.in === "query");
39
- const headerParams = node.parameters.filter((p) => p.in === "header");
40
- return (0, _kubb_ast.createSchema)({
41
- type: "object",
42
- deprecated: node.deprecated,
43
- properties: [
44
- (0, _kubb_ast.createProperty)({
45
- name: "data",
46
- schema: node.requestBody?.schema ? (0, _kubb_ast.createSchema)({
47
- type: "ref",
48
- name: resolver.resolveDataTypedName(node),
49
- optional: true
50
- }) : (0, _kubb_ast.createSchema)({
51
- type: "never",
52
- optional: true
53
- })
13
+ //#region src/generators/typeGenerator.tsx
14
+ const typeGenerator = (0, _kubb_core.defineGenerator)({
15
+ name: "typescript",
16
+ type: "react",
17
+ Operation({ node, adapter, options, config }) {
18
+ const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, resolver, transformers = [] } = options;
19
+ const root = node_path.default.resolve(config.root, config.output.path);
20
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
21
+ const file = resolver.resolveFile({
22
+ name: node.operationId,
23
+ extname: ".ts",
24
+ tag: node.tags[0] ?? "default",
25
+ path: node.path
26
+ }, {
27
+ root,
28
+ output,
29
+ group
30
+ });
31
+ const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
32
+ function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
33
+ if (!schemaNode) return null;
34
+ const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
35
+ const imports = adapter.getImports(transformedNode, (schemaName) => ({
36
+ name: resolver.default(schemaName, "type"),
37
+ path: resolver.resolveFile({
38
+ name: schemaName,
39
+ extname: ".ts"
40
+ }, {
41
+ root,
42
+ output,
43
+ group
44
+ }).path
45
+ }));
46
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
47
+ root: file.path,
48
+ path: imp.path,
49
+ name: imp.name,
50
+ isTypeOnly: true
51
+ }, [
52
+ name,
53
+ imp.path,
54
+ imp.isTypeOnly
55
+ ].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
56
+ name,
57
+ typedName,
58
+ node: transformedNode,
59
+ description,
60
+ enumType,
61
+ enumTypeSuffix,
62
+ enumKeyCasing,
63
+ optionalType,
64
+ arrayType,
65
+ syntaxType,
66
+ resolver,
67
+ keysToOmit
68
+ })] });
69
+ }
70
+ const paramTypes = params.map((param) => renderSchemaType({
71
+ node: param.schema,
72
+ name: resolver.resolveParamName(node, param),
73
+ typedName: resolver.resolveParamTypedName(node, param)
74
+ }));
75
+ const requestType = node.requestBody?.schema ? renderSchemaType({
76
+ node: node.requestBody.schema,
77
+ name: resolver.resolveDataName(node),
78
+ typedName: resolver.resolveDataTypedName(node),
79
+ description: node.requestBody.description ?? node.requestBody.schema.description,
80
+ keysToOmit: node.requestBody.keysToOmit
81
+ }) : null;
82
+ const responseTypes = node.responses.map((res) => renderSchemaType({
83
+ node: res.schema,
84
+ name: resolver.resolveResponseStatusName(node, res.statusCode),
85
+ typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
86
+ description: res.description,
87
+ keysToOmit: res.keysToOmit
88
+ }));
89
+ const dataType = renderSchemaType({
90
+ node: require_builderTs.builderTs.buildData({
91
+ node: {
92
+ ...node,
93
+ parameters: params
94
+ },
95
+ resolver
54
96
  }),
55
- (0, _kubb_ast.createProperty)({
56
- name: "pathParams",
57
- required: pathParams.length > 0,
58
- schema: pathParams.length > 0 ? buildParamsSchema({
59
- params: pathParams,
60
- node,
61
- resolver
62
- }) : (0, _kubb_ast.createSchema)({ type: "never" })
97
+ name: resolver.resolveRequestConfigName(node),
98
+ typedName: resolver.resolveRequestConfigTypedName(node)
99
+ });
100
+ const responsesType = renderSchemaType({
101
+ node: require_builderTs.builderTs.buildResponses({
102
+ node,
103
+ resolver
63
104
  }),
64
- (0, _kubb_ast.createProperty)({
65
- name: "queryParams",
66
- schema: queryParams.length > 0 ? (0, _kubb_ast.createSchema)({
67
- ...buildParamsSchema({
68
- params: queryParams,
69
- node,
70
- resolver
71
- }),
72
- optional: true
73
- }) : (0, _kubb_ast.createSchema)({
74
- type: "never",
75
- optional: true
76
- })
105
+ name: resolver.resolveResponsesName(node),
106
+ typedName: resolver.resolveResponsesTypedName(node)
107
+ });
108
+ const responseType = renderSchemaType({
109
+ node: require_builderTs.builderTs.buildResponseUnion({
110
+ node,
111
+ resolver
77
112
  }),
78
- (0, _kubb_ast.createProperty)({
79
- name: "headerParams",
80
- schema: headerParams.length > 0 ? (0, _kubb_ast.createSchema)({
81
- ...buildParamsSchema({
82
- params: headerParams,
83
- node,
84
- resolver
85
- }),
86
- optional: true
87
- }) : (0, _kubb_ast.createSchema)({
88
- type: "never",
89
- optional: true
90
- })
113
+ name: resolver.resolveResponseName(node),
114
+ typedName: resolver.resolveResponseTypedName(node),
115
+ description: "Union of all possible responses"
116
+ });
117
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
118
+ baseName: file.baseName,
119
+ path: file.path,
120
+ meta: file.meta,
121
+ banner: resolver.resolveBanner(adapter.rootNode, {
122
+ output,
123
+ config
91
124
  }),
92
- (0, _kubb_ast.createProperty)({
93
- name: "url",
94
- required: true,
95
- schema: (0, _kubb_ast.createSchema)({
96
- type: "url",
97
- path: node.path
98
- })
99
- })
100
- ]
101
- });
102
- }
103
- /**
104
- * Builds an `ObjectSchemaNode` representing `<OperationId>Responses` — keyed by HTTP status code.
105
- * Numeric status codes produce unquoted numeric keys (e.g. `200:`).
106
- * All responses are included; those without a schema are represented as a ref to a `never` type.
107
- */
108
- function buildResponsesSchemaNode({ node, resolver }) {
109
- if (node.responses.length === 0) return null;
110
- return (0, _kubb_ast.createSchema)({
111
- type: "object",
112
- properties: node.responses.map((res) => (0, _kubb_ast.createProperty)({
113
- name: String(res.statusCode),
114
- required: true,
115
- schema: (0, _kubb_ast.createSchema)({
116
- type: "ref",
117
- name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
125
+ footer: resolver.resolveFooter(adapter.rootNode, {
126
+ output,
127
+ config
128
+ }),
129
+ children: [
130
+ paramTypes,
131
+ responseTypes,
132
+ requestType,
133
+ dataType,
134
+ responsesType,
135
+ responseType
136
+ ]
137
+ });
138
+ },
139
+ Schema({ node, adapter, options, config }) {
140
+ const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
141
+ const root = node_path.default.resolve(config.root, config.output.path);
142
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
143
+ if (!node.name) return;
144
+ const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
145
+ const imports = adapter.getImports(transformedNode, (schemaName) => ({
146
+ name: resolver.default(schemaName, "type"),
147
+ path: resolver.resolveFile({
148
+ name: schemaName,
149
+ extname: ".ts"
150
+ }, {
151
+ root,
152
+ output,
153
+ group
154
+ }).path
155
+ }));
156
+ const isEnumSchema = !!(0, _kubb_ast.narrowSchema)(node, _kubb_ast.schemaTypes.enum);
157
+ const typedName = require_printerTs.ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node, enumTypeSuffix) : resolver.resolveTypedName(node.name);
158
+ const type = {
159
+ name: resolver.resolveName(node.name),
160
+ typedName,
161
+ file: resolver.resolveFile({
162
+ name: node.name,
163
+ extname: ".ts"
164
+ }, {
165
+ root,
166
+ output,
167
+ group
118
168
  })
119
- }))
120
- });
121
- }
122
- /**
123
- * Builds a `UnionSchemaNode` representing `<OperationId>Response` — all response types in union format.
124
- * Returns `null` when the operation has no responses with schemas.
125
- */
126
- function buildResponseUnionSchemaNode({ node, resolver }) {
127
- const responsesWithSchema = node.responses.filter((res) => res.schema);
128
- if (responsesWithSchema.length === 0) return null;
129
- return (0, _kubb_ast.createSchema)({
130
- type: "union",
131
- members: responsesWithSchema.map((res) => (0, _kubb_ast.createSchema)({
132
- type: "ref",
133
- name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
134
- }))
135
- });
136
- }
137
- /**
138
- * Builds an `ObjectSchemaNode` for a grouped parameters type (path/query/header) in legacy mode.
139
- * Each property directly embeds the parameter's schema inline (not a ref).
140
- * Used to generate `<OperationId>PathParams`, `<OperationId>QueryParams`, `<OperationId>HeaderParams`.
141
- * @deprecated Legacy only will be removed in v6.
142
- */
169
+ };
170
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
171
+ baseName: type.file.baseName,
172
+ path: type.file.path,
173
+ meta: type.file.meta,
174
+ banner: resolver.resolveBanner(adapter.rootNode, {
175
+ output,
176
+ config
177
+ }),
178
+ footer: resolver.resolveFooter(adapter.rootNode, {
179
+ output,
180
+ config
181
+ }),
182
+ children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
183
+ root: type.file.path,
184
+ path: imp.path,
185
+ name: imp.name,
186
+ isTypeOnly: true
187
+ }, [
188
+ node.name,
189
+ imp.path,
190
+ imp.isTypeOnly
191
+ ].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
192
+ name: type.name,
193
+ typedName: type.typedName,
194
+ node: transformedNode,
195
+ enumType,
196
+ enumTypeSuffix,
197
+ enumKeyCasing,
198
+ optionalType,
199
+ arrayType,
200
+ syntaxType,
201
+ resolver
202
+ })]
203
+ });
204
+ }
205
+ });
206
+ //#endregion
207
+ //#region src/generators/typeGeneratorLegacy.tsx
143
208
  function buildGroupedParamsSchema({ params, parentName }) {
144
209
  return (0, _kubb_ast.createSchema)({
145
210
  type: "object",
@@ -161,13 +226,6 @@ function buildGroupedParamsSchema({ params, parentName }) {
161
226
  })
162
227
  });
163
228
  }
164
- /**
165
- * Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.
166
- * Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.
167
- * Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.
168
- *
169
- * @deprecated Legacy only — will be removed in v6.
170
- */
171
229
  function buildLegacyResponsesSchemaNode({ node, resolver }) {
172
230
  const isGet = node.method.toLowerCase() === "get";
173
231
  const successResponses = node.responses.filter((res) => {
@@ -242,12 +300,6 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
242
300
  properties
243
301
  });
244
302
  }
245
- /**
246
- * Builds the legacy response union for `<OperationId>MutationResponse` / `<OperationId>QueryResponse`.
247
- * In legacy mode this is the **success** response only (not the full union including errors).
248
- * Returns an `any` schema when there is no success response, matching v4 behavior.
249
- * @deprecated Legacy only — will be removed in v6.
250
- */
251
303
  function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
252
304
  const successResponses = node.responses.filter((res) => {
253
305
  const code = Number(res.statusCode);
@@ -266,13 +318,6 @@ function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
266
318
  }))
267
319
  });
268
320
  }
269
- /**
270
- * Names unnamed enum nodes within a schema tree based on the parent type name.
271
- * Used in legacy mode to ensure inline enums in response/request schemas get
272
- * extracted as named enum declarations (e.g. `DeletePet200Enum`).
273
- *
274
- * @deprecated Legacy only — will be removed in v6.
275
- */
276
321
  function nameUnnamedEnums(node, parentName) {
277
322
  return (0, _kubb_ast.transform)(node, {
278
323
  schema(n) {
@@ -298,20 +343,22 @@ function nameUnnamedEnums(node, parentName) {
298
343
  }
299
344
  });
300
345
  }
301
- //#endregion
302
- //#region src/generators/typeGenerator.tsx
303
- const typeGenerator = (0, _kubb_core.defineGenerator)({
304
- name: "typescript",
346
+ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
347
+ name: "typescript-legacy",
305
348
  type: "react",
306
- Operation({ node, adapter, options }) {
307
- const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, compatibilityPreset, transformers = [] } = options;
308
- const isKubbV4Compatibility = compatibilityPreset === "kubbV4";
309
- const { mode, getFile, resolveBanner, resolveFooter } = (0, _kubb_core_hooks.useKubb)();
310
- const file = getFile({
349
+ Operation({ node, adapter, options, config }) {
350
+ const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, resolver, transformers = [] } = options;
351
+ const root = node_path.default.resolve(config.root, config.output.path);
352
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
353
+ const file = resolver.resolveFile({
311
354
  name: node.operationId,
312
355
  extname: ".ts",
313
- mode,
314
- options: { group: group ? group.type === "tag" ? { tag: node.tags[0] ?? "default" } : { path: node.path } : void 0 }
356
+ tag: node.tags[0] ?? "default",
357
+ path: node.path
358
+ }, {
359
+ root,
360
+ output,
361
+ group
315
362
  });
316
363
  const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
317
364
  function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
@@ -319,10 +366,13 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
319
366
  const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
320
367
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
321
368
  name: resolver.default(schemaName, "type"),
322
- path: getFile({
369
+ path: resolver.resolveFile({
323
370
  name: schemaName,
324
- extname: ".ts",
325
- mode
371
+ extname: ".ts"
372
+ }, {
373
+ root,
374
+ output,
375
+ group
326
376
  }).path
327
377
  }));
328
378
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric_jsx_runtime.Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
@@ -340,18 +390,21 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
340
390
  node: transformedNode,
341
391
  description,
342
392
  enumType,
393
+ enumTypeSuffix,
343
394
  enumKeyCasing,
344
395
  optionalType,
345
396
  arrayType,
346
397
  syntaxType,
347
398
  resolver,
348
- keysToOmit,
349
- legacy: isKubbV4Compatibility
399
+ keysToOmit
350
400
  })] });
351
401
  }
352
- const responseTypes = isKubbV4Compatibility ? node.responses.map((res) => {
402
+ const pathParams = params.filter((p) => p.in === "path");
403
+ const queryParams = params.filter((p) => p.in === "query");
404
+ const headerParams = params.filter((p) => p.in === "header");
405
+ const responseTypes = node.responses.map((res) => {
353
406
  const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
354
- const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
407
+ const baseResponseName = require_resolverTsLegacy.resolverTsLegacy.resolveResponseStatusName(node, res.statusCode);
355
408
  return renderSchemaType({
356
409
  node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
357
410
  name: responseName,
@@ -359,172 +412,120 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
359
412
  description: res.description,
360
413
  keysToOmit: res.keysToOmit
361
414
  });
362
- }) : node.responses.map((res) => renderSchemaType({
363
- node: res.schema,
364
- name: resolver.resolveResponseStatusName(node, res.statusCode),
365
- typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
366
- description: res.description,
367
- keysToOmit: res.keysToOmit
368
- }));
415
+ });
369
416
  const requestType = node.requestBody?.schema ? renderSchemaType({
370
- node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
417
+ node: nameUnnamedEnums(node.requestBody.schema, require_resolverTsLegacy.resolverTsLegacy.resolveDataName(node)),
371
418
  name: resolver.resolveDataName(node),
372
419
  typedName: resolver.resolveDataTypedName(node),
373
420
  description: node.requestBody.description ?? node.requestBody.schema.description,
374
421
  keysToOmit: node.requestBody.keysToOmit
375
422
  }) : null;
376
- if (isKubbV4Compatibility) {
377
- const pathParams = params.filter((p) => p.in === "path");
378
- const queryParams = params.filter((p) => p.in === "query");
379
- const headerParams = params.filter((p) => p.in === "header");
380
- const legacyParamTypes = [
381
- pathParams.length > 0 ? renderSchemaType({
382
- node: buildGroupedParamsSchema({
383
- params: pathParams,
384
- parentName: baseResolver.resolvePathParamsName(node)
385
- }),
386
- name: resolver.resolvePathParamsName(node),
387
- typedName: resolver.resolvePathParamsTypedName(node)
388
- }) : null,
389
- queryParams.length > 0 ? renderSchemaType({
390
- node: buildGroupedParamsSchema({
391
- params: queryParams,
392
- parentName: baseResolver.resolveQueryParamsName(node)
393
- }),
394
- name: resolver.resolveQueryParamsName(node),
395
- typedName: resolver.resolveQueryParamsTypedName(node)
396
- }) : null,
397
- headerParams.length > 0 ? renderSchemaType({
398
- node: buildGroupedParamsSchema({
399
- params: headerParams,
400
- parentName: baseResolver.resolveHeaderParamsName(node)
401
- }),
402
- name: resolver.resolveHeaderParamsName(node),
403
- typedName: resolver.resolveHeaderParamsTypedName(node)
404
- }) : null
405
- ];
406
- const legacyResponsesType = renderSchemaType({
407
- node: buildLegacyResponsesSchemaNode({
408
- node,
409
- resolver
423
+ const legacyParamTypes = [
424
+ pathParams.length > 0 ? renderSchemaType({
425
+ node: buildGroupedParamsSchema({
426
+ params: pathParams,
427
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolvePathParamsName(node)
410
428
  }),
411
- name: resolver.resolveResponsesName(node),
412
- typedName: resolver.resolveResponsesTypedName(node)
413
- });
414
- const legacyResponseType = renderSchemaType({
415
- node: buildLegacyResponseUnionSchemaNode({
416
- node,
417
- resolver
429
+ name: resolver.resolvePathParamsName(node),
430
+ typedName: resolver.resolvePathParamsTypedName(node)
431
+ }) : null,
432
+ queryParams.length > 0 ? renderSchemaType({
433
+ node: buildGroupedParamsSchema({
434
+ params: queryParams,
435
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolveQueryParamsName(node)
418
436
  }),
419
- name: resolver.resolveResponseName(node),
420
- typedName: resolver.resolveResponseTypedName(node)
421
- });
422
- return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
423
- baseName: file.baseName,
424
- path: file.path,
425
- meta: file.meta,
426
- banner: resolveBanner(),
427
- footer: resolveFooter(),
428
- children: [
429
- legacyParamTypes,
430
- responseTypes,
431
- requestType,
432
- legacyResponseType,
433
- legacyResponsesType
434
- ]
435
- });
436
- }
437
- const paramTypes = params.map((param) => renderSchemaType({
438
- node: param.schema,
439
- name: resolver.resolveParamName(node, param),
440
- typedName: resolver.resolveParamTypedName(node, param)
441
- }));
442
- const queryParamsList = params.filter((p) => p.in === "query");
443
- const queryParamsType = queryParamsList.length > 0 ? renderSchemaType({
444
- node: buildParamsSchema({
445
- params: queryParamsList,
446
- node,
447
- resolver
448
- }),
449
- name: resolver.resolveQueryParamsName(node),
450
- typedName: resolver.resolveQueryParamsTypedName(node)
451
- }) : null;
452
- const dataType = renderSchemaType({
453
- node: buildDataSchemaNode({
454
- node: {
455
- ...node,
456
- parameters: params
457
- },
458
- resolver
459
- }),
460
- name: resolver.resolveRequestConfigName(node),
461
- typedName: resolver.resolveRequestConfigTypedName(node)
462
- });
463
- const responsesType = renderSchemaType({
464
- node: buildResponsesSchemaNode({
437
+ name: resolver.resolveQueryParamsName(node),
438
+ typedName: resolver.resolveQueryParamsTypedName(node)
439
+ }) : null,
440
+ headerParams.length > 0 ? renderSchemaType({
441
+ node: buildGroupedParamsSchema({
442
+ params: headerParams,
443
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolveHeaderParamsName(node)
444
+ }),
445
+ name: resolver.resolveHeaderParamsName(node),
446
+ typedName: resolver.resolveHeaderParamsTypedName(node)
447
+ }) : null
448
+ ];
449
+ const legacyResponsesType = renderSchemaType({
450
+ node: buildLegacyResponsesSchemaNode({
465
451
  node,
466
452
  resolver
467
453
  }),
468
454
  name: resolver.resolveResponsesName(node),
469
455
  typedName: resolver.resolveResponsesTypedName(node)
470
456
  });
471
- const responseType = renderSchemaType({
472
- node: buildResponseUnionSchemaNode({
457
+ const legacyResponseType = renderSchemaType({
458
+ node: buildLegacyResponseUnionSchemaNode({
473
459
  node,
474
460
  resolver
475
461
  }),
476
462
  name: resolver.resolveResponseName(node),
477
- typedName: resolver.resolveResponseTypedName(node),
478
- description: "Union of all possible responses"
463
+ typedName: resolver.resolveResponseTypedName(node)
479
464
  });
480
465
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
481
466
  baseName: file.baseName,
482
467
  path: file.path,
483
468
  meta: file.meta,
484
- banner: resolveBanner(),
485
- footer: resolveFooter(),
469
+ banner: resolver.resolveBanner(adapter.rootNode, {
470
+ output,
471
+ config
472
+ }),
473
+ footer: resolver.resolveFooter(adapter.rootNode, {
474
+ output,
475
+ config
476
+ }),
486
477
  children: [
487
- paramTypes,
488
- queryParamsType,
478
+ legacyParamTypes,
489
479
  responseTypes,
490
480
  requestType,
491
- dataType,
492
- responsesType,
493
- responseType
481
+ legacyResponseType,
482
+ legacyResponsesType
494
483
  ]
495
484
  });
496
485
  },
497
- Schema({ node, adapter, options }) {
498
- const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, compatibilityPreset, transformers = [] } = options;
499
- const isKubbV4Compatibility = compatibilityPreset === "kubbV4";
500
- const { mode, getFile, resolveBanner, resolveFooter } = (0, _kubb_core_hooks.useKubb)();
486
+ Schema({ node, adapter, options, config }) {
487
+ const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
488
+ const root = node_path.default.resolve(config.root, config.output.path);
489
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
501
490
  if (!node.name) return;
502
491
  const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
503
492
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
504
493
  name: resolver.default(schemaName, "type"),
505
- path: getFile({
494
+ path: resolver.resolveFile({
506
495
  name: schemaName,
507
- extname: ".ts",
508
- mode
496
+ extname: ".ts"
497
+ }, {
498
+ root,
499
+ output,
500
+ group
509
501
  }).path
510
502
  }));
511
503
  const isEnumSchema = !!(0, _kubb_ast.narrowSchema)(node, _kubb_ast.schemaTypes.enum);
512
- const typedName = require_Type.ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
504
+ const typedName = require_printerTs.ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node, enumTypeSuffix) : resolver.resolveTypedName(node.name);
513
505
  const type = {
514
506
  name: resolver.resolveName(node.name),
515
507
  typedName,
516
- file: getFile({
508
+ file: resolver.resolveFile({
517
509
  name: node.name,
518
- extname: ".ts",
519
- mode
510
+ extname: ".ts"
511
+ }, {
512
+ root,
513
+ output,
514
+ group
520
515
  })
521
516
  };
522
517
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
523
518
  baseName: type.file.baseName,
524
519
  path: type.file.path,
525
520
  meta: type.file.meta,
526
- banner: resolveBanner(),
527
- footer: resolveFooter(),
521
+ banner: resolver.resolveBanner(adapter.rootNode, {
522
+ output,
523
+ config
524
+ }),
525
+ footer: resolver.resolveFooter(adapter.rootNode, {
526
+ output,
527
+ config
528
+ }),
528
529
  children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
529
530
  root: type.file.path,
530
531
  path: imp.path,
@@ -539,12 +540,12 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
539
540
  typedName: type.typedName,
540
541
  node: transformedNode,
541
542
  enumType,
543
+ enumTypeSuffix,
542
544
  enumKeyCasing,
543
545
  optionalType,
544
546
  arrayType,
545
547
  syntaxType,
546
- resolver,
547
- legacy: isKubbV4Compatibility
548
+ resolver
548
549
  })]
549
550
  });
550
551
  }
@@ -556,5 +557,11 @@ Object.defineProperty(exports, "typeGenerator", {
556
557
  return typeGenerator;
557
558
  }
558
559
  });
560
+ Object.defineProperty(exports, "typeGeneratorLegacy", {
561
+ enumerable: true,
562
+ get: function() {
563
+ return typeGeneratorLegacy;
564
+ }
565
+ });
559
566
 
560
- //# sourceMappingURL=generators-xHWQCNd9.cjs.map
567
+ //# sourceMappingURL=generators-DKd7MYbx.cjs.map