@kubb/agent 5.0.0-alpha.25 → 5.0.0-alpha.27

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.
@@ -5994,6 +5994,9 @@ var PluginDriver = (_d = class {
5994
5994
  get resolver() {
5995
5995
  return plugin.resolver;
5996
5996
  },
5997
+ get transformer() {
5998
+ return plugin.transformer;
5999
+ },
5997
6000
  openInStudio(options) {
5998
6001
  var _a2, _b2;
5999
6002
  if (!driver.config.devtools || __privateGet$c(driver, _studioIsOpen)) return;
@@ -6320,7 +6323,7 @@ const fsStorage = createStorage(() => ({
6320
6323
  await clean(resolve(base));
6321
6324
  }
6322
6325
  }));
6323
- var version$1 = "5.0.0-alpha.25";
6326
+ var version$1 = "5.0.0-alpha.27";
6324
6327
  function getDiagnosticInfo() {
6325
6328
  return {
6326
6329
  nodeVersion: version$2,
@@ -7273,25 +7276,34 @@ async function getConfigs(config, args) {
7273
7276
  ...item
7274
7277
  }));
7275
7278
  }
7276
- function mergeResolvers(...resolvers) {
7277
- return resolvers.reduce((acc, curr) => ({
7278
- ...acc,
7279
- ...curr
7280
- }), resolvers[0]);
7279
+ function withFallback(defaults, userOverrides) {
7280
+ const merged = { ...defaults };
7281
+ for (const key of Object.keys(userOverrides)) {
7282
+ const userVal = userOverrides[key];
7283
+ const defaultVal = defaults[key];
7284
+ if (typeof userVal === "function" && typeof defaultVal === "function") merged[key] = (...args) => {
7285
+ var _a2;
7286
+ return (_a2 = userVal.apply(merged, args)) != null ? _a2 : defaultVal.apply(merged, args);
7287
+ };
7288
+ else if (userVal !== void 0) merged[key] = userVal;
7289
+ }
7290
+ return merged;
7281
7291
  }
7282
7292
  function getPreset(params) {
7283
7293
  var _a2, _b2, _c2, _d2, _e2;
7284
- const { preset: presetName, presets, resolvers = [], transformers: userTransformers = [], generators: userGenerators = [] } = params;
7285
- const [defaultResolver2, ...userResolvers] = resolvers;
7294
+ const { preset: presetName, presets, resolver: userResolver, transformer: userTransformer, generators: userGenerators = [] } = params;
7286
7295
  const preset = presets[presetName];
7287
- const resolver = mergeResolvers(mergeResolvers(defaultResolver2, ...(_a2 = preset == null ? void 0 : preset.resolvers) != null ? _a2 : []), ...userResolvers != null ? userResolvers : []);
7288
- const transformers = [...(_b2 = preset == null ? void 0 : preset.transformers) != null ? _b2 : [], ...userTransformers != null ? userTransformers : []];
7296
+ const presetResolver = (_a2 = preset == null ? void 0 : preset.resolver) != null ? _a2 : presets["default"].resolver;
7297
+ const resolver = userResolver ? withFallback(presetResolver, userResolver) : presetResolver;
7298
+ const presetTransformers = (_b2 = preset == null ? void 0 : preset.transformers) != null ? _b2 : [];
7299
+ const presetTransformer = presetTransformers.length > 0 ? composeTransformers(...presetTransformers) : void 0;
7300
+ const transformer = presetTransformer && userTransformer ? withFallback(presetTransformer, userTransformer) : userTransformer != null ? userTransformer : presetTransformer;
7289
7301
  const presetGenerators = (_c2 = preset == null ? void 0 : preset.generators) != null ? _c2 : [];
7290
- const defaultPresetGenerators = (_e2 = (_d2 = presets["default"]) == null ? void 0 : _d2.generators) != null ? _e2 : [];
7302
+ const defaultGenerators = (_e2 = (_d2 = presets["default"]) == null ? void 0 : _d2.generators) != null ? _e2 : [];
7291
7303
  return {
7292
7304
  resolver,
7293
- transformers,
7294
- generators: presetGenerators.length > 0 || userGenerators.length ? [...presetGenerators, ...userGenerators] : defaultPresetGenerators,
7305
+ transformer,
7306
+ generators: presetGenerators.length > 0 || userGenerators.length > 0 ? [...presetGenerators, ...userGenerators] : defaultGenerators,
7295
7307
  preset
7296
7308
  };
7297
7309
  }
@@ -7313,7 +7325,7 @@ async function detectLinter() {
7313
7325
  return null;
7314
7326
  }
7315
7327
 
7316
- var version = "5.0.0-alpha.25";
7328
+ var version = "5.0.0-alpha.27";
7317
7329
 
7318
7330
  function isCommandMessage(msg) {
7319
7331
  return msg.type === "command";
@@ -10042,7 +10054,7 @@ function Client({ name, isExportable = true, isIndexable = true, returnType, typ
10042
10054
  const path = new URLPath$7(operation.path);
10043
10055
  const contentType = operation.getContentType();
10044
10056
  const isFormData = contentType === "multipart/form-data";
10045
- const pathParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : void 0;
10057
+ const pathParamsMapping = paramsCasing && !urlName ? getParamsMapping(typeSchemas.pathParams, { casing: paramsCasing }) : void 0;
10046
10058
  const queryParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.queryParams, { casing: paramsCasing }) : void 0;
10047
10059
  const headerParamsMapping = paramsCasing ? getParamsMapping(typeSchemas.headerParams, { casing: paramsCasing }) : void 0;
10048
10060
  const headers = [contentType !== "application/json" && contentType !== "multipart/form-data" ? `'Content-Type': '${contentType}'` : void 0, ((_a2 = typeSchemas.headerParams) == null ? void 0 : _a2.name) ? headerParamsMapping ? "...mappedHeaders" : "...headers" : void 0].filter(Boolean);
@@ -10507,6 +10519,31 @@ function Operations({ name, operations }) {
10507
10519
  })
10508
10520
  ] });
10509
10521
  }
10522
+ function Zod({ name, node, printer, inferTypeName }) {
10523
+ const output = printer.print(node);
10524
+ if (!output) return;
10525
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File.Source, {
10526
+ name,
10527
+ isExportable: true,
10528
+ isIndexable: true,
10529
+ children: /* @__PURE__ */ jsx(Const, {
10530
+ export: true,
10531
+ name,
10532
+ children: output
10533
+ })
10534
+ }), inferTypeName && /* @__PURE__ */ jsx(File.Source, {
10535
+ name: inferTypeName,
10536
+ isExportable: true,
10537
+ isIndexable: true,
10538
+ isTypeOnly: true,
10539
+ children: /* @__PURE__ */ jsx(Type$1, {
10540
+ export: true,
10541
+ name: inferTypeName,
10542
+ children: `z.infer<typeof ${name}>`
10543
+ })
10544
+ })] });
10545
+ }
10546
+ const ZOD_NAMESPACE_IMPORTS = /* @__PURE__ */ new Set(["zod", "zod/mini"]);
10510
10547
  function shouldCoerce(coercion, type) {
10511
10548
  if (coercion === void 0 || coercion === false) return false;
10512
10549
  if (coercion === true) return true;
@@ -10786,7 +10823,8 @@ const printerZod = definePrinter((options) => {
10786
10823
  if (transformed) base = `${base}.and(${transformed})`;
10787
10824
  }
10788
10825
  return base;
10789
- }
10826
+ },
10827
+ ...options.nodes
10790
10828
  },
10791
10829
  print(node) {
10792
10830
  const { keysToOmit } = this.options;
@@ -10805,37 +10843,6 @@ const printerZod = definePrinter((options) => {
10805
10843
  }
10806
10844
  };
10807
10845
  });
10808
- function Zod({ name, node, coercion, guidType, wrapOutput, inferTypeName, resolver, keysToOmit }) {
10809
- const output = printerZod({
10810
- coercion,
10811
- guidType,
10812
- wrapOutput,
10813
- resolver,
10814
- schemaName: name,
10815
- keysToOmit
10816
- }).print(node);
10817
- if (!output) return;
10818
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File.Source, {
10819
- name,
10820
- isExportable: true,
10821
- isIndexable: true,
10822
- children: /* @__PURE__ */ jsx(Const, {
10823
- export: true,
10824
- name,
10825
- children: output
10826
- })
10827
- }), inferTypeName && /* @__PURE__ */ jsx(File.Source, {
10828
- name: inferTypeName,
10829
- isExportable: true,
10830
- isIndexable: true,
10831
- isTypeOnly: true,
10832
- children: /* @__PURE__ */ jsx(Type$1, {
10833
- export: true,
10834
- name: inferTypeName,
10835
- children: `z.infer<typeof ${name}>`
10836
- })
10837
- })] });
10838
- }
10839
10846
  const printerZodMini = definePrinter((options) => {
10840
10847
  return {
10841
10848
  name: "zod-mini",
@@ -10981,7 +10988,8 @@ const printerZodMini = definePrinter((options) => {
10981
10988
  if (transformed) base = `z.intersection(${base}, ${transformed})`;
10982
10989
  }
10983
10990
  return base;
10984
- }
10991
+ },
10992
+ ...options.nodes
10985
10993
  },
10986
10994
  print(node) {
10987
10995
  const { keysToOmit } = this.options;
@@ -10999,49 +11007,18 @@ const printerZodMini = definePrinter((options) => {
10999
11007
  }
11000
11008
  };
11001
11009
  });
11002
- function ZodMini({ name, node, guidType, wrapOutput, inferTypeName, resolver, keysToOmit }) {
11003
- const output = printerZodMini({
11004
- guidType,
11005
- wrapOutput,
11006
- resolver,
11007
- schemaName: name,
11008
- keysToOmit
11009
- }).print(node);
11010
- if (!output) return;
11011
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(File.Source, {
11012
- name,
11013
- isExportable: true,
11014
- isIndexable: true,
11015
- children: /* @__PURE__ */ jsx(Const, {
11016
- export: true,
11017
- name,
11018
- children: output
11019
- })
11020
- }), inferTypeName && /* @__PURE__ */ jsx(File.Source, {
11021
- name: inferTypeName,
11022
- isExportable: true,
11023
- isIndexable: true,
11024
- isTypeOnly: true,
11025
- children: /* @__PURE__ */ jsx(Type$1, {
11026
- export: true,
11027
- name: inferTypeName,
11028
- children: `z.infer<typeof ${name}>`
11029
- })
11030
- })] });
11031
- }
11032
- const ZOD_NAMESPACE_IMPORTS = /* @__PURE__ */ new Set(["zod", "zod/mini"]);
11033
11010
  const zodGenerator = defineGenerator({
11034
11011
  name: "zod",
11035
11012
  type: "react",
11036
- Schema({ node, adapter, options, config, resolver }) {
11037
- const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, transformers = [] } = options;
11038
- const transformedNode = transform(node, composeTransformers(...transformers));
11013
+ Schema({ node, adapter, options, config, resolver, plugin }) {
11014
+ const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, printer } = options;
11015
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11039
11016
  if (!transformedNode.name) return;
11040
11017
  const root = path$2.resolve(config.root, config.output.path);
11041
11018
  const mode = getMode(path$2.resolve(root, output.path));
11042
11019
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
11043
11020
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
11044
- name: resolver.default(schemaName, "function"),
11021
+ name: resolver.resolveSchemaName(schemaName),
11045
11022
  path: resolver.resolveFile({
11046
11023
  name: schemaName,
11047
11024
  extname: ".ts"
@@ -11051,9 +11028,8 @@ const zodGenerator = defineGenerator({
11051
11028
  group
11052
11029
  }).path
11053
11030
  }));
11054
- const inferTypeName = inferred ? resolver.resolveInferName(resolver.resolveName(transformedNode.name)) : void 0;
11055
11031
  const meta = {
11056
- name: resolver.default(transformedNode.name, "function"),
11032
+ name: resolver.resolveSchemaName(transformedNode.name),
11057
11033
  file: resolver.resolveFile({
11058
11034
  name: transformedNode.name,
11059
11035
  extname: ".ts"
@@ -11063,6 +11039,21 @@ const zodGenerator = defineGenerator({
11063
11039
  group
11064
11040
  })
11065
11041
  };
11042
+ const inferTypeName = inferred ? resolver.resolveSchemaTypeName(transformedNode.name) : void 0;
11043
+ const schemaPrinter = mini ? printerZodMini({
11044
+ guidType,
11045
+ wrapOutput,
11046
+ resolver,
11047
+ schemaName: meta.name,
11048
+ nodes: printer == null ? void 0 : printer.nodes
11049
+ }) : printerZod({
11050
+ coercion,
11051
+ guidType,
11052
+ wrapOutput,
11053
+ resolver,
11054
+ schemaName: meta.name,
11055
+ nodes: printer == null ? void 0 : printer.nodes
11056
+ });
11066
11057
  return /* @__PURE__ */ jsxs(File, {
11067
11058
  baseName: meta.file.baseName,
11068
11059
  path: meta.file.path,
@@ -11086,29 +11077,19 @@ const zodGenerator = defineGenerator({
11086
11077
  path: imp.path,
11087
11078
  name: imp.name
11088
11079
  }, [transformedNode.name, imp.path].join("-"))),
11089
- mini ? /* @__PURE__ */ jsx(ZodMini, {
11090
- name: meta.name,
11091
- node: transformedNode,
11092
- guidType,
11093
- wrapOutput,
11094
- inferTypeName,
11095
- resolver
11096
- }) : /* @__PURE__ */ jsx(Zod, {
11080
+ /* @__PURE__ */ jsx(Zod, {
11097
11081
  name: meta.name,
11098
11082
  node: transformedNode,
11099
- coercion,
11100
- guidType,
11101
- wrapOutput,
11102
- inferTypeName,
11103
- resolver
11083
+ printer: schemaPrinter,
11084
+ inferTypeName
11104
11085
  })
11105
11086
  ]
11106
11087
  });
11107
11088
  },
11108
- Operation({ node, adapter, options, config, resolver }) {
11089
+ Operation({ node, adapter, options, config, resolver, plugin }) {
11109
11090
  var _a, _b, _c;
11110
- const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, transformers } = options;
11111
- const transformedNode = transform(node, composeTransformers(...transformers));
11091
+ const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, printer } = options;
11092
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11112
11093
  const root = path$2.resolve(config.root, config.output.path);
11113
11094
  const mode = getMode(path$2.resolve(root, output.path));
11114
11095
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
@@ -11125,9 +11106,9 @@ const zodGenerator = defineGenerator({
11125
11106
  }) };
11126
11107
  function renderSchemaEntry({ schema, name, keysToOmit }) {
11127
11108
  if (!schema) return null;
11128
- const inferTypeName = inferred ? resolver.resolveInferName(name) : void 0;
11109
+ const inferTypeName = inferred ? resolver.resolveTypeName(name) : void 0;
11129
11110
  const imports = adapter.getImports(schema, (schemaName) => ({
11130
- name: resolver.default(schemaName, "function"),
11111
+ name: resolver.resolveSchemaName(schemaName),
11131
11112
  path: resolver.resolveFile({
11132
11113
  name: schemaName,
11133
11114
  extname: ".ts"
@@ -11137,6 +11118,22 @@ const zodGenerator = defineGenerator({
11137
11118
  group
11138
11119
  }).path
11139
11120
  }));
11121
+ const schemaPrinter = mini ? printerZodMini({
11122
+ guidType,
11123
+ wrapOutput,
11124
+ resolver,
11125
+ schemaName: name,
11126
+ keysToOmit,
11127
+ nodes: printer == null ? void 0 : printer.nodes
11128
+ }) : printerZod({
11129
+ coercion,
11130
+ guidType,
11131
+ wrapOutput,
11132
+ resolver,
11133
+ schemaName: name,
11134
+ keysToOmit,
11135
+ nodes: printer == null ? void 0 : printer.nodes
11136
+ });
11140
11137
  return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
11141
11138
  root: meta.file.path,
11142
11139
  path: imp.path,
@@ -11145,23 +11142,11 @@ const zodGenerator = defineGenerator({
11145
11142
  name,
11146
11143
  imp.path,
11147
11144
  imp.name
11148
- ].join("-"))), mini ? /* @__PURE__ */ jsx(ZodMini, {
11149
- name,
11150
- node: schema,
11151
- guidType,
11152
- wrapOutput,
11153
- inferTypeName,
11154
- resolver,
11155
- keysToOmit
11156
- }) : /* @__PURE__ */ jsx(Zod, {
11145
+ ].join("-"))), /* @__PURE__ */ jsx(Zod, {
11157
11146
  name,
11158
11147
  node: schema,
11159
- coercion,
11160
- guidType,
11161
- wrapOutput,
11162
- inferTypeName,
11163
- resolver,
11164
- keysToOmit
11148
+ printer: schemaPrinter,
11149
+ inferTypeName
11165
11150
  })] });
11166
11151
  }
11167
11152
  const paramSchemas = params.map((param) => renderSchemaEntry({
@@ -11205,8 +11190,8 @@ const zodGenerator = defineGenerator({
11205
11190
  ]
11206
11191
  });
11207
11192
  },
11208
- Operations({ nodes, adapter, options, config, resolver }) {
11209
- const { output, importPath, group, operations, paramsCasing, transformers } = options;
11193
+ Operations({ nodes, adapter, options, config, resolver, plugin }) {
11194
+ const { output, importPath, group, operations, paramsCasing } = options;
11210
11195
  if (!operations) return;
11211
11196
  const root = path$2.resolve(config.root, config.output.path);
11212
11197
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
@@ -11219,7 +11204,7 @@ const zodGenerator = defineGenerator({
11219
11204
  group
11220
11205
  }) };
11221
11206
  const transformedOperations = nodes.map((node) => {
11222
- const transformedNode = transform(node, composeTransformers(...transformers));
11207
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11223
11208
  return {
11224
11209
  node: transformedNode,
11225
11210
  data: buildSchemaNames(transformedNode, {
@@ -11420,15 +11405,15 @@ function buildLegacySchemaNames(node, params, resolver) {
11420
11405
  const zodGeneratorLegacy = defineGenerator({
11421
11406
  name: "zod-legacy",
11422
11407
  type: "react",
11423
- Schema({ node, adapter, options, config, resolver }) {
11424
- const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, transformers = [] } = options;
11425
- const transformedNode = transform(node, composeTransformers(...transformers));
11408
+ Schema({ node, adapter, options, config, resolver, plugin }) {
11409
+ const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, printer } = options;
11410
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11426
11411
  if (!transformedNode.name) return;
11427
11412
  const root = path$2.resolve(config.root, config.output.path);
11428
11413
  const mode = getMode(path$2.resolve(root, output.path));
11429
11414
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
11430
11415
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
11431
- name: resolver.default(schemaName, "function"),
11416
+ name: resolver.resolveSchemaName(schemaName),
11432
11417
  path: resolver.resolveFile({
11433
11418
  name: schemaName,
11434
11419
  extname: ".ts"
@@ -11438,9 +11423,9 @@ const zodGeneratorLegacy = defineGenerator({
11438
11423
  group
11439
11424
  }).path
11440
11425
  }));
11441
- const inferTypeName = inferred ? resolver.resolveInferName(resolver.resolveName(transformedNode.name)) : void 0;
11426
+ const inferTypeName = inferred ? resolver.resolveSchemaTypeName(transformedNode.name) : void 0;
11442
11427
  const meta = {
11443
- name: resolver.default(transformedNode.name, "function"),
11428
+ name: resolver.resolveSchemaName(transformedNode.name),
11444
11429
  file: resolver.resolveFile({
11445
11430
  name: transformedNode.name,
11446
11431
  extname: ".ts"
@@ -11450,6 +11435,20 @@ const zodGeneratorLegacy = defineGenerator({
11450
11435
  group
11451
11436
  })
11452
11437
  };
11438
+ const schemaPrinter = mini ? printerZodMini({
11439
+ guidType,
11440
+ wrapOutput,
11441
+ resolver,
11442
+ schemaName: meta.name,
11443
+ nodes: printer == null ? void 0 : printer.nodes
11444
+ }) : printerZod({
11445
+ coercion,
11446
+ guidType,
11447
+ wrapOutput,
11448
+ resolver,
11449
+ schemaName: meta.name,
11450
+ nodes: printer == null ? void 0 : printer.nodes
11451
+ });
11453
11452
  return /* @__PURE__ */ jsxs(File, {
11454
11453
  baseName: meta.file.baseName,
11455
11454
  path: meta.file.path,
@@ -11473,29 +11472,19 @@ const zodGeneratorLegacy = defineGenerator({
11473
11472
  path: imp.path,
11474
11473
  name: imp.name
11475
11474
  }, [transformedNode.name, imp.path].join("-"))),
11476
- mini ? /* @__PURE__ */ jsx(ZodMini, {
11475
+ /* @__PURE__ */ jsx(Zod, {
11477
11476
  name: meta.name,
11478
11477
  node: transformedNode,
11479
- guidType,
11480
- wrapOutput,
11481
- inferTypeName,
11482
- resolver
11483
- }) : /* @__PURE__ */ jsx(Zod, {
11484
- name: meta.name,
11485
- node: transformedNode,
11486
- coercion,
11487
- guidType,
11488
- wrapOutput,
11489
- inferTypeName,
11490
- resolver
11478
+ printer: schemaPrinter,
11479
+ inferTypeName
11491
11480
  })
11492
11481
  ]
11493
11482
  });
11494
11483
  },
11495
- Operation({ node, adapter, options, config, resolver }) {
11484
+ Operation({ node, adapter, options, config, resolver, plugin }) {
11496
11485
  var _a, _b, _c;
11497
- const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, transformers } = options;
11498
- const transformedNode = transform(node, composeTransformers(...transformers));
11486
+ const { output, coercion, guidType, mini, wrapOutput, inferred, importPath, group, paramsCasing, printer } = options;
11487
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11499
11488
  const root = path$2.resolve(config.root, config.output.path);
11500
11489
  const mode = getMode(path$2.resolve(root, output.path));
11501
11490
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
@@ -11512,9 +11501,9 @@ const zodGeneratorLegacy = defineGenerator({
11512
11501
  }) };
11513
11502
  function renderSchemaEntry({ schema, name, keysToOmit }) {
11514
11503
  if (!schema) return null;
11515
- const inferTypeName = inferred ? resolver.resolveInferName(name) : void 0;
11504
+ const inferTypeName = inferred ? resolver.resolveTypeName(name) : void 0;
11516
11505
  const imports = adapter.getImports(schema, (schemaName) => ({
11517
- name: resolver.default(schemaName, "function"),
11506
+ name: resolver.resolveSchemaName(schemaName),
11518
11507
  path: resolver.resolveFile({
11519
11508
  name: schemaName,
11520
11509
  extname: ".ts"
@@ -11524,6 +11513,22 @@ const zodGeneratorLegacy = defineGenerator({
11524
11513
  group
11525
11514
  }).path
11526
11515
  }));
11516
+ const schemaPrinter = mini ? printerZodMini({
11517
+ guidType,
11518
+ wrapOutput,
11519
+ resolver,
11520
+ schemaName: name,
11521
+ keysToOmit,
11522
+ nodes: printer == null ? void 0 : printer.nodes
11523
+ }) : printerZod({
11524
+ coercion,
11525
+ guidType,
11526
+ wrapOutput,
11527
+ resolver,
11528
+ schemaName: name,
11529
+ keysToOmit,
11530
+ nodes: printer == null ? void 0 : printer.nodes
11531
+ });
11527
11532
  return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
11528
11533
  root: meta.file.path,
11529
11534
  path: imp.path,
@@ -11532,23 +11537,11 @@ const zodGeneratorLegacy = defineGenerator({
11532
11537
  name,
11533
11538
  imp.path,
11534
11539
  imp.name
11535
- ].join("-"))), mini ? /* @__PURE__ */ jsx(ZodMini, {
11540
+ ].join("-"))), /* @__PURE__ */ jsx(Zod, {
11536
11541
  name,
11537
11542
  node: schema,
11538
- guidType,
11539
- wrapOutput,
11540
- inferTypeName,
11541
- resolver,
11542
- keysToOmit
11543
- }) : /* @__PURE__ */ jsx(Zod, {
11544
- name,
11545
- node: schema,
11546
- coercion,
11547
- guidType,
11548
- wrapOutput,
11549
- inferTypeName,
11550
- resolver,
11551
- keysToOmit
11543
+ printer: schemaPrinter,
11544
+ inferTypeName
11552
11545
  })] });
11553
11546
  }
11554
11547
  const pathParams = params.filter((p) => p.in === "path");
@@ -11631,8 +11624,8 @@ const zodGeneratorLegacy = defineGenerator({
11631
11624
  ]
11632
11625
  });
11633
11626
  },
11634
- Operations({ nodes, adapter, options, config, resolver }) {
11635
- const { output, importPath, group, operations, paramsCasing, transformers } = options;
11627
+ Operations({ nodes, adapter, options, config, resolver, plugin }) {
11628
+ const { output, importPath, group, operations, paramsCasing } = options;
11636
11629
  if (!operations) return;
11637
11630
  const root = path$2.resolve(config.root, config.output.path);
11638
11631
  const isZodImport = ZOD_NAMESPACE_IMPORTS.has(importPath);
@@ -11645,7 +11638,7 @@ const zodGeneratorLegacy = defineGenerator({
11645
11638
  group
11646
11639
  }) };
11647
11640
  const transformedOperations = nodes.map((node) => {
11648
- const transformedNode = transform(node, composeTransformers(...transformers));
11641
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
11649
11642
  return {
11650
11643
  node: transformedNode,
11651
11644
  data: buildLegacySchemaNames(transformedNode, caseParams(transformedNode.parameters, paramsCasing), resolver)
@@ -11702,44 +11695,42 @@ const zodGeneratorLegacy = defineGenerator({
11702
11695
  });
11703
11696
  }
11704
11697
  });
11705
- function toSchemaName(name, type) {
11706
- const resolved = camelCase$a(name, {
11707
- suffix: type ? "schema" : void 0,
11708
- isFile: type === "file"
11709
- });
11710
- if (type === "type") return pascalCase$6(resolved);
11711
- return resolved;
11712
- }
11713
11698
  const resolverZod = defineResolver(() => {
11714
11699
  return {
11715
11700
  name: "default",
11716
11701
  pluginName: "plugin-zod",
11717
11702
  default(name, type) {
11718
- return toSchemaName(name, type);
11703
+ return camelCase$a(name, {
11704
+ isFile: type === "file",
11705
+ suffix: type ? "schema" : void 0
11706
+ });
11719
11707
  },
11720
- resolveName(name) {
11721
- return this.default(name, "function");
11708
+ resolveSchemaName(name) {
11709
+ return camelCase$a(name, { suffix: "schema" });
11722
11710
  },
11723
- resolveInferName(name) {
11711
+ resolveSchemaTypeName(name) {
11712
+ return pascalCase$6(name, { suffix: "schema" });
11713
+ },
11714
+ resolveTypeName(name) {
11724
11715
  return pascalCase$6(name);
11725
11716
  },
11726
11717
  resolvePathName(name, type) {
11727
11718
  return this.default(name, type);
11728
11719
  },
11729
11720
  resolveParamName(node, param) {
11730
- return this.resolveName(`${node.operationId} ${param.in} ${param.name}`);
11721
+ return this.resolveSchemaName(`${node.operationId} ${param.in} ${param.name}`);
11731
11722
  },
11732
11723
  resolveResponseStatusName(node, statusCode) {
11733
- return this.resolveName(`${node.operationId} Status ${statusCode}`);
11724
+ return this.resolveSchemaName(`${node.operationId} Status ${statusCode}`);
11734
11725
  },
11735
11726
  resolveDataName(node) {
11736
- return this.resolveName(`${node.operationId} Data`);
11727
+ return this.resolveSchemaName(`${node.operationId} Data`);
11737
11728
  },
11738
11729
  resolveResponsesName(node) {
11739
- return this.resolveName(`${node.operationId} Responses`);
11730
+ return this.resolveSchemaName(`${node.operationId} Responses`);
11740
11731
  },
11741
11732
  resolveResponseName(node) {
11742
- return this.resolveName(`${node.operationId} Response`);
11733
+ return this.resolveSchemaName(`${node.operationId} Response`);
11743
11734
  },
11744
11735
  resolvePathParamsName(node, param) {
11745
11736
  return this.resolveParamName(node, param);
@@ -11757,42 +11748,44 @@ const resolverZodLegacy = defineResolver(() => {
11757
11748
  ...resolverZod,
11758
11749
  pluginName: "plugin-zod",
11759
11750
  resolveResponseStatusName(node, statusCode) {
11760
- if (statusCode === "default") return this.resolveName(`${node.operationId} Error`);
11761
- return this.resolveName(`${node.operationId} ${statusCode}`);
11751
+ if (statusCode === "default") return this.resolveSchemaName(`${node.operationId} Error`);
11752
+ return this.resolveSchemaName(`${node.operationId} ${statusCode}`);
11762
11753
  },
11763
11754
  resolveDataName(node) {
11764
11755
  const suffix = node.method === "GET" ? "QueryRequest" : "MutationRequest";
11765
- return this.resolveName(`${node.operationId} ${suffix}`);
11756
+ return this.resolveSchemaName(`${node.operationId} ${suffix}`);
11766
11757
  },
11767
11758
  resolveResponsesName(node) {
11768
11759
  const suffix = node.method === "GET" ? "Query" : "Mutation";
11769
- return this.resolveName(`${node.operationId} ${suffix}`);
11760
+ return this.resolveSchemaName(`${node.operationId} ${suffix}`);
11770
11761
  },
11771
11762
  resolveResponseName(node) {
11772
11763
  const suffix = node.method === "GET" ? "QueryResponse" : "MutationResponse";
11773
- return this.resolveName(`${node.operationId} ${suffix}`);
11764
+ return this.resolveSchemaName(`${node.operationId} ${suffix}`);
11774
11765
  },
11775
11766
  resolvePathParamsName(node, _param) {
11776
- return this.resolveName(`${node.operationId} PathParams`);
11767
+ return this.resolveSchemaName(`${node.operationId} PathParams`);
11777
11768
  },
11778
11769
  resolveQueryParamsName(node, _param) {
11779
- return this.resolveName(`${node.operationId} QueryParams`);
11770
+ return this.resolveSchemaName(`${node.operationId} QueryParams`);
11780
11771
  },
11781
11772
  resolveHeaderParamsName(node, _param) {
11782
- return this.resolveName(`${node.operationId} HeaderParams`);
11773
+ return this.resolveSchemaName(`${node.operationId} HeaderParams`);
11783
11774
  }
11784
11775
  };
11785
11776
  });
11786
11777
  const presets$2 = definePresets({
11787
11778
  default: {
11788
11779
  name: "default",
11789
- resolvers: [resolverZod],
11790
- generators: [zodGenerator]
11780
+ resolver: resolverZod,
11781
+ generators: [zodGenerator],
11782
+ printer: printerZod
11791
11783
  },
11792
11784
  kubbV4: {
11793
11785
  name: "kubbV4",
11794
- resolvers: [resolverZodLegacy],
11795
- generators: [zodGeneratorLegacy]
11786
+ resolver: resolverZodLegacy,
11787
+ generators: [zodGeneratorLegacy],
11788
+ printer: printerZod
11796
11789
  }
11797
11790
  });
11798
11791
  const pluginZodName = "plugin-zod";
@@ -11800,12 +11793,12 @@ const pluginZod = createPlugin((options) => {
11800
11793
  const { output = {
11801
11794
  path: "zod",
11802
11795
  barrelType: "named"
11803
- }, group, exclude = [], include, override = [], dateType = "string", typed = false, operations = false, mini = false, guidType = "uuid", importPath = mini ? "zod/mini" : "zod", coercion = false, inferred = false, wrapOutput = void 0, paramsCasing, compatibilityPreset = "default", resolvers: userResolvers = [], transformers: userTransformers = [], generators: userGenerators = [] } = options;
11796
+ }, group, exclude = [], include, override = [], dateType = "string", typed = false, operations = false, mini = false, guidType = "uuid", importPath = mini ? "zod/mini" : "zod", coercion = false, inferred = false, wrapOutput = void 0, paramsCasing, printer, compatibilityPreset = "default", resolver: userResolver, transformer: userTransformer, generators: userGenerators = [] } = options;
11804
11797
  const preset = getPreset({
11805
11798
  preset: compatibilityPreset,
11806
11799
  presets: presets$2,
11807
- resolvers: userResolvers,
11808
- transformers: userTransformers,
11800
+ resolver: userResolver,
11801
+ transformer: userTransformer,
11809
11802
  generators: userGenerators
11810
11803
  });
11811
11804
  let resolveNameWarning = false;
@@ -11815,6 +11808,9 @@ const pluginZod = createPlugin((options) => {
11815
11808
  get resolver() {
11816
11809
  return preset.resolver;
11817
11810
  },
11811
+ get transformer() {
11812
+ return preset.transformer;
11813
+ },
11818
11814
  get options() {
11819
11815
  return {
11820
11816
  output,
@@ -11835,7 +11831,7 @@ const pluginZod = createPlugin((options) => {
11835
11831
  mini,
11836
11832
  wrapOutput,
11837
11833
  paramsCasing,
11838
- transformers: preset.transformers
11834
+ printer
11839
11835
  };
11840
11836
  },
11841
11837
  resolvePath(baseName, pathMode, options2) {
@@ -210411,6 +210407,40 @@ function Enum({ node, enumType, enumTypeSuffix, enumKeyCasing, resolver }) {
210411
210407
  children: safePrint(typeNode)
210412
210408
  })] });
210413
210409
  }
210410
+ function Type({ name, node, printer, enumType, enumTypeSuffix, enumKeyCasing, resolver }) {
210411
+ const enumSchemaNodes = collect(node, { schema(n) {
210412
+ const enumNode = narrowSchema(n, schemaTypes.enum);
210413
+ if (enumNode == null ? void 0 : enumNode.name) return enumNode;
210414
+ } });
210415
+ const output = printer.print(node);
210416
+ if (!output) return;
210417
+ const enums = [...new Map(enumSchemaNodes.map((n) => [n.name, n])).values()].map((node2) => {
210418
+ return {
210419
+ node: node2,
210420
+ ...getEnumNames({
210421
+ node: node2,
210422
+ enumType,
210423
+ enumTypeSuffix,
210424
+ resolver
210425
+ })
210426
+ };
210427
+ });
210428
+ const shouldExportEnums = enumType !== "inlineLiteral";
210429
+ const shouldExportType = enumType === "inlineLiteral" || enums.every((item) => item.typeName !== name);
210430
+ return /* @__PURE__ */ jsxs(Fragment, { children: [shouldExportEnums && enums.map(({ node: node2 }) => /* @__PURE__ */ jsx(Enum, {
210431
+ node: node2,
210432
+ enumType,
210433
+ enumTypeSuffix,
210434
+ enumKeyCasing,
210435
+ resolver
210436
+ })), shouldExportType && /* @__PURE__ */ jsx(File.Source, {
210437
+ name,
210438
+ isTypeOnly: true,
210439
+ isExportable: true,
210440
+ isIndexable: true,
210441
+ children: output
210442
+ })] });
210443
+ }
210414
210444
  function buildPropertyJSDocComments(schema) {
210415
210445
  const meta = syncSchemaRef(schema);
210416
210446
  const isArray = (meta == null ? void 0 : meta.primitive) === "array";
@@ -210638,7 +210668,8 @@ const printerTs = definePrinter((options) => {
210638
210668
  const allElements = [...propertyNodes, ...buildIndexSignatures(node, propertyNodes.length, transform2)];
210639
210669
  if (!allElements.length) return keywordTypeNodes.object;
210640
210670
  return createTypeLiteralNode(allElements);
210641
- }
210671
+ },
210672
+ ...options.nodes
210642
210673
  },
210643
210674
  print(node) {
210644
210675
  const { name, syntaxType = "type", description, keysToOmit } = this.options;
@@ -210671,66 +210702,20 @@ const printerTs = definePrinter((options) => {
210671
210702
  }
210672
210703
  };
210673
210704
  });
210674
- function Type({ name, node, keysToOmit, optionalType, arrayType, syntaxType, enumType, enumTypeSuffix, enumKeyCasing, description, resolver, enumSchemaNames }) {
210675
- const resolvedDescription = description || (node == null ? void 0 : node.description);
210676
- const enumSchemaNodes = collect(node, { schema(n) {
210677
- const enumNode = narrowSchema(n, schemaTypes.enum);
210678
- if (enumNode == null ? void 0 : enumNode.name) return enumNode;
210679
- } });
210680
- const output = printerTs({
210681
- optionalType,
210682
- arrayType,
210683
- enumType,
210684
- enumTypeSuffix,
210685
- name,
210686
- syntaxType,
210687
- description: resolvedDescription,
210688
- keysToOmit,
210689
- resolver,
210690
- enumSchemaNames
210691
- }).print(node);
210692
- if (!output) return;
210693
- const enums = [...new Map(enumSchemaNodes.map((n) => [n.name, n])).values()].map((node2) => {
210694
- return {
210695
- node: node2,
210696
- ...getEnumNames({
210697
- node: node2,
210698
- enumType,
210699
- enumTypeSuffix,
210700
- resolver
210701
- })
210702
- };
210703
- });
210704
- const shouldExportEnums = enumType !== "inlineLiteral";
210705
- const shouldExportType = enumType === "inlineLiteral" || enums.every((item) => item.typeName !== name);
210706
- return /* @__PURE__ */ jsxs(Fragment, { children: [shouldExportEnums && enums.map(({ node: node2 }) => /* @__PURE__ */ jsx(Enum, {
210707
- node: node2,
210708
- enumType,
210709
- enumTypeSuffix,
210710
- enumKeyCasing,
210711
- resolver
210712
- })), shouldExportType && /* @__PURE__ */ jsx(File.Source, {
210713
- name,
210714
- isTypeOnly: true,
210715
- isExportable: true,
210716
- isIndexable: true,
210717
- children: output
210718
- })] });
210719
- }
210720
210705
  const typeGenerator = defineGenerator({
210721
210706
  name: "typescript",
210722
210707
  type: "react",
210723
- Schema({ node, adapter, options, config, resolver }) {
210708
+ Schema({ node, adapter, options, config, resolver, plugin }) {
210724
210709
  var _a, _b;
210725
- const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, transformers = [] } = options;
210726
- const transformedNode = transform(node, composeTransformers(...transformers));
210710
+ const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, printer } = options;
210711
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
210727
210712
  if (!transformedNode.name) return;
210728
210713
  const root = path$2.resolve(config.root, config.output.path);
210729
210714
  const mode = getMode(path$2.resolve(root, output.path));
210730
210715
  const enumSchemaNames = new Set(((_b = (_a = adapter.rootNode) == null ? void 0 : _a.schemas) != null ? _b : []).filter((s) => narrowSchema(s, schemaTypes.enum) && s.name).map((s) => s.name));
210731
210716
  function resolveImportName(schemaName) {
210732
210717
  if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
210733
- return resolver.default(schemaName, "type");
210718
+ return resolver.resolveTypeName(schemaName);
210734
210719
  }
210735
210720
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
210736
210721
  name: resolveImportName(schemaName),
@@ -210745,7 +210730,7 @@ const typeGenerator = defineGenerator({
210745
210730
  }));
210746
210731
  const isEnumSchema = !!narrowSchema(transformedNode, schemaTypes.enum);
210747
210732
  const meta = {
210748
- name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveName(transformedNode.name),
210733
+ name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveTypeName(transformedNode.name),
210749
210734
  file: resolver.resolveFile({
210750
210735
  name: transformedNode.name,
210751
210736
  extname: ".ts"
@@ -210755,6 +210740,18 @@ const typeGenerator = defineGenerator({
210755
210740
  group
210756
210741
  })
210757
210742
  };
210743
+ const schemaPrinter = printerTs({
210744
+ optionalType,
210745
+ arrayType,
210746
+ enumType,
210747
+ enumTypeSuffix,
210748
+ name: meta.name,
210749
+ syntaxType,
210750
+ description: transformedNode.description,
210751
+ resolver,
210752
+ enumSchemaNames,
210753
+ nodes: printer == null ? void 0 : printer.nodes
210754
+ });
210758
210755
  return /* @__PURE__ */ jsxs(File, {
210759
210756
  baseName: meta.file.baseName,
210760
210757
  path: meta.file.path,
@@ -210782,18 +210779,15 @@ const typeGenerator = defineGenerator({
210782
210779
  enumType,
210783
210780
  enumTypeSuffix,
210784
210781
  enumKeyCasing,
210785
- optionalType,
210786
- arrayType,
210787
- syntaxType,
210788
210782
  resolver,
210789
- enumSchemaNames
210783
+ printer: schemaPrinter
210790
210784
  })]
210791
210785
  });
210792
210786
  },
210793
- Operation({ node, adapter, options, config, resolver }) {
210787
+ Operation({ node, adapter, options, config, resolver, plugin }) {
210794
210788
  var _a, _b, _c, _d, _e;
210795
- const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, transformers = [] } = options;
210796
- const transformedNode = transform(node, composeTransformers(...transformers));
210789
+ const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, printer } = options;
210790
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
210797
210791
  const root = path$2.resolve(config.root, config.output.path);
210798
210792
  const mode = getMode(path$2.resolve(root, output.path));
210799
210793
  const params = caseParams(transformedNode.parameters, paramsCasing);
@@ -210810,7 +210804,7 @@ const typeGenerator = defineGenerator({
210810
210804
  const enumSchemaNames = new Set(((_c = (_b = adapter.rootNode) == null ? void 0 : _b.schemas) != null ? _c : []).filter((s) => narrowSchema(s, schemaTypes.enum) && s.name).map((s) => s.name));
210811
210805
  function resolveImportName(schemaName) {
210812
210806
  if (ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && enumTypeSuffix && enumSchemaNames.has(schemaName)) return resolver.resolveEnumKeyName({ name: schemaName }, enumTypeSuffix);
210813
- return resolver.default(schemaName, "type");
210807
+ return resolver.resolveTypeName(schemaName);
210814
210808
  }
210815
210809
  function renderSchemaType({ schema, name, keysToOmit }) {
210816
210810
  if (!schema) return null;
@@ -210825,6 +210819,19 @@ const typeGenerator = defineGenerator({
210825
210819
  group
210826
210820
  }).path
210827
210821
  }));
210822
+ const schemaPrinter = printerTs({
210823
+ optionalType,
210824
+ arrayType,
210825
+ enumType,
210826
+ enumTypeSuffix,
210827
+ name,
210828
+ syntaxType,
210829
+ description: schema.description,
210830
+ keysToOmit,
210831
+ resolver,
210832
+ enumSchemaNames,
210833
+ nodes: printer == null ? void 0 : printer.nodes
210834
+ });
210828
210835
  return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
210829
210836
  root: meta.file.path,
210830
210837
  path: imp.path,
@@ -210840,12 +210847,8 @@ const typeGenerator = defineGenerator({
210840
210847
  enumType,
210841
210848
  enumTypeSuffix,
210842
210849
  enumKeyCasing,
210843
- optionalType,
210844
- arrayType,
210845
- syntaxType,
210846
210850
  resolver,
210847
- keysToOmit,
210848
- enumSchemaNames
210851
+ printer: schemaPrinter
210849
210852
  })] });
210850
210853
  }
210851
210854
  const paramTypes = params.map((param) => renderSchemaType({
@@ -210906,43 +210909,40 @@ const typeGenerator = defineGenerator({
210906
210909
  });
210907
210910
  }
210908
210911
  });
210909
- function toTypeName(name, type) {
210910
- return pascalCase$5(name, { isFile: type === "file" });
210911
- }
210912
210912
  const resolverTs = defineResolver(() => {
210913
210913
  return {
210914
210914
  name: "default",
210915
210915
  pluginName: "plugin-ts",
210916
210916
  default(name, type) {
210917
- return toTypeName(name, type);
210917
+ return pascalCase$5(name, { isFile: type === "file" });
210918
210918
  },
210919
- resolveName(name) {
210920
- return this.default(name, "function");
210919
+ resolveTypeName(name) {
210920
+ return pascalCase$5(name);
210921
210921
  },
210922
210922
  resolvePathName(name, type) {
210923
- return this.default(name, type);
210923
+ return pascalCase$5(name, { isFile: type === "file" });
210924
210924
  },
210925
210925
  resolveParamName(node, param) {
210926
- return this.resolveName(`${node.operationId} ${param.in} ${param.name}`);
210926
+ return this.resolveTypeName(`${node.operationId} ${param.in} ${param.name}`);
210927
210927
  },
210928
210928
  resolveResponseStatusName(node, statusCode) {
210929
- return this.resolveName(`${node.operationId} Status ${statusCode}`);
210929
+ return this.resolveTypeName(`${node.operationId} Status ${statusCode}`);
210930
210930
  },
210931
210931
  resolveDataName(node) {
210932
- return this.resolveName(`${node.operationId} Data`);
210932
+ return this.resolveTypeName(`${node.operationId} Data`);
210933
210933
  },
210934
210934
  resolveRequestConfigName(node) {
210935
- return this.resolveName(`${node.operationId} RequestConfig`);
210935
+ return this.resolveTypeName(`${node.operationId} RequestConfig`);
210936
210936
  },
210937
210937
  resolveResponsesName(node) {
210938
- return this.resolveName(`${node.operationId} Responses`);
210938
+ return this.resolveTypeName(`${node.operationId} Responses`);
210939
210939
  },
210940
210940
  resolveResponseName(node) {
210941
- return this.resolveName(`${node.operationId} Response`);
210941
+ return this.resolveTypeName(`${node.operationId} Response`);
210942
210942
  },
210943
210943
  resolveEnumKeyName(node, enumTypeSuffix = "key") {
210944
210944
  var _a;
210945
- return `${this.resolveName((_a = node.name) != null ? _a : "")}${enumTypeSuffix}`;
210945
+ return `${this.resolveTypeName((_a = node.name) != null ? _a : "")}${enumTypeSuffix}`;
210946
210946
  },
210947
210947
  resolvePathParamsName(node, param) {
210948
210948
  return this.resolveParamName(node, param);
@@ -210960,29 +210960,29 @@ const resolverTsLegacy = defineResolver(() => {
210960
210960
  ...resolverTs,
210961
210961
  pluginName: "plugin-ts",
210962
210962
  resolveResponseStatusName(node, statusCode) {
210963
- if (statusCode === "default") return this.resolveName(`${node.operationId} Error`);
210964
- return this.resolveName(`${node.operationId} ${statusCode}`);
210963
+ if (statusCode === "default") return this.resolveTypeName(`${node.operationId} Error`);
210964
+ return this.resolveTypeName(`${node.operationId} ${statusCode}`);
210965
210965
  },
210966
210966
  resolveDataName(node) {
210967
210967
  const suffix = node.method === "GET" ? "QueryRequest" : "MutationRequest";
210968
- return this.resolveName(`${node.operationId} ${suffix}`);
210968
+ return this.resolveTypeName(`${node.operationId} ${suffix}`);
210969
210969
  },
210970
210970
  resolveResponsesName(node) {
210971
210971
  const suffix = node.method === "GET" ? "Query" : "Mutation";
210972
- return this.resolveName(`${node.operationId} ${suffix}`);
210972
+ return this.resolveTypeName(`${node.operationId} ${suffix}`);
210973
210973
  },
210974
210974
  resolveResponseName(node) {
210975
210975
  const suffix = node.method === "GET" ? "QueryResponse" : "MutationResponse";
210976
- return this.resolveName(`${node.operationId} ${suffix}`);
210976
+ return this.resolveTypeName(`${node.operationId} ${suffix}`);
210977
210977
  },
210978
210978
  resolvePathParamsName(node, _param) {
210979
- return this.resolveName(`${node.operationId} PathParams`);
210979
+ return this.resolveTypeName(`${node.operationId} PathParams`);
210980
210980
  },
210981
210981
  resolveQueryParamsName(node, _param) {
210982
- return this.resolveName(`${node.operationId} QueryParams`);
210982
+ return this.resolveTypeName(`${node.operationId} QueryParams`);
210983
210983
  },
210984
210984
  resolveHeaderParamsName(node, _param) {
210985
- return this.resolveName(`${node.operationId} HeaderParams`);
210985
+ return this.resolveTypeName(`${node.operationId} HeaderParams`);
210986
210986
  }
210987
210987
  };
210988
210988
  });
@@ -211140,14 +211140,14 @@ function nameUnnamedEnums(node, parentName) {
211140
211140
  const typeGeneratorLegacy = defineGenerator({
211141
211141
  name: "typescript-legacy",
211142
211142
  type: "react",
211143
- Schema({ node, adapter, options, config, resolver }) {
211144
- const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group, transformers = [] } = options;
211145
- const transformedNode = transform(node, composeTransformers(...transformers));
211143
+ Schema({ node, adapter, options, config, resolver, plugin }) {
211144
+ const { enumType, enumTypeSuffix, enumKeyCasing, syntaxType, optionalType, arrayType, output, group } = options;
211145
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
211146
211146
  if (!transformedNode.name) return;
211147
211147
  const root = path$2.resolve(config.root, config.output.path);
211148
211148
  const mode = getMode(path$2.resolve(root, output.path));
211149
211149
  const imports = adapter.getImports(transformedNode, (schemaName) => ({
211150
- name: resolver.default(schemaName, "type"),
211150
+ name: resolver.resolveTypeName(schemaName),
211151
211151
  path: resolver.resolveFile({
211152
211152
  name: schemaName,
211153
211153
  extname: ".ts"
@@ -211159,7 +211159,7 @@ const typeGeneratorLegacy = defineGenerator({
211159
211159
  }));
211160
211160
  const isEnumSchema = !!narrowSchema(transformedNode, schemaTypes.enum);
211161
211161
  const meta = {
211162
- name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveName(transformedNode.name),
211162
+ name: ENUM_TYPES_WITH_KEY_SUFFIX.has(enumType) && isEnumSchema ? resolver.resolveEnumKeyName(transformedNode, enumTypeSuffix) : resolver.resolveTypeName(transformedNode.name),
211163
211163
  file: resolver.resolveFile({
211164
211164
  name: transformedNode.name,
211165
211165
  extname: ".ts"
@@ -211169,6 +211169,16 @@ const typeGeneratorLegacy = defineGenerator({
211169
211169
  group
211170
211170
  })
211171
211171
  };
211172
+ const schemaPrinter = printerTs({
211173
+ optionalType,
211174
+ arrayType,
211175
+ enumType,
211176
+ enumTypeSuffix,
211177
+ name: meta.name,
211178
+ syntaxType,
211179
+ description: transformedNode.description,
211180
+ resolver
211181
+ });
211172
211182
  return /* @__PURE__ */ jsxs(File, {
211173
211183
  baseName: meta.file.baseName,
211174
211184
  path: meta.file.path,
@@ -211196,17 +211206,15 @@ const typeGeneratorLegacy = defineGenerator({
211196
211206
  enumType,
211197
211207
  enumTypeSuffix,
211198
211208
  enumKeyCasing,
211199
- optionalType,
211200
- arrayType,
211201
- syntaxType,
211202
- resolver
211209
+ resolver,
211210
+ printer: schemaPrinter
211203
211211
  })]
211204
211212
  });
211205
211213
  },
211206
- Operation({ node, adapter, options, config, resolver }) {
211214
+ Operation({ node, adapter, options, config, resolver, plugin }) {
211207
211215
  var _a, _b, _c;
211208
- const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output, transformers = [] } = options;
211209
- const transformedNode = transform(node, composeTransformers(...transformers));
211216
+ const { enumType, enumTypeSuffix, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, output } = options;
211217
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
211210
211218
  const root = path$2.resolve(config.root, config.output.path);
211211
211219
  const mode = getMode(path$2.resolve(root, output.path));
211212
211220
  const params = caseParams(node.parameters, paramsCasing);
@@ -211223,7 +211231,7 @@ const typeGeneratorLegacy = defineGenerator({
211223
211231
  function renderSchemaType({ schema, name, description, keysToOmit }) {
211224
211232
  if (!schema) return null;
211225
211233
  const imports = adapter.getImports(schema, (schemaName) => ({
211226
- name: resolver.default(schemaName, "type"),
211234
+ name: resolver.resolveTypeName(schemaName),
211227
211235
  path: resolver.resolveFile({
211228
211236
  name: schemaName,
211229
211237
  extname: ".ts"
@@ -211233,6 +211241,17 @@ const typeGeneratorLegacy = defineGenerator({
211233
211241
  group
211234
211242
  }).path
211235
211243
  }));
211244
+ const opPrinter = printerTs({
211245
+ optionalType,
211246
+ arrayType,
211247
+ enumType,
211248
+ enumTypeSuffix,
211249
+ name,
211250
+ syntaxType,
211251
+ description,
211252
+ keysToOmit,
211253
+ resolver
211254
+ });
211236
211255
  return /* @__PURE__ */ jsxs(Fragment, { children: [mode === "split" && imports.map((imp) => /* @__PURE__ */ jsx(File.Import, {
211237
211256
  root: meta.file.path,
211238
211257
  path: imp.path,
@@ -211245,15 +211264,11 @@ const typeGeneratorLegacy = defineGenerator({
211245
211264
  ].join("-"))), /* @__PURE__ */ jsx(Type, {
211246
211265
  name,
211247
211266
  node: schema,
211248
- description,
211249
211267
  enumType,
211250
211268
  enumTypeSuffix,
211251
211269
  enumKeyCasing,
211252
- optionalType,
211253
- arrayType,
211254
- syntaxType,
211255
211270
  resolver,
211256
- keysToOmit
211271
+ printer: opPrinter
211257
211272
  })] });
211258
211273
  }
211259
211274
  const pathParams = params.filter((p) => p.in === "path");
@@ -211331,13 +211346,15 @@ const typeGeneratorLegacy = defineGenerator({
211331
211346
  const presets$1 = definePresets({
211332
211347
  default: {
211333
211348
  name: "default",
211334
- resolvers: [resolverTs],
211335
- generators: [typeGenerator]
211349
+ resolver: resolverTs,
211350
+ generators: [typeGenerator],
211351
+ printer: printerTs
211336
211352
  },
211337
211353
  kubbV4: {
211338
211354
  name: "kubbV4",
211339
- resolvers: [resolverTsLegacy],
211340
- generators: [typeGeneratorLegacy]
211355
+ resolver: resolverTsLegacy,
211356
+ generators: [typeGeneratorLegacy],
211357
+ printer: printerTs
211341
211358
  }
211342
211359
  });
211343
211360
  const pluginTsName = "plugin-ts";
@@ -211345,12 +211362,12 @@ const pluginTs = createPlugin((options) => {
211345
211362
  const { output = {
211346
211363
  path: "types",
211347
211364
  barrelType: "named"
211348
- }, group, exclude = [], include, override = [], enumType = "asConst", enumTypeSuffix = "Key", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, compatibilityPreset = "default", resolvers: userResolvers = [], transformers: userTransformers = [], generators: userGenerators = [] } = options;
211365
+ }, group, exclude = [], include, override = [], enumType = "asConst", enumTypeSuffix = "Key", enumKeyCasing = "none", optionalType = "questionToken", arrayType = "array", syntaxType = "type", paramsCasing, printer, compatibilityPreset = "default", resolver: userResolver, transformer: userTransformer, generators: userGenerators = [] } = options;
211349
211366
  const preset = getPreset({
211350
211367
  preset: compatibilityPreset,
211351
211368
  presets: presets$1,
211352
- resolvers: userResolvers,
211353
- transformers: userTransformers,
211369
+ resolver: userResolver,
211370
+ transformer: userTransformer,
211354
211371
  generators: userGenerators
211355
211372
  });
211356
211373
  let resolveNameWarning = false;
@@ -211360,6 +211377,9 @@ const pluginTs = createPlugin((options) => {
211360
211377
  get resolver() {
211361
211378
  return preset.resolver;
211362
211379
  },
211380
+ get transformer() {
211381
+ return preset.transformer;
211382
+ },
211363
211383
  get options() {
211364
211384
  return {
211365
211385
  output,
@@ -211377,7 +211397,7 @@ const pluginTs = createPlugin((options) => {
211377
211397
  enumKeyCasing,
211378
211398
  syntaxType,
211379
211399
  paramsCasing,
211380
- transformers: preset.transformers
211400
+ printer
211381
211401
  };
211382
211402
  },
211383
211403
  resolvePath(baseName, pathMode, options2) {
@@ -212956,13 +212976,13 @@ Request.getParams = getParams$c;
212956
212976
  const cypressGenerator = defineGenerator({
212957
212977
  name: "cypress",
212958
212978
  type: "react",
212959
- Operation({ node, adapter, options, config, driver, resolver }) {
212979
+ Operation({ node, adapter, options, config, driver, resolver, plugin }) {
212960
212980
  var _a2, _b, _c, _d, _e, _f;
212961
- const { output, baseURL, dataReturnType, paramsCasing, paramsType, pathParamsType, group, transformers } = options;
212981
+ const { output, baseURL, dataReturnType, paramsCasing, paramsType, pathParamsType, group } = options;
212962
212982
  const root = path$2.resolve(config.root, config.output.path);
212963
212983
  const pluginTs = driver.getPlugin(pluginTsName);
212964
212984
  if (!pluginTs) return null;
212965
- const transformedNode = transform(node, composeTransformers(...transformers));
212985
+ const transformedNode = plugin.transformer ? transform(node, plugin.transformer) : node;
212966
212986
  const casedParams = caseParams(transformedNode.parameters, paramsCasing);
212967
212987
  const pathParams = casedParams.filter((p) => p.in === "path");
212968
212988
  const queryParams = casedParams.filter((p) => p.in === "query");
@@ -213040,12 +213060,12 @@ const resolverCypress = defineResolver(() => ({
213040
213060
  const presets = definePresets({
213041
213061
  default: {
213042
213062
  name: "default",
213043
- resolvers: [resolverCypress],
213063
+ resolver: resolverCypress,
213044
213064
  generators: [cypressGenerator]
213045
213065
  },
213046
213066
  kubbV4: {
213047
213067
  name: "kubbV4",
213048
- resolvers: [resolverCypress],
213068
+ resolver: resolverCypress,
213049
213069
  generators: [cypressGenerator]
213050
213070
  }
213051
213071
  });
@@ -213054,12 +213074,12 @@ const pluginCypress = createPlugin((options) => {
213054
213074
  const { output = {
213055
213075
  path: "cypress",
213056
213076
  barrelType: "named"
213057
- }, group, dataReturnType = "data", exclude = [], include, override = [], baseURL, paramsCasing, paramsType = "inline", pathParamsType = paramsType === "object" ? "object" : options.pathParamsType || "inline", compatibilityPreset = "default", resolvers: userResolvers = [], transformers: userTransformers = [], generators: userGenerators = [] } = options;
213077
+ }, group, dataReturnType = "data", exclude = [], include, override = [], baseURL, paramsCasing, paramsType = "inline", pathParamsType = paramsType === "object" ? "object" : options.pathParamsType || "inline", compatibilityPreset = "default", resolver: userResolver, transformer: userTransformer, generators: userGenerators = [] } = options;
213058
213078
  const preset = getPreset({
213059
213079
  preset: compatibilityPreset,
213060
213080
  presets,
213061
- resolvers: [resolverCypress, ...userResolvers],
213062
- transformers: userTransformers,
213081
+ resolver: userResolver,
213082
+ transformer: userTransformer,
213063
213083
  generators: userGenerators
213064
213084
  });
213065
213085
  return {
@@ -213067,6 +213087,9 @@ const pluginCypress = createPlugin((options) => {
213067
213087
  get resolver() {
213068
213088
  return preset.resolver;
213069
213089
  },
213090
+ get transformer() {
213091
+ return preset.transformer;
213092
+ },
213070
213093
  get options() {
213071
213094
  return {
213072
213095
  output,
@@ -213082,8 +213105,7 @@ const pluginCypress = createPlugin((options) => {
213082
213105
  paramsCasing,
213083
213106
  paramsType,
213084
213107
  pathParamsType,
213085
- resolver: preset.resolver,
213086
- transformers: preset.transformers
213108
+ resolver: preset.resolver
213087
213109
  };
213088
213110
  },
213089
213111
  pre: [pluginTsName].filter(Boolean),