json-api-nestjs
Version:
JsonApi Plugin for NestJs
46 lines (45 loc) • 30 kB
TypeScript
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 {};