@zenstackhq/orm 3.0.0 → 3.1.1
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 +49 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +50 -5
- package/dist/index.js.map +1 -1
- package/package.json +10 -9
package/dist/index.cjs
CHANGED
|
@@ -598,6 +598,7 @@ __name(extractFieldName, "extractFieldName");
|
|
|
598
598
|
// src/client/crud/operations/base.ts
|
|
599
599
|
var import_cuid2 = require("@paralleldrive/cuid2");
|
|
600
600
|
var import_common_helpers5 = require("@zenstackhq/common-helpers");
|
|
601
|
+
var import_cuid = __toESM(require("cuid"), 1);
|
|
601
602
|
var import_kysely5 = require("kysely");
|
|
602
603
|
var import_nanoid = require("nanoid");
|
|
603
604
|
var import_ts_pattern6 = require("ts-pattern");
|
|
@@ -2583,7 +2584,20 @@ var BaseOperationHandler = class {
|
|
|
2583
2584
|
}
|
|
2584
2585
|
evalGenerator(defaultValue) {
|
|
2585
2586
|
if (schema_exports.ExpressionUtils.isCall(defaultValue)) {
|
|
2586
|
-
|
|
2587
|
+
const firstArgVal = defaultValue.args?.[0] && schema_exports.ExpressionUtils.isLiteral(defaultValue.args[0]) ? defaultValue.args[0].value : void 0;
|
|
2588
|
+
return (0, import_ts_pattern6.match)(defaultValue.function).with("cuid", () => {
|
|
2589
|
+
const version = firstArgVal;
|
|
2590
|
+
const generated = version === 2 ? (0, import_cuid2.createId)() : (0, import_cuid.default)();
|
|
2591
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2592
|
+
}).with("uuid", () => {
|
|
2593
|
+
const version = firstArgVal;
|
|
2594
|
+
const generated = version === 7 ? uuid.v7() : uuid.v4();
|
|
2595
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2596
|
+
}).with("nanoid", () => {
|
|
2597
|
+
const length = firstArgVal;
|
|
2598
|
+
const generated = typeof length === "number" ? (0, import_nanoid.nanoid)(length) : (0, import_nanoid.nanoid)();
|
|
2599
|
+
return this.formatGeneratedValue(generated, defaultValue.args?.[1]);
|
|
2600
|
+
}).with("ulid", () => this.formatGeneratedValue((0, import_ulid.ulid)(), defaultValue.args?.[0])).otherwise(() => void 0);
|
|
2587
2601
|
} else if (schema_exports.ExpressionUtils.isMember(defaultValue) && schema_exports.ExpressionUtils.isCall(defaultValue.receiver) && defaultValue.receiver.function === "auth") {
|
|
2588
2602
|
let val = this.client.$auth;
|
|
2589
2603
|
for (const member of defaultValue.members) {
|
|
@@ -2594,6 +2608,12 @@ var BaseOperationHandler = class {
|
|
|
2594
2608
|
return void 0;
|
|
2595
2609
|
}
|
|
2596
2610
|
}
|
|
2611
|
+
formatGeneratedValue(generated, formatExpr) {
|
|
2612
|
+
if (!formatExpr || !schema_exports.ExpressionUtils.isLiteral(formatExpr) || typeof formatExpr.value !== "string") {
|
|
2613
|
+
return generated;
|
|
2614
|
+
}
|
|
2615
|
+
return formatExpr.value.replace(/(?<!\\)%s/g, generated).replace(/\\%s/g, "%s");
|
|
2616
|
+
}
|
|
2597
2617
|
async update(kysely, model, where, data, fromRelation, allowRelationUpdate = true, throwIfNotFound = true, fieldsToReturn) {
|
|
2598
2618
|
if (!data || typeof data !== "object") {
|
|
2599
2619
|
throw createInvalidInputError("data must be an object");
|
|
@@ -4498,8 +4518,11 @@ var InputValidator = class {
|
|
|
4498
4518
|
fieldSchema
|
|
4499
4519
|
];
|
|
4500
4520
|
})));
|
|
4501
|
-
const finalSchema = import_zod3.z.
|
|
4502
|
-
|
|
4521
|
+
const finalSchema = import_zod3.z.any().superRefine((value, ctx) => {
|
|
4522
|
+
const parseResult = schema.safeParse(value);
|
|
4523
|
+
if (!parseResult.success) {
|
|
4524
|
+
parseResult.error.issues.forEach((issue) => ctx.addIssue(issue));
|
|
4525
|
+
}
|
|
4503
4526
|
});
|
|
4504
4527
|
this.setSchemaCache(key, finalSchema);
|
|
4505
4528
|
return finalSchema;
|
|
@@ -4577,7 +4600,9 @@ var InputValidator = class {
|
|
|
4577
4600
|
}
|
|
4578
4601
|
}
|
|
4579
4602
|
}
|
|
4580
|
-
fields["$expr"] = import_zod3.z.custom((v) => typeof v === "function"
|
|
4603
|
+
fields["$expr"] = import_zod3.z.custom((v) => typeof v === "function", {
|
|
4604
|
+
error: '"$expr" must be a function'
|
|
4605
|
+
}).optional();
|
|
4581
4606
|
fields["AND"] = this.orArray(import_zod3.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)), true).optional();
|
|
4582
4607
|
fields["OR"] = import_zod3.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)).array().optional();
|
|
4583
4608
|
fields["NOT"] = this.orArray(import_zod3.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)), true).optional();
|
|
@@ -5810,6 +5835,26 @@ var QueryNameMapper = class extends import_kysely6.OperationNodeTransformer {
|
|
|
5810
5835
|
const mappedName = this.mapFieldName(scope.model, node.column.name);
|
|
5811
5836
|
return import_kysely6.ColumnNode.create(mappedName);
|
|
5812
5837
|
}
|
|
5838
|
+
transformBinaryOperation(node) {
|
|
5839
|
+
if (import_kysely6.ReferenceNode.is(node.leftOperand) && import_kysely6.ColumnNode.is(node.leftOperand.column) && (import_kysely6.ValueNode.is(node.rightOperand) || import_kysely6.PrimitiveValueListNode.is(node.rightOperand))) {
|
|
5840
|
+
const columnNode = node.leftOperand.column;
|
|
5841
|
+
const resolvedScope = this.resolveFieldFromScopes(columnNode.column.name, node.leftOperand.table?.table.identifier.name);
|
|
5842
|
+
if (resolvedScope?.model) {
|
|
5843
|
+
const valueNode = node.rightOperand;
|
|
5844
|
+
let resultValue = valueNode;
|
|
5845
|
+
if (import_kysely6.ValueNode.is(valueNode)) {
|
|
5846
|
+
resultValue = this.processEnumMappingForValue(resolvedScope.model, columnNode, valueNode);
|
|
5847
|
+
} else if (import_kysely6.PrimitiveValueListNode.is(valueNode)) {
|
|
5848
|
+
resultValue = import_kysely6.PrimitiveValueListNode.create(this.processEnumMappingForValues(resolvedScope.model, valueNode.values.map(() => columnNode), valueNode.values));
|
|
5849
|
+
}
|
|
5850
|
+
return super.transformBinaryOperation({
|
|
5851
|
+
...node,
|
|
5852
|
+
rightOperand: resultValue
|
|
5853
|
+
});
|
|
5854
|
+
}
|
|
5855
|
+
}
|
|
5856
|
+
return super.transformBinaryOperation(node);
|
|
5857
|
+
}
|
|
5813
5858
|
transformUpdateQuery(node) {
|
|
5814
5859
|
if (!node.table) {
|
|
5815
5860
|
return super.transformUpdateQuery(node);
|