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

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 (70) hide show
  1. package/dist/Type-B6fo0gSk.js +120 -0
  2. package/dist/Type-B6fo0gSk.js.map +1 -0
  3. package/dist/Type-oFwUfkZv.cjs +131 -0
  4. package/dist/Type-oFwUfkZv.cjs.map +1 -0
  5. package/dist/builderTs-Cd3juc2G.cjs +120 -0
  6. package/dist/builderTs-Cd3juc2G.cjs.map +1 -0
  7. package/dist/builderTs-DausqHpc.js +116 -0
  8. package/dist/builderTs-DausqHpc.js.map +1 -0
  9. package/dist/builders.cjs +3 -0
  10. package/dist/builders.d.ts +8 -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 +1 -2
  19. package/dist/components.js +1 -1
  20. package/dist/generators-ByK18qUn.js +551 -0
  21. package/dist/generators-ByK18qUn.js.map +1 -0
  22. package/dist/{generators-xHWQCNd9.cjs → generators-aSsiTfUO.cjs} +296 -293
  23. package/dist/generators-aSsiTfUO.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 +38 -36
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +2 -2
  30. package/dist/index.js +36 -35
  31. package/dist/index.js.map +1 -1
  32. package/dist/{Type-CMC7L-38.js → printerTs-BgZucv4T.js} +18 -130
  33. package/dist/printerTs-BgZucv4T.js.map +1 -0
  34. package/dist/{Type-B70QnSzH.cjs → printerTs-CFXc_LpP.cjs} +40 -133
  35. package/dist/printerTs-CFXc_LpP.cjs.map +1 -0
  36. package/dist/printers.cjs +3 -0
  37. package/dist/printers.d.ts +75 -0
  38. package/dist/printers.js +2 -0
  39. package/dist/{resolvers-DsKabI0F.js → resolverTsLegacy-DLl854-P.js} +8 -7
  40. package/dist/resolverTsLegacy-DLl854-P.js.map +1 -0
  41. package/dist/{resolvers-YIpeP5YD.cjs → resolverTsLegacy-sJ16Iqrl.cjs} +9 -7
  42. package/dist/resolverTsLegacy-sJ16Iqrl.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-BcyuFDn9.d.ts} +26 -22
  47. package/package.json +17 -5
  48. package/src/builders/builderTs.ts +92 -0
  49. package/src/builders/index.ts +1 -0
  50. package/src/components/Type.tsx +4 -6
  51. package/src/factory.ts +0 -32
  52. package/src/generators/index.ts +1 -0
  53. package/src/generators/typeGenerator.tsx +49 -140
  54. package/src/generators/typeGeneratorLegacy.tsx +345 -0
  55. package/src/index.ts +1 -1
  56. package/src/plugin.ts +15 -44
  57. package/src/presets.ts +10 -7
  58. package/src/printers/index.ts +1 -0
  59. package/src/{printer.ts → printers/printerTs.ts} +20 -16
  60. package/src/resolvers/resolverTs.ts +7 -4
  61. package/src/resolvers/resolverTsLegacy.ts +1 -1
  62. package/src/types.ts +39 -21
  63. package/dist/Type-B70QnSzH.cjs.map +0 -1
  64. package/dist/Type-CMC7L-38.js.map +0 -1
  65. package/dist/generators-BFkr7ecU.js +0 -556
  66. package/dist/generators-BFkr7ecU.js.map +0 -1
  67. package/dist/generators-xHWQCNd9.cjs.map +0 -1
  68. package/dist/resolvers-DsKabI0F.js.map +0 -1
  69. package/dist/resolvers-YIpeP5YD.cjs.map +0 -1
  70. package/src/generators/utils.ts +0 -308
@@ -1,145 +1,208 @@
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-Cd3juc2G.cjs");
3
+ const require_casing = require("./casing-DHfdqpLi.cjs");
4
+ const require_printerTs = require("./printerTs-CFXc_LpP.cjs");
5
+ const require_Type = require("./Type-oFwUfkZv.cjs");
6
+ const require_resolverTsLegacy = require("./resolverTsLegacy-sJ16Iqrl.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, 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
+ enumKeyCasing,
62
+ optionalType,
63
+ arrayType,
64
+ syntaxType,
65
+ resolver,
66
+ keysToOmit
67
+ })] });
68
+ }
69
+ const paramTypes = params.map((param) => renderSchemaType({
70
+ node: param.schema,
71
+ name: resolver.resolveParamName(node, param),
72
+ typedName: resolver.resolveParamTypedName(node, param)
73
+ }));
74
+ const requestType = node.requestBody?.schema ? renderSchemaType({
75
+ node: node.requestBody.schema,
76
+ name: resolver.resolveDataName(node),
77
+ typedName: resolver.resolveDataTypedName(node),
78
+ description: node.requestBody.description ?? node.requestBody.schema.description,
79
+ keysToOmit: node.requestBody.keysToOmit
80
+ }) : null;
81
+ const responseTypes = node.responses.map((res) => renderSchemaType({
82
+ node: res.schema,
83
+ name: resolver.resolveResponseStatusName(node, res.statusCode),
84
+ typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
85
+ description: res.description,
86
+ keysToOmit: res.keysToOmit
87
+ }));
88
+ const dataType = renderSchemaType({
89
+ node: require_builderTs.builderTs.buildData({
90
+ node: {
91
+ ...node,
92
+ parameters: params
93
+ },
94
+ resolver
54
95
  }),
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" })
96
+ name: resolver.resolveRequestConfigName(node),
97
+ typedName: resolver.resolveRequestConfigTypedName(node)
98
+ });
99
+ const responsesType = renderSchemaType({
100
+ node: require_builderTs.builderTs.buildResponses({
101
+ node,
102
+ resolver
63
103
  }),
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
- })
104
+ name: resolver.resolveResponsesName(node),
105
+ typedName: resolver.resolveResponsesTypedName(node)
106
+ });
107
+ const responseType = renderSchemaType({
108
+ node: require_builderTs.builderTs.buildResponseUnion({
109
+ node,
110
+ resolver
77
111
  }),
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
- })
112
+ name: resolver.resolveResponseName(node),
113
+ typedName: resolver.resolveResponseTypedName(node),
114
+ description: "Union of all possible responses"
115
+ });
116
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
117
+ baseName: file.baseName,
118
+ path: file.path,
119
+ meta: file.meta,
120
+ banner: resolver.resolveBanner(adapter.rootNode, {
121
+ output,
122
+ config
91
123
  }),
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)
124
+ footer: resolver.resolveFooter(adapter.rootNode, {
125
+ output,
126
+ config
127
+ }),
128
+ children: [
129
+ paramTypes,
130
+ responseTypes,
131
+ requestType,
132
+ dataType,
133
+ responsesType,
134
+ responseType
135
+ ]
136
+ });
137
+ },
138
+ Schema({ node, adapter, options, config }) {
139
+ const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
140
+ const root = node_path.default.resolve(config.root, config.output.path);
141
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
142
+ if (!node.name) return;
143
+ const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
144
+ const imports = adapter.getImports(transformedNode, (schemaName) => ({
145
+ name: resolver.default(schemaName, "type"),
146
+ path: resolver.resolveFile({
147
+ name: schemaName,
148
+ extname: ".ts"
149
+ }, {
150
+ root,
151
+ output,
152
+ group
153
+ }).path
154
+ }));
155
+ const isEnumSchema = !!(0, _kubb_ast.narrowSchema)(node, _kubb_ast.schemaTypes.enum);
156
+ const typedName = require_printerTs.ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
157
+ const type = {
158
+ name: resolver.resolveName(node.name),
159
+ typedName,
160
+ file: resolver.resolveFile({
161
+ name: node.name,
162
+ extname: ".ts"
163
+ }, {
164
+ root,
165
+ output,
166
+ group
118
167
  })
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
- */
168
+ };
169
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
170
+ baseName: type.file.baseName,
171
+ path: type.file.path,
172
+ meta: type.file.meta,
173
+ banner: resolver.resolveBanner(adapter.rootNode, {
174
+ output,
175
+ config
176
+ }),
177
+ footer: resolver.resolveFooter(adapter.rootNode, {
178
+ output,
179
+ config
180
+ }),
181
+ children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
182
+ root: type.file.path,
183
+ path: imp.path,
184
+ name: imp.name,
185
+ isTypeOnly: true
186
+ }, [
187
+ node.name,
188
+ imp.path,
189
+ imp.isTypeOnly
190
+ ].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
191
+ name: type.name,
192
+ typedName: type.typedName,
193
+ node: transformedNode,
194
+ enumType,
195
+ enumKeyCasing,
196
+ optionalType,
197
+ arrayType,
198
+ syntaxType,
199
+ resolver
200
+ })]
201
+ });
202
+ }
203
+ });
204
+ //#endregion
205
+ //#region src/generators/typeGeneratorLegacy.tsx
143
206
  function buildGroupedParamsSchema({ params, parentName }) {
144
207
  return (0, _kubb_ast.createSchema)({
145
208
  type: "object",
@@ -161,13 +224,6 @@ function buildGroupedParamsSchema({ params, parentName }) {
161
224
  })
162
225
  });
163
226
  }
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
227
  function buildLegacyResponsesSchemaNode({ node, resolver }) {
172
228
  const isGet = node.method.toLowerCase() === "get";
173
229
  const successResponses = node.responses.filter((res) => {
@@ -242,12 +298,6 @@ function buildLegacyResponsesSchemaNode({ node, resolver }) {
242
298
  properties
243
299
  });
244
300
  }
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
301
  function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
252
302
  const successResponses = node.responses.filter((res) => {
253
303
  const code = Number(res.statusCode);
@@ -266,13 +316,6 @@ function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
266
316
  }))
267
317
  });
268
318
  }
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
319
  function nameUnnamedEnums(node, parentName) {
277
320
  return (0, _kubb_ast.transform)(node, {
278
321
  schema(n) {
@@ -298,20 +341,22 @@ function nameUnnamedEnums(node, parentName) {
298
341
  }
299
342
  });
300
343
  }
301
- //#endregion
302
- //#region src/generators/typeGenerator.tsx
303
- const typeGenerator = (0, _kubb_core.defineGenerator)({
304
- name: "typescript",
344
+ const typeGeneratorLegacy = (0, _kubb_core.defineGenerator)({
345
+ name: "typescript-legacy",
305
346
  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({
347
+ Operation({ node, adapter, options, config }) {
348
+ const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, resolver, transformers = [] } = options;
349
+ const root = node_path.default.resolve(config.root, config.output.path);
350
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
351
+ const file = resolver.resolveFile({
311
352
  name: node.operationId,
312
353
  extname: ".ts",
313
- mode,
314
- options: { group: group ? group.type === "tag" ? { tag: node.tags[0] ?? "default" } : { path: node.path } : void 0 }
354
+ tag: node.tags[0] ?? "default",
355
+ path: node.path
356
+ }, {
357
+ root,
358
+ output,
359
+ group
315
360
  });
316
361
  const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
317
362
  function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
@@ -319,10 +364,13 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
319
364
  const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
320
365
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
321
366
  name: resolver.default(schemaName, "type"),
322
- path: getFile({
367
+ path: resolver.resolveFile({
323
368
  name: schemaName,
324
- extname: ".ts",
325
- mode
369
+ extname: ".ts"
370
+ }, {
371
+ root,
372
+ output,
373
+ group
326
374
  }).path
327
375
  }));
328
376
  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, {
@@ -345,13 +393,15 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
345
393
  arrayType,
346
394
  syntaxType,
347
395
  resolver,
348
- keysToOmit,
349
- legacy: isKubbV4Compatibility
396
+ keysToOmit
350
397
  })] });
351
398
  }
352
- const responseTypes = isKubbV4Compatibility ? node.responses.map((res) => {
399
+ const pathParams = params.filter((p) => p.in === "path");
400
+ const queryParams = params.filter((p) => p.in === "query");
401
+ const headerParams = params.filter((p) => p.in === "header");
402
+ const responseTypes = node.responses.map((res) => {
353
403
  const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
354
- const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
404
+ const baseResponseName = require_resolverTsLegacy.resolverTsLegacy.resolveResponseStatusName(node, res.statusCode);
355
405
  return renderSchemaType({
356
406
  node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
357
407
  name: responseName,
@@ -359,172 +409,120 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
359
409
  description: res.description,
360
410
  keysToOmit: res.keysToOmit
361
411
  });
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
- }));
412
+ });
369
413
  const requestType = node.requestBody?.schema ? renderSchemaType({
370
- node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
414
+ node: nameUnnamedEnums(node.requestBody.schema, require_resolverTsLegacy.resolverTsLegacy.resolveDataName(node)),
371
415
  name: resolver.resolveDataName(node),
372
416
  typedName: resolver.resolveDataTypedName(node),
373
417
  description: node.requestBody.description ?? node.requestBody.schema.description,
374
418
  keysToOmit: node.requestBody.keysToOmit
375
419
  }) : 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
420
+ const legacyParamTypes = [
421
+ pathParams.length > 0 ? renderSchemaType({
422
+ node: buildGroupedParamsSchema({
423
+ params: pathParams,
424
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolvePathParamsName(node)
410
425
  }),
411
- name: resolver.resolveResponsesName(node),
412
- typedName: resolver.resolveResponsesTypedName(node)
413
- });
414
- const legacyResponseType = renderSchemaType({
415
- node: buildLegacyResponseUnionSchemaNode({
416
- node,
417
- resolver
426
+ name: resolver.resolvePathParamsName(node),
427
+ typedName: resolver.resolvePathParamsTypedName(node)
428
+ }) : null,
429
+ queryParams.length > 0 ? renderSchemaType({
430
+ node: buildGroupedParamsSchema({
431
+ params: queryParams,
432
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolveQueryParamsName(node)
418
433
  }),
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({
434
+ name: resolver.resolveQueryParamsName(node),
435
+ typedName: resolver.resolveQueryParamsTypedName(node)
436
+ }) : null,
437
+ headerParams.length > 0 ? renderSchemaType({
438
+ node: buildGroupedParamsSchema({
439
+ params: headerParams,
440
+ parentName: require_resolverTsLegacy.resolverTsLegacy.resolveHeaderParamsName(node)
441
+ }),
442
+ name: resolver.resolveHeaderParamsName(node),
443
+ typedName: resolver.resolveHeaderParamsTypedName(node)
444
+ }) : null
445
+ ];
446
+ const legacyResponsesType = renderSchemaType({
447
+ node: buildLegacyResponsesSchemaNode({
465
448
  node,
466
449
  resolver
467
450
  }),
468
451
  name: resolver.resolveResponsesName(node),
469
452
  typedName: resolver.resolveResponsesTypedName(node)
470
453
  });
471
- const responseType = renderSchemaType({
472
- node: buildResponseUnionSchemaNode({
454
+ const legacyResponseType = renderSchemaType({
455
+ node: buildLegacyResponseUnionSchemaNode({
473
456
  node,
474
457
  resolver
475
458
  }),
476
459
  name: resolver.resolveResponseName(node),
477
- typedName: resolver.resolveResponseTypedName(node),
478
- description: "Union of all possible responses"
460
+ typedName: resolver.resolveResponseTypedName(node)
479
461
  });
480
462
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
481
463
  baseName: file.baseName,
482
464
  path: file.path,
483
465
  meta: file.meta,
484
- banner: resolveBanner(),
485
- footer: resolveFooter(),
466
+ banner: resolver.resolveBanner(adapter.rootNode, {
467
+ output,
468
+ config
469
+ }),
470
+ footer: resolver.resolveFooter(adapter.rootNode, {
471
+ output,
472
+ config
473
+ }),
486
474
  children: [
487
- paramTypes,
488
- queryParamsType,
475
+ legacyParamTypes,
489
476
  responseTypes,
490
477
  requestType,
491
- dataType,
492
- responsesType,
493
- responseType
478
+ legacyResponseType,
479
+ legacyResponsesType
494
480
  ]
495
481
  });
496
482
  },
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)();
483
+ Schema({ node, adapter, options, config }) {
484
+ const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, resolver, transformers = [] } = options;
485
+ const root = node_path.default.resolve(config.root, config.output.path);
486
+ const mode = (0, _kubb_core.getMode)(node_path.default.resolve(root, output.path));
501
487
  if (!node.name) return;
502
488
  const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
503
489
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
504
490
  name: resolver.default(schemaName, "type"),
505
- path: getFile({
491
+ path: resolver.resolveFile({
506
492
  name: schemaName,
507
- extname: ".ts",
508
- mode
493
+ extname: ".ts"
494
+ }, {
495
+ root,
496
+ output,
497
+ group
509
498
  }).path
510
499
  }));
511
500
  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);
501
+ const typedName = require_printerTs.ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyTypedName(node) : resolver.resolveTypedName(node.name);
513
502
  const type = {
514
503
  name: resolver.resolveName(node.name),
515
504
  typedName,
516
- file: getFile({
505
+ file: resolver.resolveFile({
517
506
  name: node.name,
518
- extname: ".ts",
519
- mode
507
+ extname: ".ts"
508
+ }, {
509
+ root,
510
+ output,
511
+ group
520
512
  })
521
513
  };
522
514
  return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
523
515
  baseName: type.file.baseName,
524
516
  path: type.file.path,
525
517
  meta: type.file.meta,
526
- banner: resolveBanner(),
527
- footer: resolveFooter(),
518
+ banner: resolver.resolveBanner(adapter.rootNode, {
519
+ output,
520
+ config
521
+ }),
522
+ footer: resolver.resolveFooter(adapter.rootNode, {
523
+ output,
524
+ config
525
+ }),
528
526
  children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
529
527
  root: type.file.path,
530
528
  path: imp.path,
@@ -543,8 +541,7 @@ const typeGenerator = (0, _kubb_core.defineGenerator)({
543
541
  optionalType,
544
542
  arrayType,
545
543
  syntaxType,
546
- resolver,
547
- legacy: isKubbV4Compatibility
544
+ resolver
548
545
  })]
549
546
  });
550
547
  }
@@ -556,5 +553,11 @@ Object.defineProperty(exports, "typeGenerator", {
556
553
  return typeGenerator;
557
554
  }
558
555
  });
556
+ Object.defineProperty(exports, "typeGeneratorLegacy", {
557
+ enumerable: true,
558
+ get: function() {
559
+ return typeGeneratorLegacy;
560
+ }
561
+ });
559
562
 
560
- //# sourceMappingURL=generators-xHWQCNd9.cjs.map
563
+ //# sourceMappingURL=generators-aSsiTfUO.cjs.map