json-api-nestjs
Version:
JsonApi Plugin for NestJs
478 lines (477 loc) • 24 kB
TypeScript
import { z } from 'zod';
import { KebabCase } from '../../../../utils/nestjs-shared';
import { ObjectLiteral } from '../../../../types';
import { RelationPropsArray, RelationPropsTypeName, RelationPrimaryColumnType, TypeForId } from '../../types';
declare function getZodResultData<K extends string, P extends TypeForId, T extends true | false = false>(typeName: K, primaryType: P, isPatch: T): z.ZodOptional<z.ZodObject<{
data: z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never> | z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>;
}, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
data: z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never> | z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>;
}>, any> extends infer T_3 ? { [k_2 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
data: z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never> | z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>;
}>, any>[k_2]; } : never, z.baseObjectInputType<{
data: z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never> | z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>;
}> extends infer T_4 ? { [k_3 in keyof T_4]: z.baseObjectInputType<{
data: z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never> | z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>;
}>[k_3]; } : never>>;
declare function getZodResultDataArray<K extends string, P extends TypeForId, T extends true | false = false>(typeName: K, primaryType: P, isPatch: T): z.ZodOptional<z.ZodObject<{
data: z.ZodArray<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, "many"> | z.ZodArray<z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>, "many"> | z.ZodArray<z.ZodNullable<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>>, "atleastone"> | z.ZodArray<z.ZodEffects<z.ZodObject<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never>, "atleastone">;
}, "strip", z.ZodTypeAny, {
data: (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never)[] | ((z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never) | null)[] | [(z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never) | null, ...((z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never) | null)[]] | [z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never, ...(z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any> extends infer T_1 ? { [k in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>, any>[k]; } : never)[]];
}, {
data: (z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never)[] | ((z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never) | null)[] | [(z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never) | null, ...((z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never) | null)[]] | [z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never, ...(z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}> extends infer T_2 ? { [k_1 in keyof T_2]: z.baseObjectInputType<{
id: z.ZodString;
type: z.ZodLiteral<K>;
}>[k_1]; } : never)[]];
}>>;
type ZodResultData<K extends string, P extends TypeForId, I extends boolean, T extends true | false = false> = I extends true ? ReturnType<typeof getZodResultDataArray<K, P, T>> : ReturnType<typeof getZodResultData<K, P, T>>;
export declare function zodRelationships<E extends ObjectLiteral, S extends true | false = false>(relationArrayProps: RelationPropsArray<E>, relationPopsName: RelationPropsTypeName<E>, primaryColumnType: RelationPrimaryColumnType<E>, isPatch: S): z.ZodEffects<z.ZodObject<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>, any>[k]; } : never, z.baseObjectInputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>, any>[k]; } : never, z.baseObjectInputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ [K in keyof RelationPropsArray<E>]: ZodResultData<KebabCase<RelationPropsTypeName<E>[K]>, RelationPrimaryColumnType<E>[K], RelationPropsArray<E>[K], S>; }>[k_1]; } : never>;
export type ZodRelationships<T extends ObjectLiteral, K extends true | false = false> = ReturnType<typeof zodRelationships<T, K>>;
export type Relationships<T extends ObjectLiteral, K extends true | false = false> = z.infer<ZodRelationships<T, K>>;
export {};