@kubb/plugin-zod 4.32.0 → 4.32.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.
- package/dist/{chunk-DKWOrOAv.js → chunk--u3MIqq1.js} +1 -2
- package/dist/{Zod-SRUZu-W_.cjs → components-C-rV8Ij4.cjs} +29 -38
- package/dist/components-C-rV8Ij4.cjs.map +1 -0
- package/dist/{Zod-GzH2I46C.js → components-CK7yDnVt.js} +4 -8
- package/dist/components-CK7yDnVt.js.map +1 -0
- package/dist/components.cjs +4 -5
- package/dist/components.d.ts +2 -2
- package/dist/components.js +2 -3
- package/dist/{zodGenerator--tgD2hL9.js → generators-HVqNlkDw.js} +4 -6
- package/dist/generators-HVqNlkDw.js.map +1 -0
- package/dist/{zodGenerator-DIAQIZlh.cjs → generators-Q_WrTrfv.cjs} +17 -19
- package/dist/generators-Q_WrTrfv.cjs.map +1 -0
- package/dist/generators.cjs +4 -5
- package/dist/generators.d.ts +2 -2
- package/dist/generators.js +2 -3
- package/dist/index.cjs +7 -8
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/templates/ToZod.source.cjs +2 -3
- package/dist/templates/ToZod.source.cjs.map +1 -1
- package/dist/templates/ToZod.source.d.ts +1 -1
- package/dist/templates/ToZod.source.js +1 -1
- package/dist/{types-B-1DRHH9.d.ts → types-D0wsPC6Y.d.ts} +2 -2
- package/package.json +5 -5
- package/dist/Zod-GzH2I46C.js.map +0 -1
- package/dist/Zod-SRUZu-W_.cjs.map +0 -1
- package/dist/zodGenerator--tgD2hL9.js.map +0 -1
- package/dist/zodGenerator-DIAQIZlh.cjs.map +0 -1
|
@@ -10,16 +10,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
10
10
|
var __getProtoOf = Object.getPrototypeOf;
|
|
11
11
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
12
|
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
}
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
14
|
+
key = keys[i];
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: ((k) => from[k]).bind(null, key),
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
23
19
|
}
|
|
24
20
|
return to;
|
|
25
21
|
};
|
|
@@ -27,7 +23,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
23
|
value: mod,
|
|
28
24
|
enumerable: true
|
|
29
25
|
}) : target, mod));
|
|
30
|
-
|
|
31
26
|
//#endregion
|
|
32
27
|
let _kubb_core_transformers = require("@kubb/core/transformers");
|
|
33
28
|
_kubb_core_transformers = __toESM(_kubb_core_transformers);
|
|
@@ -35,7 +30,6 @@ let _kubb_plugin_oas = require("@kubb/plugin-oas");
|
|
|
35
30
|
let _kubb_react_fabric = require("@kubb/react-fabric");
|
|
36
31
|
let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime");
|
|
37
32
|
let remeda = require("remeda");
|
|
38
|
-
|
|
39
33
|
//#region src/components/Operations.tsx
|
|
40
34
|
function Operations({ name, operations }) {
|
|
41
35
|
const operationsJSON = operations.reduce((prev, acc) => {
|
|
@@ -108,7 +102,6 @@ function Operations({ name, operations }) {
|
|
|
108
102
|
})
|
|
109
103
|
] });
|
|
110
104
|
}
|
|
111
|
-
|
|
112
105
|
//#endregion
|
|
113
106
|
//#region src/parser.ts
|
|
114
107
|
/**
|
|
@@ -703,7 +696,6 @@ const parse = (0, _kubb_plugin_oas.createParser)({
|
|
|
703
696
|
}
|
|
704
697
|
}
|
|
705
698
|
});
|
|
706
|
-
|
|
707
699
|
//#endregion
|
|
708
700
|
//#region src/components/Zod.tsx
|
|
709
701
|
function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, keysToOmit, description, wrapOutput, version, guidType, emptySchemaType, mini = false }) {
|
|
@@ -714,12 +706,11 @@ function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, ke
|
|
|
714
706
|
});
|
|
715
707
|
const baseSchemas = mini ? filterMiniModifiers(schemas) : schemas;
|
|
716
708
|
const output = baseSchemas.map((schemaKeyword, index) => {
|
|
717
|
-
const siblings = baseSchemas.filter((_, i) => i !== index);
|
|
718
709
|
return parse({
|
|
719
710
|
schema,
|
|
720
711
|
parent: void 0,
|
|
721
712
|
current: schemaKeyword,
|
|
722
|
-
siblings,
|
|
713
|
+
siblings: baseSchemas.filter((_, i) => i !== index),
|
|
723
714
|
name
|
|
724
715
|
}, {
|
|
725
716
|
mapper,
|
|
@@ -786,30 +777,30 @@ function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, ke
|
|
|
786
777
|
})]
|
|
787
778
|
})] });
|
|
788
779
|
}
|
|
789
|
-
|
|
790
780
|
//#endregion
|
|
791
|
-
Object.defineProperty(exports,
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
781
|
+
Object.defineProperty(exports, "Operations", {
|
|
782
|
+
enumerable: true,
|
|
783
|
+
get: function() {
|
|
784
|
+
return Operations;
|
|
785
|
+
}
|
|
796
786
|
});
|
|
797
|
-
Object.defineProperty(exports,
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
787
|
+
Object.defineProperty(exports, "Zod", {
|
|
788
|
+
enumerable: true,
|
|
789
|
+
get: function() {
|
|
790
|
+
return Zod;
|
|
791
|
+
}
|
|
802
792
|
});
|
|
803
|
-
Object.defineProperty(exports,
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
793
|
+
Object.defineProperty(exports, "__name", {
|
|
794
|
+
enumerable: true,
|
|
795
|
+
get: function() {
|
|
796
|
+
return __name;
|
|
797
|
+
}
|
|
808
798
|
});
|
|
809
|
-
Object.defineProperty(exports,
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
799
|
+
Object.defineProperty(exports, "__toESM", {
|
|
800
|
+
enumerable: true,
|
|
801
|
+
get: function() {
|
|
802
|
+
return __toESM;
|
|
803
|
+
}
|
|
814
804
|
});
|
|
815
|
-
|
|
805
|
+
|
|
806
|
+
//# sourceMappingURL=components-C-rV8Ij4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-C-rV8Ij4.cjs","names":["File","Type","Const","transformers","schemaKeywords","transformers","SchemaGenerator","SchemaGenerator","schemaKeywords","parserZod.sort","parserZod.filterMiniModifiers","parserZod.parse","parserZod.wrapWithMiniModifiers","parserZod.extractMiniModifiers","File","Const","transformers","Type"],"sources":["../src/components/Operations.tsx","../src/parser.ts","../src/components/Zod.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { SchemaNames } from '@kubb/plugin-oas/hooks'\nimport { Const, File, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype Props = {\n name: string\n operations: Array<{ operation: Operation; data: SchemaNames }>\n}\n\nexport function Operations({ name, operations }: Props): FabricReactNode {\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=\"OperationSchema\" isExportable isIndexable>\n <Type name=\"OperationSchema\" export>{`{\n readonly request: z.ZodTypeAny | undefined;\n readonly parameters: {\n readonly path: z.ZodTypeAny | undefined;\n readonly query: z.ZodTypeAny | undefined;\n readonly header: z.ZodTypeAny | undefined;\n };\n readonly responses: {\n readonly [status: number]: z.ZodTypeAny;\n readonly default: z.ZodTypeAny;\n };\n readonly errors: {\n readonly [status: number]: z.ZodTypeAny;\n };\n}`}</Type>\n </File.Source>\n <File.Source name=\"OperationsMap\" isExportable isIndexable>\n <Type name=\"OperationsMap\" export>\n {'Record<string, OperationSchema>'}\n </Type>\n </File.Source>\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 { Schema, SchemaMapper } from '@kubb/plugin-oas'\nimport { createParser, findSchemaKeyword, isKeyword, SchemaGenerator, type SchemaKeywordMapper, schemaKeywords } from '@kubb/plugin-oas'\nimport { sortBy } from 'remeda'\n\n//TODO add zodKeywordMapper as function that returns 3 versions: v3, v4 and v4 mini, this can also be used to have the custom mapping(see object type)\n// also include shouldCoerce\n\n/**\n * Helper to build string/array length constraint checks for Zod Mini mode\n */\nfunction buildLengthChecks(min?: number, max?: number): string[] {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minLength(${min})`)\n if (max !== undefined) checks.push(`z.maxLength(${max})`)\n return checks\n}\n\nconst zodKeywordMapper = {\n any: () => 'z.any()',\n unknown: () => 'z.unknown()',\n void: () => 'z.void()',\n number: (coercion?: boolean, min?: number, max?: number, exclusiveMinimum?: number, exclusiveMaximum?: number, mini?: boolean) => {\n if (mini) {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minimum(${min})`)\n if (max !== undefined) checks.push(`z.maximum(${max})`)\n if (exclusiveMinimum !== undefined) checks.push(`z.minimum(${exclusiveMinimum}, { exclusive: true })`)\n if (exclusiveMaximum !== undefined) checks.push(`z.maximum(${exclusiveMaximum}, { exclusive: true })`)\n if (checks.length > 0) {\n return `z.number().check(${checks.join(', ')})`\n }\n return 'z.number()'\n }\n return [\n coercion ? 'z.coerce.number()' : 'z.number()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n exclusiveMinimum !== undefined ? `.gt(${exclusiveMinimum})` : undefined,\n exclusiveMaximum !== undefined ? `.lt(${exclusiveMaximum})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n integer: (coercion?: boolean, min?: number, max?: number, version: '3' | '4' = '3', exclusiveMinimum?: number, exclusiveMaximum?: number, mini?: boolean) => {\n if (mini) {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minimum(${min})`)\n if (max !== undefined) checks.push(`z.maximum(${max})`)\n if (exclusiveMinimum !== undefined) checks.push(`z.minimum(${exclusiveMinimum}, { exclusive: true })`)\n if (exclusiveMaximum !== undefined) checks.push(`z.maximum(${exclusiveMaximum}, { exclusive: true })`)\n if (checks.length > 0) {\n return `z.int().check(${checks.join(', ')})`\n }\n return 'z.int()'\n }\n return [\n coercion ? 'z.coerce.number().int()' : version === '4' ? 'z.int()' : 'z.number().int()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n exclusiveMinimum !== undefined ? `.gt(${exclusiveMinimum})` : undefined,\n exclusiveMaximum !== undefined ? `.lt(${exclusiveMaximum})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n bigint: (coercion?: boolean) => (coercion ? 'z.coerce.bigint()' : 'z.bigint()'),\n interface: (value?: string, strict?: boolean) => {\n if (strict) {\n return `z.strictInterface({\n ${value}\n })`\n }\n return `z.interface({\n ${value}\n })`\n },\n object: (value?: string, strict?: boolean, version: '3' | '4' = '3') => {\n if (version === '4' && strict) {\n return `z.strictObject({\n ${value}\n })`\n }\n\n if (strict) {\n return `z.object({\n ${value}\n }).strict()`\n }\n\n return `z.object({\n ${value}\n })`\n },\n string: (coercion?: boolean, min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.string().check(${checks.join(', ')})`\n }\n return 'z.string()'\n }\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 //support for discriminatedUnion\n boolean: () => 'z.boolean()',\n undefined: () => 'z.undefined()',\n nullable: (value?: string) => {\n if (value) {\n return `z.nullable(${value})`\n }\n return '.nullable()'\n },\n null: () => 'z.null()',\n nullish: (value?: string) => {\n if (value) {\n return `z.nullish(${value})`\n }\n return '.nullish()'\n },\n array: (items: string[] = [], min?: number, max?: number, unique?: boolean, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (unique) checks.push(`z.refine(items => new Set(items).size === items.length, { message: \"Array entries must be unique\" })`)\n if (checks.length > 0) {\n return `z.array(${items?.join('')}).check(${checks.join(', ')})`\n }\n return `z.array(${items?.join('')})`\n }\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, version: '3' | '4' = '3', mini?: boolean) => {\n // Zod Mini doesn't support .datetime() method, use plain string\n if (mini) {\n return 'z.string()'\n }\n\n if (offset) {\n return version === '4' ? `z.iso.datetime({ offset: ${offset} })` : `z.string().datetime({ offset: ${offset} })`\n }\n\n if (local) {\n return version === '4' ? `z.iso.datetime({ local: ${local} })` : `z.string().datetime({ local: ${local} })`\n }\n\n return version === '4' ? 'z.iso.datetime()' : '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, version: '3' | '4' = '3') => {\n if (type === 'string') {\n return version === '4' ? 'z.iso.date()' : '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, version: '3' | '4' = '3') => {\n if (type === 'string') {\n return version === '4' ? 'z.iso.time()' : 'z.string().time()'\n }\n\n if (coercion) {\n return 'z.coerce.date()'\n }\n\n return 'z.date()'\n },\n uuid: ({\n coercion,\n version = '3',\n guidType = 'uuid',\n min,\n max,\n mini,\n }: {\n coercion?: boolean\n version?: '3' | '4'\n guidType?: 'uuid' | 'guid'\n min?: number\n max?: number\n mini?: boolean\n } = {}) => {\n const zodGuidType = version === '4' && guidType === 'guid' ? 'guid' : 'uuid'\n\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.${zodGuidType}().check(${checks.join(', ')})`\n }\n return `z.${zodGuidType}()`\n }\n\n const zodV4UuidSchema = `z.${zodGuidType}()`\n\n return [\n coercion ? (version === '4' ? zodV4UuidSchema : 'z.coerce.string().uuid()') : version === '4' ? zodV4UuidSchema : 'z.string().uuid()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n url: (coercion?: boolean, version: '3' | '4' = '3', min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.url().check(${checks.join(', ')})`\n }\n return 'z.url()'\n }\n return [\n coercion ? (version === '4' ? 'z.url()' : 'z.coerce.string().url()') : version === '4' ? 'z.url()' : 'z.string().url()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n default: (value?: string | number | boolean | object, innerSchema?: string, mini?: boolean, isBigInt?: boolean) => {\n if (mini && innerSchema) {\n // Wrap numeric values in BigInt() for bigint types in mini mode\n const defaultValue = isBigInt && typeof value === 'number' ? `BigInt(${value})` : typeof value === 'object' ? '{}' : (value ?? '')\n return `z._default(${innerSchema}, ${defaultValue})`\n }\n\n if (typeof value === 'object') {\n return '.default({})'\n }\n\n if (value === undefined) {\n return '.default()'\n }\n\n if (typeof value === 'string' && !value) {\n return `.default('')`\n }\n\n // Wrap numeric values in BigInt() for bigint types\n if (isBigInt && typeof value === 'number') {\n return `.default(BigInt(${value}))`\n }\n\n return `.default(${value ?? ''})`\n },\n and: (items: string[] = [], mini?: boolean) => {\n // zod/mini doesn't support .and() method, so we can't use intersection types\n // In mini mode, we try to extract and append .check() calls instead\n if (mini && items.length > 0) {\n // Try to extract check calls from additional items\n const checks: string[] = []\n for (const item of items) {\n // Extract .check(...) from patterns like \"z.string().check(...)\"\n // Need to handle nested parentheses properly\n const checkStart = item.indexOf('.check(')\n if (checkStart !== -1) {\n // Find the matching closing parenthesis\n let depth = 0\n let i = checkStart + 7 // length of '.check('\n let checkContent = ''\n while (i < item.length) {\n const char = item[i]\n if (char === '(') depth++\n else if (char === ')') {\n if (depth === 0) break\n depth--\n }\n checkContent += char\n i++\n }\n if (checkContent) {\n checks.push(checkContent)\n }\n }\n }\n\n if (checks.length > 0) {\n // Append checks to the base schema\n return `.check(${checks.join(', ')})`\n }\n\n // If we can't extract checks, just use the first schema (limitation)\n return ''\n }\n return items?.map((item) => `.and(${item})`).join('')\n },\n describe: (value = '', innerSchema?: string, mini?: boolean) => {\n if (mini) {\n return undefined\n }\n\n if (innerSchema) {\n return `z.describe(${innerSchema}, ${value})`\n }\n return `.describe(${value})`\n },\n max: undefined,\n min: undefined,\n optional: (value?: string) => {\n if (value) {\n return `z.optional(${value})`\n }\n return '.optional()'\n },\n matches: (value = '', coercion?: boolean, mini?: boolean, min?: number, max?: number) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n checks.push(`z.regex(${value})`)\n return `z.string().check(${checks.join(', ')})`\n }\n return [\n coercion ? 'z.coerce.string()' : 'z.string()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n `.regex(${value})`,\n ]\n .filter(Boolean)\n .join('')\n },\n email: (coercion?: boolean, version: '3' | '4' = '3', min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.email().check(${checks.join(', ')})`\n }\n return 'z.email()'\n }\n return [\n coercion ? (version === '4' ? 'z.email()' : 'z.coerce.string().email()') : version === '4' ? 'z.email()' : 'z.string().email()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\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, mini?: boolean) => {\n // Zod Mini doesn't support .catchall() method\n if (mini) {\n return undefined\n }\n return value ? `.catchall(${value})` : undefined\n },\n name: undefined,\n exclusiveMinimum: undefined,\n exclusiveMaximum: 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.null,\n schemaKeywords.min,\n schemaKeywords.max,\n schemaKeywords.default,\n schemaKeywords.describe,\n schemaKeywords.optional,\n schemaKeywords.nullable,\n schemaKeywords.nullish,\n ]\n\n if (!items) {\n return []\n }\n\n return sortBy(items, [(v) => order.indexOf(v.keyword), 'asc'])\n}\n\ntype MiniModifiers = {\n hasOptional?: boolean\n hasNullable?: boolean\n hasNullish?: boolean\n defaultValue?: string | number | true | object\n isBigInt?: boolean\n}\n\n/**\n * Keywords that represent modifiers for mini mode\n * These are separated from the base schema and wrapped around it\n * Note: describe is included to filter it out, but won't be wrapped (Zod Mini doesn't support describe)\n */\nexport const miniModifierKeywords = [schemaKeywords.optional, schemaKeywords.nullable, schemaKeywords.nullish, schemaKeywords.default, schemaKeywords.describe]\n\n/**\n * Extracts mini mode modifiers from a schemas array\n * This can be reused by other parsers (e.g., valibot) that need similar functionality\n * Note: describe is not included as Zod Mini doesn't support it\n */\nexport function extractMiniModifiers(schemas: Schema[]): MiniModifiers {\n const defaultSchema = schemas.find((item) => isKeyword(item, schemaKeywords.default)) as { keyword: string; args: unknown } | undefined\n const isBigInt = schemas.some((item) => isKeyword(item, schemaKeywords.bigint))\n\n return {\n hasOptional: schemas.some((item) => isKeyword(item, schemaKeywords.optional)),\n hasNullable: schemas.some((item) => isKeyword(item, schemaKeywords.nullable)),\n hasNullish: schemas.some((item) => isKeyword(item, schemaKeywords.nullish)),\n defaultValue: defaultSchema?.args as string | number | true | object | undefined,\n isBigInt,\n }\n}\n\n/**\n * Filters out modifier keywords from schemas for mini mode base schema parsing\n * This can be reused by other parsers (e.g., valibot) that need similar functionality\n */\nexport function filterMiniModifiers(schemas: Schema[]): Schema[] {\n return schemas.filter((item) => !miniModifierKeywords.some((keyword) => isKeyword(item, keyword)))\n}\n\n/**\n * Wraps an output string with Zod Mini functional modifiers\n * Order: default (innermost) -> nullable -> optional (outermost)\n * OR: default -> nullish\n * Note: describe is not supported in Zod Mini and is skipped\n */\nexport function wrapWithMiniModifiers(output: string, modifiers: MiniModifiers): string {\n let result = output\n\n // Apply default first (innermost wrapper)\n if (modifiers.defaultValue !== undefined) {\n result = zodKeywordMapper.default(modifiers.defaultValue, result, true, modifiers.isBigInt)!\n }\n\n // Apply nullish, nullable, or optional (outer wrappers for optionality)\n if (modifiers.hasNullish) {\n result = zodKeywordMapper.nullish(result)!\n } else {\n if (modifiers.hasNullable) {\n result = zodKeywordMapper.nullable(result)!\n }\n if (modifiers.hasOptional) {\n result = zodKeywordMapper.optional(result)!\n }\n }\n\n return result\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 mapper?: Record<string, string>\n coercion?: boolean | { dates?: boolean; strings?: boolean; numbers?: boolean }\n wrapOutput?: (opts: { output: string; schema: any }) => string | undefined\n version: '3' | '4'\n guidType?: 'uuid' | 'guid'\n skipLazyForRefs?: boolean\n mini?: boolean\n}\n\n// Create the parser using createParser\nexport const parse = createParser<string, ParserOptions>({\n mapper: zodKeywordMapper,\n handlers: {\n union(tree, options) {\n const { current, schema, parent, name, siblings } = tree\n\n // zod union type needs at least 2 items\n if (Array.isArray(current.args) && current.args.length === 1) {\n return this.parse({ schema, parent, name, 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((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean),\n )\n },\n and(tree, options) {\n const { current, schema, name } = tree\n\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((it: Schema, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean)\n\n return `${items.slice(0, 1)}${zodKeywordMapper.and(items.slice(1), options.mini)}`\n },\n array(tree, options) {\n const { current, schema, name } = tree\n\n return zodKeywordMapper.array(\n sort(current.args.items)\n .map((it, _index, siblings) => {\n return this.parse({ schema, parent: current, name, current: it, siblings }, options)\n })\n .filter(Boolean),\n current.args.min,\n current.args.max,\n current.args.unique,\n options.mini,\n )\n },\n enum(tree, options) {\n const { current, schema, name } = tree\n\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 this.parse({ schema, parent: current, name, 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((it, _index, siblings) => {\n return this.parse({ schema, parent: current, name, current: it, 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 ref(tree, options) {\n const { current } = tree\n\n // Skip z.lazy wrapper if skipLazyForRefs is true (e.g., inside v4 getters)\n if (options.skipLazyForRefs) {\n return current.args?.name\n }\n return zodKeywordMapper.ref(current.args?.name)\n },\n object(tree, options) {\n const { current, schema, name } = tree\n\n const propertyEntries = Object.entries(current.args?.properties || {}).filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n\n const properties = propertyEntries\n .map(([propertyName, schemas]) => {\n const nameSchema = schemas.find((it) => it.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const isNullable = schemas.some((it) => isKeyword(it, schemaKeywords.nullable))\n const isNullish = schemas.some((it) => isKeyword(it, schemaKeywords.nullish))\n const isOptional = schemas.some((it) => isKeyword(it, schemaKeywords.optional))\n const hasRef = !!SchemaGenerator.find(schemas, schemaKeywords.ref)\n\n const mappedName = nameSchema?.args || propertyName\n\n // custom mapper(pluginOptions)\n // Use Object.hasOwn to avoid matching inherited properties like 'toString', 'valueOf', etc.\n if (options.mapper && Object.hasOwn(options.mapper, mappedName)) {\n return `\"${propertyName}\": ${options.mapper?.[mappedName]}`\n }\n\n const baseSchemaOutput = sort(schemas)\n .filter((schema) => {\n return !isKeyword(schema, schemaKeywords.optional) && !isKeyword(schema, schemaKeywords.nullable) && !isKeyword(schema, schemaKeywords.nullish)\n })\n .map((it) => {\n // For v4 with refs, skip z.lazy wrapper since the getter provides lazy evaluation\n const skipLazyForRefs = options.version === '4' && hasRef\n return this.parse({ schema, parent: current, name, current: it, siblings: schemas }, { ...options, skipLazyForRefs })\n })\n .filter(Boolean)\n .join('')\n\n const objectValue = options.wrapOutput\n ? options.wrapOutput({ output: baseSchemaOutput, schema: schema?.properties?.[propertyName] }) || baseSchemaOutput\n : baseSchemaOutput\n\n if (options.version === '4' && hasRef) {\n // In mini mode, use functional wrappers instead of chainable methods\n if (options.mini) {\n // both optional and nullable\n if (isNullish) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.nullish(objectValue)}\n }`\n }\n\n // undefined\n if (isOptional) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.optional(objectValue)}\n }`\n }\n\n // null\n if (isNullable) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.nullable(objectValue)}\n }`\n }\n\n return `get \"${propertyName}\"(){\n return ${objectValue}\n }`\n }\n\n // Non-mini mode uses chainable methods\n // both optional and nullable\n if (isNullish) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.nullish()}\n }`\n }\n\n // undefined\n if (isOptional) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.optional()}\n }`\n }\n\n // null\n if (isNullable) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.nullable()}\n }`\n }\n\n return `get \"${propertyName}\"(){\n return ${objectValue}\n }`\n }\n\n // both optional and nullable\n if (isNullish && options.mini) {\n return `\"${propertyName}\": ${zodKeywordMapper.nullish(objectValue)}`\n }\n\n if (isNullish && !options.mini) {\n return `\"${propertyName}\": ${objectValue}${zodKeywordMapper.nullish()}`\n }\n\n // undefined\n if (isOptional) {\n return `\"${propertyName}\": ${zodKeywordMapper.optional(objectValue)}`\n }\n\n // null\n if (isNullable) {\n return `\"${propertyName}\": ${zodKeywordMapper.nullable(objectValue)}`\n }\n\n return `\"${propertyName}\": ${objectValue}`\n })\n .join(',\\n')\n\n const additionalProperties = current.args?.additionalProperties?.length\n ? current.args.additionalProperties\n .map((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean)\n .join('')\n : undefined\n\n const text = [\n zodKeywordMapper.object(properties, current.args?.strict, options.version),\n additionalProperties ? zodKeywordMapper.catchall(additionalProperties, options.mini) : undefined,\n ].filter(Boolean)\n\n return text.join('')\n },\n tuple(tree, options) {\n const { current, schema, name } = tree\n\n return zodKeywordMapper.tuple(\n current.args.items.map((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options)).filter(Boolean),\n )\n },\n const(tree, _options) {\n const { current } = tree\n\n if (current.args.format === 'number' && current.args.value !== undefined) {\n return zodKeywordMapper.const(Number(current.args.value))\n }\n\n if (current.args.format === 'boolean' && current.args.value !== undefined) {\n return zodKeywordMapper.const(typeof current.args.value === 'boolean' ? current.args.value : undefined)\n }\n return zodKeywordMapper.const(transformers.stringify(current.args.value))\n },\n matches(tree, options) {\n const { current, siblings } = tree\n\n // Early exit: if siblings contain both matches and ref → skip matches entirely\n const hasRef = siblings.some((it) => isKeyword(it, schemaKeywords.ref))\n if (hasRef) {\n return undefined // strip matches\n }\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n if (current.args) {\n return zodKeywordMapper.matches(\n transformers.toRegExpString(current.args, null),\n shouldCoerce(options.coercion, 'strings'),\n options.mini,\n minSchema?.args,\n maxSchema?.args,\n )\n }\n return undefined\n },\n default(tree, options) {\n const { current, siblings } = tree\n\n // In mini mode, default is handled by wrapWithMiniModifiers\n if (options.mini) {\n return undefined\n }\n\n // Check if this is a bigint type by looking at siblings\n const isBigInt = siblings.some((it) => isKeyword(it, schemaKeywords.bigint))\n\n if (current.args !== undefined) {\n return zodKeywordMapper.default(current.args, undefined, undefined, isBigInt)\n }\n // When args is undefined, call the mapper without arguments\n return zodKeywordMapper.default()\n },\n describe(tree, options) {\n const { current } = tree\n\n if (current.args) {\n return zodKeywordMapper.describe(transformers.stringify(current.args.toString()), undefined, options.mini)\n }\n return undefined\n },\n string(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.string(shouldCoerce(options.coercion, 'strings'), minSchema?.args, maxSchema?.args, options.mini)\n },\n uuid(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.uuid({\n coercion: shouldCoerce(options.coercion, 'strings'),\n version: options.version,\n guidType: options.guidType,\n min: minSchema?.args,\n max: maxSchema?.args,\n mini: options.mini,\n })\n },\n email(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.email(shouldCoerce(options.coercion, 'strings'), options.version, minSchema?.args, maxSchema?.args, options.mini)\n },\n url(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.url(shouldCoerce(options.coercion, 'strings'), options.version, minSchema?.args, maxSchema?.args, options.mini)\n },\n number(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n const exclusiveMinimumSchema = findSchemaKeyword(siblings, 'exclusiveMinimum')\n const exclusiveMaximumSchema = findSchemaKeyword(siblings, 'exclusiveMaximum')\n\n return zodKeywordMapper.number(\n shouldCoerce(options.coercion, 'numbers'),\n minSchema?.args,\n maxSchema?.args,\n exclusiveMinimumSchema?.args,\n exclusiveMaximumSchema?.args,\n options.mini,\n )\n },\n integer(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n const exclusiveMinimumSchema = findSchemaKeyword(siblings, 'exclusiveMinimum')\n const exclusiveMaximumSchema = findSchemaKeyword(siblings, 'exclusiveMaximum')\n\n return zodKeywordMapper.integer(\n shouldCoerce(options.coercion, 'numbers'),\n minSchema?.args,\n maxSchema?.args,\n options.version,\n exclusiveMinimumSchema?.args,\n exclusiveMaximumSchema?.args,\n options.mini,\n )\n },\n bigint(_tree, options) {\n return zodKeywordMapper.bigint(shouldCoerce(options.coercion, 'numbers'))\n },\n datetime(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.datetime(current.args.offset, current.args.local, options.version, options.mini)\n },\n date(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.date(current.args.type, shouldCoerce(options.coercion, 'dates'), options.version)\n },\n time(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.time(current.args.type, shouldCoerce(options.coercion, 'dates'), options.version)\n },\n },\n})\n","import transformers from '@kubb/core/transformers'\nimport type { SchemaObject } from '@kubb/oas'\nimport { isKeyword, type Schema, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Const, File, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport * as parserZod from '../parser.ts'\nimport type { PluginZod } from '../types.ts'\n\ntype Props = {\n name: string\n typeName?: string\n inferTypeName?: string\n tree: Array<Schema>\n schema: SchemaObject\n description?: string\n coercion: PluginZod['resolvedOptions']['coercion']\n mapper: PluginZod['resolvedOptions']['mapper']\n keysToOmit?: string[]\n wrapOutput?: PluginZod['resolvedOptions']['wrapOutput']\n version: '3' | '4'\n guidType: PluginZod['resolvedOptions']['guidType']\n emptySchemaType: PluginZod['resolvedOptions']['emptySchemaType']\n mini?: boolean\n}\n\nexport function Zod({\n name,\n typeName,\n tree,\n schema,\n inferTypeName,\n mapper,\n coercion,\n keysToOmit,\n description,\n wrapOutput,\n version,\n guidType,\n emptySchemaType,\n mini = false,\n}: Props): FabricReactNode {\n const hasTuple = !!SchemaGenerator.find(tree, schemaKeywords.tuple)\n\n const schemas = parserZod.sort(tree).filter((item) => {\n if (hasTuple && (isKeyword(item, schemaKeywords.min) || isKeyword(item, schemaKeywords.max))) {\n return false\n }\n\n return true\n })\n\n // In mini mode, filter out modifiers from the main schema parsing\n const baseSchemas = mini ? parserZod.filterMiniModifiers(schemas) : schemas\n\n const output = baseSchemas\n .map((schemaKeyword, index) => {\n const siblings = baseSchemas.filter((_, i) => i !== index)\n\n return parserZod.parse({ schema, parent: undefined, current: schemaKeyword, siblings, name }, { mapper, coercion, wrapOutput, version, guidType, mini })\n })\n .filter(Boolean)\n .join('')\n\n let suffix = ''\n const firstSchema = schemas.at(0)\n const lastSchema = schemas.at(-1)\n\n if (!mini && lastSchema && isKeyword(lastSchema, schemaKeywords.nullable)) {\n if (firstSchema && isKeyword(firstSchema, schemaKeywords.ref)) {\n if (version === '3') {\n suffix = '.unwrap().schema.unwrap()'\n } else {\n suffix = '.unwrap().unwrap()'\n }\n } else {\n suffix = '.unwrap()'\n }\n } else if (!mini) {\n if (firstSchema && isKeyword(firstSchema, schemaKeywords.ref)) {\n if (version === '3') {\n suffix = '.schema'\n } else {\n suffix = '.unwrap()'\n }\n }\n }\n\n const emptyValue = parserZod.parse(\n {\n schema,\n parent: undefined,\n current: {\n keyword: schemaKeywords[emptySchemaType],\n },\n siblings: [],\n },\n { mapper, coercion, wrapOutput, version, guidType, mini },\n )\n\n let baseSchemaOutput =\n [output, keysToOmit?.length ? `${suffix}.omit({ ${keysToOmit.map((key) => `'${key}': true`).join(',')} })` : undefined].filter(Boolean).join('') ||\n emptyValue ||\n ''\n\n // For mini mode, wrap the output with modifiers using the parser function\n if (mini) {\n baseSchemaOutput = parserZod.wrapWithMiniModifiers(baseSchemaOutput, parserZod.extractMiniModifiers(schemas))\n }\n\n const wrappedSchemaOutput = wrapOutput ? wrapOutput({ output: baseSchemaOutput, schema }) || baseSchemaOutput : baseSchemaOutput\n const finalOutput = typeName ? `${wrappedSchemaOutput} as unknown as ${version === '4' ? 'z.ZodType' : '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"],"mappings":"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"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./chunk--u3MIqq1.js";
|
|
2
2
|
import transformers from "@kubb/core/transformers";
|
|
3
3
|
import { SchemaGenerator, createParser, findSchemaKeyword, isKeyword, schemaKeywords } from "@kubb/plugin-oas";
|
|
4
4
|
import { Const, File, Type } from "@kubb/react-fabric";
|
|
5
5
|
import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
6
6
|
import { sortBy } from "remeda";
|
|
7
|
-
|
|
8
7
|
//#region src/components/Operations.tsx
|
|
9
8
|
function Operations({ name, operations }) {
|
|
10
9
|
const operationsJSON = operations.reduce((prev, acc) => {
|
|
@@ -77,7 +76,6 @@ function Operations({ name, operations }) {
|
|
|
77
76
|
})
|
|
78
77
|
] });
|
|
79
78
|
}
|
|
80
|
-
|
|
81
79
|
//#endregion
|
|
82
80
|
//#region src/parser.ts
|
|
83
81
|
/**
|
|
@@ -672,7 +670,6 @@ const parse = createParser({
|
|
|
672
670
|
}
|
|
673
671
|
}
|
|
674
672
|
});
|
|
675
|
-
|
|
676
673
|
//#endregion
|
|
677
674
|
//#region src/components/Zod.tsx
|
|
678
675
|
function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, keysToOmit, description, wrapOutput, version, guidType, emptySchemaType, mini = false }) {
|
|
@@ -683,12 +680,11 @@ function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, ke
|
|
|
683
680
|
});
|
|
684
681
|
const baseSchemas = mini ? filterMiniModifiers(schemas) : schemas;
|
|
685
682
|
const output = baseSchemas.map((schemaKeyword, index) => {
|
|
686
|
-
const siblings = baseSchemas.filter((_, i) => i !== index);
|
|
687
683
|
return parse({
|
|
688
684
|
schema,
|
|
689
685
|
parent: void 0,
|
|
690
686
|
current: schemaKeyword,
|
|
691
|
-
siblings,
|
|
687
|
+
siblings: baseSchemas.filter((_, i) => i !== index),
|
|
692
688
|
name
|
|
693
689
|
}, {
|
|
694
690
|
mapper,
|
|
@@ -755,7 +751,7 @@ function Zod({ name, typeName, tree, schema, inferTypeName, mapper, coercion, ke
|
|
|
755
751
|
})]
|
|
756
752
|
})] });
|
|
757
753
|
}
|
|
758
|
-
|
|
759
754
|
//#endregion
|
|
760
755
|
export { Operations as n, Zod as t };
|
|
761
|
-
|
|
756
|
+
|
|
757
|
+
//# sourceMappingURL=components-CK7yDnVt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-CK7yDnVt.js","names":["parserZod.sort","parserZod.filterMiniModifiers","parserZod.parse","parserZod.wrapWithMiniModifiers","parserZod.extractMiniModifiers"],"sources":["../src/components/Operations.tsx","../src/parser.ts","../src/components/Zod.tsx"],"sourcesContent":["import transformers from '@kubb/core/transformers'\nimport type { HttpMethod, Operation } from '@kubb/oas'\nimport type { SchemaNames } from '@kubb/plugin-oas/hooks'\nimport { Const, File, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\n\ntype Props = {\n name: string\n operations: Array<{ operation: Operation; data: SchemaNames }>\n}\n\nexport function Operations({ name, operations }: Props): FabricReactNode {\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=\"OperationSchema\" isExportable isIndexable>\n <Type name=\"OperationSchema\" export>{`{\n readonly request: z.ZodTypeAny | undefined;\n readonly parameters: {\n readonly path: z.ZodTypeAny | undefined;\n readonly query: z.ZodTypeAny | undefined;\n readonly header: z.ZodTypeAny | undefined;\n };\n readonly responses: {\n readonly [status: number]: z.ZodTypeAny;\n readonly default: z.ZodTypeAny;\n };\n readonly errors: {\n readonly [status: number]: z.ZodTypeAny;\n };\n}`}</Type>\n </File.Source>\n <File.Source name=\"OperationsMap\" isExportable isIndexable>\n <Type name=\"OperationsMap\" export>\n {'Record<string, OperationSchema>'}\n </Type>\n </File.Source>\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 { Schema, SchemaMapper } from '@kubb/plugin-oas'\nimport { createParser, findSchemaKeyword, isKeyword, SchemaGenerator, type SchemaKeywordMapper, schemaKeywords } from '@kubb/plugin-oas'\nimport { sortBy } from 'remeda'\n\n//TODO add zodKeywordMapper as function that returns 3 versions: v3, v4 and v4 mini, this can also be used to have the custom mapping(see object type)\n// also include shouldCoerce\n\n/**\n * Helper to build string/array length constraint checks for Zod Mini mode\n */\nfunction buildLengthChecks(min?: number, max?: number): string[] {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minLength(${min})`)\n if (max !== undefined) checks.push(`z.maxLength(${max})`)\n return checks\n}\n\nconst zodKeywordMapper = {\n any: () => 'z.any()',\n unknown: () => 'z.unknown()',\n void: () => 'z.void()',\n number: (coercion?: boolean, min?: number, max?: number, exclusiveMinimum?: number, exclusiveMaximum?: number, mini?: boolean) => {\n if (mini) {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minimum(${min})`)\n if (max !== undefined) checks.push(`z.maximum(${max})`)\n if (exclusiveMinimum !== undefined) checks.push(`z.minimum(${exclusiveMinimum}, { exclusive: true })`)\n if (exclusiveMaximum !== undefined) checks.push(`z.maximum(${exclusiveMaximum}, { exclusive: true })`)\n if (checks.length > 0) {\n return `z.number().check(${checks.join(', ')})`\n }\n return 'z.number()'\n }\n return [\n coercion ? 'z.coerce.number()' : 'z.number()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n exclusiveMinimum !== undefined ? `.gt(${exclusiveMinimum})` : undefined,\n exclusiveMaximum !== undefined ? `.lt(${exclusiveMaximum})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n integer: (coercion?: boolean, min?: number, max?: number, version: '3' | '4' = '3', exclusiveMinimum?: number, exclusiveMaximum?: number, mini?: boolean) => {\n if (mini) {\n const checks: string[] = []\n if (min !== undefined) checks.push(`z.minimum(${min})`)\n if (max !== undefined) checks.push(`z.maximum(${max})`)\n if (exclusiveMinimum !== undefined) checks.push(`z.minimum(${exclusiveMinimum}, { exclusive: true })`)\n if (exclusiveMaximum !== undefined) checks.push(`z.maximum(${exclusiveMaximum}, { exclusive: true })`)\n if (checks.length > 0) {\n return `z.int().check(${checks.join(', ')})`\n }\n return 'z.int()'\n }\n return [\n coercion ? 'z.coerce.number().int()' : version === '4' ? 'z.int()' : 'z.number().int()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n exclusiveMinimum !== undefined ? `.gt(${exclusiveMinimum})` : undefined,\n exclusiveMaximum !== undefined ? `.lt(${exclusiveMaximum})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n bigint: (coercion?: boolean) => (coercion ? 'z.coerce.bigint()' : 'z.bigint()'),\n interface: (value?: string, strict?: boolean) => {\n if (strict) {\n return `z.strictInterface({\n ${value}\n })`\n }\n return `z.interface({\n ${value}\n })`\n },\n object: (value?: string, strict?: boolean, version: '3' | '4' = '3') => {\n if (version === '4' && strict) {\n return `z.strictObject({\n ${value}\n })`\n }\n\n if (strict) {\n return `z.object({\n ${value}\n }).strict()`\n }\n\n return `z.object({\n ${value}\n })`\n },\n string: (coercion?: boolean, min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.string().check(${checks.join(', ')})`\n }\n return 'z.string()'\n }\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 //support for discriminatedUnion\n boolean: () => 'z.boolean()',\n undefined: () => 'z.undefined()',\n nullable: (value?: string) => {\n if (value) {\n return `z.nullable(${value})`\n }\n return '.nullable()'\n },\n null: () => 'z.null()',\n nullish: (value?: string) => {\n if (value) {\n return `z.nullish(${value})`\n }\n return '.nullish()'\n },\n array: (items: string[] = [], min?: number, max?: number, unique?: boolean, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (unique) checks.push(`z.refine(items => new Set(items).size === items.length, { message: \"Array entries must be unique\" })`)\n if (checks.length > 0) {\n return `z.array(${items?.join('')}).check(${checks.join(', ')})`\n }\n return `z.array(${items?.join('')})`\n }\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, version: '3' | '4' = '3', mini?: boolean) => {\n // Zod Mini doesn't support .datetime() method, use plain string\n if (mini) {\n return 'z.string()'\n }\n\n if (offset) {\n return version === '4' ? `z.iso.datetime({ offset: ${offset} })` : `z.string().datetime({ offset: ${offset} })`\n }\n\n if (local) {\n return version === '4' ? `z.iso.datetime({ local: ${local} })` : `z.string().datetime({ local: ${local} })`\n }\n\n return version === '4' ? 'z.iso.datetime()' : '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, version: '3' | '4' = '3') => {\n if (type === 'string') {\n return version === '4' ? 'z.iso.date()' : '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, version: '3' | '4' = '3') => {\n if (type === 'string') {\n return version === '4' ? 'z.iso.time()' : 'z.string().time()'\n }\n\n if (coercion) {\n return 'z.coerce.date()'\n }\n\n return 'z.date()'\n },\n uuid: ({\n coercion,\n version = '3',\n guidType = 'uuid',\n min,\n max,\n mini,\n }: {\n coercion?: boolean\n version?: '3' | '4'\n guidType?: 'uuid' | 'guid'\n min?: number\n max?: number\n mini?: boolean\n } = {}) => {\n const zodGuidType = version === '4' && guidType === 'guid' ? 'guid' : 'uuid'\n\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.${zodGuidType}().check(${checks.join(', ')})`\n }\n return `z.${zodGuidType}()`\n }\n\n const zodV4UuidSchema = `z.${zodGuidType}()`\n\n return [\n coercion ? (version === '4' ? zodV4UuidSchema : 'z.coerce.string().uuid()') : version === '4' ? zodV4UuidSchema : 'z.string().uuid()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n url: (coercion?: boolean, version: '3' | '4' = '3', min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.url().check(${checks.join(', ')})`\n }\n return 'z.url()'\n }\n return [\n coercion ? (version === '4' ? 'z.url()' : 'z.coerce.string().url()') : version === '4' ? 'z.url()' : 'z.string().url()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\n default: (value?: string | number | boolean | object, innerSchema?: string, mini?: boolean, isBigInt?: boolean) => {\n if (mini && innerSchema) {\n // Wrap numeric values in BigInt() for bigint types in mini mode\n const defaultValue = isBigInt && typeof value === 'number' ? `BigInt(${value})` : typeof value === 'object' ? '{}' : (value ?? '')\n return `z._default(${innerSchema}, ${defaultValue})`\n }\n\n if (typeof value === 'object') {\n return '.default({})'\n }\n\n if (value === undefined) {\n return '.default()'\n }\n\n if (typeof value === 'string' && !value) {\n return `.default('')`\n }\n\n // Wrap numeric values in BigInt() for bigint types\n if (isBigInt && typeof value === 'number') {\n return `.default(BigInt(${value}))`\n }\n\n return `.default(${value ?? ''})`\n },\n and: (items: string[] = [], mini?: boolean) => {\n // zod/mini doesn't support .and() method, so we can't use intersection types\n // In mini mode, we try to extract and append .check() calls instead\n if (mini && items.length > 0) {\n // Try to extract check calls from additional items\n const checks: string[] = []\n for (const item of items) {\n // Extract .check(...) from patterns like \"z.string().check(...)\"\n // Need to handle nested parentheses properly\n const checkStart = item.indexOf('.check(')\n if (checkStart !== -1) {\n // Find the matching closing parenthesis\n let depth = 0\n let i = checkStart + 7 // length of '.check('\n let checkContent = ''\n while (i < item.length) {\n const char = item[i]\n if (char === '(') depth++\n else if (char === ')') {\n if (depth === 0) break\n depth--\n }\n checkContent += char\n i++\n }\n if (checkContent) {\n checks.push(checkContent)\n }\n }\n }\n\n if (checks.length > 0) {\n // Append checks to the base schema\n return `.check(${checks.join(', ')})`\n }\n\n // If we can't extract checks, just use the first schema (limitation)\n return ''\n }\n return items?.map((item) => `.and(${item})`).join('')\n },\n describe: (value = '', innerSchema?: string, mini?: boolean) => {\n if (mini) {\n return undefined\n }\n\n if (innerSchema) {\n return `z.describe(${innerSchema}, ${value})`\n }\n return `.describe(${value})`\n },\n max: undefined,\n min: undefined,\n optional: (value?: string) => {\n if (value) {\n return `z.optional(${value})`\n }\n return '.optional()'\n },\n matches: (value = '', coercion?: boolean, mini?: boolean, min?: number, max?: number) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n checks.push(`z.regex(${value})`)\n return `z.string().check(${checks.join(', ')})`\n }\n return [\n coercion ? 'z.coerce.string()' : 'z.string()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n `.regex(${value})`,\n ]\n .filter(Boolean)\n .join('')\n },\n email: (coercion?: boolean, version: '3' | '4' = '3', min?: number, max?: number, mini?: boolean) => {\n if (mini) {\n const checks = buildLengthChecks(min, max)\n if (checks.length > 0) {\n return `z.email().check(${checks.join(', ')})`\n }\n return 'z.email()'\n }\n return [\n coercion ? (version === '4' ? 'z.email()' : 'z.coerce.string().email()') : version === '4' ? 'z.email()' : 'z.string().email()',\n min !== undefined ? `.min(${min})` : undefined,\n max !== undefined ? `.max(${max})` : undefined,\n ]\n .filter(Boolean)\n .join('')\n },\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, mini?: boolean) => {\n // Zod Mini doesn't support .catchall() method\n if (mini) {\n return undefined\n }\n return value ? `.catchall(${value})` : undefined\n },\n name: undefined,\n exclusiveMinimum: undefined,\n exclusiveMaximum: 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.null,\n schemaKeywords.min,\n schemaKeywords.max,\n schemaKeywords.default,\n schemaKeywords.describe,\n schemaKeywords.optional,\n schemaKeywords.nullable,\n schemaKeywords.nullish,\n ]\n\n if (!items) {\n return []\n }\n\n return sortBy(items, [(v) => order.indexOf(v.keyword), 'asc'])\n}\n\ntype MiniModifiers = {\n hasOptional?: boolean\n hasNullable?: boolean\n hasNullish?: boolean\n defaultValue?: string | number | true | object\n isBigInt?: boolean\n}\n\n/**\n * Keywords that represent modifiers for mini mode\n * These are separated from the base schema and wrapped around it\n * Note: describe is included to filter it out, but won't be wrapped (Zod Mini doesn't support describe)\n */\nexport const miniModifierKeywords = [schemaKeywords.optional, schemaKeywords.nullable, schemaKeywords.nullish, schemaKeywords.default, schemaKeywords.describe]\n\n/**\n * Extracts mini mode modifiers from a schemas array\n * This can be reused by other parsers (e.g., valibot) that need similar functionality\n * Note: describe is not included as Zod Mini doesn't support it\n */\nexport function extractMiniModifiers(schemas: Schema[]): MiniModifiers {\n const defaultSchema = schemas.find((item) => isKeyword(item, schemaKeywords.default)) as { keyword: string; args: unknown } | undefined\n const isBigInt = schemas.some((item) => isKeyword(item, schemaKeywords.bigint))\n\n return {\n hasOptional: schemas.some((item) => isKeyword(item, schemaKeywords.optional)),\n hasNullable: schemas.some((item) => isKeyword(item, schemaKeywords.nullable)),\n hasNullish: schemas.some((item) => isKeyword(item, schemaKeywords.nullish)),\n defaultValue: defaultSchema?.args as string | number | true | object | undefined,\n isBigInt,\n }\n}\n\n/**\n * Filters out modifier keywords from schemas for mini mode base schema parsing\n * This can be reused by other parsers (e.g., valibot) that need similar functionality\n */\nexport function filterMiniModifiers(schemas: Schema[]): Schema[] {\n return schemas.filter((item) => !miniModifierKeywords.some((keyword) => isKeyword(item, keyword)))\n}\n\n/**\n * Wraps an output string with Zod Mini functional modifiers\n * Order: default (innermost) -> nullable -> optional (outermost)\n * OR: default -> nullish\n * Note: describe is not supported in Zod Mini and is skipped\n */\nexport function wrapWithMiniModifiers(output: string, modifiers: MiniModifiers): string {\n let result = output\n\n // Apply default first (innermost wrapper)\n if (modifiers.defaultValue !== undefined) {\n result = zodKeywordMapper.default(modifiers.defaultValue, result, true, modifiers.isBigInt)!\n }\n\n // Apply nullish, nullable, or optional (outer wrappers for optionality)\n if (modifiers.hasNullish) {\n result = zodKeywordMapper.nullish(result)!\n } else {\n if (modifiers.hasNullable) {\n result = zodKeywordMapper.nullable(result)!\n }\n if (modifiers.hasOptional) {\n result = zodKeywordMapper.optional(result)!\n }\n }\n\n return result\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 mapper?: Record<string, string>\n coercion?: boolean | { dates?: boolean; strings?: boolean; numbers?: boolean }\n wrapOutput?: (opts: { output: string; schema: any }) => string | undefined\n version: '3' | '4'\n guidType?: 'uuid' | 'guid'\n skipLazyForRefs?: boolean\n mini?: boolean\n}\n\n// Create the parser using createParser\nexport const parse = createParser<string, ParserOptions>({\n mapper: zodKeywordMapper,\n handlers: {\n union(tree, options) {\n const { current, schema, parent, name, siblings } = tree\n\n // zod union type needs at least 2 items\n if (Array.isArray(current.args) && current.args.length === 1) {\n return this.parse({ schema, parent, name, 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((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean),\n )\n },\n and(tree, options) {\n const { current, schema, name } = tree\n\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((it: Schema, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean)\n\n return `${items.slice(0, 1)}${zodKeywordMapper.and(items.slice(1), options.mini)}`\n },\n array(tree, options) {\n const { current, schema, name } = tree\n\n return zodKeywordMapper.array(\n sort(current.args.items)\n .map((it, _index, siblings) => {\n return this.parse({ schema, parent: current, name, current: it, siblings }, options)\n })\n .filter(Boolean),\n current.args.min,\n current.args.max,\n current.args.unique,\n options.mini,\n )\n },\n enum(tree, options) {\n const { current, schema, name } = tree\n\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 this.parse({ schema, parent: current, name, 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((it, _index, siblings) => {\n return this.parse({ schema, parent: current, name, current: it, 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 ref(tree, options) {\n const { current } = tree\n\n // Skip z.lazy wrapper if skipLazyForRefs is true (e.g., inside v4 getters)\n if (options.skipLazyForRefs) {\n return current.args?.name\n }\n return zodKeywordMapper.ref(current.args?.name)\n },\n object(tree, options) {\n const { current, schema, name } = tree\n\n const propertyEntries = Object.entries(current.args?.properties || {}).filter((item) => {\n const schema = item[1]\n return schema && typeof schema.map === 'function'\n })\n\n const properties = propertyEntries\n .map(([propertyName, schemas]) => {\n const nameSchema = schemas.find((it) => it.keyword === schemaKeywords.name) as SchemaKeywordMapper['name']\n const isNullable = schemas.some((it) => isKeyword(it, schemaKeywords.nullable))\n const isNullish = schemas.some((it) => isKeyword(it, schemaKeywords.nullish))\n const isOptional = schemas.some((it) => isKeyword(it, schemaKeywords.optional))\n const hasRef = !!SchemaGenerator.find(schemas, schemaKeywords.ref)\n\n const mappedName = nameSchema?.args || propertyName\n\n // custom mapper(pluginOptions)\n // Use Object.hasOwn to avoid matching inherited properties like 'toString', 'valueOf', etc.\n if (options.mapper && Object.hasOwn(options.mapper, mappedName)) {\n return `\"${propertyName}\": ${options.mapper?.[mappedName]}`\n }\n\n const baseSchemaOutput = sort(schemas)\n .filter((schema) => {\n return !isKeyword(schema, schemaKeywords.optional) && !isKeyword(schema, schemaKeywords.nullable) && !isKeyword(schema, schemaKeywords.nullish)\n })\n .map((it) => {\n // For v4 with refs, skip z.lazy wrapper since the getter provides lazy evaluation\n const skipLazyForRefs = options.version === '4' && hasRef\n return this.parse({ schema, parent: current, name, current: it, siblings: schemas }, { ...options, skipLazyForRefs })\n })\n .filter(Boolean)\n .join('')\n\n const objectValue = options.wrapOutput\n ? options.wrapOutput({ output: baseSchemaOutput, schema: schema?.properties?.[propertyName] }) || baseSchemaOutput\n : baseSchemaOutput\n\n if (options.version === '4' && hasRef) {\n // In mini mode, use functional wrappers instead of chainable methods\n if (options.mini) {\n // both optional and nullable\n if (isNullish) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.nullish(objectValue)}\n }`\n }\n\n // undefined\n if (isOptional) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.optional(objectValue)}\n }`\n }\n\n // null\n if (isNullable) {\n return `get \"${propertyName}\"(){\n return ${zodKeywordMapper.nullable(objectValue)}\n }`\n }\n\n return `get \"${propertyName}\"(){\n return ${objectValue}\n }`\n }\n\n // Non-mini mode uses chainable methods\n // both optional and nullable\n if (isNullish) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.nullish()}\n }`\n }\n\n // undefined\n if (isOptional) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.optional()}\n }`\n }\n\n // null\n if (isNullable) {\n return `get \"${propertyName}\"(){\n return ${objectValue}${zodKeywordMapper.nullable()}\n }`\n }\n\n return `get \"${propertyName}\"(){\n return ${objectValue}\n }`\n }\n\n // both optional and nullable\n if (isNullish && options.mini) {\n return `\"${propertyName}\": ${zodKeywordMapper.nullish(objectValue)}`\n }\n\n if (isNullish && !options.mini) {\n return `\"${propertyName}\": ${objectValue}${zodKeywordMapper.nullish()}`\n }\n\n // undefined\n if (isOptional) {\n return `\"${propertyName}\": ${zodKeywordMapper.optional(objectValue)}`\n }\n\n // null\n if (isNullable) {\n return `\"${propertyName}\": ${zodKeywordMapper.nullable(objectValue)}`\n }\n\n return `\"${propertyName}\": ${objectValue}`\n })\n .join(',\\n')\n\n const additionalProperties = current.args?.additionalProperties?.length\n ? current.args.additionalProperties\n .map((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options))\n .filter(Boolean)\n .join('')\n : undefined\n\n const text = [\n zodKeywordMapper.object(properties, current.args?.strict, options.version),\n additionalProperties ? zodKeywordMapper.catchall(additionalProperties, options.mini) : undefined,\n ].filter(Boolean)\n\n return text.join('')\n },\n tuple(tree, options) {\n const { current, schema, name } = tree\n\n return zodKeywordMapper.tuple(\n current.args.items.map((it, _index, siblings) => this.parse({ schema, parent: current, name, current: it, siblings }, options)).filter(Boolean),\n )\n },\n const(tree, _options) {\n const { current } = tree\n\n if (current.args.format === 'number' && current.args.value !== undefined) {\n return zodKeywordMapper.const(Number(current.args.value))\n }\n\n if (current.args.format === 'boolean' && current.args.value !== undefined) {\n return zodKeywordMapper.const(typeof current.args.value === 'boolean' ? current.args.value : undefined)\n }\n return zodKeywordMapper.const(transformers.stringify(current.args.value))\n },\n matches(tree, options) {\n const { current, siblings } = tree\n\n // Early exit: if siblings contain both matches and ref → skip matches entirely\n const hasRef = siblings.some((it) => isKeyword(it, schemaKeywords.ref))\n if (hasRef) {\n return undefined // strip matches\n }\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n if (current.args) {\n return zodKeywordMapper.matches(\n transformers.toRegExpString(current.args, null),\n shouldCoerce(options.coercion, 'strings'),\n options.mini,\n minSchema?.args,\n maxSchema?.args,\n )\n }\n return undefined\n },\n default(tree, options) {\n const { current, siblings } = tree\n\n // In mini mode, default is handled by wrapWithMiniModifiers\n if (options.mini) {\n return undefined\n }\n\n // Check if this is a bigint type by looking at siblings\n const isBigInt = siblings.some((it) => isKeyword(it, schemaKeywords.bigint))\n\n if (current.args !== undefined) {\n return zodKeywordMapper.default(current.args, undefined, undefined, isBigInt)\n }\n // When args is undefined, call the mapper without arguments\n return zodKeywordMapper.default()\n },\n describe(tree, options) {\n const { current } = tree\n\n if (current.args) {\n return zodKeywordMapper.describe(transformers.stringify(current.args.toString()), undefined, options.mini)\n }\n return undefined\n },\n string(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.string(shouldCoerce(options.coercion, 'strings'), minSchema?.args, maxSchema?.args, options.mini)\n },\n uuid(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.uuid({\n coercion: shouldCoerce(options.coercion, 'strings'),\n version: options.version,\n guidType: options.guidType,\n min: minSchema?.args,\n max: maxSchema?.args,\n mini: options.mini,\n })\n },\n email(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.email(shouldCoerce(options.coercion, 'strings'), options.version, minSchema?.args, maxSchema?.args, options.mini)\n },\n url(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n\n return zodKeywordMapper.url(shouldCoerce(options.coercion, 'strings'), options.version, minSchema?.args, maxSchema?.args, options.mini)\n },\n number(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n const exclusiveMinimumSchema = findSchemaKeyword(siblings, 'exclusiveMinimum')\n const exclusiveMaximumSchema = findSchemaKeyword(siblings, 'exclusiveMaximum')\n\n return zodKeywordMapper.number(\n shouldCoerce(options.coercion, 'numbers'),\n minSchema?.args,\n maxSchema?.args,\n exclusiveMinimumSchema?.args,\n exclusiveMaximumSchema?.args,\n options.mini,\n )\n },\n integer(tree, options) {\n const { siblings } = tree\n\n const minSchema = findSchemaKeyword(siblings, 'min')\n const maxSchema = findSchemaKeyword(siblings, 'max')\n const exclusiveMinimumSchema = findSchemaKeyword(siblings, 'exclusiveMinimum')\n const exclusiveMaximumSchema = findSchemaKeyword(siblings, 'exclusiveMaximum')\n\n return zodKeywordMapper.integer(\n shouldCoerce(options.coercion, 'numbers'),\n minSchema?.args,\n maxSchema?.args,\n options.version,\n exclusiveMinimumSchema?.args,\n exclusiveMaximumSchema?.args,\n options.mini,\n )\n },\n bigint(_tree, options) {\n return zodKeywordMapper.bigint(shouldCoerce(options.coercion, 'numbers'))\n },\n datetime(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.datetime(current.args.offset, current.args.local, options.version, options.mini)\n },\n date(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.date(current.args.type, shouldCoerce(options.coercion, 'dates'), options.version)\n },\n time(tree, options) {\n const { current } = tree\n\n return zodKeywordMapper.time(current.args.type, shouldCoerce(options.coercion, 'dates'), options.version)\n },\n },\n})\n","import transformers from '@kubb/core/transformers'\nimport type { SchemaObject } from '@kubb/oas'\nimport { isKeyword, type Schema, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { Const, File, Type } from '@kubb/react-fabric'\nimport type { FabricReactNode } from '@kubb/react-fabric/types'\nimport * as parserZod from '../parser.ts'\nimport type { PluginZod } from '../types.ts'\n\ntype Props = {\n name: string\n typeName?: string\n inferTypeName?: string\n tree: Array<Schema>\n schema: SchemaObject\n description?: string\n coercion: PluginZod['resolvedOptions']['coercion']\n mapper: PluginZod['resolvedOptions']['mapper']\n keysToOmit?: string[]\n wrapOutput?: PluginZod['resolvedOptions']['wrapOutput']\n version: '3' | '4'\n guidType: PluginZod['resolvedOptions']['guidType']\n emptySchemaType: PluginZod['resolvedOptions']['emptySchemaType']\n mini?: boolean\n}\n\nexport function Zod({\n name,\n typeName,\n tree,\n schema,\n inferTypeName,\n mapper,\n coercion,\n keysToOmit,\n description,\n wrapOutput,\n version,\n guidType,\n emptySchemaType,\n mini = false,\n}: Props): FabricReactNode {\n const hasTuple = !!SchemaGenerator.find(tree, schemaKeywords.tuple)\n\n const schemas = parserZod.sort(tree).filter((item) => {\n if (hasTuple && (isKeyword(item, schemaKeywords.min) || isKeyword(item, schemaKeywords.max))) {\n return false\n }\n\n return true\n })\n\n // In mini mode, filter out modifiers from the main schema parsing\n const baseSchemas = mini ? parserZod.filterMiniModifiers(schemas) : schemas\n\n const output = baseSchemas\n .map((schemaKeyword, index) => {\n const siblings = baseSchemas.filter((_, i) => i !== index)\n\n return parserZod.parse({ schema, parent: undefined, current: schemaKeyword, siblings, name }, { mapper, coercion, wrapOutput, version, guidType, mini })\n })\n .filter(Boolean)\n .join('')\n\n let suffix = ''\n const firstSchema = schemas.at(0)\n const lastSchema = schemas.at(-1)\n\n if (!mini && lastSchema && isKeyword(lastSchema, schemaKeywords.nullable)) {\n if (firstSchema && isKeyword(firstSchema, schemaKeywords.ref)) {\n if (version === '3') {\n suffix = '.unwrap().schema.unwrap()'\n } else {\n suffix = '.unwrap().unwrap()'\n }\n } else {\n suffix = '.unwrap()'\n }\n } else if (!mini) {\n if (firstSchema && isKeyword(firstSchema, schemaKeywords.ref)) {\n if (version === '3') {\n suffix = '.schema'\n } else {\n suffix = '.unwrap()'\n }\n }\n }\n\n const emptyValue = parserZod.parse(\n {\n schema,\n parent: undefined,\n current: {\n keyword: schemaKeywords[emptySchemaType],\n },\n siblings: [],\n },\n { mapper, coercion, wrapOutput, version, guidType, mini },\n )\n\n let baseSchemaOutput =\n [output, keysToOmit?.length ? `${suffix}.omit({ ${keysToOmit.map((key) => `'${key}': true`).join(',')} })` : undefined].filter(Boolean).join('') ||\n emptyValue ||\n ''\n\n // For mini mode, wrap the output with modifiers using the parser function\n if (mini) {\n baseSchemaOutput = parserZod.wrapWithMiniModifiers(baseSchemaOutput, parserZod.extractMiniModifiers(schemas))\n }\n\n const wrappedSchemaOutput = wrapOutput ? wrapOutput({ output: baseSchemaOutput, schema }) || baseSchemaOutput : baseSchemaOutput\n const finalOutput = typeName ? `${wrappedSchemaOutput} as unknown as ${version === '4' ? 'z.ZodType' : '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"],"mappings":"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"}
|
package/dist/components.cjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value:
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
exports.
|
|
5
|
-
exports.Zod = require_Zod.Zod;
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_components = require("./components-C-rV8Ij4.cjs");
|
|
3
|
+
exports.Operations = require_components.Operations;
|
|
4
|
+
exports.Zod = require_components.Zod;
|
package/dist/components.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as __name } from "./chunk
|
|
2
|
-
import { n as PluginZod } from "./types-
|
|
1
|
+
import { t as __name } from "./chunk--u3MIqq1.js";
|
|
2
|
+
import { n as PluginZod } from "./types-D0wsPC6Y.js";
|
|
3
3
|
import { Schema } from "@kubb/plugin-oas";
|
|
4
4
|
import { SchemaNames } from "@kubb/plugin-oas/hooks";
|
|
5
5
|
import { Operation, SchemaObject } from "@kubb/oas";
|
package/dist/components.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { n as Operations, t as Zod } from "./
|
|
2
|
-
|
|
3
|
-
export { Operations, Zod };
|
|
1
|
+
import { n as Operations, t as Zod } from "./components-CK7yDnVt.js";
|
|
2
|
+
export { Operations, Zod };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { n as Operations, t as Zod } from "./
|
|
1
|
+
import "./chunk--u3MIqq1.js";
|
|
2
|
+
import { n as Operations, t as Zod } from "./components-CK7yDnVt.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { SchemaGenerator, schemaKeywords } from "@kubb/plugin-oas";
|
|
5
5
|
import { pluginTsName } from "@kubb/plugin-ts";
|
|
@@ -9,7 +9,6 @@ import { useOas, useOperationManager, useSchemaManager } from "@kubb/plugin-oas/
|
|
|
9
9
|
import { getBanner, getFooter, getImports } from "@kubb/plugin-oas/utils";
|
|
10
10
|
import { File } from "@kubb/react-fabric";
|
|
11
11
|
import { Fragment, jsx, jsxs } from "@kubb/react-fabric/jsx-runtime";
|
|
12
|
-
|
|
13
12
|
//#region src/generators/operationsGenerator.tsx
|
|
14
13
|
const operationsGenerator = createReactGenerator({
|
|
15
14
|
name: "operations",
|
|
@@ -70,7 +69,6 @@ const operationsGenerator = createReactGenerator({
|
|
|
70
69
|
});
|
|
71
70
|
}
|
|
72
71
|
});
|
|
73
|
-
|
|
74
72
|
//#endregion
|
|
75
73
|
//#region src/generators/zodGenerator.tsx
|
|
76
74
|
const zodGenerator = createReactGenerator({
|
|
@@ -280,7 +278,7 @@ const zodGenerator = createReactGenerator({
|
|
|
280
278
|
});
|
|
281
279
|
}
|
|
282
280
|
});
|
|
283
|
-
|
|
284
281
|
//#endregion
|
|
285
282
|
export { operationsGenerator as n, zodGenerator as t };
|
|
286
|
-
|
|
283
|
+
|
|
284
|
+
//# sourceMappingURL=generators-HVqNlkDw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generators-HVqNlkDw.js","names":[],"sources":["../src/generators/operationsGenerator.tsx","../src/generators/zodGenerator.tsx"],"sourcesContent":["import { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File } from '@kubb/react-fabric'\nimport { Operations } from '../components/Operations.tsx'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations, generator, plugin }) {\n const {\n key: pluginKey,\n options: { output, importPath },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager(generator)\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 const isZodImport = importPath === 'zod' || importPath === 'zod/mini'\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import isTypeOnly name={isZodImport ? 'z' : ['z']} path={importPath} isNameSpace={isZodImport} />\n {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter, getImports } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File } from '@kubb/react-fabric'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { coercion: globalCoercion, inferred, typed, mapper, wrapOutput, version, guidType, mini },\n } = plugin\n\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n pluginManager,\n events: generator.context.events,\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: schemaOriginal, description, keysToOmit: keysToOmitOriginal, ...options }: OperationSchemaType) => {\n let schemaObject = schemaOriginal\n let keysToOmit = keysToOmitOriginal\n\n if ((schemaOriginal.anyOf || schemaOriginal.oneOf) && keysToOmitOriginal && keysToOmitOriginal.length > 0) {\n schemaObject = structuredClone(schemaOriginal)\n\n // Remove $ref so the schema parser generates inline schema instead of a reference\n delete schemaObject.$ref\n\n for (const key of keysToOmitOriginal) {\n delete schemaObject.properties?.[key]\n }\n\n if (Array.isArray(schemaObject.required)) {\n schemaObject.required = schemaObject.required.filter((key) => !keysToOmitOriginal.includes(key))\n }\n\n keysToOmit = undefined\n }\n\n const hasProperties = Object.keys(schemaObject || {}).length > 0\n const hasDefaults = Object.values(schemaObject.properties || {}).some((prop) => prop && Object.hasOwn(prop, 'default'))\n\n const required = Array.isArray(schemaObject?.required) ? schemaObject.required.length > 0 : !!schemaObject?.required\n const optional = !required && !hasDefaults && hasProperties && name.includes('Params')\n\n if (!optional && Array.isArray(schemaObject.required) && !schemaObject.required.length) {\n schemaObject.required = Object.entries(schemaObject.properties || {})\n .filter(([_key, value]) => value && Object.hasOwn(value, 'default'))\n .map(([key]) => key)\n }\n\n const tree = [\n ...schemaGenerator.parse({ schema: schemaObject, name, parentName: null }),\n optional ? { keyword: schemaKeywords.optional } : undefined,\n ].filter(Boolean)\n const imports = getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const coercion = name.includes('Params') ? { numbers: true, strings: false, dates: true } : globalCoercion\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 <>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && version === '3' && (\n <File.Import name={['ToZod']} isTypeOnly root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/ToZod.ts')} />\n )}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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 schema={schemaObject}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n version={plugin.options.version}\n guidType={guidType}\n emptySchemaType={plugin.options.emptySchemaType}\n mini={mini}\n />\n </>\n )\n }\n\n const isZodImport = plugin.options.importPath === 'zod' || plugin.options.importPath === 'zod/mini'\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, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={isZodImport ? 'z' : ['z']} path={plugin.options.importPath} isNameSpace={isZodImport} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ config, schema, plugin }) {\n const { getName, getFile } = useSchemaManager()\n const {\n options: { output, emptySchemaType, coercion, inferred, typed, mapper, importPath, wrapOutput, version, guidType, mini },\n } = plugin\n const pluginManager = usePluginManager()\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 const isZodImport = importPath === 'zod' || importPath === 'zod/mini'\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={isZodImport ? 'z' : ['z']} path={importPath} isNameSpace={isZodImport} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && version === '3' && (\n <File.Import name={['ToZod']} root={zod.file.path} path={path.resolve(config.root, config.output.path, '.kubb/ToZod.ts')} />\n )}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} 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 schema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n version={version}\n guidType={guidType}\n emptySchemaType={emptySchemaType}\n mini={mini}\n />\n </File>\n )\n },\n})\n"],"mappings":"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"}
|