@zenstackhq/runtime 3.0.0-beta.8 → 3.0.0-beta.9

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.
@@ -0,0 +1,524 @@
1
+ import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, NonRelationFields, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetModel, FieldDef, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, BuiltinType, IsDelegateModel, GetModelDiscriminator, GetSubModels, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation } from '@zenstackhq/sdk/schema';
2
+ import { Generated, Kysely, ExpressionBuilder, OperandExpression, SqlBool } from 'kysely';
3
+ import Decimal from 'decimal.js';
4
+
5
+ type Optional<T extends object, K extends keyof T = keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
6
+ type NullableIf<T, Condition extends boolean> = Condition extends true ? T | null : T;
7
+ type _Preserve = Date | Function | Decimal | Uint8Array | JsonObject | JsonValue;
8
+ type _Depth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
9
+ type Simplify<T, D extends number = 6> = D extends 0 ? T : T extends object ? T extends _Preserve ? T : {
10
+ [K in keyof T]: Simplify<T[K], _Depth[D]>;
11
+ } & {} : T;
12
+ type WrapType<T, Optional = false, Array = false> = Array extends true ? Optional extends true ? T[] | null : T[] : Optional extends true ? T | null : T;
13
+ type TypeMap = {
14
+ String: string;
15
+ Boolean: boolean;
16
+ Int: number;
17
+ Float: number;
18
+ BigInt: bigint;
19
+ Decimal: Decimal;
20
+ DateTime: Date;
21
+ Bytes: Uint8Array;
22
+ Json: JsonValue;
23
+ };
24
+ type MapBaseType$1<T extends string> = T extends keyof TypeMap ? TypeMap[T] : unknown;
25
+ type JsonValue = string | number | boolean | null | JsonObject | JsonArray;
26
+ type JsonObject = {
27
+ [key: string]: JsonValue;
28
+ };
29
+ type JsonArray = Array<JsonValue>;
30
+ type OrArray<T, IF extends boolean = true> = IF extends true ? T | T[] : T;
31
+ type NonEmptyArray<T> = [T, ...T[]];
32
+ type ValueOfPotentialTuple<T> = T extends unknown[] ? T[number] : T;
33
+ type NoExpand<T> = T extends unknown ? T : never;
34
+ type AtLeast<O extends object, K extends string> = NoExpand<O extends unknown ? (K extends keyof O ? {
35
+ [P in K]: O[P];
36
+ } & O : O) | ({
37
+ [P in keyof O as P extends K ? K : never]-?: O[P];
38
+ } & O) : never>;
39
+ type Without<T, U> = {
40
+ [P in Exclude<keyof T, keyof U>]?: never;
41
+ };
42
+ type XOR<T, U> = T extends object ? (U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : U) : T;
43
+ type MaybePromise<T> = T | Promise<T>;
44
+ type PrependParameter<Param, Func> = Func extends (...args: any[]) => infer R ? (p: Param, ...args: Parameters<Func>) => R : never;
45
+ type OrUndefinedIf<T, Condition extends boolean> = Condition extends true ? T | undefined : T;
46
+ type UnwrapTuplePromises<T extends readonly unknown[]> = {
47
+ [K in keyof T]: Awaited<T[K]>;
48
+ };
49
+
50
+ type ToKyselySchema<Schema extends SchemaDef> = {
51
+ [Model in GetModels<Schema>]: ToKyselyTable<Schema, Model>;
52
+ };
53
+ type ToKysely<Schema extends SchemaDef> = Kysely<ToKyselySchema<Schema>>;
54
+ type ToKyselyTable<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
55
+ [Field in ScalarFields<Schema, Model, false> | ForeignKeyFields<Schema, Model> as GetModelField<Schema, Model, Field>['originModel'] extends string ? never : Field]: toKyselyFieldType<Schema, Model, Field>;
56
+ };
57
+ type MapBaseType<T> = T extends 'String' ? string : T extends 'Boolean' ? boolean : T extends 'Int' | 'Float' ? number : T extends 'BigInt' ? bigint : T extends 'Decimal' ? Decimal : T extends 'DateTime' ? string : unknown;
58
+ type WrapNull<T, Null> = Null extends true ? T | null : T;
59
+ type MapType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = WrapNull<MapBaseType<GetModelFieldType<Schema, Model, Field>>, ModelFieldIsOptional<Schema, Model, Field>>;
60
+ type toKyselyFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = FieldHasDefault<Schema, Model, Field> extends true ? Generated<MapType<Schema, Model, Field>> : MapType<Schema, Model, Field>;
61
+
62
+ type DefaultModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Omit = undefined, Optional = false, Array = false> = WrapType<IsDelegateModel<Schema, Model> extends true ? DelegateUnionResult<Schema, Model, GetSubModels<Schema, Model>, Omit> : {
63
+ [Key in NonRelationFields<Schema, Model> as Key extends keyof Omit ? Omit[Key] extends true ? never : Key : Key]: MapModelFieldType<Schema, Model, Key>;
64
+ }, Optional, Array>;
65
+ type DelegateUnionResult<Schema extends SchemaDef, Model extends GetModels<Schema>, SubModel extends GetModels<Schema>, Omit = undefined> = SubModel extends string ? DefaultModelResult<Schema, SubModel, Omit> & {
66
+ [K in GetModelDiscriminator<Schema, Model>]: SubModel;
67
+ } : never;
68
+ type ModelSelectResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Select, Omit> = {
69
+ [Key in keyof Select as Select[Key] extends false | undefined ? never : Key extends keyof Omit ? Omit[Key] extends true ? never : Key : Key extends '_count' ? Select[Key] extends SelectCount<Schema, Model> ? Key : never : Key]: Key extends '_count' ? SelectCountResult<Schema, Model, Select[Key]> : Key extends NonRelationFields<Schema, Model> ? MapModelFieldType<Schema, Model, Key> : Key extends RelationFields<Schema, Model> ? Select[Key] extends FindArgs<Schema, RelationFieldType<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> ? 'select' extends keyof Select[Key] ? ModelResult<Schema, RelationFieldType<Schema, Model, Key>, Pick<Select[Key], 'select'>, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> : ModelResult<Schema, RelationFieldType<Schema, Model, Key>, Pick<Select[Key], 'include' | 'omit'>, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> : DefaultModelResult<Schema, RelationFieldType<Schema, Model, Key>, Omit, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> : never;
70
+ };
71
+ type SelectCountResult<Schema extends SchemaDef, Model extends GetModels<Schema>, C> = C extends true ? {
72
+ [Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: number;
73
+ } : C extends {
74
+ select: infer S;
75
+ } ? {
76
+ [Key in keyof S]: number;
77
+ } : never;
78
+ type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends SelectIncludeOmit<Schema, Model, boolean> = {}, Optional = false, Array = false> = WrapType<Args extends {
79
+ select: infer S;
80
+ omit?: infer O;
81
+ } ? ModelSelectResult<Schema, Model, S, O> : Args extends {
82
+ include: infer I;
83
+ omit?: infer O;
84
+ } ? DefaultModelResult<Schema, Model, O> & {
85
+ [Key in keyof I & RelationFields<Schema, Model> as I[Key] extends false | undefined ? never : Key]: I[Key] extends FindArgs<Schema, RelationFieldType<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> ? ModelResult<Schema, RelationFieldType<Schema, Model, Key>, I[Key], ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>> : DefaultModelResult<Schema, RelationFieldType<Schema, Model, Key>, undefined, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>>;
86
+ } : Args extends {
87
+ omit: infer O;
88
+ } ? DefaultModelResult<Schema, Model, O> : DefaultModelResult<Schema, Model>, Optional, Array>;
89
+ type SimplifiedModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends SelectIncludeOmit<Schema, Model, boolean> = {}, Optional = false, Array = false> = Simplify<ModelResult<Schema, Model, Args, Optional, Array>>;
90
+ type TypeDefResult<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Optional<{
91
+ [Key in GetTypeDefFields<Schema, TypeDef>]: MapTypeDefFieldType<Schema, TypeDef, Key>;
92
+ }, keyof {
93
+ [Key in GetTypeDefFields<Schema, TypeDef> as TypeDefFieldIsOptional<Schema, TypeDef, Key> extends true ? Key : never]: true;
94
+ }>;
95
+ type BatchResult = {
96
+ count: number;
97
+ };
98
+ type WhereInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ScalarOnly extends boolean = false, WithAggregations extends boolean = false> = {
99
+ [Key in GetModelFields<Schema, Model> as ScalarOnly extends true ? Key extends RelationFields<Schema, Model> ? never : Key : Key]?: Key extends RelationFields<Schema, Model> ? RelationFilter<Schema, Model, Key> : FieldIsArray<Schema, Model, Key> extends true ? ArrayFilter<Schema, GetModelFieldType<Schema, Model, Key>> : GetModelFieldType<Schema, Model, Key> extends GetEnums<Schema> ? EnumFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>, WithAggregations> : PrimitiveFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>, WithAggregations>;
100
+ } & {
101
+ $expr?: (eb: ExpressionBuilder<ToKyselySchema<Schema>, Model>) => OperandExpression<SqlBool>;
102
+ } & {
103
+ AND?: OrArray<WhereInput<Schema, Model, ScalarOnly>>;
104
+ OR?: WhereInput<Schema, Model, ScalarOnly>[];
105
+ NOT?: OrArray<WhereInput<Schema, Model, ScalarOnly>>;
106
+ };
107
+ type EnumFilter<Schema extends SchemaDef, T extends GetEnums<Schema>, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<keyof GetEnum<Schema, T>, Nullable> | ({
108
+ equals?: NullableIf<keyof GetEnum<Schema, T>, Nullable>;
109
+ in?: (keyof GetEnum<Schema, T>)[];
110
+ notIn?: (keyof GetEnum<Schema, T>)[];
111
+ not?: EnumFilter<Schema, T, Nullable, WithAggregations>;
112
+ } & (WithAggregations extends true ? {
113
+ _count?: NumberFilter<Schema, 'Int', false, false>;
114
+ _min?: EnumFilter<Schema, T, false, false>;
115
+ _max?: EnumFilter<Schema, T, false, false>;
116
+ } : {}));
117
+ type ArrayFilter<Schema extends SchemaDef, T extends string> = {
118
+ equals?: MapScalarType<Schema, T>[] | null;
119
+ has?: MapScalarType<Schema, T> | null;
120
+ hasEvery?: MapScalarType<Schema, T>[];
121
+ hasSome?: MapScalarType<Schema, T>[];
122
+ isEmpty?: boolean;
123
+ };
124
+ type MapScalarType<Schema extends SchemaDef, T extends string> = T extends GetEnums<Schema> ? keyof GetEnum<Schema, T> : MapBaseType$1<T>;
125
+ type PrimitiveFilter<Schema extends SchemaDef, T extends string, Nullable extends boolean, WithAggregations extends boolean> = T extends 'String' ? StringFilter<Schema, Nullable, WithAggregations> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<Schema, T, Nullable, WithAggregations> : T extends 'Boolean' ? BooleanFilter<Schema, Nullable, WithAggregations> : T extends 'DateTime' ? DateTimeFilter<Schema, Nullable, WithAggregations> : T extends 'Bytes' ? BytesFilter<Schema, Nullable, WithAggregations> : T extends 'Json' ? 'Not implemented yet' : never;
126
+ type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends BuiltinType, Nullable extends boolean, WithAggregations extends boolean> = {
127
+ equals?: NullableIf<DataType, Nullable>;
128
+ in?: DataType[];
129
+ notIn?: DataType[];
130
+ lt?: DataType;
131
+ lte?: DataType;
132
+ gt?: DataType;
133
+ gte?: DataType;
134
+ not?: PrimitiveFilter<Schema, T, Nullable, WithAggregations>;
135
+ };
136
+ type StringFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<Schema, string, 'String', Nullable, WithAggregations> & {
137
+ contains?: string;
138
+ startsWith?: string;
139
+ endsWith?: string;
140
+ } & (WithAggregations extends true ? {
141
+ _count?: NumberFilter<Schema, 'Int', false, false>;
142
+ _min?: StringFilter<Schema, false, false>;
143
+ _max?: StringFilter<Schema, false, false>;
144
+ } : {}) & (ProviderSupportsCaseSensitivity<Schema> extends true ? {
145
+ mode?: 'default' | 'insensitive';
146
+ } : {}));
147
+ type NumberFilter<Schema extends SchemaDef, T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean, WithAggregations extends boolean> = NullableIf<number | bigint, Nullable> | (CommonPrimitiveFilter<Schema, number, T, Nullable, WithAggregations> & (WithAggregations extends true ? {
148
+ _count?: NumberFilter<Schema, 'Int', false, false>;
149
+ _avg?: NumberFilter<Schema, T, false, false>;
150
+ _sum?: NumberFilter<Schema, T, false, false>;
151
+ _min?: NumberFilter<Schema, T, false, false>;
152
+ _max?: NumberFilter<Schema, T, false, false>;
153
+ } : {}));
154
+ type DateTimeFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<Date | string, Nullable> | (CommonPrimitiveFilter<Schema, Date | string, 'DateTime', Nullable, WithAggregations> & (WithAggregations extends true ? {
155
+ _count?: NumberFilter<Schema, 'Int', false, false>;
156
+ _min?: DateTimeFilter<Schema, false, false>;
157
+ _max?: DateTimeFilter<Schema, false, false>;
158
+ } : {}));
159
+ type BytesFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<Uint8Array | Buffer, Nullable> | ({
160
+ equals?: NullableIf<Uint8Array, Nullable>;
161
+ in?: Uint8Array[];
162
+ notIn?: Uint8Array[];
163
+ not?: BytesFilter<Schema, Nullable, WithAggregations>;
164
+ } & (WithAggregations extends true ? {
165
+ _count?: NumberFilter<Schema, 'Int', false, false>;
166
+ _min?: BytesFilter<Schema, false, false>;
167
+ _max?: BytesFilter<Schema, false, false>;
168
+ } : {}));
169
+ type BooleanFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<boolean, Nullable> | ({
170
+ equals?: NullableIf<boolean, Nullable>;
171
+ not?: BooleanFilter<Schema, Nullable, WithAggregations>;
172
+ } & (WithAggregations extends true ? {
173
+ _count?: NumberFilter<Schema, 'Int', false, false>;
174
+ _min?: BooleanFilter<Schema, false, false>;
175
+ _max?: BooleanFilter<Schema, false, false>;
176
+ } : {}));
177
+ type SortOrder = 'asc' | 'desc';
178
+ type NullsOrder = 'first' | 'last';
179
+ type OrderBy<Schema extends SchemaDef, Model extends GetModels<Schema>, WithRelation extends boolean, WithAggregation extends boolean> = {
180
+ [Key in NonRelationFields<Schema, Model>]?: ModelFieldIsOptional<Schema, Model, Key> extends true ? SortOrder | {
181
+ sort: SortOrder;
182
+ nulls?: NullsOrder;
183
+ } : SortOrder;
184
+ } & (WithRelation extends true ? {
185
+ [Key in RelationFields<Schema, Model>]?: FieldIsArray<Schema, Model, Key> extends true ? {
186
+ _count?: SortOrder;
187
+ } : OrderBy<Schema, RelationFieldType<Schema, Model, Key>, WithRelation, WithAggregation>;
188
+ } : {}) & (WithAggregation extends true ? {
189
+ _count?: OrderBy<Schema, Model, false, false>;
190
+ _min?: MinMaxInput<Schema, Model, SortOrder>;
191
+ _max?: MinMaxInput<Schema, Model, SortOrder>;
192
+ } & (NumericFields<Schema, Model> extends never ? {} : {
193
+ _avg?: SumAvgInput<Schema, Model, SortOrder>;
194
+ _sum?: SumAvgInput<Schema, Model, SortOrder>;
195
+ }) : {});
196
+ type WhereUniqueInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = AtLeast<{
197
+ [Key in keyof GetModel<Schema, Model>['uniqueFields']]?: GetModel<Schema, Model>['uniqueFields'][Key] extends Pick<FieldDef, 'type'> ? MapFieldDefType<Schema, GetModel<Schema, Model>['uniqueFields'][Key]> : {
198
+ [Key1 in keyof GetModel<Schema, Model>['uniqueFields'][Key]]: GetModel<Schema, Model>['uniqueFields'][Key][Key1] extends Pick<FieldDef, 'type'> ? MapFieldDefType<Schema, GetModel<Schema, Model>['uniqueFields'][Key][Key1]> : never;
199
+ };
200
+ } & WhereInput<Schema, Model>, Extract<keyof GetModel<Schema, Model>['uniqueFields'], string>>;
201
+ type OmitInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
202
+ [Key in NonRelationFields<Schema, Model>]?: boolean;
203
+ };
204
+ type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean> = {
205
+ select?: SelectInput<Schema, Model, AllowCount, boolean>;
206
+ include?: IncludeInput<Schema, Model, AllowCount>;
207
+ omit?: OmitInput<Schema, Model>;
208
+ };
209
+ type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
210
+ [Key in NonRelationFields<Schema, Model>]?: boolean;
211
+ } & (AllowRelation extends true ? IncludeInput<Schema, Model, AllowCount> : {});
212
+ type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>> = boolean | {
213
+ select: {
214
+ [Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]?: boolean | {
215
+ where: WhereInput<Schema, RelationFieldType<Schema, Model, Key>, false>;
216
+ };
217
+ };
218
+ };
219
+ type IncludeInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true> = {
220
+ [Key in RelationFields<Schema, Model>]?: boolean | FindArgs<Schema, RelationFieldType<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>, FieldIsArray<Schema, Model, Key> extends true ? true : ModelFieldIsOptional<Schema, Model, Key> extends true ? true : false>;
221
+ } & (AllowCount extends true ? HasToManyRelations<Schema, Model> extends true ? {
222
+ _count?: SelectCount<Schema, Model>;
223
+ } : {} : {});
224
+ type Subset<T, U> = {
225
+ [key in keyof T]: key extends keyof U ? T[key] : never;
226
+ };
227
+ type SelectSubset<T, U> = {
228
+ [key in keyof T]: key extends keyof U ? T[key] : never;
229
+ } & (T extends {
230
+ select: any;
231
+ include: any;
232
+ } ? 'Please either choose `select` or `include`.' : T extends {
233
+ select: any;
234
+ omit: any;
235
+ } ? 'Please either choose `select` or `omit`.' : {});
236
+ type ToManyRelationFilter<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = {
237
+ every?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>>;
238
+ some?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>>;
239
+ none?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>>;
240
+ };
241
+ type ToOneRelationFilter<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = NullableIf<WhereInput<Schema, RelationFieldType<Schema, Model, Field>> & {
242
+ is?: NullableIf<WhereInput<Schema, RelationFieldType<Schema, Model, Field>>, ModelFieldIsOptional<Schema, Model, Field>>;
243
+ isNot?: NullableIf<WhereInput<Schema, RelationFieldType<Schema, Model, Field>>, ModelFieldIsOptional<Schema, Model, Field>>;
244
+ }, ModelFieldIsOptional<Schema, Model, Field>>;
245
+ type RelationFilter<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? ToManyRelationFilter<Schema, Model, Field> : ToOneRelationFilter<Schema, Model, Field>;
246
+ type MapModelFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = MapFieldDefType<Schema, GetModelField<Schema, Model, Field>>;
247
+ type MapTypeDefFieldType<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Field extends GetTypeDefFields<Schema, TypeDef>> = MapFieldDefType<Schema, GetTypeDefField<Schema, TypeDef, Field>>;
248
+ type MapFieldDefType<Schema extends SchemaDef, T extends Pick<FieldDef, 'type' | 'optional' | 'array'>> = WrapType<T['type'] extends GetEnums<Schema> ? keyof GetEnum<Schema, T['type']> : T['type'] extends GetTypeDefs<Schema> ? TypeDefResult<Schema, T['type']> & Record<string, unknown> : MapBaseType$1<T['type']>, T['optional'], T['array']>;
249
+ type OptionalFieldsForCreate<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
250
+ [Key in GetModelFields<Schema, Model> as ModelFieldIsOptional<Schema, Model, Key> extends true ? Key : FieldHasDefault<Schema, Model, Key> extends true ? Key : FieldIsArray<Schema, Model, Key> extends true ? Key : GetModelField<Schema, Model, Key>['updatedAt'] extends true ? Key : never]: GetModelField<Schema, Model, Key>;
251
+ };
252
+ type GetRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['relation'];
253
+ type OppositeRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>> = FT extends GetModels<Schema> ? GetRelation<Schema, Model, Field> extends RelationInfo ? GetRelation<Schema, Model, Field>['opposite'] extends GetModelFields<Schema, FT> ? Schema['models'][FT]['fields'][GetRelation<Schema, Model, Field>['opposite']]['relation'] : never : never : never;
254
+ type OppositeRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Opposite = OppositeRelation<Schema, Model, Field>> = Opposite extends RelationInfo ? (Opposite['fields'] extends string[] ? Opposite['fields'] : []) : [];
255
+ type OppositeRelationAndFK<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>, Relation = GetModelField<Schema, Model, Field>['relation'], Opposite = Relation extends RelationInfo ? Relation['opposite'] : never> = FT extends GetModels<Schema> ? Opposite extends GetModelFields<Schema, FT> ? Opposite | OppositeRelationFields<Schema, Model, Field>[number] : never : never;
256
+ type FilterArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
257
+ where?: WhereInput<Schema, Model>;
258
+ };
259
+ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
260
+ skip?: number;
261
+ take?: number;
262
+ orderBy?: OrArray<OrderBy<Schema, Model, true, false>>;
263
+ cursor?: WhereUniqueInput<Schema, Model>;
264
+ };
265
+ type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Collection extends boolean, AllowFilter extends boolean = true> = ProviderSupportsDistinct<Schema> extends true ? (Collection extends true ? SortAndTakeArgs<Schema, Model> & {
266
+ distinct?: OrArray<NonRelationFields<Schema, Model>>;
267
+ } : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model> : {}) & SelectIncludeOmit<Schema, Model, Collection> : (Collection extends true ? SortAndTakeArgs<Schema, Model> : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model> : {}) & SelectIncludeOmit<Schema, Model, Collection>;
268
+ type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
269
+ type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, false>;
270
+ type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
271
+ where?: WhereUniqueInput<Schema, Model>;
272
+ } & SelectIncludeOmit<Schema, Model, true>;
273
+ type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
274
+ data: CreateInput<Schema, Model>;
275
+ select?: SelectInput<Schema, Model>;
276
+ include?: IncludeInput<Schema, Model>;
277
+ omit?: OmitInput<Schema, Model>;
278
+ };
279
+ type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model>;
280
+ type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model> & {
281
+ select?: SelectInput<Schema, Model, false, false>;
282
+ omit?: OmitInput<Schema, Model>;
283
+ };
284
+ type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
285
+ type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
286
+ [Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
287
+ }>;
288
+ type ScalarCreatePayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends ScalarFields<Schema, Model, false>> = MapModelFieldType<Schema, Model, Field> | (FieldIsArray<Schema, Model, Field> extends true ? {
289
+ set?: MapModelFieldType<Schema, Model, Field>;
290
+ } : never);
291
+ type CreateFKPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
292
+ [Key in ForeignKeyFields<Schema, Model>]: MapModelFieldType<Schema, Model, Key>;
293
+ }>;
294
+ type CreateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = Omit<{
295
+ connectOrCreate?: ConnectOrCreateInput<Schema, Model, Field>;
296
+ create?: NestedCreateInput<Schema, Model, Field>;
297
+ createMany?: NestedCreateManyInput<Schema, Model, Field>;
298
+ connect?: ConnectInput<Schema, Model, Field>;
299
+ }, (FieldIsArray<Schema, Model, Field> extends true ? never : 'createMany') | (FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'createMany' | 'connectOrCreate' : never)>;
300
+ type CreateRelationPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
301
+ [Key in RelationFields<Schema, Model>]: CreateRelationFieldPayload<Schema, Model, Key>;
302
+ }>;
303
+ type CreateWithFKInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateScalarPayload<Schema, Model> & CreateFKPayload<Schema, Model> & CreateWithNonOwnedRelationPayload<Schema, Model>;
304
+ type CreateWithRelationInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateScalarPayload<Schema, Model> & CreateRelationPayload<Schema, Model>;
305
+ type CreateWithNonOwnedRelationPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
306
+ [Key in NonOwnedRelationFields<Schema, Model>]: CreateRelationFieldPayload<Schema, Model, Key>;
307
+ }>;
308
+ type ConnectOrCreatePayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
309
+ where: WhereUniqueInput<Schema, Model>;
310
+ create: CreateInput<Schema, Model, Without>;
311
+ };
312
+ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
313
+ data: OrArray<Omit<CreateScalarPayload<Schema, Model>, Without> & Omit<CreateFKPayload<Schema, Model>, Without>>;
314
+ skipDuplicates?: boolean;
315
+ };
316
+ type CreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = XOR<Omit<CreateWithFKInput<Schema, Model>, Without>, Omit<CreateWithRelationInput<Schema, Model>, Without>>;
317
+ type NestedCreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = OrArray<CreateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>, FieldIsArray<Schema, Model, Field>>;
318
+ type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = CreateManyInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
319
+ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
320
+ data: UpdateInput<Schema, Model>;
321
+ where: WhereUniqueInput<Schema, Model>;
322
+ select?: SelectInput<Schema, Model>;
323
+ include?: IncludeInput<Schema, Model>;
324
+ omit?: OmitInput<Schema, Model>;
325
+ };
326
+ type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model>;
327
+ type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model> & {
328
+ select?: SelectInput<Schema, Model, false, false>;
329
+ omit?: OmitInput<Schema, Model>;
330
+ };
331
+ type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
332
+ data: OrArray<UpdateScalarInput<Schema, Model, Without>>;
333
+ where?: WhereInput<Schema, Model>;
334
+ limit?: number;
335
+ };
336
+ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
337
+ create: CreateInput<Schema, Model>;
338
+ update: UpdateInput<Schema, Model>;
339
+ where: WhereUniqueInput<Schema, Model>;
340
+ select?: SelectInput<Schema, Model>;
341
+ include?: IncludeInput<Schema, Model>;
342
+ omit?: OmitInput<Schema, Model>;
343
+ };
344
+ type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
345
+ [Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
346
+ }, Without>;
347
+ type ScalarUpdatePayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends NonRelationFields<Schema, Model>> = MapModelFieldType<Schema, Model, Field> | (Field extends NumericFields<Schema, Model> ? {
348
+ set?: NullableIf<number, ModelFieldIsOptional<Schema, Model, Field>>;
349
+ increment?: number;
350
+ decrement?: number;
351
+ multiply?: number;
352
+ divide?: number;
353
+ } : never) | (FieldIsArray<Schema, Model, Field> extends true ? {
354
+ set?: MapModelFieldType<Schema, Model, Field>[];
355
+ push?: OrArray<MapModelFieldType<Schema, Model, Field>, true>;
356
+ } : never);
357
+ type UpdateRelationInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
358
+ [Key in RelationFields<Schema, Model>]?: UpdateRelationFieldPayload<Schema, Model, Key>;
359
+ }, Without>;
360
+ type UpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = UpdateScalarInput<Schema, Model, Without> & UpdateRelationInput<Schema, Model, Without>;
361
+ type UpdateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? ToManyRelationUpdateInput<Schema, Model, Field> : ToOneRelationUpdateInput<Schema, Model, Field>;
362
+ type ToManyRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = Omit<{
363
+ create?: NestedCreateInput<Schema, Model, Field>;
364
+ createMany?: NestedCreateManyInput<Schema, Model, Field>;
365
+ connect?: ConnectInput<Schema, Model, Field>;
366
+ connectOrCreate?: ConnectOrCreateInput<Schema, Model, Field>;
367
+ disconnect?: DisconnectInput<Schema, Model, Field>;
368
+ update?: NestedUpdateInput<Schema, Model, Field>;
369
+ upsert?: NestedUpsertInput<Schema, Model, Field>;
370
+ updateMany?: NestedUpdateManyInput<Schema, Model, Field>;
371
+ delete?: NestedDeleteInput<Schema, Model, Field>;
372
+ deleteMany?: NestedDeleteManyInput<Schema, Model, Field>;
373
+ set?: SetRelationInput<Schema, Model, Field>;
374
+ }, FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'createMany' | 'connectOrCreate' | 'upsert' : never>;
375
+ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = Omit<{
376
+ create?: NestedCreateInput<Schema, Model, Field>;
377
+ connect?: ConnectInput<Schema, Model, Field>;
378
+ connectOrCreate?: ConnectOrCreateInput<Schema, Model, Field>;
379
+ update?: NestedUpdateInput<Schema, Model, Field>;
380
+ upsert?: NestedUpsertInput<Schema, Model, Field>;
381
+ } & (ModelFieldIsOptional<Schema, Model, Field> extends true ? {
382
+ disconnect?: DisconnectInput<Schema, Model, Field>;
383
+ delete?: NestedDeleteInput<Schema, Model, Field>;
384
+ } : {}), FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'connectOrCreate' | 'upsert' : never>;
385
+ type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
386
+ where: WhereUniqueInput<Schema, Model>;
387
+ select?: SelectInput<Schema, Model>;
388
+ include?: IncludeInput<Schema, Model>;
389
+ omit?: OmitInput<Schema, Model>;
390
+ };
391
+ type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
392
+ where?: WhereInput<Schema, Model>;
393
+ limit?: number;
394
+ };
395
+ type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<FindArgs<Schema, Model, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
396
+ select?: CountAggregateInput<Schema, Model> | true;
397
+ };
398
+ type CountAggregateInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
399
+ [Key in NonRelationFields<Schema, Model>]?: true;
400
+ } & {
401
+ _all?: true;
402
+ };
403
+ type CountResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends CountArgs<Schema, Model>> = Args extends {
404
+ select: infer S;
405
+ } ? S extends true ? number : {
406
+ [Key in keyof S]: number;
407
+ } : number;
408
+ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
409
+ where?: WhereInput<Schema, Model>;
410
+ skip?: number;
411
+ take?: number;
412
+ orderBy?: OrArray<OrderBy<Schema, Model, true, false>>;
413
+ } & {
414
+ _count?: true | CountAggregateInput<Schema, Model>;
415
+ _min?: MinMaxInput<Schema, Model, true>;
416
+ _max?: MinMaxInput<Schema, Model, true>;
417
+ } & (NumericFields<Schema, Model> extends never ? {} : {
418
+ _avg?: SumAvgInput<Schema, Model, true>;
419
+ _sum?: SumAvgInput<Schema, Model, true>;
420
+ });
421
+ type NumericFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
422
+ [Key in GetModelFields<Schema, Model> as GetModelFieldType<Schema, Model, Key> extends 'Int' | 'Float' | 'BigInt' | 'Decimal' ? FieldIsArray<Schema, Model, Key> extends true ? never : Key : never]: GetModelField<Schema, Model, Key>;
423
+ };
424
+ type SumAvgInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ValueType> = {
425
+ [Key in NumericFields<Schema, Model>]?: ValueType;
426
+ };
427
+ type MinMaxInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ValueType> = {
428
+ [Key in GetModelFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? never : FieldIsRelation<Schema, Model, Key> extends true ? never : Key]?: ValueType;
429
+ };
430
+ type AggregateResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends AggregateArgs<Schema, Model>> = (Args extends {
431
+ _count: infer Count;
432
+ } ? {
433
+ _count: AggCommonOutput<Count>;
434
+ } : {}) & (Args extends {
435
+ _sum: infer Sum;
436
+ } ? {
437
+ _sum: AggCommonOutput<Sum>;
438
+ } : {}) & (Args extends {
439
+ _avg: infer Avg;
440
+ } ? {
441
+ _avg: AggCommonOutput<Avg>;
442
+ } : {}) & (Args extends {
443
+ _min: infer Min;
444
+ } ? {
445
+ _min: AggCommonOutput<Min>;
446
+ } : {}) & (Args extends {
447
+ _max: infer Max;
448
+ } ? {
449
+ _max: AggCommonOutput<Max>;
450
+ } : {});
451
+ type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? {
452
+ [Key in keyof Input]: number;
453
+ } : never;
454
+ type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<WhereInput<Schema, Model, true, true>, '$expr'>;
455
+ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
456
+ where?: WhereInput<Schema, Model>;
457
+ orderBy?: OrArray<OrderBy<Schema, Model, false, true>>;
458
+ by: NonRelationFields<Schema, Model> | NonEmptyArray<NonRelationFields<Schema, Model>>;
459
+ having?: GroupByHaving<Schema, Model>;
460
+ take?: number;
461
+ skip?: number;
462
+ _count?: true | CountAggregateInput<Schema, Model>;
463
+ _min?: MinMaxInput<Schema, Model, true>;
464
+ _max?: MinMaxInput<Schema, Model, true>;
465
+ } & (NumericFields<Schema, Model> extends never ? {} : {
466
+ _avg?: SumAvgInput<Schema, Model, true>;
467
+ _sum?: SumAvgInput<Schema, Model, true>;
468
+ });
469
+ type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends GroupByArgs<Schema, Model>> = Array<{
470
+ [Key in NonRelationFields<Schema, Model> as Key extends ValueOfPotentialTuple<Args['by']> ? Key : never]: MapModelFieldType<Schema, Model, Key>;
471
+ } & (Args extends {
472
+ _count: infer Count;
473
+ } ? {
474
+ _count: AggCommonOutput<Count>;
475
+ } : {}) & (Args extends {
476
+ _avg: infer Avg;
477
+ } ? {
478
+ _avg: AggCommonOutput<Avg>;
479
+ } : {}) & (Args extends {
480
+ _sum: infer Sum;
481
+ } ? {
482
+ _sum: AggCommonOutput<Sum>;
483
+ } : {}) & (Args extends {
484
+ _min: infer Min;
485
+ } ? {
486
+ _min: AggCommonOutput<Min>;
487
+ } : {}) & (Args extends {
488
+ _max: infer Max;
489
+ } ? {
490
+ _max: AggCommonOutput<Max>;
491
+ } : {})>;
492
+ type ConnectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? OrArray<WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>> : WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>;
493
+ type ConnectOrCreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? OrArray<ConnectOrCreatePayload<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>> : ConnectOrCreatePayload<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
494
+ type DisconnectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? OrArray<WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>, true> : boolean | WhereInput<Schema, RelationFieldType<Schema, Model, Field>>;
495
+ type SetRelationInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = OrArray<WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>>;
496
+ type NestedUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? OrArray<{
497
+ where: WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>;
498
+ data: UpdateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
499
+ }, true> : XOR<{
500
+ where: WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>;
501
+ data: UpdateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
502
+ }, UpdateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>>;
503
+ type NestedUpsertInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = OrArray<{
504
+ where: WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>;
505
+ create: CreateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
506
+ update: UpdateInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
507
+ }, FieldIsArray<Schema, Model, Field>>;
508
+ type NestedUpdateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = OrArray<UpdateManyPayload<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>>;
509
+ type NestedDeleteInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = FieldIsArray<Schema, Model, Field> extends true ? OrArray<WhereUniqueInput<Schema, RelationFieldType<Schema, Model, Field>>, true> : boolean | WhereInput<Schema, RelationFieldType<Schema, Model, Field>>;
510
+ type NestedDeleteManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = OrArray<WhereInput<Schema, RelationFieldType<Schema, Model, Field>, true>>;
511
+ type NonOwnedRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
512
+ [Key in RelationFields<Schema, Model> as GetModelField<Schema, Model, Key>['relation'] extends {
513
+ references: unknown[];
514
+ } ? never : Key]: true;
515
+ };
516
+ type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
517
+ [Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true;
518
+ } extends never ? false : true;
519
+ type ProviderSupportsCaseSensitivity<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
520
+ type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
521
+
522
+ type AuthType<Schema extends SchemaDef> = string extends GetModels<Schema> ? Record<string, unknown> : Schema['authType'] extends GetModels<Schema> ? Partial<ModelResult<Schema, Schema['authType']>> : never;
523
+
524
+ export type { AuthType as A, BatchResult as B, CreateArgs as C, DeleteArgs as D, BooleanFilter as E, FindArgs as F, GroupByArgs as G, SortOrder as H, NullsOrder as I, JsonArray as J, WhereUniqueInput as K, OmitInput as L, MaybePromise as M, NumberFilter as N, OrArray as O, PrependParameter as P, SelectIncludeOmit as Q, SelectInput as R, SelectSubset as S, ToKyselySchema as T, UnwrapTuplePromises as U, IncludeInput as V, WhereInput as W, FindManyArgs as X, FindFirstArgs as Y, OrderBy as a, ToKysely as b, Simplify as c, ModelResult as d, FindUniqueArgs as e, CreateManyArgs as f, CreateManyAndReturnArgs as g, UpdateArgs as h, UpdateManyArgs as i, Subset as j, UpdateManyAndReturnArgs as k, UpsertArgs as l, DeleteManyArgs as m, CountArgs as n, CountResult as o, AggregateArgs as p, AggregateResult as q, GroupByResult as r, OrUndefinedIf as s, JsonObject as t, JsonValue as u, SimplifiedModelResult as v, TypeDefResult as w, StringFilter as x, DateTimeFilter as y, BytesFilter as z };