@zenstackhq/orm 3.5.0-beta.3 → 3.5.0-beta.4
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.cjs +806 -327
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +251 -82
- package/dist/index.d.ts +251 -82
- 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,24 @@ 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;
|
|
1489
|
+
omit?: (OmitInput<Schema, Model> & ExtResultSelectOmitFields<ExtResult, Model & string>) | null;
|
|
1391
1490
|
} & (AllowRelation extends true ? {
|
|
1392
1491
|
/**
|
|
1393
1492
|
* Specifies relations to be included in the query result. All scalar fields are included.
|
|
1394
1493
|
*/
|
|
1395
|
-
include?: IncludeInput<Schema, Model, Options, AllowCount> | null;
|
|
1494
|
+
include?: IncludeInput<Schema, Model, Options, AllowCount, ExtResult> | null;
|
|
1396
1495
|
} : {});
|
|
1397
|
-
type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
|
|
1496
|
+
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
1497
|
[Key in NonRelationFields<Schema, Model>]?: boolean;
|
|
1399
|
-
} & (AllowRelation extends true ? IncludeInput<Schema, Model, Options, AllowCount> : {});
|
|
1498
|
+
} & (AllowRelation extends true ? IncludeInput<Schema, Model, Options, AllowCount, ExtResult> : {});
|
|
1400
1499
|
type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = boolean | {
|
|
1401
1500
|
/**
|
|
1402
1501
|
* Selects specific relations to count.
|
|
@@ -1407,8 +1506,8 @@ type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>, Opti
|
|
|
1407
1506
|
};
|
|
1408
1507
|
};
|
|
1409
1508
|
};
|
|
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>;
|
|
1509
|
+
type IncludeInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, AllowCount extends boolean = true, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1510
|
+
[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
1511
|
} & (AllowCount extends true ? HasToManyRelations<Schema, Model> extends true ? {
|
|
1413
1512
|
_count?: SelectCount<Schema, Model, Options>;
|
|
1414
1513
|
} : {} : {});
|
|
@@ -1473,23 +1572,23 @@ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>,
|
|
|
1473
1572
|
*/
|
|
1474
1573
|
cursor?: WhereUniqueInput<Schema, Model, Options>;
|
|
1475
1574
|
};
|
|
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 ? {
|
|
1575
|
+
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
1576
|
/**
|
|
1478
1577
|
* Distinct fields. Only supported by providers that natively support SQL "DISTINCT ON".
|
|
1479
1578
|
*/
|
|
1480
1579
|
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'>;
|
|
1580
|
+
} : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model, Options> : {}) & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult>;
|
|
1581
|
+
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'>;
|
|
1582
|
+
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
1583
|
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 = {}> = {
|
|
1584
|
+
type FindUniqueArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1486
1585
|
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 = {}> = {
|
|
1586
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'findUnique'>;
|
|
1587
|
+
type CreateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1489
1588
|
data: CreateInput<Schema, Model, Options>;
|
|
1490
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>;
|
|
1589
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'create'>;
|
|
1491
1590
|
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'>;
|
|
1591
|
+
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
1592
|
type OptionalWrap<Schema extends SchemaDef, Model extends GetModels<Schema>, T extends object> = Optional<T, keyof T & OptionalFieldsForCreate<Schema, Model>>;
|
|
1494
1593
|
type CreateScalarPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
|
|
1495
1594
|
[Key in ScalarFields<Schema, Model, false> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]: ScalarCreatePayload<Schema, Model, Key>;
|
|
@@ -1502,6 +1601,7 @@ type IsJsonField<Schema extends SchemaDef, Model extends GetModels<Schema>, Fiel
|
|
|
1502
1601
|
type CreateFKPayload<Schema extends SchemaDef, Model extends GetModels<Schema>> = OptionalWrap<Schema, Model, {
|
|
1503
1602
|
[Key in ForeignKeyFields<Schema, Model>]: MapModelFieldType<Schema, Model, Key>;
|
|
1504
1603
|
}>;
|
|
1604
|
+
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
1605
|
type CreateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
|
|
1506
1606
|
/**
|
|
1507
1607
|
* Connects or create a related record.
|
|
@@ -1519,7 +1619,7 @@ type CreateRelationFieldPayload<Schema extends SchemaDef, Model extends GetModel
|
|
|
1519
1619
|
* Connects an existing record.
|
|
1520
1620
|
*/
|
|
1521
1621
|
connect?: ConnectInput<Schema, Model, Field, Options>;
|
|
1522
|
-
}, (FieldIsArray<Schema, Model, Field> extends true ? never : 'createMany') | (
|
|
1622
|
+
}, (FieldIsArray<Schema, Model, Field> extends true ? never : 'createMany') | (RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate')>;
|
|
1523
1623
|
type CreateRelationPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>> = OptionalWrap<Schema, Model, {
|
|
1524
1624
|
[Key in RelationFields<Schema, Model> as RelationFieldType<Schema, Model, Key> extends GetSlicedModels<Schema, Options> ? Key : never]: CreateRelationFieldPayload<Schema, Model, Key, Options>;
|
|
1525
1625
|
}>;
|
|
@@ -1551,7 +1651,7 @@ type CreateManyInput<Schema extends SchemaDef, Model extends GetModels<Schema>,
|
|
|
1551
1651
|
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
1652
|
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
1653
|
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 = {}> = {
|
|
1654
|
+
type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1555
1655
|
/**
|
|
1556
1656
|
* The data to update the record with.
|
|
1557
1657
|
*/
|
|
@@ -1560,9 +1660,9 @@ type UpdateArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
|
|
|
1560
1660
|
* The unique filter to find the record to update.
|
|
1561
1661
|
*/
|
|
1562
1662
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1563
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
|
|
1663
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'update'>;
|
|
1564
1664
|
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'>;
|
|
1665
|
+
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
1666
|
type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, Without extends string = never> = {
|
|
1567
1667
|
/**
|
|
1568
1668
|
* The data to update the records with.
|
|
@@ -1577,7 +1677,7 @@ type UpdateManyPayload<Schema extends SchemaDef, Model extends GetModels<Schema>
|
|
|
1577
1677
|
*/
|
|
1578
1678
|
limit?: number;
|
|
1579
1679
|
};
|
|
1580
|
-
type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1680
|
+
type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1581
1681
|
/**
|
|
1582
1682
|
* The data to create the record if it doesn't exist.
|
|
1583
1683
|
*/
|
|
@@ -1590,7 +1690,7 @@ type UpsertArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Optio
|
|
|
1590
1690
|
* The unique filter to find the record to update.
|
|
1591
1691
|
*/
|
|
1592
1692
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1593
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>;
|
|
1693
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'upsert'>;
|
|
1594
1694
|
type UpdateScalarInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Without extends string = never> = Omit<{
|
|
1595
1695
|
[Key in NonRelationFields<Schema, Model> as FieldIsDelegateDiscriminator<Schema, Model, Key> extends true ? never : Key]?: ScalarUpdatePayload<Schema, Model, Key>;
|
|
1596
1696
|
}, Without>;
|
|
@@ -1675,7 +1775,7 @@ type ToManyRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels
|
|
|
1675
1775
|
* Sets the related records to the specified ones.
|
|
1676
1776
|
*/
|
|
1677
1777
|
set?: SetRelationInput<Schema, Model, Field, Options>;
|
|
1678
|
-
},
|
|
1778
|
+
}, RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'createMany' | 'connectOrCreate' | 'upsert'>;
|
|
1679
1779
|
type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<Schema>, Field extends RelationFields<Schema, Model>, Options extends QueryOptions<Schema>> = Omit<{
|
|
1680
1780
|
/**
|
|
1681
1781
|
* Creates a related record.
|
|
@@ -1706,13 +1806,13 @@ type ToOneRelationUpdateInput<Schema extends SchemaDef, Model extends GetModels<
|
|
|
1706
1806
|
* Deletes the related record.
|
|
1707
1807
|
*/
|
|
1708
1808
|
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 = {}> = {
|
|
1809
|
+
} : {}), RelationModelAllowsCreate<Schema, Model, Field> extends true ? never : 'create' | 'connectOrCreate' | 'upsert'>;
|
|
1810
|
+
type DeleteArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
1711
1811
|
/**
|
|
1712
1812
|
* The unique filter to find the record to delete.
|
|
1713
1813
|
*/
|
|
1714
1814
|
where: WhereUniqueInput<Schema, Model, Options>;
|
|
1715
|
-
} & SelectIncludeOmit<Schema, Model, true, Options> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>;
|
|
1815
|
+
} & SelectIncludeOmit<Schema, Model, true, Options, true, ExtResult> & ExtractExtQueryArgs<ExtQueryArgs, 'delete'>;
|
|
1716
1816
|
type DeleteManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema> = QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}> = {
|
|
1717
1817
|
/**
|
|
1718
1818
|
* Filter to select records to delete.
|
|
@@ -2023,6 +2123,37 @@ type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['ty
|
|
|
2023
2123
|
* Extracts extended query args for a specific operation.
|
|
2024
2124
|
*/
|
|
2025
2125
|
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'] : {});
|
|
2126
|
+
/**
|
|
2127
|
+
* Extracts extended result field types for a specific model from ExtResult.
|
|
2128
|
+
* Maps `{ needs, compute }` definitions to `{ fieldName: ReturnType<compute> }`.
|
|
2129
|
+
* When ExtResult is `{}`, this resolves to `{}` (no-op for intersection).
|
|
2130
|
+
*/
|
|
2131
|
+
type ExtractExtResult<ExtResult extends ExtResultBase, Model extends string> = Uncapitalize<Model> extends keyof ExtResult ? {
|
|
2132
|
+
[K in keyof ExtResult[Uncapitalize<Model>]]: ExtResult[Uncapitalize<Model>][K] extends {
|
|
2133
|
+
compute: (...args: any[]) => infer R;
|
|
2134
|
+
} ? R : never;
|
|
2135
|
+
} : {};
|
|
2136
|
+
/**
|
|
2137
|
+
* Extracts extended result field names as optional boolean keys for use in select/omit inputs.
|
|
2138
|
+
* When ExtResult is `{}`, this resolves to `{}` (no-op for intersection).
|
|
2139
|
+
*/
|
|
2140
|
+
type ExtResultSelectOmitFields<ExtResult extends ExtResultBase, Model extends string> = keyof ExtResult extends never ? {} : Uncapitalize<Model> extends keyof ExtResult ? {
|
|
2141
|
+
[K in keyof ExtResult[Uncapitalize<Model>]]?: boolean;
|
|
2142
|
+
} : {};
|
|
2143
|
+
type TruthyKeys<S, Keys extends string> = {
|
|
2144
|
+
[K in Keys]: K extends keyof S ? (S[K] extends false | undefined ? never : K) : never;
|
|
2145
|
+
}[Keys];
|
|
2146
|
+
/**
|
|
2147
|
+
* Select/omit-aware version of ExtractExtResult.
|
|
2148
|
+
* - If T has `select`, only includes ext result fields that are explicitly selected.
|
|
2149
|
+
* - If T has `omit`, excludes ext result fields that are explicitly omitted.
|
|
2150
|
+
* - Otherwise, includes all ext result fields.
|
|
2151
|
+
*/
|
|
2152
|
+
type SelectAwareExtResult<ExtResult extends ExtResultBase, Model extends string, T> = keyof ExtResult extends never ? {} : T extends {
|
|
2153
|
+
select: infer S;
|
|
2154
|
+
} ? S extends null | undefined ? ExtractExtResult<ExtResult, Model> : Pick<ExtractExtResult<ExtResult, Model>, TruthyKeys<S, Extract<keyof S & string, keyof ExtractExtResult<ExtResult, Model>>>> : T extends {
|
|
2155
|
+
omit: infer O;
|
|
2156
|
+
} ? 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
2157
|
|
|
2027
2158
|
/**
|
|
2028
2159
|
* Zod schema cache statistics.
|
|
@@ -2093,7 +2224,7 @@ declare enum TransactionIsolationLevel {
|
|
|
2093
2224
|
/**
|
|
2094
2225
|
* ZenStack client interface.
|
|
2095
2226
|
*/
|
|
2096
|
-
type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}> = {
|
|
2227
|
+
type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase = {}, ExtClientMembers extends ExtClientMembersBase = {}, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
2097
2228
|
/**
|
|
2098
2229
|
* The schema definition.
|
|
2099
2230
|
*/
|
|
@@ -2141,25 +2272,36 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2141
2272
|
*/
|
|
2142
2273
|
get $auth(): AuthType<Schema> | undefined;
|
|
2143
2274
|
/**
|
|
2144
|
-
*
|
|
2275
|
+
* Returns a new client bound to the specified user identity. The original client remains unchanged.
|
|
2276
|
+
*
|
|
2277
|
+
* @example
|
|
2278
|
+
* ```
|
|
2279
|
+
* const userClient = db.$setAuth({ id: 'user-id' });
|
|
2280
|
+
* ```
|
|
2145
2281
|
*/
|
|
2146
|
-
$setAuth(auth: AuthType<Schema> | undefined): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2282
|
+
$setAuth(auth: AuthType<Schema> | undefined): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2147
2283
|
/**
|
|
2148
|
-
* Returns a new client with new options applied.
|
|
2284
|
+
* Returns a new client with new options applied. The original client remains unchanged.
|
|
2285
|
+
*
|
|
2149
2286
|
* @example
|
|
2150
2287
|
* ```
|
|
2151
2288
|
* const dbNoValidation = db.$setOptions({ ...db.$options, validateInput: false });
|
|
2152
2289
|
* ```
|
|
2153
2290
|
*/
|
|
2154
|
-
$setOptions<NewOptions extends ClientOptions<Schema>>(options: NewOptions): ClientContract<Schema, NewOptions, ExtQueryArgs, ExtClientMembers>;
|
|
2291
|
+
$setOptions<NewOptions extends ClientOptions<Schema>>(options: NewOptions): ClientContract<Schema, NewOptions, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2155
2292
|
/**
|
|
2156
|
-
* Returns a new client enabling/disabling query args validation.
|
|
2293
|
+
* Returns a new client enabling/disabling query args validation. The original client remains unchanged.
|
|
2157
2294
|
*
|
|
2158
2295
|
* @deprecated Use {@link $setOptions} instead.
|
|
2159
2296
|
*/
|
|
2160
|
-
$setInputValidation(enable: boolean): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2297
|
+
$setInputValidation(enable: boolean): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2161
2298
|
/**
|
|
2162
2299
|
* The Kysely query builder instance.
|
|
2300
|
+
*
|
|
2301
|
+
* @example
|
|
2302
|
+
* ```
|
|
2303
|
+
* db.$qb.selectFrom('User').selectAll().where('id', '=', 1).execute();
|
|
2304
|
+
* ```
|
|
2163
2305
|
*/
|
|
2164
2306
|
readonly $qb: ToKysely<Schema>;
|
|
2165
2307
|
/**
|
|
@@ -2168,26 +2310,45 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2168
2310
|
readonly $qbRaw: AnyKysely;
|
|
2169
2311
|
/**
|
|
2170
2312
|
* Starts an interactive transaction.
|
|
2313
|
+
*
|
|
2314
|
+
* @example
|
|
2315
|
+
* ```
|
|
2316
|
+
* await db.$transaction(async (tx) => {
|
|
2317
|
+
* const user = await tx.user.update({ where: { id: 1 }, data: { name: 'Alice' } });
|
|
2318
|
+
* const post = await tx.post.create({ data: { title: 'Hello World', authorId: user.id } });
|
|
2319
|
+
* return { user, posts: [post] };
|
|
2320
|
+
* ```
|
|
2171
2321
|
*/
|
|
2172
|
-
$transaction<T>(callback: (tx: TransactionClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>) => Promise<T>, options?: {
|
|
2322
|
+
$transaction<T>(callback: (tx: TransactionClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>) => Promise<T>, options?: {
|
|
2173
2323
|
isolationLevel?: TransactionIsolationLevel;
|
|
2174
2324
|
}): Promise<T>;
|
|
2175
2325
|
/**
|
|
2176
|
-
* Starts a sequential transaction.
|
|
2326
|
+
* Starts a sequential transaction that runs the provided operations in order.
|
|
2327
|
+
*
|
|
2328
|
+
* @example
|
|
2329
|
+
* ```
|
|
2330
|
+
* await db.$transaction([
|
|
2331
|
+
* db.user.update({ where: { id: 1 }, data: { name: 'Alice' } }),
|
|
2332
|
+
* db.post.create({ data: { title: 'Hello World', authorId: 1 } }),
|
|
2333
|
+
* ]);
|
|
2177
2334
|
*/
|
|
2178
2335
|
$transaction<P extends ZenStackPromise<Schema, any>[]>(arg: [...P], options?: {
|
|
2179
2336
|
isolationLevel?: TransactionIsolationLevel;
|
|
2180
2337
|
}): Promise<UnwrapTuplePromises<P>>;
|
|
2181
2338
|
/**
|
|
2182
|
-
* Returns a new client with the specified plugin installed.
|
|
2339
|
+
* Returns a new client with the specified plugin installed. The original client remains unchanged.
|
|
2340
|
+
*
|
|
2341
|
+
* @see {@link https://zenstack.dev/docs/orm/plugins/|Plugin Documentation}
|
|
2183
2342
|
*/
|
|
2184
|
-
$use<PluginSchema extends SchemaDef = Schema, PluginExtQueryArgs extends ExtQueryArgsBase = {}, PluginExtClientMembers extends ExtClientMembersBase = {}>(plugin: RuntimePlugin<PluginSchema, PluginExtQueryArgs, PluginExtClientMembers
|
|
2343
|
+
$use<PluginSchema extends SchemaDef = Schema, PluginExtQueryArgs extends ExtQueryArgsBase = {}, PluginExtClientMembers extends ExtClientMembersBase = {}, PluginExtResult extends ExtResultBase<PluginSchema> = {}, _R = {}>(plugin: RuntimePlugin<PluginSchema, PluginExtQueryArgs, PluginExtClientMembers, PluginExtResult> & {
|
|
2344
|
+
result?: ExtResultInferenceArgs<Schema, _R>;
|
|
2345
|
+
}): ClientContract<Schema, Options, ExtQueryArgs & PluginExtQueryArgs, ExtClientMembers & PluginExtClientMembers, ExtResult & PluginExtResult>;
|
|
2185
2346
|
/**
|
|
2186
|
-
* Returns a new client with the specified plugin removed.
|
|
2347
|
+
* Returns a new client with the specified plugin removed. The original client remains unchanged.
|
|
2187
2348
|
*/
|
|
2188
|
-
$unuse(pluginId: string): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>;
|
|
2349
|
+
$unuse(pluginId: string): ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers, ExtResult>;
|
|
2189
2350
|
/**
|
|
2190
|
-
* Returns a new client with all plugins removed.
|
|
2351
|
+
* Returns a new client with all plugins removed. The original client remains unchanged.
|
|
2191
2352
|
*/
|
|
2192
2353
|
$unuseAll(): ClientContract<Schema, Options>;
|
|
2193
2354
|
/**
|
|
@@ -2212,12 +2373,12 @@ type ClientContract<Schema extends SchemaDef, Options extends ClientOptions<Sche
|
|
|
2212
2373
|
*/
|
|
2213
2374
|
get $diagnostics(): Promise<Diagnostics>;
|
|
2214
2375
|
} & {
|
|
2215
|
-
[Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs>;
|
|
2376
|
+
[Key in GetSlicedModels<Schema, Options> as Uncapitalize<Key>]: ModelOperations<Schema, Key, Options, ExtQueryArgs, ExtResult>;
|
|
2216
2377
|
} & ProcedureOperations<Schema, Options> & ExtClientMembers;
|
|
2217
2378
|
/**
|
|
2218
2379
|
* The contract for a client in a transaction.
|
|
2219
2380
|
*/
|
|
2220
|
-
type TransactionClientContract<Schema extends SchemaDef, Options extends ClientOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtClientMembers extends ExtClientMembersBase> = Omit<ClientContract<Schema, Options, ExtQueryArgs, ExtClientMembers>, TransactionUnsupportedMethods>;
|
|
2381
|
+
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
2382
|
type ProcedureOperations<Schema extends SchemaDef, Options extends ClientOptions<Schema> = ClientOptions<Schema>> = Schema['procedures'] extends Record<string, ProcedureDef> ? {
|
|
2222
2383
|
/**
|
|
2223
2384
|
* Custom procedures.
|
|
@@ -2250,8 +2411,8 @@ type CRUD_EXT = CRUD | 'post-update';
|
|
|
2250
2411
|
declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-update"];
|
|
2251
2412
|
type SliceOperations<T extends Record<string, unknown>, Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends ClientOptions<Schema>> = Omit<{
|
|
2252
2413
|
[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' ? {} : {
|
|
2414
|
+
}, ModelAllowsCreate<Schema, Model> extends true ? never : OperationsRequiringCreate>;
|
|
2415
|
+
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
2416
|
/**
|
|
2256
2417
|
* Creates multiple entities and returns them.
|
|
2257
2418
|
* @param args - create args. See {@link createMany} for input. Use
|
|
@@ -2270,7 +2431,7 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2270
2431
|
* });
|
|
2271
2432
|
* ```
|
|
2272
2433
|
*/
|
|
2273
|
-
createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2434
|
+
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
2435
|
/**
|
|
2275
2436
|
* Updates multiple entities and returns them.
|
|
2276
2437
|
* @param args - update args. Only scalar fields are allowed for data.
|
|
@@ -2293,9 +2454,9 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2293
2454
|
* });
|
|
2294
2455
|
* ```
|
|
2295
2456
|
*/
|
|
2296
|
-
updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2457
|
+
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
2458
|
});
|
|
2298
|
-
type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase> = {
|
|
2459
|
+
type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs extends ExtQueryArgsBase, ExtResult extends ExtResultBase<Schema> = {}> = {
|
|
2299
2460
|
/**
|
|
2300
2461
|
* Returns a list of entities.
|
|
2301
2462
|
* @param args - query args
|
|
@@ -2377,35 +2538,35 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2377
2538
|
* }); // result: `{ _count: { posts: number } }`
|
|
2378
2539
|
* ```
|
|
2379
2540
|
*/
|
|
2380
|
-
findMany<T extends FindManyArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindManyArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2541
|
+
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
2542
|
/**
|
|
2382
2543
|
* Returns a uniquely identified entity.
|
|
2383
2544
|
* @param args - query args
|
|
2384
2545
|
* @returns a single entity or null if not found
|
|
2385
2546
|
* @see {@link findMany}
|
|
2386
2547
|
*/
|
|
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>;
|
|
2548
|
+
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
2549
|
/**
|
|
2389
2550
|
* Returns a uniquely identified entity or throws `NotFoundError` if not found.
|
|
2390
2551
|
* @param args - query args
|
|
2391
2552
|
* @returns a single entity
|
|
2392
2553
|
* @see {@link findMany}
|
|
2393
2554
|
*/
|
|
2394
|
-
findUniqueOrThrow<T extends FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, FindUniqueArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2555
|
+
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
2556
|
/**
|
|
2396
2557
|
* Returns the first entity.
|
|
2397
2558
|
* @param args - query args
|
|
2398
2559
|
* @returns a single entity or null if not found
|
|
2399
2560
|
* @see {@link findMany}
|
|
2400
2561
|
*/
|
|
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>;
|
|
2562
|
+
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
2563
|
/**
|
|
2403
2564
|
* Returns the first entity or throws `NotFoundError` if not found.
|
|
2404
2565
|
* @param args - query args
|
|
2405
2566
|
* @returns a single entity
|
|
2406
2567
|
* @see {@link findMany}
|
|
2407
2568
|
*/
|
|
2408
|
-
findFirstOrThrow<T extends FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>(args?: SelectSubset<T, FindFirstArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2569
|
+
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
2570
|
/**
|
|
2410
2571
|
* Creates a new entity.
|
|
2411
2572
|
* @param args - create args
|
|
@@ -2458,7 +2619,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2458
2619
|
* });
|
|
2459
2620
|
* ```
|
|
2460
2621
|
*/
|
|
2461
|
-
create<T extends CreateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, CreateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2622
|
+
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
2623
|
/**
|
|
2463
2624
|
* Creates multiple entities. Only scalar fields are allowed.
|
|
2464
2625
|
* @param args - create args
|
|
@@ -2602,7 +2763,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2602
2763
|
* });
|
|
2603
2764
|
* ```
|
|
2604
2765
|
*/
|
|
2605
|
-
update<T extends UpdateArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpdateArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2766
|
+
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
2767
|
/**
|
|
2607
2768
|
* Updates multiple entities.
|
|
2608
2769
|
* @param args - update args. Only scalar fields are allowed for data.
|
|
@@ -2644,7 +2805,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2644
2805
|
* });
|
|
2645
2806
|
* ```
|
|
2646
2807
|
*/
|
|
2647
|
-
upsert<T extends UpsertArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, UpsertArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2808
|
+
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
2809
|
/**
|
|
2649
2810
|
* Deletes a uniquely identifiable entity.
|
|
2650
2811
|
* @param args - delete args
|
|
@@ -2664,7 +2825,7 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2664
2825
|
* }); // result: `{ id: string; email: string }`
|
|
2665
2826
|
* ```
|
|
2666
2827
|
*/
|
|
2667
|
-
delete<T extends DeleteArgs<Schema, Model, Options, ExtQueryArgs>>(args: SelectSubset<T, DeleteArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>>;
|
|
2828
|
+
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
2829
|
/**
|
|
2669
2830
|
* Deletes multiple entities.
|
|
2670
2831
|
* @param args - delete args
|
|
@@ -2775,8 +2936,8 @@ type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Sch
|
|
|
2775
2936
|
*/
|
|
2776
2937
|
exists<T extends ExistsArgs<Schema, Model, Options, ExtQueryArgs>>(args?: Subset<T, ExistsArgs<Schema, Model, Options, ExtQueryArgs>>): ZenStackPromise<Schema, boolean>;
|
|
2777
2938
|
};
|
|
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>;
|
|
2939
|
+
type OperationsRequiringCreate = 'create' | 'createMany' | 'createManyAndReturn' | 'upsert';
|
|
2940
|
+
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
2941
|
/**
|
|
2781
2942
|
* Type for auth context that includes both scalar and relation fields.
|
|
2782
2943
|
* Relations are recursively included to allow nested auth data like { user: { profile: { ... } } }
|
|
@@ -2815,6 +2976,10 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2815
2976
|
constructor(client: ClientContract<Schema, Options, ExtQueryArgs, any>);
|
|
2816
2977
|
constructor(schema: Schema, options?: Options);
|
|
2817
2978
|
private get plugins();
|
|
2979
|
+
/**
|
|
2980
|
+
* Returns model field entries, excluding Unsupported fields.
|
|
2981
|
+
*/
|
|
2982
|
+
private getModelFields;
|
|
2818
2983
|
private shouldIncludeRelations;
|
|
2819
2984
|
private nextOptions;
|
|
2820
2985
|
private getCache;
|
|
@@ -2852,6 +3017,7 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2852
3017
|
private makeCountSelectionSchema;
|
|
2853
3018
|
private makeRelationSelectIncludeSchema;
|
|
2854
3019
|
private makeOmitSchema;
|
|
3020
|
+
private addExtResultFields;
|
|
2855
3021
|
private makeIncludeSchema;
|
|
2856
3022
|
private makeOrderBySchema;
|
|
2857
3023
|
private makeDistinctSchema;
|
|
@@ -2912,10 +3078,7 @@ declare class ZodSchemaFactory<Schema extends SchemaDef, Options extends ClientO
|
|
|
2912
3078
|
*/
|
|
2913
3079
|
private trimFilterOperators;
|
|
2914
3080
|
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
|
-
*/
|
|
3081
|
+
private canCreateModel;
|
|
2919
3082
|
private isModelAllowed;
|
|
2920
3083
|
}
|
|
2921
3084
|
|
|
@@ -3016,13 +3179,18 @@ declare function requireTypeDef(schema: SchemaDef, type: string): _zenstackhq_sc
|
|
|
3016
3179
|
declare function getField(schema: SchemaDef, model: string, field: string): FieldDef | undefined;
|
|
3017
3180
|
declare function requireField(schema: SchemaDef, modelOrType: string, field: string): FieldDef;
|
|
3018
3181
|
/**
|
|
3019
|
-
* Gets all model fields, by default non-relation, non-computed, non-inherited fields only.
|
|
3182
|
+
* Gets all model fields, by default non-relation, non-computed, non-inherited, non-unsupported fields only.
|
|
3020
3183
|
*/
|
|
3021
3184
|
declare function getModelFields(schema: SchemaDef, model: string, options?: {
|
|
3022
3185
|
relations?: boolean;
|
|
3023
3186
|
computed?: boolean;
|
|
3024
3187
|
inherited?: boolean;
|
|
3188
|
+
unsupported?: boolean;
|
|
3025
3189
|
}): FieldDef[];
|
|
3190
|
+
/**
|
|
3191
|
+
* Checks if a field is of `Unsupported` type.
|
|
3192
|
+
*/
|
|
3193
|
+
declare function isUnsupportedField(fieldDef: FieldDef): boolean;
|
|
3026
3194
|
declare function getIdFields<Schema extends SchemaDef>(schema: SchemaDef, model: GetModels<Schema>): readonly string[] | undefined;
|
|
3027
3195
|
declare function requireIdFields(schema: SchemaDef, model: string): readonly string[];
|
|
3028
3196
|
declare function getRelationForeignKeyFieldPairs(schema: SchemaDef, model: string, relationField: string): {
|
|
@@ -3124,6 +3292,7 @@ declare const queryUtils_isInheritedField: typeof isInheritedField;
|
|
|
3124
3292
|
declare const queryUtils_isRelationField: typeof isRelationField;
|
|
3125
3293
|
declare const queryUtils_isScalarField: typeof isScalarField;
|
|
3126
3294
|
declare const queryUtils_isTypeDef: typeof isTypeDef;
|
|
3295
|
+
declare const queryUtils_isUnsupportedField: typeof isUnsupportedField;
|
|
3127
3296
|
declare const queryUtils_makeDefaultOrderBy: typeof makeDefaultOrderBy;
|
|
3128
3297
|
declare const queryUtils_requireField: typeof requireField;
|
|
3129
3298
|
declare const queryUtils_requireIdFields: typeof requireIdFields;
|
|
@@ -3132,7 +3301,7 @@ declare const queryUtils_requireTypeDef: typeof requireTypeDef;
|
|
|
3132
3301
|
declare const queryUtils_stripAlias: typeof stripAlias;
|
|
3133
3302
|
declare const queryUtils_tmpAlias: typeof tmpAlias;
|
|
3134
3303
|
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 };
|
|
3304
|
+
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
3305
|
}
|
|
3137
3306
|
|
|
3138
3307
|
type VisitResult = void | {
|
|
@@ -3170,4 +3339,4 @@ declare namespace schemaUtils {
|
|
|
3170
3339
|
export { schemaUtils_ExpressionVisitor as ExpressionVisitor, schemaUtils_MatchingExpressionVisitor as MatchingExpressionVisitor, type schemaUtils_VisitResult as VisitResult };
|
|
3171
3340
|
}
|
|
3172
3341
|
|
|
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
|
|
3342
|
+
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 };
|