@zenstackhq/orm 3.3.0-beta.2 → 3.3.0-beta.3
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/dialects/mysql.cjs +31 -0
- package/dist/dialects/mysql.cjs.map +1 -0
- package/dist/dialects/mysql.d.cts +1 -0
- package/dist/dialects/mysql.d.ts +1 -0
- package/dist/dialects/mysql.js +6 -0
- package/dist/dialects/mysql.js.map +1 -0
- package/dist/index.cjs +2037 -852
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +135 -75
- package/dist/index.d.ts +135 -75
- package/dist/index.js +1957 -772
- package/dist/index.js.map +1 -1
- package/package.json +20 -6
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _zenstackhq_schema from '@zenstackhq/schema';
|
|
2
|
-
import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, NonRelationFields, FieldDef, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetModel, BuiltinType, GetTypeDefFieldType, TypeDefFieldIsArray, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation, ProcedureDef, ModelDef, DataSourceProviderType, IsDelegateModel, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
|
|
2
|
+
import { SchemaDef, GetModels, ScalarFields, ForeignKeyFields, GetModelFields, FieldHasDefault, GetModelFieldType, ModelFieldIsOptional, GetModelField, NonRelationFields, FieldDef, GetEnums, GetEnum, GetTypeDefs, GetTypeDefFields, GetTypeDefField, TypeDefFieldIsOptional, RelationFields, FieldIsArray, RelationFieldType, FieldIsRelation, GetModel, BuiltinType, GetTypeDefFieldType, TypeDefFieldIsArray, FieldIsDelegateDiscriminator, FieldType, RelationInfo, FieldIsDelegateRelation, ProcedureDef, ModelDef, DataSourceProviderType, IsDelegateModel, Expression as Expression$1, LiteralExpression, ArrayExpression, FieldExpression, MemberExpression, BinaryExpression, UnaryExpression, CallExpression, BindingExpression, ThisExpression, NullExpression } from '@zenstackhq/schema';
|
|
3
3
|
import * as kysely from 'kysely';
|
|
4
|
-
import { OperationNodeVisitor, OperationNode, SelectQueryNode, SelectionNode, ColumnNode, AliasNode, TableNode, FromNode, ReferenceNode, AndNode, OrNode, ValueListNode, ParensNode, JoinNode, RawNode, WhereNode, InsertQueryNode, DeleteQueryNode, ReturningNode, CreateTableNode, AddColumnNode, ColumnDefinitionNode, DropTableNode, OrderByNode, OrderByItemNode, GroupByNode, GroupByItemNode, UpdateQueryNode, ColumnUpdateNode, LimitNode, OffsetNode, OnConflictNode, OnDuplicateKeyNode, CheckConstraintNode, DataTypeNode, SelectAllNode, IdentifierNode, SchemableIdentifierNode, ValueNode, PrimitiveValueListNode, OperatorNode, CreateIndexNode, DropIndexNode, ListNode, PrimaryKeyConstraintNode, UniqueConstraintNode, ReferencesNode, WithNode, CommonTableExpressionNode, CommonTableExpressionNameNode, HavingNode, CreateSchemaNode, DropSchemaNode, AlterTableNode, DropColumnNode, RenameColumnNode, AlterColumnNode, ModifyColumnNode, AddConstraintNode, DropConstraintNode, ForeignKeyConstraintNode, CreateViewNode, DropViewNode, GeneratedNode, DefaultValueNode, OnNode, ValuesNode, SelectModifierNode, CreateTypeNode, DropTypeNode, ExplainNode, DefaultInsertValueNode, AggregateFunctionNode, OverNode, PartitionByNode, PartitionByItemNode, SetOperationNode, BinaryOperationNode, UnaryOperationNode, UsingNode, FunctionNode, CaseNode, WhenNode, JSONReferenceNode, JSONPathNode, JSONPathLegNode, JSONOperatorChainNode, TupleNode, MergeQueryNode, MatchedNode, AddIndexNode, CastNode, FetchNode, TopNode, OutputNode, RenameConstraintNode, RefreshMaterializedViewNode, OrActionNode, CollateNode, Kysely, Generated, ExpressionBuilder, OperandExpression, SqlBool, SelectQueryBuilder, Expression, ExpressionWrapper, QueryId, RootOperationNode, QueryResult, UnknownRow, Dialect, KyselyConfig } from 'kysely';
|
|
4
|
+
import { OperationNodeVisitor, OperationNode, SelectQueryNode, SelectionNode, ColumnNode, AliasNode, TableNode, FromNode, ReferenceNode, AndNode, OrNode, ValueListNode, ParensNode, JoinNode, RawNode, WhereNode, InsertQueryNode, DeleteQueryNode, ReturningNode, CreateTableNode, AddColumnNode, ColumnDefinitionNode, DropTableNode, OrderByNode, OrderByItemNode, GroupByNode, GroupByItemNode, UpdateQueryNode, ColumnUpdateNode, LimitNode, OffsetNode, OnConflictNode, OnDuplicateKeyNode, CheckConstraintNode, DataTypeNode, SelectAllNode, IdentifierNode, SchemableIdentifierNode, ValueNode, PrimitiveValueListNode, OperatorNode, CreateIndexNode, DropIndexNode, ListNode, PrimaryKeyConstraintNode, UniqueConstraintNode, ReferencesNode, WithNode, CommonTableExpressionNode, CommonTableExpressionNameNode, HavingNode, CreateSchemaNode, DropSchemaNode, AlterTableNode, DropColumnNode, RenameColumnNode, AlterColumnNode, ModifyColumnNode, AddConstraintNode, DropConstraintNode, ForeignKeyConstraintNode, CreateViewNode, DropViewNode, GeneratedNode, DefaultValueNode, OnNode, ValuesNode, SelectModifierNode, CreateTypeNode, DropTypeNode, ExplainNode, DefaultInsertValueNode, AggregateFunctionNode, OverNode, PartitionByNode, PartitionByItemNode, SetOperationNode, BinaryOperationNode, UnaryOperationNode, UsingNode, FunctionNode, CaseNode, WhenNode, JSONReferenceNode, JSONPathNode, JSONPathLegNode, JSONOperatorChainNode, TupleNode, MergeQueryNode, MatchedNode, AddIndexNode, CastNode, FetchNode, TopNode, OutputNode, RenameConstraintNode, RefreshMaterializedViewNode, OrActionNode, CollateNode, Kysely, Generated, ExpressionBuilder, OperandExpression, SqlBool, SelectQueryBuilder, Expression, ExpressionWrapper, AliasableExpression, QueryId, RootOperationNode, QueryResult, UnknownRow, Dialect, KyselyConfig } from 'kysely';
|
|
5
5
|
import Decimal from 'decimal.js';
|
|
6
6
|
import { z, ZodType } from 'zod';
|
|
7
7
|
|
|
@@ -673,12 +673,12 @@ type SortAndTakeArgs<Schema extends SchemaDef, Model extends GetModels<Schema>>
|
|
|
673
673
|
*/
|
|
674
674
|
cursor?: WhereUniqueInput<Schema, Model>;
|
|
675
675
|
};
|
|
676
|
-
type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Collection extends boolean, AllowFilter extends boolean = true> = (Collection extends true ? SortAndTakeArgs<Schema, Model> & {
|
|
676
|
+
type FindArgs<Schema extends SchemaDef, Model extends GetModels<Schema>, Collection extends boolean, AllowFilter extends boolean = true> = (Collection extends true ? SortAndTakeArgs<Schema, Model> & (ProviderSupportsDistinct<Schema> extends true ? {
|
|
677
677
|
/**
|
|
678
|
-
* Distinct fields
|
|
678
|
+
* Distinct fields. Only supported by providers that natively support SQL "DISTINCT ON".
|
|
679
679
|
*/
|
|
680
680
|
distinct?: OrArray<NonRelationFields<Schema, Model>>;
|
|
681
|
-
} : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model> : {}) & SelectIncludeOmit<Schema, Model, Collection>;
|
|
681
|
+
} : {}) : {}) & (AllowFilter extends true ? FilterArgs<Schema, Model> : {}) & SelectIncludeOmit<Schema, Model, Collection>;
|
|
682
682
|
type FindManyArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
|
|
683
683
|
type FindFirstArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FindArgs<Schema, Model, true>;
|
|
684
684
|
type ExistsArgs<Schema extends SchemaDef, Model extends GetModels<Schema>> = FilterArgs<Schema, Model>;
|
|
@@ -1218,13 +1218,48 @@ type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
1218
1218
|
} extends never ? false : true;
|
|
1219
1219
|
type EnumValue<Schema extends SchemaDef, Enum extends GetEnums<Schema>> = GetEnum<Schema, Enum>[keyof GetEnum<Schema, Enum>];
|
|
1220
1220
|
type MapType<Schema extends SchemaDef, T extends string> = T extends keyof TypeMap ? TypeMap[T] : T extends GetModels<Schema> ? ModelResult<Schema, T> : T extends GetTypeDefs<Schema> ? TypeDefResult<Schema, T> : T extends GetEnums<Schema> ? EnumValue<Schema, T> : unknown;
|
|
1221
|
+
type ProviderSupportsDistinct<Schema extends SchemaDef> = Schema['provider']['type'] extends 'postgresql' ? true : false;
|
|
1221
1222
|
|
|
1222
1223
|
declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
1223
1224
|
protected readonly schema: Schema;
|
|
1224
1225
|
protected readonly options: ClientOptions<Schema>;
|
|
1225
1226
|
protected eb: ExpressionBuilder<any, any>;
|
|
1226
1227
|
constructor(schema: Schema, options: ClientOptions<Schema>);
|
|
1227
|
-
|
|
1228
|
+
/**
|
|
1229
|
+
* Whether the dialect supports updating with a limit on the number of updated rows.
|
|
1230
|
+
*/
|
|
1231
|
+
abstract get supportsUpdateWithLimit(): boolean;
|
|
1232
|
+
/**
|
|
1233
|
+
* Whether the dialect supports deleting with a limit on the number of deleted rows.
|
|
1234
|
+
*/
|
|
1235
|
+
abstract get supportsDeleteWithLimit(): boolean;
|
|
1236
|
+
/**
|
|
1237
|
+
* Whether the dialect supports DISTINCT ON.
|
|
1238
|
+
*/
|
|
1239
|
+
abstract get supportsDistinctOn(): boolean;
|
|
1240
|
+
/**
|
|
1241
|
+
* Whether the dialect support inserting with `DEFAULT` as field value.
|
|
1242
|
+
*/
|
|
1243
|
+
abstract get supportsDefaultAsFieldValue(): boolean;
|
|
1244
|
+
/**
|
|
1245
|
+
* Whether the dialect supports the RETURNING clause in INSERT/UPDATE/DELETE statements.
|
|
1246
|
+
*/
|
|
1247
|
+
abstract get supportsReturning(): boolean;
|
|
1248
|
+
/**
|
|
1249
|
+
* Whether the dialect supports `INSERT INTO ... DEFAULT VALUES` syntax.
|
|
1250
|
+
*/
|
|
1251
|
+
abstract get supportsInsertDefaultValues(): boolean;
|
|
1252
|
+
/**
|
|
1253
|
+
* How to perform insert ignore operation.
|
|
1254
|
+
*/
|
|
1255
|
+
abstract get insertIgnoreMethod(): 'onConflict' | 'ignore';
|
|
1256
|
+
/**
|
|
1257
|
+
* Transforms input value before sending to database.
|
|
1258
|
+
*/
|
|
1259
|
+
transformInput(value: unknown, _type: BuiltinType, _forArrayField: boolean): unknown;
|
|
1260
|
+
/**
|
|
1261
|
+
* Transforms output value received from database.
|
|
1262
|
+
*/
|
|
1228
1263
|
transformOutput(value: unknown, _type: BuiltinType, _array: boolean): unknown;
|
|
1229
1264
|
buildSelectModel(model: string, modelAlias: string): SelectQueryBuilder<any, any, {}>;
|
|
1230
1265
|
buildFilterSortTake(model: string, args: FindArgs<Schema, GetModels<Schema>, true>, query: SelectQueryBuilder<any, any, {}>, modelAlias: string): SelectQueryBuilder<any, any, {}>;
|
|
@@ -1243,6 +1278,7 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
1243
1278
|
private buildTypedJsonArrayFilter;
|
|
1244
1279
|
private buildTypeJsonNonArrayFilter;
|
|
1245
1280
|
private buildJsonValueFilterClause;
|
|
1281
|
+
protected buildJsonEqualityFilter(lhs: Expression<any>, rhs: unknown): ExpressionWrapper<any, any, SqlBool>;
|
|
1246
1282
|
private buildLiteralFilter;
|
|
1247
1283
|
private buildStandardFilter;
|
|
1248
1284
|
private buildStringFilter;
|
|
@@ -1255,14 +1291,14 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
1255
1291
|
private buildDateTimeFilter;
|
|
1256
1292
|
private buildBytesFilter;
|
|
1257
1293
|
private buildEnumFilter;
|
|
1258
|
-
buildOrderBy(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, orderBy: OrArray<OrderBy<Schema, GetModels<Schema>, boolean, boolean>> | undefined, negated: boolean): SelectQueryBuilder<any, any, any>;
|
|
1294
|
+
buildOrderBy(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, orderBy: OrArray<OrderBy<Schema, GetModels<Schema>, boolean, boolean>> | undefined, negated: boolean, take: number | undefined): SelectQueryBuilder<any, any, any>;
|
|
1259
1295
|
buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit: Record<string, boolean | undefined> | undefined | null, modelAlias: string): SelectQueryBuilder<any, any, any>;
|
|
1260
1296
|
shouldOmitField(omit: unknown, model: string, field: string): any;
|
|
1261
1297
|
protected buildModelSelect(model: GetModels<Schema>, subQueryAlias: string, payload: true | FindArgs<Schema, GetModels<Schema>, true>, selectAllFields: boolean): SelectQueryBuilder<any, any, {}>;
|
|
1262
1298
|
buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
|
|
1263
1299
|
buildDelegateJoin(thisModel: string, thisModelAlias: string, otherModelAlias: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
|
|
1264
|
-
buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any):
|
|
1265
|
-
|
|
1300
|
+
buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any): AliasableExpression<unknown>;
|
|
1301
|
+
protected negateSort(sort: SortOrder, negated: boolean): SortOrder;
|
|
1266
1302
|
true(): Expression<SqlBool>;
|
|
1267
1303
|
false(): Expression<SqlBool>;
|
|
1268
1304
|
isTrue(expression: Expression<SqlBool>): boolean;
|
|
@@ -1284,31 +1320,27 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
1284
1320
|
/**
|
|
1285
1321
|
* Builds an Kysely expression that returns a JSON object for the given key-value pairs.
|
|
1286
1322
|
*/
|
|
1287
|
-
abstract buildJsonObject(value: Record<string, Expression<unknown>>):
|
|
1323
|
+
abstract buildJsonObject(value: Record<string, Expression<unknown>>): AliasableExpression<unknown>;
|
|
1288
1324
|
/**
|
|
1289
1325
|
* Builds an Kysely expression that returns the length of an array.
|
|
1290
1326
|
*/
|
|
1291
|
-
abstract buildArrayLength(array: Expression<unknown>):
|
|
1327
|
+
abstract buildArrayLength(array: Expression<unknown>): AliasableExpression<number>;
|
|
1292
1328
|
/**
|
|
1293
1329
|
* Builds an array literal SQL string for the given values.
|
|
1294
1330
|
*/
|
|
1295
|
-
abstract buildArrayLiteralSQL(values: unknown[]):
|
|
1331
|
+
abstract buildArrayLiteralSQL(values: unknown[]): AliasableExpression<unknown>;
|
|
1296
1332
|
/**
|
|
1297
|
-
*
|
|
1298
|
-
*/
|
|
1299
|
-
abstract get supportsUpdateWithLimit(): boolean;
|
|
1300
|
-
/**
|
|
1301
|
-
* Whether the dialect supports deleting with a limit on the number of deleted rows.
|
|
1333
|
+
* Casts the given expression to an integer type.
|
|
1302
1334
|
*/
|
|
1303
|
-
abstract
|
|
1335
|
+
abstract castInt<T extends Expression<any>>(expression: T): T;
|
|
1304
1336
|
/**
|
|
1305
|
-
*
|
|
1337
|
+
* Casts the given expression to a text type.
|
|
1306
1338
|
*/
|
|
1307
|
-
abstract
|
|
1339
|
+
abstract castText<T extends Expression<any>>(expression: T): T;
|
|
1308
1340
|
/**
|
|
1309
|
-
*
|
|
1341
|
+
* Trims double quotes from the start and end of a text expression.
|
|
1310
1342
|
*/
|
|
1311
|
-
abstract
|
|
1343
|
+
abstract trimTextQuotes<T extends Expression<string>>(expression: T): T;
|
|
1312
1344
|
/**
|
|
1313
1345
|
* Gets the SQL column type for the given field definition.
|
|
1314
1346
|
*/
|
|
@@ -1317,6 +1349,10 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
1317
1349
|
supportsILike: boolean;
|
|
1318
1350
|
likeCaseSensitive: boolean;
|
|
1319
1351
|
};
|
|
1352
|
+
/**
|
|
1353
|
+
* Builds a VALUES table and select all fields from it.
|
|
1354
|
+
*/
|
|
1355
|
+
abstract buildValuesTableSelect(fields: FieldDef[], rows: unknown[][]): SelectQueryBuilder<any, any, any>;
|
|
1320
1356
|
/**
|
|
1321
1357
|
* Builds a JSON path selection expression.
|
|
1322
1358
|
*/
|
|
@@ -1329,6 +1365,10 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
1329
1365
|
* Builds a JSON array exists predicate (returning if any element matches the filter).
|
|
1330
1366
|
*/
|
|
1331
1367
|
protected abstract buildJsonArrayExistsPredicate(receiver: Expression<any>, buildFilter: (elem: Expression<any>) => Expression<SqlBool>): Expression<SqlBool>;
|
|
1368
|
+
/**
|
|
1369
|
+
* Builds an ORDER BY clause for a field with NULLS FIRST/LAST support.
|
|
1370
|
+
*/
|
|
1371
|
+
protected abstract buildOrderByField(query: SelectQueryBuilder<any, any, any>, field: Expression<unknown>, sort: SortOrder, nulls: 'first' | 'last'): SelectQueryBuilder<any, any, any>;
|
|
1332
1372
|
}
|
|
1333
1373
|
|
|
1334
1374
|
declare class InputValidator<Schema extends SchemaDef> {
|
|
@@ -1338,8 +1378,6 @@ declare class InputValidator<Schema extends SchemaDef> {
|
|
|
1338
1378
|
private get schema();
|
|
1339
1379
|
private get options();
|
|
1340
1380
|
private get extraValidationsEnabled();
|
|
1341
|
-
validateProcedureInput(proc: string, input: unknown): unknown;
|
|
1342
|
-
private makeProcedureParamSchema;
|
|
1343
1381
|
validateFindArgs(model: GetModels<Schema>, args: unknown, operation: CoreCrudOperations): FindArgs<Schema, GetModels<Schema>, true> | undefined;
|
|
1344
1382
|
validateExistsArgs(model: GetModels<Schema>, args: unknown): ExistsArgs<Schema, GetModels<Schema>> | undefined;
|
|
1345
1383
|
validateCreateArgs(model: GetModels<Schema>, args: unknown): CreateArgs<Schema, GetModels<Schema>>;
|
|
@@ -1354,8 +1392,7 @@ declare class InputValidator<Schema extends SchemaDef> {
|
|
|
1354
1392
|
validateCountArgs(model: GetModels<Schema>, args: unknown): CountArgs<Schema, GetModels<Schema>> | undefined;
|
|
1355
1393
|
validateAggregateArgs(model: GetModels<Schema>, args: unknown): AggregateArgs<Schema, GetModels<Schema>>;
|
|
1356
1394
|
validateGroupByArgs(model: GetModels<Schema>, args: unknown): GroupByArgs<Schema, GetModels<Schema>>;
|
|
1357
|
-
|
|
1358
|
-
private setSchemaCache;
|
|
1395
|
+
validateProcedureInput(proc: string, input: unknown): unknown;
|
|
1359
1396
|
private validate;
|
|
1360
1397
|
private mergePluginArgsSchema;
|
|
1361
1398
|
private getPluginExtQueryArgsSchema;
|
|
@@ -1408,14 +1445,18 @@ declare class InputValidator<Schema extends SchemaDef> {
|
|
|
1408
1445
|
private makeUpdateDataSchema;
|
|
1409
1446
|
private makeDeleteSchema;
|
|
1410
1447
|
private makeDeleteManySchema;
|
|
1411
|
-
makeCountSchema(model:
|
|
1448
|
+
makeCountSchema(model: string): z.ZodOptional<z.ZodObject<z.core.$ZodLooseShape, z.core.$strict>>;
|
|
1412
1449
|
private makeCountAggregateInputSchema;
|
|
1413
|
-
makeAggregateSchema(model:
|
|
1414
|
-
makeSumAvgInputSchema(model:
|
|
1415
|
-
makeMinMaxInputSchema(model:
|
|
1450
|
+
makeAggregateSchema(model: string): z.ZodOptional<z.ZodObject<z.core.$ZodLooseShape, z.core.$strict>>;
|
|
1451
|
+
makeSumAvgInputSchema(model: string): z.ZodObject<Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.core.$strict>;
|
|
1452
|
+
makeMinMaxInputSchema(model: string): z.ZodObject<Record<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>, z.core.$strict>;
|
|
1416
1453
|
private makeGroupBySchema;
|
|
1417
1454
|
private onlyAggregationFields;
|
|
1418
1455
|
private makeHavingSchema;
|
|
1456
|
+
private makeProcedureParamSchema;
|
|
1457
|
+
getCache(cacheKey: string): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>> | undefined;
|
|
1458
|
+
setCache(cacheKey: string, schema: ZodType): Map<string, z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
|
|
1459
|
+
private printCacheStats;
|
|
1419
1460
|
private makeSkipSchema;
|
|
1420
1461
|
private makeTakeSchema;
|
|
1421
1462
|
private refineForSelectIncludeMutuallyExclusive;
|
|
@@ -1672,6 +1713,11 @@ type PluginAfterEntityMutationArgs<Schema extends SchemaDef> = MutationHooksArgs
|
|
|
1672
1713
|
* Loads the entities that have been mutated.
|
|
1673
1714
|
*/
|
|
1674
1715
|
loadAfterMutationEntities(): Promise<Record<string, unknown>[] | undefined>;
|
|
1716
|
+
/**
|
|
1717
|
+
* The entities before mutation. Only available if `beforeEntityMutation` hook is provided and
|
|
1718
|
+
* the `loadBeforeMutationEntities` function is called in that hook.
|
|
1719
|
+
*/
|
|
1720
|
+
beforeMutationEntities?: Record<string, unknown>[];
|
|
1675
1721
|
/**
|
|
1676
1722
|
* The ZenStack client you can use to perform additional operations.
|
|
1677
1723
|
* See {@link EntityMutationHooksDef.runAfterMutationWithinTransaction} for detailed transaction behavior.
|
|
@@ -1866,7 +1912,51 @@ type CRUD_EXT = CRUD | 'post-update';
|
|
|
1866
1912
|
* Extended CRUD operations including 'post-update'.
|
|
1867
1913
|
*/
|
|
1868
1914
|
declare const CRUD_EXT: readonly ["create", "read", "update", "delete", "post-update"];
|
|
1869
|
-
type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs> = {
|
|
1915
|
+
type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs> = CommonModelOperations<Schema, Model, Options, ExtQueryArgs> & (Schema['provider']['type'] extends 'mysql' ? {} : {
|
|
1916
|
+
/**
|
|
1917
|
+
* Creates multiple entities and returns them.
|
|
1918
|
+
* @param args - create args. See {@link createMany} for input. Use
|
|
1919
|
+
* `select` and `omit` to control the fields returned.
|
|
1920
|
+
* @returns the created entities
|
|
1921
|
+
*
|
|
1922
|
+
* @example
|
|
1923
|
+
* ```ts
|
|
1924
|
+
* // create multiple entities and return selected fields
|
|
1925
|
+
* await db.user.createManyAndReturn({
|
|
1926
|
+
* data: [
|
|
1927
|
+
* { name: 'Alex', email: 'alex@zenstack.dev' },
|
|
1928
|
+
* { name: 'John', email: 'john@zenstack.dev' }
|
|
1929
|
+
* ],
|
|
1930
|
+
* select: { id: true, email: true }
|
|
1931
|
+
* });
|
|
1932
|
+
* ```
|
|
1933
|
+
*/
|
|
1934
|
+
createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
1935
|
+
/**
|
|
1936
|
+
* Updates multiple entities and returns them.
|
|
1937
|
+
* @param args - update args. Only scalar fields are allowed for data.
|
|
1938
|
+
* @returns the updated entities
|
|
1939
|
+
*
|
|
1940
|
+
* @example
|
|
1941
|
+
* ```ts
|
|
1942
|
+
* // update many entities and return selected fields
|
|
1943
|
+
* await db.user.updateManyAndReturn({
|
|
1944
|
+
* where: { email: { endsWith: '@zenstack.dev' } },
|
|
1945
|
+
* data: { role: 'ADMIN' },
|
|
1946
|
+
* select: { id: true, email: true }
|
|
1947
|
+
* }); // result: `Array<{ id: string; email: string }>`
|
|
1948
|
+
*
|
|
1949
|
+
* // limit the number of updated entities
|
|
1950
|
+
* await db.user.updateManyAndReturn({
|
|
1951
|
+
* where: { email: { endsWith: '@zenstack.dev' } },
|
|
1952
|
+
* data: { role: 'ADMIN' },
|
|
1953
|
+
* limit: 10
|
|
1954
|
+
* });
|
|
1955
|
+
* ```
|
|
1956
|
+
*/
|
|
1957
|
+
updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
1958
|
+
});
|
|
1959
|
+
type CommonModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema>, Options extends QueryOptions<Schema>, ExtQueryArgs> = {
|
|
1870
1960
|
/**
|
|
1871
1961
|
* Returns a list of entities.
|
|
1872
1962
|
* @param args - query args
|
|
@@ -2056,25 +2146,6 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2056
2146
|
* ```
|
|
2057
2147
|
*/
|
|
2058
2148
|
createMany<T extends CreateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>>(args?: SelectSubset<T, CreateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createMany'>>): ZenStackPromise<Schema, BatchResult>;
|
|
2059
|
-
/**
|
|
2060
|
-
* Creates multiple entities and returns them.
|
|
2061
|
-
* @param args - create args. See {@link createMany} for input. Use
|
|
2062
|
-
* `select` and `omit` to control the fields returned.
|
|
2063
|
-
* @returns the created entities
|
|
2064
|
-
*
|
|
2065
|
-
* @example
|
|
2066
|
-
* ```ts
|
|
2067
|
-
* // create multiple entities and return selected fields
|
|
2068
|
-
* await db.user.createManyAndReturn({
|
|
2069
|
-
* data: [
|
|
2070
|
-
* { name: 'Alex', email: 'alex@zenstack.dev' },
|
|
2071
|
-
* { name: 'John', email: 'john@zenstack.dev' }
|
|
2072
|
-
* ],
|
|
2073
|
-
* select: { id: true, email: true }
|
|
2074
|
-
* });
|
|
2075
|
-
* ```
|
|
2076
|
-
*/
|
|
2077
|
-
createManyAndReturn<T extends CreateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>(args?: SelectSubset<T, CreateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'createManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2078
2149
|
/**
|
|
2079
2150
|
* Updates a uniquely identified entity.
|
|
2080
2151
|
* @param args - update args. See {@link findMany} for how to control
|
|
@@ -2214,29 +2285,6 @@ type AllModelOperations<Schema extends SchemaDef, Model extends GetModels<Schema
|
|
|
2214
2285
|
* });
|
|
2215
2286
|
*/
|
|
2216
2287
|
updateMany<T extends UpdateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>>(args: Subset<T, UpdateManyArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateMany'>>): ZenStackPromise<Schema, BatchResult>;
|
|
2217
|
-
/**
|
|
2218
|
-
* Updates multiple entities and returns them.
|
|
2219
|
-
* @param args - update args. Only scalar fields are allowed for data.
|
|
2220
|
-
* @returns the updated entities
|
|
2221
|
-
*
|
|
2222
|
-
* @example
|
|
2223
|
-
* ```ts
|
|
2224
|
-
* // update many entities and return selected fields
|
|
2225
|
-
* await db.user.updateManyAndReturn({
|
|
2226
|
-
* where: { email: { endsWith: '@zenstack.dev' } },
|
|
2227
|
-
* data: { role: 'ADMIN' },
|
|
2228
|
-
* select: { id: true, email: true }
|
|
2229
|
-
* }); // result: `Array<{ id: string; email: string }>`
|
|
2230
|
-
*
|
|
2231
|
-
* // limit the number of updated entities
|
|
2232
|
-
* await db.user.updateManyAndReturn({
|
|
2233
|
-
* where: { email: { endsWith: '@zenstack.dev' } },
|
|
2234
|
-
* data: { role: 'ADMIN' },
|
|
2235
|
-
* limit: 10
|
|
2236
|
-
* });
|
|
2237
|
-
* ```
|
|
2238
|
-
*/
|
|
2239
|
-
updateManyAndReturn<T extends UpdateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>(args: Subset<T, UpdateManyAndReturnArgs<Schema, Model> & ExtractExtQueryArgs<ExtQueryArgs, 'updateManyAndReturn'>>): ZenStackPromise<Schema, SimplifiedPlainResult<Schema, Model, T, Options>[]>;
|
|
2240
2288
|
/**
|
|
2241
2289
|
* Creates or updates an entity.
|
|
2242
2290
|
* @param args - upsert args
|
|
@@ -2606,6 +2654,14 @@ declare function requireModel(schema: SchemaDef, model: string): ModelDef;
|
|
|
2606
2654
|
declare function requireTypeDef(schema: SchemaDef, type: string): _zenstackhq_schema.TypeDefDef;
|
|
2607
2655
|
declare function getField(schema: SchemaDef, model: string, field: string): FieldDef | undefined;
|
|
2608
2656
|
declare function requireField(schema: SchemaDef, modelOrType: string, field: string): FieldDef;
|
|
2657
|
+
/**
|
|
2658
|
+
* Gets all model fields, by default non-relation, non-computed, non-inherited fields only.
|
|
2659
|
+
*/
|
|
2660
|
+
declare function getModelFields(schema: SchemaDef, model: string, options?: {
|
|
2661
|
+
relations?: boolean;
|
|
2662
|
+
computed?: boolean;
|
|
2663
|
+
inherited?: boolean;
|
|
2664
|
+
}): FieldDef[];
|
|
2609
2665
|
declare function getIdFields<Schema extends SchemaDef>(schema: SchemaDef, model: GetModels<Schema>): readonly string[] | undefined;
|
|
2610
2666
|
declare function requireIdFields(schema: SchemaDef, model: string): readonly string[];
|
|
2611
2667
|
declare function getRelationForeignKeyFieldPairs(schema: SchemaDef, model: string, relationField: string): {
|
|
@@ -2632,7 +2688,9 @@ declare function isEnum(schema: SchemaDef, type: string): boolean;
|
|
|
2632
2688
|
declare function getEnum(schema: SchemaDef, type: string): _zenstackhq_schema.EnumDef | undefined;
|
|
2633
2689
|
declare function isTypeDef(schema: SchemaDef, type: string): boolean;
|
|
2634
2690
|
declare function buildJoinPairs(schema: SchemaDef, model: string, modelAlias: string, relationField: string, relationModelAlias: string): [string, string][];
|
|
2635
|
-
declare function makeDefaultOrderBy
|
|
2691
|
+
declare function makeDefaultOrderBy(schema: SchemaDef, model: string): {
|
|
2692
|
+
readonly [x: string]: "asc";
|
|
2693
|
+
}[];
|
|
2636
2694
|
declare function getManyToManyRelation(schema: SchemaDef, model: string, field: string): {
|
|
2637
2695
|
parentFkName: string;
|
|
2638
2696
|
parentPKName: string;
|
|
@@ -2688,6 +2746,7 @@ declare const queryUtils_getIdFields: typeof getIdFields;
|
|
|
2688
2746
|
declare const queryUtils_getIdValues: typeof getIdValues;
|
|
2689
2747
|
declare const queryUtils_getManyToManyRelation: typeof getManyToManyRelation;
|
|
2690
2748
|
declare const queryUtils_getModel: typeof getModel;
|
|
2749
|
+
declare const queryUtils_getModelFields: typeof getModelFields;
|
|
2691
2750
|
declare const queryUtils_getRelationForeignKeyFieldPairs: typeof getRelationForeignKeyFieldPairs;
|
|
2692
2751
|
declare const queryUtils_getTypeDef: typeof getTypeDef;
|
|
2693
2752
|
declare const queryUtils_getUniqueFields: typeof getUniqueFields;
|
|
@@ -2705,7 +2764,7 @@ declare const queryUtils_requireModel: typeof requireModel;
|
|
|
2705
2764
|
declare const queryUtils_requireTypeDef: typeof requireTypeDef;
|
|
2706
2765
|
declare const queryUtils_stripAlias: typeof stripAlias;
|
|
2707
2766
|
declare namespace queryUtils {
|
|
2708
|
-
export { queryUtils_aggregate as aggregate, queryUtils_buildJoinPairs as buildJoinPairs, queryUtils_ensureArray as ensureArray, queryUtils_extractFieldName as extractFieldName, queryUtils_extractIdFields as extractIdFields, queryUtils_extractModelName as extractModelName, queryUtils_fieldHasDefaultValue as fieldHasDefaultValue, queryUtils_flattenCompoundUniqueFilters as flattenCompoundUniqueFilters, queryUtils_getDelegateDescendantModels as getDelegateDescendantModels, queryUtils_getDiscriminatorField as getDiscriminatorField, queryUtils_getEnum as getEnum, queryUtils_getField as getField, queryUtils_getIdFields as getIdFields, queryUtils_getIdValues as getIdValues, queryUtils_getManyToManyRelation as getManyToManyRelation, queryUtils_getModel as getModel, queryUtils_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 };
|
|
2767
|
+
export { queryUtils_aggregate as aggregate, queryUtils_buildJoinPairs as buildJoinPairs, queryUtils_ensureArray as ensureArray, queryUtils_extractFieldName as extractFieldName, queryUtils_extractIdFields as extractIdFields, queryUtils_extractModelName as extractModelName, queryUtils_fieldHasDefaultValue as fieldHasDefaultValue, queryUtils_flattenCompoundUniqueFilters as flattenCompoundUniqueFilters, queryUtils_getDelegateDescendantModels as getDelegateDescendantModels, queryUtils_getDiscriminatorField as getDiscriminatorField, queryUtils_getEnum as getEnum, queryUtils_getField as getField, queryUtils_getIdFields as getIdFields, queryUtils_getIdValues as getIdValues, queryUtils_getManyToManyRelation as getManyToManyRelation, queryUtils_getModel as getModel, queryUtils_getModelFields as getModelFields, queryUtils_getRelationForeignKeyFieldPairs as getRelationForeignKeyFieldPairs, queryUtils_getTypeDef as getTypeDef, queryUtils_getUniqueFields as getUniqueFields, queryUtils_hasModel as hasModel, queryUtils_isEnum as isEnum, queryUtils_isForeignKeyField as isForeignKeyField, queryUtils_isInheritedField as isInheritedField, queryUtils_isRelationField as isRelationField, queryUtils_isScalarField as isScalarField, queryUtils_isTypeDef as isTypeDef, queryUtils_makeDefaultOrderBy as makeDefaultOrderBy, queryUtils_requireField as requireField, queryUtils_requireIdFields as requireIdFields, queryUtils_requireModel as requireModel, queryUtils_requireTypeDef as requireTypeDef, queryUtils_stripAlias as stripAlias };
|
|
2709
2768
|
}
|
|
2710
2769
|
|
|
2711
2770
|
type VisitResult = void | {
|
|
@@ -2720,6 +2779,7 @@ declare class ExpressionVisitor {
|
|
|
2720
2779
|
protected visitBinary(e: BinaryExpression): VisitResult;
|
|
2721
2780
|
protected visitUnary(e: UnaryExpression): VisitResult;
|
|
2722
2781
|
protected visitCall(e: CallExpression): VisitResult;
|
|
2782
|
+
protected visitBinding(_e: BindingExpression): VisitResult;
|
|
2723
2783
|
protected visitThis(_e: ThisExpression): VisitResult;
|
|
2724
2784
|
protected visitNull(_e: NullExpression): VisitResult;
|
|
2725
2785
|
}
|