@zenstackhq/runtime 3.0.0-alpha.18 → 3.0.0-alpha.19
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/{contract-Cn4sSxg8.d.cts → contract-CxX20JtH.d.cts} +16 -10
- package/dist/{contract-Cn4sSxg8.d.ts → contract-CxX20JtH.d.ts} +16 -10
- package/dist/index.cjs +207 -140
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +207 -140
- package/dist/index.js.map +1 -1
- package/dist/plugins/policy/index.cjs +98 -42
- package/dist/plugins/policy/index.cjs.map +1 -1
- package/dist/plugins/policy/index.d.cts +1 -1
- package/dist/plugins/policy/index.d.ts +1 -1
- package/dist/plugins/policy/index.js +98 -42
- package/dist/plugins/policy/index.js.map +1 -1
- package/package.json +9 -9
|
@@ -96,7 +96,7 @@ type BatchResult = {
|
|
|
96
96
|
count: number;
|
|
97
97
|
};
|
|
98
98
|
type WhereInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ScalarOnly extends boolean = false> = {
|
|
99
|
-
[Key in GetModelFields<Schema, Model> as ScalarOnly extends true ? Key extends RelationFields<Schema, Model> ? never : Key : Key]?: Key extends RelationFields<Schema, Model> ? RelationFilter<Schema, Model, Key> : GetModelFieldType<Schema, Model, Key> extends GetEnums<Schema> ? EnumFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>> : FieldIsArray<Schema, Model, Key> extends true ? ArrayFilter<GetModelFieldType<Schema, Model, Key>> : PrimitiveFilter<GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>>;
|
|
99
|
+
[Key in GetModelFields<Schema, Model> as ScalarOnly extends true ? Key extends RelationFields<Schema, Model> ? never : Key : Key]?: Key extends RelationFields<Schema, Model> ? RelationFilter<Schema, Model, Key> : GetModelFieldType<Schema, Model, Key> extends GetEnums<Schema> ? EnumFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>> : FieldIsArray<Schema, Model, Key> extends true ? ArrayFilter<GetModelFieldType<Schema, Model, Key>> : PrimitiveFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>>;
|
|
100
100
|
} & {
|
|
101
101
|
$expr?: (eb: ExpressionBuilder<ToKyselySchema<Schema>, Model>) => OperandExpression<SqlBool>;
|
|
102
102
|
} & {
|
|
@@ -117,8 +117,8 @@ type ArrayFilter<T extends string> = {
|
|
|
117
117
|
hasSome?: MapBaseType$1<T>[];
|
|
118
118
|
isEmpty?: boolean;
|
|
119
119
|
};
|
|
120
|
-
type PrimitiveFilter<T extends string, Nullable extends boolean> = T extends 'String' ? StringFilter<Nullable> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<T, Nullable> : T extends 'Boolean' ? BooleanFilter<Nullable> : T extends 'DateTime' ? DateTimeFilter<Nullable> : T extends 'Bytes' ? BytesFilter<Nullable> : T extends 'Json' ? 'Not implemented yet' : never;
|
|
121
|
-
type CommonPrimitiveFilter<DataType, T extends BuiltinType, Nullable extends boolean> = {
|
|
120
|
+
type PrimitiveFilter<Schema extends SchemaDef, T extends string, Nullable extends boolean> = T extends 'String' ? StringFilter<Schema, Nullable> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<Schema, T, Nullable> : T extends 'Boolean' ? BooleanFilter<Nullable> : T extends 'DateTime' ? DateTimeFilter<Schema, Nullable> : T extends 'Bytes' ? BytesFilter<Nullable> : T extends 'Json' ? 'Not implemented yet' : never;
|
|
121
|
+
type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends BuiltinType, Nullable extends boolean> = {
|
|
122
122
|
equals?: NullableIf<DataType, Nullable>;
|
|
123
123
|
in?: DataType[];
|
|
124
124
|
notIn?: DataType[];
|
|
@@ -126,16 +126,17 @@ type CommonPrimitiveFilter<DataType, T extends BuiltinType, Nullable extends boo
|
|
|
126
126
|
lte?: DataType;
|
|
127
127
|
gt?: DataType;
|
|
128
128
|
gte?: DataType;
|
|
129
|
-
not?: PrimitiveFilter<T, Nullable>;
|
|
129
|
+
not?: PrimitiveFilter<Schema, T, Nullable>;
|
|
130
130
|
};
|
|
131
|
-
type StringFilter<Nullable extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<string, 'String', Nullable> & {
|
|
131
|
+
type StringFilter<Schema extends SchemaDef, Nullable extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<Schema, string, 'String', Nullable> & {
|
|
132
132
|
contains?: string;
|
|
133
133
|
startsWith?: string;
|
|
134
134
|
endsWith?: string;
|
|
135
|
+
} & (ProviderSupportsCaseSensitivity<Schema> extends true ? {
|
|
135
136
|
mode?: 'default' | 'insensitive';
|
|
136
|
-
});
|
|
137
|
-
type NumberFilter<T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean> = NullableIf<number | bigint, Nullable> | CommonPrimitiveFilter<number, T, Nullable>;
|
|
138
|
-
type DateTimeFilter<Nullable extends boolean> = NullableIf<Date | string, Nullable> | CommonPrimitiveFilter<Date | string, 'DateTime', Nullable>;
|
|
137
|
+
} : {}));
|
|
138
|
+
type NumberFilter<Schema extends SchemaDef, T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean> = NullableIf<number | bigint, Nullable> | CommonPrimitiveFilter<Schema, number, T, Nullable>;
|
|
139
|
+
type DateTimeFilter<Schema extends SchemaDef, Nullable extends boolean> = NullableIf<Date | string, Nullable> | CommonPrimitiveFilter<Schema, Date | string, 'DateTime', Nullable>;
|
|
139
140
|
type BytesFilter<Nullable extends boolean> = NullableIf<Uint8Array | Buffer, Nullable> | {
|
|
140
141
|
equals?: NullableIf<Uint8Array, Nullable>;
|
|
141
142
|
in?: Uint8Array[];
|
|
@@ -187,9 +188,9 @@ type Cursor<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
|
|
|
187
188
|
type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
|
|
188
189
|
[Key in NonRelationFields<Schema, Model>]?: true;
|
|
189
190
|
} & (AllowRelation extends true ? IncludeInput<Schema, Model> : {}) & // relation fields
|
|
190
|
-
(AllowCount extends true ? {
|
|
191
|
+
(AllowCount extends true ? HasToManyRelations<Schema, Model> extends true ? {
|
|
191
192
|
_count?: SelectCount<Schema, Model>;
|
|
192
|
-
} : {});
|
|
193
|
+
} : {} : {});
|
|
193
194
|
type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>> = true | {
|
|
194
195
|
select: {
|
|
195
196
|
[Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true | {
|
|
@@ -486,6 +487,10 @@ type NonOwnedRelationFields<Schema extends SchemaDef, Model extends GetModels<Sc
|
|
|
486
487
|
references: unknown[];
|
|
487
488
|
} ? never : Key]: true;
|
|
488
489
|
};
|
|
490
|
+
type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
|
|
491
|
+
[Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true;
|
|
492
|
+
} extends never ? false : true;
|
|
493
|
+
type ProviderSupportsCaseSensitivity<Schema extends SchemaDef> = Schema['provider'] extends 'postgresql' ? true : false;
|
|
489
494
|
|
|
490
495
|
type AuthType<Schema extends SchemaDef> = string extends GetModels<Schema> ? Record<string, unknown> : Schema['authType'] extends GetModels<Schema> ? Partial<ModelResult<Schema, Schema['authType']>> : never;
|
|
491
496
|
|
|
@@ -520,6 +525,7 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
520
525
|
buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit?: Record<string, boolean | undefined>): SelectQueryBuilder<any, any, any>;
|
|
521
526
|
buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
|
|
522
527
|
buildDelegateJoin(thisModel: string, otherModel: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
|
|
528
|
+
buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any): ExpressionWrapper<any, any, unknown>;
|
|
523
529
|
private negateSort;
|
|
524
530
|
true(eb: ExpressionBuilder<any, any>): Expression<SqlBool>;
|
|
525
531
|
false(eb: ExpressionBuilder<any, any>): Expression<SqlBool>;
|
|
@@ -96,7 +96,7 @@ type BatchResult = {
|
|
|
96
96
|
count: number;
|
|
97
97
|
};
|
|
98
98
|
type WhereInput<Schema extends SchemaDef, Model extends GetModels<Schema>, ScalarOnly extends boolean = false> = {
|
|
99
|
-
[Key in GetModelFields<Schema, Model> as ScalarOnly extends true ? Key extends RelationFields<Schema, Model> ? never : Key : Key]?: Key extends RelationFields<Schema, Model> ? RelationFilter<Schema, Model, Key> : GetModelFieldType<Schema, Model, Key> extends GetEnums<Schema> ? EnumFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>> : FieldIsArray<Schema, Model, Key> extends true ? ArrayFilter<GetModelFieldType<Schema, Model, Key>> : PrimitiveFilter<GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>>;
|
|
99
|
+
[Key in GetModelFields<Schema, Model> as ScalarOnly extends true ? Key extends RelationFields<Schema, Model> ? never : Key : Key]?: Key extends RelationFields<Schema, Model> ? RelationFilter<Schema, Model, Key> : GetModelFieldType<Schema, Model, Key> extends GetEnums<Schema> ? EnumFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>> : FieldIsArray<Schema, Model, Key> extends true ? ArrayFilter<GetModelFieldType<Schema, Model, Key>> : PrimitiveFilter<Schema, GetModelFieldType<Schema, Model, Key>, ModelFieldIsOptional<Schema, Model, Key>>;
|
|
100
100
|
} & {
|
|
101
101
|
$expr?: (eb: ExpressionBuilder<ToKyselySchema<Schema>, Model>) => OperandExpression<SqlBool>;
|
|
102
102
|
} & {
|
|
@@ -117,8 +117,8 @@ type ArrayFilter<T extends string> = {
|
|
|
117
117
|
hasSome?: MapBaseType$1<T>[];
|
|
118
118
|
isEmpty?: boolean;
|
|
119
119
|
};
|
|
120
|
-
type PrimitiveFilter<T extends string, Nullable extends boolean> = T extends 'String' ? StringFilter<Nullable> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<T, Nullable> : T extends 'Boolean' ? BooleanFilter<Nullable> : T extends 'DateTime' ? DateTimeFilter<Nullable> : T extends 'Bytes' ? BytesFilter<Nullable> : T extends 'Json' ? 'Not implemented yet' : never;
|
|
121
|
-
type CommonPrimitiveFilter<DataType, T extends BuiltinType, Nullable extends boolean> = {
|
|
120
|
+
type PrimitiveFilter<Schema extends SchemaDef, T extends string, Nullable extends boolean> = T extends 'String' ? StringFilter<Schema, Nullable> : T extends 'Int' | 'Float' | 'Decimal' | 'BigInt' ? NumberFilter<Schema, T, Nullable> : T extends 'Boolean' ? BooleanFilter<Nullable> : T extends 'DateTime' ? DateTimeFilter<Schema, Nullable> : T extends 'Bytes' ? BytesFilter<Nullable> : T extends 'Json' ? 'Not implemented yet' : never;
|
|
121
|
+
type CommonPrimitiveFilter<Schema extends SchemaDef, DataType, T extends BuiltinType, Nullable extends boolean> = {
|
|
122
122
|
equals?: NullableIf<DataType, Nullable>;
|
|
123
123
|
in?: DataType[];
|
|
124
124
|
notIn?: DataType[];
|
|
@@ -126,16 +126,17 @@ type CommonPrimitiveFilter<DataType, T extends BuiltinType, Nullable extends boo
|
|
|
126
126
|
lte?: DataType;
|
|
127
127
|
gt?: DataType;
|
|
128
128
|
gte?: DataType;
|
|
129
|
-
not?: PrimitiveFilter<T, Nullable>;
|
|
129
|
+
not?: PrimitiveFilter<Schema, T, Nullable>;
|
|
130
130
|
};
|
|
131
|
-
type StringFilter<Nullable extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<string, 'String', Nullable> & {
|
|
131
|
+
type StringFilter<Schema extends SchemaDef, Nullable extends boolean> = NullableIf<string, Nullable> | (CommonPrimitiveFilter<Schema, string, 'String', Nullable> & {
|
|
132
132
|
contains?: string;
|
|
133
133
|
startsWith?: string;
|
|
134
134
|
endsWith?: string;
|
|
135
|
+
} & (ProviderSupportsCaseSensitivity<Schema> extends true ? {
|
|
135
136
|
mode?: 'default' | 'insensitive';
|
|
136
|
-
});
|
|
137
|
-
type NumberFilter<T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean> = NullableIf<number | bigint, Nullable> | CommonPrimitiveFilter<number, T, Nullable>;
|
|
138
|
-
type DateTimeFilter<Nullable extends boolean> = NullableIf<Date | string, Nullable> | CommonPrimitiveFilter<Date | string, 'DateTime', Nullable>;
|
|
137
|
+
} : {}));
|
|
138
|
+
type NumberFilter<Schema extends SchemaDef, T extends 'Int' | 'Float' | 'Decimal' | 'BigInt', Nullable extends boolean> = NullableIf<number | bigint, Nullable> | CommonPrimitiveFilter<Schema, number, T, Nullable>;
|
|
139
|
+
type DateTimeFilter<Schema extends SchemaDef, Nullable extends boolean> = NullableIf<Date | string, Nullable> | CommonPrimitiveFilter<Schema, Date | string, 'DateTime', Nullable>;
|
|
139
140
|
type BytesFilter<Nullable extends boolean> = NullableIf<Uint8Array | Buffer, Nullable> | {
|
|
140
141
|
equals?: NullableIf<Uint8Array, Nullable>;
|
|
141
142
|
in?: Uint8Array[];
|
|
@@ -187,9 +188,9 @@ type Cursor<Schema extends SchemaDef, Model extends GetModels<Schema>> = {
|
|
|
187
188
|
type SelectInput<Schema extends SchemaDef, Model extends GetModels<Schema>, AllowCount extends boolean = true, AllowRelation extends boolean = true> = {
|
|
188
189
|
[Key in NonRelationFields<Schema, Model>]?: true;
|
|
189
190
|
} & (AllowRelation extends true ? IncludeInput<Schema, Model> : {}) & // relation fields
|
|
190
|
-
(AllowCount extends true ? {
|
|
191
|
+
(AllowCount extends true ? HasToManyRelations<Schema, Model> extends true ? {
|
|
191
192
|
_count?: SelectCount<Schema, Model>;
|
|
192
|
-
} : {});
|
|
193
|
+
} : {} : {});
|
|
193
194
|
type SelectCount<Schema extends SchemaDef, Model extends GetModels<Schema>> = true | {
|
|
194
195
|
select: {
|
|
195
196
|
[Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true | {
|
|
@@ -486,6 +487,10 @@ type NonOwnedRelationFields<Schema extends SchemaDef, Model extends GetModels<Sc
|
|
|
486
487
|
references: unknown[];
|
|
487
488
|
} ? never : Key]: true;
|
|
488
489
|
};
|
|
490
|
+
type HasToManyRelations<Schema extends SchemaDef, Model extends GetModels<Schema>> = keyof {
|
|
491
|
+
[Key in RelationFields<Schema, Model> as FieldIsArray<Schema, Model, Key> extends true ? Key : never]: true;
|
|
492
|
+
} extends never ? false : true;
|
|
493
|
+
type ProviderSupportsCaseSensitivity<Schema extends SchemaDef> = Schema['provider'] extends 'postgresql' ? true : false;
|
|
489
494
|
|
|
490
495
|
type AuthType<Schema extends SchemaDef> = string extends GetModels<Schema> ? Record<string, unknown> : Schema['authType'] extends GetModels<Schema> ? Partial<ModelResult<Schema, Schema['authType']>> : never;
|
|
491
496
|
|
|
@@ -520,6 +525,7 @@ declare abstract class BaseCrudDialect<Schema extends SchemaDef> {
|
|
|
520
525
|
buildSelectAllFields(model: string, query: SelectQueryBuilder<any, any, any>, omit?: Record<string, boolean | undefined>): SelectQueryBuilder<any, any, any>;
|
|
521
526
|
buildSelectField(query: SelectQueryBuilder<any, any, any>, model: string, modelAlias: string, field: string): SelectQueryBuilder<any, any, any>;
|
|
522
527
|
buildDelegateJoin(thisModel: string, otherModel: string, query: SelectQueryBuilder<any, any, any>): SelectQueryBuilder<any, any, any>;
|
|
528
|
+
buildCountJson(model: string, eb: ExpressionBuilder<any, any>, parentAlias: string, payload: any): ExpressionWrapper<any, any, unknown>;
|
|
523
529
|
private negateSort;
|
|
524
530
|
true(eb: ExpressionBuilder<any, any>): Expression<SqlBool>;
|
|
525
531
|
false(eb: ExpressionBuilder<any, any>): Expression<SqlBool>;
|