UNPKG

json-api-nestjs

Version:
46 lines (45 loc) 30 kB
import { z } from 'zod'; import { RelationTree, ResultGetField } from '../../types'; import { ObjectLiteral } from '../../../../types'; declare function getZodFieldRule<F extends readonly [string, ...string[]]>(fields: F): z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_1]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T ? { [k in keyof T]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k]; } : never, z.baseObjectInputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<{ [K in F[number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_1]; } : never>>; type ZodFieldRule<F extends readonly [string, ...string[]]> = ReturnType<typeof getZodFieldRule<F>>; export declare function zodSortQuery<E extends ObjectLiteral>(fields: ResultGetField<E>['field'], relationList: RelationTree<E>): z.ZodNullable<z.ZodEffects<z.ZodObject<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>, any> extends infer T_3 ? { [k_3 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>, any>[k_3]; } : never, z.baseObjectInputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never> extends infer T_4 ? { [k_4 in keyof T_4]: z.baseObjectInputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>[k_4]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>, any> extends infer T_3 ? { [k_3 in keyof T_3]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>, any>[k_3]; } : never, z.baseObjectInputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never> extends infer T_4 ? { [k_4 in keyof T_4]: z.baseObjectInputType<{ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; } extends infer T extends z.ZodRawShape ? { [k in keyof T]: z.ZodOptional<({ target: ZodFieldRule<ResultGetField<E>["field"]>; } & { [K in keyof RelationTree<E>]: z.ZodOptional<z.ZodEffects<z.ZodObject<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }, "strict", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any> extends infer T_1 ? { [k_1 in keyof T_1]: z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>, any>[k_1]; } : never, z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }> extends infer T_2 ? { [k_2 in keyof T_2]: z.baseObjectInputType<{ [K_1 in RelationTree<E>[K][number]]: z.ZodOptional<z.ZodEnum<["DESC", "ASC"]>>; }>[k_2]; } : never>>; })[k]>; } : never>[k_4]; } : never>>; export type ZodSortQuery<E extends ObjectLiteral> = ReturnType<typeof zodSortQuery<E>>; export type SortQuery<E extends ObjectLiteral> = z.infer<ZodSortQuery<E>>; export {};