@zenstackhq/orm 3.4.0-beta.4 → 3.4.1

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,9 +1,9 @@
1
1
  import * as _zenstackhq_schema from '@zenstackhq/schema';
2
- import { SchemaDef, BuiltinType, GetModels, FieldDef, ModelDef, DataSourceProviderType, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, GetModel, ProcedureDef, NonRelationFields, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetTypeDefFieldType, TypeDefFieldIsArray, UpdatedAtInfo, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation, IsDelegateModel, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, BindingExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
2
+ import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, GetModel, ProcedureDef, BuiltinType, FieldDef, ModelDef, DataSourceProviderType, NonRelationFields, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, GetTypeDefFieldType, TypeDefFieldIsArray, UpdatedAtInfo, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation, IsDelegateModel, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, BindingExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
3
3
  import * as kysely from 'kysely';
4
- 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, ExpressionBuilder, SelectQueryBuilder, Expression, SqlBool, ExpressionWrapper, AliasableExpression, Generated, QueryId, RootOperationNode, QueryResult, UnknownRow, Dialect, KyselyConfig, OperandExpression } from 'kysely';
4
+ import { Kysely, 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, Generated, QueryId, RootOperationNode, QueryResult, UnknownRow, Dialect, ExpressionBuilder, Expression, KyselyConfig, OperandExpression, SelectQueryBuilder, SqlBool, ExpressionWrapper, AliasableExpression } from 'kysely';
5
5
  import Decimal from 'decimal.js';
6
- import { z, ZodType } from 'zod';
6
+ import { ZodType } from 'zod';
7
7
 
8
8
  declare class DefaultOperationNodeVisitor extends OperationNodeVisitor {
9
9
  protected defaultVisit(node: OperationNode): void;
@@ -177,7 +177,6 @@ type Without<T, U> = {
177
177
  };
178
178
  type XOR<T, U> = T extends object ? (U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : U) : T;
179
179
  type MaybePromise<T> = T | Promise<T>;
180
- type PrependParameter<Param, Func> = Func extends (...args: any[]) => infer R ? (p: Param, ...args: Parameters<Func>) => R : never;
181
180
  type OrUndefinedIf<T, Condition extends boolean> = Condition extends true ? T | undefined : T;
182
181
  type UnwrapTuplePromises<T extends readonly unknown[]> = {
183
182
  [K in keyof T]: Awaited<T[K]>;
@@ -235,165 +234,6 @@ declare const FILTER_PROPERTY_TO_KIND: {
235
234
  */
236
235
  type FilterPropertyToKind = typeof FILTER_PROPERTY_TO_KIND;
237
236
 
238
- declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
239
- protected readonly schema: Schema;
240
- protected readonly options: ClientOptions<Schema>;
241
- protected eb: ExpressionBuilder<any, any>;
242
- constructor(schema: Schema, options: ClientOptions<Schema>);
243
- /**
244
- * Whether the dialect supports updating with a limit on the number of updated rows.
245
- */
246
- abstract get supportsUpdateWithLimit(): boolean;
247
- /**
248
- * Whether the dialect supports deleting with a limit on the number of deleted rows.
249
- */
250
- abstract get supportsDeleteWithLimit(): boolean;
251
- /**
252
- * Whether the dialect supports DISTINCT ON.
253
- */
254
- abstract get supportsDistinctOn(): boolean;
255
- /**
256
- * Whether the dialect support inserting with `DEFAULT` as field value.
257
- */
258
- abstract get supportsDefaultAsFieldValue(): boolean;
259
- /**
260
- * Whether the dialect supports the RETURNING clause in INSERT/UPDATE/DELETE statements.
261
- */
262
- abstract get supportsReturning(): boolean;
263
- /**
264
- * Whether the dialect supports `INSERT INTO ... DEFAULT VALUES` syntax.
265
- */
266
- abstract get supportsInsertDefaultValues(): boolean;
267
- /**
268
- * How to perform insert ignore operation.
269
- */
270
- abstract get insertIgnoreMethod(): 'onConflict' | 'ignore';
271
- /**
272
- * Transforms input value before sending to database.
273
- */
274
- transformInput(value: unknown, _type: BuiltinType, _forArrayField: boolean): unknown;
275
- /**
276
- * Transforms output value received from database.
277
- */
278
- transformOutput(value: unknown, _type: BuiltinType, _array: boolean): unknown;
279
- buildSelectModel(model: string, modelAlias: string): SelectQueryBuilder<any, any, {}>;
280
- buildFilterSortTake(model: string, args: FindArgs<Schema, GetModels<Schema>, any, true>, query: SelectQueryBuilder<any, any, {}>, modelAlias: string): SelectQueryBuilder<any, any, {}>;
281
- buildFilter(model: string, modelAlias: string, where: boolean | object | undefined): Expression<SqlBool>;
282
- private buildCursorFilter;
283
- private isLogicalCombinator;
284
- protected buildCompositeFilter(model: string, modelAlias: string, key: (typeof LOGICAL_COMBINATORS)[number], payload: any): Expression<SqlBool>;
285
- private buildRelationFilter;
286
- private buildToOneRelationFilter;
287
- private buildToManyRelationFilter;
288
- private buildArrayFilter;
289
- buildPrimitiveFilter(fieldRef: Expression<any>, fieldDef: FieldDef, payload: any): any;
290
- private buildJsonFilter;
291
- private buildPlainJsonFilter;
292
- private buildTypedJsonFilter;
293
- private buildTypedJsonArrayFilter;
294
- private buildTypeJsonNonArrayFilter;
295
- private buildJsonValueFilterClause;
296
- protected buildJsonEqualityFilter(lhs: Expression<any>, rhs: unknown): ExpressionWrapper<any, any, SqlBool>;
297
- private buildLiteralFilter;
298
- private buildStandardFilter;
299
- private buildStringFilter;
300
- private buildJsonStringFilter;
301
- private escapeLikePattern;
302
- private buildStringLike;
303
- private prepStringCasing;
304
- private buildNumberFilter;
305
- private buildBooleanFilter;
306
- private buildDateTimeFilter;
307
- private buildBytesFilter;
308
- private buildEnumFilter;
309
- buildOrderBy(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, orderBy: OrArray<OrderBy<Schema, GetModels<Schema>, boolean, boolean>> | undefined, negated: boolean, take: number | undefined): SelectQueryBuilder<any, any, any>;
310
- buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit: Record<string, boolean | undefined> | undefined | null, modelAlias: string): SelectQueryBuilder<any, any, any>;
311
- shouldOmitField(omit: unknown, model: string, field: string): any;
312
- protected buildModelSelect(model: GetModels<Schema>, subQueryAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, any, true>, selectAllFields: boolean): SelectQueryBuilder<any, any, {}>;
313
- buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
314
- buildDelegateJoin(thisModel: string, thisModelAlias: string, otherModelAlias: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
315
- buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any): AliasableExpression<unknown>;
316
- protected negateSort(sort: SortOrder, negated: boolean): SortOrder;
317
- true(): Expression<SqlBool>;
318
- false(): Expression<SqlBool>;
319
- isTrue(expression: Expression<SqlBool>): boolean;
320
- isFalse(expression: Expression<SqlBool>): boolean;
321
- and(...args: Expression<SqlBool>[]): Expression<SqlBool>;
322
- or(...args: Expression<SqlBool>[]): Expression<SqlBool>;
323
- not(...args: Expression<SqlBool>[]): ExpressionWrapper<any, any, SqlBool>;
324
- fieldRef(model: string, field: string, modelAlias?: string, inlineComputedField?: boolean): any;
325
- protected canJoinWithoutNestedSelect(modelDef: ModelDef, payload: boolean | FindArgs<Schema, GetModels<Schema>, any, true>): boolean;
326
- abstract get provider(): DataSourceProviderType;
327
- /**
328
- * Builds selection for a relation field.
329
- */
330
- abstract buildRelationSelection(query: SelectQueryBuilder<any, any, any>, model: string, relationField: string, parentAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, any, true>): SelectQueryBuilder<any, any, any>;
331
- /**
332
- * Builds skip and take clauses.
333
- */
334
- abstract buildSkipTake(query: SelectQueryBuilder<any, any, any>, skip: number | undefined, take: number | undefined): SelectQueryBuilder<any, any, any>;
335
- /**
336
- * Builds an Kysely expression that returns a JSON object for the given key-value pairs.
337
- */
338
- abstract buildJsonObject(value: Record<string, Expression<unknown>>): AliasableExpression<unknown>;
339
- /**
340
- * Builds an Kysely expression that returns the length of an array.
341
- */
342
- abstract buildArrayLength(array: Expression<unknown>): AliasableExpression<number>;
343
- /**
344
- * Builds an array value expression.
345
- */
346
- abstract buildArrayValue(values: Expression<unknown>[], elemType: string): AliasableExpression<unknown>;
347
- /**
348
- * Builds an expression that checks if an array contains a single value.
349
- */
350
- abstract buildArrayContains(field: Expression<unknown>, value: Expression<unknown>, elemType?: string): AliasableExpression<SqlBool>;
351
- /**
352
- * Builds an expression that checks if an array contains all values from another array.
353
- */
354
- abstract buildArrayHasEvery(field: Expression<unknown>, values: Expression<unknown>): AliasableExpression<SqlBool>;
355
- /**
356
- * Builds an expression that checks if an array overlaps with another array.
357
- */
358
- abstract buildArrayHasSome(field: Expression<unknown>, values: Expression<unknown>): AliasableExpression<SqlBool>;
359
- /**
360
- * Casts the given expression to an integer type.
361
- */
362
- abstract castInt<T extends Expression<any>>(expression: T): T;
363
- /**
364
- * Casts the given expression to a text type.
365
- */
366
- abstract castText<T extends Expression<any>>(expression: T): T;
367
- /**
368
- * Trims double quotes from the start and end of a text expression.
369
- */
370
- abstract trimTextQuotes<T extends Expression<string>>(expression: T): T;
371
- abstract getStringCasingBehavior(): {
372
- supportsILike: boolean;
373
- likeCaseSensitive: boolean;
374
- };
375
- /**
376
- * Builds a VALUES table and select all fields from it.
377
- */
378
- abstract buildValuesTableSelect(fields: FieldDef[], rows: unknown[][]): SelectQueryBuilder<any, any, any>;
379
- /**
380
- * Builds a JSON path selection expression.
381
- */
382
- protected abstract buildJsonPathSelection(receiver: Expression<any>, path: string | undefined): Expression<any>;
383
- /**
384
- * Builds a JSON array filter expression.
385
- */
386
- protected abstract buildJsonArrayFilter(receiver: Expression<any>, operation: 'array_contains' | 'array_starts_with' | 'array_ends_with', value: unknown): Expression<SqlBool>;
387
- /**
388
- * Builds a JSON array exists predicate (returning if any element matches the filter).
389
- */
390
- protected abstract buildJsonArrayExistsPredicate(receiver: Expression<any>, buildFilter: (elem: Expression<any>) => Expression<SqlBool>): Expression<SqlBool>;
391
- /**
392
- * Builds an ORDER BY clause for a field with NULLS FIRST/LAST support.
393
- */
394
- protected abstract buildOrderByField(query: SelectQueryBuilder<any, any, any>, field: Expression<unknown>, sort: SortOrder, nulls: 'first' | 'last'): SelectQueryBuilder<any, any, any>;
395
- }
396
-
397
237
  type ToKyselySchema<Schema extends SchemaDef> = {
398
238
  [Model in GetModels<Schema>]: ToKyselyTable<Schema, Model>;
399
239
  };
@@ -406,187 +246,6 @@ type WrapNull<T, Null> = Null extends true ? T | null : T;
406
246
  type MapType$1<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = WrapNull<MapBaseType<GetModelFieldType<Schema, Model, Field>>, ModelFieldIsOptional<Schema, Model, Field>>;
407
247
  type toKyselyFieldType<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = FieldHasDefault<Schema, Model, Field> extends true ? Generated<MapType$1<Schema, Model, Field>> : MapType$1<Schema, Model, Field>;
408
248
 
409
- declare class InputValidator<Schema extends SchemaDef> {
410
- private readonly client;
411
- private readonly schemaCache;
412
- private readonly allFilterKinds;
413
- constructor(client: ClientContract<Schema>);
414
- private get schema();
415
- private get options();
416
- private get extraValidationsEnabled();
417
- validateFindArgs(model: GetModels<Schema>, args: unknown, operation: CoreCrudOperations): FindArgs<Schema, GetModels<Schema>, any, true> | undefined;
418
- validateExistsArgs(model: GetModels<Schema>, args: unknown): ExistsArgs<Schema, GetModels<Schema>, any> | undefined;
419
- validateCreateArgs(model: GetModels<Schema>, args: unknown): CreateArgs<Schema, GetModels<Schema>, any>;
420
- validateCreateManyArgs(model: GetModels<Schema>, args: unknown): CreateManyArgs<Schema, GetModels<Schema>>;
421
- validateCreateManyAndReturnArgs(model: GetModels<Schema>, args: unknown): CreateManyAndReturnArgs<Schema, GetModels<Schema>, any> | undefined;
422
- validateUpdateArgs(model: GetModels<Schema>, args: unknown): UpdateArgs<Schema, GetModels<Schema>, any>;
423
- validateUpdateManyArgs(model: GetModels<Schema>, args: unknown): UpdateManyArgs<Schema, GetModels<Schema>, any>;
424
- validateUpdateManyAndReturnArgs(model: GetModels<Schema>, args: unknown): UpdateManyAndReturnArgs<Schema, GetModels<Schema>, any>;
425
- validateUpsertArgs(model: GetModels<Schema>, args: unknown): UpsertArgs<Schema, GetModels<Schema>, any>;
426
- validateDeleteArgs(model: GetModels<Schema>, args: unknown): DeleteArgs<Schema, GetModels<Schema>, any>;
427
- validateDeleteManyArgs(model: GetModels<Schema>, args: unknown): DeleteManyArgs<Schema, GetModels<Schema>, any> | undefined;
428
- validateCountArgs(model: GetModels<Schema>, args: unknown): CountArgs<Schema, GetModels<Schema>, any> | undefined;
429
- validateAggregateArgs(model: GetModels<Schema>, args: unknown): AggregateArgs<Schema, GetModels<Schema>, any>;
430
- validateGroupByArgs(model: GetModels<Schema>, args: unknown): GroupByArgs<Schema, GetModels<Schema>, any>;
431
- validateProcedureInput(proc: string, input: unknown): unknown;
432
- private validate;
433
- private mergePluginArgsSchema;
434
- private getPluginExtQueryArgsSchema;
435
- private makeFindSchema;
436
- private makeExistsSchema;
437
- private makeScalarSchema;
438
- private makeEnumSchema;
439
- private makeTypeDefSchema;
440
- private makeWhereSchema;
441
- private makeTypedJsonFilterSchema;
442
- private isTypeDefType;
443
- private makeEnumFilterSchema;
444
- private makeArrayFilterSchema;
445
- private internalMakeArrayFilterSchema;
446
- private makePrimitiveFilterSchema;
447
- private makeJsonValueSchema;
448
- private makeJsonFilterSchema;
449
- private makeDateTimeFilterSchema;
450
- private makeBooleanFilterSchema;
451
- private makeBytesFilterSchema;
452
- private makeCommonPrimitiveFilterComponents;
453
- private makeCommonPrimitiveFilterSchema;
454
- private makeNumberFilterSchema;
455
- private makeStringFilterSchema;
456
- private makeStringModeSchema;
457
- private makeSelectSchema;
458
- private makeCountSelectionSchema;
459
- private makeRelationSelectIncludeSchema;
460
- private makeOmitSchema;
461
- private makeIncludeSchema;
462
- private makeOrderBySchema;
463
- private makeDistinctSchema;
464
- private makeCursorSchema;
465
- private makeCreateSchema;
466
- private makeCreateManySchema;
467
- private makeCreateManyAndReturnSchema;
468
- private makeCreateDataSchema;
469
- private isDelegateDiscriminator;
470
- private makeRelationManipulationSchema;
471
- private makeSetDataSchema;
472
- private makeConnectDataSchema;
473
- private makeDisconnectDataSchema;
474
- private makeDeleteRelationDataSchema;
475
- private makeConnectOrCreateDataSchema;
476
- private makeCreateManyDataSchema;
477
- private makeUpdateSchema;
478
- private makeUpdateManySchema;
479
- private makeUpdateManyAndReturnSchema;
480
- private makeUpsertSchema;
481
- private makeUpdateDataSchema;
482
- private makeDeleteSchema;
483
- private makeDeleteManySchema;
484
- makeCountSchema(model: string): z.ZodOptional<z.ZodObject<z.core.$ZodLooseShape, z.core.$strict>>;
485
- private makeCountAggregateInputSchema;
486
- makeAggregateSchema(model: string): z.ZodOptional<z.ZodObject<z.core.$ZodLooseShape, z.core.$strict>>;
487
- makeSumAvgInputSchema(model: string): z.ZodObject<Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.core.$strict>;
488
- makeMinMaxInputSchema(model: string): z.ZodObject<Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.core.$strict>;
489
- private makeGroupBySchema;
490
- private onlyAggregationFields;
491
- private makeHavingSchema;
492
- private makeProcedureParamSchema;
493
- getCache(cacheKey: string): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | undefined;
494
- setCache(cacheKey: string, schema: ZodType): Map<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
495
- private printCacheStats;
496
- private makeSkipSchema;
497
- private makeTakeSchema;
498
- private refineForSelectIncludeMutuallyExclusive;
499
- private refineForSelectOmitMutuallyExclusive;
500
- private nullableIf;
501
- private orArray;
502
- private isNumericField;
503
- private get providerSupportsCaseSensitivity();
504
- /**
505
- * Gets the effective set of allowed FilterKind values for a specific model and field.
506
- * Respects the precedence: model[field] > model.$all > $all[field] > $all.$all.
507
- */
508
- private getEffectiveFilterKinds;
509
- /**
510
- * Computes the effective set of filter kinds based on inclusion and exclusion lists.
511
- */
512
- private computeFilterKinds;
513
- /**
514
- * Filters operators based on allowed filter kinds.
515
- */
516
- private trimFilterOperators;
517
- private createUnionFilterSchema;
518
- /**
519
- * Checks if a model is included in the slicing configuration.
520
- * Returns true if the model is allowed, false if it's excluded.
521
- */
522
- private isModelAllowed;
523
- }
524
-
525
- /**
526
- * List of core CRUD operations. It excludes the 'orThrow' variants.
527
- */
528
- declare const CoreCrudOperations: readonly ["findMany", "findUnique", "findFirst", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "count", "aggregate", "groupBy", "exists"];
529
- /**
530
- * List of core CRUD operations. It excludes the 'orThrow' variants.
531
- */
532
- type CoreCrudOperations = (typeof CoreCrudOperations)[number];
533
- /**
534
- * List of core read operations. It excludes the 'orThrow' variants.
535
- */
536
- declare const CoreReadOperations: readonly ["findMany", "findUnique", "findFirst", "count", "aggregate", "groupBy", "exists"];
537
- /**
538
- * List of core read operations. It excludes the 'orThrow' variants.
539
- */
540
- type CoreReadOperations = (typeof CoreReadOperations)[number];
541
- /**
542
- * List of core write operations.
543
- */
544
- declare const CoreWriteOperations: readonly ["create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany"];
545
- /**
546
- * List of core write operations.
547
- */
548
- type CoreWriteOperations = (typeof CoreWriteOperations)[number];
549
- /**
550
- * List of core create operations.
551
- */
552
- declare const CoreCreateOperations: readonly ["create", "createMany", "createManyAndReturn", "upsert"];
553
- /**
554
- * List of core create operations.
555
- */
556
- type CoreCreateOperations = (typeof CoreCreateOperations)[number];
557
- /**
558
- * List of core update operations.
559
- */
560
- declare const CoreUpdateOperations: readonly ["update", "updateMany", "updateManyAndReturn", "upsert"];
561
- /**
562
- * List of core update operations.
563
- */
564
- type CoreUpdateOperations = (typeof CoreUpdateOperations)[number];
565
- /**
566
- * List of core delete operations.
567
- */
568
- declare const CoreDeleteOperations: readonly ["delete", "deleteMany"];
569
- /**
570
- * List of core delete operations.
571
- */
572
- type CoreDeleteOperations = (typeof CoreDeleteOperations)[number];
573
- /**
574
- * List of all CRUD operations, including 'orThrow' variants.
575
- */
576
- declare const AllCrudOperations: readonly ["findMany", "findUnique", "findFirst", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "count", "aggregate", "groupBy", "exists", "findUniqueOrThrow", "findFirstOrThrow"];
577
- /**
578
- * List of all CRUD operations, including 'orThrow' variants.
579
- */
580
- type AllCrudOperations = (typeof AllCrudOperations)[number];
581
- /**
582
- * List of all read operations, including 'orThrow' variants.
583
- */
584
- declare const AllReadOperations: readonly ["findMany", "findUnique", "findFirst", "count", "aggregate", "groupBy", "exists", "findUniqueOrThrow", "findFirstOrThrow"];
585
- /**
586
- * List of all read operations, including 'orThrow' variants.
587
- */
588
- type AllReadOperations = (typeof AllReadOperations)[number];
589
-
590
249
  type AllowedExtQueryArgKeys = CoreCrudOperations | '$create' | '$read' | '$update' | '$delete' | '$all';
591
250
  /**
592
251
  * Base shape of plugin-extended query args.
@@ -913,76 +572,327 @@ type QueryOptions<Schema extends SchemaDef> = {
913
572
  */
914
573
  type ClientOptions<Schema extends SchemaDef> = QueryOptions<Schema> & {
915
574
  /**
916
- * Kysely dialect.
575
+ * Kysely dialect.
576
+ */
577
+ dialect: Dialect;
578
+ /**
579
+ * Custom function definitions.
580
+ *
581
+ * @private
582
+ */
583
+ functions?: Record<string, ZModelFunction<Schema>>;
584
+ /**
585
+ * Plugins.
586
+ */
587
+ plugins?: AnyPlugin[];
588
+ /**
589
+ * Logging configuration.
590
+ */
591
+ log?: KyselyConfig['log'];
592
+ /**
593
+ * Whether to automatically fix timezone for `DateTime` fields returned by node-pg. Defaults
594
+ * to `true`.
595
+ *
596
+ * Node-pg has a terrible quirk that it interprets the date value as local timezone (as a
597
+ * `Date` object) although for `DateTime` field the data in DB is stored in UTC.
598
+ * @see https://github.com/brianc/node-postgres/issues/429
599
+ */
600
+ fixPostgresTimezone?: boolean;
601
+ /**
602
+ * Whether to enable input validations expressed with attributes like `@email`, `@regex`,
603
+ * `@@validate`, etc. Defaults to `true`.
604
+ */
605
+ validateInput?: boolean;
606
+ /**
607
+ * Whether to use compact alias names (e.g., "$t1", "$t2") when transforming ORM queries to SQL.
608
+ * Defaults to `true`.
609
+ */
610
+ useCompactAliasNames?: boolean;
611
+ } & (HasComputedFields<Schema> extends true ? {
612
+ /**
613
+ * Computed field definitions.
614
+ */
615
+ computedFields: ComputedFieldsOptions<Schema>;
616
+ } : {}) & (HasProcedures<Schema> extends true ? {
617
+ /**
618
+ * Custom procedure definitions.
619
+ */
620
+ procedures: ProceduresOptions<Schema>;
621
+ } : {});
622
+ /**
623
+ * Config for omitting fields in ORM query results.
624
+ */
625
+ type OmitConfig<Schema extends SchemaDef> = {
626
+ [Model in GetModels<Schema>]?: {
627
+ [Field in GetModelFields<Schema, Model> as Field extends ScalarFields<Schema, Model> ? Field : never]?: boolean;
628
+ };
629
+ };
630
+ type ComputedFieldsOptions<Schema extends SchemaDef> = {
631
+ [Model in GetModels<Schema> as 'computedFields' extends keyof GetModel<Schema, Model> ? Model : never]: {
632
+ [Field in keyof Schema['models'][Model]['computedFields']]: Schema['models'][Model]['computedFields'][Field] extends infer Func ? Func extends (...args: any[]) => infer R ? (p: ExpressionBuilder<ToKyselySchema<Schema>, Model>, ...args: Parameters<Func>) => OperandExpression<R> : never : never;
633
+ };
634
+ };
635
+ type HasComputedFields<Schema extends SchemaDef> = string extends GetModels<Schema> ? false : keyof ComputedFieldsOptions<Schema> extends never ? false : true;
636
+ type ProceduresOptions<Schema extends SchemaDef> = Schema extends {
637
+ procedures: Record<string, ProcedureDef>;
638
+ } ? {
639
+ [Key in GetProcedureNames<Schema>]: ProcedureHandlerFunc<Schema, Key>;
640
+ } : {};
641
+ type HasProcedures<Schema extends SchemaDef> = Schema extends {
642
+ procedures: Record<string, ProcedureDef>;
643
+ } ? true : false;
644
+ /**
645
+ * Extracts QueryOptions from an object with '$options' property.
646
+ */
647
+ type GetQueryOptions<T extends {
648
+ $options: any;
649
+ }> = T['$options'];
650
+
651
+ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
652
+ protected readonly schema: Schema;
653
+ protected readonly options: ClientOptions<Schema>;
654
+ protected eb: ExpressionBuilder<any, any>;
655
+ constructor(schema: Schema, options: ClientOptions<Schema>);
656
+ /**
657
+ * Whether the dialect supports updating with a limit on the number of updated rows.
658
+ */
659
+ abstract get supportsUpdateWithLimit(): boolean;
660
+ /**
661
+ * Whether the dialect supports deleting with a limit on the number of deleted rows.
662
+ */
663
+ abstract get supportsDeleteWithLimit(): boolean;
664
+ /**
665
+ * Whether the dialect supports DISTINCT ON.
666
+ */
667
+ abstract get supportsDistinctOn(): boolean;
668
+ /**
669
+ * Whether the dialect support inserting with `DEFAULT` as field value.
670
+ */
671
+ abstract get supportsDefaultAsFieldValue(): boolean;
672
+ /**
673
+ * Whether the dialect supports the RETURNING clause in INSERT/UPDATE/DELETE statements.
674
+ */
675
+ abstract get supportsReturning(): boolean;
676
+ /**
677
+ * Whether the dialect supports `INSERT INTO ... DEFAULT VALUES` syntax.
678
+ */
679
+ abstract get supportsInsertDefaultValues(): boolean;
680
+ /**
681
+ * How to perform insert ignore operation.
682
+ */
683
+ abstract get insertIgnoreMethod(): 'onConflict' | 'ignore';
684
+ /**
685
+ * Transforms input value before sending to database.
686
+ */
687
+ transformInput(value: unknown, _type: BuiltinType, _forArrayField: boolean): unknown;
688
+ /**
689
+ * Transforms output value received from database.
690
+ */
691
+ transformOutput(value: unknown, _type: BuiltinType, _array: boolean): unknown;
692
+ buildSelectModel(model: string, modelAlias: string): SelectQueryBuilder<any, any, {}>;
693
+ buildFilterSortTake(model: string, args: FindArgs<Schema, GetModels<Schema>, any, true>, query: SelectQueryBuilder<any, any, {}>, modelAlias: string): SelectQueryBuilder<any, any, {}>;
694
+ buildFilter(model: string, modelAlias: string, where: boolean | object | undefined): Expression<SqlBool>;
695
+ private buildCursorFilter;
696
+ private isLogicalCombinator;
697
+ protected buildCompositeFilter(model: string, modelAlias: string, key: (typeof LOGICAL_COMBINATORS)[number], payload: any): Expression<SqlBool>;
698
+ private buildRelationFilter;
699
+ private buildToOneRelationFilter;
700
+ private buildToManyRelationFilter;
701
+ private buildArrayFilter;
702
+ buildPrimitiveFilter(fieldRef: Expression<any>, fieldDef: FieldDef, payload: any): any;
703
+ private buildJsonFilter;
704
+ private buildPlainJsonFilter;
705
+ private buildTypedJsonFilter;
706
+ private buildTypedJsonArrayFilter;
707
+ private buildTypeJsonNonArrayFilter;
708
+ private buildJsonValueFilterClause;
709
+ protected buildJsonEqualityFilter(lhs: Expression<any>, rhs: unknown): ExpressionWrapper<any, any, SqlBool>;
710
+ private buildLiteralFilter;
711
+ private buildStandardFilter;
712
+ private buildStringFilter;
713
+ private buildJsonStringFilter;
714
+ private escapeLikePattern;
715
+ private buildStringLike;
716
+ private prepStringCasing;
717
+ private buildNumberFilter;
718
+ private buildBooleanFilter;
719
+ private buildDateTimeFilter;
720
+ private buildBytesFilter;
721
+ private buildEnumFilter;
722
+ buildOrderBy(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, orderBy: OrArray<OrderBy<Schema, GetModels<Schema>, boolean, boolean>> | undefined, negated: boolean, take: number | undefined): SelectQueryBuilder<any, any, any>;
723
+ buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit: Record<string, boolean | undefined> | undefined | null, modelAlias: string): SelectQueryBuilder<any, any, any>;
724
+ shouldOmitField(omit: unknown, model: string, field: string): any;
725
+ protected buildModelSelect(model: GetModels<Schema>, subQueryAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, any, true>, selectAllFields: boolean): SelectQueryBuilder<any, any, {}>;
726
+ buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
727
+ buildDelegateJoin(thisModel: string, thisModelAlias: string, otherModelAlias: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
728
+ buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any): AliasableExpression<unknown>;
729
+ protected negateSort(sort: SortOrder, negated: boolean): SortOrder;
730
+ true(): Expression<SqlBool>;
731
+ false(): Expression<SqlBool>;
732
+ isTrue(expression: Expression<SqlBool>): boolean;
733
+ isFalse(expression: Expression<SqlBool>): boolean;
734
+ and(...args: Expression<SqlBool>[]): Expression<SqlBool>;
735
+ or(...args: Expression<SqlBool>[]): Expression<SqlBool>;
736
+ not(...args: Expression<SqlBool>[]): ExpressionWrapper<any, any, SqlBool>;
737
+ fieldRef(model: string, field: string, modelAlias?: string, inlineComputedField?: boolean): any;
738
+ protected canJoinWithoutNestedSelect(modelDef: ModelDef, payload: boolean | FindArgs<Schema, GetModels<Schema>, any, true>): boolean;
739
+ abstract get provider(): DataSourceProviderType;
740
+ /**
741
+ * Builds selection for a relation field.
742
+ */
743
+ abstract buildRelationSelection(query: SelectQueryBuilder<any, any, any>, model: string, relationField: string, parentAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, any, true>): SelectQueryBuilder<any, any, any>;
744
+ /**
745
+ * Builds skip and take clauses.
746
+ */
747
+ abstract buildSkipTake(query: SelectQueryBuilder<any, any, any>, skip: number | undefined, take: number | undefined): SelectQueryBuilder<any, any, any>;
748
+ /**
749
+ * Builds an Kysely expression that returns a JSON object for the given key-value pairs.
750
+ */
751
+ abstract buildJsonObject(value: Record<string, Expression<unknown>>): AliasableExpression<unknown>;
752
+ /**
753
+ * Builds an Kysely expression that returns the length of an array.
754
+ */
755
+ abstract buildArrayLength(array: Expression<unknown>): AliasableExpression<number>;
756
+ /**
757
+ * Builds an array value expression.
758
+ */
759
+ abstract buildArrayValue(values: Expression<unknown>[], elemType: string): AliasableExpression<unknown>;
760
+ /**
761
+ * Builds an expression that checks if an array contains a single value.
762
+ */
763
+ abstract buildArrayContains(field: Expression<unknown>, value: Expression<unknown>, elemType?: string): AliasableExpression<SqlBool>;
764
+ /**
765
+ * Builds an expression that checks if an array contains all values from another array.
766
+ */
767
+ abstract buildArrayHasEvery(field: Expression<unknown>, values: Expression<unknown>): AliasableExpression<SqlBool>;
768
+ /**
769
+ * Builds an expression that checks if an array overlaps with another array.
770
+ */
771
+ abstract buildArrayHasSome(field: Expression<unknown>, values: Expression<unknown>): AliasableExpression<SqlBool>;
772
+ /**
773
+ * Casts the given expression to an integer type.
917
774
  */
918
- dialect: Dialect;
775
+ abstract castInt<T extends Expression<any>>(expression: T): T;
919
776
  /**
920
- * Custom function definitions.
921
- *
922
- * @private
777
+ * Casts the given expression to a text type.
923
778
  */
924
- functions?: Record<string, ZModelFunction<Schema>>;
779
+ abstract castText<T extends Expression<any>>(expression: T): T;
925
780
  /**
926
- * Plugins.
781
+ * Trims double quotes from the start and end of a text expression.
927
782
  */
928
- plugins?: AnyPlugin[];
783
+ abstract trimTextQuotes<T extends Expression<string>>(expression: T): T;
784
+ abstract getStringCasingBehavior(): {
785
+ supportsILike: boolean;
786
+ likeCaseSensitive: boolean;
787
+ };
929
788
  /**
930
- * Logging configuration.
789
+ * Builds a VALUES table and select all fields from it.
931
790
  */
932
- log?: KyselyConfig['log'];
791
+ abstract buildValuesTableSelect(fields: FieldDef[], rows: unknown[][]): SelectQueryBuilder<any, any, any>;
933
792
  /**
934
- * Whether to automatically fix timezone for `DateTime` fields returned by node-pg. Defaults
935
- * to `true`.
936
- *
937
- * Node-pg has a terrible quirk that it interprets the date value as local timezone (as a
938
- * `Date` object) although for `DateTime` field the data in DB is stored in UTC.
939
- * @see https://github.com/brianc/node-postgres/issues/429
793
+ * Builds a JSON path selection expression.
940
794
  */
941
- fixPostgresTimezone?: boolean;
795
+ protected abstract buildJsonPathSelection(receiver: Expression<any>, path: string | undefined): Expression<any>;
942
796
  /**
943
- * Whether to enable input validations expressed with attributes like `@email`, `@regex`,
944
- * `@@validate`, etc. Defaults to `true`.
797
+ * Builds a JSON array filter expression.
945
798
  */
946
- validateInput?: boolean;
947
- } & (HasComputedFields<Schema> extends true ? {
799
+ protected abstract buildJsonArrayFilter(receiver: Expression<any>, operation: 'array_contains' | 'array_starts_with' | 'array_ends_with', value: unknown): Expression<SqlBool>;
948
800
  /**
949
- * Computed field definitions.
801
+ * Builds a JSON array exists predicate (returning if any element matches the filter).
950
802
  */
951
- computedFields: ComputedFieldsOptions<Schema>;
952
- } : {}) & (HasProcedures<Schema> extends true ? {
803
+ protected abstract buildJsonArrayExistsPredicate(receiver: Expression<any>, buildFilter: (elem: Expression<any>) => Expression<SqlBool>): Expression<SqlBool>;
953
804
  /**
954
- * Custom procedure definitions.
805
+ * Builds an ORDER BY clause for a field with NULLS FIRST/LAST support.
955
806
  */
956
- procedures: ProceduresOptions<Schema>;
957
- } : {});
807
+ protected abstract buildOrderByField(query: SelectQueryBuilder<any, any, any>, field: Expression<unknown>, sort: SortOrder, nulls: 'first' | 'last'): SelectQueryBuilder<any, any, any>;
808
+ }
809
+
810
+ declare class InputValidator<Schema extends SchemaDef> {
811
+ private readonly client;
812
+ readonly zodFactory: ZodSchemaFactory<Schema>;
813
+ constructor(client: ClientContract<Schema>);
814
+ validateFindArgs(model: GetModels<Schema>, args: unknown, operation: 'findFirst' | 'findUnique' | 'findMany'): FindArgs<Schema, GetModels<Schema>, any, true> | undefined;
815
+ validateExistsArgs(model: GetModels<Schema>, args: unknown): ExistsArgs<Schema, GetModels<Schema>, any> | undefined;
816
+ validateCreateArgs(model: GetModels<Schema>, args: unknown): CreateArgs<Schema, GetModels<Schema>, any>;
817
+ validateCreateManyArgs(model: GetModels<Schema>, args: unknown): CreateManyArgs<Schema, GetModels<Schema>>;
818
+ validateCreateManyAndReturnArgs(model: GetModels<Schema>, args: unknown): CreateManyAndReturnArgs<Schema, GetModels<Schema>, any> | undefined;
819
+ validateUpdateArgs(model: GetModels<Schema>, args: unknown): UpdateArgs<Schema, GetModels<Schema>, any>;
820
+ validateUpdateManyArgs(model: GetModels<Schema>, args: unknown): UpdateManyArgs<Schema, GetModels<Schema>, any>;
821
+ validateUpdateManyAndReturnArgs(model: GetModels<Schema>, args: unknown): UpdateManyAndReturnArgs<Schema, GetModels<Schema>, any>;
822
+ validateUpsertArgs(model: GetModels<Schema>, args: unknown): UpsertArgs<Schema, GetModels<Schema>, any>;
823
+ validateDeleteArgs(model: GetModels<Schema>, args: unknown): DeleteArgs<Schema, GetModels<Schema>, any>;
824
+ validateDeleteManyArgs(model: GetModels<Schema>, args: unknown): DeleteManyArgs<Schema, GetModels<Schema>, any> | undefined;
825
+ validateCountArgs(model: GetModels<Schema>, args: unknown): CountArgs<Schema, GetModels<Schema>, any> | undefined;
826
+ validateAggregateArgs(model: GetModels<Schema>, args: unknown): AggregateArgs<Schema, GetModels<Schema>, any>;
827
+ validateGroupByArgs(model: GetModels<Schema>, args: unknown): GroupByArgs<Schema, GetModels<Schema>, any>;
828
+ validateProcedureInput(proc: string, input: unknown): unknown;
829
+ private validate;
830
+ }
831
+
958
832
  /**
959
- * Config for omitting fields in ORM query results.
833
+ * List of core CRUD operations. It excludes the 'orThrow' variants.
960
834
  */
961
- type OmitConfig<Schema extends SchemaDef> = {
962
- [Model in GetModels<Schema>]?: {
963
- [Field in GetModelFields<Schema, Model> as Field extends ScalarFields<Schema, Model> ? Field : never]?: boolean;
964
- };
965
- };
966
- type ComputedFieldsOptions<Schema extends SchemaDef> = {
967
- [Model in GetModels<Schema> as 'computedFields' extends keyof GetModel<Schema, Model> ? Model : never]: {
968
- [Field in keyof Schema['models'][Model]['computedFields']]: PrependParameter<ExpressionBuilder<ToKyselySchema<Schema>, Model>, Schema['models'][Model]['computedFields'][Field]>;
969
- };
970
- };
971
- type HasComputedFields<Schema extends SchemaDef> = string extends GetModels<Schema> ? false : keyof ComputedFieldsOptions<Schema> extends never ? false : true;
972
- type ProceduresOptions<Schema extends SchemaDef> = Schema extends {
973
- procedures: Record<string, ProcedureDef>;
974
- } ? {
975
- [Key in GetProcedureNames<Schema>]: ProcedureHandlerFunc<Schema, Key>;
976
- } : {};
977
- type HasProcedures<Schema extends SchemaDef> = Schema extends {
978
- procedures: Record<string, ProcedureDef>;
979
- } ? true : false;
835
+ declare const CoreCrudOperations: readonly ["findMany", "findUnique", "findFirst", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "count", "aggregate", "groupBy", "exists"];
980
836
  /**
981
- * Extracts QueryOptions from an object with '$options' property.
837
+ * List of core CRUD operations. It excludes the 'orThrow' variants.
982
838
  */
983
- type GetQueryOptions<T extends {
984
- $options: any;
985
- }> = T['$options'];
839
+ type CoreCrudOperations = (typeof CoreCrudOperations)[number];
840
+ /**
841
+ * List of core read operations. It excludes the 'orThrow' variants.
842
+ */
843
+ declare const CoreReadOperations: readonly ["findMany", "findUnique", "findFirst", "count", "aggregate", "groupBy", "exists"];
844
+ /**
845
+ * List of core read operations. It excludes the 'orThrow' variants.
846
+ */
847
+ type CoreReadOperations = (typeof CoreReadOperations)[number];
848
+ /**
849
+ * List of core write operations.
850
+ */
851
+ declare const CoreWriteOperations: readonly ["create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany"];
852
+ /**
853
+ * List of core write operations.
854
+ */
855
+ type CoreWriteOperations = (typeof CoreWriteOperations)[number];
856
+ /**
857
+ * List of core create operations.
858
+ */
859
+ declare const CoreCreateOperations: readonly ["create", "createMany", "createManyAndReturn", "upsert"];
860
+ /**
861
+ * List of core create operations.
862
+ */
863
+ type CoreCreateOperations = (typeof CoreCreateOperations)[number];
864
+ /**
865
+ * List of core update operations.
866
+ */
867
+ declare const CoreUpdateOperations: readonly ["update", "updateMany", "updateManyAndReturn", "upsert"];
868
+ /**
869
+ * List of core update operations.
870
+ */
871
+ type CoreUpdateOperations = (typeof CoreUpdateOperations)[number];
872
+ /**
873
+ * List of core delete operations.
874
+ */
875
+ declare const CoreDeleteOperations: readonly ["delete", "deleteMany"];
876
+ /**
877
+ * List of core delete operations.
878
+ */
879
+ type CoreDeleteOperations = (typeof CoreDeleteOperations)[number];
880
+ /**
881
+ * List of all CRUD operations, including 'orThrow' variants.
882
+ */
883
+ declare const AllCrudOperations: readonly ["findMany", "findUnique", "findFirst", "create", "createMany", "createManyAndReturn", "update", "updateMany", "updateManyAndReturn", "upsert", "delete", "deleteMany", "count", "aggregate", "groupBy", "exists", "findUniqueOrThrow", "findFirstOrThrow"];
884
+ /**
885
+ * List of all CRUD operations, including 'orThrow' variants.
886
+ */
887
+ type AllCrudOperations = (typeof AllCrudOperations)[number];
888
+ /**
889
+ * List of all read operations, including 'orThrow' variants.
890
+ */
891
+ declare const AllReadOperations: readonly ["findMany", "findUnique", "findFirst", "count", "aggregate", "groupBy", "exists", "findUniqueOrThrow", "findFirstOrThrow"];
892
+ /**
893
+ * List of all read operations, including 'orThrow' variants.
894
+ */
895
+ type AllReadOperations = (typeof AllReadOperations)[number];
986
896
 
987
897
  type IsNever<T> = [T] extends [never] ? true : false;
988
898
  /**
@@ -1530,18 +1440,18 @@ type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options
1530
1440
  * Distinct fields. Only supported by providers that natively support SQL "DISTINCT ON".
1531
1441
  */
1532
1442
  distinct?: OrArray<NonRelationFields<Schema, Model>>;
1533
- } : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model, Options> : {}) & SelectIncludeOmit<Schema, Model, Collection, Options>;
1534
- type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = FindArgs<Schema, Model, Options, true>;
1535
- type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = FindArgs<Schema, Model, Options, true>;
1536
- type ExistsArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = FilterArgs<Schema, Model, Options>;
1537
- type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1443
+ } : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model, Options> : {}) & SelectIncludeOmit<Schema, Model, true, Options>;
1444
+ type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = FindArgs<Schema, Model, Options, true> & ExtractExtQueryArgs<ExtQueryArgs, 'findMany'>;
1445
+ type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = FindArgs<Schema, Model, Options, true> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>;
1446
+ type ExistsArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = FilterArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'exists'>;
1447
+ type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1538
1448
  where: WhereUniqueInput<Schema, Model, Options>;
1539
- } & SelectIncludeOmit<Schema, Model, true, Options>;
1540
- type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1449
+ } & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>;
1450
+ type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1541
1451
  data: CreateInput<Schema, Model, Options>;
1542
- } & SelectIncludeOmit<Schema, Model, true, Options>;
1543
- type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = CreateManyInput<Schema, Model>;
1544
- type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = CreateManyInput<Schema, Model> & SelectIncludeOmit<Schema, Model, false, Options, false>;
1452
+ } & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>;
1453
+ type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, _Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = CreateManyInput<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>;
1454
+ type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = CreateManyInput<Schema, Model> & SelectIncludeOmit<Schema, Model, false, Options, false> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>;
1545
1455
  type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
1546
1456
  type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
1547
1457
  [Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
@@ -1603,7 +1513,7 @@ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
1603
1513
  type CreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, Without extends string = never> = XOR<Omit<CreateWithFKInput<Schema, Model, Options>, Without>, Omit<CreateWithRelationInput<Schema, Model, Options>, Without>>;
1604
1514
  type NestedCreateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = OrArray<CreateInput<Schema, RelationFieldType<Schema, Model, Field>, Options, OppositeRelationAndFK<Schema, Model, Field>>, FieldIsArray<Schema, Model, Field>>;
1605
1515
  type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = CreateManyInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
1606
- type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1516
+ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1607
1517
  /**
1608
1518
  * The data to update the record with.
1609
1519
  */
@@ -1612,9 +1522,9 @@ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
1612
1522
  * The unique filter to find the record to update.
1613
1523
  */
1614
1524
  where: WhereUniqueInput<Schema, Model, Options>;
1615
- } & SelectIncludeOmit<Schema, Model, true, Options>;
1616
- type UpdateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = UpdateManyPayload<Schema, Model, Options>;
1617
- type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = UpdateManyPayload<Schema, Model, Options> & SelectIncludeOmit<Schema, Model, false, Options, false>;
1525
+ } & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
1526
+ 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'>;
1527
+ type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = UpdateManyPayload<Schema, Model, Options> & SelectIncludeOmit<Schema, Model, false, Options, false> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>;
1618
1528
  type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
1619
1529
  /**
1620
1530
  * The data to update the records with.
@@ -1629,7 +1539,7 @@ type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>
1629
1539
  */
1630
1540
  limit?: number;
1631
1541
  };
1632
- type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1542
+ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1633
1543
  /**
1634
1544
  * The data to create the record if it doesn't exist.
1635
1545
  */
@@ -1642,7 +1552,7 @@ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
1642
1552
  * The unique filter to find the record to update.
1643
1553
  */
1644
1554
  where: WhereUniqueInput<Schema, Model, Options>;
1645
- } & SelectIncludeOmit<Schema, Model, true, Options>;
1555
+ } & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>;
1646
1556
  type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
1647
1557
  [Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
1648
1558
  }, Without>;
@@ -1759,13 +1669,13 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
1759
1669
  */
1760
1670
  delete?: NestedDeleteInput<Schema, Model, Field, Options>;
1761
1671
  } : {}), FieldIsDelegateRelation<Schema, Model, Field> extends true ? 'create' | 'connectOrCreate' | 'upsert' : never>;
1762
- type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1672
+ type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1763
1673
  /**
1764
1674
  * The unique filter to find the record to delete.
1765
1675
  */
1766
1676
  where: WhereUniqueInput<Schema, Model, Options>;
1767
- } & SelectIncludeOmit<Schema, Model, true, Options>;
1768
- type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1677
+ } & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>;
1678
+ type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1769
1679
  /**
1770
1680
  * Filter to select records to delete.
1771
1681
  */
@@ -1774,13 +1684,13 @@ type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, O
1774
1684
  * Limits the number of records to delete.
1775
1685
  */
1776
1686
  limit?: number;
1777
- };
1778
- type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<FindArgs<Schema, Model, Options, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
1687
+ } & ExtractExtQueryArgs<ExtQueryArgs, 'deleteMany'>;
1688
+ type CountArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = Omit<FindArgs<Schema, Model, Options, true>, 'select' | 'include' | 'distinct' | 'omit'> & {
1779
1689
  /**
1780
1690
  * Selects fields to count
1781
1691
  */
1782
1692
  select?: CountAggregateInput<Schema, Model> | true;
1783
- };
1693
+ } & ExtractExtQueryArgs<ExtQueryArgs, 'count'>;
1784
1694
  type CountAggregateInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
1785
1695
  [Key in NonRelationFields<Schema, Model>]?: true;
1786
1696
  } & {
@@ -1791,7 +1701,7 @@ type CountResult<Schema extends SchemaDef, _Model extends GetModels<Schema>, Arg
1791
1701
  } ? S extends true ? number : {
1792
1702
  [Key in keyof S]: number;
1793
1703
  } : number;
1794
- type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1704
+ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1795
1705
  /**
1796
1706
  * Filter conditions
1797
1707
  */
@@ -1830,7 +1740,7 @@ type AggregateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Op
1830
1740
  * Performs sum value aggregation.
1831
1741
  */
1832
1742
  _sum?: SumAvgInput<Schema, Model, true>;
1833
- });
1743
+ }) & ExtractExtQueryArgs<ExtQueryArgs, 'aggregate'>;
1834
1744
  type NumericFields<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
1835
1745
  [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>;
1836
1746
  };
@@ -1880,7 +1790,7 @@ type AggCommonOutput<Input> = Input extends true ? number : Input extends {} ? {
1880
1790
  [Key in keyof Input]: number;
1881
1791
  } : never;
1882
1792
  type GroupByHaving<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = Omit<WhereInput<Schema, Model, Options, true, true>, '$expr'>;
1883
- type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>> = {
1793
+ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
1884
1794
  /**
1885
1795
  * Filter conditions
1886
1796
  */
@@ -1926,7 +1836,7 @@ type GroupByArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Opti
1926
1836
  * Performs sum value aggregation.
1927
1837
  */
1928
1838
  _sum?: SumAvgInput<Schema, Model, true>;
1929
- });
1839
+ }) & ExtractExtQueryArgs<ExtQueryArgs, 'groupBy'>;
1930
1840
  type GroupByResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args extends {
1931
1841
  by: unknown;
1932
1842
  }> = Array<{
@@ -2071,6 +1981,10 @@ type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema
2071
1981
  type EnumValue<Schema extends SchemaDef, Enum extends GetEnums<Schema>> = GetEnum<Schema, Enum>[keyof GetEnum<Schema, Enum>];
2072
1982
  type MapType<Schema extends SchemaDef, T extends string> = T extends keyof TypeMap ? TypeMap[T] : T extends GetModels<Schema> ? ModelResult<Schema, T> : T extends GetTypeDefs<Schema> ? TypeDefResult<Schema, T> : T extends GetEnums<Schema> ? EnumValue<Schema, T> : unknown;
2073
1983
  type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
1984
+ /**
1985
+ * Extracts extended query args for a specific operation.
1986
+ */
1987
+ type ExtractExtQueryArgs<ExtQueryArgs, Operation extends CoreCrudOperations> = (Operation extends keyof ExtQueryArgs ? ExtQueryArgs[Operation] : {}) & ('$create' extends keyof ExtQueryArgs ? Operation extends CoreCreateOperations ? ExtQueryArgs['$create'] : {} : {}) & ('$read' extends keyof ExtQueryArgs ? (Operation extends CoreReadOperations ? ExtQueryArgs['$read'] : {}) : {}) & ('$update' extends keyof ExtQueryArgs ? Operation extends CoreUpdateOperations ? ExtQueryArgs['$update'] : {} : {}) & ('$delete' extends keyof ExtQueryArgs ? Operation extends CoreDeleteOperations ? ExtQueryArgs['$delete'] : {} : {}) & ('$all' extends keyof ExtQueryArgs ? ExtQueryArgs['$all'] : {});
2074
1988
 
2075
1989
  /**
2076
1990
  * A promise that only executes when it's awaited or .then() is called.
@@ -2084,10 +1998,6 @@ type ZenStackPromise<Schema extends SchemaDef, T> = Promise<T> & {
2084
1998
  };
2085
1999
 
2086
2000
  type TransactionUnsupportedMethods = (typeof TRANSACTION_UNSUPPORTED_METHODS)[number];
2087
- /**
2088
- * Extracts extended query args for a specific operation.
2089
- */
2090
- type ExtractExtQueryArgs<ExtQueryArgs, Operation extends CoreCrudOperations> = (Operation extends keyof ExtQueryArgs ? ExtQueryArgs[Operation] : {}) & ('$create' extends keyof ExtQueryArgs ? Operation extends CoreCreateOperations ? ExtQueryArgs['$create'] : {} : {}) & ('$read' extends keyof ExtQueryArgs ? (Operation extends CoreReadOperations ? ExtQueryArgs['$read'] : {}) : {}) & ('$update' extends keyof ExtQueryArgs ? Operation extends CoreUpdateOperations ? ExtQueryArgs['$update'] : {} : {}) & ('$delete' extends keyof ExtQueryArgs ? Operation extends CoreDeleteOperations ? ExtQueryArgs['$delete'] : {} : {}) & ('$all' extends keyof ExtQueryArgs ? ExtQueryArgs['$all'] : {});
2091
2001
  /**
2092
2002
  * Transaction isolation levels.
2093
2003
  */
@@ -2207,6 +2117,10 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
2207
2117
  * Explicitly disconnects from the database.
2208
2118
  */
2209
2119
  $disconnect(): Promise<void>;
2120
+ /**
2121
+ * Factory for creating zod schemas to validate query args.
2122
+ */
2123
+ get $zod(): ZodSchemaFactory<Schema, Options, ExtQueryArgs>;
2210
2124
  /**
2211
2125
  * Pushes the schema to the database. For testing purposes only.
2212
2126
  * @private
@@ -2252,7 +2166,7 @@ declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-up
2252
2166
  type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema>> = Omit<{
2253
2167
  [Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key];
2254
2168
  }, IsDelegateModel<Schema, Model> extends true ? OperationsIneligibleForDelegateModels : never>;
2255
- type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs> & (Schema['provider']['type'] extends 'mysql' ? {} : {
2169
+ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs> & (Schema['provider']['type'] extends 'mysql' ? {} : {
2256
2170
  /**
2257
2171
  * Creates multiple entities and returns them.
2258
2172
  * @param args - create args. See {@link createMany} for input. Use
@@ -2271,7 +2185,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
2271
2185
  * });
2272
2186
  * ```
2273
2187
  */
2274
- createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2188
+ createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2275
2189
  /**
2276
2190
  * Updates multiple entities and returns them.
2277
2191
  * @param args - update args. Only scalar fields are allowed for data.
@@ -2294,9 +2208,9 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
2294
2208
  * });
2295
2209
  * ```
2296
2210
  */
2297
- updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2211
+ updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2298
2212
  });
2299
- type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs> = {
2213
+ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase> = {
2300
2214
  /**
2301
2215
  * Returns a list of entities.
2302
2216
  * @param args - query args
@@ -2378,35 +2292,35 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2378
2292
  * }); // result: `{ _count: { posts: number } }`
2379
2293
  * ```
2380
2294
  */
2381
- findMany<T extends FindManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findMany'>>(args?: SelectSubset<T, FindManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findMany'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2295
+ findMany<T extends FindManyArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
2382
2296
  /**
2383
2297
  * Returns a uniquely identified entity.
2384
2298
  * @param args - query args
2385
2299
  * @returns a single entity or null if not found
2386
2300
  * @see {@link findMany}
2387
2301
  */
2388
- findUnique<T extends FindUniqueArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
2302
+ findUnique<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
2389
2303
  /**
2390
2304
  * Returns a uniquely identified entity or throws `NotFoundError` if not found.
2391
2305
  * @param args - query args
2392
2306
  * @returns a single entity
2393
2307
  * @see {@link findMany}
2394
2308
  */
2395
- findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2309
+ findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2396
2310
  /**
2397
2311
  * Returns the first entity.
2398
2312
  * @param args - query args
2399
2313
  * @returns a single entity or null if not found
2400
2314
  * @see {@link findMany}
2401
2315
  */
2402
- findFirst<T extends FindFirstArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
2316
+ findFirst<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
2403
2317
  /**
2404
2318
  * Returns the first entity or throws `NotFoundError` if not found.
2405
2319
  * @param args - query args
2406
2320
  * @returns a single entity
2407
2321
  * @see {@link findMany}
2408
2322
  */
2409
- findFirstOrThrow<T extends FindFirstArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2323
+ findFirstOrThrow<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2410
2324
  /**
2411
2325
  * Creates a new entity.
2412
2326
  * @param args - create args
@@ -2459,7 +2373,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2459
2373
  * });
2460
2374
  * ```
2461
2375
  */
2462
- create<T extends CreateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>>(args: SelectSubset<T, CreateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2376
+ create<T extends CreateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, CreateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2463
2377
  /**
2464
2378
  * Creates multiple entities. Only scalar fields are allowed.
2465
2379
  * @param args - create args
@@ -2485,7 +2399,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2485
2399
  * });
2486
2400
  * ```
2487
2401
  */
2488
- createMany<T extends CreateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>>): ZenStackPromise<Schema, BatchResult>;
2402
+ createMany<T extends CreateManyArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, BatchResult>;
2489
2403
  /**
2490
2404
  * Updates a uniquely identified entity.
2491
2405
  * @param args - update args. See {@link findMany} for how to control
@@ -2603,7 +2517,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2603
2517
  * });
2604
2518
  * ```
2605
2519
  */
2606
- update<T extends UpdateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>>(args: SelectSubset<T, UpdateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2520
+ update<T extends UpdateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpdateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2607
2521
  /**
2608
2522
  * Updates multiple entities.
2609
2523
  * @param args - update args. Only scalar fields are allowed for data.
@@ -2624,7 +2538,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2624
2538
  * limit: 10
2625
2539
  * });
2626
2540
  */
2627
- updateMany<T extends UpdateManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>>(args: Subset<T, UpdateManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>>): ZenStackPromise<Schema, BatchResult>;
2541
+ updateMany<T extends UpdateManyArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, UpdateManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, BatchResult>;
2628
2542
  /**
2629
2543
  * Creates or updates an entity.
2630
2544
  * @param args - upsert args
@@ -2645,7 +2559,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2645
2559
  * });
2646
2560
  * ```
2647
2561
  */
2648
- upsert<T extends UpsertArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>>(args: SelectSubset<T, UpsertArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2562
+ upsert<T extends UpsertArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpsertArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2649
2563
  /**
2650
2564
  * Deletes a uniquely identifiable entity.
2651
2565
  * @param args - delete args
@@ -2665,7 +2579,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2665
2579
  * }); // result: `{ id: string; email: string }`
2666
2580
  * ```
2667
2581
  */
2668
- delete<T extends DeleteArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>>(args: SelectSubset<T, DeleteArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2582
+ delete<T extends DeleteArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, DeleteArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
2669
2583
  /**
2670
2584
  * Deletes multiple entities.
2671
2585
  * @param args - delete args
@@ -2685,7 +2599,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2685
2599
  * });
2686
2600
  * ```
2687
2601
  */
2688
- deleteMany<T extends DeleteManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'deleteMany'>>(args?: Subset<T, DeleteManyArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'deleteMany'>>): ZenStackPromise<Schema, BatchResult>;
2602
+ deleteMany<T extends DeleteManyArgs<Schema, Model, Options, ExtQueryArgs>>(args?: Subset<T, DeleteManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, BatchResult>;
2689
2603
  /**
2690
2604
  * Counts rows or field values.
2691
2605
  * @param args - count args
@@ -2704,7 +2618,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2704
2618
  * select: { _all: true, email: true }
2705
2619
  * }); // result: `{ _all: number, email: number }`
2706
2620
  */
2707
- count<T extends CountArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'count'>>(args?: Subset<T, CountArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'count'>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
2621
+ count<T extends CountArgs<Schema, Model, Options, ExtQueryArgs>>(args?: Subset<T, CountArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, Simplify<CountResult<Schema, Model, T>>>;
2708
2622
  /**
2709
2623
  * Aggregates rows.
2710
2624
  * @param args - aggregation args
@@ -2722,7 +2636,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2722
2636
  * _max: { age: true }
2723
2637
  * }); // result: `{ _count: number, _avg: { age: number }, ... }`
2724
2638
  */
2725
- aggregate<T extends AggregateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'aggregate'>>(args: Subset<T, AggregateArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'aggregate'>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
2639
+ aggregate<T extends AggregateArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, AggregateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, Simplify<AggregateResult<Schema, Model, T>>>;
2726
2640
  /**
2727
2641
  * Groups rows by columns.
2728
2642
  * @param args - groupBy args
@@ -2756,7 +2670,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2756
2670
  * having: { country: 'US', age: { _avg: { gte: 18 } } }
2757
2671
  * });
2758
2672
  */
2759
- groupBy<T extends GroupByArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'groupBy'>>(args: Subset<T, GroupByArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'groupBy'>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
2673
+ groupBy<T extends GroupByArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, GroupByArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, Simplify<GroupByResult<Schema, Model, T>>>;
2760
2674
  /**
2761
2675
  * Checks if an entity exists.
2762
2676
  * @param args - exists args
@@ -2774,10 +2688,10 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
2774
2688
  * where: { posts: { some: { published: true } } },
2775
2689
  * }); // result: `boolean`
2776
2690
  */
2777
- exists<T extends ExistsArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'exists'>>(args?: Subset<T, ExistsArgs<Schema, Model, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'exists'>>): ZenStackPromise<Schema, boolean>;
2691
+ exists<T extends ExistsArgs<Schema, Model, Options, ExtQueryArgs>>(args?: Subset<T, ExistsArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, boolean>;
2778
2692
  };
2779
2693
  type OperationsIneligibleForDelegateModels = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
2780
- type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs>, Schema, Model, Options>;
2694
+ type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs>, Schema, Model, Options>;
2781
2695
  /**
2782
2696
  * Type for auth context that includes both scalar and relation fields.
2783
2697
  * Relations are recursively included to allow nested auth data like { user: { profile: { ... } } }
@@ -2787,6 +2701,136 @@ type AuthModelType<Schema extends SchemaDef, Model extends GetModels<Schema>> =
2787
2701
  };
2788
2702
  type AuthType<Schema extends SchemaDef> = Schema['authType'] extends GetModels<Schema> ? AuthModelType<Schema, Schema['authType']> : Schema['authType'] extends GetTypeDefs<Schema> ? TypeDefResult<Schema, Schema['authType'], true> : Record<string, unknown>;
2789
2703
 
2704
+ /**
2705
+ * Create a factory for generating Zod schemas to validate ORM query inputs.
2706
+ */
2707
+ declare function createQuerySchemaFactory<Schema extends SchemaDef, Options extends ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}>(client: ClientContract<Schema, Options, ExtQueryArgs>): ZodSchemaFactory<Schema, Options, ExtQueryArgs>;
2708
+ /**
2709
+ * Create a factory for generating Zod schemas to validate ORM query inputs.
2710
+ */
2711
+ declare function createQuerySchemaFactory<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}>(schema: Schema, options?: Options): ZodSchemaFactory<Schema, Options, ExtQueryArgs>;
2712
+ /**
2713
+ * Options for creating Zod schemas.
2714
+ */
2715
+ type CreateSchemaOptions = {
2716
+ /**
2717
+ * Controls the depth of relation nesting in the generated schema. Default is unlimited.
2718
+ */
2719
+ relationDepth?: number;
2720
+ };
2721
+ /**
2722
+ * Factory class responsible for creating and caching Zod schemas for ORM input validation.
2723
+ */
2724
+ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> {
2725
+ private readonly schemaCache;
2726
+ private readonly allFilterKinds;
2727
+ private readonly schema;
2728
+ private readonly options;
2729
+ constructor(client: ClientContract<Schema, Options, ExtQueryArgs, any>);
2730
+ constructor(schema: Schema, options?: Options);
2731
+ private get plugins();
2732
+ private get extraValidationsEnabled();
2733
+ private shouldIncludeRelations;
2734
+ private nextOptions;
2735
+ private getCache;
2736
+ private setCache;
2737
+ private printCacheStats;
2738
+ makeFindUniqueSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>;
2739
+ makeFindFirstSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<FindFirstArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2740
+ makeFindManySchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<FindManyArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2741
+ private makeFindSchema;
2742
+ makeExistsSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<ExistsArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2743
+ private makeScalarSchema;
2744
+ private makeEnumSchema;
2745
+ private makeTypeDefSchema;
2746
+ makeWhereSchema(model: string, unique: boolean, withoutRelationFields?: boolean, withAggregations?: boolean, options?: CreateSchemaOptions): ZodType;
2747
+ private makeTypedJsonFilterSchema;
2748
+ private isTypeDefType;
2749
+ private makeEnumFilterSchema;
2750
+ private makeArrayFilterSchema;
2751
+ private internalMakeArrayFilterSchema;
2752
+ private makePrimitiveFilterSchema;
2753
+ private makeJsonValueSchema;
2754
+ private makeJsonFilterSchema;
2755
+ private makeDateTimeFilterSchema;
2756
+ private makeBooleanFilterSchema;
2757
+ private makeBytesFilterSchema;
2758
+ private makeCommonPrimitiveFilterComponents;
2759
+ private makeCommonPrimitiveFilterSchema;
2760
+ private makeNumberFilterSchema;
2761
+ private makeStringFilterSchema;
2762
+ private makeStringModeSchema;
2763
+ private makeSelectSchema;
2764
+ private makeCountSelectionSchema;
2765
+ private makeRelationSelectIncludeSchema;
2766
+ private makeOmitSchema;
2767
+ private makeIncludeSchema;
2768
+ private makeOrderBySchema;
2769
+ private makeDistinctSchema;
2770
+ private makeCursorSchema;
2771
+ makeCreateSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<CreateArgs<Schema, Model, Options, ExtQueryArgs>>;
2772
+ makeCreateManySchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<CreateManyArgs<Schema, Model, Options, ExtQueryArgs>>;
2773
+ makeCreateManyAndReturnSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>;
2774
+ private makeCreateDataSchema;
2775
+ private makeRelationManipulationSchema;
2776
+ private makeSetDataSchema;
2777
+ private makeConnectDataSchema;
2778
+ private makeDisconnectDataSchema;
2779
+ private makeDeleteRelationDataSchema;
2780
+ private makeConnectOrCreateDataSchema;
2781
+ private makeCreateManyPayloadSchema;
2782
+ makeUpdateSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<UpdateArgs<Schema, Model, Options, ExtQueryArgs>>;
2783
+ makeUpdateManySchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<UpdateManyArgs<Schema, Model, Options, ExtQueryArgs>>;
2784
+ makeUpdateManyAndReturnSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>;
2785
+ makeUpsertSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<UpsertArgs<Schema, Model, Options, ExtQueryArgs>>;
2786
+ private makeUpdateDataSchema;
2787
+ makeDeleteSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<DeleteArgs<Schema, Model, Options, ExtQueryArgs>>;
2788
+ makeDeleteManySchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<DeleteManyArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2789
+ makeCountSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<CountArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2790
+ private makeCountAggregateInputSchema;
2791
+ makeAggregateSchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<AggregateArgs<Schema, Model, Options, ExtQueryArgs> | undefined>;
2792
+ private makeSumAvgInputSchema;
2793
+ private makeMinMaxInputSchema;
2794
+ makeGroupBySchema<Model extends GetModels<Schema>>(model: Model, options?: CreateSchemaOptions): ZodType<GroupByArgs<Schema, Model, Options, ExtQueryArgs>>;
2795
+ private onlyAggregationFields;
2796
+ private makeHavingSchema;
2797
+ makeProcedureParamSchema(param: {
2798
+ type: string;
2799
+ array?: boolean;
2800
+ optional?: boolean;
2801
+ }, _options?: CreateSchemaOptions): ZodType;
2802
+ private mergePluginArgsSchema;
2803
+ private getPluginExtQueryArgsSchema;
2804
+ private makeSkipSchema;
2805
+ private makeTakeSchema;
2806
+ private refineForSelectIncludeMutuallyExclusive;
2807
+ private refineForSelectOmitMutuallyExclusive;
2808
+ private refineForSelectHasTruthyField;
2809
+ private nullableIf;
2810
+ private orArray;
2811
+ private isNumericField;
2812
+ private get providerSupportsCaseSensitivity();
2813
+ /**
2814
+ * Gets the effective set of allowed FilterKind values for a specific model and field.
2815
+ * Respects the precedence: model[field] > model.$all > $all[field] > $all.$all.
2816
+ */
2817
+ private getEffectiveFilterKinds;
2818
+ /**
2819
+ * Computes the effective set of filter kinds based on inclusion and exclusion lists.
2820
+ */
2821
+ private computeFilterKinds;
2822
+ /**
2823
+ * Filters operators based on allowed filter kinds.
2824
+ */
2825
+ private trimFilterOperators;
2826
+ private createUnionFilterSchema;
2827
+ /**
2828
+ * Checks if a model is included in the slicing configuration.
2829
+ * Returns true if the model is allowed, false if it's excluded.
2830
+ */
2831
+ private isModelAllowed;
2832
+ }
2833
+
2790
2834
  /**
2791
2835
  * ZenStack ORM client.
2792
2836
  */
@@ -2958,7 +3002,13 @@ declare function extractModelName(node: OperationNode): string | undefined;
2958
3002
  * Extracts field name from an OperationNode.
2959
3003
  */
2960
3004
  declare function extractFieldName(node: OperationNode): string | undefined;
3005
+ declare const TEMP_ALIAS_PREFIX = "$$_";
3006
+ /**
3007
+ * Create an alias name for a temporary table or column name.
3008
+ */
3009
+ declare function tmpAlias(name: string): string;
2961
3010
 
3011
+ declare const queryUtils_TEMP_ALIAS_PREFIX: typeof TEMP_ALIAS_PREFIX;
2962
3012
  declare const queryUtils_aggregate: typeof aggregate;
2963
3013
  declare const queryUtils_buildJoinPairs: typeof buildJoinPairs;
2964
3014
  declare const queryUtils_ensureArray: typeof ensureArray;
@@ -2992,8 +3042,9 @@ declare const queryUtils_requireIdFields: typeof requireIdFields;
2992
3042
  declare const queryUtils_requireModel: typeof requireModel;
2993
3043
  declare const queryUtils_requireTypeDef: typeof requireTypeDef;
2994
3044
  declare const queryUtils_stripAlias: typeof stripAlias;
3045
+ declare const queryUtils_tmpAlias: typeof tmpAlias;
2995
3046
  declare namespace queryUtils {
2996
- export { queryUtils_aggregate as aggregate, queryUtils_buildJoinPairs as buildJoinPairs, queryUtils_ensureArray as ensureArray, queryUtils_extractFieldName as extractFieldName, queryUtils_extractIdFields as extractIdFields, queryUtils_extractModelName as extractModelName, queryUtils_fieldHasDefaultValue as fieldHasDefaultValue, queryUtils_flattenCompoundUniqueFilters as flattenCompoundUniqueFilters, queryUtils_getDelegateDescendantModels as getDelegateDescendantModels, queryUtils_getDiscriminatorField as getDiscriminatorField, queryUtils_getEnum as getEnum, queryUtils_getField as getField, queryUtils_getIdFields as getIdFields, queryUtils_getIdValues as getIdValues, queryUtils_getManyToManyRelation as getManyToManyRelation, queryUtils_getModel as getModel, queryUtils_getModelFields as getModelFields, queryUtils_getRelationForeignKeyFieldPairs as getRelationForeignKeyFieldPairs, queryUtils_getTypeDef as getTypeDef, queryUtils_getUniqueFields as getUniqueFields, queryUtils_hasModel as hasModel, queryUtils_isEnum as isEnum, queryUtils_isForeignKeyField as isForeignKeyField, queryUtils_isInheritedField as isInheritedField, queryUtils_isRelationField as isRelationField, queryUtils_isScalarField as isScalarField, queryUtils_isTypeDef as isTypeDef, queryUtils_makeDefaultOrderBy as makeDefaultOrderBy, queryUtils_requireField as requireField, queryUtils_requireIdFields as requireIdFields, queryUtils_requireModel as requireModel, queryUtils_requireTypeDef as requireTypeDef, queryUtils_stripAlias as stripAlias };
3047
+ export { queryUtils_TEMP_ALIAS_PREFIX as TEMP_ALIAS_PREFIX, queryUtils_aggregate as aggregate, queryUtils_buildJoinPairs as buildJoinPairs, queryUtils_ensureArray as ensureArray, queryUtils_extractFieldName as extractFieldName, queryUtils_extractIdFields as extractIdFields, queryUtils_extractModelName as extractModelName, queryUtils_fieldHasDefaultValue as fieldHasDefaultValue, queryUtils_flattenCompoundUniqueFilters as flattenCompoundUniqueFilters, queryUtils_getDelegateDescendantModels as getDelegateDescendantModels, queryUtils_getDiscriminatorField as getDiscriminatorField, queryUtils_getEnum as getEnum, queryUtils_getField as getField, queryUtils_getIdFields as getIdFields, queryUtils_getIdValues as getIdValues, queryUtils_getManyToManyRelation as getManyToManyRelation, queryUtils_getModel as getModel, queryUtils_getModelFields as getModelFields, queryUtils_getRelationForeignKeyFieldPairs as getRelationForeignKeyFieldPairs, queryUtils_getTypeDef as getTypeDef, queryUtils_getUniqueFields as getUniqueFields, queryUtils_hasModel as hasModel, queryUtils_isEnum as isEnum, queryUtils_isForeignKeyField as isForeignKeyField, queryUtils_isInheritedField as isInheritedField, queryUtils_isRelationField as isRelationField, queryUtils_isScalarField as isScalarField, queryUtils_isTypeDef as isTypeDef, queryUtils_makeDefaultOrderBy as makeDefaultOrderBy, queryUtils_requireField as requireField, queryUtils_requireIdFields as requireIdFields, queryUtils_requireModel as requireModel, queryUtils_requireTypeDef as requireTypeDef, queryUtils_stripAlias as stripAlias, queryUtils_tmpAlias as tmpAlias };
2997
3048
  }
2998
3049
 
2999
3050
  type VisitResult = void | {
@@ -3031,4 +3082,4 @@ declare namespace schemaUtils {
3031
3082
  export { schemaUtils_ExpressionVisitor as ExpressionVisitor, schemaUtils_MatchingExpressionVisitor as MatchingExpressionVisitor, type schemaUtils_VisitResult as VisitResult };
3032
3083
  }
3033
3084
 
3034
- export { type AfterEntityMutationCallback, type AggregateArgs, type AggregateResult, AllCrudOperations, type AllModelOperations, AllReadOperations, AnyNull, AnyNullClass, type AnyPlugin, type AuthType, BaseCrudDialect, type BatchResult, type BeforeEntityMutationCallback, type BooleanFilter, type BytesFilter, CRUD, CRUD_EXT, type ClientConstructor, type ClientContract, type ClientOptions, type ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, type CountArgs, type CountResult, type CreateArgs, type CreateInput, type CreateManyAndReturnArgs, type CreateManyArgs, type CreateManyInput, type DateTimeFilter, DbNull, DbNullClass, type DefaultModelResult, type DeleteArgs, type DeleteManyArgs, type EntityMutationHooksDef, type ExistsArgs, type ExtClientMembersBase, type ExtQueryArgsBase, type FilterKind, type FindArgs, type FindFirstArgs, type FindManyArgs, type FindUniqueArgs, type GetAllIncludedOperations, type GetIncludedOperations, type GetProcedure, type GetProcedureNames, type GetProcedureParams, type GetQueryOptions, type GetSlicedFilterKindsForField, type GetSlicedModels, type GetSlicedOperations, type GetSlicedProcedures, type GroupByArgs, type GroupByResult, type HasComputedFields, type HasProcedures, type IncludeInput, InputValidator, type JsonArray, type JsonFilter, JsonNull, JsonNullClass, type JsonNullValues, type JsonObject, type JsonValue, kyselyUtils as KyselyUtils, type ModelOperations, type ModelResult, type ModelSlicingOptions, type NullsOrder, type NumberFilter, ORMError, ORMErrorReason, type OmitConfig, type OmitInput, type OnKyselyQueryArgs, type OnKyselyQueryCallback, type OnProcedureHookContext, type OperationsIneligibleForDelegateModels, type OrderBy, type PluginAfterEntityMutationArgs, type PluginBeforeEntityMutationArgs, type ProcedureEnvelope, type ProcedureFunc, type ProcedureHandlerFunc, type ProcedureOperations, type ProceduresOptions, type ProceedKyselyQueryFunction, type QueryOptions, queryUtils as QueryUtils, RejectedByPolicyReason, type RuntimePlugin, schemaUtils as SchemaUtils, type SelectIncludeOmit, type SelectInput, type SelectSubset, type SimplifiedPlainResult, type SimplifiedResult, type SlicingOptions, type SortOrder, type StringFilter, type Subset, type ToKysely, type TransactionClientContract, TransactionIsolationLevel, type TypeDefResult, type TypedJsonFilter, type UpdateArgs, type UpdateInput, type UpdateManyAndReturnArgs, type UpdateManyArgs, type UpsertArgs, type WhereInput, type WhereUniqueInput, type ZModelFunction, type ZModelFunctionContext, ZenStackClient, type ZenStackPromise, definePlugin, getCrudDialect };
3085
+ export { type AfterEntityMutationCallback, type AggregateArgs, type AggregateResult, AllCrudOperations, type AllModelOperations, AllReadOperations, AnyNull, AnyNullClass, type AnyPlugin, type AuthType, BaseCrudDialect, type BatchResult, type BeforeEntityMutationCallback, type BooleanFilter, type BytesFilter, CRUD, CRUD_EXT, type ClientConstructor, type ClientContract, type ClientOptions, type ComputedFieldsOptions, CoreCreateOperations, CoreCrudOperations, CoreDeleteOperations, CoreReadOperations, CoreUpdateOperations, CoreWriteOperations, type CountArgs, type CountResult, type CreateArgs, type CreateInput, type CreateManyAndReturnArgs, type CreateManyArgs, type CreateManyInput, type DateTimeFilter, DbNull, DbNullClass, type DefaultModelResult, type DeleteArgs, type DeleteManyArgs, type EntityMutationHooksDef, type ExistsArgs, type ExtClientMembersBase, type ExtQueryArgsBase, type FilterKind, type FindArgs, type FindFirstArgs, type FindManyArgs, type FindUniqueArgs, type GetAllIncludedOperations, type GetIncludedOperations, type GetProcedure, type GetProcedureNames, type GetProcedureParams, type GetQueryOptions, type GetSlicedFilterKindsForField, type GetSlicedModels, type GetSlicedOperations, type GetSlicedProcedures, type GroupByArgs, type GroupByResult, type HasComputedFields, type HasProcedures, type IncludeInput, InputValidator, type JsonArray, type JsonFilter, JsonNull, JsonNullClass, type JsonNullValues, type JsonObject, type JsonValue, kyselyUtils as KyselyUtils, type ModelOperations, type ModelResult, type ModelSlicingOptions, type NullsOrder, type NumberFilter, ORMError, ORMErrorReason, type OmitConfig, type OmitInput, type OnKyselyQueryArgs, type OnKyselyQueryCallback, type OnProcedureHookContext, type OperationsIneligibleForDelegateModels, type OrderBy, type PluginAfterEntityMutationArgs, type PluginBeforeEntityMutationArgs, type ProcedureEnvelope, type ProcedureFunc, type ProcedureHandlerFunc, type ProcedureOperations, type ProceduresOptions, type ProceedKyselyQueryFunction, type QueryOptions, queryUtils as QueryUtils, RejectedByPolicyReason, type RuntimePlugin, schemaUtils as SchemaUtils, type SelectIncludeOmit, type SelectInput, type SelectSubset, type SimplifiedPlainResult, type SimplifiedResult, type SlicingOptions, type SortOrder, type StringFilter, type Subset, type ToKysely, type TransactionClientContract, TransactionIsolationLevel, type TypeDefResult, type TypedJsonFilter, type UpdateArgs, type UpdateInput, type UpdateManyAndReturnArgs, type UpdateManyArgs, type UpsertArgs, type WhereInput, type WhereUniqueInput, type ZModelFunction, type ZModelFunctionContext, ZenStackClient, type ZenStackPromise, createQuerySchemaFactory, definePlugin, getCrudDialect };