@zenstackhq/orm 3.0.0-beta.21 → 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.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import Decimal from 'decimal.js';
2
2
  import * as _zenstackhq_schema from '@zenstackhq/schema';
3
- 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, ModelDef, DataSourceProviderType, ProcedureDef, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
3
+ import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, RelationFields, FieldIsArray, NonRelationFields, FieldDef, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, RelationFieldType, FieldIsRelation, GetModel, BuiltinType, IsDelegateModel, GetModelDiscriminator, GetSubModels, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation, ModelDef, DataSourceProviderType, ProcedureDef, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
4
4
  import * as kysely from 'kysely';
5
5
  import { OperationNodeVisitor, OperationNode, SelectQueryNode, SelectionNode, ColumnNode, AliasNode, TableNode, FromNode, ReferenceNode, AndNode, OrNode, ValueListNode, ParensNode, JoinNode, RawNode, WhereNode, InsertQueryNode, DeleteQueryNode, ReturningNode, CreateTableNode, AddColumnNode, ColumnDefinitionNode, DropTableNode, OrderByNode, OrderByItemNode, GroupByNode, GroupByItemNode, UpdateQueryNode, ColumnUpdateNode, LimitNode, OffsetNode, OnConflictNode, OnDuplicateKeyNode, CheckConstraintNode, DataTypeNode, SelectAllNode, IdentifierNode, SchemableIdentifierNode, ValueNode, PrimitiveValueListNode, OperatorNode, CreateIndexNode, DropIndexNode, ListNode, PrimaryKeyConstraintNode, UniqueConstraintNode, ReferencesNode, WithNode, CommonTableExpressionNode, CommonTableExpressionNameNode, HavingNode, CreateSchemaNode, DropSchemaNode, AlterTableNode, DropColumnNode, RenameColumnNode, AlterColumnNode, ModifyColumnNode, AddConstraintNode, DropConstraintNode, ForeignKeyConstraintNode, CreateViewNode, DropViewNode, GeneratedNode, DefaultValueNode, OnNode, ValuesNode, SelectModifierNode, CreateTypeNode, DropTypeNode, ExplainNode, DefaultInsertValueNode, AggregateFunctionNode, OverNode, PartitionByNode, PartitionByItemNode, SetOperationNode, BinaryOperationNode, UnaryOperationNode, UsingNode, FunctionNode, CaseNode, WhenNode, JSONReferenceNode, JSONPathNode, JSONPathLegNode, JSONOperatorChainNode, TupleNode, MergeQueryNode, MatchedNode, AddIndexNode, CastNode, FetchNode, TopNode, OutputNode, RenameConstraintNode, RefreshMaterializedViewNode, OrActionNode, CollateNode, Kysely, Generated, ExpressionBuilder, OperandExpression, SqlBool, SelectQueryBuilder, Expression, ExpressionWrapper, QueryId, RootOperationNode, QueryResult, UnknownRow, Dialect, KyselyConfig } from 'kysely';
6
6
 
@@ -200,7 +200,7 @@ type SelectCountResult<Schema extends SchemaDef, Model extends GetModels<Schema>
200
200
  } ? {
201
201
  [Key in keyof S]: number;
202
202
  } : never;
203
- type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends SelectIncludeOmit<Schema, Model, boolean> = {}, Optional = false, Array = false> = WrapType<Args extends {
203
+ type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Optional = false, Array = false> = WrapType<Args extends {
204
204
  select: infer S;
205
205
  omit?: infer O;
206
206
  } ? ModelSelectResult<Schema, Model, S, O> : Args extends {
@@ -211,7 +211,7 @@ type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args
211
211
  } : Args extends {
212
212
  omit: infer O;
213
213
  } ? DefaultModelResult<Schema, Model, O> : DefaultModelResult<Schema, Model>, Optional, Array>;
214
- 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>>;
214
+ type SimplifiedModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Optional = false, Array = false> = Simplify<ModelResult<Schema, Model, Args, Optional, Array>>;
215
215
  type TypeDefResult<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Optional<{
216
216
  [Key in GetTypeDefFields<Schema, TypeDef>]: MapTypeDefFieldType<Schema, TypeDef, Key>;
217
217
  }, keyof {
@@ -221,7 +221,7 @@ type BatchResult = {
221
221
  count: number;
222
222
  };
223
223
  type WhereInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ScalarOnly extends boolean = false, WithAggregations extends boolean = false> = {
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<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>;
225
225
  } & {
226
226
  $expr?: (eb: ExpressionBuilder<ToKyselySchema<Schema>, Model>) => OperandExpression<SqlBool>;
227
227
  } & {
@@ -235,7 +235,7 @@ type EnumFilter<Schema extends SchemaDef, T extends GetEnums<Schema>, Nullable e
235
235
  notIn?: (keyof GetEnum<Schema, T>)[];
236
236
  not?: EnumFilter<Schema, T, Nullable, WithAggregations>;
237
237
  } & (WithAggregations extends true ? {
238
- _count?: NumberFilter<Schema, 'Int', false, false>;
238
+ _count?: NumberFilter<'Int', false, false>;
239
239
  _min?: EnumFilter<Schema, T, false, false>;
240
240
  _max?: EnumFilter<Schema, T, false, false>;
241
241
  } : {}));
@@ -247,8 +247,8 @@ type ArrayFilter<Schema extends SchemaDef, T extends string> = {
247
247
  isEmpty?: boolean;
248
248
  };
249
249
  type MapScalarType<Schema extends SchemaDef, T extends string> = T extends GetEnums<Schema> ? keyof GetEnum<Schema, T> : MapBaseType$1<T>;
250
- 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;
251
- 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> = {
252
252
  equals?: NullableIf<DataType, Nullable>;
253
253
  in?: DataType[];
254
254
  notIn?: DataType[];
@@ -256,48 +256,50 @@ type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends Builtin
256
256
  lte?: DataType;
257
257
  gt?: DataType;
258
258
  gte?: DataType;
259
- not?: PrimitiveFilter<Schema, T, Nullable, WithAggregations>;
259
+ not?: PrimitiveFilter<T, Nullable, WithAggregations>;
260
260
  };
261
- 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> & {
262
262
  contains?: string;
263
263
  startsWith?: string;
264
264
  endsWith?: string;
265
- } & (WithAggregations extends true ? {
266
- _count?: NumberFilter<Schema, 'Int', false, false>;
267
- _min?: StringFilter<Schema, false, false>;
268
- _max?: StringFilter<Schema, false, false>;
269
- } : {}) & (ProviderSupportsCaseSensitivity<Schema> extends true ? {
265
+ /**
266
+ * Not effective for "sqlite" provider
267
+ */
270
268
  mode?: 'default' | 'insensitive';
269
+ } & (WithAggregations extends true ? {
270
+ _count?: NumberFilter<'Int', false, false>;
271
+ _min?: StringFilter<false, false>;
272
+ _max?: StringFilter<false, false>;
271
273
  } : {}));
272
- 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 ? {
273
- _count?: NumberFilter<Schema, 'Int', false, false>;
274
- _avg?: NumberFilter<Schema, T, false, false>;
275
- _sum?: NumberFilter<Schema, T, false, false>;
276
- _min?: NumberFilter<Schema, T, false, false>;
277
- _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>;
278
280
  } : {}));
279
- 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 ? {
280
- _count?: NumberFilter<Schema, 'Int', false, false>;
281
- _min?: DateTimeFilter<Schema, false, false>;
282
- _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>;
283
285
  } : {}));
284
- 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> | ({
285
287
  equals?: NullableIf<Uint8Array, Nullable>;
286
288
  in?: Uint8Array[];
287
289
  notIn?: Uint8Array[];
288
- not?: BytesFilter<Schema, Nullable, WithAggregations>;
290
+ not?: BytesFilter<Nullable, WithAggregations>;
289
291
  } & (WithAggregations extends true ? {
290
- _count?: NumberFilter<Schema, 'Int', false, false>;
291
- _min?: BytesFilter<Schema, false, false>;
292
- _max?: BytesFilter<Schema, false, false>;
292
+ _count?: NumberFilter<'Int', false, false>;
293
+ _min?: BytesFilter<false, false>;
294
+ _max?: BytesFilter<false, false>;
293
295
  } : {}));
294
- 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> | ({
295
297
  equals?: NullableIf<boolean, Nullable>;
296
- not?: BooleanFilter<Schema, Nullable, WithAggregations>;
298
+ not?: BooleanFilter<Nullable, WithAggregations>;
297
299
  } & (WithAggregations extends true ? {
298
- _count?: NumberFilter<Schema, 'Int', false, false>;
299
- _min?: BooleanFilter<Schema, false, false>;
300
- _max?: BooleanFilter<Schema, false, false>;
300
+ _count?: NumberFilter<'Int', false, false>;
301
+ _min?: BooleanFilter<false, false>;
302
+ _max?: BooleanFilter<false, false>;
301
303
  } : {}));
302
304
  type SortOrder = 'asc' | 'desc';
303
305
  type NullsOrder = 'first' | 'last';
@@ -326,10 +328,10 @@ type WhereUniqueInput<Schema extends SchemaDef, Model extends GetModels<Schema>>
326
328
  type OmitInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
327
329
  [Key in NonRelationFields<Schema, Model>]?: boolean;
328
330
  };
329
- type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean> = {
330
- select?: SelectInput<Schema, Model, AllowCount, boolean>;
331
- include?: IncludeInput<Schema, Model, AllowCount>;
332
- 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;
333
335
  };
334
336
  type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
335
337
  [Key in NonRelationFields<Schema, Model>]?: boolean;
@@ -391,28 +393,22 @@ type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Collect
391
393
  distinct?: OrArray<NonRelationFields<Schema, Model>>;
392
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>;
393
395
  type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
394
- type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, false>;
396
+ type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
395
397
  type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
396
- where?: WhereUniqueInput<Schema, Model>;
398
+ where: WhereUniqueInput<Schema, Model>;
397
399
  } & SelectIncludeOmit<Schema, Model, true>;
398
400
  type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
399
401
  data: CreateInput<Schema, Model>;
400
- select?: SelectInput<Schema, Model>;
401
- include?: IncludeInput<Schema, Model>;
402
- omit?: OmitInput<Schema, Model>;
403
- };
402
+ } & SelectIncludeOmit<Schema, Model, true>;
404
403
  type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model>;
405
- type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model> & {
406
- select?: SelectInput<Schema, Model, false, false>;
407
- omit?: OmitInput<Schema, Model>;
408
- };
404
+ type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model> & Omit<SelectIncludeOmit<Schema, Model, false, false>, 'include'>;
409
405
  type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
410
406
  type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
411
407
  [Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
412
408
  }>;
413
- 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 ? {
409
+ type ScalarCreatePayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends ScalarFields<Schema, Model, false>> = Simplify<MapModelFieldType<Schema, Model, Field> | (FieldIsArray<Schema, Model, Field> extends true ? {
414
410
  set?: MapModelFieldType<Schema, Model, Field>;
415
- } : never);
411
+ } : never)>;
416
412
  type CreateFKPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
417
413
  [Key in ForeignKeyFields<Schema, Model>]: MapModelFieldType<Schema, Model, Key>;
418
414
  }>;
@@ -444,15 +440,9 @@ type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Sch
444
440
  type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
445
441
  data: UpdateInput<Schema, Model>;
446
442
  where: WhereUniqueInput<Schema, Model>;
447
- select?: SelectInput<Schema, Model>;
448
- include?: IncludeInput<Schema, Model>;
449
- omit?: OmitInput<Schema, Model>;
450
- };
443
+ } & SelectIncludeOmit<Schema, Model, true>;
451
444
  type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model>;
452
- type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model> & {
453
- select?: SelectInput<Schema, Model, false, false>;
454
- omit?: OmitInput<Schema, Model>;
455
- };
445
+ type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = UpdateManyPayload<Schema, Model> & Omit<SelectIncludeOmit<Schema, Model, false, false>, 'include'>;
456
446
  type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
457
447
  data: OrArray<UpdateScalarInput<Schema, Model, Without>>;
458
448
  where?: WhereInput<Schema, Model>;
@@ -462,10 +452,7 @@ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
462
452
  create: CreateInput<Schema, Model>;
463
453
  update: UpdateInput<Schema, Model>;
464
454
  where: WhereUniqueInput<Schema, Model>;
465
- select?: SelectInput<Schema, Model>;
466
- include?: IncludeInput<Schema, Model>;
467
- omit?: OmitInput<Schema, Model>;
468
- };
455
+ } & SelectIncludeOmit<Schema, Model, true>;
469
456
  type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
470
457
  [Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
471
458
  }, Without>;
@@ -509,10 +496,7 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
509
496
  } : {}), FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'connectOrCreate' | 'upsert' : never>;
510
497
  type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
511
498
  where: WhereUniqueInput<Schema, Model>;
512
- select?: SelectInput<Schema, Model>;
513
- include?: IncludeInput<Schema, Model>;
514
- omit?: OmitInput<Schema, Model>;
515
- };
499
+ } & SelectIncludeOmit<Schema, Model, true>;
516
500
  type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
517
501
  where?: WhereInput<Schema, Model>;
518
502
  limit?: number;
@@ -525,7 +509,7 @@ type CountAggregateInput<Schema extends SchemaDef, Model extends GetModels<Schem
525
509
  } & {
526
510
  _all?: true;
527
511
  };
528
- type CountResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends CountArgs<Schema, Model>> = Args extends {
512
+ type CountResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Args> = Args extends {
529
513
  select: infer S;
530
514
  } ? S extends true ? number : {
531
515
  [Key in keyof S]: number;
@@ -552,7 +536,7 @@ type SumAvgInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Valu
552
536
  type MinMaxInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ValueType> = {
553
537
  [Key in GetModelFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? never : FieldIsRelation<Schema, Model, Key> extends true ? never : Key]?: ValueType;
554
538
  };
555
- type AggregateResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends AggregateArgs<Schema, Model>> = (Args extends {
539
+ type AggregateResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Args> = (Args extends {
556
540
  _count: infer Count;
557
541
  } ? {
558
542
  _count: AggCommonOutput<Count>;
@@ -591,7 +575,9 @@ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
591
575
  _avg?: SumAvgInput<Schema, Model, true>;
592
576
  _sum?: SumAvgInput<Schema, Model, true>;
593
577
  });
594
- type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends GroupByArgs<Schema, Model>> = Array<{
578
+ type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends {
579
+ by: unknown;
580
+ }> = Array<{
595
581
  [Key in NonRelationFields<Schema, Model> as Key extends ValueOfPotentialTuple<Args['by']> ? Key : never]: MapModelFieldType<Schema, Model, Key>;
596
582
  } & (Args extends {
597
583
  _count: infer Count;
@@ -641,7 +627,6 @@ type NonOwnedRelationFields<Schema extends SchemaDef, Model extends GetModels<Sc
641
627
  type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
642
628
  [Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true;
643
629
  } extends never ? false : true;
644
- type ProviderSupportsCaseSensitivity<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
645
630
  type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
646
631
 
647
632
  declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
@@ -672,7 +657,7 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
672
657
  private buildBytesFilter;
673
658
  private buildEnumFilter;
674
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>;
675
- 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>;
676
661
  protected buildModelSelect(model: GetModels<Schema>, subQueryAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, true>, selectAllFields: boolean): SelectQueryBuilder<any, any, {}>;
677
662
  buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
678
663
  buildDelegateJoin(thisModel: string, thisModelAlias: string, otherModelAlias: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
@@ -1222,35 +1207,35 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1222
1207
  * }); // result: `{ _count: { posts: number } }`
1223
1208
  * ```
1224
1209
  */
1225
- findMany<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1210
+ findMany<T extends FindManyArgs<Schema, Model>>(args?: SelectSubset<T, FindManyArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1226
1211
  /**
1227
1212
  * Returns a uniquely identified entity.
1228
1213
  * @param args - query args
1229
1214
  * @returns a single entity or null if not found
1230
1215
  * @see {@link findMany}
1231
1216
  */
1232
- findUnique<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>> | null>;
1217
+ findUnique<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1233
1218
  /**
1234
1219
  * Returns a uniquely identified entity or throws `NotFoundError` if not found.
1235
1220
  * @param args - query args
1236
1221
  * @returns a single entity
1237
1222
  * @see {@link findMany}
1238
1223
  */
1239
- findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1224
+ findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1240
1225
  /**
1241
1226
  * Returns the first entity.
1242
1227
  * @param args - query args
1243
1228
  * @returns a single entity or null if not found
1244
1229
  * @see {@link findMany}
1245
1230
  */
1246
- findFirst<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>> | null>;
1231
+ findFirst<T extends FindFirstArgs<Schema, Model>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1247
1232
  /**
1248
1233
  * Returns the first entity or throws `NotFoundError` if not found.
1249
1234
  * @param args - query args
1250
1235
  * @returns a single entity
1251
1236
  * @see {@link findMany}
1252
1237
  */
1253
- findFirstOrThrow<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1238
+ findFirstOrThrow<T extends FindFirstArgs<Schema, Model>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1254
1239
  /**
1255
1240
  * Creates a new entity.
1256
1241
  * @param args - create args
@@ -1303,7 +1288,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1303
1288
  * });
1304
1289
  * ```
1305
1290
  */
1306
- create<T extends CreateArgs<Schema, Model>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1291
+ create<T extends CreateArgs<Schema, Model>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1307
1292
  /**
1308
1293
  * Creates multiple entities. Only scalar fields are allowed.
1309
1294
  * @param args - create args
@@ -1348,7 +1333,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1348
1333
  * });
1349
1334
  * ```
1350
1335
  */
1351
- createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1336
+ createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1352
1337
  /**
1353
1338
  * Updates a uniquely identified entity.
1354
1339
  * @param args - update args. See {@link findMany} for how to control
@@ -1466,7 +1451,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1466
1451
  * });
1467
1452
  * ```
1468
1453
  */
1469
- update<T extends UpdateArgs<Schema, Model>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1454
+ update<T extends UpdateArgs<Schema, Model>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1470
1455
  /**
1471
1456
  * Updates multiple entities.
1472
1457
  * @param args - update args. Only scalar fields are allowed for data.
@@ -1510,7 +1495,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1510
1495
  * });
1511
1496
  * ```
1512
1497
  */
1513
- updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1498
+ updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1514
1499
  /**
1515
1500
  * Creates or updates an entity.
1516
1501
  * @param args - upsert args
@@ -1531,7 +1516,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1531
1516
  * });
1532
1517
  * ```
1533
1518
  */
1534
- upsert<T extends UpsertArgs<Schema, Model>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1519
+ upsert<T extends UpsertArgs<Schema, Model>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1535
1520
  /**
1536
1521
  * Deletes a uniquely identifiable entity.
1537
1522
  * @param args - delete args
@@ -1551,7 +1536,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1551
1536
  * }); // result: `{ id: string; email: string }`
1552
1537
  * ```
1553
1538
  */
1554
- delete<T extends DeleteArgs<Schema, Model>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1539
+ delete<T extends DeleteArgs<Schema, Model>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1555
1540
  /**
1556
1541
  * Deletes multiple entities.
1557
1542
  * @param args - delete args