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

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
@@ -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
 
@@ -120,6 +120,7 @@ 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;
123
124
  type WrapType<T, Optional = false, Array = false> = Array extends true ? Optional extends true ? T[] | null : T[] : Optional extends true ? T | null : T;
124
125
  type TypeMap = {
125
126
  String: string;
@@ -200,7 +201,7 @@ type SelectCountResult<Schema extends SchemaDef, Model extends GetModels<Schema>
200
201
  } ? {
201
202
  [Key in keyof S]: number;
202
203
  } : never;
203
- type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends SelectIncludeOmit<Schema, Model, boolean> = {}, Optional = false, Array = false> = WrapType<Args extends {
204
+ type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Optional = false, Array = false> = WrapType<Args extends {
204
205
  select: infer S;
205
206
  omit?: infer O;
206
207
  } ? ModelSelectResult<Schema, Model, S, O> : Args extends {
@@ -211,7 +212,7 @@ type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args
211
212
  } : Args extends {
212
213
  omit: infer O;
213
214
  } ? 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>>;
215
+ type SimplifiedModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Optional = false, Array = false> = Simplify<ModelResult<Schema, Model, Args, Optional, Array>>;
215
216
  type TypeDefResult<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>> = Optional<{
216
217
  [Key in GetTypeDefFields<Schema, TypeDef>]: MapTypeDefFieldType<Schema, TypeDef, Key>;
217
218
  }, keyof {
@@ -390,29 +391,29 @@ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>>
390
391
  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> & {
391
392
  distinct?: OrArray<NonRelationFields<Schema, Model>>;
392
393
  } : {}) & (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
- 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>;
395
- type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
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<{
396
397
  where?: WhereUniqueInput<Schema, Model>;
397
- } & SelectIncludeOmit<Schema, Model, true>;
398
- type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
398
+ } & SelectIncludeOmit<Schema, Model, true>, Simplify>;
399
+ type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
399
400
  data: CreateInput<Schema, Model>;
400
401
  select?: SelectInput<Schema, Model>;
401
402
  include?: IncludeInput<Schema, Model>;
402
403
  omit?: OmitInput<Schema, Model>;
403
- };
404
- 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> & {
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> & {
406
407
  select?: SelectInput<Schema, Model, false, false>;
407
408
  omit?: OmitInput<Schema, Model>;
408
- };
409
+ }, Simplify>;
409
410
  type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
410
411
  type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
411
412
  [Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
412
413
  }>;
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 ? {
414
+ 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
415
  set?: MapModelFieldType<Schema, Model, Field>;
415
- } : never);
416
+ } : never)>;
416
417
  type CreateFKPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
417
418
  [Key in ForeignKeyFields<Schema, Model>]: MapModelFieldType<Schema, Model, Key>;
418
419
  }>;
@@ -441,31 +442,31 @@ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
441
442
  type CreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = XOR<Omit<CreateWithFKInput<Schema, Model>, Without>, Omit<CreateWithRelationInput<Schema, Model>, Without>>;
442
443
  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>>;
443
444
  type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = CreateManyInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
444
- type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
445
+ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
445
446
  data: UpdateInput<Schema, Model>;
446
447
  where: WhereUniqueInput<Schema, Model>;
447
448
  select?: SelectInput<Schema, Model>;
448
449
  include?: IncludeInput<Schema, Model>;
449
450
  omit?: OmitInput<Schema, Model>;
450
- };
451
- 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> & {
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> & {
453
454
  select?: SelectInput<Schema, Model, false, false>;
454
455
  omit?: OmitInput<Schema, Model>;
455
- };
456
+ }, Simplify>;
456
457
  type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = {
457
458
  data: OrArray<UpdateScalarInput<Schema, Model, Without>>;
458
459
  where?: WhereInput<Schema, Model>;
459
460
  limit?: number;
460
461
  };
461
- type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
462
+ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
462
463
  create: CreateInput<Schema, Model>;
463
464
  update: UpdateInput<Schema, Model>;
464
465
  where: WhereUniqueInput<Schema, Model>;
465
466
  select?: SelectInput<Schema, Model>;
466
467
  include?: IncludeInput<Schema, Model>;
467
468
  omit?: OmitInput<Schema, Model>;
468
- };
469
+ }, Simplify>;
469
470
  type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
470
471
  [Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
471
472
  }, Without>;
@@ -507,30 +508,30 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
507
508
  disconnect?: DisconnectInput<Schema, Model, Field>;
508
509
  delete?: NestedDeleteInput<Schema, Model, Field>;
509
510
  } : {}), FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'connectOrCreate' | 'upsert' : never>;
510
- type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
511
+ type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
511
512
  where: WhereUniqueInput<Schema, Model>;
512
513
  select?: SelectInput<Schema, Model>;
513
514
  include?: IncludeInput<Schema, Model>;
514
515
  omit?: OmitInput<Schema, Model>;
515
- };
516
- type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
516
+ }, Simplify>;
517
+ type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
517
518
  where?: WhereInput<Schema, Model>;
518
519
  limit?: number;
519
- };
520
- type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<FindArgs<Schema, Model, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
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'> & {
521
522
  select?: CountAggregateInput<Schema, Model> | true;
522
- };
523
+ }, Simplify>;
523
524
  type CountAggregateInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
524
525
  [Key in NonRelationFields<Schema, Model>]?: true;
525
526
  } & {
526
527
  _all?: true;
527
528
  };
528
- type CountResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends CountArgs<Schema, Model>> = Args extends {
529
+ type CountResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Args> = Args extends {
529
530
  select: infer S;
530
531
  } ? S extends true ? number : {
531
532
  [Key in keyof S]: number;
532
533
  } : number;
533
- type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
534
+ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
534
535
  where?: WhereInput<Schema, Model>;
535
536
  skip?: number;
536
537
  take?: number;
@@ -542,7 +543,7 @@ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> =
542
543
  } & (NumericFields<Schema, Model> extends never ? {} : {
543
544
  _avg?: SumAvgInput<Schema, Model, true>;
544
545
  _sum?: SumAvgInput<Schema, Model, true>;
545
- });
546
+ }), Simplify>;
546
547
  type NumericFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
547
548
  [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>;
548
549
  };
@@ -552,7 +553,7 @@ type SumAvgInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Valu
552
553
  type MinMaxInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ValueType> = {
553
554
  [Key in GetModelFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? never : FieldIsRelation<Schema, Model, Key> extends true ? never : Key]?: ValueType;
554
555
  };
555
- type AggregateResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends AggregateArgs<Schema, Model>> = (Args extends {
556
+ type AggregateResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Args> = (Args extends {
556
557
  _count: infer Count;
557
558
  } ? {
558
559
  _count: AggCommonOutput<Count>;
@@ -577,7 +578,7 @@ type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? {
577
578
  [Key in keyof Input]: number;
578
579
  } : never;
579
580
  type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<WhereInput<Schema, Model, true, true>, '$expr'>;
580
- type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
581
+ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Simplify extends boolean = false> = SimplifyIf<{
581
582
  where?: WhereInput<Schema, Model>;
582
583
  orderBy?: OrArray<OrderBy<Schema, Model, false, true>>;
583
584
  by: NonRelationFields<Schema, Model> | NonEmptyArray<NonRelationFields<Schema, Model>>;
@@ -590,8 +591,10 @@ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
590
591
  } & (NumericFields<Schema, Model> extends never ? {} : {
591
592
  _avg?: SumAvgInput<Schema, Model, true>;
592
593
  _sum?: SumAvgInput<Schema, Model, true>;
593
- });
594
- type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends GroupByArgs<Schema, Model>> = Array<{
594
+ }), Simplify>;
595
+ type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends {
596
+ by: unknown;
597
+ }> = Array<{
595
598
  [Key in NonRelationFields<Schema, Model> as Key extends ValueOfPotentialTuple<Args['by']> ? Key : never]: MapModelFieldType<Schema, Model, Key>;
596
599
  } & (Args extends {
597
600
  _count: infer Count;
@@ -1222,35 +1225,35 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1222
1225
  * }); // result: `{ _count: { posts: number } }`
1223
1226
  * ```
1224
1227
  */
1225
- findMany<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1228
+ findMany<T extends FindManyArgs<Schema, Model, true>>(args?: SelectSubset<T, FindManyArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1226
1229
  /**
1227
1230
  * Returns a uniquely identified entity.
1228
1231
  * @param args - query args
1229
1232
  * @returns a single entity or null if not found
1230
1233
  * @see {@link findMany}
1231
1234
  */
1232
- findUnique<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>> | null>;
1235
+ findUnique<T extends FindUniqueArgs<Schema, Model, true>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1233
1236
  /**
1234
1237
  * Returns a uniquely identified entity or throws `NotFoundError` if not found.
1235
1238
  * @param args - query args
1236
1239
  * @returns a single entity
1237
1240
  * @see {@link findMany}
1238
1241
  */
1239
- findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1242
+ findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, true>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1240
1243
  /**
1241
1244
  * Returns the first entity.
1242
1245
  * @param args - query args
1243
1246
  * @returns a single entity or null if not found
1244
1247
  * @see {@link findMany}
1245
1248
  */
1246
- findFirst<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>> | null>;
1249
+ findFirst<T extends FindFirstArgs<Schema, Model, true>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T> | null>;
1247
1250
  /**
1248
1251
  * Returns the first entity or throws `NotFoundError` if not found.
1249
1252
  * @param args - query args
1250
1253
  * @returns a single entity
1251
1254
  * @see {@link findMany}
1252
1255
  */
1253
- findFirstOrThrow<T extends FindArgs<Schema, Model, true>>(args?: SelectSubset<T, FindArgs<Schema, Model, true>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1256
+ findFirstOrThrow<T extends FindFirstArgs<Schema, Model, true>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1254
1257
  /**
1255
1258
  * Creates a new entity.
1256
1259
  * @param args - create args
@@ -1303,7 +1306,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1303
1306
  * });
1304
1307
  * ```
1305
1308
  */
1306
- create<T extends CreateArgs<Schema, Model>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1309
+ create<T extends CreateArgs<Schema, Model, true>>(args: SelectSubset<T, CreateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1307
1310
  /**
1308
1311
  * Creates multiple entities. Only scalar fields are allowed.
1309
1312
  * @param args - create args
@@ -1329,7 +1332,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1329
1332
  * });
1330
1333
  * ```
1331
1334
  */
1332
- createMany<T extends CreateManyArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1335
+ createMany<T extends CreateManyArgs<Schema, Model, true>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1333
1336
  /**
1334
1337
  * Creates multiple entities and returns them.
1335
1338
  * @param args - create args. See {@link createMany} for input. Use
@@ -1348,7 +1351,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1348
1351
  * });
1349
1352
  * ```
1350
1353
  */
1351
- createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1354
+ createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, true>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1352
1355
  /**
1353
1356
  * Updates a uniquely identified entity.
1354
1357
  * @param args - update args. See {@link findMany} for how to control
@@ -1466,7 +1469,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1466
1469
  * });
1467
1470
  * ```
1468
1471
  */
1469
- update<T extends UpdateArgs<Schema, Model>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1472
+ update<T extends UpdateArgs<Schema, Model, true>>(args: SelectSubset<T, UpdateArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1470
1473
  /**
1471
1474
  * Updates multiple entities.
1472
1475
  * @param args - update args. Only scalar fields are allowed for data.
@@ -1487,7 +1490,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1487
1490
  * limit: 10
1488
1491
  * });
1489
1492
  */
1490
- updateMany<T extends UpdateManyArgs<Schema, Model>>(args: Subset<T, UpdateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1493
+ updateMany<T extends UpdateManyArgs<Schema, Model, true>>(args: Subset<T, UpdateManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1491
1494
  /**
1492
1495
  * Updates multiple entities and returns them.
1493
1496
  * @param args - update args. Only scalar fields are allowed for data.
@@ -1510,7 +1513,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1510
1513
  * });
1511
1514
  * ```
1512
1515
  */
1513
- updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>[]>;
1516
+ updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, true>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>[]>;
1514
1517
  /**
1515
1518
  * Creates or updates an entity.
1516
1519
  * @param args - upsert args
@@ -1531,7 +1534,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1531
1534
  * });
1532
1535
  * ```
1533
1536
  */
1534
- upsert<T extends UpsertArgs<Schema, Model>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1537
+ upsert<T extends UpsertArgs<Schema, Model, true>>(args: SelectSubset<T, UpsertArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1535
1538
  /**
1536
1539
  * Deletes a uniquely identifiable entity.
1537
1540
  * @param args - delete args
@@ -1551,7 +1554,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1551
1554
  * }); // result: `{ id: string; email: string }`
1552
1555
  * ```
1553
1556
  */
1554
- delete<T extends DeleteArgs<Schema, Model>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<ModelResult<Schema, Model, T>>>;
1557
+ delete<T extends DeleteArgs<Schema, Model, true>>(args: SelectSubset<T, DeleteArgs<Schema, Model>>): ZenStackPromise<Schema, SimplifiedModelResult<Schema, Model, T>>;
1555
1558
  /**
1556
1559
  * Deletes multiple entities.
1557
1560
  * @param args - delete args
@@ -1571,7 +1574,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1571
1574
  * });
1572
1575
  * ```
1573
1576
  */
1574
- deleteMany<T extends DeleteManyArgs<Schema, Model>>(args?: Subset<T, DeleteManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1577
+ deleteMany<T extends DeleteManyArgs<Schema, Model, true>>(args?: Subset<T, DeleteManyArgs<Schema, Model>>): ZenStackPromise<Schema, BatchResult>;
1575
1578
  /**
1576
1579
  * Counts rows or field values.
1577
1580
  * @param args - count args
@@ -1590,7 +1593,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1590
1593
  * select: { _all: true, email: true }
1591
1594
  * }); // result: `{ _all: number, email: number }`
1592
1595
  */
1593
- count<T extends CountArgs<Schema, Model>>(args?: Subset<T, CountArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
1596
+ count<T extends CountArgs<Schema, Model, true>>(args?: Subset<T, CountArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
1594
1597
  /**
1595
1598
  * Aggregates rows.
1596
1599
  * @param args - aggregation args
@@ -1608,7 +1611,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1608
1611
  * _max: { age: true }
1609
1612
  * }); // result: `{ _count: number, _avg: { age: number }, ... }`
1610
1613
  */
1611
- aggregate<T extends AggregateArgs<Schema, Model>>(args: Subset<T, AggregateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
1614
+ aggregate<T extends AggregateArgs<Schema, Model, true>>(args: Subset<T, AggregateArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
1612
1615
  /**
1613
1616
  * Groups rows by columns.
1614
1617
  * @param args - groupBy args
@@ -1642,7 +1645,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
1642
1645
  * having: { country: 'US', age: { _avg: { gte: 18 } } }
1643
1646
  * });
1644
1647
  */
1645
- groupBy<T extends GroupByArgs<Schema, Model>>(args: Subset<T, GroupByArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
1648
+ groupBy<T extends GroupByArgs<Schema, Model, true>>(args: Subset<T, GroupByArgs<Schema, Model>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
1646
1649
  };
1647
1650
  type OperationsIneligibleForDelegateModels = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
1648
1651
  type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>> = Omit<AllModelOperations<Schema, Model>, IsDelegateModel<Schema, Model> extends true ? OperationsIneligibleForDelegateModels : never>;