@kubb/plugin-zod 3.5.13 → 3.6.1

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 (40) hide show
  1. package/dist/{chunk-6N5S7RR7.cjs → chunk-I76DWSTD.cjs} +28 -18
  2. package/dist/chunk-I76DWSTD.cjs.map +1 -0
  3. package/dist/{chunk-E2BLKQJO.cjs → chunk-UXPJE55C.cjs} +38 -38
  4. package/dist/chunk-UXPJE55C.cjs.map +1 -0
  5. package/dist/{chunk-CPI4DGDT.js → chunk-XP7EMBLS.js} +38 -38
  6. package/dist/chunk-XP7EMBLS.js.map +1 -0
  7. package/dist/{chunk-LBZ6BUKN.js → chunk-YJM2VGBB.js} +27 -17
  8. package/dist/chunk-YJM2VGBB.js.map +1 -0
  9. package/dist/components.cjs +3 -3
  10. package/dist/components.d.cts +5 -3
  11. package/dist/components.d.ts +5 -3
  12. package/dist/components.js +1 -1
  13. package/dist/generators.cjs +4 -4
  14. package/dist/generators.d.cts +1 -1
  15. package/dist/generators.d.ts +1 -1
  16. package/dist/generators.js +2 -2
  17. package/dist/index.cjs +9 -7
  18. package/dist/index.cjs.map +1 -1
  19. package/dist/index.d.cts +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.js +10 -8
  22. package/dist/index.js.map +1 -1
  23. package/dist/{types-PnaUmUK7.d.cts → types-BqI3piyn.d.cts} +14 -2
  24. package/dist/{types-PnaUmUK7.d.ts → types-BqI3piyn.d.ts} +14 -2
  25. package/package.json +13 -11
  26. package/src/components/Zod.tsx +11 -9
  27. package/src/generators/__snapshots__/createPetWithUnknownTypeUnknown_wrapOutput.ts +25 -0
  28. package/src/generators/__snapshots__/createPetWithUnknownTypeUnknown_wrapOutput_entire_.ts +26 -0
  29. package/src/generators/__snapshots__/createPet_wrapOutput.ts +25 -0
  30. package/src/generators/__snapshots__/deletePet_wrapOutput.ts +3 -0
  31. package/src/generators/__snapshots__/getPets_wrapOutput.ts +27 -0
  32. package/src/generators/__snapshots__/showPetById_wrapOutput.ts +25 -0
  33. package/src/generators/zodGenerator.tsx +14 -4
  34. package/src/parser.ts +7 -2
  35. package/src/plugin.ts +2 -0
  36. package/src/types.ts +9 -0
  37. package/dist/chunk-6N5S7RR7.cjs.map +0 -1
  38. package/dist/chunk-CPI4DGDT.js.map +0 -1
  39. package/dist/chunk-E2BLKQJO.cjs.map +0 -1
  40. package/dist/chunk-LBZ6BUKN.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkE2BLKQJO_cjs = require('./chunk-E2BLKQJO.cjs');
3
+ var chunkUXPJE55C_cjs = require('./chunk-UXPJE55C.cjs');
4
4
  var pluginOas = require('@kubb/plugin-oas');
5
5
  var components = require('@kubb/plugin-oas/components');
6
6
  var hooks = require('@kubb/plugin-oas/hooks');
@@ -12,7 +12,7 @@ var jsxRuntime = require('@kubb/react/jsx-runtime');
12
12
  var zodGenerator = pluginOas.createReactGenerator({
13
13
  name: "zod",
14
14
  Operation({ operation, options }) {
15
- const { coercion, inferred, typed, mapper } = options;
15
+ const { coercion, inferred, typed, mapper, wrapOutput } = options;
16
16
  const { plugin, pluginManager, mode } = react.useApp();
17
17
  const oas = hooks.useOas();
18
18
  const { getSchemas, getFile, getGroup } = hooks.useOperationManager();
@@ -30,33 +30,41 @@ var zodGenerator = pluginOas.createReactGenerator({
30
30
  const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options2 }, i) => {
31
31
  const required = Array.isArray(schema?.required) ? !!schema.required.length : !!schema?.required;
32
32
  const optional = !required && name.includes("Params");
33
- const tree = [...schemaGenerator.parse({ schema, name }), optional ? { keyword: pluginOas.schemaKeywords.optional } : undefined].filter(Boolean);
33
+ const tree = [...schemaGenerator.parse({ schema, name }), optional ? { keyword: pluginOas.schemaKeywords.optional } : void 0].filter(Boolean);
34
34
  const imports = schemaManager.getImports(tree);
35
- const group = options2.operation ? getGroup(options2.operation) : undefined;
35
+ const group = options2.operation ? getGroup(options2.operation) : void 0;
36
36
  const zod = {
37
37
  name: schemaManager.getName(name, { type: "function" }),
38
38
  inferTypeName: schemaManager.getName(name, { type: "type" }),
39
39
  file: schemaManager.getFile(name)
40
40
  };
41
41
  const type = {
42
- name: schemaManager.getName(name, { type: "type", pluginKey: [pluginTs.pluginTsName] }),
43
- file: schemaManager.getFile(options2.operationName || name, { pluginKey: [pluginTs.pluginTsName], group })
42
+ name: schemaManager.getName(name, {
43
+ type: "type",
44
+ pluginKey: [pluginTs.pluginTsName]
45
+ }),
46
+ file: schemaManager.getFile(options2.operationName || name, {
47
+ pluginKey: [pluginTs.pluginTsName],
48
+ group
49
+ })
44
50
  };
45
51
  return /* @__PURE__ */ jsxRuntime.jsxs(components.Oas.Schema, { name, value: schema, tree, children: [
46
52
  typed && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, root: file.path, path: type.file.path, name: [type.name] }),
47
53
  typed && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, path: "@kubb/plugin-zod/utils", name: ["ToZod"] }),
48
54
  imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: file.path, path: imp.path, name: imp.name }, index)),
49
55
  /* @__PURE__ */ jsxRuntime.jsx(
50
- chunkE2BLKQJO_cjs.Zod,
56
+ chunkUXPJE55C_cjs.Zod,
51
57
  {
52
58
  name: zod.name,
53
- typeName: typed ? type.name : undefined,
54
- inferTypeName: inferred ? zod.inferTypeName : undefined,
59
+ typeName: typed ? type.name : void 0,
60
+ inferTypeName: inferred ? zod.inferTypeName : void 0,
55
61
  description,
56
62
  tree,
63
+ rawSchema: schema,
57
64
  mapper,
58
65
  coercion,
59
- keysToOmit
66
+ keysToOmit,
67
+ wrapOutput
60
68
  }
61
69
  )
62
70
  ] }, i);
@@ -77,7 +85,7 @@ var zodGenerator = pluginOas.createReactGenerator({
77
85
  );
78
86
  },
79
87
  Schema({ schema, options }) {
80
- const { coercion, inferred, typed, mapper, importPath } = options;
88
+ const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options;
81
89
  const { getName, getFile, getImports } = hooks.useSchemaManager();
82
90
  const {
83
91
  plugin: {
@@ -101,15 +109,17 @@ var zodGenerator = pluginOas.createReactGenerator({
101
109
  typed && /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { isTypeOnly: true, path: "@kubb/plugin-zod/utils", name: ["ToZod"] }),
102
110
  imports.map((imp, index) => /* @__PURE__ */ jsxRuntime.jsx(react.File.Import, { root: zod.file.path, path: imp.path, name: imp.name }, index)),
103
111
  /* @__PURE__ */ jsxRuntime.jsx(
104
- chunkE2BLKQJO_cjs.Zod,
112
+ chunkUXPJE55C_cjs.Zod,
105
113
  {
106
114
  name: zod.name,
107
- typeName: typed ? type.name : undefined,
108
- inferTypeName: inferred ? zod.inferTypeName : undefined,
115
+ typeName: typed ? type.name : void 0,
116
+ inferTypeName: inferred ? zod.inferTypeName : void 0,
109
117
  description: schema.value.description,
110
118
  tree: schema.tree,
119
+ rawSchema: schema.value,
111
120
  mapper,
112
- coercion
121
+ coercion,
122
+ wrapOutput
113
123
  }
114
124
  )
115
125
  ] });
@@ -136,12 +146,12 @@ var operationsGenerator = pluginOas.createReactGenerator({
136
146
  }).filter(Boolean);
137
147
  return /* @__PURE__ */ jsxRuntime.jsxs(react.File, { baseName: file.baseName, path: file.path, meta: file.meta, banner: utils.getBanner({ oas, output }), footer: utils.getFooter({ oas, output }), children: [
138
148
  imports,
139
- /* @__PURE__ */ jsxRuntime.jsx(chunkE2BLKQJO_cjs.Operations, { name, operations: transformedOperations })
149
+ /* @__PURE__ */ jsxRuntime.jsx(chunkUXPJE55C_cjs.Operations, { name, operations: transformedOperations })
140
150
  ] });
141
151
  }
142
152
  });
143
153
 
144
154
  exports.operationsGenerator = operationsGenerator;
145
155
  exports.zodGenerator = zodGenerator;
146
- //# sourceMappingURL=chunk-6N5S7RR7.cjs.map
147
- //# sourceMappingURL=chunk-6N5S7RR7.cjs.map
156
+ //# sourceMappingURL=chunk-I76DWSTD.cjs.map
157
+ //# sourceMappingURL=chunk-I76DWSTD.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generators/zodGenerator.tsx","../src/generators/operationsGenerator.tsx"],"names":["createReactGenerator","useApp","useOas","useOperationManager","useSchemaManager","SchemaGenerator","options","schemaKeywords","pluginTsName","Oas","File","jsx","Zod","jsxs","getBanner","getFooter","Operations"],"mappings":"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","file":"chunk-I76DWSTD.cjs","sourcesContent":["import { type OperationSchema as OperationSchemaType, SchemaGenerator, createReactGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Oas } from '@kubb/plugin-oas/components'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File, useApp } from '@kubb/react'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ operation, options }) {\n const { coercion, inferred, typed, mapper, wrapOutput } = options\n\n const { plugin, pluginManager, mode } = useApp<PluginZod>()\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager()\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n oas,\n plugin,\n pluginManager,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema, description, keysToOmit, ...options }: OperationSchemaType, i: number) => {\n // hack so Params can be optional when needed\n const required = Array.isArray(schema?.required) ? !!schema.required.length : !!schema?.required\n const optional = !required && name.includes('Params')\n const tree = [...schemaGenerator.parse({ schema, name }), optional ? { keyword: schemaKeywords.optional } : undefined].filter(Boolean)\n const imports = schemaManager.getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <Oas.Schema key={i} name={name} value={schema} tree={tree}>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n rawSchema={schema}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n />\n </Oas.Schema>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ schema, options }) {\n const { coercion, inferred, typed, mapper, importPath, wrapOutput } = options\n\n const { getName, getFile, getImports } = useSchemaManager()\n const {\n plugin: {\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File baseName={zod.file.baseName} path={zod.file.path} meta={zod.file.meta} banner={getBanner({ oas, output })} footer={getFooter({ oas, output })}>\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && <File.Import isTypeOnly path={'@kubb/plugin-zod/utils'} name={['ToZod']} />}\n {imports.map((imp, index) => (\n <File.Import key={index} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n rawSchema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n />\n </File>\n )\n },\n})\n","import { createReactGenerator } from '@kubb/plugin-oas'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File, useApp } from '@kubb/react'\nimport { Operations } from '../components/Operations'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations }) {\n const {\n pluginManager,\n plugin: {\n key: pluginKey,\n options: { output },\n },\n } = useApp<PluginZod>()\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager()\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\n\n return (\n <File baseName={file.baseName} path={file.path} meta={file.meta} banner={getBanner({ oas, output })} footer={getFooter({ oas, output })}>\n {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n"]}
@@ -37,13 +37,13 @@ var zodKeywordMapper = {
37
37
  any: () => "z.any()",
38
38
  unknown: () => "z.unknown()",
39
39
  number: (coercion, min, max) => {
40
- return [coercion ? "z.coerce.number()" : "z.number()", min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined].filter(Boolean).join("");
40
+ return [coercion ? "z.coerce.number()" : "z.number()", min !== void 0 ? `.min(${min})` : void 0, max !== void 0 ? `.max(${max})` : void 0].filter(Boolean).join("");
41
41
  },
42
42
  integer: (coercion, min, max) => {
43
43
  return [
44
44
  coercion ? "z.coerce.number().int()" : "z.number().int()",
45
- min !== undefined ? `.min(${min})` : undefined,
46
- max !== undefined ? `.max(${max})` : undefined
45
+ min !== void 0 ? `.min(${min})` : void 0,
46
+ max !== void 0 ? `.max(${max})` : void 0
47
47
  ].filter(Boolean).join("");
48
48
  },
49
49
  object: (value) => {
@@ -52,7 +52,7 @@ var zodKeywordMapper = {
52
52
  })`;
53
53
  },
54
54
  string: (coercion, min, max) => {
55
- return [coercion ? "z.coerce.string()" : "z.string()", min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined].filter(Boolean).join("");
55
+ return [coercion ? "z.coerce.string()" : "z.string()", min !== void 0 ? `.min(${min})` : void 0, max !== void 0 ? `.max(${max})` : void 0].filter(Boolean).join("");
56
56
  },
57
57
  boolean: () => "z.boolean()",
58
58
  undefined: () => "z.undefined()",
@@ -62,9 +62,9 @@ var zodKeywordMapper = {
62
62
  array: (items = [], min, max, unique) => {
63
63
  return [
64
64
  `z.array(${items?.join("")})`,
65
- min !== undefined ? `.min(${min})` : undefined,
66
- max !== undefined ? `.max(${max})` : undefined,
67
- unique ? `.refine(items => new Set(items).size === items.length, { message: "Array entries must be unique" })` : undefined
65
+ min !== void 0 ? `.min(${min})` : void 0,
66
+ max !== void 0 ? `.max(${max})` : void 0,
67
+ unique ? `.refine(items => new Set(items).size === items.length, { message: "Array entries must be unique" })` : void 0
68
68
  ].filter(Boolean).join("");
69
69
  },
70
70
  tuple: (items = []) => `z.tuple([${items?.join(", ")}])`,
@@ -127,24 +127,24 @@ var zodKeywordMapper = {
127
127
  optional: () => ".optional()",
128
128
  matches: (value = "", coercion) => coercion ? `z.coerce.string().regex(${value})` : `z.string().regex(${value})`,
129
129
  email: (coercion) => coercion ? "z.coerce.string().email()" : "z.string().email()",
130
- firstName: undefined,
131
- lastName: undefined,
132
- password: undefined,
133
- phone: undefined,
134
- readOnly: undefined,
135
- writeOnly: undefined,
130
+ firstName: void 0,
131
+ lastName: void 0,
132
+ password: void 0,
133
+ phone: void 0,
134
+ readOnly: void 0,
135
+ writeOnly: void 0,
136
136
  ref: (value) => {
137
137
  if (!value) {
138
- return undefined;
138
+ return void 0;
139
139
  }
140
140
  return `z.lazy(() => ${value})`;
141
141
  },
142
142
  blob: () => "z.instanceof(File)",
143
- deprecated: undefined,
144
- example: undefined,
145
- schema: undefined,
146
- catchall: (value) => value ? `.catchall(${value})` : undefined,
147
- name: undefined
143
+ deprecated: void 0,
144
+ example: void 0,
145
+ schema: void 0,
146
+ catchall: (value) => value ? `.catchall(${value})` : void 0,
147
+ name: void 0
148
148
  };
149
149
  function sort(items) {
150
150
  const order = [
@@ -178,7 +178,7 @@ function sort(items) {
178
178
  return transformers2__default.default.orderBy(items, [(v) => order.indexOf(v.keyword)], ["asc"]);
179
179
  }
180
180
  var shouldCoerce = (coercion, type) => {
181
- if (coercion === undefined) {
181
+ if (coercion === void 0) {
182
182
  return false;
183
183
  }
184
184
  if (typeof coercion === "boolean") {
@@ -189,7 +189,7 @@ var shouldCoerce = (coercion, type) => {
189
189
  function parse({ parent, current, siblings }, options) {
190
190
  const value = zodKeywordMapper[current.keyword];
191
191
  if (!value) {
192
- return undefined;
192
+ return void 0;
193
193
  }
194
194
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.union)) {
195
195
  if (Array.isArray(current.args) && current.args.length === 1) {
@@ -259,13 +259,14 @@ function parse({ parent, current, siblings }, options) {
259
259
  if (options.mapper?.[mappedName]) {
260
260
  return `"${name}": ${options.mapper?.[mappedName]}`;
261
261
  }
262
- return `"${name}": ${sort(schemas).map((schema) => parse({ parent: current, current: schema, siblings: schemas }, options)).filter(Boolean).join("")}`;
262
+ const baseSchemaOutput = sort(schemas).map((schema) => parse({ parent: current, current: schema, siblings: schemas }, options)).filter(Boolean).join("");
263
+ return `"${name}": ${options.wrapOutput ? options.wrapOutput({ output: baseSchemaOutput, schema: options.rawSchema?.properties?.[name] }) || baseSchemaOutput : baseSchemaOutput}`;
263
264
  }).join(",\n");
264
- const additionalProperties = current.args?.additionalProperties?.length ? current.args.additionalProperties.map((schema, _index, siblings2) => parse({ parent: current, current: schema, siblings: siblings2 }, options)).filter(Boolean).join("") : undefined;
265
+ const additionalProperties = current.args?.additionalProperties?.length ? current.args.additionalProperties.map((schema, _index, siblings2) => parse({ parent: current, current: schema, siblings: siblings2 }, options)).filter(Boolean).join("") : void 0;
265
266
  const text = [
266
267
  zodKeywordMapper.object(properties),
267
- current.args?.strict ? zodKeywordMapper.strict() : undefined,
268
- additionalProperties ? zodKeywordMapper.catchall(additionalProperties) : undefined
268
+ current.args?.strict ? zodKeywordMapper.strict() : void 0,
269
+ additionalProperties ? zodKeywordMapper.catchall(additionalProperties) : void 0
269
270
  ].filter(Boolean);
270
271
  return text.join("");
271
272
  }
@@ -275,10 +276,10 @@ function parse({ parent, current, siblings }, options) {
275
276
  );
276
277
  }
277
278
  if (pluginOas.isKeyword(current, pluginOas.schemaKeywords.const)) {
278
- if (current.args.format === "number" && current.args.value !== undefined) {
279
+ if (current.args.format === "number" && current.args.value !== void 0) {
279
280
  return zodKeywordMapper.const(Number.parseInt(current.args.value?.toString()));
280
281
  }
281
- if (current.args.format === "boolean" && current.args.value !== undefined) {
282
+ if (current.args.format === "boolean" && current.args.value !== void 0) {
282
283
  return zodKeywordMapper.const(current.args.value);
283
284
  }
284
285
  return zodKeywordMapper.const(transformers2__default.default.stringify(current.args.value));
@@ -342,9 +343,9 @@ function parse({ parent, current, siblings }, options) {
342
343
  if (current.keyword in zodKeywordMapper) {
343
344
  return value();
344
345
  }
345
- return undefined;
346
+ return void 0;
346
347
  }
347
- function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit, description }) {
348
+ function Zod({ name, typeName, tree, rawSchema, inferTypeName, mapper, coercion, keysToOmit, description, wrapOutput }) {
348
349
  const hasTuple = tree.some((item) => pluginOas.isKeyword(item, pluginOas.schemaKeywords.tuple));
349
350
  const output = sort(tree).filter((item) => {
350
351
  if (hasTuple && (pluginOas.isKeyword(item, pluginOas.schemaKeywords.min) || pluginOas.isKeyword(item, pluginOas.schemaKeywords.max))) {
@@ -352,9 +353,12 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
352
353
  }
353
354
  return true;
354
355
  }).map(
355
- (schema, _index, siblings) => parse({ parent: undefined, current: schema, siblings }, { name, keysToOmit, typeName, description, mapper, coercion })
356
+ (schema, _index, siblings) => parse({ parent: void 0, current: schema, siblings }, { name, keysToOmit, typeName, description, mapper, coercion, wrapOutput, rawSchema })
356
357
  ).filter(Boolean).join("");
357
358
  const suffix = output.endsWith(".nullable()") ? ".unwrap().and" : ".and";
359
+ const baseSchemaOutput = [output, keysToOmit?.length ? `${suffix}(z.object({ ${keysToOmit.map((key) => `${key}: z.never()`).join(",")} }))` : void 0].filter(Boolean).join("") || "z.undefined()";
360
+ const wrappedSchemaOutput = wrapOutput ? wrapOutput({ output: baseSchemaOutput, schema: rawSchema }) || baseSchemaOutput : baseSchemaOutput;
361
+ const finalOutput = typeName ? `${wrappedSchemaOutput} as unknown as ToZod<${typeName}>` : wrappedSchemaOutput;
358
362
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
359
363
  /* @__PURE__ */ jsxRuntime.jsx(react.File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsxRuntime.jsx(
360
364
  react.Const,
@@ -362,13 +366,9 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
362
366
  export: true,
363
367
  name,
364
368
  JSDoc: {
365
- comments: [description ? `@description ${transformers2__default.default.jsStringEscape(description)}` : undefined].filter(Boolean)
369
+ comments: [description ? `@description ${transformers2__default.default.jsStringEscape(description)}` : void 0].filter(Boolean)
366
370
  },
367
- children: [
368
- output,
369
- keysToOmit?.length ? `${suffix}(z.object({ ${keysToOmit.map((key) => `${key}: z.never()`).join(",")} }))` : undefined,
370
- typeName ? `as unknown as ToZod<${typeName}>` : undefined
371
- ].filter(Boolean).join("") || "z.undefined()"
371
+ children: finalOutput
372
372
  }
373
373
  ) }),
374
374
  inferTypeName && /* @__PURE__ */ jsxRuntime.jsxs(react.File.Source, { name: inferTypeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: [
@@ -380,5 +380,5 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
380
380
 
381
381
  exports.Operations = Operations;
382
382
  exports.Zod = Zod;
383
- //# sourceMappingURL=chunk-E2BLKQJO.cjs.map
384
- //# sourceMappingURL=chunk-E2BLKQJO.cjs.map
383
+ //# sourceMappingURL=chunk-UXPJE55C.cjs.map
384
+ //# sourceMappingURL=chunk-UXPJE55C.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Operations.tsx","../src/parser.ts","../src/components/Zod.tsx"],"names":["jsxs","Fragment","jsx","File","Const","transformers","schemaKeywords","isKeyword","siblings","value","Type"],"mappings":"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","file":"chunk-UXPJE55C.cjs","sourcesContent":["import type { SchemaNames } from '@kubb/plugin-oas/hooks'\nimport { Const, File } from '@kubb/react'\n\nimport transformers from '@kubb/core/transformers'\nimport type { HttpMethod, Operation } from '@kubb/oas'\n\ntype Props = {\n name: string\n operations: Array<{ operation: Operation; data: SchemaNames }>\n}\n\nexport function Operations({ name, operations }: Props) {\n const operationsJSON = operations.reduce(\n (prev, acc) => {\n prev[`\"${acc.operation.getOperationId()}\"`] = acc.data\n\n return prev\n },\n {} as Record<string, unknown>,\n )\n\n const pathsJSON = operations.reduce(\n (prev, acc) => {\n prev[`\"${acc.operation.path}\"`] = {\n ...(prev[`\"${acc.operation.path}\"`] || ({} as Record<HttpMethod, string>)),\n [acc.operation.method]: `operations[\"${acc.operation.getOperationId()}\"]`,\n }\n\n return prev\n },\n {} as Record<string, Record<HttpMethod, string>>,\n )\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Const export name={name} asConst>\n {`{${transformers.stringifyObject(operationsJSON)}}`}\n </Const>\n </File.Source>\n <File.Source name={'paths'} isExportable isIndexable>\n <Const export name={'paths'} asConst>\n {`{${transformers.stringifyObject(pathsJSON)}}`}\n </Const>\n </File.Source>\n </>\n )\n}\n","import transformers from '@kubb/core/transformers'\nimport type { SchemaObject } from '@kubb/oas'\nimport { type SchemaKeywordMapper, type SchemaTree, isKeyword, schemaKeywords } from '@kubb/plugin-oas'\n\nimport type { Schema, SchemaKeywordBase, SchemaMapper } from '@kubb/plugin-oas'\n\nconst zodKeywordMapper = {\n any: () => 'z.any()',\n unknown: () => 'z.unknown()',\n number: (coercion?: boolean, min?: number, max?: number) => {\n return [coercion ? 'z.coerce.number()' : 'z.number()', min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined]\n .filter(Boolean)\n .join('')\n },\n integer: (coercion?: boolean, min?: number, max?: number) => {\n return [\n coercion ? 'z.coerce.number().int()' : 'z.number().int()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n object: (value?: string) => {\n return `z.object({\n ${value}\n })`\n },\n string: (coercion?: boolean, min?: number, max?: number) => {\n return [coercion ? 'z.coerce.string()' : 'z.string()', min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined]\n .filter(Boolean)\n .join('')\n },\n boolean: () => 'z.boolean()',\n undefined: () => 'z.undefined()',\n nullable: () => '.nullable()',\n null: () => 'z.null()',\n nullish: () => '.nullish()',\n array: (items: string[] = [], min?: number, max?: number, unique?: boolean) => {\n return [\n `z.array(${items?.join('')})`,\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n unique ? `.refine(items => new Set(items).size === items.length, { message: \"Array entries must be unique\" })` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n tuple: (items: string[] = []) => `z.tuple([${items?.join(', ')}])`,\n enum: (items: string[] = []) => `z.enum([${items?.join(', ')}])`,\n union: (items: string[] = []) => `z.union([${items?.join(', ')}])`,\n const: (value?: string | number | boolean) => `z.literal(${value ?? ''})`,\n /**\n * ISO 8601\n */\n datetime: (offset = false, local = false) => {\n if (offset) {\n return `z.string().datetime({ offset: ${offset} })`\n }\n\n if (local) {\n return `z.string().datetime({ local: ${local} })`\n }\n\n return 'z.string().datetime()'\n },\n /**\n * Type `'date'` Date\n * Type `'string'` ISO date format (YYYY-MM-DD)\n * @default ISO date format (YYYY-MM-DD)\n */\n date: (type: 'date' | 'string' = 'string', coercion?: boolean) => {\n if (type === 'string') {\n return 'z.string().date()'\n }\n\n if (coercion) {\n return 'z.coerce.date()'\n }\n\n return 'z.date()'\n },\n /**\n * Type `'date'` Date\n * Type `'string'` ISO time format (HH:mm:ss[.SSSSSS])\n * @default ISO time format (HH:mm:ss[.SSSSSS])\n */\n time: (type: 'date' | 'string' = 'string', coercion?: boolean) => {\n if (type === 'string') {\n return 'z.string().time()'\n }\n\n if (coercion) {\n return 'z.coerce.date()'\n }\n\n return 'z.date()'\n },\n uuid: (coercion?: boolean) => (coercion ? 'z.coerce.string().uuid()' : 'z.string().uuid()'),\n url: (coercion?: boolean) => (coercion ? 'z.coerce.string().url()' : 'z.string().url()'),\n strict: () => '.strict()',\n default: (value?: string | number | true | object) => {\n if (typeof value === 'object') {\n return '.default({})'\n }\n return `.default(${value ?? ''})`\n },\n and: (items: string[] = []) => items?.map((item) => `.and(${item})`).join(''),\n describe: (value = '') => `.describe(${value})`,\n min: (value?: number) => `.min(${value ?? ''})`,\n max: (value?: number) => `.max(${value ?? ''})`,\n optional: () => '.optional()',\n matches: (value = '', coercion?: boolean) => (coercion ? `z.coerce.string().regex(${value})` : `z.string().regex(${value})`),\n email: (coercion?: boolean) => (coercion ? 'z.coerce.string().email()' : 'z.string().email()'),\n firstName: undefined,\n lastName: undefined,\n password: undefined,\n phone: undefined,\n readOnly: undefined,\n writeOnly: undefined,\n ref: (value?: string) => {\n if (!value) {\n return undefined\n }\n\n return `z.lazy(() => ${value})`\n },\n blob: () => 'z.instanceof(File)',\n deprecated: undefined,\n example: undefined,\n schema: undefined,\n catchall: (value?: string) => (value ? `.catchall(${value})` : undefined),\n name: undefined,\n} satisfies SchemaMapper<string | null | undefined>\n\n/**\n * @link based on https://github.com/cellular/oazapfts/blob/7ba226ebb15374e8483cc53e7532f1663179a22c/src/codegen/generate.ts#L398\n */\n\nexport function sort(items?: Schema[]): Schema[] {\n const order: string[] = [\n schemaKeywords.string,\n schemaKeywords.datetime,\n schemaKeywords.date,\n schemaKeywords.time,\n schemaKeywords.tuple,\n schemaKeywords.number,\n schemaKeywords.object,\n schemaKeywords.enum,\n schemaKeywords.url,\n schemaKeywords.email,\n schemaKeywords.firstName,\n schemaKeywords.lastName,\n schemaKeywords.password,\n schemaKeywords.matches,\n schemaKeywords.uuid,\n schemaKeywords.min,\n schemaKeywords.max,\n schemaKeywords.default,\n schemaKeywords.describe,\n schemaKeywords.optional,\n schemaKeywords.nullable,\n schemaKeywords.nullish,\n schemaKeywords.null,\n ]\n\n if (!items) {\n return []\n }\n\n return transformers.orderBy(items, [(v) => order.indexOf(v.keyword)], ['asc'])\n}\n\nconst shouldCoerce = (coercion: ParserOptions['coercion'] | undefined, type: 'dates' | 'strings' | 'numbers'): boolean => {\n if (coercion === undefined) {\n return false\n }\n if (typeof coercion === 'boolean') {\n return coercion\n }\n\n return !!coercion[type]\n}\n\ntype ParserOptions = {\n name: string\n typeName?: string\n description?: string\n keysToOmit?: string[]\n mapper?: Record<string, string>\n coercion?: boolean | { dates?: boolean; strings?: boolean; numbers?: boolean }\n wrapOutput?: (opts: { output: string; schema: any }) => string | undefined\n rawSchema: SchemaObject\n}\n\nexport function parse({ parent, current, siblings }: SchemaTree, options: ParserOptions): string | undefined {\n const value = zodKeywordMapper[current.keyword as keyof typeof zodKeywordMapper]\n\n if (!value) {\n return undefined\n }\n\n if (isKeyword(current, schemaKeywords.union)) {\n // zod union type needs at least 2 items\n if (Array.isArray(current.args) && current.args.length === 1) {\n return parse({ parent, current: current.args[0] as Schema, siblings }, options)\n }\n if (Array.isArray(current.args) && !current.args.length) {\n return ''\n }\n\n return zodKeywordMapper.union(\n sort(current.args)\n .map((schema, _index, siblings) => parse({ parent: current, current: schema, siblings }, options))\n .filter(Boolean),\n )\n }\n\n if (isKeyword(current, schemaKeywords.and)) {\n const items = sort(current.args)\n .filter((schema: Schema) => {\n return ![schemaKeywords.optional, schemaKeywords.describe].includes(schema.keyword as typeof schemaKeywords.describe)\n })\n .map((schema: Schema, _index, siblings) => parse({ parent: current, current: schema, siblings }, options))\n .filter(Boolean)\n\n return `${items.slice(0, 1)}${zodKeywordMapper.and(items.slice(1))}`\n }\n\n if (isKeyword(current, schemaKeywords.array)) {\n return zodKeywordMapper.array(\n sort(current.args.items)\n .map((schemas, _index, siblings) => parse({ parent: current, current: schemas, siblings }, options))\n .filter(Boolean),\n current.args.min,\n current.args.max,\n current.args.unique,\n )\n }\n\n if (isKeyword(current, schemaKeywords.enum)) {\n if (current.args.asConst) {\n if (current.args.items.length === 1) {\n const child = {\n keyword: schemaKeywords.const,\n args: current.args.items[0],\n }\n return parse({ parent: current, current: child, siblings: [child] }, options)\n }\n\n return zodKeywordMapper.union(\n current.args.items\n .map((schema) => ({\n keyword: schemaKeywords.const,\n args: schema,\n }))\n .map((schema, _index, siblings) => {\n return parse({ parent: current, current: schema, siblings }, options)\n })\n .filter(Boolean),\n )\n }\n\n return zodKeywordMapper.enum(\n current.args.items.map((schema) => {\n if (schema.format === 'boolean') {\n return transformers.stringify(schema.value)\n }\n\n if (schema.format === 'number') {\n return transformers.stringify(schema.value)\n }\n return transformers.stringify(schema.value)\n }),\n )\n }\n\n if (isKeyword(current, schemaKeywords.ref)) {\n return zodKeywordMapper.ref(current.args?.name)\n }\n\n if (isKeyword(current, schemaKeywords.object)) {\n const properties = Object.entries(current.args?.properties || {})\n .filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n .map(([name, schemas]) => {\n const nameSchema = schemas.find((schema) => schema.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const mappedName = nameSchema?.args || name\n\n // custom mapper(pluginOptions)\n if (options.mapper?.[mappedName]) {\n return `\"${name}\": ${options.mapper?.[mappedName]}`\n }\n\n const baseSchemaOutput = sort(schemas)\n .map((schema) => parse({ parent: current, current: schema, siblings: schemas }, options))\n .filter(Boolean)\n .join('')\n\n return `\"${name}\": ${options.wrapOutput ? options.wrapOutput({ output: baseSchemaOutput, schema: options.rawSchema?.properties?.[name] }) || baseSchemaOutput : baseSchemaOutput}`\n })\n .join(',\\n')\n\n const additionalProperties = current.args?.additionalProperties?.length\n ? current.args.additionalProperties\n .map((schema, _index, siblings) => parse({ parent: current, current: schema, siblings }, options))\n .filter(Boolean)\n .join('')\n : undefined\n\n const text = [\n zodKeywordMapper.object(properties),\n current.args?.strict ? zodKeywordMapper.strict() : undefined,\n additionalProperties ? zodKeywordMapper.catchall(additionalProperties) : undefined,\n ].filter(Boolean)\n\n return text.join('')\n }\n\n if (isKeyword(current, schemaKeywords.tuple)) {\n return zodKeywordMapper.tuple(\n current.args.items.map((schema, _index, siblings) => parse({ parent: current, current: schema, siblings }, options)).filter(Boolean),\n )\n }\n\n if (isKeyword(current, schemaKeywords.const)) {\n if (current.args.format === 'number' && current.args.value !== undefined) {\n return zodKeywordMapper.const(Number.parseInt(current.args.value?.toString()))\n }\n\n if (current.args.format === 'boolean' && current.args.value !== undefined) {\n return zodKeywordMapper.const(current.args.value)\n }\n return zodKeywordMapper.const(transformers.stringify(current.args.value))\n }\n\n if (isKeyword(current, schemaKeywords.matches)) {\n if (current.args) {\n return zodKeywordMapper.matches(transformers.toRegExpString(current.args, null), shouldCoerce(options.coercion, 'strings'))\n }\n }\n\n if (isKeyword(current, schemaKeywords.default)) {\n if (current.args) {\n return zodKeywordMapper.default(current.args)\n }\n }\n\n if (isKeyword(current, schemaKeywords.describe)) {\n if (current.args) {\n return zodKeywordMapper.describe(transformers.stringify(current.args.toString()))\n }\n }\n\n if (isKeyword(current, schemaKeywords.string)) {\n return zodKeywordMapper.string(shouldCoerce(options.coercion, 'strings'))\n }\n\n if (isKeyword(current, schemaKeywords.uuid)) {\n return zodKeywordMapper.uuid(shouldCoerce(options.coercion, 'strings'))\n }\n\n if (isKeyword(current, schemaKeywords.email)) {\n return zodKeywordMapper.email(shouldCoerce(options.coercion, 'strings'))\n }\n\n if (isKeyword(current, schemaKeywords.url)) {\n return zodKeywordMapper.url(shouldCoerce(options.coercion, 'strings'))\n }\n\n if (isKeyword(current, schemaKeywords.number)) {\n return zodKeywordMapper.number(shouldCoerce(options.coercion, 'numbers'))\n }\n\n if (isKeyword(current, schemaKeywords.integer)) {\n return zodKeywordMapper.integer(shouldCoerce(options.coercion, 'numbers'))\n }\n\n if (isKeyword(current, schemaKeywords.min)) {\n return zodKeywordMapper.min(current.args)\n }\n if (isKeyword(current, schemaKeywords.max)) {\n return zodKeywordMapper.max(current.args)\n }\n\n if (isKeyword(current, schemaKeywords.datetime)) {\n return zodKeywordMapper.datetime(current.args.offset, current.args.local)\n }\n\n if (isKeyword(current, schemaKeywords.date)) {\n return zodKeywordMapper.date(current.args.type, shouldCoerce(options.coercion, 'dates'))\n }\n\n if (isKeyword(current, schemaKeywords.time)) {\n return zodKeywordMapper.time(current.args.type, shouldCoerce(options.coercion, 'dates'))\n }\n\n if (current.keyword in zodKeywordMapper && 'args' in current) {\n const value = zodKeywordMapper[current.keyword as keyof typeof zodKeywordMapper] as (typeof zodKeywordMapper)['const']\n\n return value((current as SchemaKeywordBase<unknown>).args as any)\n }\n\n if (isKeyword(current, schemaKeywords.optional)) {\n if (siblings.some((schema) => isKeyword(schema, schemaKeywords.default))) return ''\n\n return value()\n }\n\n if (current.keyword in zodKeywordMapper) {\n return value()\n }\n\n return undefined\n}\n","import transformers from '@kubb/core/transformers'\nimport { type Schema, schemaKeywords } from '@kubb/plugin-oas'\nimport { isKeyword } from '@kubb/plugin-oas'\nimport { Const, File, Type } from '@kubb/react'\nimport * as parserZod from '../parser.ts'\nimport type { PluginZod } from '../types.ts'\nimport type { SchemaObject } from '@kubb/oas'\n\ntype Props = {\n name: string\n typeName?: string\n inferTypeName?: string\n tree: Array<Schema>\n rawSchema: SchemaObject\n description?: string\n coercion: PluginZod['resolvedOptions']['coercion']\n mapper: PluginZod['resolvedOptions']['mapper']\n keysToOmit?: string[]\n wrapOutput?: PluginZod['resolvedOptions']['wrapOutput']\n}\n\nexport function Zod({ name, typeName, tree, rawSchema, inferTypeName, mapper, coercion, keysToOmit, description, wrapOutput }: Props) {\n const hasTuple = tree.some((item) => isKeyword(item, schemaKeywords.tuple))\n\n const output = parserZod\n .sort(tree)\n .filter((item) => {\n if (hasTuple && (isKeyword(item, schemaKeywords.min) || isKeyword(item, schemaKeywords.max))) {\n return false\n }\n\n return true\n })\n .map((schema, _index, siblings) =>\n parserZod.parse({ parent: undefined, current: schema, siblings }, { name, keysToOmit, typeName, description, mapper, coercion, wrapOutput, rawSchema }),\n )\n .filter(Boolean)\n .join('')\n\n const suffix = output.endsWith('.nullable()') ? '.unwrap().and' : '.and'\n const baseSchemaOutput =\n [output, keysToOmit?.length ? `${suffix}(z.object({ ${keysToOmit.map((key) => `${key}: z.never()`).join(',')} }))` : undefined].filter(Boolean).join('') ||\n 'z.undefined()'\n const wrappedSchemaOutput = wrapOutput ? wrapOutput({ output: baseSchemaOutput, schema: rawSchema }) || baseSchemaOutput : baseSchemaOutput\n const finalOutput = typeName ? `${wrappedSchemaOutput} as unknown as ToZod<${typeName}>` : wrappedSchemaOutput\n\n return (\n <>\n <File.Source name={name} isExportable isIndexable>\n <Const\n export\n name={name}\n JSDoc={{\n comments: [description ? `@description ${transformers.jsStringEscape(description)}` : undefined].filter(Boolean),\n }}\n >\n {finalOutput}\n </Const>\n </File.Source>\n {inferTypeName && (\n <File.Source name={inferTypeName} isExportable isIndexable isTypeOnly>\n {typeName && (\n <Type export name={inferTypeName}>\n {typeName}\n </Type>\n )}\n {!typeName && (\n <Type export name={inferTypeName}>\n {`z.infer<typeof ${name}>`}\n </Type>\n )}\n </File.Source>\n )}\n </>\n )\n}\n"]}
@@ -31,13 +31,13 @@ var zodKeywordMapper = {
31
31
  any: () => "z.any()",
32
32
  unknown: () => "z.unknown()",
33
33
  number: (coercion, min, max) => {
34
- return [coercion ? "z.coerce.number()" : "z.number()", min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined].filter(Boolean).join("");
34
+ return [coercion ? "z.coerce.number()" : "z.number()", min !== void 0 ? `.min(${min})` : void 0, max !== void 0 ? `.max(${max})` : void 0].filter(Boolean).join("");
35
35
  },
36
36
  integer: (coercion, min, max) => {
37
37
  return [
38
38
  coercion ? "z.coerce.number().int()" : "z.number().int()",
39
- min !== undefined ? `.min(${min})` : undefined,
40
- max !== undefined ? `.max(${max})` : undefined
39
+ min !== void 0 ? `.min(${min})` : void 0,
40
+ max !== void 0 ? `.max(${max})` : void 0
41
41
  ].filter(Boolean).join("");
42
42
  },
43
43
  object: (value) => {
@@ -46,7 +46,7 @@ var zodKeywordMapper = {
46
46
  })`;
47
47
  },
48
48
  string: (coercion, min, max) => {
49
- return [coercion ? "z.coerce.string()" : "z.string()", min !== undefined ? `.min(${min})` : undefined, max !== undefined ? `.max(${max})` : undefined].filter(Boolean).join("");
49
+ return [coercion ? "z.coerce.string()" : "z.string()", min !== void 0 ? `.min(${min})` : void 0, max !== void 0 ? `.max(${max})` : void 0].filter(Boolean).join("");
50
50
  },
51
51
  boolean: () => "z.boolean()",
52
52
  undefined: () => "z.undefined()",
@@ -56,9 +56,9 @@ var zodKeywordMapper = {
56
56
  array: (items = [], min, max, unique) => {
57
57
  return [
58
58
  `z.array(${items?.join("")})`,
59
- min !== undefined ? `.min(${min})` : undefined,
60
- max !== undefined ? `.max(${max})` : undefined,
61
- unique ? `.refine(items => new Set(items).size === items.length, { message: "Array entries must be unique" })` : undefined
59
+ min !== void 0 ? `.min(${min})` : void 0,
60
+ max !== void 0 ? `.max(${max})` : void 0,
61
+ unique ? `.refine(items => new Set(items).size === items.length, { message: "Array entries must be unique" })` : void 0
62
62
  ].filter(Boolean).join("");
63
63
  },
64
64
  tuple: (items = []) => `z.tuple([${items?.join(", ")}])`,
@@ -121,24 +121,24 @@ var zodKeywordMapper = {
121
121
  optional: () => ".optional()",
122
122
  matches: (value = "", coercion) => coercion ? `z.coerce.string().regex(${value})` : `z.string().regex(${value})`,
123
123
  email: (coercion) => coercion ? "z.coerce.string().email()" : "z.string().email()",
124
- firstName: undefined,
125
- lastName: undefined,
126
- password: undefined,
127
- phone: undefined,
128
- readOnly: undefined,
129
- writeOnly: undefined,
124
+ firstName: void 0,
125
+ lastName: void 0,
126
+ password: void 0,
127
+ phone: void 0,
128
+ readOnly: void 0,
129
+ writeOnly: void 0,
130
130
  ref: (value) => {
131
131
  if (!value) {
132
- return undefined;
132
+ return void 0;
133
133
  }
134
134
  return `z.lazy(() => ${value})`;
135
135
  },
136
136
  blob: () => "z.instanceof(File)",
137
- deprecated: undefined,
138
- example: undefined,
139
- schema: undefined,
140
- catchall: (value) => value ? `.catchall(${value})` : undefined,
141
- name: undefined
137
+ deprecated: void 0,
138
+ example: void 0,
139
+ schema: void 0,
140
+ catchall: (value) => value ? `.catchall(${value})` : void 0,
141
+ name: void 0
142
142
  };
143
143
  function sort(items) {
144
144
  const order = [
@@ -172,7 +172,7 @@ function sort(items) {
172
172
  return transformers2.orderBy(items, [(v) => order.indexOf(v.keyword)], ["asc"]);
173
173
  }
174
174
  var shouldCoerce = (coercion, type) => {
175
- if (coercion === undefined) {
175
+ if (coercion === void 0) {
176
176
  return false;
177
177
  }
178
178
  if (typeof coercion === "boolean") {
@@ -183,7 +183,7 @@ var shouldCoerce = (coercion, type) => {
183
183
  function parse({ parent, current, siblings }, options) {
184
184
  const value = zodKeywordMapper[current.keyword];
185
185
  if (!value) {
186
- return undefined;
186
+ return void 0;
187
187
  }
188
188
  if (isKeyword(current, schemaKeywords.union)) {
189
189
  if (Array.isArray(current.args) && current.args.length === 1) {
@@ -253,13 +253,14 @@ function parse({ parent, current, siblings }, options) {
253
253
  if (options.mapper?.[mappedName]) {
254
254
  return `"${name}": ${options.mapper?.[mappedName]}`;
255
255
  }
256
- return `"${name}": ${sort(schemas).map((schema) => parse({ parent: current, current: schema, siblings: schemas }, options)).filter(Boolean).join("")}`;
256
+ const baseSchemaOutput = sort(schemas).map((schema) => parse({ parent: current, current: schema, siblings: schemas }, options)).filter(Boolean).join("");
257
+ return `"${name}": ${options.wrapOutput ? options.wrapOutput({ output: baseSchemaOutput, schema: options.rawSchema?.properties?.[name] }) || baseSchemaOutput : baseSchemaOutput}`;
257
258
  }).join(",\n");
258
- const additionalProperties = current.args?.additionalProperties?.length ? current.args.additionalProperties.map((schema, _index, siblings2) => parse({ parent: current, current: schema, siblings: siblings2 }, options)).filter(Boolean).join("") : undefined;
259
+ const additionalProperties = current.args?.additionalProperties?.length ? current.args.additionalProperties.map((schema, _index, siblings2) => parse({ parent: current, current: schema, siblings: siblings2 }, options)).filter(Boolean).join("") : void 0;
259
260
  const text = [
260
261
  zodKeywordMapper.object(properties),
261
- current.args?.strict ? zodKeywordMapper.strict() : undefined,
262
- additionalProperties ? zodKeywordMapper.catchall(additionalProperties) : undefined
262
+ current.args?.strict ? zodKeywordMapper.strict() : void 0,
263
+ additionalProperties ? zodKeywordMapper.catchall(additionalProperties) : void 0
263
264
  ].filter(Boolean);
264
265
  return text.join("");
265
266
  }
@@ -269,10 +270,10 @@ function parse({ parent, current, siblings }, options) {
269
270
  );
270
271
  }
271
272
  if (isKeyword(current, schemaKeywords.const)) {
272
- if (current.args.format === "number" && current.args.value !== undefined) {
273
+ if (current.args.format === "number" && current.args.value !== void 0) {
273
274
  return zodKeywordMapper.const(Number.parseInt(current.args.value?.toString()));
274
275
  }
275
- if (current.args.format === "boolean" && current.args.value !== undefined) {
276
+ if (current.args.format === "boolean" && current.args.value !== void 0) {
276
277
  return zodKeywordMapper.const(current.args.value);
277
278
  }
278
279
  return zodKeywordMapper.const(transformers2.stringify(current.args.value));
@@ -336,9 +337,9 @@ function parse({ parent, current, siblings }, options) {
336
337
  if (current.keyword in zodKeywordMapper) {
337
338
  return value();
338
339
  }
339
- return undefined;
340
+ return void 0;
340
341
  }
341
- function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit, description }) {
342
+ function Zod({ name, typeName, tree, rawSchema, inferTypeName, mapper, coercion, keysToOmit, description, wrapOutput }) {
342
343
  const hasTuple = tree.some((item) => isKeyword(item, schemaKeywords.tuple));
343
344
  const output = sort(tree).filter((item) => {
344
345
  if (hasTuple && (isKeyword(item, schemaKeywords.min) || isKeyword(item, schemaKeywords.max))) {
@@ -346,9 +347,12 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
346
347
  }
347
348
  return true;
348
349
  }).map(
349
- (schema, _index, siblings) => parse({ parent: undefined, current: schema, siblings }, { name, keysToOmit, typeName, description, mapper, coercion })
350
+ (schema, _index, siblings) => parse({ parent: void 0, current: schema, siblings }, { name, keysToOmit, typeName, description, mapper, coercion, wrapOutput, rawSchema })
350
351
  ).filter(Boolean).join("");
351
352
  const suffix = output.endsWith(".nullable()") ? ".unwrap().and" : ".and";
353
+ const baseSchemaOutput = [output, keysToOmit?.length ? `${suffix}(z.object({ ${keysToOmit.map((key) => `${key}: z.never()`).join(",")} }))` : void 0].filter(Boolean).join("") || "z.undefined()";
354
+ const wrappedSchemaOutput = wrapOutput ? wrapOutput({ output: baseSchemaOutput, schema: rawSchema }) || baseSchemaOutput : baseSchemaOutput;
355
+ const finalOutput = typeName ? `${wrappedSchemaOutput} as unknown as ToZod<${typeName}>` : wrappedSchemaOutput;
352
356
  return /* @__PURE__ */ jsxs(Fragment, { children: [
353
357
  /* @__PURE__ */ jsx(File.Source, { name, isExportable: true, isIndexable: true, children: /* @__PURE__ */ jsx(
354
358
  Const,
@@ -356,13 +360,9 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
356
360
  export: true,
357
361
  name,
358
362
  JSDoc: {
359
- comments: [description ? `@description ${transformers2.jsStringEscape(description)}` : undefined].filter(Boolean)
363
+ comments: [description ? `@description ${transformers2.jsStringEscape(description)}` : void 0].filter(Boolean)
360
364
  },
361
- children: [
362
- output,
363
- keysToOmit?.length ? `${suffix}(z.object({ ${keysToOmit.map((key) => `${key}: z.never()`).join(",")} }))` : undefined,
364
- typeName ? `as unknown as ToZod<${typeName}>` : undefined
365
- ].filter(Boolean).join("") || "z.undefined()"
365
+ children: finalOutput
366
366
  }
367
367
  ) }),
368
368
  inferTypeName && /* @__PURE__ */ jsxs(File.Source, { name: inferTypeName, isExportable: true, isIndexable: true, isTypeOnly: true, children: [
@@ -373,5 +373,5 @@ function Zod({ name, typeName, tree, inferTypeName, mapper, coercion, keysToOmit
373
373
  }
374
374
 
375
375
  export { Operations, Zod };
376
- //# sourceMappingURL=chunk-CPI4DGDT.js.map
377
- //# sourceMappingURL=chunk-CPI4DGDT.js.map
376
+ //# sourceMappingURL=chunk-XP7EMBLS.js.map
377
+ //# sourceMappingURL=chunk-XP7EMBLS.js.map