@zenstackhq/orm 3.0.0-beta.22 → 3.0.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -120,7 +120,6 @@ type _Depth = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
120
120
  type Simplify<T, D extends number = 6> = D extends 0 ? T : T extends object ? T extends _Preserve ? T : {
121
121
  [K in keyof T]: Simplify<T[K], _Depth[D]>;
122
122
  } & {} : T;
123
- type SimplifyIf<T, Condition extends boolean> = Condition extends true ? Simplify<T> : T;
124
123
  type WrapType<T, Optional = false, Array = false> = Array extends true ? Optional extends true ? T[] | null : T[] : Optional extends true ? T | null : T;
125
124
  type TypeMap = {
126
125
  String: string;
@@ -222,7 +221,7 @@ type BatchResult = {
222
221
  count: number;
223
222
  };
224
223
  type WhereInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ScalarOnly extends boolean = false, WithAggregations extends boolean = false> = {
225
- [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>;
224
+ [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<GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>, WithAggregations>;
226
225
  } & {
227
226
  $expr?: (eb: ExpressionBuilder<ToKyselySchema<Schema>, Model>) => OperandExpression<SqlBool>;
228
227
  } & {
@@ -236,7 +235,7 @@ type EnumFilter<Schema extends SchemaDef, T extends GetEnums<Schema>, Nullable e
236
235
  notIn?: (keyof GetEnum<Schema, T>)[];
237
236
  not?: EnumFilter<Schema, T, Nullable, WithAggregations>;
238
237
  } & (WithAggregations extends true ? {
239
- _count?: NumberFilter<Schema, 'Int', false, false>;
238
+ _count?: NumberFilter<'Int', false, false>;
240
239
  _min?: EnumFilter<Schema, T, false, false>;
241
240
  _max?: EnumFilter<Schema, T, false, false>;
242
241
  } : {}));
@@ -248,8 +247,8 @@ type ArrayFilter<Schema extends SchemaDef, T extends string> = {
248
247
  isEmpty?: boolean;
249
248
  };
250
249
  type MapScalarType<Schema extends SchemaDef, T extends string> = T extends GetEnums<Schema> ? keyof GetEnum<Schema, T> : MapBaseType$1<T>;
251
- 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;
252
- type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends BuiltinType, Nullable extends boolean, WithAggregations extends boolean> = {
250
+ type PrimitiveFilter<T extends string, Nullable extends boolean, WithAggregations extends boolean> = T extends 'String' ? StringFilter<Nullable, WithAggregations> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<T, Nullable, WithAggregations> : T extends 'Boolean' ? BooleanFilter<Nullable, WithAggregations> : T extends 'DateTime' ? DateTimeFilter<Nullable, WithAggregations> : T extends 'Bytes' ? BytesFilter<Nullable, WithAggregations> : T extends 'Json' ? 'Not implemented yet' : never;
251
+ type CommonPrimitiveFilter<DataType, T extends BuiltinType, Nullable extends boolean, WithAggregations extends boolean> = {
253
252
  equals?: NullableIf<DataType, Nullable>;
254
253
  in?: DataType[];
255
254
  notIn?: DataType[];
@@ -257,48 +256,50 @@ type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends Builtin
257
256
  lte?: DataType;
258
257
  gt?: DataType;
259
258
  gte?: DataType;
260
- not?: PrimitiveFilter<Schema, T, Nullable, WithAggregations>;
259
+ not?: PrimitiveFilter<T, Nullable, WithAggregations>;
261
260
  };
262
- type StringFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<Schema, string, 'String', Nullable, WithAggregations> & {
261
+ type StringFilter<Nullable extends boolean, WithAggregations extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<string, 'String', Nullable, WithAggregations> & {
263
262
  contains?: string;
264
263
  startsWith?: string;
265
264
  endsWith?: string;
266
- } & (WithAggregations extends true ? {
267
- _count?: NumberFilter<Schema, 'Int', false, false>;
268
- _min?: StringFilter<Schema, false, false>;
269
- _max?: StringFilter<Schema, false, false>;
270
- } : {}) & (ProviderSupportsCaseSensitivity<Schema> extends true ? {
265
+ /**
266
+ * Not effective for "sqlite" provider
267
+ */
271
268
  mode?: 'default' | 'insensitive';
269
+ } & (WithAggregations extends true ? {
270
+ _count?: NumberFilter<'Int', false, false>;
271
+ _min?: StringFilter<false, false>;
272
+ _max?: StringFilter<false, false>;
272
273
  } : {}));
273
- 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 ? {
274
- _count?: NumberFilter<Schema, 'Int', false, false>;
275
- _avg?: NumberFilter<Schema, T, false, false>;
276
- _sum?: NumberFilter<Schema, T, false, false>;
277
- _min?: NumberFilter<Schema, T, false, false>;
278
- _max?: NumberFilter<Schema, T, false, false>;
274
+ type NumberFilter<T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean, WithAggregations extends boolean> = NullableIf<number | bigint, Nullable> | (CommonPrimitiveFilter<number, T, Nullable, WithAggregations> & (WithAggregations extends true ? {
275
+ _count?: NumberFilter<'Int', false, false>;
276
+ _avg?: NumberFilter<T, false, false>;
277
+ _sum?: NumberFilter<T, false, false>;
278
+ _min?: NumberFilter<T, false, false>;
279
+ _max?: NumberFilter<T, false, false>;
279
280
  } : {}));
280
- 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 ? {
281
- _count?: NumberFilter<Schema, 'Int', false, false>;
282
- _min?: DateTimeFilter<Schema, false, false>;
283
- _max?: DateTimeFilter<Schema, false, false>;
281
+ type DateTimeFilter<Nullable extends boolean, WithAggregations extends boolean> = NullableIf<Date | string, Nullable> | (CommonPrimitiveFilter<Date | string, 'DateTime', Nullable, WithAggregations> & (WithAggregations extends true ? {
282
+ _count?: NumberFilter<'Int', false, false>;
283
+ _min?: DateTimeFilter<false, false>;
284
+ _max?: DateTimeFilter<false, false>;
284
285
  } : {}));
285
- type BytesFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<Uint8Array | Buffer, Nullable> | ({
286
+ type BytesFilter<Nullable extends boolean, WithAggregations extends boolean> = NullableIf<Uint8Array | Buffer, Nullable> | ({
286
287
  equals?: NullableIf<Uint8Array, Nullable>;
287
288
  in?: Uint8Array[];
288
289
  notIn?: Uint8Array[];
289
- not?: BytesFilter<Schema, Nullable, WithAggregations>;
290
+ not?: BytesFilter<Nullable, WithAggregations>;
290
291
  } & (WithAggregations extends true ? {
291
- _count?: NumberFilter<Schema, 'Int', false, false>;
292
- _min?: BytesFilter<Schema, false, false>;
293
- _max?: BytesFilter<Schema, false, false>;
292
+ _count?: NumberFilter<'Int', false, false>;
293
+ _min?: BytesFilter<false, false>;
294
+ _max?: BytesFilter<false, false>;
294
295
  } : {}));
295
- type BooleanFilter<Schema extends SchemaDef, Nullable extends boolean, WithAggregations extends boolean> = NullableIf<boolean, Nullable> | ({
296
+ type BooleanFilter<Nullable extends boolean, WithAggregations extends boolean> = NullableIf<boolean, Nullable> | ({
296
297
  equals?: NullableIf<boolean, Nullable>;
297
- not?: BooleanFilter<Schema, Nullable, WithAggregations>;
298
+ not?: BooleanFilter<Nullable, WithAggregations>;
298
299
  } & (WithAggregations extends true ? {
299
- _count?: NumberFilter<Schema, 'Int', false, false>;
300
- _min?: BooleanFilter<Schema, false, false>;
301
- _max?: BooleanFilter<Schema, false, false>;
300
+ _count?: NumberFilter<'Int', false, false>;
301
+ _min?: BooleanFilter<false, false>;
302
+ _max?: BooleanFilter<false, false>;
302
303
  } : {}));
303
304
  type SortOrder = 'asc' | 'desc';
304
305
  type NullsOrder = 'first' | 'last';
@@ -327,10 +328,10 @@ type WhereUniqueInput<Schema extends SchemaDef, Model extends GetModels<Schema>>
327
328
  type OmitInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
328
329
  [Key in NonRelationFields<Schema, Model>]?: boolean;
329
330
  };
330
- type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean> = {
331
- select?: SelectInput<Schema, Model, AllowCount, boolean>;
332
- include?: IncludeInput<Schema, Model, AllowCount>;
333
- omit?: OmitInput<Schema, Model>;
331
+ type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean, AllowRelation extends boolean = true> = {
332
+ select?: SelectInput<Schema, Model, AllowCount, AllowRelation> | null;
333
+ include?: IncludeInput<Schema, Model, AllowCount> | null;
334
+ omit?: OmitInput<Schema, Model> | null;
334
335
  };
335
336
  type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
336
337
  [Key in NonRelationFields<Schema, Model>]?: boolean;
@@ -391,22 +392,16 @@ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>>
391
392
  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> & {
392
393
  distinct?: OrArray<NonRelationFields<Schema, Model>>;
393
394
  } : {}) & (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>;
394
- type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<FindArgs<Schema, Model, true>, Simplify>;
395
- type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<FindArgs<Schema, Model, true>, Simplify>;
396
- type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
397
- where?: WhereUniqueInput<Schema, Model>;
398
- } & SelectIncludeOmit<Schema, Model, true>, Simplify>;
399
- type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
395
+ type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
396
+ type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
397
+ type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
398
+ where: WhereUniqueInput<Schema, Model>;
399
+ } & SelectIncludeOmit<Schema, Model, true>;
400
+ type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
400
401
  data: CreateInput<Schema, Model>;
401
- select?: SelectInput<Schema, Model>;
402
- include?: IncludeInput<Schema, Model>;
403
- omit?: OmitInput<Schema, Model>;
404
- }, Simplify>;
405
- type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<CreateManyInput<Schema, Model>, Simplify>;
406
- type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<CreateManyInput<Schema, Model> & {
407
- select?: SelectInput<Schema, Model, false, false>;
408
- omit?: OmitInput<Schema, Model>;
409
- }, Simplify>;
402
+ } & SelectIncludeOmit<Schema, Model, true>;
403
+ type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model>;
404
+ type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model> & Omit<SelectIncludeOmit<Schema, Model, false, false>, 'include'>;
410
405
  type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
411
406
  type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
412
407
  [Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
@@ -442,31 +437,22 @@ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
442
437
  type CreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = XOR<Omit<CreateWithFKInput<Schema, Model>, Without>, Omit<CreateWithRelationInput<Schema, Model>, Without>>;
443
438
  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>>;
444
439
  type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = CreateManyInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
445
- type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
440
+ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
446
441
  data: UpdateInput<Schema, Model>;
447
442
  where: WhereUniqueInput<Schema, Model>;
448
- select?: SelectInput<Schema, Model>;
449
- include?: IncludeInput<Schema, Model>;
450
- omit?: OmitInput<Schema, Model>;
451
- }, Simplify>;
452
- type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<UpdateManyPayload<Schema, Model>, Simplify>;
453
- type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<UpdateManyPayload<Schema, Model> & {
454
- select?: SelectInput<Schema, Model, false, false>;
455
- omit?: OmitInput<Schema, Model>;
456
- }, Simplify>;
443
+ } & SelectIncludeOmit<Schema, Model, true>;
444
+ type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model>;
445
+ type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model> & Omit<SelectIncludeOmit<Schema, Model, false, false>, 'include'>;
457
446
  type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
458
447
  data: OrArray<UpdateScalarInput<Schema, Model, Without>>;
459
448
  where?: WhereInput<Schema, Model>;
460
449
  limit?: number;
461
450
  };
462
- type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
451
+ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
463
452
  create: CreateInput<Schema, Model>;
464
453
  update: UpdateInput<Schema, Model>;
465
454
  where: WhereUniqueInput<Schema, Model>;
466
- select?: SelectInput<Schema, Model>;
467
- include?: IncludeInput<Schema, Model>;
468
- omit?: OmitInput<Schema, Model>;
469
- }, Simplify>;
455
+ } & SelectIncludeOmit<Schema, Model, true>;
470
456
  type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
471
457
  [Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
472
458
  }, Without>;
@@ -508,19 +494,16 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
508
494
  disconnect?: DisconnectInput<Schema, Model, Field>;
509
495
  delete?: NestedDeleteInput<Schema, Model, Field>;
510
496
  } : {}), FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'connectOrCreate' | 'upsert' : never>;
511
- type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
497
+ type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
512
498
  where: WhereUniqueInput<Schema, Model>;
513
- select?: SelectInput<Schema, Model>;
514
- include?: IncludeInput<Schema, Model>;
515
- omit?: OmitInput<Schema, Model>;
516
- }, Simplify>;
517
- type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
499
+ } & SelectIncludeOmit<Schema, Model, true>;
500
+ type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
518
501
  where?: WhereInput<Schema, Model>;
519
502
  limit?: number;
520
- }, Simplify>;
521
- type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<Omit<FindArgs<Schema, Model, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
503
+ };
504
+ type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<FindArgs<Schema, Model, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
522
505
  select?: CountAggregateInput<Schema, Model> | true;
523
- }, Simplify>;
506
+ };
524
507
  type CountAggregateInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
525
508
  [Key in NonRelationFields<Schema, Model>]?: true;
526
509
  } & {
@@ -531,7 +514,7 @@ type CountResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Arg
531
514
  } ? S extends true ? number : {
532
515
  [Key in keyof S]: number;
533
516
  } : number;
534
- type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
517
+ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
535
518
  where?: WhereInput<Schema, Model>;
536
519
  skip?: number;
537
520
  take?: number;
@@ -543,7 +526,7 @@ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Si
543
526
  } & (NumericFields<Schema, Model> extends never ? {} : {
544
527
  _avg?: SumAvgInput<Schema, Model, true>;
545
528
  _sum?: SumAvgInput<Schema, Model, true>;
546
- }), Simplify>;
529
+ });
547
530
  type NumericFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
548
531
  [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>;
549
532
  };
@@ -578,7 +561,7 @@ type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? {
578
561
  [Key in keyof Input]: number;
579
562
  } : never;
580
563
  type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<WhereInput<Schema, Model, true, true>, '$expr'>;
581
- type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
564
+ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
582
565
  where?: WhereInput<Schema, Model>;
583
566
  orderBy?: OrArray<OrderBy<Schema, Model, false, true>>;
584
567
  by: NonRelationFields<Schema, Model> | NonEmptyArray<NonRelationFields<Schema, Model>>;
@@ -591,7 +574,7 @@ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simp
591
574
  } & (NumericFields<Schema, Model> extends never ? {} : {
592
575
  _avg?: SumAvgInput<Schema, Model, true>;
593
576
  _sum?: SumAvgInput<Schema, Model, true>;
594
- }), Simplify>;
577
+ });
595
578
  type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends {
596
579
  by: unknown;
597
580
  }> = Array<{
@@ -644,7 +627,6 @@ type NonOwnedRelationFields<Schema extends SchemaDef, Model extends GetModels<Sc
644
627
  type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
645
628
  [Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true;
646
629
  } extends never ? false : true;
647
- type ProviderSupportsCaseSensitivity<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
648
630
  type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
649
631
 
650
632
  declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
@@ -675,7 +657,7 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
675
657
  private buildBytesFilter;
676
658
  private buildEnumFilter;
677
659
  buildOrderBy(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, orderBy: OrArray<OrderBy<Schema, GetModels<Schema>, boolean, boolean>> | undefined, negated: boolean): SelectQueryBuilder<any, any, any>;
678
- buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit: Record<string, boolean | undefined> | undefined, modelAlias: string): SelectQueryBuilder<any, any, any>;
660
+ buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit: Record<string, boolean | undefined> | undefined | null, modelAlias: string): SelectQueryBuilder<any, any, any>;
679
661
  protected buildModelSelect(model: GetModels<Schema>, subQueryAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, true>, selectAllFields: boolean): SelectQueryBuilder<any, any, {}>;
680
662
  buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
681
663
  buildDelegateJoin(thisModel: string, thisModelAlias: string, otherModelAlias: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
@@ -1225,35 +1207,35 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1225
1207
  * }); // result: `{ _count: { posts: number } }`
1226
1208
  * ```
1227
1209
  */
1228
- findMany<T extends FindManyArgs<Schema, Model, true>>(args?: SelectSubset<T, FindManyArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1210
+ findMany<T extends FindManyArgs<Schema, Model>>(args?: SelectSubset<T, FindManyArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1229
1211
  /**
1230
1212
  * Returns a uniquely identified entity.
1231
1213
  * @param args - query args
1232
1214
  * @returns a single entity or null if not found
1233
1215
  * @see {@link findMany}
1234
1216
  */
1235
- findUnique<T extends FindUniqueArgs<Schema, Model, true>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1217
+ findUnique<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1236
1218
  /**
1237
1219
  * Returns a uniquely identified entity or throws `NotFoundError` if not found.
1238
1220
  * @param args - query args
1239
1221
  * @returns a single entity
1240
1222
  * @see {@link findMany}
1241
1223
  */
1242
- findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, true>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1224
+ findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1243
1225
  /**
1244
1226
  * Returns the first entity.
1245
1227
  * @param args - query args
1246
1228
  * @returns a single entity or null if not found
1247
1229
  * @see {@link findMany}
1248
1230
  */
1249
- findFirst<T extends FindFirstArgs<Schema, Model, true>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1231
+ findFirst<T extends FindFirstArgs<Schema, Model>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1250
1232
  /**
1251
1233
  * Returns the first entity or throws `NotFoundError` if not found.
1252
1234
  * @param args - query args
1253
1235
  * @returns a single entity
1254
1236
  * @see {@link findMany}
1255
1237
  */
1256
- findFirstOrThrow<T extends FindFirstArgs<Schema, Model, true>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1238
+ findFirstOrThrow<T extends FindFirstArgs<Schema, Model>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1257
1239
  /**
1258
1240
  * Creates a new entity.
1259
1241
  * @param args - create args
@@ -1306,7 +1288,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1306
1288
  * });
1307
1289
  * ```
1308
1290
  */
1309
- create<T extends CreateArgs<Schema, Model, true>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1291
+ create<T extends CreateArgs<Schema, Model>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1310
1292
  /**
1311
1293
  * Creates multiple entities. Only scalar fields are allowed.
1312
1294
  * @param args - create args
@@ -1332,7 +1314,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1332
1314
  * });
1333
1315
  * ```
1334
1316
  */
1335
- createMany<T extends CreateManyArgs<Schema, Model, true>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1317
+ createMany<T extends CreateManyArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1336
1318
  /**
1337
1319
  * Creates multiple entities and returns them.
1338
1320
  * @param args - create args. See {@link createMany} for input. Use
@@ -1351,7 +1333,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1351
1333
  * });
1352
1334
  * ```
1353
1335
  */
1354
- createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, true>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1336
+ createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1355
1337
  /**
1356
1338
  * Updates a uniquely identified entity.
1357
1339
  * @param args - update args. See {@link findMany} for how to control
@@ -1469,7 +1451,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1469
1451
  * });
1470
1452
  * ```
1471
1453
  */
1472
- update<T extends UpdateArgs<Schema, Model, true>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1454
+ update<T extends UpdateArgs<Schema, Model>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1473
1455
  /**
1474
1456
  * Updates multiple entities.
1475
1457
  * @param args - update args. Only scalar fields are allowed for data.
@@ -1490,7 +1472,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1490
1472
  * limit: 10
1491
1473
  * });
1492
1474
  */
1493
- updateMany<T extends UpdateManyArgs<Schema, Model, true>>(args: Subset<T, UpdateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1475
+ updateMany<T extends UpdateManyArgs<Schema, Model>>(args: Subset<T, UpdateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1494
1476
  /**
1495
1477
  * Updates multiple entities and returns them.
1496
1478
  * @param args - update args. Only scalar fields are allowed for data.
@@ -1513,7 +1495,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1513
1495
  * });
1514
1496
  * ```
1515
1497
  */
1516
- updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, true>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1498
+ updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1517
1499
  /**
1518
1500
  * Creates or updates an entity.
1519
1501
  * @param args - upsert args
@@ -1534,7 +1516,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1534
1516
  * });
1535
1517
  * ```
1536
1518
  */
1537
- upsert<T extends UpsertArgs<Schema, Model, true>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1519
+ upsert<T extends UpsertArgs<Schema, Model>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1538
1520
  /**
1539
1521
  * Deletes a uniquely identifiable entity.
1540
1522
  * @param args - delete args
@@ -1554,7 +1536,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1554
1536
  * }); // result: `{ id: string; email: string }`
1555
1537
  * ```
1556
1538
  */
1557
- delete<T extends DeleteArgs<Schema, Model, true>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1539
+ delete<T extends DeleteArgs<Schema, Model>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1558
1540
  /**
1559
1541
  * Deletes multiple entities.
1560
1542
  * @param args - delete args
@@ -1574,7 +1556,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1574
1556
  * });
1575
1557
  * ```
1576
1558
  */
1577
- deleteMany<T extends DeleteManyArgs<Schema, Model, true>>(args?: Subset<T, DeleteManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1559
+ deleteMany<T extends DeleteManyArgs<Schema, Model>>(args?: Subset<T, DeleteManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1578
1560
  /**
1579
1561
  * Counts rows or field values.
1580
1562
  * @param args - count args
@@ -1593,7 +1575,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1593
1575
  * select: { _all: true, email: true }
1594
1576
  * }); // result: `{ _all: number, email: number }`
1595
1577
  */
1596
- count<T extends CountArgs<Schema, Model, true>>(args?: Subset<T, CountArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
1578
+ count<T extends CountArgs<Schema, Model>>(args?: Subset<T, CountArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
1597
1579
  /**
1598
1580
  * Aggregates rows.
1599
1581
  * @param args - aggregation args
@@ -1611,7 +1593,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1611
1593
  * _max: { age: true }
1612
1594
  * }); // result: `{ _count: number, _avg: { age: number }, ... }`
1613
1595
  */
1614
- aggregate<T extends AggregateArgs<Schema, Model, true>>(args: Subset<T, AggregateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
1596
+ aggregate<T extends AggregateArgs<Schema, Model>>(args: Subset<T, AggregateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
1615
1597
  /**
1616
1598
  * Groups rows by columns.
1617
1599
  * @param args - groupBy args
@@ -1645,7 +1627,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1645
1627
  * having: { country: 'US', age: { _avg: { gte: 18 } } }
1646
1628
  * });
1647
1629
  */
1648
- groupBy<T extends GroupByArgs<Schema, Model, true>>(args: Subset<T, GroupByArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
1630
+ groupBy<T extends GroupByArgs<Schema, Model>>(args: Subset<T, GroupByArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
1649
1631
  };
1650
1632
  type OperationsIneligibleForDelegateModels = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
1651
1633
  type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<AllModelOperations<Schema, Model>, IsDelegateModel<Schema, Model> extends true ? OperationsIneligibleForDelegateModels : never>;
package/dist/index.js CHANGED
@@ -4061,9 +4061,9 @@ var InputValidator = class {
4061
4061
  } else {
4062
4062
  fields["where"] = where.optional();
4063
4063
  }
4064
- fields["select"] = this.makeSelectSchema(model).optional();
4065
- fields["include"] = this.makeIncludeSchema(model).optional();
4066
- fields["omit"] = this.makeOmitSchema(model).optional();
4064
+ fields["select"] = this.makeSelectSchema(model).optional().nullable();
4065
+ fields["include"] = this.makeIncludeSchema(model).optional().nullable();
4066
+ fields["omit"] = this.makeOmitSchema(model).optional().nullable();
4067
4067
  if (!options.unique) {
4068
4068
  fields["skip"] = this.makeSkipSchema().optional();
4069
4069
  if (options.findOne) {
@@ -4437,9 +4437,9 @@ var InputValidator = class {
4437
4437
  // to-many relations and optional to-one relations are filterable
4438
4438
  where: z2.lazy(() => this.makeWhereSchema(fieldDef.type, false)).optional()
4439
4439
  } : {},
4440
- select: z2.lazy(() => this.makeSelectSchema(fieldDef.type)).optional(),
4441
- include: z2.lazy(() => this.makeIncludeSchema(fieldDef.type)).optional(),
4442
- omit: z2.lazy(() => this.makeOmitSchema(fieldDef.type)).optional(),
4440
+ select: z2.lazy(() => this.makeSelectSchema(fieldDef.type)).optional().nullable(),
4441
+ include: z2.lazy(() => this.makeIncludeSchema(fieldDef.type)).optional().nullable(),
4442
+ omit: z2.lazy(() => this.makeOmitSchema(fieldDef.type)).optional().nullable(),
4443
4443
  ...fieldDef.array ? {
4444
4444
  // to-many relations can be ordered, skipped, taken, and cursor-located
4445
4445
  orderBy: z2.lazy(() => this.orArray(this.makeOrderBySchema(fieldDef.type, true, false), true)).optional(),
@@ -4548,9 +4548,9 @@ var InputValidator = class {
4548
4548
  const dataSchema = this.makeCreateDataSchema(model, false);
4549
4549
  let schema = z2.strictObject({
4550
4550
  data: dataSchema,
4551
- select: this.makeSelectSchema(model).optional(),
4552
- include: this.makeIncludeSchema(model).optional(),
4553
- omit: this.makeOmitSchema(model).optional()
4551
+ select: this.makeSelectSchema(model).optional().nullable(),
4552
+ include: this.makeIncludeSchema(model).optional().nullable(),
4553
+ omit: this.makeOmitSchema(model).optional().nullable()
4554
4554
  });
4555
4555
  schema = this.refineForSelectIncludeMutuallyExclusive(schema);
4556
4556
  schema = this.refineForSelectOmitMutuallyExclusive(schema);
@@ -4562,8 +4562,8 @@ var InputValidator = class {
4562
4562
  makeCreateManyAndReturnSchema(model) {
4563
4563
  const base = this.makeCreateManyDataSchema(model, []);
4564
4564
  const result = base.extend({
4565
- select: this.makeSelectSchema(model).optional(),
4566
- omit: this.makeOmitSchema(model).optional()
4565
+ select: this.makeSelectSchema(model).optional().nullable(),
4566
+ omit: this.makeOmitSchema(model).optional().nullable()
4567
4567
  });
4568
4568
  return this.refineForSelectOmitMutuallyExclusive(result).optional();
4569
4569
  }
@@ -4753,9 +4753,9 @@ var InputValidator = class {
4753
4753
  let schema = z2.strictObject({
4754
4754
  where: this.makeWhereSchema(model, true),
4755
4755
  data: this.makeUpdateDataSchema(model),
4756
- select: this.makeSelectSchema(model).optional(),
4757
- include: this.makeIncludeSchema(model).optional(),
4758
- omit: this.makeOmitSchema(model).optional()
4756
+ select: this.makeSelectSchema(model).optional().nullable(),
4757
+ include: this.makeIncludeSchema(model).optional().nullable(),
4758
+ omit: this.makeOmitSchema(model).optional().nullable()
4759
4759
  });
4760
4760
  schema = this.refineForSelectIncludeMutuallyExclusive(schema);
4761
4761
  schema = this.refineForSelectOmitMutuallyExclusive(schema);
@@ -4771,8 +4771,8 @@ var InputValidator = class {
4771
4771
  makeUpdateManyAndReturnSchema(model) {
4772
4772
  const base = this.makeUpdateManySchema(model);
4773
4773
  let schema = base.extend({
4774
- select: this.makeSelectSchema(model).optional(),
4775
- omit: this.makeOmitSchema(model).optional()
4774
+ select: this.makeSelectSchema(model).optional().nullable(),
4775
+ omit: this.makeOmitSchema(model).optional().nullable()
4776
4776
  });
4777
4777
  schema = this.refineForSelectOmitMutuallyExclusive(schema);
4778
4778
  return schema;
@@ -4782,9 +4782,9 @@ var InputValidator = class {
4782
4782
  where: this.makeWhereSchema(model, true),
4783
4783
  create: this.makeCreateDataSchema(model, false),
4784
4784
  update: this.makeUpdateDataSchema(model),
4785
- select: this.makeSelectSchema(model).optional(),
4786
- include: this.makeIncludeSchema(model).optional(),
4787
- omit: this.makeOmitSchema(model).optional()
4785
+ select: this.makeSelectSchema(model).optional().nullable(),
4786
+ include: this.makeIncludeSchema(model).optional().nullable(),
4787
+ omit: this.makeOmitSchema(model).optional().nullable()
4788
4788
  });
4789
4789
  schema = this.refineForSelectIncludeMutuallyExclusive(schema);
4790
4790
  schema = this.refineForSelectOmitMutuallyExclusive(schema);
@@ -4874,8 +4874,8 @@ var InputValidator = class {
4874
4874
  makeDeleteSchema(model) {
4875
4875
  let schema = z2.strictObject({
4876
4876
  where: this.makeWhereSchema(model, true),
4877
- select: this.makeSelectSchema(model).optional(),
4878
- include: this.makeIncludeSchema(model).optional()
4877
+ select: this.makeSelectSchema(model).optional().nullable(),
4878
+ include: this.makeIncludeSchema(model).optional().nullable()
4879
4879
  });
4880
4880
  schema = this.refineForSelectIncludeMutuallyExclusive(schema);
4881
4881
  schema = this.refineForSelectOmitMutuallyExclusive(schema);
@@ -5265,7 +5265,9 @@ var QueryNameMapper = class extends OperationNodeTransformer {
5265
5265
  return super.transformSelectQuery(node);
5266
5266
  }
5267
5267
  const processedFroms = node.from.froms.map((from) => this.processSelectTable(from));
5268
- const processedJoins = (node.joins ?? []).map((join) => this.processSelectTable(join.table));
5268
+ const processedJoins = this.withScopes([
5269
+ ...processedFroms.map(({ scope }) => scope)
5270
+ ], () => (node.joins ?? []).map((join) => this.processSelectTable(join.table)));
5269
5271
  const scopes = [
5270
5272
  ...processedFroms.map(({ scope }) => scope),
5271
5273
  ...processedJoins.map(({ scope }) => scope)