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

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 (57) hide show
  1. package/dist/Type-B70QnSzH.cjs +688 -0
  2. package/dist/Type-B70QnSzH.cjs.map +1 -0
  3. package/dist/Type-CMC7L-38.js +671 -0
  4. package/dist/Type-CMC7L-38.js.map +1 -0
  5. package/dist/casing-Cp-jbC_k.js +84 -0
  6. package/dist/casing-Cp-jbC_k.js.map +1 -0
  7. package/dist/casing-D2uQKLWS.cjs +144 -0
  8. package/dist/casing-D2uQKLWS.cjs.map +1 -0
  9. package/dist/components.cjs +3 -2
  10. package/dist/components.d.ts +41 -11
  11. package/dist/components.js +2 -2
  12. package/dist/generators-BFkr7ecU.js +556 -0
  13. package/dist/generators-BFkr7ecU.js.map +1 -0
  14. package/dist/generators-xHWQCNd9.cjs +560 -0
  15. package/dist/generators-xHWQCNd9.cjs.map +1 -0
  16. package/dist/generators.cjs +2 -2
  17. package/dist/generators.d.ts +3 -491
  18. package/dist/generators.js +1 -1
  19. package/dist/index.cjs +146 -3
  20. package/dist/index.cjs.map +1 -0
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js +145 -1
  23. package/dist/index.js.map +1 -0
  24. package/dist/resolvers-DsKabI0F.js +184 -0
  25. package/dist/resolvers-DsKabI0F.js.map +1 -0
  26. package/dist/resolvers-YIpeP5YD.cjs +194 -0
  27. package/dist/resolvers-YIpeP5YD.cjs.map +1 -0
  28. package/dist/resolvers.cjs +4 -0
  29. package/dist/resolvers.d.ts +52 -0
  30. package/dist/resolvers.js +2 -0
  31. package/dist/types-zqLMbIqZ.d.ts +340 -0
  32. package/package.json +15 -8
  33. package/src/components/Enum.tsx +83 -0
  34. package/src/components/Type.tsx +25 -144
  35. package/src/components/index.ts +1 -0
  36. package/src/constants.ts +29 -0
  37. package/src/factory.ts +14 -16
  38. package/src/generators/typeGenerator.tsx +221 -414
  39. package/src/generators/utils.ts +308 -0
  40. package/src/index.ts +1 -1
  41. package/src/plugin.ts +74 -87
  42. package/src/presets.ts +23 -0
  43. package/src/printer.ts +256 -92
  44. package/src/resolvers/index.ts +2 -0
  45. package/src/resolvers/resolverTs.ts +104 -0
  46. package/src/resolvers/resolverTsLegacy.ts +87 -0
  47. package/src/types.ts +234 -63
  48. package/dist/components-9wydyqUx.cjs +0 -848
  49. package/dist/components-9wydyqUx.cjs.map +0 -1
  50. package/dist/components-LmqJfxMv.js +0 -721
  51. package/dist/components-LmqJfxMv.js.map +0 -1
  52. package/dist/plugin-CNkzbtpl.cjs +0 -508
  53. package/dist/plugin-CNkzbtpl.cjs.map +0 -1
  54. package/dist/plugin-DoLrDl9P.js +0 -476
  55. package/dist/plugin-DoLrDl9P.js.map +0 -1
  56. package/dist/types-BpeKGgCn.d.ts +0 -170
  57. package/src/parser.ts +0 -396
@@ -0,0 +1,560 @@
1
+ const require_casing = require("./casing-D2uQKLWS.cjs");
2
+ const require_Type = require("./Type-B70QnSzH.cjs");
3
+ let _kubb_ast = require("@kubb/ast");
4
+ let _kubb_core = require("@kubb/core");
5
+ let _kubb_core_hooks = require("@kubb/core/hooks");
6
+ let _kubb_react_fabric = require("@kubb/react-fabric");
7
+ 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
+ })
54
+ }),
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" })
63
+ }),
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
+ })
77
+ }),
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
+ })
91
+ }),
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)
118
+ })
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
+ */
143
+ function buildGroupedParamsSchema({ params, parentName }) {
144
+ return (0, _kubb_ast.createSchema)({
145
+ type: "object",
146
+ properties: params.map((param) => {
147
+ let schema = param.schema;
148
+ if ((0, _kubb_ast.narrowSchema)(schema, "enum") && !schema.name && parentName) schema = {
149
+ ...schema,
150
+ name: require_casing.pascalCase([
151
+ parentName,
152
+ param.name,
153
+ "enum"
154
+ ].join(" "))
155
+ };
156
+ return (0, _kubb_ast.createProperty)({
157
+ name: param.name,
158
+ required: param.required,
159
+ schema
160
+ });
161
+ })
162
+ });
163
+ }
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
+ function buildLegacyResponsesSchemaNode({ node, resolver }) {
172
+ const isGet = node.method.toLowerCase() === "get";
173
+ const successResponses = node.responses.filter((res) => {
174
+ const code = Number(res.statusCode);
175
+ return !Number.isNaN(code) && code >= 200 && code < 300;
176
+ });
177
+ const errorResponses = node.responses.filter((res) => res.statusCode === "default" || Number(res.statusCode) >= 400);
178
+ const responseSchema = successResponses.length > 0 ? successResponses.length === 1 ? (0, _kubb_ast.createSchema)({
179
+ type: "ref",
180
+ name: resolver.resolveResponseStatusTypedName(node, successResponses[0].statusCode)
181
+ }) : (0, _kubb_ast.createSchema)({
182
+ type: "union",
183
+ members: successResponses.map((res) => (0, _kubb_ast.createSchema)({
184
+ type: "ref",
185
+ name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
186
+ }))
187
+ }) : (0, _kubb_ast.createSchema)({ type: "any" });
188
+ const errorsSchema = errorResponses.length > 0 ? errorResponses.length === 1 ? (0, _kubb_ast.createSchema)({
189
+ type: "ref",
190
+ name: resolver.resolveResponseStatusTypedName(node, errorResponses[0].statusCode)
191
+ }) : (0, _kubb_ast.createSchema)({
192
+ type: "union",
193
+ members: errorResponses.map((res) => (0, _kubb_ast.createSchema)({
194
+ type: "ref",
195
+ name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
196
+ }))
197
+ }) : (0, _kubb_ast.createSchema)({ type: "any" });
198
+ const properties = [(0, _kubb_ast.createProperty)({
199
+ name: "Response",
200
+ required: true,
201
+ schema: responseSchema
202
+ })];
203
+ if (!isGet && node.requestBody?.schema) properties.push((0, _kubb_ast.createProperty)({
204
+ name: "Request",
205
+ required: true,
206
+ schema: (0, _kubb_ast.createSchema)({
207
+ type: "ref",
208
+ name: resolver.resolveDataTypedName(node)
209
+ })
210
+ }));
211
+ if (node.parameters.some((p) => p.in === "query") && resolver.resolveQueryParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
212
+ name: "QueryParams",
213
+ required: true,
214
+ schema: (0, _kubb_ast.createSchema)({
215
+ type: "ref",
216
+ name: resolver.resolveQueryParamsTypedName(node)
217
+ })
218
+ }));
219
+ if (node.parameters.some((p) => p.in === "path") && resolver.resolvePathParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
220
+ name: "PathParams",
221
+ required: true,
222
+ schema: (0, _kubb_ast.createSchema)({
223
+ type: "ref",
224
+ name: resolver.resolvePathParamsTypedName(node)
225
+ })
226
+ }));
227
+ if (node.parameters.some((p) => p.in === "header") && resolver.resolveHeaderParamsTypedName) properties.push((0, _kubb_ast.createProperty)({
228
+ name: "HeaderParams",
229
+ required: true,
230
+ schema: (0, _kubb_ast.createSchema)({
231
+ type: "ref",
232
+ name: resolver.resolveHeaderParamsTypedName(node)
233
+ })
234
+ }));
235
+ properties.push((0, _kubb_ast.createProperty)({
236
+ name: "Errors",
237
+ required: true,
238
+ schema: errorsSchema
239
+ }));
240
+ return (0, _kubb_ast.createSchema)({
241
+ type: "object",
242
+ properties
243
+ });
244
+ }
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
+ function buildLegacyResponseUnionSchemaNode({ node, resolver }) {
252
+ const successResponses = node.responses.filter((res) => {
253
+ const code = Number(res.statusCode);
254
+ return !Number.isNaN(code) && code >= 200 && code < 300;
255
+ });
256
+ if (successResponses.length === 0) return (0, _kubb_ast.createSchema)({ type: "any" });
257
+ if (successResponses.length === 1) return (0, _kubb_ast.createSchema)({
258
+ type: "ref",
259
+ name: resolver.resolveResponseStatusTypedName(node, successResponses[0].statusCode)
260
+ });
261
+ return (0, _kubb_ast.createSchema)({
262
+ type: "union",
263
+ members: successResponses.map((res) => (0, _kubb_ast.createSchema)({
264
+ type: "ref",
265
+ name: resolver.resolveResponseStatusTypedName(node, res.statusCode)
266
+ }))
267
+ });
268
+ }
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
+ function nameUnnamedEnums(node, parentName) {
277
+ return (0, _kubb_ast.transform)(node, {
278
+ schema(n) {
279
+ const enumNode = (0, _kubb_ast.narrowSchema)(n, "enum");
280
+ if (enumNode && !enumNode.name) return {
281
+ ...enumNode,
282
+ name: require_casing.pascalCase([parentName, "enum"].join(" "))
283
+ };
284
+ },
285
+ property(p) {
286
+ const enumNode = (0, _kubb_ast.narrowSchema)(p.schema, "enum");
287
+ if (enumNode && !enumNode.name) return {
288
+ ...p,
289
+ schema: {
290
+ ...enumNode,
291
+ name: require_casing.pascalCase([
292
+ parentName,
293
+ p.name,
294
+ "enum"
295
+ ].join(" "))
296
+ }
297
+ };
298
+ }
299
+ });
300
+ }
301
+ //#endregion
302
+ //#region src/generators/typeGenerator.tsx
303
+ const typeGenerator = (0, _kubb_core.defineGenerator)({
304
+ name: "typescript",
305
+ 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({
311
+ name: node.operationId,
312
+ extname: ".ts",
313
+ mode,
314
+ options: { group: group ? group.type === "tag" ? { tag: node.tags[0] ?? "default" } : { path: node.path } : void 0 }
315
+ });
316
+ const params = (0, _kubb_ast.caseParams)(node.parameters, paramsCasing);
317
+ function renderSchemaType({ node: schemaNode, name, typedName, description, keysToOmit }) {
318
+ if (!schemaNode) return null;
319
+ const transformedNode = (0, _kubb_ast.transform)(schemaNode, (0, _kubb_ast.composeTransformers)(...transformers));
320
+ const imports = adapter.getImports(transformedNode, (schemaName) => ({
321
+ name: resolver.default(schemaName, "type"),
322
+ path: getFile({
323
+ name: schemaName,
324
+ extname: ".ts",
325
+ mode
326
+ }).path
327
+ }));
328
+ 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, {
329
+ root: file.path,
330
+ path: imp.path,
331
+ name: imp.name,
332
+ isTypeOnly: true
333
+ }, [
334
+ name,
335
+ imp.path,
336
+ imp.isTypeOnly
337
+ ].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
338
+ name,
339
+ typedName,
340
+ node: transformedNode,
341
+ description,
342
+ enumType,
343
+ enumKeyCasing,
344
+ optionalType,
345
+ arrayType,
346
+ syntaxType,
347
+ resolver,
348
+ keysToOmit,
349
+ legacy: isKubbV4Compatibility
350
+ })] });
351
+ }
352
+ const responseTypes = isKubbV4Compatibility ? node.responses.map((res) => {
353
+ const responseName = resolver.resolveResponseStatusName(node, res.statusCode);
354
+ const baseResponseName = baseResolver.resolveResponseStatusName(node, res.statusCode);
355
+ return renderSchemaType({
356
+ node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
357
+ name: responseName,
358
+ typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
359
+ description: res.description,
360
+ keysToOmit: res.keysToOmit
361
+ });
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
+ }));
369
+ const requestType = node.requestBody?.schema ? renderSchemaType({
370
+ node: isKubbV4Compatibility ? nameUnnamedEnums(node.requestBody.schema, baseResolver.resolveDataName(node)) : node.requestBody.schema,
371
+ name: resolver.resolveDataName(node),
372
+ typedName: resolver.resolveDataTypedName(node),
373
+ description: node.requestBody.description ?? node.requestBody.schema.description,
374
+ keysToOmit: node.requestBody.keysToOmit
375
+ }) : 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
410
+ }),
411
+ name: resolver.resolveResponsesName(node),
412
+ typedName: resolver.resolveResponsesTypedName(node)
413
+ });
414
+ const legacyResponseType = renderSchemaType({
415
+ node: buildLegacyResponseUnionSchemaNode({
416
+ node,
417
+ resolver
418
+ }),
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({
465
+ node,
466
+ resolver
467
+ }),
468
+ name: resolver.resolveResponsesName(node),
469
+ typedName: resolver.resolveResponsesTypedName(node)
470
+ });
471
+ const responseType = renderSchemaType({
472
+ node: buildResponseUnionSchemaNode({
473
+ node,
474
+ resolver
475
+ }),
476
+ name: resolver.resolveResponseName(node),
477
+ typedName: resolver.resolveResponseTypedName(node),
478
+ description: "Union of all possible responses"
479
+ });
480
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
481
+ baseName: file.baseName,
482
+ path: file.path,
483
+ meta: file.meta,
484
+ banner: resolveBanner(),
485
+ footer: resolveFooter(),
486
+ children: [
487
+ paramTypes,
488
+ queryParamsType,
489
+ responseTypes,
490
+ requestType,
491
+ dataType,
492
+ responsesType,
493
+ responseType
494
+ ]
495
+ });
496
+ },
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)();
501
+ if (!node.name) return;
502
+ const transformedNode = (0, _kubb_ast.transform)(node, (0, _kubb_ast.composeTransformers)(...transformers));
503
+ const imports = adapter.getImports(transformedNode, (schemaName) => ({
504
+ name: resolver.default(schemaName, "type"),
505
+ path: getFile({
506
+ name: schemaName,
507
+ extname: ".ts",
508
+ mode
509
+ }).path
510
+ }));
511
+ 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);
513
+ const type = {
514
+ name: resolver.resolveName(node.name),
515
+ typedName,
516
+ file: getFile({
517
+ name: node.name,
518
+ extname: ".ts",
519
+ mode
520
+ })
521
+ };
522
+ return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File, {
523
+ baseName: type.file.baseName,
524
+ path: type.file.path,
525
+ meta: type.file.meta,
526
+ banner: resolveBanner(),
527
+ footer: resolveFooter(),
528
+ children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.File.Import, {
529
+ root: type.file.path,
530
+ path: imp.path,
531
+ name: imp.name,
532
+ isTypeOnly: true
533
+ }, [
534
+ node.name,
535
+ imp.path,
536
+ imp.isTypeOnly
537
+ ].join("-"))), /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(require_Type.Type, {
538
+ name: type.name,
539
+ typedName: type.typedName,
540
+ node: transformedNode,
541
+ enumType,
542
+ enumKeyCasing,
543
+ optionalType,
544
+ arrayType,
545
+ syntaxType,
546
+ resolver,
547
+ legacy: isKubbV4Compatibility
548
+ })]
549
+ });
550
+ }
551
+ });
552
+ //#endregion
553
+ Object.defineProperty(exports, "typeGenerator", {
554
+ enumerable: true,
555
+ get: function() {
556
+ return typeGenerator;
557
+ }
558
+ });
559
+
560
+ //# sourceMappingURL=generators-xHWQCNd9.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generators-xHWQCNd9.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,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_plugin = require("./plugin-CNkzbtpl.cjs");
3
- exports.typeGenerator = require_plugin.typeGenerator;
2
+ const require_generators = require("./generators-xHWQCNd9.cjs");
3
+ exports.typeGenerator = require_generators.typeGenerator;