@zenstackhq/orm 3.0.0-beta.24 → 3.0.0-beta.26
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 +82 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +638 -580
- package/dist/index.d.ts +638 -580
- package/dist/index.js +82 -21
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
package/dist/index.cjs
CHANGED
|
@@ -1128,7 +1128,7 @@ var BaseCrudDialect = class {
|
|
|
1128
1128
|
if (isRelationField(this.schema, model, field)) {
|
|
1129
1129
|
continue;
|
|
1130
1130
|
}
|
|
1131
|
-
if (omit
|
|
1131
|
+
if (this.shouldOmitField(omit, model, field)) {
|
|
1132
1132
|
continue;
|
|
1133
1133
|
}
|
|
1134
1134
|
result = this.buildSelectField(result, model, modelAlias, field);
|
|
@@ -1149,6 +1149,16 @@ var BaseCrudDialect = class {
|
|
|
1149
1149
|
}
|
|
1150
1150
|
return result;
|
|
1151
1151
|
}
|
|
1152
|
+
shouldOmitField(omit, model, field) {
|
|
1153
|
+
if (omit && typeof omit === "object" && typeof omit[field] === "boolean") {
|
|
1154
|
+
return omit[field];
|
|
1155
|
+
}
|
|
1156
|
+
if (this.options.omit?.[model] && typeof this.options.omit[model] === "object" && typeof this.options.omit[model][field] === "boolean") {
|
|
1157
|
+
return this.options.omit[model][field];
|
|
1158
|
+
}
|
|
1159
|
+
const fieldDef = requireField(this.schema, model, field);
|
|
1160
|
+
return !!fieldDef.omit;
|
|
1161
|
+
}
|
|
1152
1162
|
buildModelSelect(model, subQueryAlias, payload, selectAllFields) {
|
|
1153
1163
|
let subQuery = this.buildSelectModel(model, subQueryAlias);
|
|
1154
1164
|
if (selectAllFields) {
|
|
@@ -1412,7 +1422,8 @@ var PostgresCrudDialect = class extends BaseCrudDialect {
|
|
|
1412
1422
|
]).flatMap((v) => v));
|
|
1413
1423
|
}
|
|
1414
1424
|
if (payload === true || !payload.select) {
|
|
1415
|
-
|
|
1425
|
+
const omit = typeof payload === "object" ? payload.omit : void 0;
|
|
1426
|
+
objArgs.push(...Object.entries(relationModelDef.fields).filter(([, value]) => !value.relation).filter(([name]) => !this.shouldOmitField(omit, relationModel, name)).map(([field]) => [
|
|
1416
1427
|
import_kysely3.sql.lit(field),
|
|
1417
1428
|
this.fieldRef(relationModel, field, relationModelAlias, false)
|
|
1418
1429
|
]).flatMap((v) => v));
|
|
@@ -1623,7 +1634,8 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
1623
1634
|
]).flatMap((v) => v));
|
|
1624
1635
|
}
|
|
1625
1636
|
if (payload === true || !payload.select) {
|
|
1626
|
-
|
|
1637
|
+
const omit = typeof payload === "object" ? payload.omit : void 0;
|
|
1638
|
+
objArgs.push(...Object.entries(relationModelDef.fields).filter(([, value]) => !value.relation).filter(([name]) => !this.shouldOmitField(omit, relationModel, name)).map(([field]) => [
|
|
1627
1639
|
import_kysely4.sql.lit(field),
|
|
1628
1640
|
this.fieldRef(relationModel, field, subQueryName, false)
|
|
1629
1641
|
]).flatMap((v) => v));
|
|
@@ -3099,12 +3111,11 @@ var BaseOperationHandler = class {
|
|
|
3099
3111
|
const allFields = Object.keys(modelDef.fields);
|
|
3100
3112
|
const relationFields = Object.values(modelDef.fields).filter((f) => f.relation).map((f) => f.name);
|
|
3101
3113
|
const computedFields = Object.values(modelDef.fields).filter((f) => f.computed).map((f) => f.name);
|
|
3102
|
-
const omit = Object.entries(args.omit ?? {}).filter(([, v]) => v).map(([k]) => k);
|
|
3103
3114
|
const allFieldsSelected = [];
|
|
3104
3115
|
if (!args.select || typeof args.select !== "object") {
|
|
3105
|
-
allFieldsSelected.push(...allFields.filter((f) => !relationFields.includes(f) && !
|
|
3116
|
+
allFieldsSelected.push(...allFields.filter((f) => !relationFields.includes(f) && !this.dialect.shouldOmitField(args.omit, model, f)));
|
|
3106
3117
|
} else {
|
|
3107
|
-
allFieldsSelected.push(...Object.entries(args.select).filter(([k, v]) => v && !
|
|
3118
|
+
allFieldsSelected.push(...Object.entries(args.select).filter(([k, v]) => v && !this.dialect.shouldOmitField(args.omit, model, k)).map(([k]) => k));
|
|
3108
3119
|
}
|
|
3109
3120
|
if (allFieldsSelected.some((f) => relationFields.includes(f) || computedFields.includes(f))) {
|
|
3110
3121
|
return {
|
|
@@ -3727,15 +3738,14 @@ function addBigIntValidation(schema, attributes) {
|
|
|
3727
3738
|
if (val === void 0) {
|
|
3728
3739
|
continue;
|
|
3729
3740
|
}
|
|
3730
|
-
const bigIntVal = BigInt(val);
|
|
3731
3741
|
(0, import_ts_pattern12.match)(attr.name).with("@gt", () => {
|
|
3732
|
-
result = result.gt(
|
|
3742
|
+
result = result.gt(BigInt(val));
|
|
3733
3743
|
}).with("@gte", () => {
|
|
3734
|
-
result = result.gte(
|
|
3744
|
+
result = result.gte(BigInt(val));
|
|
3735
3745
|
}).with("@lt", () => {
|
|
3736
|
-
result = result.lt(
|
|
3746
|
+
result = result.lt(BigInt(val));
|
|
3737
3747
|
}).with("@lte", () => {
|
|
3738
|
-
result = result.lte(
|
|
3748
|
+
result = result.lte(BigInt(val));
|
|
3739
3749
|
});
|
|
3740
3750
|
}
|
|
3741
3751
|
return result;
|
|
@@ -4003,6 +4013,9 @@ var InputValidator = class {
|
|
|
4003
4013
|
get schema() {
|
|
4004
4014
|
return this.client.$schema;
|
|
4005
4015
|
}
|
|
4016
|
+
get options() {
|
|
4017
|
+
return this.client.$options;
|
|
4018
|
+
}
|
|
4006
4019
|
get extraValidationsEnabled() {
|
|
4007
4020
|
return this.client.$options.validateInput !== false;
|
|
4008
4021
|
}
|
|
@@ -4492,7 +4505,11 @@ var InputValidator = class {
|
|
|
4492
4505
|
for (const field of Object.keys(modelDef.fields)) {
|
|
4493
4506
|
const fieldDef = requireField(this.schema, model, field);
|
|
4494
4507
|
if (!fieldDef.relation) {
|
|
4495
|
-
|
|
4508
|
+
if (this.options.allowQueryTimeOmitOverride !== false) {
|
|
4509
|
+
fields[field] = import_zod2.z.boolean().optional();
|
|
4510
|
+
} else {
|
|
4511
|
+
fields[field] = import_zod2.z.literal(true).optional();
|
|
4512
|
+
}
|
|
4496
4513
|
}
|
|
4497
4514
|
}
|
|
4498
4515
|
return import_zod2.z.strictObject(fields);
|
|
@@ -4905,7 +4922,8 @@ var InputValidator = class {
|
|
|
4905
4922
|
let schema = import_zod2.z.strictObject({
|
|
4906
4923
|
where: this.makeWhereSchema(model, true),
|
|
4907
4924
|
select: this.makeSelectSchema(model).optional().nullable(),
|
|
4908
|
-
include: this.makeIncludeSchema(model).optional().nullable()
|
|
4925
|
+
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
4926
|
+
omit: this.makeOmitSchema(model).optional().nullable()
|
|
4909
4927
|
});
|
|
4910
4928
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
4911
4929
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
@@ -6827,6 +6845,9 @@ var ClientImpl = class _ClientImpl {
|
|
|
6827
6845
|
get $auth() {
|
|
6828
6846
|
return this.auth;
|
|
6829
6847
|
}
|
|
6848
|
+
$setOptions(options) {
|
|
6849
|
+
return new _ClientImpl(this.schema, options, this);
|
|
6850
|
+
}
|
|
6830
6851
|
$setInputValidation(enable) {
|
|
6831
6852
|
const newOptions = {
|
|
6832
6853
|
...this.options,
|
|
@@ -7306,7 +7327,8 @@ var DefaultOperationNodeVisitor = class extends import_kysely11.OperationNodeVis
|
|
|
7306
7327
|
// src/utils/schema-utils.ts
|
|
7307
7328
|
var schema_utils_exports = {};
|
|
7308
7329
|
__export(schema_utils_exports, {
|
|
7309
|
-
ExpressionVisitor: () => ExpressionVisitor
|
|
7330
|
+
ExpressionVisitor: () => ExpressionVisitor,
|
|
7331
|
+
MatchingExpressionVisitor: () => MatchingExpressionVisitor
|
|
7310
7332
|
});
|
|
7311
7333
|
var import_ts_pattern17 = require("ts-pattern");
|
|
7312
7334
|
var ExpressionVisitor = class {
|
|
@@ -7314,7 +7336,7 @@ var ExpressionVisitor = class {
|
|
|
7314
7336
|
__name(this, "ExpressionVisitor");
|
|
7315
7337
|
}
|
|
7316
7338
|
visit(expr) {
|
|
7317
|
-
(0, import_ts_pattern17.match)(expr).with({
|
|
7339
|
+
return (0, import_ts_pattern17.match)(expr).with({
|
|
7318
7340
|
kind: "literal"
|
|
7319
7341
|
}, (e) => this.visitLiteral(e)).with({
|
|
7320
7342
|
kind: "array"
|
|
@@ -7337,28 +7359,67 @@ var ExpressionVisitor = class {
|
|
|
7337
7359
|
visitLiteral(_e) {
|
|
7338
7360
|
}
|
|
7339
7361
|
visitArray(e) {
|
|
7340
|
-
|
|
7362
|
+
for (const item of e.items) {
|
|
7363
|
+
const result = this.visit(item);
|
|
7364
|
+
if (result?.abort) {
|
|
7365
|
+
return result;
|
|
7366
|
+
}
|
|
7367
|
+
}
|
|
7341
7368
|
}
|
|
7342
7369
|
visitField(_e) {
|
|
7343
7370
|
}
|
|
7344
7371
|
visitMember(e) {
|
|
7345
|
-
this.visit(e.receiver);
|
|
7372
|
+
return this.visit(e.receiver);
|
|
7346
7373
|
}
|
|
7347
7374
|
visitBinary(e) {
|
|
7348
|
-
this.visit(e.left);
|
|
7349
|
-
|
|
7375
|
+
const l = this.visit(e.left);
|
|
7376
|
+
if (l?.abort) {
|
|
7377
|
+
return l;
|
|
7378
|
+
} else {
|
|
7379
|
+
return this.visit(e.right);
|
|
7380
|
+
}
|
|
7350
7381
|
}
|
|
7351
7382
|
visitUnary(e) {
|
|
7352
|
-
this.visit(e.operand);
|
|
7383
|
+
return this.visit(e.operand);
|
|
7353
7384
|
}
|
|
7354
7385
|
visitCall(e) {
|
|
7355
|
-
e.args
|
|
7386
|
+
for (const arg of e.args ?? []) {
|
|
7387
|
+
const r = this.visit(arg);
|
|
7388
|
+
if (r?.abort) {
|
|
7389
|
+
return r;
|
|
7390
|
+
}
|
|
7391
|
+
}
|
|
7356
7392
|
}
|
|
7357
7393
|
visitThis(_e) {
|
|
7358
7394
|
}
|
|
7359
7395
|
visitNull(_e) {
|
|
7360
7396
|
}
|
|
7361
7397
|
};
|
|
7398
|
+
var MatchingExpressionVisitor = class extends ExpressionVisitor {
|
|
7399
|
+
static {
|
|
7400
|
+
__name(this, "MatchingExpressionVisitor");
|
|
7401
|
+
}
|
|
7402
|
+
predicate;
|
|
7403
|
+
found = false;
|
|
7404
|
+
constructor(predicate) {
|
|
7405
|
+
super(), this.predicate = predicate;
|
|
7406
|
+
}
|
|
7407
|
+
find(expr) {
|
|
7408
|
+
this.found = false;
|
|
7409
|
+
this.visit(expr);
|
|
7410
|
+
return this.found;
|
|
7411
|
+
}
|
|
7412
|
+
visit(expr) {
|
|
7413
|
+
if (this.predicate(expr)) {
|
|
7414
|
+
this.found = true;
|
|
7415
|
+
return {
|
|
7416
|
+
abort: true
|
|
7417
|
+
};
|
|
7418
|
+
} else {
|
|
7419
|
+
return super.visit(expr);
|
|
7420
|
+
}
|
|
7421
|
+
}
|
|
7422
|
+
};
|
|
7362
7423
|
// Annotate the CommonJS export names for ESM import in node:
|
|
7363
7424
|
0 && (module.exports = {
|
|
7364
7425
|
BaseCrudDialect,
|