@zenstackhq/orm 3.5.0-beta.3 → 3.5.0-beta.5
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/README.md +34 -0
- package/dist/index.cjs +806 -327
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +253 -87
- package/dist/index.d.ts +253 -87
- package/dist/index.js +812 -333
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _zenstackhq_schema from '@zenstackhq/schema';
|
|
2
|
-
import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, GetModel, ProcedureDef, BuiltinType, FieldDef, ModelDef, DataSourceProviderType,
|
|
2
|
+
import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, NonRelationFields, GetModel, ProcedureDef, BuiltinType, FieldDef, ModelDef, DataSourceProviderType, IsDelegateModel, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, GetTypeDefFieldType, TypeDefFieldIsArray, UpdatedAtInfo, FieldIsDelegateDiscriminator, FieldType, RelationInfo, 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
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, AliasableExpression, ExpressionWrapper } from 'kysely';
|
|
5
5
|
import Decimal from 'decimal.js';
|
|
@@ -258,10 +258,53 @@ type ExtQueryArgsBase = {
|
|
|
258
258
|
* Member names should start with '$' to avoid model name conflicts.
|
|
259
259
|
*/
|
|
260
260
|
type ExtClientMembersBase = Record<string, unknown>;
|
|
261
|
+
/**
|
|
262
|
+
* Base shape of plugin-extended result fields.
|
|
263
|
+
* Keyed by model name, each value maps field names to their definitions.
|
|
264
|
+
* `needs` keys are constrained to non-relation fields of the corresponding model.
|
|
265
|
+
*/
|
|
266
|
+
type ExtResultBase<Schema extends SchemaDef = SchemaDef> = {
|
|
267
|
+
[M in GetModels<Schema> as Uncapitalize<M>]?: Record<string, {
|
|
268
|
+
needs: Partial<Record<NonRelationFields<Schema, M>, true>>;
|
|
269
|
+
compute: (...args: any[]) => any;
|
|
270
|
+
}>;
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Mapped type that provides per-field contextual typing for `compute` callbacks
|
|
274
|
+
* based on the `needs` declaration. Uses a separate type parameter `R_` that captures
|
|
275
|
+
* the needs shape (model → field → { neededField: true }), then links each field's
|
|
276
|
+
* `compute` parameter to exactly the keys declared in its `needs`.
|
|
277
|
+
*/
|
|
278
|
+
type ExtResultInferenceArgs<Schema extends SchemaDef, R_> = {
|
|
279
|
+
[K in keyof R_ & string]: {
|
|
280
|
+
[P in keyof R_[K]]?: {
|
|
281
|
+
needs?: {
|
|
282
|
+
[F in keyof R_[K][P]]: F extends NonRelationFields<Schema, ModelNameFromKey<Schema, K>> ? true : never;
|
|
283
|
+
} & Partial<Record<NonRelationFields<Schema, ModelNameFromKey<Schema, K>>, true>>;
|
|
284
|
+
compute: (data: ExtResultComputeData<Schema, ModelNameFromKey<Schema, K>, R_[K][P]>) => unknown;
|
|
285
|
+
};
|
|
286
|
+
};
|
|
287
|
+
};
|
|
288
|
+
/**
|
|
289
|
+
* Reverse-maps an uncapitalized key back to the original model name in the schema.
|
|
290
|
+
* E.g., for a schema with model `myModel`, the key `myModel` maps back to `myModel`
|
|
291
|
+
* (not `MyModel` as `Capitalize` would produce).
|
|
292
|
+
*/
|
|
293
|
+
type ModelNameFromKey<Schema extends SchemaDef, K extends string> = {
|
|
294
|
+
[M in GetModels<Schema>]: Uncapitalize<M> extends K ? M : never;
|
|
295
|
+
}[GetModels<Schema>];
|
|
296
|
+
/**
|
|
297
|
+
* Maps the needs shape `S` to an object with actual schema field types.
|
|
298
|
+
* For each key in `S` that is a valid non-relation field of model `M`,
|
|
299
|
+
* resolves the TypeScript type from the schema field definition.
|
|
300
|
+
*/
|
|
301
|
+
type ExtResultComputeData<Schema extends SchemaDef, M extends GetModels<Schema>, S> = {
|
|
302
|
+
[F in keyof S & GetModelFields<Schema, M>]: MapModelFieldType<Schema, M, F>;
|
|
303
|
+
};
|
|
261
304
|
/**
|
|
262
305
|
* ZenStack runtime plugin.
|
|
263
306
|
*/
|
|
264
|
-
interface RuntimePlugin<Schema extends SchemaDef, ExtQueryArgs extends ExtQueryArgsBase, ExtClientMembers extends Record<string, unknown>> {
|
|
307
|
+
interface RuntimePlugin<Schema extends SchemaDef, ExtQueryArgs extends ExtQueryArgsBase, ExtClientMembers extends Record<string, unknown>, ExtResult extends ExtResultBase<Schema>> {
|
|
265
308
|
/**
|
|
266
309
|
* Plugin ID.
|
|
267
310
|
*/
|
|
@@ -305,12 +348,57 @@ interface RuntimePlugin<Schema extends SchemaDef, ExtQueryArgs extends ExtQueryA
|
|
|
305
348
|
* Extended client members (methods and properties).
|
|
306
349
|
*/
|
|
307
350
|
client?: ExtClientMembers;
|
|
351
|
+
/**
|
|
352
|
+
* Extended result fields on query results.
|
|
353
|
+
* Keyed by model name, each value defines computed fields with `needs` and `compute`.
|
|
354
|
+
*/
|
|
355
|
+
result?: ExtResult;
|
|
308
356
|
}
|
|
309
|
-
type AnyPlugin = RuntimePlugin<any, any, any>;
|
|
357
|
+
type AnyPlugin = RuntimePlugin<any, any, any, any>;
|
|
358
|
+
/**
|
|
359
|
+
* Defines a ZenStack runtime plugin based on type of the given schema.
|
|
360
|
+
*
|
|
361
|
+
* @see {@link https://zenstack.dev/docs/orm/plugins/|Plugin Documentation}
|
|
362
|
+
*
|
|
363
|
+
* @example
|
|
364
|
+
* ```typescript
|
|
365
|
+
* definePlugin(schema, {
|
|
366
|
+
* id: 'my-plugin',
|
|
367
|
+
* result: {
|
|
368
|
+
* user: {
|
|
369
|
+
* fullName: {
|
|
370
|
+
* needs: { firstName: true, lastName: true },
|
|
371
|
+
* compute: (user) => `${user.firstName} ${user.lastName}`,
|
|
372
|
+
* },
|
|
373
|
+
* },
|
|
374
|
+
* },
|
|
375
|
+
* });
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
declare function definePlugin<Schema extends SchemaDef, const ExtQueryArgs extends ExtQueryArgsBase = {}, const ExtClientMembers extends Record<string, unknown> = {}, const ExtResult extends ExtResultBase<Schema> = {}, R_ = {}>(schema: Schema, plugin: RuntimePlugin<Schema, ExtQueryArgs, ExtClientMembers, ExtResult> & {
|
|
379
|
+
result?: ExtResultInferenceArgs<Schema, R_>;
|
|
380
|
+
}): RuntimePlugin<Schema, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
310
381
|
/**
|
|
311
382
|
* Defines a ZenStack runtime plugin.
|
|
312
|
-
|
|
313
|
-
|
|
383
|
+
*
|
|
384
|
+
* @see {@link https://zenstack.dev/docs/orm/plugins/|Plugin Documentation}
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* ```typescript
|
|
388
|
+
* definePlugin(schema, {
|
|
389
|
+
* id: 'my-plugin',
|
|
390
|
+
* result: {
|
|
391
|
+
* user: {
|
|
392
|
+
* fullName: {
|
|
393
|
+
* needs: { firstName: true, lastName: true },
|
|
394
|
+
* compute: (user) => `${user.firstName} ${user.lastName}`,
|
|
395
|
+
* },
|
|
396
|
+
* },
|
|
397
|
+
* },
|
|
398
|
+
* });
|
|
399
|
+
* ```
|
|
400
|
+
* */
|
|
401
|
+
declare function definePlugin<Schema extends SchemaDef, const ExtQueryArgs extends ExtQueryArgsBase = {}, const ExtClientMembers extends Record<string, unknown> = {}, const ExtResult extends ExtResultBase<Schema> = {}>(plugin: RuntimePlugin<Schema, ExtQueryArgs, ExtClientMembers, ExtResult>): RuntimePlugin<Schema, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
314
402
|
type OnProcedureCallback<Schema extends SchemaDef> = (ctx: OnProcedureHookContext<Schema>) => Promise<unknown>;
|
|
315
403
|
type OnProcedureHookContext<Schema extends SchemaDef> = {
|
|
316
404
|
/**
|
|
@@ -648,12 +736,12 @@ type ClientOptions<Schema extends SchemaDef> = QueryOptions<Schema> & {
|
|
|
648
736
|
* Config for omitting fields in ORM query results.
|
|
649
737
|
*/
|
|
650
738
|
type OmitConfig<Schema extends SchemaDef> = {
|
|
651
|
-
[Model in GetModels<Schema>]?: {
|
|
739
|
+
[Model in GetModels<Schema> as Uncapitalize<Model>]?: {
|
|
652
740
|
[Field in GetModelFields<Schema, Model> as Field extends ScalarFields<Schema, Model> ? Field : never]?: boolean;
|
|
653
741
|
};
|
|
654
742
|
};
|
|
655
743
|
type ComputedFieldsOptions<Schema extends SchemaDef> = {
|
|
656
|
-
[Model in GetModels<Schema> as 'computedFields' extends keyof GetModel<Schema, Model> ? Model : never]: {
|
|
744
|
+
[Model in GetModels<Schema> as 'computedFields' extends keyof GetModel<Schema, Model> ? Uncapitalize<Model> : never]: {
|
|
657
745
|
[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;
|
|
658
746
|
};
|
|
659
747
|
};
|
|
@@ -932,6 +1020,17 @@ declare const AllReadOperations: readonly ["findMany", "findUnique", "findFirst"
|
|
|
932
1020
|
*/
|
|
933
1021
|
type AllReadOperations = (typeof AllReadOperations)[number];
|
|
934
1022
|
|
|
1023
|
+
/**
|
|
1024
|
+
* Checks if a model has any required Unsupported fields (non-optional, no default).
|
|
1025
|
+
* Uses raw field access since `GetModelFields` excludes Unsupported fields.
|
|
1026
|
+
*/
|
|
1027
|
+
type ModelHasRequiredUnsupportedField<Schema extends SchemaDef, Model extends GetModels<Schema>> = true extends {
|
|
1028
|
+
[Key in Extract<keyof GetModel<Schema, Model>['fields'], string>]: GetModel<Schema, Model>['fields'][Key] extends infer F extends FieldDef ? F['type'] extends 'Unsupported' ? F['optional'] extends true ? false : 'default' extends keyof F ? false : true : false : false;
|
|
1029
|
+
}[Extract<keyof GetModel<Schema, Model>['fields'], string>] ? true : false;
|
|
1030
|
+
/**
|
|
1031
|
+
* Checks if a model allows create operations (not a delegate model and has no required Unsupported fields).
|
|
1032
|
+
*/
|
|
1033
|
+
type ModelAllowsCreate<Schema extends SchemaDef, Model extends GetModels<Schema>> = IsDelegateModel<Schema, Model> extends true ? false : ModelHasRequiredUnsupportedField<Schema, Model> extends true ? false : true;
|
|
935
1034
|
type IsNever<T> = [T] extends [never] ? true : false;
|
|
936
1035
|
/**
|
|
937
1036
|
* Filters models based on slicing configuration.
|
|
@@ -1005,10 +1104,10 @@ type DefaultModelResult<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
1005
1104
|
}, Optional, Array>;
|
|
1006
1105
|
type ShouldOmitField<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, Field extends GetModelFields<Schema, Model>, Omit> = QueryLevelOmit<Schema, Model, Field, Omit> extends boolean ? QueryLevelOmit<Schema, Model, Field, Omit> : OptionsLevelOmit<Schema, Model, Field, Options> extends boolean ? OptionsLevelOmit<Schema, Model, Field, Options> : SchemaLevelOmit<Schema, Model, Field>;
|
|
1007
1106
|
type QueryLevelOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Omit> = Field extends keyof Omit ? (Omit[Field] extends boolean ? Omit[Field] : undefined) : undefined;
|
|
1008
|
-
type OptionsLevelOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Options extends QueryOptions<Schema>> = Model extends keyof Options['omit'] ? Field extends keyof Options['omit'][Model] ? Options['omit'][Model][Field] extends boolean ? Options['omit'][Model][Field] : undefined : undefined : undefined;
|
|
1107
|
+
type OptionsLevelOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>, Options extends QueryOptions<Schema>> = Uncapitalize<Model> extends keyof Options['omit'] ? Field extends keyof Options['omit'][Uncapitalize<Model>] ? Options['omit'][Uncapitalize<Model>][Field] extends boolean ? Options['omit'][Uncapitalize<Model>][Field] : undefined : undefined : undefined;
|
|
1009
1108
|
type SchemaLevelOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends GetModelFields<Schema, Model>> = GetModelField<Schema, Model, Field>['omit'] extends true ? true : false;
|
|
1010
|
-
type ModelSelectResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Select, Omit, Options extends QueryOptions<Schema
|
|
1011
|
-
[Key in keyof Select as Select[Key] extends false | undefined ? never : Key extends '_count' ? Select[Key] extends SelectCount<Schema, Model, Options> ? Key : never : Key extends keyof Omit ? Omit[Key] extends true ? never : Key : Key]: Key extends '_count' ? SelectCountResult<Schema, Model, Select[Key]> : Key extends NonRelationFields<Schema, Model> ? MapModelFieldType<Schema, Model, Key> : Key extends RelationFields<Schema, Model> ? ModelResult<Schema, RelationFieldType<Schema, Model, Key>, Select[Key], Options, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key
|
|
1109
|
+
type ModelSelectResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Select, Omit, Options extends QueryOptions<Schema>, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1110
|
+
[Key in keyof Select as Select[Key] extends false | undefined ? never : Key extends keyof ExtractExtResult<ExtResult, Model & string> ? never : Key extends '_count' ? Select[Key] extends SelectCount<Schema, Model, Options> ? Key : never : Key extends keyof Omit ? Omit[Key] extends true ? never : Key : Key]: Key extends '_count' ? SelectCountResult<Schema, Model, Select[Key]> : Key extends NonRelationFields<Schema, Model> ? MapModelFieldType<Schema, Model, Key> : Key extends RelationFields<Schema, Model> ? ModelResult<Schema, RelationFieldType<Schema, Model, Key>, Select[Key], Options, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>, ExtResult> : never;
|
|
1012
1111
|
};
|
|
1013
1112
|
type SelectCountResult<Schema extends SchemaDef, Model extends GetModels<Schema>, C> = C extends true ? {
|
|
1014
1113
|
[Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: number;
|
|
@@ -1017,22 +1116,22 @@ type SelectCountResult<Schema extends SchemaDef, Model extends GetModels<Schema>
|
|
|
1017
1116
|
} ? {
|
|
1018
1117
|
[Key in keyof S]: number;
|
|
1019
1118
|
} : never;
|
|
1020
|
-
type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Optional = false, Array = false> = WrapType<Args extends {
|
|
1119
|
+
type ModelResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Optional = false, Array = false, ExtResult extends ExtResultBase<Schema> = {}> = WrapType<(Args extends {
|
|
1021
1120
|
select: infer S extends object;
|
|
1022
1121
|
omit?: infer O extends object;
|
|
1023
|
-
} & Record<string, unknown> ? ModelSelectResult<Schema, Model, S, O, Options> : Args extends {
|
|
1122
|
+
} & Record<string, unknown> ? ModelSelectResult<Schema, Model, S, O, Options, ExtResult> : Args extends {
|
|
1024
1123
|
include: infer I extends object;
|
|
1025
1124
|
omit?: infer O extends object;
|
|
1026
1125
|
} & Record<string, unknown> ? // select all non-omitted scalar fields
|
|
1027
1126
|
DefaultModelResult<Schema, Model, O, Options, false, false> & {
|
|
1028
|
-
[Key in keyof I & RelationFields<Schema, Model> as I[Key] extends false | undefined ? never : Key]: ModelResult<Schema, RelationFieldType<Schema, Model, Key>, I[Key], Options, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key
|
|
1127
|
+
[Key in keyof I & RelationFields<Schema, Model> as I[Key] extends false | undefined ? never : Key]: ModelResult<Schema, RelationFieldType<Schema, Model, Key>, I[Key], Options, ModelFieldIsOptional<Schema, Model, Key>, FieldIsArray<Schema, Model, Key>, ExtResult>;
|
|
1029
1128
|
} & ('_count' extends keyof I ? I['_count'] extends false | undefined ? {} : {
|
|
1030
1129
|
_count: SelectCountResult<Schema, Model, I['_count']>;
|
|
1031
1130
|
} : {}) : Args extends {
|
|
1032
1131
|
omit: infer O;
|
|
1033
|
-
} & Record<string, unknown> ? DefaultModelResult<Schema, Model, O, Options, false, false> : DefaultModelResult<Schema, Model, undefined, Options, false, false>, Optional, Array>;
|
|
1034
|
-
type SimplifiedResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Optional = false, Array = false> = Simplify<ModelResult<Schema, Model, Args, Options, Optional, Array>>;
|
|
1035
|
-
type SimplifiedPlainResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema
|
|
1132
|
+
} & Record<string, unknown> ? DefaultModelResult<Schema, Model, O, Options, false, false> : DefaultModelResult<Schema, Model, undefined, Options, false, false>) & SelectAwareExtResult<ExtResult, Model & string, Args>, Optional, Array>;
|
|
1133
|
+
type SimplifiedResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Optional = false, Array = false, ExtResult extends ExtResultBase<Schema> = {}> = Simplify<ModelResult<Schema, Model, Args, Options, Optional, Array, ExtResult>>;
|
|
1134
|
+
type SimplifiedPlainResult<Schema extends SchemaDef, Model extends GetModels<Schema>, Args = {}, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtResult extends ExtResultBase<Schema> = {}> = Simplify<ModelResult<Schema, Model, Args, Options, false, false, ExtResult>>;
|
|
1036
1135
|
type TypeDefResult<Schema extends SchemaDef, TypeDef extends GetTypeDefs<Schema>, Partial extends boolean = false> = PartialIf<Optional<{
|
|
1037
1136
|
[Key in GetTypeDefFields<Schema, TypeDef>]: MapFieldDefType<Schema, GetTypeDefField<Schema, TypeDef, Key>, Partial>;
|
|
1038
1137
|
}, Partial extends true ? never : keyof {
|
|
@@ -1379,24 +1478,21 @@ type WhereUniqueInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
|
|
|
1379
1478
|
type OmitInput<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
|
|
1380
1479
|
[Key in NonRelationFields<Schema, Model>]?: boolean;
|
|
1381
1480
|
};
|
|
1382
|
-
type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowRelation extends boolean = true> = {
|
|
1481
|
+
type SelectIncludeOmit<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowRelation extends boolean = true, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1383
1482
|
/**
|
|
1384
1483
|
* Explicitly select fields and relations to be returned by the query.
|
|
1385
1484
|
*/
|
|
1386
|
-
select?: SelectInput<Schema, Model, Options, AllowCount, AllowRelation> | null;
|
|
1485
|
+
select?: (SelectInput<Schema, Model, Options, AllowCount, AllowRelation, ExtResult> & ExtResultSelectOmitFields<ExtResult, Model & string>) | null;
|
|
1387
1486
|
/**
|
|
1388
1487
|
* Explicitly omit fields from the query result.
|
|
1389
1488
|
*/
|
|
1390
|
-
omit?: OmitInput<Schema, Model> | null;
|
|
1391
|
-
} &
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
include?: IncludeInput<Schema, Model, Options, AllowCount> | null;
|
|
1396
|
-
} : {});
|
|
1397
|
-
type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
|
|
1489
|
+
omit?: (OmitInput<Schema, Model> & ExtResultSelectOmitFields<ExtResult, Model & string>) | null;
|
|
1490
|
+
} & {
|
|
1491
|
+
[K in AllowRelation extends true ? RelationFields<Schema, Model> extends never ? never : 'include' : never]?: IncludeInput<Schema, Model, Options, AllowCount, ExtResult> | null;
|
|
1492
|
+
};
|
|
1493
|
+
type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1398
1494
|
[Key in NonRelationFields<Schema, Model>]?: boolean;
|
|
1399
|
-
} & (AllowRelation extends true ? IncludeInput<Schema, Model, Options, AllowCount> : {});
|
|
1495
|
+
} & (AllowRelation extends true ? IncludeInput<Schema, Model, Options, AllowCount, ExtResult> : {});
|
|
1400
1496
|
type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = boolean | {
|
|
1401
1497
|
/**
|
|
1402
1498
|
* Selects specific relations to count.
|
|
@@ -1407,8 +1503,8 @@ type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>, Opti
|
|
|
1407
1503
|
};
|
|
1408
1504
|
};
|
|
1409
1505
|
};
|
|
1410
|
-
type IncludeInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true> = {
|
|
1411
|
-
[Key in RelationFields<Schema, Model> as RelationFieldType<Schema, Model, Key> extends GetSlicedModels<Schema, Options> ? Key : never]?: boolean | FindArgs<Schema, RelationFieldType<Schema, Model, Key>, Options, FieldIsArray<Schema, Model, Key>, FieldIsArray<Schema, Model, Key> extends true ? true : ModelFieldIsOptional<Schema, Model, Key> extends true ? true : false>;
|
|
1506
|
+
type IncludeInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1507
|
+
[Key in RelationFields<Schema, Model> as RelationFieldType<Schema, Model, Key> extends GetSlicedModels<Schema, Options> ? Key : never]?: boolean | FindArgs<Schema, RelationFieldType<Schema, Model, Key>, Options, FieldIsArray<Schema, Model, Key>, FieldIsArray<Schema, Model, Key> extends true ? true : ModelFieldIsOptional<Schema, Model, Key> extends true ? true : false, ExtResult>;
|
|
1412
1508
|
} & (AllowCount extends true ? HasToManyRelations<Schema, Model> extends true ? {
|
|
1413
1509
|
_count?: SelectCount<Schema, Model, Options>;
|
|
1414
1510
|
} : {} : {});
|
|
@@ -1473,23 +1569,23 @@ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>,
|
|
|
1473
1569
|
*/
|
|
1474
1570
|
cursor?: WhereUniqueInput<Schema, Model, Options>;
|
|
1475
1571
|
};
|
|
1476
|
-
type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, Collection extends boolean, AllowFilter extends boolean = true> = (Collection extends true ? SortAndTakeArgs<Schema, Model, Options> & (ProviderSupportsDistinct<Schema> extends true ? {
|
|
1572
|
+
type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, Collection extends boolean, AllowFilter extends boolean = true, ExtResult extends ExtResultBase<Schema> = {}> = (Collection extends true ? SortAndTakeArgs<Schema, Model, Options> & (ProviderSupportsDistinct<Schema> extends true ? {
|
|
1477
1573
|
/**
|
|
1478
1574
|
* Distinct fields. Only supported by providers that natively support SQL "DISTINCT ON".
|
|
1479
1575
|
*/
|
|
1480
1576
|
distinct?: OrArray<NonRelationFields<Schema, Model>>;
|
|
1481
|
-
} : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model, Options> : {}) & SelectIncludeOmit<Schema, Model, true, Options>;
|
|
1482
|
-
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'>;
|
|
1483
|
-
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'>;
|
|
1577
|
+
} : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model, Options> : {}) & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult>;
|
|
1578
|
+
type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = FindArgs<Schema, Model, Options, true, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'findMany'>;
|
|
1579
|
+
type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = FindArgs<Schema, Model, Options, true, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'findFirst'>;
|
|
1484
1580
|
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'>;
|
|
1485
|
-
type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1581
|
+
type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1486
1582
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1487
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>;
|
|
1488
|
-
type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1583
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>;
|
|
1584
|
+
type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1489
1585
|
data: CreateInput<Schema, Model, Options>;
|
|
1490
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>;
|
|
1586
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>;
|
|
1491
1587
|
type CreateManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, _Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = CreateManyInput<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>;
|
|
1492
|
-
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'>;
|
|
1588
|
+
type CreateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = CreateManyInput<Schema, Model> & SelectIncludeOmit<Schema, Model, false, Options, false, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>;
|
|
1493
1589
|
type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
|
|
1494
1590
|
type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
|
|
1495
1591
|
[Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
|
|
@@ -1502,6 +1598,7 @@ type IsJsonField<Schema extends SchemaDef, Model extends GetModels<Schema>, Fiel
|
|
|
1502
1598
|
type CreateFKPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
|
|
1503
1599
|
[Key in ForeignKeyFields<Schema, Model>]: MapModelFieldType<Schema, Model, Key>;
|
|
1504
1600
|
}>;
|
|
1601
|
+
type RelationModelAllowsCreate<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = GetModelFieldType<Schema, Model, Field> extends GetModels<Schema> ? ModelAllowsCreate<Schema, GetModelFieldType<Schema, Model, Field>> : false;
|
|
1505
1602
|
type CreateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
|
|
1506
1603
|
/**
|
|
1507
1604
|
* Connects or create a related record.
|
|
@@ -1519,7 +1616,7 @@ type CreateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModel
|
|
|
1519
1616
|
* Connects an existing record.
|
|
1520
1617
|
*/
|
|
1521
1618
|
connect?: ConnectInput<Schema, Model, Field, Options>;
|
|
1522
|
-
}, (FieldIsArray<Schema, Model, Field> extends true ? never : 'createMany') | (
|
|
1619
|
+
}, (FieldIsArray<Schema, Model, Field> extends true ? never : 'createMany') | (RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate')>;
|
|
1523
1620
|
type CreateRelationPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = OptionalWrap<Schema, Model, {
|
|
1524
1621
|
[Key in RelationFields<Schema, Model> as RelationFieldType<Schema, Model, Key> extends GetSlicedModels<Schema, Options> ? Key : never]: CreateRelationFieldPayload<Schema, Model, Key, Options>;
|
|
1525
1622
|
}>;
|
|
@@ -1551,7 +1648,7 @@ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
|
|
|
1551
1648
|
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>>;
|
|
1552
1649
|
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>>;
|
|
1553
1650
|
type NestedCreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>> = CreateManyInput<Schema, RelationFieldType<Schema, Model, Field>, OppositeRelationAndFK<Schema, Model, Field>>;
|
|
1554
|
-
type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1651
|
+
type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1555
1652
|
/**
|
|
1556
1653
|
* The data to update the record with.
|
|
1557
1654
|
*/
|
|
@@ -1560,9 +1657,9 @@ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
|
|
|
1560
1657
|
* The unique filter to find the record to update.
|
|
1561
1658
|
*/
|
|
1562
1659
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1563
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
|
|
1660
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
|
|
1564
1661
|
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'>;
|
|
1565
|
-
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'>;
|
|
1662
|
+
type UpdateManyAndReturnArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = UpdateManyPayload<Schema, Model, Options> & SelectIncludeOmit<Schema, Model, false, Options, false, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>;
|
|
1566
1663
|
type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
|
|
1567
1664
|
/**
|
|
1568
1665
|
* The data to update the records with.
|
|
@@ -1577,7 +1674,7 @@ type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>
|
|
|
1577
1674
|
*/
|
|
1578
1675
|
limit?: number;
|
|
1579
1676
|
};
|
|
1580
|
-
type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1677
|
+
type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1581
1678
|
/**
|
|
1582
1679
|
* The data to create the record if it doesn't exist.
|
|
1583
1680
|
*/
|
|
@@ -1590,7 +1687,7 @@ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
|
|
|
1590
1687
|
* The unique filter to find the record to update.
|
|
1591
1688
|
*/
|
|
1592
1689
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1593
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>;
|
|
1690
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>;
|
|
1594
1691
|
type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
|
|
1595
1692
|
[Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
|
|
1596
1693
|
}, Without>;
|
|
@@ -1675,7 +1772,7 @@ type ToManyRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels
|
|
|
1675
1772
|
* Sets the related records to the specified ones.
|
|
1676
1773
|
*/
|
|
1677
1774
|
set?: SetRelationInput<Schema, Model, Field, Options>;
|
|
1678
|
-
},
|
|
1775
|
+
}, RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate' | 'upsert'>;
|
|
1679
1776
|
type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
|
|
1680
1777
|
/**
|
|
1681
1778
|
* Creates a related record.
|
|
@@ -1706,13 +1803,13 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
|
|
|
1706
1803
|
* Deletes the related record.
|
|
1707
1804
|
*/
|
|
1708
1805
|
delete?: NestedDeleteInput<Schema, Model, Field, Options>;
|
|
1709
|
-
} : {}),
|
|
1710
|
-
type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1806
|
+
} : {}), RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'connectOrCreate' | 'upsert'>;
|
|
1807
|
+
type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1711
1808
|
/**
|
|
1712
1809
|
* The unique filter to find the record to delete.
|
|
1713
1810
|
*/
|
|
1714
1811
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1715
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>;
|
|
1812
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>;
|
|
1716
1813
|
type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1717
1814
|
/**
|
|
1718
1815
|
* Filter to select records to delete.
|
|
@@ -2023,6 +2120,37 @@ type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['ty
|
|
|
2023
2120
|
* Extracts extended query args for a specific operation.
|
|
2024
2121
|
*/
|
|
2025
2122
|
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'] : {});
|
|
2123
|
+
/**
|
|
2124
|
+
* Extracts extended result field types for a specific model from ExtResult.
|
|
2125
|
+
* Maps `{ needs, compute }` definitions to `{ fieldName: ReturnType<compute> }`.
|
|
2126
|
+
* When ExtResult is `{}`, this resolves to `{}` (no-op for intersection).
|
|
2127
|
+
*/
|
|
2128
|
+
type ExtractExtResult<ExtResult extends ExtResultBase, Model extends string> = Uncapitalize<Model> extends keyof ExtResult ? {
|
|
2129
|
+
[K in keyof ExtResult[Uncapitalize<Model>]]: ExtResult[Uncapitalize<Model>][K] extends {
|
|
2130
|
+
compute: (...args: any[]) => infer R;
|
|
2131
|
+
} ? R : never;
|
|
2132
|
+
} : {};
|
|
2133
|
+
/**
|
|
2134
|
+
* Extracts extended result field names as optional boolean keys for use in select/omit inputs.
|
|
2135
|
+
* When ExtResult is `{}`, this resolves to `{}` (no-op for intersection).
|
|
2136
|
+
*/
|
|
2137
|
+
type ExtResultSelectOmitFields<ExtResult extends ExtResultBase, Model extends string> = keyof ExtResult extends never ? {} : Uncapitalize<Model> extends keyof ExtResult ? {
|
|
2138
|
+
[K in keyof ExtResult[Uncapitalize<Model>]]?: boolean;
|
|
2139
|
+
} : {};
|
|
2140
|
+
type TruthyKeys<S, Keys extends string> = {
|
|
2141
|
+
[K in Keys]: K extends keyof S ? (S[K] extends false | undefined ? never : K) : never;
|
|
2142
|
+
}[Keys];
|
|
2143
|
+
/**
|
|
2144
|
+
* Select/omit-aware version of ExtractExtResult.
|
|
2145
|
+
* - If T has `select`, only includes ext result fields that are explicitly selected.
|
|
2146
|
+
* - If T has `omit`, excludes ext result fields that are explicitly omitted.
|
|
2147
|
+
* - Otherwise, includes all ext result fields.
|
|
2148
|
+
*/
|
|
2149
|
+
type SelectAwareExtResult<ExtResult extends ExtResultBase, Model extends string, T> = keyof ExtResult extends never ? {} : T extends {
|
|
2150
|
+
select: infer S;
|
|
2151
|
+
} ? S extends null | undefined ? ExtractExtResult<ExtResult, Model> : Pick<ExtractExtResult<ExtResult, Model>, TruthyKeys<S, Extract<keyof S & string, keyof ExtractExtResult<ExtResult, Model>>>> : T extends {
|
|
2152
|
+
omit: infer O;
|
|
2153
|
+
} ? O extends null | undefined ? ExtractExtResult<ExtResult, Model> : Omit<ExtractExtResult<ExtResult, Model>, TruthyKeys<O, Extract<keyof O & string, keyof ExtractExtResult<ExtResult, Model>>>> : ExtractExtResult<ExtResult, Model>;
|
|
2026
2154
|
|
|
2027
2155
|
/**
|
|
2028
2156
|
* Zod schema cache statistics.
|
|
@@ -2093,7 +2221,7 @@ declare enum TransactionIsolationLevel {
|
|
|
2093
2221
|
/**
|
|
2094
2222
|
* ZenStack client interface.
|
|
2095
2223
|
*/
|
|
2096
|
-
type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}> = {
|
|
2224
|
+
type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
2097
2225
|
/**
|
|
2098
2226
|
* The schema definition.
|
|
2099
2227
|
*/
|
|
@@ -2141,25 +2269,36 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2141
2269
|
*/
|
|
2142
2270
|
get $auth(): AuthType<Schema> | undefined;
|
|
2143
2271
|
/**
|
|
2144
|
-
*
|
|
2272
|
+
* Returns a new client bound to the specified user identity. The original client remains unchanged.
|
|
2273
|
+
*
|
|
2274
|
+
* @example
|
|
2275
|
+
* ```
|
|
2276
|
+
* const userClient = db.$setAuth({ id: 'user-id' });
|
|
2277
|
+
* ```
|
|
2145
2278
|
*/
|
|
2146
|
-
$setAuth(auth: AuthType<Schema> | undefined): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2279
|
+
$setAuth(auth: AuthType<Schema> | undefined): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2147
2280
|
/**
|
|
2148
|
-
* Returns a new client with new options applied.
|
|
2281
|
+
* Returns a new client with new options applied. The original client remains unchanged.
|
|
2282
|
+
*
|
|
2149
2283
|
* @example
|
|
2150
2284
|
* ```
|
|
2151
2285
|
* const dbNoValidation = db.$setOptions({ ...db.$options, validateInput: false });
|
|
2152
2286
|
* ```
|
|
2153
2287
|
*/
|
|
2154
|
-
$setOptions<NewOptions extends ClientOptions<Schema>>(options: NewOptions): ClientContract<Schema, NewOptions, ExtQueryArgs, ExtClientMembers>;
|
|
2288
|
+
$setOptions<NewOptions extends ClientOptions<Schema>>(options: NewOptions): ClientContract<Schema, NewOptions, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2155
2289
|
/**
|
|
2156
|
-
* Returns a new client enabling/disabling query args validation.
|
|
2290
|
+
* Returns a new client enabling/disabling query args validation. The original client remains unchanged.
|
|
2157
2291
|
*
|
|
2158
2292
|
* @deprecated Use {@link $setOptions} instead.
|
|
2159
2293
|
*/
|
|
2160
|
-
$setInputValidation(enable: boolean): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2294
|
+
$setInputValidation(enable: boolean): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2161
2295
|
/**
|
|
2162
2296
|
* The Kysely query builder instance.
|
|
2297
|
+
*
|
|
2298
|
+
* @example
|
|
2299
|
+
* ```
|
|
2300
|
+
* db.$qb.selectFrom('User').selectAll().where('id', '=', 1).execute();
|
|
2301
|
+
* ```
|
|
2163
2302
|
*/
|
|
2164
2303
|
readonly $qb: ToKysely<Schema>;
|
|
2165
2304
|
/**
|
|
@@ -2168,26 +2307,45 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2168
2307
|
readonly $qbRaw: AnyKysely;
|
|
2169
2308
|
/**
|
|
2170
2309
|
* Starts an interactive transaction.
|
|
2310
|
+
*
|
|
2311
|
+
* @example
|
|
2312
|
+
* ```
|
|
2313
|
+
* await db.$transaction(async (tx) => {
|
|
2314
|
+
* const user = await tx.user.update({ where: { id: 1 }, data: { name: 'Alice' } });
|
|
2315
|
+
* const post = await tx.post.create({ data: { title: 'Hello World', authorId: user.id } });
|
|
2316
|
+
* return { user, posts: [post] };
|
|
2317
|
+
* ```
|
|
2171
2318
|
*/
|
|
2172
|
-
$transaction<T>(callback: (tx: TransactionClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>) => Promise<T>, options?: {
|
|
2319
|
+
$transaction<T>(callback: (tx: TransactionClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>) => Promise<T>, options?: {
|
|
2173
2320
|
isolationLevel?: TransactionIsolationLevel;
|
|
2174
2321
|
}): Promise<T>;
|
|
2175
2322
|
/**
|
|
2176
|
-
* Starts a sequential transaction.
|
|
2323
|
+
* Starts a sequential transaction that runs the provided operations in order.
|
|
2324
|
+
*
|
|
2325
|
+
* @example
|
|
2326
|
+
* ```
|
|
2327
|
+
* await db.$transaction([
|
|
2328
|
+
* db.user.update({ where: { id: 1 }, data: { name: 'Alice' } }),
|
|
2329
|
+
* db.post.create({ data: { title: 'Hello World', authorId: 1 } }),
|
|
2330
|
+
* ]);
|
|
2177
2331
|
*/
|
|
2178
2332
|
$transaction<P extends ZenStackPromise<Schema, any>[]>(arg: [...P], options?: {
|
|
2179
2333
|
isolationLevel?: TransactionIsolationLevel;
|
|
2180
2334
|
}): Promise<UnwrapTuplePromises<P>>;
|
|
2181
2335
|
/**
|
|
2182
|
-
* Returns a new client with the specified plugin installed.
|
|
2336
|
+
* Returns a new client with the specified plugin installed. The original client remains unchanged.
|
|
2337
|
+
*
|
|
2338
|
+
* @see {@link https://zenstack.dev/docs/orm/plugins/|Plugin Documentation}
|
|
2183
2339
|
*/
|
|
2184
|
-
$use<PluginSchema extends SchemaDef = Schema, PluginExtQueryArgs extends ExtQueryArgsBase = {}, PluginExtClientMembers extends ExtClientMembersBase = {}>(plugin: RuntimePlugin<PluginSchema, PluginExtQueryArgs, PluginExtClientMembers
|
|
2340
|
+
$use<PluginSchema extends SchemaDef = Schema, PluginExtQueryArgs extends ExtQueryArgsBase = {}, PluginExtClientMembers extends ExtClientMembersBase = {}, PluginExtResult extends ExtResultBase<PluginSchema> = {}, _R = {}>(plugin: RuntimePlugin<PluginSchema, PluginExtQueryArgs, PluginExtClientMembers, PluginExtResult> & {
|
|
2341
|
+
result?: ExtResultInferenceArgs<Schema, _R>;
|
|
2342
|
+
}): ClientContract<Schema, Options, ExtQueryArgs & PluginExtQueryArgs, ExtClientMembers & PluginExtClientMembers, ExtResult & PluginExtResult>;
|
|
2185
2343
|
/**
|
|
2186
|
-
* Returns a new client with the specified plugin removed.
|
|
2344
|
+
* Returns a new client with the specified plugin removed. The original client remains unchanged.
|
|
2187
2345
|
*/
|
|
2188
|
-
$unuse(pluginId: string): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2346
|
+
$unuse(pluginId: string): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2189
2347
|
/**
|
|
2190
|
-
* Returns a new client with all plugins removed.
|
|
2348
|
+
* Returns a new client with all plugins removed. The original client remains unchanged.
|
|
2191
2349
|
*/
|
|
2192
2350
|
$unuseAll(): ClientContract<Schema, Options>;
|
|
2193
2351
|
/**
|
|
@@ -2212,12 +2370,12 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2212
2370
|
*/
|
|
2213
2371
|
get $diagnostics(): Promise<Diagnostics>;
|
|
2214
2372
|
} & {
|
|
2215
|
-
[Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs>;
|
|
2373
|
+
[Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs, ExtResult>;
|
|
2216
2374
|
} & ProcedureOperations<Schema, Options> & ExtClientMembers;
|
|
2217
2375
|
/**
|
|
2218
2376
|
* The contract for a client in a transaction.
|
|
2219
2377
|
*/
|
|
2220
|
-
type TransactionClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtClientMembers extends ExtClientMembersBase> = Omit<ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>, TransactionUnsupportedMethods>;
|
|
2378
|
+
type TransactionClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtClientMembers extends ExtClientMembersBase, ExtResult extends ExtResultBase<Schema> = {}> = Omit<ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>, TransactionUnsupportedMethods>;
|
|
2221
2379
|
type ProcedureOperations<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>> = Schema['procedures'] extends Record<string, ProcedureDef> ? {
|
|
2222
2380
|
/**
|
|
2223
2381
|
* Custom procedures.
|
|
@@ -2250,8 +2408,8 @@ type CRUD_EXT = CRUD | 'post-update';
|
|
|
2250
2408
|
declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-update"];
|
|
2251
2409
|
type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema>> = Omit<{
|
|
2252
2410
|
[Key in keyof T as Key extends GetSlicedOperations<Schema, Model, Options> ? Key : never]: T[Key];
|
|
2253
|
-
},
|
|
2254
|
-
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' ? {} : {
|
|
2411
|
+
}, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
|
|
2412
|
+
type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult> & (Schema['provider']['type'] extends 'mysql' ? {} : {
|
|
2255
2413
|
/**
|
|
2256
2414
|
* Creates multiple entities and returns them.
|
|
2257
2415
|
* @param args - create args. See {@link createMany} for input. Use
|
|
@@ -2270,7 +2428,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2270
2428
|
* });
|
|
2271
2429
|
* ```
|
|
2272
2430
|
*/
|
|
2273
|
-
createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2431
|
+
createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>[]>;
|
|
2274
2432
|
/**
|
|
2275
2433
|
* Updates multiple entities and returns them.
|
|
2276
2434
|
* @param args - update args. Only scalar fields are allowed for data.
|
|
@@ -2293,9 +2451,9 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2293
2451
|
* });
|
|
2294
2452
|
* ```
|
|
2295
2453
|
*/
|
|
2296
|
-
updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2454
|
+
updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>[]>;
|
|
2297
2455
|
});
|
|
2298
|
-
type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase> = {
|
|
2456
|
+
type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
2299
2457
|
/**
|
|
2300
2458
|
* Returns a list of entities.
|
|
2301
2459
|
* @param args - query args
|
|
@@ -2377,35 +2535,35 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2377
2535
|
* }); // result: `{ _count: { posts: number } }`
|
|
2378
2536
|
* ```
|
|
2379
2537
|
*/
|
|
2380
|
-
findMany<T extends FindManyArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2538
|
+
findMany<T extends FindManyArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args?: SelectSubset<T, FindManyArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>[]>;
|
|
2381
2539
|
/**
|
|
2382
2540
|
* Returns a uniquely identified entity.
|
|
2383
2541
|
* @param args - query args
|
|
2384
2542
|
* @returns a single entity or null if not found
|
|
2385
2543
|
* @see {@link findMany}
|
|
2386
2544
|
*/
|
|
2387
|
-
findUnique<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
2545
|
+
findUnique<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult> | null>;
|
|
2388
2546
|
/**
|
|
2389
2547
|
* Returns a uniquely identified entity or throws `NotFoundError` if not found.
|
|
2390
2548
|
* @param args - query args
|
|
2391
2549
|
* @returns a single entity
|
|
2392
2550
|
* @see {@link findMany}
|
|
2393
2551
|
*/
|
|
2394
|
-
findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2552
|
+
findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2395
2553
|
/**
|
|
2396
2554
|
* Returns the first entity.
|
|
2397
2555
|
* @param args - query args
|
|
2398
2556
|
* @returns a single entity or null if not found
|
|
2399
2557
|
* @see {@link findMany}
|
|
2400
2558
|
*/
|
|
2401
|
-
findFirst<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options> | null>;
|
|
2559
|
+
findFirst<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult> | null>;
|
|
2402
2560
|
/**
|
|
2403
2561
|
* Returns the first entity or throws `NotFoundError` if not found.
|
|
2404
2562
|
* @param args - query args
|
|
2405
2563
|
* @returns a single entity
|
|
2406
2564
|
* @see {@link findMany}
|
|
2407
2565
|
*/
|
|
2408
|
-
findFirstOrThrow<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2566
|
+
findFirstOrThrow<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2409
2567
|
/**
|
|
2410
2568
|
* Creates a new entity.
|
|
2411
2569
|
* @param args - create args
|
|
@@ -2458,7 +2616,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2458
2616
|
* });
|
|
2459
2617
|
* ```
|
|
2460
2618
|
*/
|
|
2461
|
-
create<T extends CreateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, CreateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2619
|
+
create<T extends CreateArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, CreateArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2462
2620
|
/**
|
|
2463
2621
|
* Creates multiple entities. Only scalar fields are allowed.
|
|
2464
2622
|
* @param args - create args
|
|
@@ -2602,7 +2760,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2602
2760
|
* });
|
|
2603
2761
|
* ```
|
|
2604
2762
|
*/
|
|
2605
|
-
update<T extends UpdateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpdateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2763
|
+
update<T extends UpdateArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, UpdateArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2606
2764
|
/**
|
|
2607
2765
|
* Updates multiple entities.
|
|
2608
2766
|
* @param args - update args. Only scalar fields are allowed for data.
|
|
@@ -2644,7 +2802,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2644
2802
|
* });
|
|
2645
2803
|
* ```
|
|
2646
2804
|
*/
|
|
2647
|
-
upsert<T extends UpsertArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpsertArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2805
|
+
upsert<T extends UpsertArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, UpsertArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2648
2806
|
/**
|
|
2649
2807
|
* Deletes a uniquely identifiable entity.
|
|
2650
2808
|
* @param args - delete args
|
|
@@ -2664,7 +2822,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2664
2822
|
* }); // result: `{ id: string; email: string }`
|
|
2665
2823
|
* ```
|
|
2666
2824
|
*/
|
|
2667
|
-
delete<T extends DeleteArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, DeleteArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2825
|
+
delete<T extends DeleteArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>(args: SelectSubset<T, DeleteArgs<Schema, Model, Options, ExtQueryArgs, ExtResult>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options, ExtResult>>;
|
|
2668
2826
|
/**
|
|
2669
2827
|
* Deletes multiple entities.
|
|
2670
2828
|
* @param args - delete args
|
|
@@ -2775,8 +2933,8 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2775
2933
|
*/
|
|
2776
2934
|
exists<T extends ExistsArgs<Schema, Model, Options, ExtQueryArgs>>(args?: Subset<T, ExistsArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, boolean>;
|
|
2777
2935
|
};
|
|
2778
|
-
type
|
|
2779
|
-
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>;
|
|
2936
|
+
type OperationsRequiringCreate = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
|
|
2937
|
+
type ModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = SliceOperations<AllModelOperations<Schema, Model, Options, ExtQueryArgs, ExtResult>, Schema, Model, Options>;
|
|
2780
2938
|
/**
|
|
2781
2939
|
* Type for auth context that includes both scalar and relation fields.
|
|
2782
2940
|
* Relations are recursively included to allow nested auth data like { user: { profile: { ... } } }
|
|
@@ -2815,6 +2973,10 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2815
2973
|
constructor(client: ClientContract<Schema, Options, ExtQueryArgs, any>);
|
|
2816
2974
|
constructor(schema: Schema, options?: Options);
|
|
2817
2975
|
private get plugins();
|
|
2976
|
+
/**
|
|
2977
|
+
* Returns model field entries, excluding Unsupported fields.
|
|
2978
|
+
*/
|
|
2979
|
+
private getModelFields;
|
|
2818
2980
|
private shouldIncludeRelations;
|
|
2819
2981
|
private nextOptions;
|
|
2820
2982
|
private getCache;
|
|
@@ -2852,6 +3014,7 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2852
3014
|
private makeCountSelectionSchema;
|
|
2853
3015
|
private makeRelationSelectIncludeSchema;
|
|
2854
3016
|
private makeOmitSchema;
|
|
3017
|
+
private addExtResultFields;
|
|
2855
3018
|
private makeIncludeSchema;
|
|
2856
3019
|
private makeOrderBySchema;
|
|
2857
3020
|
private makeDistinctSchema;
|
|
@@ -2912,10 +3075,7 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2912
3075
|
*/
|
|
2913
3076
|
private trimFilterOperators;
|
|
2914
3077
|
private createUnionFilterSchema;
|
|
2915
|
-
|
|
2916
|
-
* Checks if a model is included in the slicing configuration.
|
|
2917
|
-
* Returns true if the model is allowed, false if it's excluded.
|
|
2918
|
-
*/
|
|
3078
|
+
private canCreateModel;
|
|
2919
3079
|
private isModelAllowed;
|
|
2920
3080
|
}
|
|
2921
3081
|
|
|
@@ -3016,13 +3176,18 @@ declare function requireTypeDef(schema: SchemaDef, type: string): _zenstackhq_sc
|
|
|
3016
3176
|
declare function getField(schema: SchemaDef, model: string, field: string): FieldDef | undefined;
|
|
3017
3177
|
declare function requireField(schema: SchemaDef, modelOrType: string, field: string): FieldDef;
|
|
3018
3178
|
/**
|
|
3019
|
-
* Gets all model fields, by default non-relation, non-computed, non-inherited fields only.
|
|
3179
|
+
* Gets all model fields, by default non-relation, non-computed, non-inherited, non-unsupported fields only.
|
|
3020
3180
|
*/
|
|
3021
3181
|
declare function getModelFields(schema: SchemaDef, model: string, options?: {
|
|
3022
3182
|
relations?: boolean;
|
|
3023
3183
|
computed?: boolean;
|
|
3024
3184
|
inherited?: boolean;
|
|
3185
|
+
unsupported?: boolean;
|
|
3025
3186
|
}): FieldDef[];
|
|
3187
|
+
/**
|
|
3188
|
+
* Checks if a field is of `Unsupported` type.
|
|
3189
|
+
*/
|
|
3190
|
+
declare function isUnsupportedField(fieldDef: FieldDef): boolean;
|
|
3026
3191
|
declare function getIdFields<Schema extends SchemaDef>(schema: SchemaDef, model: GetModels<Schema>): readonly string[] | undefined;
|
|
3027
3192
|
declare function requireIdFields(schema: SchemaDef, model: string): readonly string[];
|
|
3028
3193
|
declare function getRelationForeignKeyFieldPairs(schema: SchemaDef, model: string, relationField: string): {
|
|
@@ -3124,6 +3289,7 @@ declare const queryUtils_isInheritedField: typeof isInheritedField;
|
|
|
3124
3289
|
declare const queryUtils_isRelationField: typeof isRelationField;
|
|
3125
3290
|
declare const queryUtils_isScalarField: typeof isScalarField;
|
|
3126
3291
|
declare const queryUtils_isTypeDef: typeof isTypeDef;
|
|
3292
|
+
declare const queryUtils_isUnsupportedField: typeof isUnsupportedField;
|
|
3127
3293
|
declare const queryUtils_makeDefaultOrderBy: typeof makeDefaultOrderBy;
|
|
3128
3294
|
declare const queryUtils_requireField: typeof requireField;
|
|
3129
3295
|
declare const queryUtils_requireIdFields: typeof requireIdFields;
|
|
@@ -3132,7 +3298,7 @@ declare const queryUtils_requireTypeDef: typeof requireTypeDef;
|
|
|
3132
3298
|
declare const queryUtils_stripAlias: typeof stripAlias;
|
|
3133
3299
|
declare const queryUtils_tmpAlias: typeof tmpAlias;
|
|
3134
3300
|
declare namespace queryUtils {
|
|
3135
|
-
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 };
|
|
3301
|
+
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_isUnsupportedField as isUnsupportedField, 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 };
|
|
3136
3302
|
}
|
|
3137
3303
|
|
|
3138
3304
|
type VisitResult = void | {
|
|
@@ -3170,4 +3336,4 @@ declare namespace schemaUtils {
|
|
|
3170
3336
|
export { schemaUtils_ExpressionVisitor as ExpressionVisitor, schemaUtils_MatchingExpressionVisitor as MatchingExpressionVisitor, type schemaUtils_VisitResult as VisitResult };
|
|
3171
3337
|
}
|
|
3172
3338
|
|
|
3173
|
-
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
|
|
3339
|
+
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 ExtResultBase, type ExtResultInferenceArgs, type ExtResultSelectOmitFields, type ExtractExtResult, 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 MapModelFieldType, type ModelAllowsCreate, type ModelHasRequiredUnsupportedField, type ModelOperations, type ModelResult, type ModelSlicingOptions, type NullsOrder, type NumberFilter, ORMError, ORMErrorReason, type OmitConfig, type OmitInput, type OnKyselyQueryArgs, type OnKyselyQueryCallback, type OnProcedureHookContext, type OperationsRequiringCreate, 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 SelectAwareExtResult, 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 };
|