@zenstackhq/orm 3.7.2 → 3.8.0-beta.2

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
@@ -607,6 +607,17 @@ type QueryOptions<Schema extends SchemaDef> = {
607
607
  */
608
608
  slicing?: SlicingOptions<Schema>;
609
609
  };
610
+ /**
611
+ * Projects a (typically inferred) client options type down to only the members that influence
612
+ * ORM typing - the {@link QueryOptions} fields (`omit`, `allowQueryTimeOmitOverride`, `slicing`).
613
+ *
614
+ * The full options object inferred at `new ZenStackClient(...)` carries heavy function types for
615
+ * `computedFields` and `procedures`. Those are never read by the model/operation types, but if the
616
+ * raw options type is fanned out across every model's `ModelOperations` instantiation (30+ for a
617
+ * typical schema) it inflates type checking dramatically. Projecting to the query-relevant subset
618
+ * before the fan-out keeps the per-model types cheap while preserving full options on `$options`.
619
+ */
620
+ type QueryRelevantOptions<Schema extends SchemaDef, Options> = Pick<Options, Extract<keyof Options, keyof QueryOptions<Schema>>>;
610
621
  /**
611
622
  * ZenStack client options.
612
623
  */
@@ -1660,7 +1671,7 @@ type SelectSubset<T, U> = { [key in keyof T]: key extends keyof U ? T[key] : nev
1660
1671
  select: any;
1661
1672
  omit: any;
1662
1673
  } ? 'Please either choose `select` or `omit`.' : {});
1663
- type ToManyRelationFilter<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = {
1674
+ type ToManyRelationFilter<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = {
1664
1675
  every?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
1665
1676
  some?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
1666
1677
  none?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
@@ -1683,13 +1694,13 @@ type GetRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Fiel
1683
1694
  type OppositeRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>> = FT extends GetModels<Schema> ? GetRelation<Schema, Model, Field> extends RelationInfo ? GetRelation<Schema, Model, Field>['opposite'] extends GetModelFields<Schema, FT> ? Schema['models'][FT]['fields'][GetRelation<Schema, Model, Field>['opposite']]['relation'] : never : never : never;
1684
1695
  type OppositeRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Opposite = OppositeRelation<Schema, Model, Field>> = Opposite extends RelationInfo ? (Opposite['fields'] extends readonly string[] ? Opposite['fields'] : []) : [];
1685
1696
  type OppositeRelationAndFK<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>, Relation = GetModelField<Schema, Model, Field>['relation'], Opposite = (Relation extends RelationInfo ? Relation['opposite'] : never)> = FT extends GetModels<Schema> ? Opposite extends GetModelFields<Schema, FT> ? Opposite | OppositeRelationFields<Schema, Model, Field>[number] : never : never;
1686
- type FilterArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = {
1697
+ type FilterArgs<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>> = {
1687
1698
  /**
1688
1699
  * Filter conditions
1689
1700
  */
1690
1701
  where?: WhereInput<Schema, Model, Options>;
1691
1702
  };
1692
- type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = {
1703
+ type SortAndTakeArgs<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>> = {
1693
1704
  /**
1694
1705
  * Number of records to skip
1695
1706
  */
@@ -1799,7 +1810,7 @@ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
1799
1810
  } & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
1800
1811
  type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = UpdateManyPayload<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>;
1801
1812
  type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = UpdateManyPayload<Schema, Model, Options> & SelectIncludeOmit<Schema, Model, false, Options, false, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>;
1802
- type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
1813
+ type UpdateManyPayload<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, out Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
1803
1814
  /**
1804
1815
  * The data to update the records with.
1805
1816
  */
@@ -1920,7 +1931,7 @@ type ToManyRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels
1920
1931
  */
1921
1932
  set?: SetRelationInput<Schema, Model, Field, Options>;
1922
1933
  }, RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate' | 'upsert'>;
1923
- type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
1934
+ type ToOneRelationUpdateInput<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Field extends RelationFields<Schema, Model>, in out Options extends QueryOptions<Schema>> = Omit<{
1924
1935
  /**
1925
1936
  * Creates a related record.
1926
1937
  */
@@ -2059,7 +2070,7 @@ type AggregateResult<Schema extends SchemaDef, _Model extends GetModels<Schema>,
2059
2070
  _max: AggCommonOutput<Max>;
2060
2071
  } : {});
2061
2072
  type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? { [Key in keyof Input]: number } : never;
2062
- type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<WhereInput<Schema, Model, Options, true, true>, '$expr'>;
2073
+ type GroupByHaving<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, out Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<WhereInput<Schema, Model, Options, true, true>, '$expr'>;
2063
2074
  type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
2064
2075
  /**
2065
2076
  * Filter conditions
@@ -2407,6 +2418,10 @@ declare const ExtQueryArgsMarker: unique symbol;
2407
2418
  declare const ExtResultMarker: unique symbol;
2408
2419
  /**
2409
2420
  * ZenStack client interface.
2421
+ *
2422
+ * Note: this alias resolves to an intersection, so it cannot carry variance annotations itself
2423
+ * (TS2637). It doesn't need them - measuring its variance recurses into {@link ModelOperations},
2424
+ * whose annotations short-circuit the expensive cascade. See {@link CommonModelOperations}.
2410
2425
  */
2411
2426
  type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
2412
2427
  /**
@@ -2549,7 +2564,7 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
2549
2564
  /**
2550
2565
  * Factory for creating zod schemas to validate query args.
2551
2566
  */
2552
- get $zod(): ZodSchemaFactory<Schema, Options, ExtQueryArgs>;
2567
+ get $zod(): ZodSchemaFactory<Schema, QueryRelevantOptions<Schema, Options>, ExtQueryArgs>;
2553
2568
  /**
2554
2569
  * Pushes the schema to the database. For testing purposes only.
2555
2570
  * @private
@@ -2559,7 +2574,7 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
2559
2574
  * Returns diagnostics information such as cache and slow query statistics.
2560
2575
  */
2561
2576
  get $diagnostics(): Promise<Diagnostics>;
2562
- } & { [Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs, ExtResult> } & ProcedureOperations<Schema, Options> & ExtClientMembers;
2577
+ } & { [Key in GetSlicedModels<Schema, QueryRelevantOptions<Schema, Options>> as Uncapitalize<Key>]: ModelOperations<Schema, Key, QueryRelevantOptions<Schema, Options>, ExtQueryArgs, ExtResult> } & ProcedureOperations<Schema, Options> & ExtClientMembers;
2563
2578
  /**
2564
2579
  * The contract for a client in a transaction.
2565
2580
  */
@@ -2592,7 +2607,7 @@ declare const CRUD: readonly ["create", "read", "update", "delete"];
2592
2607
  * Extended CRUD operations including 'post-update'.
2593
2608
  */
2594
2609
  declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-update"];
2595
- type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema>> = Omit<{ [Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key] }, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
2610
+ type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = Omit<{ [Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key] }, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
2596
2611
  type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult> & (Schema['provider']['type'] extends 'mysql' ? {} : {
2597
2612
  /**
2598
2613
  * Creates multiple entities and returns them.
@@ -2637,7 +2652,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
2637
2652
  */
2638
2653
  updateManyAndReturn<T extends CrudArgsType<Schema, Model, 'updateManyAndReturn', Options, ExtQueryArgs, ExtResult>>(args: Subset<T, CrudArgsType<Schema, Model, 'updateManyAndReturn', Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<CrudReturnType<Schema, Model, 'updateManyAndReturn', T, Options, ExtResult>>;
2639
2654
  });
2640
- type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = {
2655
+ type CommonModelOperations<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>, in out ExtQueryArgs extends ExtQueryArgsBase, out ExtResult extends ExtResultBase<Schema> = {}> = {
2641
2656
  /**
2642
2657
  * Returns a list of entities.
2643
2658
  * @param args - query args
@@ -3118,7 +3133,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
3118
3133
  exists<T extends CrudArgsType<Schema, Model, 'exists', Options, ExtQueryArgs, ExtResult>>(args?: Subset<T, CrudArgsType<Schema, Model, 'exists', Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<CrudReturnType<Schema, Model, 'exists', T, Options, ExtResult>>;
3119
3134
  };
3120
3135
  type OperationsRequiringCreate = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
3121
- type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult>, Schema, Model, Options>;
3136
+ type ModelOperations<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema> = ClientOptions<Schema>, in out ExtQueryArgs extends ExtQueryArgsBase = {}, out ExtResult extends ExtResultBase<Schema> = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult>, Schema, Model, Options>;
3122
3137
  /**
3123
3138
  * Type for auth context that includes both scalar and relation fields.
3124
3139
  * Relations are recursively included to allow nested auth data like { user: { profile: { ... } } }
@@ -3151,14 +3166,14 @@ type CreateSchemaOptions = {
3151
3166
  /**
3152
3167
  * Factory class responsible for creating and caching Zod schemas for ORM input validation.
3153
3168
  */
3154
- declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> {
3169
+ declare class ZodSchemaFactory<in out Schema extends SchemaDef, in out Options extends QueryOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> {
3155
3170
  private readonly schemaCache;
3156
3171
  private readonly schemaRegistry;
3157
3172
  private readonly allFilterKinds;
3158
3173
  private readonly schema;
3159
3174
  private readonly options;
3160
3175
  private readonly extraValidationsEnabled;
3161
- constructor(client: ClientContract<Schema, Options, ExtQueryArgs, any>);
3176
+ constructor(client: ClientContract<Schema, any, ExtQueryArgs, any>);
3162
3177
  constructor(schema: Schema, options?: Options);
3163
3178
  private get plugins();
3164
3179
  /**
@@ -3511,5 +3526,5 @@ declare class MatchingExpressionVisitor extends ExpressionVisitor {
3511
3526
  };
3512
3527
  }
3513
3528
  //#endregion
3514
- export { AfterEntityMutationCallback, AggregateArgs, AggregateResult, AllCrudOperations, AllModelOperations, AllReadOperations, AllWriteOperations, AnyNull, AnyNullClass, AnyPlugin, AuthType, BaseCrudDialect, BatchResult, BeforeEntityMutationCallback, BooleanFilter, BytesFilter, CRUD, CRUD_EXT, CheckedCreateInput, CheckedUpdateInput, ClientConstructor, ClientContract, ClientOptions, ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, CountArgs, CountResult, CreateArgs, CreateInput, CreateManyAndReturnArgs, CreateManyArgs, CreateManyInput, CrudArgsMap, CrudArgsType, CrudReturnMap, CrudReturnType, DateTimeFilter, DbNull, DbNullClass, DefaultModelResult, DeleteArgs, DeleteManyArgs, EntityMutationHooksDef, ExistsArgs, ExtClientMembersBase, ExtQueryArgsBase, ExtQueryArgsMarker, ExtResultBase, ExtResultInferenceArgs, ExtResultMarker, ExtResultSelectOmitFields, ExtractExtResult, FilterKind, FindArgs, FindFirstArgs, FindManyArgs, FindUniqueArgs, FtsRelevanceOrderBy, FullTextFilterPayload, FuzzyFilterPayload, FuzzyRelevanceOrderBy, GetAllIncludedOperations, GetIncludedOperations, GetProcedure, GetProcedureNames, GetProcedureParams, GetQueryOptions, GetSlicedFilterKindsForField, GetSlicedModels, GetSlicedOperations, GetSlicedProcedures, GroupByArgs, GroupByResult, HasComputedFields, HasProcedures, IncludeInput, InputValidator, JsonArray, JsonFilter, JsonNull, JsonNullClass, JsonNullValues, JsonObject, JsonValue, kysely_utils_d_exports as KyselyUtils, MapModelFieldType, ModelAllowsCreate, ModelHasRequiredUnsupportedField, ModelOperations, ModelResult, ModelSlicingOptions, NullsOrder, NumberFilter, ORMError, ORMErrorReason, OmitConfig, OmitInput, OnKyselyQueryArgs, OnKyselyQueryCallback, OnProcedureHookContext, OperationsRequiringCreate, OrderBy, PluginAfterEntityMutationArgs, PluginBeforeEntityMutationArgs, ProcedureEnvelope, ProcedureFunc, ProcedureHandlerFunc, ProcedureOperations, ProceduresOptions, ProceedKyselyQueryFunction, QueryOptions, query_utils_d_exports as QueryUtils, RejectedByPolicyReason, RuntimePlugin, schema_utils_d_exports as SchemaUtils, SelectAwareExtResult, SelectIncludeOmit, SelectInput, SelectSubset, SimplifiedPlainResult, SimplifiedResult, SlicingOptions, SortOrder, StringFilter, Subset, type ToKysely, TransactionClientContract, TransactionIsolationLevel, TypeDefResult, TypedJsonFilter, UncheckedCreateInput, UncheckedUpdateInput, UpdateArgs, UpdateInput, UpdateManyAndReturnArgs, UpdateManyArgs, UpsertArgs, WhereInput, WhereUniqueInput, ZModelFunction, ZModelFunctionContext, ZenStackClient, type ZenStackPromise, type ZodSchemaFactory, createQuerySchemaFactory, definePlugin, getCrudDialect };
3529
+ export { AfterEntityMutationCallback, AggregateArgs, AggregateResult, AllCrudOperations, AllModelOperations, AllReadOperations, AllWriteOperations, AnyNull, AnyNullClass, AnyPlugin, AuthType, BaseCrudDialect, BatchResult, BeforeEntityMutationCallback, BooleanFilter, BytesFilter, CRUD, CRUD_EXT, CheckedCreateInput, CheckedUpdateInput, ClientConstructor, ClientContract, ClientOptions, ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, CountArgs, CountResult, CreateArgs, CreateInput, CreateManyAndReturnArgs, CreateManyArgs, CreateManyInput, CrudArgsMap, CrudArgsType, CrudReturnMap, CrudReturnType, DateTimeFilter, DbNull, DbNullClass, DefaultModelResult, DeleteArgs, DeleteManyArgs, EntityMutationHooksDef, ExistsArgs, ExtClientMembersBase, ExtQueryArgsBase, ExtQueryArgsMarker, ExtResultBase, ExtResultInferenceArgs, ExtResultMarker, ExtResultSelectOmitFields, ExtractExtResult, FilterKind, FindArgs, FindFirstArgs, FindManyArgs, FindUniqueArgs, FtsRelevanceOrderBy, FullTextFilterPayload, FuzzyFilterPayload, FuzzyRelevanceOrderBy, GetAllIncludedOperations, GetIncludedOperations, GetProcedure, GetProcedureNames, GetProcedureParams, GetQueryOptions, GetSlicedFilterKindsForField, GetSlicedModels, GetSlicedOperations, GetSlicedProcedures, GroupByArgs, GroupByResult, HasComputedFields, HasProcedures, IncludeInput, InputValidator, JsonArray, JsonFilter, JsonNull, JsonNullClass, JsonNullValues, JsonObject, JsonValue, kysely_utils_d_exports as KyselyUtils, MapModelFieldType, ModelAllowsCreate, ModelHasRequiredUnsupportedField, ModelOperations, ModelResult, ModelSlicingOptions, NullsOrder, NumberFilter, ORMError, ORMErrorReason, OmitConfig, OmitInput, OnKyselyQueryArgs, OnKyselyQueryCallback, OnProcedureHookContext, OperationsRequiringCreate, OrderBy, PluginAfterEntityMutationArgs, PluginBeforeEntityMutationArgs, ProcedureEnvelope, ProcedureFunc, ProcedureHandlerFunc, ProcedureOperations, ProceduresOptions, ProceedKyselyQueryFunction, QueryOptions, QueryRelevantOptions, query_utils_d_exports as QueryUtils, RejectedByPolicyReason, RuntimePlugin, schema_utils_d_exports as SchemaUtils, SelectAwareExtResult, SelectIncludeOmit, SelectInput, SelectSubset, SimplifiedPlainResult, SimplifiedResult, SlicingOptions, SortOrder, StringFilter, Subset, type ToKysely, TransactionClientContract, TransactionIsolationLevel, TypeDefResult, TypedJsonFilter, UncheckedCreateInput, UncheckedUpdateInput, UpdateArgs, UpdateInput, UpdateManyAndReturnArgs, UpdateManyArgs, UpsertArgs, WhereInput, WhereUniqueInput, ZModelFunction, ZModelFunctionContext, ZenStackClient, type ZenStackPromise, type ZodSchemaFactory, createQuerySchemaFactory, definePlugin, getCrudDialect };
3515
3530
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.mts CHANGED
@@ -607,6 +607,17 @@ type QueryOptions<Schema extends SchemaDef> = {
607
607
  */
608
608
  slicing?: SlicingOptions<Schema>;
609
609
  };
610
+ /**
611
+ * Projects a (typically inferred) client options type down to only the members that influence
612
+ * ORM typing - the {@link QueryOptions} fields (`omit`, `allowQueryTimeOmitOverride`, `slicing`).
613
+ *
614
+ * The full options object inferred at `new ZenStackClient(...)` carries heavy function types for
615
+ * `computedFields` and `procedures`. Those are never read by the model/operation types, but if the
616
+ * raw options type is fanned out across every model's `ModelOperations` instantiation (30+ for a
617
+ * typical schema) it inflates type checking dramatically. Projecting to the query-relevant subset
618
+ * before the fan-out keeps the per-model types cheap while preserving full options on `$options`.
619
+ */
620
+ type QueryRelevantOptions<Schema extends SchemaDef, Options> = Pick<Options, Extract<keyof Options, keyof QueryOptions<Schema>>>;
610
621
  /**
611
622
  * ZenStack client options.
612
623
  */
@@ -1660,7 +1671,7 @@ type SelectSubset<T, U> = { [key in keyof T]: key extends keyof U ? T[key] : nev
1660
1671
  select: any;
1661
1672
  omit: any;
1662
1673
  } ? 'Please either choose `select` or `omit`.' : {});
1663
- type ToManyRelationFilter<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = {
1674
+ type ToManyRelationFilter<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = {
1664
1675
  every?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
1665
1676
  some?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
1666
1677
  none?: WhereInput<Schema, RelationFieldType<Schema, Model, Field>, Options>;
@@ -1683,13 +1694,13 @@ type GetRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Fiel
1683
1694
  type OppositeRelation<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>> = FT extends GetModels<Schema> ? GetRelation<Schema, Model, Field> extends RelationInfo ? GetRelation<Schema, Model, Field>['opposite'] extends GetModelFields<Schema, FT> ? Schema['models'][FT]['fields'][GetRelation<Schema, Model, Field>['opposite']]['relation'] : never : never : never;
1684
1695
  type OppositeRelationFields<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Opposite = OppositeRelation<Schema, Model, Field>> = Opposite extends RelationInfo ? (Opposite['fields'] extends readonly string[] ? Opposite['fields'] : []) : [];
1685
1696
  type OppositeRelationAndFK<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, FT = FieldType<Schema, Model, Field>, Relation = GetModelField<Schema, Model, Field>['relation'], Opposite = (Relation extends RelationInfo ? Relation['opposite'] : never)> = FT extends GetModels<Schema> ? Opposite extends GetModelFields<Schema, FT> ? Opposite | OppositeRelationFields<Schema, Model, Field>[number] : never : never;
1686
- type FilterArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = {
1697
+ type FilterArgs<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>> = {
1687
1698
  /**
1688
1699
  * Filter conditions
1689
1700
  */
1690
1701
  where?: WhereInput<Schema, Model, Options>;
1691
1702
  };
1692
- type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = {
1703
+ type SortAndTakeArgs<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>> = {
1693
1704
  /**
1694
1705
  * Number of records to skip
1695
1706
  */
@@ -1799,7 +1810,7 @@ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
1799
1810
  } & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
1800
1811
  type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = UpdateManyPayload<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>;
1801
1812
  type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = UpdateManyPayload<Schema, Model, Options> & SelectIncludeOmit<Schema, Model, false, Options, false, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>;
1802
- type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
1813
+ type UpdateManyPayload<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, out Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
1803
1814
  /**
1804
1815
  * The data to update the records with.
1805
1816
  */
@@ -1920,7 +1931,7 @@ type ToManyRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels
1920
1931
  */
1921
1932
  set?: SetRelationInput<Schema, Model, Field, Options>;
1922
1933
  }, RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate' | 'upsert'>;
1923
- type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
1934
+ type ToOneRelationUpdateInput<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Field extends RelationFields<Schema, Model>, in out Options extends QueryOptions<Schema>> = Omit<{
1924
1935
  /**
1925
1936
  * Creates a related record.
1926
1937
  */
@@ -2059,7 +2070,7 @@ type AggregateResult<Schema extends SchemaDef, _Model extends GetModels<Schema>,
2059
2070
  _max: AggCommonOutput<Max>;
2060
2071
  } : {});
2061
2072
  type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? { [Key in keyof Input]: number } : never;
2062
- type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<WhereInput<Schema, Model, Options, true, true>, '$expr'>;
2073
+ type GroupByHaving<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, out Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<WhereInput<Schema, Model, Options, true, true>, '$expr'>;
2063
2074
  type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
2064
2075
  /**
2065
2076
  * Filter conditions
@@ -2407,6 +2418,10 @@ declare const ExtQueryArgsMarker: unique symbol;
2407
2418
  declare const ExtResultMarker: unique symbol;
2408
2419
  /**
2409
2420
  * ZenStack client interface.
2421
+ *
2422
+ * Note: this alias resolves to an intersection, so it cannot carry variance annotations itself
2423
+ * (TS2637). It doesn't need them - measuring its variance recurses into {@link ModelOperations},
2424
+ * whose annotations short-circuit the expensive cascade. See {@link CommonModelOperations}.
2410
2425
  */
2411
2426
  type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
2412
2427
  /**
@@ -2549,7 +2564,7 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
2549
2564
  /**
2550
2565
  * Factory for creating zod schemas to validate query args.
2551
2566
  */
2552
- get $zod(): ZodSchemaFactory<Schema, Options, ExtQueryArgs>;
2567
+ get $zod(): ZodSchemaFactory<Schema, QueryRelevantOptions<Schema, Options>, ExtQueryArgs>;
2553
2568
  /**
2554
2569
  * Pushes the schema to the database. For testing purposes only.
2555
2570
  * @private
@@ -2559,7 +2574,7 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
2559
2574
  * Returns diagnostics information such as cache and slow query statistics.
2560
2575
  */
2561
2576
  get $diagnostics(): Promise<Diagnostics>;
2562
- } & { [Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs, ExtResult> } & ProcedureOperations<Schema, Options> & ExtClientMembers;
2577
+ } & { [Key in GetSlicedModels<Schema, QueryRelevantOptions<Schema, Options>> as Uncapitalize<Key>]: ModelOperations<Schema, Key, QueryRelevantOptions<Schema, Options>, ExtQueryArgs, ExtResult> } & ProcedureOperations<Schema, Options> & ExtClientMembers;
2563
2578
  /**
2564
2579
  * The contract for a client in a transaction.
2565
2580
  */
@@ -2592,7 +2607,7 @@ declare const CRUD: readonly ["create", "read", "update", "delete"];
2592
2607
  * Extended CRUD operations including 'post-update'.
2593
2608
  */
2594
2609
  declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-update"];
2595
- type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema>> = Omit<{ [Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key] }, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
2610
+ type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = Omit<{ [Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key] }, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
2596
2611
  type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult> & (Schema['provider']['type'] extends 'mysql' ? {} : {
2597
2612
  /**
2598
2613
  * Creates multiple entities and returns them.
@@ -2637,7 +2652,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
2637
2652
  */
2638
2653
  updateManyAndReturn<T extends CrudArgsType<Schema, Model, 'updateManyAndReturn', Options, ExtQueryArgs, ExtResult>>(args: Subset<T, CrudArgsType<Schema, Model, 'updateManyAndReturn', Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<CrudReturnType<Schema, Model, 'updateManyAndReturn', T, Options, ExtResult>>;
2639
2654
  });
2640
- type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = {
2655
+ type CommonModelOperations<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema>, in out ExtQueryArgs extends ExtQueryArgsBase, out ExtResult extends ExtResultBase<Schema> = {}> = {
2641
2656
  /**
2642
2657
  * Returns a list of entities.
2643
2658
  * @param args - query args
@@ -3118,7 +3133,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
3118
3133
  exists<T extends CrudArgsType<Schema, Model, 'exists', Options, ExtQueryArgs, ExtResult>>(args?: Subset<T, CrudArgsType<Schema, Model, 'exists', Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<CrudReturnType<Schema, Model, 'exists', T, Options, ExtResult>>;
3119
3134
  };
3120
3135
  type OperationsRequiringCreate = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
3121
- type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult>, Schema, Model, Options>;
3136
+ type ModelOperations<in out Schema extends SchemaDef, in out Model extends GetModels<Schema>, in out Options extends QueryOptions<Schema> = ClientOptions<Schema>, in out ExtQueryArgs extends ExtQueryArgsBase = {}, out ExtResult extends ExtResultBase<Schema> = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult>, Schema, Model, Options>;
3122
3137
  /**
3123
3138
  * Type for auth context that includes both scalar and relation fields.
3124
3139
  * Relations are recursively included to allow nested auth data like { user: { profile: { ... } } }
@@ -3151,14 +3166,14 @@ type CreateSchemaOptions = {
3151
3166
  /**
3152
3167
  * Factory class responsible for creating and caching Zod schemas for ORM input validation.
3153
3168
  */
3154
- declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> {
3169
+ declare class ZodSchemaFactory<in out Schema extends SchemaDef, in out Options extends QueryOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> {
3155
3170
  private readonly schemaCache;
3156
3171
  private readonly schemaRegistry;
3157
3172
  private readonly allFilterKinds;
3158
3173
  private readonly schema;
3159
3174
  private readonly options;
3160
3175
  private readonly extraValidationsEnabled;
3161
- constructor(client: ClientContract<Schema, Options, ExtQueryArgs, any>);
3176
+ constructor(client: ClientContract<Schema, any, ExtQueryArgs, any>);
3162
3177
  constructor(schema: Schema, options?: Options);
3163
3178
  private get plugins();
3164
3179
  /**
@@ -3511,5 +3526,5 @@ declare class MatchingExpressionVisitor extends ExpressionVisitor {
3511
3526
  };
3512
3527
  }
3513
3528
  //#endregion
3514
- export { AfterEntityMutationCallback, AggregateArgs, AggregateResult, AllCrudOperations, AllModelOperations, AllReadOperations, AllWriteOperations, AnyNull, AnyNullClass, AnyPlugin, AuthType, BaseCrudDialect, BatchResult, BeforeEntityMutationCallback, BooleanFilter, BytesFilter, CRUD, CRUD_EXT, CheckedCreateInput, CheckedUpdateInput, ClientConstructor, ClientContract, ClientOptions, ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, CountArgs, CountResult, CreateArgs, CreateInput, CreateManyAndReturnArgs, CreateManyArgs, CreateManyInput, CrudArgsMap, CrudArgsType, CrudReturnMap, CrudReturnType, DateTimeFilter, DbNull, DbNullClass, DefaultModelResult, DeleteArgs, DeleteManyArgs, EntityMutationHooksDef, ExistsArgs, ExtClientMembersBase, ExtQueryArgsBase, ExtQueryArgsMarker, ExtResultBase, ExtResultInferenceArgs, ExtResultMarker, ExtResultSelectOmitFields, ExtractExtResult, FilterKind, FindArgs, FindFirstArgs, FindManyArgs, FindUniqueArgs, FtsRelevanceOrderBy, FullTextFilterPayload, FuzzyFilterPayload, FuzzyRelevanceOrderBy, GetAllIncludedOperations, GetIncludedOperations, GetProcedure, GetProcedureNames, GetProcedureParams, GetQueryOptions, GetSlicedFilterKindsForField, GetSlicedModels, GetSlicedOperations, GetSlicedProcedures, GroupByArgs, GroupByResult, HasComputedFields, HasProcedures, IncludeInput, InputValidator, JsonArray, JsonFilter, JsonNull, JsonNullClass, JsonNullValues, JsonObject, JsonValue, kysely_utils_d_exports as KyselyUtils, MapModelFieldType, ModelAllowsCreate, ModelHasRequiredUnsupportedField, ModelOperations, ModelResult, ModelSlicingOptions, NullsOrder, NumberFilter, ORMError, ORMErrorReason, OmitConfig, OmitInput, OnKyselyQueryArgs, OnKyselyQueryCallback, OnProcedureHookContext, OperationsRequiringCreate, OrderBy, PluginAfterEntityMutationArgs, PluginBeforeEntityMutationArgs, ProcedureEnvelope, ProcedureFunc, ProcedureHandlerFunc, ProcedureOperations, ProceduresOptions, ProceedKyselyQueryFunction, QueryOptions, query_utils_d_exports as QueryUtils, RejectedByPolicyReason, RuntimePlugin, schema_utils_d_exports as SchemaUtils, SelectAwareExtResult, SelectIncludeOmit, SelectInput, SelectSubset, SimplifiedPlainResult, SimplifiedResult, SlicingOptions, SortOrder, StringFilter, Subset, type ToKysely, TransactionClientContract, TransactionIsolationLevel, TypeDefResult, TypedJsonFilter, UncheckedCreateInput, UncheckedUpdateInput, UpdateArgs, UpdateInput, UpdateManyAndReturnArgs, UpdateManyArgs, UpsertArgs, WhereInput, WhereUniqueInput, ZModelFunction, ZModelFunctionContext, ZenStackClient, type ZenStackPromise, type ZodSchemaFactory, createQuerySchemaFactory, definePlugin, getCrudDialect };
3529
+ export { AfterEntityMutationCallback, AggregateArgs, AggregateResult, AllCrudOperations, AllModelOperations, AllReadOperations, AllWriteOperations, AnyNull, AnyNullClass, AnyPlugin, AuthType, BaseCrudDialect, BatchResult, BeforeEntityMutationCallback, BooleanFilter, BytesFilter, CRUD, CRUD_EXT, CheckedCreateInput, CheckedUpdateInput, ClientConstructor, ClientContract, ClientOptions, ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, CountArgs, CountResult, CreateArgs, CreateInput, CreateManyAndReturnArgs, CreateManyArgs, CreateManyInput, CrudArgsMap, CrudArgsType, CrudReturnMap, CrudReturnType, DateTimeFilter, DbNull, DbNullClass, DefaultModelResult, DeleteArgs, DeleteManyArgs, EntityMutationHooksDef, ExistsArgs, ExtClientMembersBase, ExtQueryArgsBase, ExtQueryArgsMarker, ExtResultBase, ExtResultInferenceArgs, ExtResultMarker, ExtResultSelectOmitFields, ExtractExtResult, FilterKind, FindArgs, FindFirstArgs, FindManyArgs, FindUniqueArgs, FtsRelevanceOrderBy, FullTextFilterPayload, FuzzyFilterPayload, FuzzyRelevanceOrderBy, GetAllIncludedOperations, GetIncludedOperations, GetProcedure, GetProcedureNames, GetProcedureParams, GetQueryOptions, GetSlicedFilterKindsForField, GetSlicedModels, GetSlicedOperations, GetSlicedProcedures, GroupByArgs, GroupByResult, HasComputedFields, HasProcedures, IncludeInput, InputValidator, JsonArray, JsonFilter, JsonNull, JsonNullClass, JsonNullValues, JsonObject, JsonValue, kysely_utils_d_exports as KyselyUtils, MapModelFieldType, ModelAllowsCreate, ModelHasRequiredUnsupportedField, ModelOperations, ModelResult, ModelSlicingOptions, NullsOrder, NumberFilter, ORMError, ORMErrorReason, OmitConfig, OmitInput, OnKyselyQueryArgs, OnKyselyQueryCallback, OnProcedureHookContext, OperationsRequiringCreate, OrderBy, PluginAfterEntityMutationArgs, PluginBeforeEntityMutationArgs, ProcedureEnvelope, ProcedureFunc, ProcedureHandlerFunc, ProcedureOperations, ProceduresOptions, ProceedKyselyQueryFunction, QueryOptions, QueryRelevantOptions, query_utils_d_exports as QueryUtils, RejectedByPolicyReason, RuntimePlugin, schema_utils_d_exports as SchemaUtils, SelectAwareExtResult, SelectIncludeOmit, SelectInput, SelectSubset, SimplifiedPlainResult, SimplifiedResult, SlicingOptions, SortOrder, StringFilter, Subset, type ToKysely, TransactionClientContract, TransactionIsolationLevel, TypeDefResult, TypedJsonFilter, UncheckedCreateInput, UncheckedUpdateInput, UpdateArgs, UpdateInput, UpdateManyAndReturnArgs, UpdateManyArgs, UpsertArgs, WhereInput, WhereUniqueInput, ZModelFunction, ZModelFunctionContext, ZenStackClient, type ZenStackPromise, type ZodSchemaFactory, createQuerySchemaFactory, definePlugin, getCrudDialect };
3515
3530
  //# sourceMappingURL=index.d.mts.map