@zenstackhq/orm 3.0.0-beta.25 → 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 +78 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +635 -584
- package/dist/index.d.ts +635 -584
- package/dist/index.js +78 -16
- 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 {
|
|
@@ -4002,6 +4013,9 @@ var InputValidator = class {
|
|
|
4002
4013
|
get schema() {
|
|
4003
4014
|
return this.client.$schema;
|
|
4004
4015
|
}
|
|
4016
|
+
get options() {
|
|
4017
|
+
return this.client.$options;
|
|
4018
|
+
}
|
|
4005
4019
|
get extraValidationsEnabled() {
|
|
4006
4020
|
return this.client.$options.validateInput !== false;
|
|
4007
4021
|
}
|
|
@@ -4491,7 +4505,11 @@ var InputValidator = class {
|
|
|
4491
4505
|
for (const field of Object.keys(modelDef.fields)) {
|
|
4492
4506
|
const fieldDef = requireField(this.schema, model, field);
|
|
4493
4507
|
if (!fieldDef.relation) {
|
|
4494
|
-
|
|
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
|
+
}
|
|
4495
4513
|
}
|
|
4496
4514
|
}
|
|
4497
4515
|
return import_zod2.z.strictObject(fields);
|
|
@@ -4904,7 +4922,8 @@ var InputValidator = class {
|
|
|
4904
4922
|
let schema = import_zod2.z.strictObject({
|
|
4905
4923
|
where: this.makeWhereSchema(model, true),
|
|
4906
4924
|
select: this.makeSelectSchema(model).optional().nullable(),
|
|
4907
|
-
include: this.makeIncludeSchema(model).optional().nullable()
|
|
4925
|
+
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
4926
|
+
omit: this.makeOmitSchema(model).optional().nullable()
|
|
4908
4927
|
});
|
|
4909
4928
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
4910
4929
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
@@ -6826,6 +6845,9 @@ var ClientImpl = class _ClientImpl {
|
|
|
6826
6845
|
get $auth() {
|
|
6827
6846
|
return this.auth;
|
|
6828
6847
|
}
|
|
6848
|
+
$setOptions(options) {
|
|
6849
|
+
return new _ClientImpl(this.schema, options, this);
|
|
6850
|
+
}
|
|
6829
6851
|
$setInputValidation(enable) {
|
|
6830
6852
|
const newOptions = {
|
|
6831
6853
|
...this.options,
|
|
@@ -7305,7 +7327,8 @@ var DefaultOperationNodeVisitor = class extends import_kysely11.OperationNodeVis
|
|
|
7305
7327
|
// src/utils/schema-utils.ts
|
|
7306
7328
|
var schema_utils_exports = {};
|
|
7307
7329
|
__export(schema_utils_exports, {
|
|
7308
|
-
ExpressionVisitor: () => ExpressionVisitor
|
|
7330
|
+
ExpressionVisitor: () => ExpressionVisitor,
|
|
7331
|
+
MatchingExpressionVisitor: () => MatchingExpressionVisitor
|
|
7309
7332
|
});
|
|
7310
7333
|
var import_ts_pattern17 = require("ts-pattern");
|
|
7311
7334
|
var ExpressionVisitor = class {
|
|
@@ -7313,7 +7336,7 @@ var ExpressionVisitor = class {
|
|
|
7313
7336
|
__name(this, "ExpressionVisitor");
|
|
7314
7337
|
}
|
|
7315
7338
|
visit(expr) {
|
|
7316
|
-
(0, import_ts_pattern17.match)(expr).with({
|
|
7339
|
+
return (0, import_ts_pattern17.match)(expr).with({
|
|
7317
7340
|
kind: "literal"
|
|
7318
7341
|
}, (e) => this.visitLiteral(e)).with({
|
|
7319
7342
|
kind: "array"
|
|
@@ -7336,28 +7359,67 @@ var ExpressionVisitor = class {
|
|
|
7336
7359
|
visitLiteral(_e) {
|
|
7337
7360
|
}
|
|
7338
7361
|
visitArray(e) {
|
|
7339
|
-
|
|
7362
|
+
for (const item of e.items) {
|
|
7363
|
+
const result = this.visit(item);
|
|
7364
|
+
if (result?.abort) {
|
|
7365
|
+
return result;
|
|
7366
|
+
}
|
|
7367
|
+
}
|
|
7340
7368
|
}
|
|
7341
7369
|
visitField(_e) {
|
|
7342
7370
|
}
|
|
7343
7371
|
visitMember(e) {
|
|
7344
|
-
this.visit(e.receiver);
|
|
7372
|
+
return this.visit(e.receiver);
|
|
7345
7373
|
}
|
|
7346
7374
|
visitBinary(e) {
|
|
7347
|
-
this.visit(e.left);
|
|
7348
|
-
|
|
7375
|
+
const l = this.visit(e.left);
|
|
7376
|
+
if (l?.abort) {
|
|
7377
|
+
return l;
|
|
7378
|
+
} else {
|
|
7379
|
+
return this.visit(e.right);
|
|
7380
|
+
}
|
|
7349
7381
|
}
|
|
7350
7382
|
visitUnary(e) {
|
|
7351
|
-
this.visit(e.operand);
|
|
7383
|
+
return this.visit(e.operand);
|
|
7352
7384
|
}
|
|
7353
7385
|
visitCall(e) {
|
|
7354
|
-
e.args
|
|
7386
|
+
for (const arg of e.args ?? []) {
|
|
7387
|
+
const r = this.visit(arg);
|
|
7388
|
+
if (r?.abort) {
|
|
7389
|
+
return r;
|
|
7390
|
+
}
|
|
7391
|
+
}
|
|
7355
7392
|
}
|
|
7356
7393
|
visitThis(_e) {
|
|
7357
7394
|
}
|
|
7358
7395
|
visitNull(_e) {
|
|
7359
7396
|
}
|
|
7360
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
|
+
};
|
|
7361
7423
|
// Annotate the CommonJS export names for ESM import in node:
|
|
7362
7424
|
0 && (module.exports = {
|
|
7363
7425
|
BaseCrudDialect,
|