@zenstackhq/orm 3.4.0-beta.3 → 3.4.0
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 +768 -968
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +505 -454
- package/dist/index.d.ts +505 -454
- package/dist/index.js +864 -1065
- package/dist/index.js.map +1 -1
- package/package.json +7 -6
package/dist/index.cjs
CHANGED
|
@@ -58,6 +58,7 @@ __export(src_exports, {
|
|
|
58
58
|
SchemaUtils: () => schema_utils_exports,
|
|
59
59
|
TransactionIsolationLevel: () => TransactionIsolationLevel,
|
|
60
60
|
ZenStackClient: () => ZenStackClient,
|
|
61
|
+
createQuerySchemaFactory: () => createQuerySchemaFactory,
|
|
61
62
|
definePlugin: () => definePlugin,
|
|
62
63
|
getCrudDialect: () => getCrudDialect
|
|
63
64
|
});
|
|
@@ -65,7 +66,7 @@ module.exports = __toCommonJS(src_exports);
|
|
|
65
66
|
|
|
66
67
|
// src/client/client-impl.ts
|
|
67
68
|
var import_common_helpers14 = require("@zenstackhq/common-helpers");
|
|
68
|
-
var
|
|
69
|
+
var import_kysely12 = require("kysely");
|
|
69
70
|
|
|
70
71
|
// src/client/crud/operations/aggregate.ts
|
|
71
72
|
var import_ts_pattern8 = require("ts-pattern");
|
|
@@ -73,6 +74,7 @@ var import_ts_pattern8 = require("ts-pattern");
|
|
|
73
74
|
// src/client/query-utils.ts
|
|
74
75
|
var query_utils_exports = {};
|
|
75
76
|
__export(query_utils_exports, {
|
|
77
|
+
TEMP_ALIAS_PREFIX: () => TEMP_ALIAS_PREFIX,
|
|
76
78
|
aggregate: () => aggregate,
|
|
77
79
|
buildJoinPairs: () => buildJoinPairs,
|
|
78
80
|
ensureArray: () => ensureArray,
|
|
@@ -105,7 +107,8 @@ __export(query_utils_exports, {
|
|
|
105
107
|
requireIdFields: () => requireIdFields,
|
|
106
108
|
requireModel: () => requireModel,
|
|
107
109
|
requireTypeDef: () => requireTypeDef,
|
|
108
|
-
stripAlias: () => stripAlias
|
|
110
|
+
stripAlias: () => stripAlias,
|
|
111
|
+
tmpAlias: () => tmpAlias
|
|
109
112
|
});
|
|
110
113
|
var import_common_helpers = require("@zenstackhq/common-helpers");
|
|
111
114
|
var import_kysely = require("kysely");
|
|
@@ -620,6 +623,15 @@ function extractFieldName(node) {
|
|
|
620
623
|
}
|
|
621
624
|
}
|
|
622
625
|
__name(extractFieldName, "extractFieldName");
|
|
626
|
+
var TEMP_ALIAS_PREFIX = "$$_";
|
|
627
|
+
function tmpAlias(name) {
|
|
628
|
+
if (!name.startsWith(TEMP_ALIAS_PREFIX)) {
|
|
629
|
+
return `${TEMP_ALIAS_PREFIX}${name}`;
|
|
630
|
+
} else {
|
|
631
|
+
return name;
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
__name(tmpAlias, "tmpAlias");
|
|
623
635
|
|
|
624
636
|
// src/client/crud/operations/base.ts
|
|
625
637
|
var import_cuid2 = require("@paralleldrive/cuid2");
|
|
@@ -896,7 +908,7 @@ var BaseCrudDialect = class {
|
|
|
896
908
|
});
|
|
897
909
|
}
|
|
898
910
|
}
|
|
899
|
-
const joinAlias = `${modelAlias}$${field}
|
|
911
|
+
const joinAlias = tmpAlias(`${modelAlias}$${field}`);
|
|
900
912
|
const joinPairs = buildJoinPairs(
|
|
901
913
|
this.schema,
|
|
902
914
|
model,
|
|
@@ -905,7 +917,7 @@ var BaseCrudDialect = class {
|
|
|
905
917
|
field,
|
|
906
918
|
joinAlias
|
|
907
919
|
);
|
|
908
|
-
const filterResultField = `${field}$
|
|
920
|
+
const filterResultField = tmpAlias(`${field}$flt`);
|
|
909
921
|
const joinSelect = this.eb.selectFrom(`${fieldDef.type} as ${joinAlias}`).where(() => this.and(...joinPairs.map(([left, right]) => this.eb(this.eb.ref(left), "=", this.eb.ref(right))))).select(() => this.eb.fn.count(this.eb.lit(1)).as(filterResultField));
|
|
910
922
|
const conditions = [];
|
|
911
923
|
if ("is" in payload || "isNot" in payload) {
|
|
@@ -938,7 +950,7 @@ var BaseCrudDialect = class {
|
|
|
938
950
|
return this.eb(this.eb.ref(`${modelAlias}.${field}`), "is", null);
|
|
939
951
|
}
|
|
940
952
|
const relationModel = fieldDef.type;
|
|
941
|
-
const relationFilterSelectAlias = `${modelAlias}$${field}$
|
|
953
|
+
const relationFilterSelectAlias = tmpAlias(`${modelAlias}$${field}$flt`);
|
|
942
954
|
const buildPkFkWhereRefs = /* @__PURE__ */ __name((eb) => {
|
|
943
955
|
const m2m = getManyToManyRelation(this.schema, model, field);
|
|
944
956
|
if (m2m) {
|
|
@@ -1402,7 +1414,7 @@ var BaseCrudDialect = class {
|
|
|
1402
1414
|
(0, import_common_helpers2.invariant)(value._count === "asc" || value._count === "desc", 'invalid orderBy value for field "_count"');
|
|
1403
1415
|
const sort = this.negateSort(value._count, negated);
|
|
1404
1416
|
result = result.orderBy((eb) => {
|
|
1405
|
-
const subQueryAlias = `${modelAlias}$
|
|
1417
|
+
const subQueryAlias = tmpAlias(`${modelAlias}$ob$${field}$ct`);
|
|
1406
1418
|
let subQuery = this.buildSelectModel(relationModel, subQueryAlias);
|
|
1407
1419
|
const joinPairs = buildJoinPairs(this.schema, model, modelAlias, field, subQueryAlias);
|
|
1408
1420
|
subQuery = subQuery.where(() => this.and(...joinPairs.map(([left, right]) => eb(this.eb.ref(left), "=", this.eb.ref(right)))));
|
|
@@ -1411,7 +1423,7 @@ var BaseCrudDialect = class {
|
|
|
1411
1423
|
}, sort);
|
|
1412
1424
|
}
|
|
1413
1425
|
} else {
|
|
1414
|
-
const joinAlias = `${modelAlias}$
|
|
1426
|
+
const joinAlias = tmpAlias(`${modelAlias}$ob$${index}`);
|
|
1415
1427
|
result = result.leftJoin(`${relationModel} as ${joinAlias}`, (join) => {
|
|
1416
1428
|
const joinPairs = buildJoinPairs(this.schema, model, modelAlias, field, joinAlias);
|
|
1417
1429
|
return join.on((eb) => this.and(...joinPairs.map(([left, right]) => eb(this.eb.ref(left), "=", this.eb.ref(right)))));
|
|
@@ -1604,7 +1616,7 @@ var LateralJoinDialectBase = class extends BaseCrudDialect {
|
|
|
1604
1616
|
__name(this, "LateralJoinDialectBase");
|
|
1605
1617
|
}
|
|
1606
1618
|
buildRelationSelection(query, model, relationField, parentAlias, payload) {
|
|
1607
|
-
const relationResultName = `${parentAlias}$${relationField}
|
|
1619
|
+
const relationResultName = tmpAlias(`${parentAlias}$${relationField}`);
|
|
1608
1620
|
const joinedQuery = this.buildRelationJSON(model, query, relationField, parentAlias, payload, relationResultName);
|
|
1609
1621
|
return joinedQuery.select(`${relationResultName}.$data as ${relationField}`);
|
|
1610
1622
|
}
|
|
@@ -1612,7 +1624,7 @@ var LateralJoinDialectBase = class extends BaseCrudDialect {
|
|
|
1612
1624
|
const relationFieldDef = requireField(this.schema, model, relationField);
|
|
1613
1625
|
const relationModel = relationFieldDef.type;
|
|
1614
1626
|
return qb.leftJoinLateral((eb) => {
|
|
1615
|
-
const relationSelectName = `${resultName}$sub
|
|
1627
|
+
const relationSelectName = tmpAlias(`${resultName}$sub`);
|
|
1616
1628
|
const relationModelDef = requireModel(this.schema, relationModel);
|
|
1617
1629
|
let tbl;
|
|
1618
1630
|
if (this.canJoinWithoutNestedSelect(relationModelDef, payload)) {
|
|
@@ -1899,7 +1911,7 @@ var MySqlCrudDialect = class extends LateralJoinDialectBase {
|
|
|
1899
1911
|
]), "=", this.transformInput(value, "Json", false))).with("array_ends_with", () => this.eb(import_kysely3.sql`JSON_EXTRACT(${lhs}, CONCAT('$[', JSON_LENGTH(${lhs}) - 1, ']'))`, "=", this.transformInput(value, "Json", false))).exhaustive();
|
|
1900
1912
|
}
|
|
1901
1913
|
buildJsonArrayExistsPredicate(receiver, buildFilter) {
|
|
1902
|
-
return this.eb.exists(this.eb.selectFrom(import_kysely3.sql`JSON_TABLE(${receiver}, '$[*]' COLUMNS(value JSON PATH '$'))`.as("$items")).select(this.eb.lit(1).as("
|
|
1914
|
+
return this.eb.exists(this.eb.selectFrom(import_kysely3.sql`JSON_TABLE(${receiver}, '$[*]' COLUMNS(value JSON PATH '$'))`.as("$items")).select(this.eb.lit(1).as("_")).where(buildFilter(this.eb.ref("$items.value"))));
|
|
1903
1915
|
}
|
|
1904
1916
|
getStringCasingBehavior() {
|
|
1905
1917
|
return {
|
|
@@ -2156,7 +2168,7 @@ var PostgresCrudDialect = class _PostgresCrudDialect extends LateralJoinDialectB
|
|
|
2156
2168
|
buildJsonArrayExistsPredicate(receiver, buildFilter) {
|
|
2157
2169
|
return this.eb.exists(this.eb.selectFrom(this.eb.fn("jsonb_array_elements", [
|
|
2158
2170
|
receiver
|
|
2159
|
-
]).as("$items")).select(this.eb.lit(1).as("
|
|
2171
|
+
]).as("$items")).select(this.eb.lit(1).as("_")).where(buildFilter(this.eb.ref("$items.value"))));
|
|
2160
2172
|
}
|
|
2161
2173
|
getSqlType(zmodelType) {
|
|
2162
2174
|
if (isEnum(this.schema, zmodelType)) {
|
|
@@ -2315,14 +2327,14 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
2315
2327
|
const relationFieldDef = requireField(this.schema, model, relationField);
|
|
2316
2328
|
const relationModel = relationFieldDef.type;
|
|
2317
2329
|
const relationModelDef = requireModel(this.schema, relationModel);
|
|
2318
|
-
const subQueryName = `${parentAlias}$${relationField}
|
|
2330
|
+
const subQueryName = tmpAlias(`${parentAlias}$${relationField}`);
|
|
2319
2331
|
let tbl;
|
|
2320
2332
|
if (this.canJoinWithoutNestedSelect(relationModelDef, payload)) {
|
|
2321
2333
|
tbl = this.buildModelSelect(relationModel, subQueryName, payload, false);
|
|
2322
2334
|
tbl = this.buildRelationJoinFilter(tbl, model, relationField, subQueryName, parentAlias);
|
|
2323
2335
|
} else {
|
|
2324
2336
|
tbl = eb.selectFrom(() => {
|
|
2325
|
-
const selectModelAlias = `${parentAlias}$${relationField}$sub
|
|
2337
|
+
const selectModelAlias = tmpAlias(`${parentAlias}$${relationField}$sub`);
|
|
2326
2338
|
let selectModelQuery = this.buildModelSelect(relationModel, selectModelAlias, payload, true);
|
|
2327
2339
|
selectModelQuery = this.buildRelationJoinFilter(selectModelQuery, model, relationField, selectModelAlias, parentAlias);
|
|
2328
2340
|
return selectModelQuery.as(subQueryName);
|
|
@@ -2346,7 +2358,7 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
2346
2358
|
} else if (payload.select) {
|
|
2347
2359
|
objArgs.push(...Object.entries(payload.select).filter(([, value]) => value).map(([field, value]) => {
|
|
2348
2360
|
if (field === "_count") {
|
|
2349
|
-
const subJson = this.buildCountJson(relationModel, eb, `${parentAlias}$${relationField}
|
|
2361
|
+
const subJson = this.buildCountJson(relationModel, eb, tmpAlias(`${parentAlias}$${relationField}`), value);
|
|
2350
2362
|
return [
|
|
2351
2363
|
import_kysely5.sql.lit(field),
|
|
2352
2364
|
subJson
|
|
@@ -2354,7 +2366,7 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
2354
2366
|
} else {
|
|
2355
2367
|
const fieldDef = requireField(this.schema, relationModel, field);
|
|
2356
2368
|
if (fieldDef.relation) {
|
|
2357
|
-
const subJson = this.buildRelationJSON(relationModel, eb, field, `${parentAlias}$${relationField}
|
|
2369
|
+
const subJson = this.buildRelationJSON(relationModel, eb, field, tmpAlias(`${parentAlias}$${relationField}`), value);
|
|
2358
2370
|
return [
|
|
2359
2371
|
import_kysely5.sql.lit(field),
|
|
2360
2372
|
subJson
|
|
@@ -2370,7 +2382,7 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
2370
2382
|
}
|
|
2371
2383
|
if (typeof payload === "object" && payload.include && typeof payload.include === "object") {
|
|
2372
2384
|
objArgs.push(...Object.entries(payload.include).filter(([, value]) => value).map(([field, value]) => {
|
|
2373
|
-
const subJson = this.buildRelationJSON(relationModel, eb, field, `${parentAlias}$${relationField}
|
|
2385
|
+
const subJson = this.buildRelationJSON(relationModel, eb, field, tmpAlias(`${parentAlias}$${relationField}`), value);
|
|
2374
2386
|
return [
|
|
2375
2387
|
import_kysely5.sql.lit(field),
|
|
2376
2388
|
subJson
|
|
@@ -2447,7 +2459,7 @@ var SqliteCrudDialect = class extends BaseCrudDialect {
|
|
|
2447
2459
|
buildJsonArrayExistsPredicate(receiver, buildFilter) {
|
|
2448
2460
|
return this.eb.exists(this.eb.selectFrom(this.eb.fn("json_each", [
|
|
2449
2461
|
receiver
|
|
2450
|
-
]).as("$items")).select(this.eb.lit(1).as("
|
|
2462
|
+
]).as("$items")).select(this.eb.lit(1).as("_")).where(buildFilter(this.eb.ref("$items.value"))));
|
|
2451
2463
|
}
|
|
2452
2464
|
buildArrayLength(array) {
|
|
2453
2465
|
return this.eb.fn("json_array_length", [
|
|
@@ -2629,7 +2641,7 @@ var BaseOperationHandler = class {
|
|
|
2629
2641
|
});
|
|
2630
2642
|
}
|
|
2631
2643
|
async existsNonUnique(kysely, model, filter) {
|
|
2632
|
-
const query = kysely.selectNoFrom((eb) => eb.exists(this.dialect.buildSelectModel(model, model).select(import_kysely6.sql.lit(1).as("
|
|
2644
|
+
const query = kysely.selectNoFrom((eb) => eb.exists(this.dialect.buildSelectModel(model, model).select(import_kysely6.sql.lit(1).as("_")).where(() => this.dialect.buildFilter(model, model, filter))).as("$exists")).modifyEnd(this.makeContextComment({
|
|
2633
2645
|
model,
|
|
2634
2646
|
operation: "read"
|
|
2635
2647
|
}));
|
|
@@ -2641,7 +2653,7 @@ var BaseOperationHandler = class {
|
|
|
2641
2653
|
} catch (err) {
|
|
2642
2654
|
throw createDBQueryError(`Failed to execute query: ${err}`, err, compiled.sql, compiled.parameters);
|
|
2643
2655
|
}
|
|
2644
|
-
return !!result[0]
|
|
2656
|
+
return !!result[0]?.$exists;
|
|
2645
2657
|
}
|
|
2646
2658
|
async read(kysely, model, args) {
|
|
2647
2659
|
let query = this.dialect.buildSelectModel(model, model);
|
|
@@ -3238,7 +3250,7 @@ var BaseOperationHandler = class {
|
|
|
3238
3250
|
if (modelDef.baseModel) {
|
|
3239
3251
|
const baseUpdateResult = await this.processBaseModelUpdate(kysely, modelDef.baseModel, combinedWhere, finalData, throwIfNotFound);
|
|
3240
3252
|
finalData = baseUpdateResult.remainingFields;
|
|
3241
|
-
combinedWhere = baseUpdateResult.baseEntity;
|
|
3253
|
+
combinedWhere = baseUpdateResult.baseEntity ? getIdValues(this.schema, modelDef.baseModel, baseUpdateResult.baseEntity) : baseUpdateResult.baseEntity;
|
|
3242
3254
|
if (baseUpdateResult.baseEntity) {
|
|
3243
3255
|
for (const [key, value] of Object.entries(baseUpdateResult.baseEntity)) {
|
|
3244
3256
|
if (key in thisEntity) {
|
|
@@ -4635,11 +4647,9 @@ var UpdateOperationHandler = class extends BaseOperationHandler {
|
|
|
4635
4647
|
}
|
|
4636
4648
|
};
|
|
4637
4649
|
|
|
4638
|
-
// src/client/crud/validator/
|
|
4650
|
+
// src/client/crud/validator/validator.ts
|
|
4639
4651
|
var import_common_helpers9 = require("@zenstackhq/common-helpers");
|
|
4640
|
-
var import_decimal5 = __toESM(require("decimal.js"), 1);
|
|
4641
4652
|
var import_ts_pattern14 = require("ts-pattern");
|
|
4642
|
-
var import_zod2 = require("zod");
|
|
4643
4653
|
|
|
4644
4654
|
// src/utils/zod-utils.ts
|
|
4645
4655
|
var import_v4 = require("zod-validation-error/v4");
|
|
@@ -4648,7 +4658,14 @@ function formatError(error) {
|
|
|
4648
4658
|
}
|
|
4649
4659
|
__name(formatError, "formatError");
|
|
4650
4660
|
|
|
4651
|
-
// src/client/
|
|
4661
|
+
// src/client/zod/factory.ts
|
|
4662
|
+
var import_common_helpers8 = require("@zenstackhq/common-helpers");
|
|
4663
|
+
var import_zod = require("@zenstackhq/zod");
|
|
4664
|
+
var import_decimal4 = __toESM(require("decimal.js"), 1);
|
|
4665
|
+
var import_ts_pattern13 = require("ts-pattern");
|
|
4666
|
+
var import_zod2 = require("zod");
|
|
4667
|
+
|
|
4668
|
+
// src/client/zod/cache-decorator.ts
|
|
4652
4669
|
var import_json_stable_stringify = __toESM(require("json-stable-stringify"), 1);
|
|
4653
4670
|
function cache() {
|
|
4654
4671
|
return function(_target, propertyKey, descriptor) {
|
|
@@ -4680,371 +4697,7 @@ function cache() {
|
|
|
4680
4697
|
}
|
|
4681
4698
|
__name(cache, "cache");
|
|
4682
4699
|
|
|
4683
|
-
// src/client/
|
|
4684
|
-
var import_common_helpers8 = require("@zenstackhq/common-helpers");
|
|
4685
|
-
var import_decimal4 = __toESM(require("decimal.js"), 1);
|
|
4686
|
-
var import_ts_pattern13 = require("ts-pattern");
|
|
4687
|
-
var import_zod = require("zod");
|
|
4688
|
-
var import_v3 = require("zod/v3");
|
|
4689
|
-
function getArgValue(expr) {
|
|
4690
|
-
if (!expr || !schema_exports.ExpressionUtils.isLiteral(expr)) {
|
|
4691
|
-
return void 0;
|
|
4692
|
-
}
|
|
4693
|
-
return expr.value;
|
|
4694
|
-
}
|
|
4695
|
-
__name(getArgValue, "getArgValue");
|
|
4696
|
-
function addStringValidation(schema, attributes) {
|
|
4697
|
-
if (!attributes || attributes.length === 0) {
|
|
4698
|
-
return schema;
|
|
4699
|
-
}
|
|
4700
|
-
let result = schema;
|
|
4701
|
-
for (const attr of attributes) {
|
|
4702
|
-
(0, import_ts_pattern13.match)(attr.name).with("@length", () => {
|
|
4703
|
-
const min = getArgValue(attr.args?.[0]?.value);
|
|
4704
|
-
if (min !== void 0) {
|
|
4705
|
-
result = result.min(min);
|
|
4706
|
-
}
|
|
4707
|
-
const max = getArgValue(attr.args?.[1]?.value);
|
|
4708
|
-
if (max !== void 0) {
|
|
4709
|
-
result = result.max(max);
|
|
4710
|
-
}
|
|
4711
|
-
}).with("@startsWith", () => {
|
|
4712
|
-
const value = getArgValue(attr.args?.[0]?.value);
|
|
4713
|
-
if (value !== void 0) {
|
|
4714
|
-
result = result.startsWith(value);
|
|
4715
|
-
}
|
|
4716
|
-
}).with("@endsWith", () => {
|
|
4717
|
-
const value = getArgValue(attr.args?.[0]?.value);
|
|
4718
|
-
if (value !== void 0) {
|
|
4719
|
-
result = result.endsWith(value);
|
|
4720
|
-
}
|
|
4721
|
-
}).with("@contains", () => {
|
|
4722
|
-
const value = getArgValue(attr.args?.[0]?.value);
|
|
4723
|
-
if (value !== void 0) {
|
|
4724
|
-
result = result.includes(value);
|
|
4725
|
-
}
|
|
4726
|
-
}).with("@regex", () => {
|
|
4727
|
-
const pattern = getArgValue(attr.args?.[0]?.value);
|
|
4728
|
-
if (pattern !== void 0) {
|
|
4729
|
-
result = result.regex(new RegExp(pattern));
|
|
4730
|
-
}
|
|
4731
|
-
}).with("@email", () => {
|
|
4732
|
-
result = result.email();
|
|
4733
|
-
}).with("@datetime", () => {
|
|
4734
|
-
result = result.datetime();
|
|
4735
|
-
}).with("@url", () => {
|
|
4736
|
-
result = result.url();
|
|
4737
|
-
}).with("@trim", () => {
|
|
4738
|
-
result = result.trim();
|
|
4739
|
-
}).with("@lower", () => {
|
|
4740
|
-
result = result.toLowerCase();
|
|
4741
|
-
}).with("@upper", () => {
|
|
4742
|
-
result = result.toUpperCase();
|
|
4743
|
-
});
|
|
4744
|
-
}
|
|
4745
|
-
return result;
|
|
4746
|
-
}
|
|
4747
|
-
__name(addStringValidation, "addStringValidation");
|
|
4748
|
-
function addNumberValidation(schema, attributes) {
|
|
4749
|
-
if (!attributes || attributes.length === 0) {
|
|
4750
|
-
return schema;
|
|
4751
|
-
}
|
|
4752
|
-
let result = schema;
|
|
4753
|
-
for (const attr of attributes) {
|
|
4754
|
-
const val = getArgValue(attr.args?.[0]?.value);
|
|
4755
|
-
if (val === void 0) {
|
|
4756
|
-
continue;
|
|
4757
|
-
}
|
|
4758
|
-
(0, import_ts_pattern13.match)(attr.name).with("@gt", () => {
|
|
4759
|
-
result = result.gt(val);
|
|
4760
|
-
}).with("@gte", () => {
|
|
4761
|
-
result = result.gte(val);
|
|
4762
|
-
}).with("@lt", () => {
|
|
4763
|
-
result = result.lt(val);
|
|
4764
|
-
}).with("@lte", () => {
|
|
4765
|
-
result = result.lte(val);
|
|
4766
|
-
});
|
|
4767
|
-
}
|
|
4768
|
-
return result;
|
|
4769
|
-
}
|
|
4770
|
-
__name(addNumberValidation, "addNumberValidation");
|
|
4771
|
-
function addBigIntValidation(schema, attributes) {
|
|
4772
|
-
if (!attributes || attributes.length === 0) {
|
|
4773
|
-
return schema;
|
|
4774
|
-
}
|
|
4775
|
-
let result = schema;
|
|
4776
|
-
for (const attr of attributes) {
|
|
4777
|
-
const val = getArgValue(attr.args?.[0]?.value);
|
|
4778
|
-
if (val === void 0) {
|
|
4779
|
-
continue;
|
|
4780
|
-
}
|
|
4781
|
-
(0, import_ts_pattern13.match)(attr.name).with("@gt", () => {
|
|
4782
|
-
result = result.gt(BigInt(val));
|
|
4783
|
-
}).with("@gte", () => {
|
|
4784
|
-
result = result.gte(BigInt(val));
|
|
4785
|
-
}).with("@lt", () => {
|
|
4786
|
-
result = result.lt(BigInt(val));
|
|
4787
|
-
}).with("@lte", () => {
|
|
4788
|
-
result = result.lte(BigInt(val));
|
|
4789
|
-
});
|
|
4790
|
-
}
|
|
4791
|
-
return result;
|
|
4792
|
-
}
|
|
4793
|
-
__name(addBigIntValidation, "addBigIntValidation");
|
|
4794
|
-
function addDecimalValidation(schema, attributes, addExtraValidation) {
|
|
4795
|
-
let result = schema;
|
|
4796
|
-
if (schema instanceof import_zod.z.ZodString) {
|
|
4797
|
-
result = schema.superRefine((v, ctx) => {
|
|
4798
|
-
try {
|
|
4799
|
-
new import_decimal4.default(v);
|
|
4800
|
-
} catch (err) {
|
|
4801
|
-
ctx.addIssue({
|
|
4802
|
-
code: import_zod.z.ZodIssueCode.custom,
|
|
4803
|
-
message: `Invalid decimal: ${err}`
|
|
4804
|
-
});
|
|
4805
|
-
}
|
|
4806
|
-
}).transform((val) => new import_decimal4.default(val));
|
|
4807
|
-
}
|
|
4808
|
-
function refine(schema2, op, value) {
|
|
4809
|
-
return schema2.superRefine((v, ctx) => {
|
|
4810
|
-
const base = import_zod.z.number();
|
|
4811
|
-
const { error } = base[op](value).safeParse(v.toNumber());
|
|
4812
|
-
error?.issues.forEach((issue) => {
|
|
4813
|
-
if (op === "gt" || op === "gte") {
|
|
4814
|
-
ctx.addIssue({
|
|
4815
|
-
code: import_v3.ZodIssueCode.too_small,
|
|
4816
|
-
origin: "number",
|
|
4817
|
-
minimum: value,
|
|
4818
|
-
type: "decimal",
|
|
4819
|
-
inclusive: op === "gte",
|
|
4820
|
-
message: issue.message
|
|
4821
|
-
});
|
|
4822
|
-
} else {
|
|
4823
|
-
ctx.addIssue({
|
|
4824
|
-
code: import_v3.ZodIssueCode.too_big,
|
|
4825
|
-
origin: "number",
|
|
4826
|
-
maximum: value,
|
|
4827
|
-
type: "decimal",
|
|
4828
|
-
inclusive: op === "lte",
|
|
4829
|
-
message: issue.message
|
|
4830
|
-
});
|
|
4831
|
-
}
|
|
4832
|
-
});
|
|
4833
|
-
});
|
|
4834
|
-
}
|
|
4835
|
-
__name(refine, "refine");
|
|
4836
|
-
if (attributes && addExtraValidation) {
|
|
4837
|
-
for (const attr of attributes) {
|
|
4838
|
-
const val = getArgValue(attr.args?.[0]?.value);
|
|
4839
|
-
if (val === void 0) {
|
|
4840
|
-
continue;
|
|
4841
|
-
}
|
|
4842
|
-
(0, import_ts_pattern13.match)(attr.name).with("@gt", () => {
|
|
4843
|
-
result = refine(result, "gt", val);
|
|
4844
|
-
}).with("@gte", () => {
|
|
4845
|
-
result = refine(result, "gte", val);
|
|
4846
|
-
}).with("@lt", () => {
|
|
4847
|
-
result = refine(result, "lt", val);
|
|
4848
|
-
}).with("@lte", () => {
|
|
4849
|
-
result = refine(result, "lte", val);
|
|
4850
|
-
});
|
|
4851
|
-
}
|
|
4852
|
-
}
|
|
4853
|
-
return result;
|
|
4854
|
-
}
|
|
4855
|
-
__name(addDecimalValidation, "addDecimalValidation");
|
|
4856
|
-
function addListValidation(schema, attributes) {
|
|
4857
|
-
if (!attributes || attributes.length === 0) {
|
|
4858
|
-
return schema;
|
|
4859
|
-
}
|
|
4860
|
-
let result = schema;
|
|
4861
|
-
for (const attr of attributes) {
|
|
4862
|
-
(0, import_ts_pattern13.match)(attr.name).with("@length", () => {
|
|
4863
|
-
const min = getArgValue(attr.args?.[0]?.value);
|
|
4864
|
-
if (min !== void 0) {
|
|
4865
|
-
result = result.min(min);
|
|
4866
|
-
}
|
|
4867
|
-
const max = getArgValue(attr.args?.[1]?.value);
|
|
4868
|
-
if (max !== void 0) {
|
|
4869
|
-
result = result.max(max);
|
|
4870
|
-
}
|
|
4871
|
-
}).otherwise(() => {
|
|
4872
|
-
});
|
|
4873
|
-
}
|
|
4874
|
-
return result;
|
|
4875
|
-
}
|
|
4876
|
-
__name(addListValidation, "addListValidation");
|
|
4877
|
-
function addCustomValidation(schema, attributes) {
|
|
4878
|
-
const attrs = attributes?.filter((a) => a.name === "@@validate");
|
|
4879
|
-
if (!attrs || attrs.length === 0) {
|
|
4880
|
-
return schema;
|
|
4881
|
-
}
|
|
4882
|
-
let result = schema;
|
|
4883
|
-
for (const attr of attrs) {
|
|
4884
|
-
const expr = attr.args?.[0]?.value;
|
|
4885
|
-
if (!expr) {
|
|
4886
|
-
continue;
|
|
4887
|
-
}
|
|
4888
|
-
const message = getArgValue(attr.args?.[1]?.value);
|
|
4889
|
-
const pathExpr = attr.args?.[2]?.value;
|
|
4890
|
-
let path = void 0;
|
|
4891
|
-
if (pathExpr && schema_exports.ExpressionUtils.isArray(pathExpr)) {
|
|
4892
|
-
path = pathExpr.items.map((e) => schema_exports.ExpressionUtils.getLiteralValue(e));
|
|
4893
|
-
}
|
|
4894
|
-
result = applyValidation(result, expr, message, path);
|
|
4895
|
-
}
|
|
4896
|
-
return result;
|
|
4897
|
-
}
|
|
4898
|
-
__name(addCustomValidation, "addCustomValidation");
|
|
4899
|
-
function applyValidation(schema, expr, message, path) {
|
|
4900
|
-
const options = {};
|
|
4901
|
-
if (message) {
|
|
4902
|
-
options.error = message;
|
|
4903
|
-
}
|
|
4904
|
-
if (path) {
|
|
4905
|
-
options.path = path;
|
|
4906
|
-
}
|
|
4907
|
-
return schema.refine((data) => Boolean(evalExpression(data, expr)), options);
|
|
4908
|
-
}
|
|
4909
|
-
__name(applyValidation, "applyValidation");
|
|
4910
|
-
function evalExpression(data, expr) {
|
|
4911
|
-
return (0, import_ts_pattern13.match)(expr).with({
|
|
4912
|
-
kind: "literal"
|
|
4913
|
-
}, (e) => e.value).with({
|
|
4914
|
-
kind: "array"
|
|
4915
|
-
}, (e) => e.items.map((item) => evalExpression(data, item))).with({
|
|
4916
|
-
kind: "field"
|
|
4917
|
-
}, (e) => evalField(data, e)).with({
|
|
4918
|
-
kind: "member"
|
|
4919
|
-
}, (e) => evalMember(data, e)).with({
|
|
4920
|
-
kind: "unary"
|
|
4921
|
-
}, (e) => evalUnary(data, e)).with({
|
|
4922
|
-
kind: "binary"
|
|
4923
|
-
}, (e) => evalBinary(data, e)).with({
|
|
4924
|
-
kind: "call"
|
|
4925
|
-
}, (e) => evalCall(data, e)).with({
|
|
4926
|
-
kind: "this"
|
|
4927
|
-
}, () => data ?? null).with({
|
|
4928
|
-
kind: "null"
|
|
4929
|
-
}, () => null).with({
|
|
4930
|
-
kind: "binding"
|
|
4931
|
-
}, () => {
|
|
4932
|
-
throw new Error("Binding expression is not supported in validation expressions");
|
|
4933
|
-
}).exhaustive();
|
|
4934
|
-
}
|
|
4935
|
-
__name(evalExpression, "evalExpression");
|
|
4936
|
-
function evalField(data, e) {
|
|
4937
|
-
return data?.[e.field] ?? null;
|
|
4938
|
-
}
|
|
4939
|
-
__name(evalField, "evalField");
|
|
4940
|
-
function evalUnary(data, expr) {
|
|
4941
|
-
const operand = evalExpression(data, expr.operand);
|
|
4942
|
-
switch (expr.op) {
|
|
4943
|
-
case "!":
|
|
4944
|
-
return !operand;
|
|
4945
|
-
default:
|
|
4946
|
-
throw new Error(`Unsupported unary operator: ${expr.op}`);
|
|
4947
|
-
}
|
|
4948
|
-
}
|
|
4949
|
-
__name(evalUnary, "evalUnary");
|
|
4950
|
-
function evalBinary(data, expr) {
|
|
4951
|
-
const left = evalExpression(data, expr.left);
|
|
4952
|
-
const right = evalExpression(data, expr.right);
|
|
4953
|
-
return (0, import_ts_pattern13.match)(expr.op).with("&&", () => Boolean(left) && Boolean(right)).with("||", () => Boolean(left) || Boolean(right)).with("==", () => left == right).with("!=", () => left != right).with("<", () => left < right).with("<=", () => left <= right).with(">", () => left > right).with(">=", () => left >= right).with("?", () => {
|
|
4954
|
-
if (!Array.isArray(left)) {
|
|
4955
|
-
return false;
|
|
4956
|
-
}
|
|
4957
|
-
return left.some((item) => item === right);
|
|
4958
|
-
}).with("!", () => {
|
|
4959
|
-
if (!Array.isArray(left)) {
|
|
4960
|
-
return false;
|
|
4961
|
-
}
|
|
4962
|
-
return left.every((item) => item === right);
|
|
4963
|
-
}).with("^", () => {
|
|
4964
|
-
if (!Array.isArray(left)) {
|
|
4965
|
-
return false;
|
|
4966
|
-
}
|
|
4967
|
-
return !left.some((item) => item === right);
|
|
4968
|
-
}).with("in", () => {
|
|
4969
|
-
if (!Array.isArray(right)) {
|
|
4970
|
-
return false;
|
|
4971
|
-
}
|
|
4972
|
-
return right.includes(left);
|
|
4973
|
-
}).exhaustive();
|
|
4974
|
-
}
|
|
4975
|
-
__name(evalBinary, "evalBinary");
|
|
4976
|
-
function evalMember(data, expr) {
|
|
4977
|
-
let result = evalExpression(data, expr.receiver);
|
|
4978
|
-
for (const member of expr.members) {
|
|
4979
|
-
if (!result || typeof result !== "object") {
|
|
4980
|
-
return void 0;
|
|
4981
|
-
}
|
|
4982
|
-
result = result[member];
|
|
4983
|
-
}
|
|
4984
|
-
return result ?? null;
|
|
4985
|
-
}
|
|
4986
|
-
__name(evalMember, "evalMember");
|
|
4987
|
-
function evalCall(data, expr) {
|
|
4988
|
-
const fieldArg = expr.args?.[0] ? evalExpression(data, expr.args[0]) : void 0;
|
|
4989
|
-
return (0, import_ts_pattern13.match)(expr.function).with("length", (f) => {
|
|
4990
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
4991
|
-
return false;
|
|
4992
|
-
}
|
|
4993
|
-
(0, import_common_helpers8.invariant)(typeof fieldArg === "string" || Array.isArray(fieldArg), `"${f}" first argument must be a string or a list`);
|
|
4994
|
-
return fieldArg.length;
|
|
4995
|
-
}).with(import_ts_pattern13.P.union("startsWith", "endsWith", "contains"), (f) => {
|
|
4996
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
4997
|
-
return false;
|
|
4998
|
-
}
|
|
4999
|
-
(0, import_common_helpers8.invariant)(typeof fieldArg === "string", `"${f}" first argument must be a string`);
|
|
5000
|
-
(0, import_common_helpers8.invariant)(expr.args?.[1], `"${f}" requires a search argument`);
|
|
5001
|
-
const search2 = getArgValue(expr.args?.[1]);
|
|
5002
|
-
const caseInsensitive = getArgValue(expr.args?.[2]) ?? false;
|
|
5003
|
-
const matcher = /* @__PURE__ */ __name((x, y) => (0, import_ts_pattern13.match)(f).with("startsWith", () => x.startsWith(y)).with("endsWith", () => x.endsWith(y)).with("contains", () => x.includes(y)).exhaustive(), "matcher");
|
|
5004
|
-
return caseInsensitive ? matcher(fieldArg.toLowerCase(), search2.toLowerCase()) : matcher(fieldArg, search2);
|
|
5005
|
-
}).with("regex", (f) => {
|
|
5006
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
5007
|
-
return false;
|
|
5008
|
-
}
|
|
5009
|
-
(0, import_common_helpers8.invariant)(typeof fieldArg === "string", `"${f}" first argument must be a string`);
|
|
5010
|
-
const pattern = getArgValue(expr.args?.[1]);
|
|
5011
|
-
(0, import_common_helpers8.invariant)(pattern !== void 0, `"${f}" requires a pattern argument`);
|
|
5012
|
-
return new RegExp(pattern).test(fieldArg);
|
|
5013
|
-
}).with(import_ts_pattern13.P.union("isEmail", "isUrl", "isDateTime"), (f) => {
|
|
5014
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
5015
|
-
return false;
|
|
5016
|
-
}
|
|
5017
|
-
(0, import_common_helpers8.invariant)(typeof fieldArg === "string", `"${f}" first argument must be a string`);
|
|
5018
|
-
const fn = (0, import_ts_pattern13.match)(f).with("isEmail", () => "email").with("isUrl", () => "url").with("isDateTime", () => "datetime").exhaustive();
|
|
5019
|
-
return import_zod.z.string()[fn]().safeParse(fieldArg).success;
|
|
5020
|
-
}).with(import_ts_pattern13.P.union("has", "hasEvery", "hasSome"), (f) => {
|
|
5021
|
-
(0, import_common_helpers8.invariant)(expr.args?.[1], `${f} requires a search argument`);
|
|
5022
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
5023
|
-
return false;
|
|
5024
|
-
}
|
|
5025
|
-
(0, import_common_helpers8.invariant)(Array.isArray(fieldArg), `"${f}" first argument must be an array field`);
|
|
5026
|
-
const search2 = evalExpression(data, expr.args?.[1]);
|
|
5027
|
-
const matcher = /* @__PURE__ */ __name((x, y) => (0, import_ts_pattern13.match)(f).with("has", () => x.some((item) => item === y)).with("hasEvery", () => {
|
|
5028
|
-
(0, import_common_helpers8.invariant)(Array.isArray(y), "hasEvery second argument must be an array");
|
|
5029
|
-
return y.every((v) => x.some((item) => item === v));
|
|
5030
|
-
}).with("hasSome", () => {
|
|
5031
|
-
(0, import_common_helpers8.invariant)(Array.isArray(y), "hasSome second argument must be an array");
|
|
5032
|
-
return y.some((v) => x.some((item) => item === v));
|
|
5033
|
-
}).exhaustive(), "matcher");
|
|
5034
|
-
return matcher(fieldArg, search2);
|
|
5035
|
-
}).with("isEmpty", (f) => {
|
|
5036
|
-
if (fieldArg === void 0 || fieldArg === null) {
|
|
5037
|
-
return false;
|
|
5038
|
-
}
|
|
5039
|
-
(0, import_common_helpers8.invariant)(Array.isArray(fieldArg), `"${f}" first argument must be an array field`);
|
|
5040
|
-
return fieldArg.length === 0;
|
|
5041
|
-
}).otherwise(() => {
|
|
5042
|
-
throw createNotSupportedError(`Unsupported function "${expr.function}"`);
|
|
5043
|
-
});
|
|
5044
|
-
}
|
|
5045
|
-
__name(evalCall, "evalCall");
|
|
5046
|
-
|
|
5047
|
-
// src/client/crud/validator/index.ts
|
|
4700
|
+
// src/client/zod/factory.ts
|
|
5048
4701
|
function _ts_decorate(decorators, target, key, desc) {
|
|
5049
4702
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
5050
4703
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -5056,303 +4709,185 @@ function _ts_metadata(k, v) {
|
|
|
5056
4709
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
5057
4710
|
}
|
|
5058
4711
|
__name(_ts_metadata, "_ts_metadata");
|
|
5059
|
-
|
|
4712
|
+
function createQuerySchemaFactory(clientOrSchema, options) {
|
|
4713
|
+
return new ZodSchemaFactory(clientOrSchema, options);
|
|
4714
|
+
}
|
|
4715
|
+
__name(createQuerySchemaFactory, "createQuerySchemaFactory");
|
|
4716
|
+
var ZodSchemaFactory = class {
|
|
5060
4717
|
static {
|
|
5061
|
-
__name(this, "
|
|
4718
|
+
__name(this, "ZodSchemaFactory");
|
|
5062
4719
|
}
|
|
5063
|
-
client;
|
|
5064
4720
|
schemaCache = /* @__PURE__ */ new Map();
|
|
5065
4721
|
allFilterKinds = [
|
|
5066
4722
|
...new Set(Object.values(FILTER_PROPERTY_TO_KIND))
|
|
5067
4723
|
];
|
|
5068
|
-
|
|
5069
|
-
|
|
5070
|
-
|
|
5071
|
-
|
|
5072
|
-
|
|
4724
|
+
schema;
|
|
4725
|
+
options;
|
|
4726
|
+
constructor(clientOrSchema, options) {
|
|
4727
|
+
if ("$schema" in clientOrSchema) {
|
|
4728
|
+
this.schema = clientOrSchema.$schema;
|
|
4729
|
+
this.options = clientOrSchema.$options;
|
|
4730
|
+
} else {
|
|
4731
|
+
this.schema = clientOrSchema;
|
|
4732
|
+
this.options = options || {};
|
|
4733
|
+
}
|
|
5073
4734
|
}
|
|
5074
|
-
get
|
|
5075
|
-
return this.
|
|
4735
|
+
get plugins() {
|
|
4736
|
+
return this.options.plugins ?? [];
|
|
5076
4737
|
}
|
|
5077
4738
|
get extraValidationsEnabled() {
|
|
5078
|
-
return this.
|
|
5079
|
-
}
|
|
5080
|
-
// #region Entry points
|
|
5081
|
-
validateFindArgs(model, args, operation) {
|
|
5082
|
-
return this.validate(model, operation, (model2) => this.makeFindSchema(model2, operation), args);
|
|
5083
|
-
}
|
|
5084
|
-
validateExistsArgs(model, args) {
|
|
5085
|
-
return this.validate(model, "exists", (model2) => this.makeExistsSchema(model2), args);
|
|
4739
|
+
return this.options.validateInput !== false;
|
|
5086
4740
|
}
|
|
5087
|
-
|
|
5088
|
-
return
|
|
4741
|
+
shouldIncludeRelations(options) {
|
|
4742
|
+
return options?.relationDepth === void 0 || options.relationDepth > 0;
|
|
5089
4743
|
}
|
|
5090
|
-
|
|
5091
|
-
|
|
4744
|
+
nextOptions(options) {
|
|
4745
|
+
if (!options) return void 0;
|
|
4746
|
+
if (options.relationDepth === void 0) return options;
|
|
4747
|
+
return {
|
|
4748
|
+
...options,
|
|
4749
|
+
relationDepth: options.relationDepth - 1
|
|
4750
|
+
};
|
|
5092
4751
|
}
|
|
5093
|
-
|
|
5094
|
-
|
|
4752
|
+
// #region Cache Management
|
|
4753
|
+
// @ts-ignore
|
|
4754
|
+
getCache(cacheKey) {
|
|
4755
|
+
return this.schemaCache.get(cacheKey);
|
|
5095
4756
|
}
|
|
5096
|
-
|
|
5097
|
-
|
|
4757
|
+
// @ts-ignore
|
|
4758
|
+
setCache(cacheKey, schema) {
|
|
4759
|
+
return this.schemaCache.set(cacheKey, schema);
|
|
5098
4760
|
}
|
|
5099
|
-
|
|
5100
|
-
|
|
4761
|
+
// @ts-ignore
|
|
4762
|
+
printCacheStats(detailed = false) {
|
|
4763
|
+
console.log("Schema cache size:", this.schemaCache.size);
|
|
4764
|
+
if (detailed) {
|
|
4765
|
+
for (const key of this.schemaCache.keys()) {
|
|
4766
|
+
console.log(` ${key}`);
|
|
4767
|
+
}
|
|
4768
|
+
}
|
|
5101
4769
|
}
|
|
5102
|
-
|
|
5103
|
-
|
|
4770
|
+
// #endregion
|
|
4771
|
+
// #region Find
|
|
4772
|
+
makeFindUniqueSchema(model, options) {
|
|
4773
|
+
return this.makeFindSchema(model, "findUnique", options);
|
|
5104
4774
|
}
|
|
5105
|
-
|
|
5106
|
-
return this.
|
|
4775
|
+
makeFindFirstSchema(model, options) {
|
|
4776
|
+
return this.makeFindSchema(model, "findFirst", options);
|
|
5107
4777
|
}
|
|
5108
|
-
|
|
5109
|
-
return this.
|
|
4778
|
+
makeFindManySchema(model, options) {
|
|
4779
|
+
return this.makeFindSchema(model, "findMany", options);
|
|
5110
4780
|
}
|
|
5111
|
-
|
|
5112
|
-
|
|
4781
|
+
makeFindSchema(model, operation, options) {
|
|
4782
|
+
const fields = {};
|
|
4783
|
+
const unique = operation === "findUnique";
|
|
4784
|
+
const findOne = operation === "findUnique" || operation === "findFirst";
|
|
4785
|
+
const where = this.makeWhereSchema(model, unique, false, false, options);
|
|
4786
|
+
if (unique) {
|
|
4787
|
+
fields["where"] = where;
|
|
4788
|
+
} else {
|
|
4789
|
+
fields["where"] = where.optional();
|
|
4790
|
+
}
|
|
4791
|
+
fields["select"] = this.makeSelectSchema(model, options).optional().nullable();
|
|
4792
|
+
fields["include"] = this.makeIncludeSchema(model, options).optional().nullable();
|
|
4793
|
+
fields["omit"] = this.makeOmitSchema(model).optional().nullable();
|
|
4794
|
+
if (!unique) {
|
|
4795
|
+
fields["skip"] = this.makeSkipSchema().optional();
|
|
4796
|
+
if (findOne) {
|
|
4797
|
+
fields["take"] = import_zod2.z.literal(1).optional();
|
|
4798
|
+
} else {
|
|
4799
|
+
fields["take"] = this.makeTakeSchema().optional();
|
|
4800
|
+
}
|
|
4801
|
+
fields["orderBy"] = this.orArray(this.makeOrderBySchema(model, true, false, options), true).optional();
|
|
4802
|
+
fields["cursor"] = this.makeCursorSchema(model, options).optional();
|
|
4803
|
+
fields["distinct"] = this.makeDistinctSchema(model).optional();
|
|
4804
|
+
}
|
|
4805
|
+
const baseSchema = import_zod2.z.strictObject(fields);
|
|
4806
|
+
let result = this.mergePluginArgsSchema(baseSchema, operation);
|
|
4807
|
+
result = this.refineForSelectIncludeMutuallyExclusive(result);
|
|
4808
|
+
result = this.refineForSelectOmitMutuallyExclusive(result);
|
|
4809
|
+
result = this.refineForSelectHasTruthyField(result);
|
|
4810
|
+
if (!unique) {
|
|
4811
|
+
result = result.optional();
|
|
4812
|
+
}
|
|
4813
|
+
return result;
|
|
5113
4814
|
}
|
|
5114
|
-
|
|
5115
|
-
|
|
4815
|
+
makeExistsSchema(model, options) {
|
|
4816
|
+
const baseSchema = import_zod2.z.strictObject({
|
|
4817
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional()
|
|
4818
|
+
});
|
|
4819
|
+
return this.mergePluginArgsSchema(baseSchema, "exists").optional();
|
|
5116
4820
|
}
|
|
5117
|
-
|
|
5118
|
-
|
|
4821
|
+
makeScalarSchema(type, attributes) {
|
|
4822
|
+
if (this.schema.typeDefs && type in this.schema.typeDefs) {
|
|
4823
|
+
return this.makeTypeDefSchema(type);
|
|
4824
|
+
} else if (this.schema.enums && type in this.schema.enums) {
|
|
4825
|
+
return this.makeEnumSchema(type);
|
|
4826
|
+
} else {
|
|
4827
|
+
return (0, import_ts_pattern13.match)(type).with("String", () => this.extraValidationsEnabled ? import_zod.ZodUtils.addStringValidation(import_zod2.z.string(), attributes) : import_zod2.z.string()).with("Int", () => this.extraValidationsEnabled ? import_zod.ZodUtils.addNumberValidation(import_zod2.z.number().int(), attributes) : import_zod2.z.number().int()).with("Float", () => this.extraValidationsEnabled ? import_zod.ZodUtils.addNumberValidation(import_zod2.z.number(), attributes) : import_zod2.z.number()).with("Boolean", () => import_zod2.z.boolean()).with("BigInt", () => import_zod2.z.union([
|
|
4828
|
+
this.extraValidationsEnabled ? import_zod.ZodUtils.addNumberValidation(import_zod2.z.number().int(), attributes) : import_zod2.z.number().int(),
|
|
4829
|
+
this.extraValidationsEnabled ? import_zod.ZodUtils.addBigIntValidation(import_zod2.z.bigint(), attributes) : import_zod2.z.bigint()
|
|
4830
|
+
])).with("Decimal", () => {
|
|
4831
|
+
return import_zod2.z.union([
|
|
4832
|
+
this.extraValidationsEnabled ? import_zod.ZodUtils.addNumberValidation(import_zod2.z.number(), attributes) : import_zod2.z.number(),
|
|
4833
|
+
import_zod.ZodUtils.addDecimalValidation(import_zod2.z.instanceof(import_decimal4.default), attributes, this.extraValidationsEnabled),
|
|
4834
|
+
import_zod.ZodUtils.addDecimalValidation(import_zod2.z.string(), attributes, this.extraValidationsEnabled)
|
|
4835
|
+
]);
|
|
4836
|
+
}).with("DateTime", () => import_zod2.z.union([
|
|
4837
|
+
import_zod2.z.date(),
|
|
4838
|
+
import_zod2.z.iso.datetime()
|
|
4839
|
+
])).with("Bytes", () => import_zod2.z.instanceof(Uint8Array)).with("Json", () => this.makeJsonValueSchema(false, false)).otherwise(() => import_zod2.z.unknown());
|
|
4840
|
+
}
|
|
5119
4841
|
}
|
|
5120
|
-
|
|
5121
|
-
|
|
4842
|
+
makeEnumSchema(_enum) {
|
|
4843
|
+
const enumDef = getEnum(this.schema, _enum);
|
|
4844
|
+
(0, import_common_helpers8.invariant)(enumDef, `Enum "${_enum}" not found in schema`);
|
|
4845
|
+
return import_zod2.z.enum(Object.keys(enumDef.values));
|
|
5122
4846
|
}
|
|
5123
|
-
|
|
5124
|
-
|
|
5125
|
-
|
|
5126
|
-
|
|
5127
|
-
|
|
5128
|
-
|
|
5129
|
-
|
|
5130
|
-
return void 0;
|
|
5131
|
-
}
|
|
5132
|
-
if (params.every((p) => p.optional)) {
|
|
5133
|
-
return void 0;
|
|
5134
|
-
}
|
|
5135
|
-
throw createInvalidInputError("Missing procedure arguments", `$procs.${proc}`);
|
|
5136
|
-
}
|
|
5137
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
5138
|
-
throw createInvalidInputError("Procedure input must be an object", `$procs.${proc}`);
|
|
5139
|
-
}
|
|
5140
|
-
const envelope = input;
|
|
5141
|
-
const argsPayload = Object.prototype.hasOwnProperty.call(envelope, "args") ? envelope.args : void 0;
|
|
5142
|
-
if (params.length === 0) {
|
|
5143
|
-
if (typeof argsPayload === "undefined") {
|
|
5144
|
-
return input;
|
|
5145
|
-
}
|
|
5146
|
-
if (!argsPayload || typeof argsPayload !== "object" || Array.isArray(argsPayload)) {
|
|
5147
|
-
throw createInvalidInputError("Procedure `args` must be an object", `$procs.${proc}`);
|
|
4847
|
+
makeTypeDefSchema(type) {
|
|
4848
|
+
const typeDef = getTypeDef(this.schema, type);
|
|
4849
|
+
(0, import_common_helpers8.invariant)(typeDef, `Type definition "${type}" not found in schema`);
|
|
4850
|
+
const schema = import_zod2.z.looseObject(Object.fromEntries(Object.entries(typeDef.fields).map(([field, def]) => {
|
|
4851
|
+
let fieldSchema = this.makeScalarSchema(def.type);
|
|
4852
|
+
if (def.array) {
|
|
4853
|
+
fieldSchema = fieldSchema.array();
|
|
5148
4854
|
}
|
|
5149
|
-
if (
|
|
5150
|
-
|
|
4855
|
+
if (def.optional) {
|
|
4856
|
+
fieldSchema = fieldSchema.nullish();
|
|
5151
4857
|
}
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
throw createInvalidInputError("Procedure `args` must be an object", `$procs.${proc}`);
|
|
5162
|
-
}
|
|
5163
|
-
const obj = argsPayload;
|
|
5164
|
-
for (const param of params) {
|
|
5165
|
-
const value = obj[param.name];
|
|
5166
|
-
if (!Object.prototype.hasOwnProperty.call(obj, param.name)) {
|
|
5167
|
-
if (param.optional) {
|
|
5168
|
-
continue;
|
|
5169
|
-
}
|
|
5170
|
-
throw createInvalidInputError(`Missing procedure argument: ${param.name}`, `$procs.${proc}`);
|
|
5171
|
-
}
|
|
5172
|
-
if (typeof value === "undefined") {
|
|
5173
|
-
if (param.optional) {
|
|
5174
|
-
continue;
|
|
5175
|
-
}
|
|
5176
|
-
throw createInvalidInputError(`Invalid procedure argument: ${param.name} is required`, `$procs.${proc}`);
|
|
5177
|
-
}
|
|
5178
|
-
const schema = this.makeProcedureParamSchema(param);
|
|
5179
|
-
const parsed = schema.safeParse(value);
|
|
5180
|
-
if (!parsed.success) {
|
|
5181
|
-
throw createInvalidInputError(`Invalid procedure argument: ${param.name}: ${formatError(parsed.error)}`, `$procs.${proc}`);
|
|
5182
|
-
}
|
|
5183
|
-
}
|
|
5184
|
-
return input;
|
|
5185
|
-
}
|
|
5186
|
-
// #endregion
|
|
5187
|
-
// #region Validation helpers
|
|
5188
|
-
validate(model, operation, getSchema, args) {
|
|
5189
|
-
const schema = getSchema(model);
|
|
5190
|
-
const { error, data } = schema.safeParse(args);
|
|
5191
|
-
if (error) {
|
|
5192
|
-
throw createInvalidInputError(`Invalid ${operation} args for model "${model}": ${formatError(error)}`, model, {
|
|
5193
|
-
cause: error
|
|
5194
|
-
});
|
|
5195
|
-
}
|
|
5196
|
-
return data;
|
|
5197
|
-
}
|
|
5198
|
-
mergePluginArgsSchema(schema, operation) {
|
|
5199
|
-
let result = schema;
|
|
5200
|
-
for (const plugin of this.options.plugins ?? []) {
|
|
5201
|
-
if (plugin.queryArgs) {
|
|
5202
|
-
const pluginSchema = this.getPluginExtQueryArgsSchema(plugin, operation);
|
|
5203
|
-
if (pluginSchema) {
|
|
5204
|
-
result = result.extend(pluginSchema.shape);
|
|
5205
|
-
}
|
|
5206
|
-
}
|
|
5207
|
-
}
|
|
5208
|
-
return result.strict();
|
|
5209
|
-
}
|
|
5210
|
-
getPluginExtQueryArgsSchema(plugin, operation) {
|
|
5211
|
-
if (!plugin.queryArgs) {
|
|
5212
|
-
return void 0;
|
|
5213
|
-
}
|
|
5214
|
-
let result;
|
|
5215
|
-
if (operation in plugin.queryArgs && plugin.queryArgs[operation]) {
|
|
5216
|
-
result = plugin.queryArgs[operation];
|
|
5217
|
-
} else if (operation === "upsert") {
|
|
5218
|
-
const createSchema = "$create" in plugin.queryArgs && plugin.queryArgs["$create"] ? plugin.queryArgs["$create"] : void 0;
|
|
5219
|
-
const updateSchema = "$update" in plugin.queryArgs && plugin.queryArgs["$update"] ? plugin.queryArgs["$update"] : void 0;
|
|
5220
|
-
if (createSchema && updateSchema) {
|
|
5221
|
-
(0, import_common_helpers9.invariant)(createSchema instanceof import_zod2.z.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5222
|
-
(0, import_common_helpers9.invariant)(updateSchema instanceof import_zod2.z.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5223
|
-
result = createSchema.extend(updateSchema.shape);
|
|
5224
|
-
} else if (createSchema) {
|
|
5225
|
-
result = createSchema;
|
|
5226
|
-
} else if (updateSchema) {
|
|
5227
|
-
result = updateSchema;
|
|
5228
|
-
}
|
|
5229
|
-
} else if (
|
|
5230
|
-
// then comes grouped operations: $create, $read, $update, $delete
|
|
5231
|
-
CoreCreateOperations.includes(operation) && "$create" in plugin.queryArgs && plugin.queryArgs["$create"]
|
|
5232
|
-
) {
|
|
5233
|
-
result = plugin.queryArgs["$create"];
|
|
5234
|
-
} else if (CoreReadOperations.includes(operation) && "$read" in plugin.queryArgs && plugin.queryArgs["$read"]) {
|
|
5235
|
-
result = plugin.queryArgs["$read"];
|
|
5236
|
-
} else if (CoreUpdateOperations.includes(operation) && "$update" in plugin.queryArgs && plugin.queryArgs["$update"]) {
|
|
5237
|
-
result = plugin.queryArgs["$update"];
|
|
5238
|
-
} else if (CoreDeleteOperations.includes(operation) && "$delete" in plugin.queryArgs && plugin.queryArgs["$delete"]) {
|
|
5239
|
-
result = plugin.queryArgs["$delete"];
|
|
5240
|
-
} else if ("$all" in plugin.queryArgs && plugin.queryArgs["$all"]) {
|
|
5241
|
-
result = plugin.queryArgs["$all"];
|
|
5242
|
-
}
|
|
5243
|
-
(0, import_common_helpers9.invariant)(result === void 0 || result instanceof import_zod2.z.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5244
|
-
return result;
|
|
5245
|
-
}
|
|
5246
|
-
// #endregion
|
|
5247
|
-
// #region Find
|
|
5248
|
-
makeFindSchema(model, operation) {
|
|
5249
|
-
const fields = {};
|
|
5250
|
-
const unique = operation === "findUnique";
|
|
5251
|
-
const findOne = operation === "findUnique" || operation === "findFirst";
|
|
5252
|
-
const where = this.makeWhereSchema(model, unique);
|
|
5253
|
-
if (unique) {
|
|
5254
|
-
fields["where"] = where;
|
|
5255
|
-
} else {
|
|
5256
|
-
fields["where"] = where.optional();
|
|
5257
|
-
}
|
|
5258
|
-
fields["select"] = this.makeSelectSchema(model).optional().nullable();
|
|
5259
|
-
fields["include"] = this.makeIncludeSchema(model).optional().nullable();
|
|
5260
|
-
fields["omit"] = this.makeOmitSchema(model).optional().nullable();
|
|
5261
|
-
if (!unique) {
|
|
5262
|
-
fields["skip"] = this.makeSkipSchema().optional();
|
|
5263
|
-
if (findOne) {
|
|
5264
|
-
fields["take"] = import_zod2.z.literal(1).optional();
|
|
5265
|
-
} else {
|
|
5266
|
-
fields["take"] = this.makeTakeSchema().optional();
|
|
5267
|
-
}
|
|
5268
|
-
fields["orderBy"] = this.orArray(this.makeOrderBySchema(model, true, false), true).optional();
|
|
5269
|
-
fields["cursor"] = this.makeCursorSchema(model).optional();
|
|
5270
|
-
fields["distinct"] = this.makeDistinctSchema(model).optional();
|
|
5271
|
-
}
|
|
5272
|
-
const baseSchema = import_zod2.z.strictObject(fields);
|
|
5273
|
-
let result = this.mergePluginArgsSchema(baseSchema, operation);
|
|
5274
|
-
result = this.refineForSelectIncludeMutuallyExclusive(result);
|
|
5275
|
-
result = this.refineForSelectOmitMutuallyExclusive(result);
|
|
5276
|
-
if (!unique) {
|
|
5277
|
-
result = result.optional();
|
|
5278
|
-
}
|
|
5279
|
-
return result;
|
|
5280
|
-
}
|
|
5281
|
-
makeExistsSchema(model) {
|
|
5282
|
-
const baseSchema = import_zod2.z.strictObject({
|
|
5283
|
-
where: this.makeWhereSchema(model, false).optional()
|
|
5284
|
-
});
|
|
5285
|
-
return this.mergePluginArgsSchema(baseSchema, "exists").optional();
|
|
5286
|
-
}
|
|
5287
|
-
makeScalarSchema(type, attributes) {
|
|
5288
|
-
if (this.schema.typeDefs && type in this.schema.typeDefs) {
|
|
5289
|
-
return this.makeTypeDefSchema(type);
|
|
5290
|
-
} else if (this.schema.enums && type in this.schema.enums) {
|
|
5291
|
-
return this.makeEnumSchema(type);
|
|
5292
|
-
} else {
|
|
5293
|
-
return (0, import_ts_pattern14.match)(type).with("String", () => this.extraValidationsEnabled ? addStringValidation(import_zod2.z.string(), attributes) : import_zod2.z.string()).with("Int", () => this.extraValidationsEnabled ? addNumberValidation(import_zod2.z.number().int(), attributes) : import_zod2.z.number().int()).with("Float", () => this.extraValidationsEnabled ? addNumberValidation(import_zod2.z.number(), attributes) : import_zod2.z.number()).with("Boolean", () => import_zod2.z.boolean()).with("BigInt", () => import_zod2.z.union([
|
|
5294
|
-
this.extraValidationsEnabled ? addNumberValidation(import_zod2.z.number().int(), attributes) : import_zod2.z.number().int(),
|
|
5295
|
-
this.extraValidationsEnabled ? addBigIntValidation(import_zod2.z.bigint(), attributes) : import_zod2.z.bigint()
|
|
5296
|
-
])).with("Decimal", () => {
|
|
5297
|
-
return import_zod2.z.union([
|
|
5298
|
-
this.extraValidationsEnabled ? addNumberValidation(import_zod2.z.number(), attributes) : import_zod2.z.number(),
|
|
5299
|
-
addDecimalValidation(import_zod2.z.instanceof(import_decimal5.default), attributes, this.extraValidationsEnabled),
|
|
5300
|
-
addDecimalValidation(import_zod2.z.string(), attributes, this.extraValidationsEnabled)
|
|
5301
|
-
]);
|
|
5302
|
-
}).with("DateTime", () => import_zod2.z.union([
|
|
5303
|
-
import_zod2.z.date(),
|
|
5304
|
-
import_zod2.z.iso.datetime()
|
|
5305
|
-
])).with("Bytes", () => import_zod2.z.instanceof(Uint8Array)).with("Json", () => this.makeJsonValueSchema(false, false)).otherwise(() => import_zod2.z.unknown());
|
|
5306
|
-
}
|
|
5307
|
-
}
|
|
5308
|
-
makeEnumSchema(type) {
|
|
5309
|
-
const enumDef = getEnum(this.schema, type);
|
|
5310
|
-
(0, import_common_helpers9.invariant)(enumDef, `Enum "${type}" not found in schema`);
|
|
5311
|
-
return import_zod2.z.enum(Object.keys(enumDef.values));
|
|
5312
|
-
}
|
|
5313
|
-
makeTypeDefSchema(type) {
|
|
5314
|
-
const typeDef = getTypeDef(this.schema, type);
|
|
5315
|
-
(0, import_common_helpers9.invariant)(typeDef, `Type definition "${type}" not found in schema`);
|
|
5316
|
-
const schema = import_zod2.z.looseObject(Object.fromEntries(Object.entries(typeDef.fields).map(([field, def]) => {
|
|
5317
|
-
let fieldSchema = this.makeScalarSchema(def.type);
|
|
5318
|
-
if (def.array) {
|
|
5319
|
-
fieldSchema = fieldSchema.array();
|
|
5320
|
-
}
|
|
5321
|
-
if (def.optional) {
|
|
5322
|
-
fieldSchema = fieldSchema.nullish();
|
|
5323
|
-
}
|
|
5324
|
-
return [
|
|
5325
|
-
field,
|
|
5326
|
-
fieldSchema
|
|
5327
|
-
];
|
|
5328
|
-
})));
|
|
5329
|
-
const finalSchema = import_zod2.z.any().superRefine((value, ctx) => {
|
|
5330
|
-
const parseResult = schema.safeParse(value);
|
|
5331
|
-
if (!parseResult.success) {
|
|
5332
|
-
parseResult.error.issues.forEach((issue) => ctx.addIssue(issue));
|
|
4858
|
+
return [
|
|
4859
|
+
field,
|
|
4860
|
+
fieldSchema
|
|
4861
|
+
];
|
|
4862
|
+
})));
|
|
4863
|
+
const finalSchema = import_zod2.z.any().superRefine((value, ctx) => {
|
|
4864
|
+
const parseResult = schema.safeParse(value);
|
|
4865
|
+
if (!parseResult.success) {
|
|
4866
|
+
parseResult.error.issues.forEach((issue) => ctx.addIssue(issue));
|
|
5333
4867
|
}
|
|
5334
4868
|
});
|
|
5335
4869
|
return finalSchema;
|
|
5336
4870
|
}
|
|
5337
|
-
makeWhereSchema(model, unique, withoutRelationFields = false, withAggregations = false) {
|
|
4871
|
+
makeWhereSchema(model, unique, withoutRelationFields = false, withAggregations = false, options) {
|
|
5338
4872
|
const modelDef = requireModel(this.schema, model);
|
|
5339
4873
|
const uniqueFieldNames = unique ? getUniqueFields(this.schema, model).filter((uf) => (
|
|
5340
4874
|
// single-field unique
|
|
5341
4875
|
"def" in uf
|
|
5342
4876
|
)).map((uf) => uf.name) : void 0;
|
|
4877
|
+
const nextOpts = this.nextOptions(options);
|
|
5343
4878
|
const fields = {};
|
|
5344
4879
|
for (const field of Object.keys(modelDef.fields)) {
|
|
5345
4880
|
const fieldDef = requireField(this.schema, model, field);
|
|
5346
4881
|
let fieldSchema;
|
|
5347
4882
|
if (fieldDef.relation) {
|
|
5348
|
-
if (withoutRelationFields) {
|
|
4883
|
+
if (withoutRelationFields || !this.shouldIncludeRelations(options)) {
|
|
5349
4884
|
continue;
|
|
5350
4885
|
}
|
|
5351
4886
|
const allowedFilterKinds = this.getEffectiveFilterKinds(model, field);
|
|
5352
4887
|
if (allowedFilterKinds && !allowedFilterKinds.includes("Relation")) {
|
|
5353
4888
|
fieldSchema = import_zod2.z.never();
|
|
5354
4889
|
} else {
|
|
5355
|
-
fieldSchema = import_zod2.z.lazy(() => this.makeWhereSchema(fieldDef.type, false).optional());
|
|
4890
|
+
fieldSchema = import_zod2.z.lazy(() => this.makeWhereSchema(fieldDef.type, false, false, false, nextOpts).optional());
|
|
5356
4891
|
fieldSchema = this.nullableIf(fieldSchema, !fieldDef.array && !!fieldDef.optional);
|
|
5357
4892
|
if (fieldDef.array) {
|
|
5358
4893
|
fieldSchema = import_zod2.z.union([
|
|
@@ -5397,7 +4932,7 @@ var InputValidator = class {
|
|
|
5397
4932
|
for (const uniqueField of uniqueFields) {
|
|
5398
4933
|
if ("defs" in uniqueField) {
|
|
5399
4934
|
fields[uniqueField.name] = import_zod2.z.object(Object.fromEntries(Object.entries(uniqueField.defs).map(([key, def]) => {
|
|
5400
|
-
(0,
|
|
4935
|
+
(0, import_common_helpers8.invariant)(!def.relation, "unique field cannot be a relation");
|
|
5401
4936
|
let fieldSchema;
|
|
5402
4937
|
const enumDef = getEnum(this.schema, def.type);
|
|
5403
4938
|
if (enumDef) {
|
|
@@ -5420,9 +4955,9 @@ var InputValidator = class {
|
|
|
5420
4955
|
fields["$expr"] = import_zod2.z.custom((v) => typeof v === "function", {
|
|
5421
4956
|
error: '"$expr" must be a function'
|
|
5422
4957
|
}).optional();
|
|
5423
|
-
fields["AND"] = this.orArray(import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)), true).optional();
|
|
5424
|
-
fields["OR"] = import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)).array().optional();
|
|
5425
|
-
fields["NOT"] = this.orArray(import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields)), true).optional();
|
|
4958
|
+
fields["AND"] = this.orArray(import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields, false, options)), true).optional();
|
|
4959
|
+
fields["OR"] = import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields, false, options)).array().optional();
|
|
4960
|
+
fields["NOT"] = this.orArray(import_zod2.z.lazy(() => this.makeWhereSchema(model, false, withoutRelationFields, false, options)), true).optional();
|
|
5426
4961
|
const baseWhere = import_zod2.z.strictObject(fields);
|
|
5427
4962
|
let result = baseWhere;
|
|
5428
4963
|
if (unique) {
|
|
@@ -5448,7 +4983,7 @@ var InputValidator = class {
|
|
|
5448
4983
|
const optional = !!fieldInfo.optional;
|
|
5449
4984
|
const array = !!fieldInfo.array;
|
|
5450
4985
|
const typeDef = getTypeDef(this.schema, type);
|
|
5451
|
-
(0,
|
|
4986
|
+
(0, import_common_helpers8.invariant)(typeDef, `Type definition "${type}" not found in schema`);
|
|
5452
4987
|
const candidates = [];
|
|
5453
4988
|
if (!array) {
|
|
5454
4989
|
const fieldSchemas = {};
|
|
@@ -5500,7 +5035,7 @@ var InputValidator = class {
|
|
|
5500
5035
|
const optional = !!fieldInfo.optional;
|
|
5501
5036
|
const array = !!fieldInfo.array;
|
|
5502
5037
|
const enumDef = getEnum(this.schema, enumName);
|
|
5503
|
-
(0,
|
|
5038
|
+
(0, import_common_helpers8.invariant)(enumDef, `Enum "${enumName}" not found in schema`);
|
|
5504
5039
|
const baseSchema = import_zod2.z.enum(Object.keys(enumDef.values));
|
|
5505
5040
|
if (array) {
|
|
5506
5041
|
return this.internalMakeArrayFilterSchema(model, fieldInfo.name, baseSchema);
|
|
@@ -5537,7 +5072,7 @@ var InputValidator = class {
|
|
|
5537
5072
|
const allowedFilterKinds = ignoreSlicing ? void 0 : this.getEffectiveFilterKinds(contextModel, fieldInfo.name);
|
|
5538
5073
|
const type = fieldInfo.type;
|
|
5539
5074
|
const optional = !!fieldInfo.optional;
|
|
5540
|
-
return (0,
|
|
5075
|
+
return (0, import_ts_pattern13.match)(type).with("String", () => this.makeStringFilterSchema(optional, withAggregations, allowedFilterKinds)).with(import_ts_pattern13.P.union("Int", "Float", "Decimal", "BigInt"), (type2) => this.makeNumberFilterSchema(this.makeScalarSchema(type2), optional, withAggregations, allowedFilterKinds)).with("Boolean", () => this.makeBooleanFilterSchema(optional, withAggregations, allowedFilterKinds)).with("DateTime", () => this.makeDateTimeFilterSchema(optional, withAggregations, allowedFilterKinds)).with("Bytes", () => this.makeBytesFilterSchema(optional, withAggregations, allowedFilterKinds)).with("Json", () => this.makeJsonFilterSchema(contextModel, fieldInfo.name, optional)).with("Unsupported", () => import_zod2.z.never()).exhaustive();
|
|
5541
5076
|
}
|
|
5542
5077
|
makeJsonValueSchema(nullable, forFilter) {
|
|
5543
5078
|
const options = [
|
|
@@ -5701,29 +5236,35 @@ var InputValidator = class {
|
|
|
5701
5236
|
import_zod2.z.literal("insensitive")
|
|
5702
5237
|
]);
|
|
5703
5238
|
}
|
|
5704
|
-
makeSelectSchema(model) {
|
|
5239
|
+
makeSelectSchema(model, options) {
|
|
5705
5240
|
const modelDef = requireModel(this.schema, model);
|
|
5706
5241
|
const fields = {};
|
|
5707
5242
|
for (const field of Object.keys(modelDef.fields)) {
|
|
5708
5243
|
const fieldDef = requireField(this.schema, model, field);
|
|
5709
5244
|
if (fieldDef.relation) {
|
|
5245
|
+
if (!this.shouldIncludeRelations(options)) {
|
|
5246
|
+
continue;
|
|
5247
|
+
}
|
|
5710
5248
|
if (this.isModelAllowed(fieldDef.type)) {
|
|
5711
|
-
fields[field] = this.makeRelationSelectIncludeSchema(model, field).optional();
|
|
5249
|
+
fields[field] = this.makeRelationSelectIncludeSchema(model, field, options).optional();
|
|
5712
5250
|
}
|
|
5713
5251
|
} else {
|
|
5714
5252
|
fields[field] = import_zod2.z.boolean().optional();
|
|
5715
5253
|
}
|
|
5716
5254
|
}
|
|
5717
|
-
|
|
5718
|
-
|
|
5719
|
-
|
|
5255
|
+
if (this.shouldIncludeRelations(options)) {
|
|
5256
|
+
const _countSchema = this.makeCountSelectionSchema(model, options);
|
|
5257
|
+
if (!(_countSchema instanceof import_zod2.z.ZodNever)) {
|
|
5258
|
+
fields["_count"] = _countSchema;
|
|
5259
|
+
}
|
|
5720
5260
|
}
|
|
5721
5261
|
return import_zod2.z.strictObject(fields);
|
|
5722
5262
|
}
|
|
5723
|
-
makeCountSelectionSchema(model) {
|
|
5263
|
+
makeCountSelectionSchema(model, options) {
|
|
5724
5264
|
const modelDef = requireModel(this.schema, model);
|
|
5725
5265
|
const toManyRelations = Object.values(modelDef.fields).filter((def) => def.relation && def.array);
|
|
5726
5266
|
if (toManyRelations.length > 0) {
|
|
5267
|
+
const nextOpts = this.nextOptions(options);
|
|
5727
5268
|
return import_zod2.z.union([
|
|
5728
5269
|
import_zod2.z.literal(true),
|
|
5729
5270
|
import_zod2.z.strictObject({
|
|
@@ -5732,7 +5273,7 @@ var InputValidator = class {
|
|
|
5732
5273
|
[fieldDef.name]: import_zod2.z.union([
|
|
5733
5274
|
import_zod2.z.boolean(),
|
|
5734
5275
|
import_zod2.z.strictObject({
|
|
5735
|
-
where: this.makeWhereSchema(fieldDef.type, false, false)
|
|
5276
|
+
where: this.makeWhereSchema(fieldDef.type, false, false, false, nextOpts)
|
|
5736
5277
|
})
|
|
5737
5278
|
]).optional()
|
|
5738
5279
|
}), {}))
|
|
@@ -5742,27 +5283,29 @@ var InputValidator = class {
|
|
|
5742
5283
|
return import_zod2.z.never();
|
|
5743
5284
|
}
|
|
5744
5285
|
}
|
|
5745
|
-
makeRelationSelectIncludeSchema(model, field) {
|
|
5286
|
+
makeRelationSelectIncludeSchema(model, field, options) {
|
|
5746
5287
|
const fieldDef = requireField(this.schema, model, field);
|
|
5288
|
+
const nextOpts = this.nextOptions(options);
|
|
5747
5289
|
let objSchema = import_zod2.z.strictObject({
|
|
5748
5290
|
...fieldDef.array || fieldDef.optional ? {
|
|
5749
5291
|
// to-many relations and optional to-one relations are filterable
|
|
5750
|
-
where: import_zod2.z.lazy(() => this.makeWhereSchema(fieldDef.type, false)).optional()
|
|
5292
|
+
where: import_zod2.z.lazy(() => this.makeWhereSchema(fieldDef.type, false, false, false, nextOpts)).optional()
|
|
5751
5293
|
} : {},
|
|
5752
|
-
select: import_zod2.z.lazy(() => this.makeSelectSchema(fieldDef.type)).optional().nullable(),
|
|
5753
|
-
include: import_zod2.z.lazy(() => this.makeIncludeSchema(fieldDef.type)).optional().nullable(),
|
|
5294
|
+
select: import_zod2.z.lazy(() => this.makeSelectSchema(fieldDef.type, nextOpts)).optional().nullable(),
|
|
5295
|
+
include: import_zod2.z.lazy(() => this.makeIncludeSchema(fieldDef.type, nextOpts)).optional().nullable(),
|
|
5754
5296
|
omit: import_zod2.z.lazy(() => this.makeOmitSchema(fieldDef.type)).optional().nullable(),
|
|
5755
5297
|
...fieldDef.array ? {
|
|
5756
5298
|
// to-many relations can be ordered, skipped, taken, and cursor-located
|
|
5757
|
-
orderBy: import_zod2.z.lazy(() => this.orArray(this.makeOrderBySchema(fieldDef.type, true, false), true)).optional(),
|
|
5299
|
+
orderBy: import_zod2.z.lazy(() => this.orArray(this.makeOrderBySchema(fieldDef.type, true, false, nextOpts), true)).optional(),
|
|
5758
5300
|
skip: this.makeSkipSchema().optional(),
|
|
5759
5301
|
take: this.makeTakeSchema().optional(),
|
|
5760
|
-
cursor: this.makeCursorSchema(fieldDef.type).optional(),
|
|
5302
|
+
cursor: this.makeCursorSchema(fieldDef.type, nextOpts).optional(),
|
|
5761
5303
|
distinct: this.makeDistinctSchema(fieldDef.type).optional()
|
|
5762
5304
|
} : {}
|
|
5763
5305
|
});
|
|
5764
5306
|
objSchema = this.refineForSelectIncludeMutuallyExclusive(objSchema);
|
|
5765
5307
|
objSchema = this.refineForSelectOmitMutuallyExclusive(objSchema);
|
|
5308
|
+
objSchema = this.refineForSelectHasTruthyField(objSchema);
|
|
5766
5309
|
return import_zod2.z.union([
|
|
5767
5310
|
import_zod2.z.boolean(),
|
|
5768
5311
|
objSchema
|
|
@@ -5783,36 +5326,42 @@ var InputValidator = class {
|
|
|
5783
5326
|
}
|
|
5784
5327
|
return import_zod2.z.strictObject(fields);
|
|
5785
5328
|
}
|
|
5786
|
-
makeIncludeSchema(model) {
|
|
5329
|
+
makeIncludeSchema(model, options) {
|
|
5787
5330
|
const modelDef = requireModel(this.schema, model);
|
|
5788
5331
|
const fields = {};
|
|
5789
5332
|
for (const field of Object.keys(modelDef.fields)) {
|
|
5790
5333
|
const fieldDef = requireField(this.schema, model, field);
|
|
5791
5334
|
if (fieldDef.relation) {
|
|
5335
|
+
if (!this.shouldIncludeRelations(options)) {
|
|
5336
|
+
continue;
|
|
5337
|
+
}
|
|
5792
5338
|
if (this.isModelAllowed(fieldDef.type)) {
|
|
5793
|
-
fields[field] = this.makeRelationSelectIncludeSchema(model, field).optional();
|
|
5339
|
+
fields[field] = this.makeRelationSelectIncludeSchema(model, field, options).optional();
|
|
5794
5340
|
}
|
|
5795
5341
|
}
|
|
5796
5342
|
}
|
|
5797
|
-
|
|
5798
|
-
|
|
5799
|
-
|
|
5343
|
+
if (this.shouldIncludeRelations(options)) {
|
|
5344
|
+
const _countSchema = this.makeCountSelectionSchema(model, options);
|
|
5345
|
+
if (!(_countSchema instanceof import_zod2.z.ZodNever)) {
|
|
5346
|
+
fields["_count"] = _countSchema;
|
|
5347
|
+
}
|
|
5800
5348
|
}
|
|
5801
5349
|
return import_zod2.z.strictObject(fields);
|
|
5802
5350
|
}
|
|
5803
|
-
makeOrderBySchema(model, withRelation, WithAggregation) {
|
|
5351
|
+
makeOrderBySchema(model, withRelation, WithAggregation, options) {
|
|
5804
5352
|
const modelDef = requireModel(this.schema, model);
|
|
5805
5353
|
const fields = {};
|
|
5806
5354
|
const sort = import_zod2.z.union([
|
|
5807
5355
|
import_zod2.z.literal("asc"),
|
|
5808
5356
|
import_zod2.z.literal("desc")
|
|
5809
5357
|
]);
|
|
5358
|
+
const nextOpts = this.nextOptions(options);
|
|
5810
5359
|
for (const field of Object.keys(modelDef.fields)) {
|
|
5811
5360
|
const fieldDef = requireField(this.schema, model, field);
|
|
5812
5361
|
if (fieldDef.relation) {
|
|
5813
|
-
if (withRelation) {
|
|
5362
|
+
if (withRelation && this.shouldIncludeRelations(options)) {
|
|
5814
5363
|
fields[field] = import_zod2.z.lazy(() => {
|
|
5815
|
-
let relationOrderBy = this.makeOrderBySchema(fieldDef.type, withRelation, WithAggregation);
|
|
5364
|
+
let relationOrderBy = this.makeOrderBySchema(fieldDef.type, withRelation, WithAggregation, nextOpts);
|
|
5816
5365
|
if (fieldDef.array) {
|
|
5817
5366
|
relationOrderBy = relationOrderBy.extend({
|
|
5818
5367
|
_count: sort
|
|
@@ -5847,7 +5396,7 @@ var InputValidator = class {
|
|
|
5847
5396
|
"_max"
|
|
5848
5397
|
];
|
|
5849
5398
|
for (const agg of aggregationFields) {
|
|
5850
|
-
fields[agg] = import_zod2.z.lazy(() => this.makeOrderBySchema(model, true, false).optional());
|
|
5399
|
+
fields[agg] = import_zod2.z.lazy(() => this.makeOrderBySchema(model, true, false, options).optional());
|
|
5851
5400
|
}
|
|
5852
5401
|
}
|
|
5853
5402
|
return import_zod2.z.strictObject(fields);
|
|
@@ -5855,56 +5404,56 @@ var InputValidator = class {
|
|
|
5855
5404
|
makeDistinctSchema(model) {
|
|
5856
5405
|
const modelDef = requireModel(this.schema, model);
|
|
5857
5406
|
const nonRelationFields = Object.keys(modelDef.fields).filter((field) => !modelDef.fields[field]?.relation);
|
|
5858
|
-
return this.orArray(import_zod2.z.enum(nonRelationFields), true);
|
|
5407
|
+
return nonRelationFields.length > 0 ? this.orArray(import_zod2.z.enum(nonRelationFields), true) : import_zod2.z.never();
|
|
5859
5408
|
}
|
|
5860
|
-
makeCursorSchema(model) {
|
|
5861
|
-
return this.makeWhereSchema(model, true, true).optional();
|
|
5409
|
+
makeCursorSchema(model, options) {
|
|
5410
|
+
return this.makeWhereSchema(model, true, true, false, options).optional();
|
|
5862
5411
|
}
|
|
5863
5412
|
// #endregion
|
|
5864
5413
|
// #region Create
|
|
5865
|
-
makeCreateSchema(model) {
|
|
5866
|
-
const dataSchema = this.makeCreateDataSchema(model, false);
|
|
5414
|
+
makeCreateSchema(model, options) {
|
|
5415
|
+
const dataSchema = this.makeCreateDataSchema(model, false, [], false, options);
|
|
5867
5416
|
const baseSchema = import_zod2.z.strictObject({
|
|
5868
5417
|
data: dataSchema,
|
|
5869
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
5870
|
-
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
5418
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
5419
|
+
include: this.makeIncludeSchema(model, options).optional().nullable(),
|
|
5871
5420
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
5872
5421
|
});
|
|
5873
5422
|
let schema = this.mergePluginArgsSchema(baseSchema, "create");
|
|
5874
5423
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
5875
5424
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
5425
|
+
schema = this.refineForSelectHasTruthyField(schema);
|
|
5876
5426
|
return schema;
|
|
5877
5427
|
}
|
|
5878
|
-
makeCreateManySchema(model) {
|
|
5879
|
-
return this.mergePluginArgsSchema(this.
|
|
5428
|
+
makeCreateManySchema(model, options) {
|
|
5429
|
+
return this.mergePluginArgsSchema(this.makeCreateManyPayloadSchema(model, [], options), "createMany");
|
|
5880
5430
|
}
|
|
5881
|
-
makeCreateManyAndReturnSchema(model) {
|
|
5882
|
-
const base = this.
|
|
5431
|
+
makeCreateManyAndReturnSchema(model, options) {
|
|
5432
|
+
const base = this.makeCreateManyPayloadSchema(model, [], options);
|
|
5883
5433
|
let result = base.extend({
|
|
5884
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
5434
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
5885
5435
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
5886
5436
|
});
|
|
5887
5437
|
result = this.mergePluginArgsSchema(result, "createManyAndReturn");
|
|
5888
|
-
return this.refineForSelectOmitMutuallyExclusive(result).optional();
|
|
5438
|
+
return this.refineForSelectHasTruthyField(this.refineForSelectOmitMutuallyExclusive(result)).optional();
|
|
5889
5439
|
}
|
|
5890
|
-
makeCreateDataSchema(model, canBeArray, withoutFields = [], withoutRelationFields = false) {
|
|
5440
|
+
makeCreateDataSchema(model, canBeArray, withoutFields = [], withoutRelationFields = false, options) {
|
|
5441
|
+
const skipRelations = withoutRelationFields || !this.shouldIncludeRelations(options);
|
|
5891
5442
|
const uncheckedVariantFields = {};
|
|
5892
5443
|
const checkedVariantFields = {};
|
|
5893
5444
|
const modelDef = requireModel(this.schema, model);
|
|
5894
|
-
const hasRelation = !
|
|
5445
|
+
const hasRelation = !skipRelations && Object.entries(modelDef.fields).some(([f, def]) => !withoutFields.includes(f) && def.relation);
|
|
5446
|
+
const nextOpts = this.nextOptions(options);
|
|
5895
5447
|
Object.keys(modelDef.fields).forEach((field) => {
|
|
5896
5448
|
if (withoutFields.includes(field)) {
|
|
5897
5449
|
return;
|
|
5898
5450
|
}
|
|
5899
5451
|
const fieldDef = requireField(this.schema, model, field);
|
|
5900
|
-
if (fieldDef.computed) {
|
|
5901
|
-
return;
|
|
5902
|
-
}
|
|
5903
|
-
if (this.isDelegateDiscriminator(fieldDef)) {
|
|
5452
|
+
if (fieldDef.computed || fieldDef.isDiscriminator) {
|
|
5904
5453
|
return;
|
|
5905
5454
|
}
|
|
5906
5455
|
if (fieldDef.relation) {
|
|
5907
|
-
if (
|
|
5456
|
+
if (skipRelations) {
|
|
5908
5457
|
return;
|
|
5909
5458
|
}
|
|
5910
5459
|
if (!this.isModelAllowed(fieldDef.type)) {
|
|
@@ -5919,7 +5468,7 @@ var InputValidator = class {
|
|
|
5919
5468
|
excludeFields.push(...oppositeFieldDef.relation.fields);
|
|
5920
5469
|
}
|
|
5921
5470
|
}
|
|
5922
|
-
let fieldSchema = import_zod2.z.lazy(() => this.makeRelationManipulationSchema(model, field, excludeFields, "create"));
|
|
5471
|
+
let fieldSchema = import_zod2.z.lazy(() => this.makeRelationManipulationSchema(model, field, excludeFields, "create", nextOpts));
|
|
5923
5472
|
if (fieldDef.optional || fieldDef.array) {
|
|
5924
5473
|
fieldSchema = fieldSchema.optional();
|
|
5925
5474
|
} else {
|
|
@@ -5944,7 +5493,7 @@ var InputValidator = class {
|
|
|
5944
5493
|
} else {
|
|
5945
5494
|
let fieldSchema = this.makeScalarSchema(fieldDef.type, fieldDef.attributes);
|
|
5946
5495
|
if (fieldDef.array) {
|
|
5947
|
-
fieldSchema = addListValidation(fieldSchema.array(), fieldDef.attributes);
|
|
5496
|
+
fieldSchema = import_zod.ZodUtils.addListValidation(fieldSchema.array(), fieldDef.attributes);
|
|
5948
5497
|
fieldSchema = import_zod2.z.union([
|
|
5949
5498
|
fieldSchema,
|
|
5950
5499
|
import_zod2.z.strictObject({
|
|
@@ -5971,8 +5520,8 @@ var InputValidator = class {
|
|
|
5971
5520
|
}
|
|
5972
5521
|
}
|
|
5973
5522
|
});
|
|
5974
|
-
const uncheckedCreateSchema = this.extraValidationsEnabled ? addCustomValidation(import_zod2.z.strictObject(uncheckedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(uncheckedVariantFields);
|
|
5975
|
-
const checkedCreateSchema = this.extraValidationsEnabled ? addCustomValidation(import_zod2.z.strictObject(checkedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(checkedVariantFields);
|
|
5523
|
+
const uncheckedCreateSchema = this.extraValidationsEnabled ? import_zod.ZodUtils.addCustomValidation(import_zod2.z.strictObject(uncheckedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(uncheckedVariantFields);
|
|
5524
|
+
const checkedCreateSchema = this.extraValidationsEnabled ? import_zod.ZodUtils.addCustomValidation(import_zod2.z.strictObject(checkedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(checkedVariantFields);
|
|
5976
5525
|
if (!hasRelation) {
|
|
5977
5526
|
return this.orArray(uncheckedCreateSchema, canBeArray);
|
|
5978
5527
|
} else {
|
|
@@ -5988,153 +5537,154 @@ var InputValidator = class {
|
|
|
5988
5537
|
]);
|
|
5989
5538
|
}
|
|
5990
5539
|
}
|
|
5991
|
-
|
|
5992
|
-
if (!fieldDef.originModel) {
|
|
5993
|
-
return false;
|
|
5994
|
-
}
|
|
5995
|
-
const discriminatorField = getDiscriminatorField(this.schema, fieldDef.originModel);
|
|
5996
|
-
return discriminatorField === fieldDef.name;
|
|
5997
|
-
}
|
|
5998
|
-
makeRelationManipulationSchema(model, field, withoutFields, mode) {
|
|
5540
|
+
makeRelationManipulationSchema(model, field, withoutFields, mode, options) {
|
|
5999
5541
|
const fieldDef = requireField(this.schema, model, field);
|
|
6000
5542
|
const fieldType = fieldDef.type;
|
|
6001
5543
|
const array = !!fieldDef.array;
|
|
6002
5544
|
const fields = {
|
|
6003
|
-
create: this.makeCreateDataSchema(fieldDef.type, !!fieldDef.array, withoutFields).optional(),
|
|
6004
|
-
connect: this.makeConnectDataSchema(fieldType, array).optional(),
|
|
6005
|
-
connectOrCreate: this.makeConnectOrCreateDataSchema(fieldType, array, withoutFields).optional()
|
|
5545
|
+
create: this.makeCreateDataSchema(fieldDef.type, !!fieldDef.array, withoutFields, false, options).optional(),
|
|
5546
|
+
connect: this.makeConnectDataSchema(fieldType, array, options).optional(),
|
|
5547
|
+
connectOrCreate: this.makeConnectOrCreateDataSchema(fieldType, array, withoutFields, options).optional()
|
|
6006
5548
|
};
|
|
6007
5549
|
if (array) {
|
|
6008
|
-
fields["createMany"] = this.
|
|
5550
|
+
fields["createMany"] = this.makeCreateManyPayloadSchema(fieldType, withoutFields, options).optional();
|
|
6009
5551
|
}
|
|
6010
5552
|
if (mode === "update") {
|
|
6011
5553
|
if (fieldDef.optional || fieldDef.array) {
|
|
6012
|
-
fields["disconnect"] = this.makeDisconnectDataSchema(fieldType, array).optional();
|
|
6013
|
-
fields["delete"] = this.makeDeleteRelationDataSchema(fieldType, array, true).optional();
|
|
5554
|
+
fields["disconnect"] = this.makeDisconnectDataSchema(fieldType, array, options).optional();
|
|
5555
|
+
fields["delete"] = this.makeDeleteRelationDataSchema(fieldType, array, true, options).optional();
|
|
6014
5556
|
}
|
|
6015
5557
|
fields["update"] = array ? this.orArray(import_zod2.z.strictObject({
|
|
6016
|
-
where: this.makeWhereSchema(fieldType, true),
|
|
6017
|
-
data: this.makeUpdateDataSchema(fieldType, withoutFields)
|
|
5558
|
+
where: this.makeWhereSchema(fieldType, true, false, false, options),
|
|
5559
|
+
data: this.makeUpdateDataSchema(fieldType, withoutFields, false, options)
|
|
6018
5560
|
}), true).optional() : import_zod2.z.union([
|
|
6019
5561
|
import_zod2.z.strictObject({
|
|
6020
|
-
where: this.makeWhereSchema(fieldType, false).optional(),
|
|
6021
|
-
data: this.makeUpdateDataSchema(fieldType, withoutFields)
|
|
5562
|
+
where: this.makeWhereSchema(fieldType, false, false, false, options).optional(),
|
|
5563
|
+
data: this.makeUpdateDataSchema(fieldType, withoutFields, false, options)
|
|
6022
5564
|
}),
|
|
6023
|
-
this.makeUpdateDataSchema(fieldType, withoutFields)
|
|
5565
|
+
this.makeUpdateDataSchema(fieldType, withoutFields, false, options)
|
|
6024
5566
|
]).optional();
|
|
6025
|
-
let upsertWhere = this.makeWhereSchema(fieldType, true);
|
|
5567
|
+
let upsertWhere = this.makeWhereSchema(fieldType, true, false, false, options);
|
|
6026
5568
|
if (!fieldDef.array) {
|
|
6027
5569
|
upsertWhere = upsertWhere.optional();
|
|
6028
5570
|
}
|
|
6029
5571
|
fields["upsert"] = this.orArray(import_zod2.z.strictObject({
|
|
6030
5572
|
where: upsertWhere,
|
|
6031
|
-
create: this.makeCreateDataSchema(fieldType, false, withoutFields),
|
|
6032
|
-
update: this.makeUpdateDataSchema(fieldType, withoutFields)
|
|
5573
|
+
create: this.makeCreateDataSchema(fieldType, false, withoutFields, false, options),
|
|
5574
|
+
update: this.makeUpdateDataSchema(fieldType, withoutFields, false, options)
|
|
6033
5575
|
}), true).optional();
|
|
6034
5576
|
if (array) {
|
|
6035
|
-
fields["set"] = this.makeSetDataSchema(fieldType, true).optional();
|
|
5577
|
+
fields["set"] = this.makeSetDataSchema(fieldType, true, options).optional();
|
|
6036
5578
|
fields["updateMany"] = this.orArray(import_zod2.z.strictObject({
|
|
6037
|
-
where: this.makeWhereSchema(fieldType, false, true),
|
|
6038
|
-
data: this.makeUpdateDataSchema(fieldType, withoutFields)
|
|
5579
|
+
where: this.makeWhereSchema(fieldType, false, true, false, options),
|
|
5580
|
+
data: this.makeUpdateDataSchema(fieldType, withoutFields, false, options)
|
|
6039
5581
|
}), true).optional();
|
|
6040
|
-
fields["deleteMany"] = this.makeDeleteRelationDataSchema(fieldType, true, false).optional();
|
|
5582
|
+
fields["deleteMany"] = this.makeDeleteRelationDataSchema(fieldType, true, false, options).optional();
|
|
6041
5583
|
}
|
|
6042
5584
|
}
|
|
6043
5585
|
return import_zod2.z.strictObject(fields);
|
|
6044
5586
|
}
|
|
6045
|
-
makeSetDataSchema(model, canBeArray) {
|
|
6046
|
-
return this.orArray(this.makeWhereSchema(model, true), canBeArray);
|
|
5587
|
+
makeSetDataSchema(model, canBeArray, options) {
|
|
5588
|
+
return this.orArray(this.makeWhereSchema(model, true, false, false, options), canBeArray);
|
|
6047
5589
|
}
|
|
6048
|
-
makeConnectDataSchema(model, canBeArray) {
|
|
6049
|
-
return this.orArray(this.makeWhereSchema(model, true), canBeArray);
|
|
5590
|
+
makeConnectDataSchema(model, canBeArray, options) {
|
|
5591
|
+
return this.orArray(this.makeWhereSchema(model, true, false, false, options), canBeArray);
|
|
6050
5592
|
}
|
|
6051
|
-
makeDisconnectDataSchema(model, canBeArray) {
|
|
5593
|
+
makeDisconnectDataSchema(model, canBeArray, options) {
|
|
6052
5594
|
if (canBeArray) {
|
|
6053
|
-
return this.orArray(this.makeWhereSchema(model, true), canBeArray);
|
|
5595
|
+
return this.orArray(this.makeWhereSchema(model, true, false, false, options), canBeArray);
|
|
6054
5596
|
} else {
|
|
6055
5597
|
return import_zod2.z.union([
|
|
6056
5598
|
import_zod2.z.boolean(),
|
|
6057
|
-
this.makeWhereSchema(model, false)
|
|
5599
|
+
this.makeWhereSchema(model, false, false, false, options)
|
|
6058
5600
|
]);
|
|
6059
5601
|
}
|
|
6060
5602
|
}
|
|
6061
|
-
makeDeleteRelationDataSchema(model, toManyRelation, uniqueFilter) {
|
|
6062
|
-
return toManyRelation ? this.orArray(this.makeWhereSchema(model, uniqueFilter), true) : import_zod2.z.union([
|
|
5603
|
+
makeDeleteRelationDataSchema(model, toManyRelation, uniqueFilter, options) {
|
|
5604
|
+
return toManyRelation ? this.orArray(this.makeWhereSchema(model, uniqueFilter, false, false, options), true) : import_zod2.z.union([
|
|
6063
5605
|
import_zod2.z.boolean(),
|
|
6064
|
-
this.makeWhereSchema(model, uniqueFilter)
|
|
5606
|
+
this.makeWhereSchema(model, uniqueFilter, false, false, options)
|
|
6065
5607
|
]);
|
|
6066
5608
|
}
|
|
6067
|
-
makeConnectOrCreateDataSchema(model, canBeArray, withoutFields) {
|
|
6068
|
-
const whereSchema = this.makeWhereSchema(model, true);
|
|
6069
|
-
const createSchema = this.makeCreateDataSchema(model, false, withoutFields);
|
|
5609
|
+
makeConnectOrCreateDataSchema(model, canBeArray, withoutFields, options) {
|
|
5610
|
+
const whereSchema = this.makeWhereSchema(model, true, false, false, options);
|
|
5611
|
+
const createSchema = this.makeCreateDataSchema(model, false, withoutFields, false, options);
|
|
6070
5612
|
return this.orArray(import_zod2.z.strictObject({
|
|
6071
5613
|
where: whereSchema,
|
|
6072
5614
|
create: createSchema
|
|
6073
5615
|
}), canBeArray);
|
|
6074
5616
|
}
|
|
6075
|
-
|
|
5617
|
+
makeCreateManyPayloadSchema(model, withoutFields, options) {
|
|
6076
5618
|
return import_zod2.z.strictObject({
|
|
6077
|
-
data: this.makeCreateDataSchema(model, true, withoutFields, true),
|
|
5619
|
+
data: this.makeCreateDataSchema(model, true, withoutFields, true, options),
|
|
6078
5620
|
skipDuplicates: import_zod2.z.boolean().optional()
|
|
6079
5621
|
});
|
|
6080
5622
|
}
|
|
6081
5623
|
// #endregion
|
|
6082
5624
|
// #region Update
|
|
6083
|
-
makeUpdateSchema(model) {
|
|
5625
|
+
makeUpdateSchema(model, options) {
|
|
6084
5626
|
const baseSchema = import_zod2.z.strictObject({
|
|
6085
|
-
where: this.makeWhereSchema(model, true),
|
|
6086
|
-
data: this.makeUpdateDataSchema(model),
|
|
6087
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
6088
|
-
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
5627
|
+
where: this.makeWhereSchema(model, true, false, false, options),
|
|
5628
|
+
data: this.makeUpdateDataSchema(model, [], false, options),
|
|
5629
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
5630
|
+
include: this.makeIncludeSchema(model, options).optional().nullable(),
|
|
6089
5631
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
6090
5632
|
});
|
|
6091
5633
|
let schema = this.mergePluginArgsSchema(baseSchema, "update");
|
|
6092
5634
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
6093
5635
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
5636
|
+
schema = this.refineForSelectHasTruthyField(schema);
|
|
6094
5637
|
return schema;
|
|
6095
5638
|
}
|
|
6096
|
-
makeUpdateManySchema(model) {
|
|
5639
|
+
makeUpdateManySchema(model, options) {
|
|
6097
5640
|
return this.mergePluginArgsSchema(import_zod2.z.strictObject({
|
|
6098
|
-
where: this.makeWhereSchema(model, false).optional(),
|
|
6099
|
-
data: this.makeUpdateDataSchema(model, [], true),
|
|
5641
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional(),
|
|
5642
|
+
data: this.makeUpdateDataSchema(model, [], true, options),
|
|
6100
5643
|
limit: import_zod2.z.number().int().nonnegative().optional()
|
|
6101
5644
|
}), "updateMany");
|
|
6102
5645
|
}
|
|
6103
|
-
makeUpdateManyAndReturnSchema(model) {
|
|
6104
|
-
const baseSchema = this.makeUpdateManySchema(model);
|
|
5646
|
+
makeUpdateManyAndReturnSchema(model, options) {
|
|
5647
|
+
const baseSchema = this.makeUpdateManySchema(model, options);
|
|
6105
5648
|
let schema = baseSchema.extend({
|
|
6106
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
5649
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
6107
5650
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
6108
5651
|
});
|
|
6109
5652
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
5653
|
+
schema = this.refineForSelectHasTruthyField(schema);
|
|
6110
5654
|
return schema;
|
|
6111
5655
|
}
|
|
6112
|
-
makeUpsertSchema(model) {
|
|
5656
|
+
makeUpsertSchema(model, options) {
|
|
6113
5657
|
const baseSchema = import_zod2.z.strictObject({
|
|
6114
|
-
where: this.makeWhereSchema(model, true),
|
|
6115
|
-
create: this.makeCreateDataSchema(model, false),
|
|
6116
|
-
update: this.makeUpdateDataSchema(model),
|
|
6117
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
6118
|
-
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
5658
|
+
where: this.makeWhereSchema(model, true, false, false, options),
|
|
5659
|
+
create: this.makeCreateDataSchema(model, false, [], false, options),
|
|
5660
|
+
update: this.makeUpdateDataSchema(model, [], false, options),
|
|
5661
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
5662
|
+
include: this.makeIncludeSchema(model, options).optional().nullable(),
|
|
6119
5663
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
6120
5664
|
});
|
|
6121
5665
|
let schema = this.mergePluginArgsSchema(baseSchema, "upsert");
|
|
6122
5666
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
6123
5667
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
5668
|
+
schema = this.refineForSelectHasTruthyField(schema);
|
|
6124
5669
|
return schema;
|
|
6125
5670
|
}
|
|
6126
|
-
makeUpdateDataSchema(model, withoutFields = [], withoutRelationFields = false) {
|
|
5671
|
+
makeUpdateDataSchema(model, withoutFields = [], withoutRelationFields = false, options) {
|
|
5672
|
+
const skipRelations = withoutRelationFields || !this.shouldIncludeRelations(options);
|
|
6127
5673
|
const uncheckedVariantFields = {};
|
|
6128
5674
|
const checkedVariantFields = {};
|
|
6129
5675
|
const modelDef = requireModel(this.schema, model);
|
|
6130
|
-
const hasRelation = Object.entries(modelDef.fields).some(([key, value]) => value.relation && !withoutFields.includes(key));
|
|
5676
|
+
const hasRelation = !skipRelations && Object.entries(modelDef.fields).some(([key, value]) => value.relation && !withoutFields.includes(key));
|
|
5677
|
+
const nextOpts = this.nextOptions(options);
|
|
6131
5678
|
Object.keys(modelDef.fields).forEach((field) => {
|
|
6132
5679
|
if (withoutFields.includes(field)) {
|
|
6133
5680
|
return;
|
|
6134
5681
|
}
|
|
6135
5682
|
const fieldDef = requireField(this.schema, model, field);
|
|
5683
|
+
if (fieldDef.computed || fieldDef.isDiscriminator) {
|
|
5684
|
+
return;
|
|
5685
|
+
}
|
|
6136
5686
|
if (fieldDef.relation) {
|
|
6137
|
-
if (
|
|
5687
|
+
if (skipRelations) {
|
|
6138
5688
|
return;
|
|
6139
5689
|
}
|
|
6140
5690
|
if (!this.isModelAllowed(fieldDef.type)) {
|
|
@@ -6149,7 +5699,7 @@ var InputValidator = class {
|
|
|
6149
5699
|
excludeFields.push(...oppositeFieldDef.relation.fields);
|
|
6150
5700
|
}
|
|
6151
5701
|
}
|
|
6152
|
-
let fieldSchema = import_zod2.z.lazy(() => this.makeRelationManipulationSchema(model, field, excludeFields, "update")).optional();
|
|
5702
|
+
let fieldSchema = import_zod2.z.lazy(() => this.makeRelationManipulationSchema(model, field, excludeFields, "update", nextOpts)).optional();
|
|
6153
5703
|
if (fieldDef.optional && !fieldDef.array) {
|
|
6154
5704
|
fieldSchema = fieldSchema.nullable();
|
|
6155
5705
|
}
|
|
@@ -6163,6 +5713,7 @@ var InputValidator = class {
|
|
|
6163
5713
|
fieldSchema = import_zod2.z.union([
|
|
6164
5714
|
fieldSchema,
|
|
6165
5715
|
import_zod2.z.object({
|
|
5716
|
+
// TODO: use Decimal/BigInt for incremental updates
|
|
6166
5717
|
set: this.nullableIf(import_zod2.z.number().optional(), !!fieldDef.optional).optional(),
|
|
6167
5718
|
increment: import_zod2.z.number().optional(),
|
|
6168
5719
|
decrement: import_zod2.z.number().optional(),
|
|
@@ -6172,7 +5723,7 @@ var InputValidator = class {
|
|
|
6172
5723
|
]);
|
|
6173
5724
|
}
|
|
6174
5725
|
if (fieldDef.array) {
|
|
6175
|
-
const arraySchema = addListValidation(fieldSchema.array(), fieldDef.attributes);
|
|
5726
|
+
const arraySchema = import_zod.ZodUtils.addListValidation(fieldSchema.array(), fieldDef.attributes);
|
|
6176
5727
|
fieldSchema = import_zod2.z.union([
|
|
6177
5728
|
arraySchema,
|
|
6178
5729
|
import_zod2.z.object({
|
|
@@ -6201,8 +5752,8 @@ var InputValidator = class {
|
|
|
6201
5752
|
}
|
|
6202
5753
|
}
|
|
6203
5754
|
});
|
|
6204
|
-
const uncheckedUpdateSchema = this.extraValidationsEnabled ? addCustomValidation(import_zod2.z.strictObject(uncheckedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(uncheckedVariantFields);
|
|
6205
|
-
const checkedUpdateSchema = this.extraValidationsEnabled ? addCustomValidation(import_zod2.z.strictObject(checkedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(checkedVariantFields);
|
|
5755
|
+
const uncheckedUpdateSchema = this.extraValidationsEnabled ? import_zod.ZodUtils.addCustomValidation(import_zod2.z.strictObject(uncheckedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(uncheckedVariantFields);
|
|
5756
|
+
const checkedUpdateSchema = this.extraValidationsEnabled ? import_zod.ZodUtils.addCustomValidation(import_zod2.z.strictObject(checkedVariantFields), modelDef.attributes) : import_zod2.z.strictObject(checkedVariantFields);
|
|
6206
5757
|
if (!hasRelation) {
|
|
6207
5758
|
return uncheckedUpdateSchema;
|
|
6208
5759
|
} else {
|
|
@@ -6214,32 +5765,33 @@ var InputValidator = class {
|
|
|
6214
5765
|
}
|
|
6215
5766
|
// #endregion
|
|
6216
5767
|
// #region Delete
|
|
6217
|
-
makeDeleteSchema(model) {
|
|
5768
|
+
makeDeleteSchema(model, options) {
|
|
6218
5769
|
const baseSchema = import_zod2.z.strictObject({
|
|
6219
|
-
where: this.makeWhereSchema(model, true),
|
|
6220
|
-
select: this.makeSelectSchema(model).optional().nullable(),
|
|
6221
|
-
include: this.makeIncludeSchema(model).optional().nullable(),
|
|
5770
|
+
where: this.makeWhereSchema(model, true, false, false, options),
|
|
5771
|
+
select: this.makeSelectSchema(model, options).optional().nullable(),
|
|
5772
|
+
include: this.makeIncludeSchema(model, options).optional().nullable(),
|
|
6222
5773
|
omit: this.makeOmitSchema(model).optional().nullable()
|
|
6223
5774
|
});
|
|
6224
5775
|
let schema = this.mergePluginArgsSchema(baseSchema, "delete");
|
|
6225
5776
|
schema = this.refineForSelectIncludeMutuallyExclusive(schema);
|
|
6226
5777
|
schema = this.refineForSelectOmitMutuallyExclusive(schema);
|
|
5778
|
+
schema = this.refineForSelectHasTruthyField(schema);
|
|
6227
5779
|
return schema;
|
|
6228
5780
|
}
|
|
6229
|
-
makeDeleteManySchema(model) {
|
|
5781
|
+
makeDeleteManySchema(model, options) {
|
|
6230
5782
|
return this.mergePluginArgsSchema(import_zod2.z.strictObject({
|
|
6231
|
-
where: this.makeWhereSchema(model, false).optional(),
|
|
5783
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional(),
|
|
6232
5784
|
limit: import_zod2.z.number().int().nonnegative().optional()
|
|
6233
5785
|
}), "deleteMany").optional();
|
|
6234
5786
|
}
|
|
6235
5787
|
// #endregion
|
|
6236
5788
|
// #region Count
|
|
6237
|
-
makeCountSchema(model) {
|
|
5789
|
+
makeCountSchema(model, options) {
|
|
6238
5790
|
return this.mergePluginArgsSchema(import_zod2.z.strictObject({
|
|
6239
|
-
where: this.makeWhereSchema(model, false).optional(),
|
|
5791
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional(),
|
|
6240
5792
|
skip: this.makeSkipSchema().optional(),
|
|
6241
5793
|
take: this.makeTakeSchema().optional(),
|
|
6242
|
-
orderBy: this.orArray(this.makeOrderBySchema(model, true, false), true).optional(),
|
|
5794
|
+
orderBy: this.orArray(this.makeOrderBySchema(model, true, false, options), true).optional(),
|
|
6243
5795
|
select: this.makeCountAggregateInputSchema(model).optional()
|
|
6244
5796
|
}), "count").optional();
|
|
6245
5797
|
}
|
|
@@ -6258,12 +5810,12 @@ var InputValidator = class {
|
|
|
6258
5810
|
}
|
|
6259
5811
|
// #endregion
|
|
6260
5812
|
// #region Aggregate
|
|
6261
|
-
makeAggregateSchema(model) {
|
|
5813
|
+
makeAggregateSchema(model, options) {
|
|
6262
5814
|
return this.mergePluginArgsSchema(import_zod2.z.strictObject({
|
|
6263
|
-
where: this.makeWhereSchema(model, false).optional(),
|
|
5815
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional(),
|
|
6264
5816
|
skip: this.makeSkipSchema().optional(),
|
|
6265
5817
|
take: this.makeTakeSchema().optional(),
|
|
6266
|
-
orderBy: this.orArray(this.makeOrderBySchema(model, true, false), true).optional(),
|
|
5818
|
+
orderBy: this.orArray(this.makeOrderBySchema(model, true, false, options), true).optional(),
|
|
6267
5819
|
_count: this.makeCountAggregateInputSchema(model).optional(),
|
|
6268
5820
|
_avg: this.makeSumAvgInputSchema(model).optional(),
|
|
6269
5821
|
_sum: this.makeSumAvgInputSchema(model).optional(),
|
|
@@ -6291,15 +5843,17 @@ var InputValidator = class {
|
|
|
6291
5843
|
return acc;
|
|
6292
5844
|
}, {}));
|
|
6293
5845
|
}
|
|
6294
|
-
|
|
5846
|
+
// #endregion
|
|
5847
|
+
// #region Group By
|
|
5848
|
+
makeGroupBySchema(model, options) {
|
|
6295
5849
|
const modelDef = requireModel(this.schema, model);
|
|
6296
5850
|
const nonRelationFields = Object.keys(modelDef.fields).filter((field) => !modelDef.fields[field]?.relation);
|
|
6297
5851
|
const bySchema = nonRelationFields.length > 0 ? this.orArray(import_zod2.z.enum(nonRelationFields), true) : import_zod2.z.never();
|
|
6298
5852
|
const baseSchema = import_zod2.z.strictObject({
|
|
6299
|
-
where: this.makeWhereSchema(model, false).optional(),
|
|
6300
|
-
orderBy: this.orArray(this.makeOrderBySchema(model, false, true), true).optional(),
|
|
5853
|
+
where: this.makeWhereSchema(model, false, false, false, options).optional(),
|
|
5854
|
+
orderBy: this.orArray(this.makeOrderBySchema(model, false, true, options), true).optional(),
|
|
6301
5855
|
by: bySchema,
|
|
6302
|
-
having: this.makeHavingSchema(model).optional(),
|
|
5856
|
+
having: this.makeHavingSchema(model, options).optional(),
|
|
6303
5857
|
skip: this.makeSkipSchema().optional(),
|
|
6304
5858
|
take: this.makeTakeSchema().optional(),
|
|
6305
5859
|
_count: this.makeCountAggregateInputSchema(model).optional(),
|
|
@@ -6310,9 +5864,7 @@ var InputValidator = class {
|
|
|
6310
5864
|
});
|
|
6311
5865
|
let schema = this.mergePluginArgsSchema(baseSchema, "groupBy");
|
|
6312
5866
|
schema = schema.refine((value) => {
|
|
6313
|
-
const bys =
|
|
6314
|
-
value.by
|
|
6315
|
-
] : value.by;
|
|
5867
|
+
const bys = (0, import_common_helpers8.enumerate)(value.by);
|
|
6316
5868
|
if (value.having && typeof value.having === "object") {
|
|
6317
5869
|
for (const [key, val] of Object.entries(value.having)) {
|
|
6318
5870
|
if (AggregateOperators.includes(key)) {
|
|
@@ -6332,14 +5884,13 @@ var InputValidator = class {
|
|
|
6332
5884
|
return true;
|
|
6333
5885
|
}, 'fields in "having" must be in "by"');
|
|
6334
5886
|
schema = schema.refine((value) => {
|
|
6335
|
-
const bys =
|
|
6336
|
-
|
|
6337
|
-
|
|
6338
|
-
|
|
6339
|
-
|
|
6340
|
-
} else {
|
|
6341
|
-
return true;
|
|
5887
|
+
const bys = (0, import_common_helpers8.enumerate)(value.by);
|
|
5888
|
+
for (const orderBy of (0, import_common_helpers8.enumerate)(value.orderBy)) {
|
|
5889
|
+
if (orderBy && Object.keys(orderBy).filter((f) => !AggregateOperators.includes(f)).some((key) => !bys.includes(key))) {
|
|
5890
|
+
return false;
|
|
5891
|
+
}
|
|
6342
5892
|
}
|
|
5893
|
+
return true;
|
|
6343
5894
|
}, 'fields in "orderBy" must be in "by"');
|
|
6344
5895
|
return schema;
|
|
6345
5896
|
}
|
|
@@ -6349,7 +5900,7 @@ var InputValidator = class {
|
|
|
6349
5900
|
continue;
|
|
6350
5901
|
}
|
|
6351
5902
|
if (LOGICAL_COMBINATORS.includes(key)) {
|
|
6352
|
-
if ((0,
|
|
5903
|
+
if ((0, import_common_helpers8.enumerate)(value).every((v) => this.onlyAggregationFields(v))) {
|
|
6353
5904
|
continue;
|
|
6354
5905
|
}
|
|
6355
5906
|
}
|
|
@@ -6357,12 +5908,12 @@ var InputValidator = class {
|
|
|
6357
5908
|
}
|
|
6358
5909
|
return true;
|
|
6359
5910
|
}
|
|
6360
|
-
makeHavingSchema(model) {
|
|
6361
|
-
return this.makeWhereSchema(model, false, true, true);
|
|
5911
|
+
makeHavingSchema(model, options) {
|
|
5912
|
+
return this.makeWhereSchema(model, false, true, true, options);
|
|
6362
5913
|
}
|
|
6363
5914
|
// #endregion
|
|
6364
5915
|
// #region Procedures
|
|
6365
|
-
makeProcedureParamSchema(param) {
|
|
5916
|
+
makeProcedureParamSchema(param, _options) {
|
|
6366
5917
|
let schema;
|
|
6367
5918
|
if (isTypeDef(this.schema, param.type)) {
|
|
6368
5919
|
schema = this.makeTypeDefSchema(param.type);
|
|
@@ -6385,21 +5936,54 @@ var InputValidator = class {
|
|
|
6385
5936
|
return schema;
|
|
6386
5937
|
}
|
|
6387
5938
|
// #endregion
|
|
6388
|
-
// #region
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6393
|
-
|
|
5939
|
+
// #region Plugin Args
|
|
5940
|
+
mergePluginArgsSchema(schema, operation) {
|
|
5941
|
+
let result = schema;
|
|
5942
|
+
for (const plugin of this.plugins ?? []) {
|
|
5943
|
+
if (plugin.queryArgs) {
|
|
5944
|
+
const pluginSchema = this.getPluginExtQueryArgsSchema(plugin, operation);
|
|
5945
|
+
if (pluginSchema) {
|
|
5946
|
+
result = result.extend(pluginSchema.shape);
|
|
5947
|
+
}
|
|
5948
|
+
}
|
|
5949
|
+
}
|
|
5950
|
+
return result.strict();
|
|
6394
5951
|
}
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
5952
|
+
getPluginExtQueryArgsSchema(plugin, operation) {
|
|
5953
|
+
if (!plugin.queryArgs) {
|
|
5954
|
+
return void 0;
|
|
5955
|
+
}
|
|
5956
|
+
let result;
|
|
5957
|
+
if (operation in plugin.queryArgs && plugin.queryArgs[operation]) {
|
|
5958
|
+
result = plugin.queryArgs[operation];
|
|
5959
|
+
} else if (operation === "upsert") {
|
|
5960
|
+
const createSchema = "$create" in plugin.queryArgs && plugin.queryArgs["$create"] ? plugin.queryArgs["$create"] : void 0;
|
|
5961
|
+
const updateSchema = "$update" in plugin.queryArgs && plugin.queryArgs["$update"] ? plugin.queryArgs["$update"] : void 0;
|
|
5962
|
+
if (createSchema && updateSchema) {
|
|
5963
|
+
(0, import_common_helpers8.invariant)(createSchema instanceof import_zod2.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5964
|
+
(0, import_common_helpers8.invariant)(updateSchema instanceof import_zod2.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5965
|
+
result = createSchema.extend(updateSchema.shape);
|
|
5966
|
+
} else if (createSchema) {
|
|
5967
|
+
result = createSchema;
|
|
5968
|
+
} else if (updateSchema) {
|
|
5969
|
+
result = updateSchema;
|
|
6401
5970
|
}
|
|
5971
|
+
} else if (
|
|
5972
|
+
// then comes grouped operations: $create, $read, $update, $delete
|
|
5973
|
+
CoreCreateOperations.includes(operation) && "$create" in plugin.queryArgs && plugin.queryArgs["$create"]
|
|
5974
|
+
) {
|
|
5975
|
+
result = plugin.queryArgs["$create"];
|
|
5976
|
+
} else if (CoreReadOperations.includes(operation) && "$read" in plugin.queryArgs && plugin.queryArgs["$read"]) {
|
|
5977
|
+
result = plugin.queryArgs["$read"];
|
|
5978
|
+
} else if (CoreUpdateOperations.includes(operation) && "$update" in plugin.queryArgs && plugin.queryArgs["$update"]) {
|
|
5979
|
+
result = plugin.queryArgs["$update"];
|
|
5980
|
+
} else if (CoreDeleteOperations.includes(operation) && "$delete" in plugin.queryArgs && plugin.queryArgs["$delete"]) {
|
|
5981
|
+
result = plugin.queryArgs["$delete"];
|
|
5982
|
+
} else if ("$all" in plugin.queryArgs && plugin.queryArgs["$all"]) {
|
|
5983
|
+
result = plugin.queryArgs["$all"];
|
|
6402
5984
|
}
|
|
5985
|
+
(0, import_common_helpers8.invariant)(result === void 0 || result instanceof import_zod2.ZodObject, "Plugin extended query args schema must be a Zod object");
|
|
5986
|
+
return result;
|
|
6403
5987
|
}
|
|
6404
5988
|
// #endregion
|
|
6405
5989
|
// #region Helpers
|
|
@@ -6415,6 +5999,15 @@ var InputValidator = class {
|
|
|
6415
5999
|
refineForSelectOmitMutuallyExclusive(schema) {
|
|
6416
6000
|
return schema.refine((value) => !(value["select"] && value["omit"]), '"select" and "omit" cannot be used together');
|
|
6417
6001
|
}
|
|
6002
|
+
refineForSelectHasTruthyField(schema) {
|
|
6003
|
+
return schema.refine((value) => {
|
|
6004
|
+
const select = value["select"];
|
|
6005
|
+
if (!select || typeof select !== "object") {
|
|
6006
|
+
return true;
|
|
6007
|
+
}
|
|
6008
|
+
return Object.values(select).some((v) => v);
|
|
6009
|
+
}, '"select" must have at least one truthy value');
|
|
6010
|
+
}
|
|
6418
6011
|
nullableIf(schema, nullable) {
|
|
6419
6012
|
return nullable ? schema.nullable() : schema;
|
|
6420
6013
|
}
|
|
@@ -6432,7 +6025,7 @@ var InputValidator = class {
|
|
|
6432
6025
|
}
|
|
6433
6026
|
/**
|
|
6434
6027
|
* Gets the effective set of allowed FilterKind values for a specific model and field.
|
|
6435
|
-
* Respects the precedence: field
|
|
6028
|
+
* Respects the precedence: model[field] > model.$all > $all[field] > $all.$all.
|
|
6436
6029
|
*/
|
|
6437
6030
|
getEffectiveFilterKinds(model, field) {
|
|
6438
6031
|
if (!model) {
|
|
@@ -6442,21 +6035,27 @@ var InputValidator = class {
|
|
|
6442
6035
|
if (!slicing?.models) {
|
|
6443
6036
|
return void 0;
|
|
6444
6037
|
}
|
|
6445
|
-
const
|
|
6038
|
+
const modelsRecord = slicing.models;
|
|
6039
|
+
const modelConfig = modelsRecord[(0, import_common_helpers8.lowerCaseFirst)(model)];
|
|
6446
6040
|
if (modelConfig?.fields) {
|
|
6447
6041
|
const fieldConfig = modelConfig.fields[field];
|
|
6448
6042
|
if (fieldConfig) {
|
|
6449
6043
|
return this.computeFilterKinds(fieldConfig.includedFilterKinds, fieldConfig.excludedFilterKinds);
|
|
6450
6044
|
}
|
|
6451
|
-
const allFieldsConfig = modelConfig.fields
|
|
6045
|
+
const allFieldsConfig = modelConfig.fields["$all"];
|
|
6452
6046
|
if (allFieldsConfig) {
|
|
6453
6047
|
return this.computeFilterKinds(allFieldsConfig.includedFilterKinds, allFieldsConfig.excludedFilterKinds);
|
|
6454
6048
|
}
|
|
6455
6049
|
}
|
|
6456
|
-
const allModelsConfig =
|
|
6050
|
+
const allModelsConfig = modelsRecord["$all"];
|
|
6457
6051
|
if (allModelsConfig?.fields) {
|
|
6458
|
-
|
|
6459
|
-
|
|
6052
|
+
const allModelsFieldConfig = allModelsConfig.fields[field];
|
|
6053
|
+
if (allModelsFieldConfig) {
|
|
6054
|
+
return this.computeFilterKinds(allModelsFieldConfig.includedFilterKinds, allModelsFieldConfig.excludedFilterKinds);
|
|
6055
|
+
}
|
|
6056
|
+
const allModelsAllFieldsConfig = allModelsConfig.fields["$all"];
|
|
6057
|
+
if (allModelsAllFieldsConfig) {
|
|
6058
|
+
return this.computeFilterKinds(allModelsAllFieldsConfig.includedFilterKinds, allModelsAllFieldsConfig.excludedFilterKinds);
|
|
6460
6059
|
}
|
|
6461
6060
|
}
|
|
6462
6061
|
return void 0;
|
|
@@ -6538,18 +6137,20 @@ _ts_decorate([
|
|
|
6538
6137
|
_ts_metadata("design:type", Function),
|
|
6539
6138
|
_ts_metadata("design:paramtypes", [
|
|
6540
6139
|
String,
|
|
6541
|
-
typeof CoreCrudOperations === "undefined" ? Object : CoreCrudOperations
|
|
6140
|
+
typeof CoreCrudOperations === "undefined" ? Object : CoreCrudOperations,
|
|
6141
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6542
6142
|
]),
|
|
6543
6143
|
_ts_metadata("design:returntype", void 0)
|
|
6544
|
-
],
|
|
6144
|
+
], ZodSchemaFactory.prototype, "makeFindSchema", null);
|
|
6545
6145
|
_ts_decorate([
|
|
6546
6146
|
cache(),
|
|
6547
6147
|
_ts_metadata("design:type", Function),
|
|
6548
6148
|
_ts_metadata("design:paramtypes", [
|
|
6549
|
-
|
|
6149
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6150
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6550
6151
|
]),
|
|
6551
|
-
_ts_metadata("design:returntype",
|
|
6552
|
-
],
|
|
6152
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6153
|
+
], ZodSchemaFactory.prototype, "makeExistsSchema", null);
|
|
6553
6154
|
_ts_decorate([
|
|
6554
6155
|
cache(),
|
|
6555
6156
|
_ts_metadata("design:type", Function),
|
|
@@ -6557,15 +6158,15 @@ _ts_decorate([
|
|
|
6557
6158
|
String
|
|
6558
6159
|
]),
|
|
6559
6160
|
_ts_metadata("design:returntype", void 0)
|
|
6560
|
-
],
|
|
6161
|
+
], ZodSchemaFactory.prototype, "makeEnumSchema", null);
|
|
6561
6162
|
_ts_decorate([
|
|
6562
6163
|
cache(),
|
|
6563
6164
|
_ts_metadata("design:type", Function),
|
|
6564
6165
|
_ts_metadata("design:paramtypes", [
|
|
6565
6166
|
String
|
|
6566
6167
|
]),
|
|
6567
|
-
_ts_metadata("design:returntype", typeof import_zod2.
|
|
6568
|
-
],
|
|
6168
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6169
|
+
], ZodSchemaFactory.prototype, "makeTypeDefSchema", null);
|
|
6569
6170
|
_ts_decorate([
|
|
6570
6171
|
cache(),
|
|
6571
6172
|
_ts_metadata("design:type", Function),
|
|
@@ -6573,10 +6174,11 @@ _ts_decorate([
|
|
|
6573
6174
|
String,
|
|
6574
6175
|
Boolean,
|
|
6575
6176
|
void 0,
|
|
6576
|
-
void 0
|
|
6177
|
+
void 0,
|
|
6178
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6577
6179
|
]),
|
|
6578
6180
|
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6579
|
-
],
|
|
6181
|
+
], ZodSchemaFactory.prototype, "makeWhereSchema", null);
|
|
6580
6182
|
_ts_decorate([
|
|
6581
6183
|
cache(),
|
|
6582
6184
|
_ts_metadata("design:type", Function),
|
|
@@ -6585,7 +6187,7 @@ _ts_decorate([
|
|
|
6585
6187
|
typeof FieldInfo === "undefined" ? Object : FieldInfo
|
|
6586
6188
|
]),
|
|
6587
6189
|
_ts_metadata("design:returntype", void 0)
|
|
6588
|
-
],
|
|
6190
|
+
], ZodSchemaFactory.prototype, "makeTypedJsonFilterSchema", null);
|
|
6589
6191
|
_ts_decorate([
|
|
6590
6192
|
cache(),
|
|
6591
6193
|
_ts_metadata("design:type", Function),
|
|
@@ -6596,7 +6198,7 @@ _ts_decorate([
|
|
|
6596
6198
|
Boolean
|
|
6597
6199
|
]),
|
|
6598
6200
|
_ts_metadata("design:returntype", void 0)
|
|
6599
|
-
],
|
|
6201
|
+
], ZodSchemaFactory.prototype, "makeEnumFilterSchema", null);
|
|
6600
6202
|
_ts_decorate([
|
|
6601
6203
|
cache(),
|
|
6602
6204
|
_ts_metadata("design:type", Function),
|
|
@@ -6605,7 +6207,7 @@ _ts_decorate([
|
|
|
6605
6207
|
typeof FieldInfo === "undefined" ? Object : FieldInfo
|
|
6606
6208
|
]),
|
|
6607
6209
|
_ts_metadata("design:returntype", void 0)
|
|
6608
|
-
],
|
|
6210
|
+
], ZodSchemaFactory.prototype, "makeArrayFilterSchema", null);
|
|
6609
6211
|
_ts_decorate([
|
|
6610
6212
|
cache(),
|
|
6611
6213
|
_ts_metadata("design:type", Function),
|
|
@@ -6616,7 +6218,7 @@ _ts_decorate([
|
|
|
6616
6218
|
void 0
|
|
6617
6219
|
]),
|
|
6618
6220
|
_ts_metadata("design:returntype", void 0)
|
|
6619
|
-
],
|
|
6221
|
+
], ZodSchemaFactory.prototype, "makePrimitiveFilterSchema", null);
|
|
6620
6222
|
_ts_decorate([
|
|
6621
6223
|
cache(),
|
|
6622
6224
|
_ts_metadata("design:type", Function),
|
|
@@ -6626,7 +6228,7 @@ _ts_decorate([
|
|
|
6626
6228
|
Boolean
|
|
6627
6229
|
]),
|
|
6628
6230
|
_ts_metadata("design:returntype", void 0)
|
|
6629
|
-
],
|
|
6231
|
+
], ZodSchemaFactory.prototype, "makeJsonFilterSchema", null);
|
|
6630
6232
|
_ts_decorate([
|
|
6631
6233
|
cache(),
|
|
6632
6234
|
_ts_metadata("design:type", Function),
|
|
@@ -6636,7 +6238,7 @@ _ts_decorate([
|
|
|
6636
6238
|
Object
|
|
6637
6239
|
]),
|
|
6638
6240
|
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6639
|
-
],
|
|
6241
|
+
], ZodSchemaFactory.prototype, "makeDateTimeFilterSchema", null);
|
|
6640
6242
|
_ts_decorate([
|
|
6641
6243
|
cache(),
|
|
6642
6244
|
_ts_metadata("design:type", Function),
|
|
@@ -6646,7 +6248,7 @@ _ts_decorate([
|
|
|
6646
6248
|
Object
|
|
6647
6249
|
]),
|
|
6648
6250
|
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6649
|
-
],
|
|
6251
|
+
], ZodSchemaFactory.prototype, "makeBooleanFilterSchema", null);
|
|
6650
6252
|
_ts_decorate([
|
|
6651
6253
|
cache(),
|
|
6652
6254
|
_ts_metadata("design:type", Function),
|
|
@@ -6656,32 +6258,35 @@ _ts_decorate([
|
|
|
6656
6258
|
Object
|
|
6657
6259
|
]),
|
|
6658
6260
|
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6659
|
-
],
|
|
6261
|
+
], ZodSchemaFactory.prototype, "makeBytesFilterSchema", null);
|
|
6660
6262
|
_ts_decorate([
|
|
6661
6263
|
cache(),
|
|
6662
6264
|
_ts_metadata("design:type", Function),
|
|
6663
6265
|
_ts_metadata("design:paramtypes", [
|
|
6664
|
-
String
|
|
6266
|
+
String,
|
|
6267
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6665
6268
|
]),
|
|
6666
6269
|
_ts_metadata("design:returntype", void 0)
|
|
6667
|
-
],
|
|
6270
|
+
], ZodSchemaFactory.prototype, "makeSelectSchema", null);
|
|
6668
6271
|
_ts_decorate([
|
|
6669
6272
|
cache(),
|
|
6670
6273
|
_ts_metadata("design:type", Function),
|
|
6671
6274
|
_ts_metadata("design:paramtypes", [
|
|
6672
|
-
String
|
|
6275
|
+
String,
|
|
6276
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6673
6277
|
]),
|
|
6674
6278
|
_ts_metadata("design:returntype", void 0)
|
|
6675
|
-
],
|
|
6279
|
+
], ZodSchemaFactory.prototype, "makeCountSelectionSchema", null);
|
|
6676
6280
|
_ts_decorate([
|
|
6677
6281
|
cache(),
|
|
6678
6282
|
_ts_metadata("design:type", Function),
|
|
6679
6283
|
_ts_metadata("design:paramtypes", [
|
|
6680
6284
|
String,
|
|
6681
|
-
String
|
|
6285
|
+
String,
|
|
6286
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6682
6287
|
]),
|
|
6683
6288
|
_ts_metadata("design:returntype", void 0)
|
|
6684
|
-
],
|
|
6289
|
+
], ZodSchemaFactory.prototype, "makeRelationSelectIncludeSchema", null);
|
|
6685
6290
|
_ts_decorate([
|
|
6686
6291
|
cache(),
|
|
6687
6292
|
_ts_metadata("design:type", Function),
|
|
@@ -6689,25 +6294,27 @@ _ts_decorate([
|
|
|
6689
6294
|
String
|
|
6690
6295
|
]),
|
|
6691
6296
|
_ts_metadata("design:returntype", void 0)
|
|
6692
|
-
],
|
|
6297
|
+
], ZodSchemaFactory.prototype, "makeOmitSchema", null);
|
|
6693
6298
|
_ts_decorate([
|
|
6694
6299
|
cache(),
|
|
6695
6300
|
_ts_metadata("design:type", Function),
|
|
6696
6301
|
_ts_metadata("design:paramtypes", [
|
|
6697
|
-
String
|
|
6302
|
+
String,
|
|
6303
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6698
6304
|
]),
|
|
6699
6305
|
_ts_metadata("design:returntype", void 0)
|
|
6700
|
-
],
|
|
6306
|
+
], ZodSchemaFactory.prototype, "makeIncludeSchema", null);
|
|
6701
6307
|
_ts_decorate([
|
|
6702
6308
|
cache(),
|
|
6703
6309
|
_ts_metadata("design:type", Function),
|
|
6704
6310
|
_ts_metadata("design:paramtypes", [
|
|
6705
6311
|
String,
|
|
6706
6312
|
Boolean,
|
|
6707
|
-
Boolean
|
|
6313
|
+
Boolean,
|
|
6314
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6708
6315
|
]),
|
|
6709
6316
|
_ts_metadata("design:returntype", void 0)
|
|
6710
|
-
],
|
|
6317
|
+
], ZodSchemaFactory.prototype, "makeOrderBySchema", null);
|
|
6711
6318
|
_ts_decorate([
|
|
6712
6319
|
cache(),
|
|
6713
6320
|
_ts_metadata("design:type", Function),
|
|
@@ -6715,31 +6322,34 @@ _ts_decorate([
|
|
|
6715
6322
|
String
|
|
6716
6323
|
]),
|
|
6717
6324
|
_ts_metadata("design:returntype", void 0)
|
|
6718
|
-
],
|
|
6325
|
+
], ZodSchemaFactory.prototype, "makeDistinctSchema", null);
|
|
6719
6326
|
_ts_decorate([
|
|
6720
6327
|
cache(),
|
|
6721
6328
|
_ts_metadata("design:type", Function),
|
|
6722
6329
|
_ts_metadata("design:paramtypes", [
|
|
6723
|
-
|
|
6330
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6331
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6724
6332
|
]),
|
|
6725
|
-
_ts_metadata("design:returntype",
|
|
6726
|
-
],
|
|
6333
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6334
|
+
], ZodSchemaFactory.prototype, "makeCreateSchema", null);
|
|
6727
6335
|
_ts_decorate([
|
|
6728
6336
|
cache(),
|
|
6729
6337
|
_ts_metadata("design:type", Function),
|
|
6730
6338
|
_ts_metadata("design:paramtypes", [
|
|
6731
|
-
|
|
6339
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6340
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6732
6341
|
]),
|
|
6733
|
-
_ts_metadata("design:returntype",
|
|
6734
|
-
],
|
|
6342
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6343
|
+
], ZodSchemaFactory.prototype, "makeCreateManySchema", null);
|
|
6735
6344
|
_ts_decorate([
|
|
6736
6345
|
cache(),
|
|
6737
6346
|
_ts_metadata("design:type", Function),
|
|
6738
6347
|
_ts_metadata("design:paramtypes", [
|
|
6739
|
-
|
|
6348
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6349
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6740
6350
|
]),
|
|
6741
|
-
_ts_metadata("design:returntype",
|
|
6742
|
-
],
|
|
6351
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6352
|
+
], ZodSchemaFactory.prototype, "makeCreateManyAndReturnSchema", null);
|
|
6743
6353
|
_ts_decorate([
|
|
6744
6354
|
cache(),
|
|
6745
6355
|
_ts_metadata("design:type", Function),
|
|
@@ -6747,10 +6357,11 @@ _ts_decorate([
|
|
|
6747
6357
|
String,
|
|
6748
6358
|
Boolean,
|
|
6749
6359
|
Array,
|
|
6750
|
-
void 0
|
|
6360
|
+
void 0,
|
|
6361
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6751
6362
|
]),
|
|
6752
6363
|
_ts_metadata("design:returntype", void 0)
|
|
6753
|
-
],
|
|
6364
|
+
], ZodSchemaFactory.prototype, "makeCreateDataSchema", null);
|
|
6754
6365
|
_ts_decorate([
|
|
6755
6366
|
cache(),
|
|
6756
6367
|
_ts_metadata("design:type", Function),
|
|
@@ -6758,132 +6369,147 @@ _ts_decorate([
|
|
|
6758
6369
|
String,
|
|
6759
6370
|
String,
|
|
6760
6371
|
Array,
|
|
6761
|
-
String
|
|
6372
|
+
String,
|
|
6373
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6762
6374
|
]),
|
|
6763
6375
|
_ts_metadata("design:returntype", void 0)
|
|
6764
|
-
],
|
|
6376
|
+
], ZodSchemaFactory.prototype, "makeRelationManipulationSchema", null);
|
|
6765
6377
|
_ts_decorate([
|
|
6766
6378
|
cache(),
|
|
6767
6379
|
_ts_metadata("design:type", Function),
|
|
6768
6380
|
_ts_metadata("design:paramtypes", [
|
|
6769
6381
|
String,
|
|
6770
|
-
Boolean
|
|
6382
|
+
Boolean,
|
|
6383
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6771
6384
|
]),
|
|
6772
6385
|
_ts_metadata("design:returntype", void 0)
|
|
6773
|
-
],
|
|
6386
|
+
], ZodSchemaFactory.prototype, "makeSetDataSchema", null);
|
|
6774
6387
|
_ts_decorate([
|
|
6775
6388
|
cache(),
|
|
6776
6389
|
_ts_metadata("design:type", Function),
|
|
6777
6390
|
_ts_metadata("design:paramtypes", [
|
|
6778
6391
|
String,
|
|
6779
|
-
Boolean
|
|
6392
|
+
Boolean,
|
|
6393
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6780
6394
|
]),
|
|
6781
6395
|
_ts_metadata("design:returntype", void 0)
|
|
6782
|
-
],
|
|
6396
|
+
], ZodSchemaFactory.prototype, "makeConnectDataSchema", null);
|
|
6783
6397
|
_ts_decorate([
|
|
6784
6398
|
cache(),
|
|
6785
6399
|
_ts_metadata("design:type", Function),
|
|
6786
6400
|
_ts_metadata("design:paramtypes", [
|
|
6787
6401
|
String,
|
|
6788
|
-
Boolean
|
|
6402
|
+
Boolean,
|
|
6403
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6789
6404
|
]),
|
|
6790
6405
|
_ts_metadata("design:returntype", void 0)
|
|
6791
|
-
],
|
|
6406
|
+
], ZodSchemaFactory.prototype, "makeDisconnectDataSchema", null);
|
|
6792
6407
|
_ts_decorate([
|
|
6793
6408
|
cache(),
|
|
6794
6409
|
_ts_metadata("design:type", Function),
|
|
6795
6410
|
_ts_metadata("design:paramtypes", [
|
|
6796
6411
|
String,
|
|
6797
6412
|
Boolean,
|
|
6798
|
-
Boolean
|
|
6413
|
+
Boolean,
|
|
6414
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6799
6415
|
]),
|
|
6800
6416
|
_ts_metadata("design:returntype", void 0)
|
|
6801
|
-
],
|
|
6417
|
+
], ZodSchemaFactory.prototype, "makeDeleteRelationDataSchema", null);
|
|
6802
6418
|
_ts_decorate([
|
|
6803
6419
|
cache(),
|
|
6804
6420
|
_ts_metadata("design:type", Function),
|
|
6805
6421
|
_ts_metadata("design:paramtypes", [
|
|
6806
6422
|
String,
|
|
6807
6423
|
Boolean,
|
|
6808
|
-
Array
|
|
6424
|
+
Array,
|
|
6425
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6809
6426
|
]),
|
|
6810
6427
|
_ts_metadata("design:returntype", void 0)
|
|
6811
|
-
],
|
|
6428
|
+
], ZodSchemaFactory.prototype, "makeConnectOrCreateDataSchema", null);
|
|
6812
6429
|
_ts_decorate([
|
|
6813
6430
|
cache(),
|
|
6814
6431
|
_ts_metadata("design:type", Function),
|
|
6815
6432
|
_ts_metadata("design:paramtypes", [
|
|
6816
6433
|
String,
|
|
6817
|
-
Array
|
|
6434
|
+
Array,
|
|
6435
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6818
6436
|
]),
|
|
6819
6437
|
_ts_metadata("design:returntype", void 0)
|
|
6820
|
-
],
|
|
6438
|
+
], ZodSchemaFactory.prototype, "makeCreateManyPayloadSchema", null);
|
|
6821
6439
|
_ts_decorate([
|
|
6822
6440
|
cache(),
|
|
6823
6441
|
_ts_metadata("design:type", Function),
|
|
6824
6442
|
_ts_metadata("design:paramtypes", [
|
|
6825
|
-
|
|
6443
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6444
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6826
6445
|
]),
|
|
6827
|
-
_ts_metadata("design:returntype",
|
|
6828
|
-
],
|
|
6446
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6447
|
+
], ZodSchemaFactory.prototype, "makeUpdateSchema", null);
|
|
6829
6448
|
_ts_decorate([
|
|
6830
6449
|
cache(),
|
|
6831
6450
|
_ts_metadata("design:type", Function),
|
|
6832
6451
|
_ts_metadata("design:paramtypes", [
|
|
6833
|
-
|
|
6452
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6453
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6834
6454
|
]),
|
|
6835
|
-
_ts_metadata("design:returntype",
|
|
6836
|
-
],
|
|
6455
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6456
|
+
], ZodSchemaFactory.prototype, "makeUpdateManySchema", null);
|
|
6837
6457
|
_ts_decorate([
|
|
6838
6458
|
cache(),
|
|
6839
6459
|
_ts_metadata("design:type", Function),
|
|
6840
6460
|
_ts_metadata("design:paramtypes", [
|
|
6841
|
-
|
|
6461
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6462
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6842
6463
|
]),
|
|
6843
|
-
_ts_metadata("design:returntype",
|
|
6844
|
-
],
|
|
6464
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6465
|
+
], ZodSchemaFactory.prototype, "makeUpdateManyAndReturnSchema", null);
|
|
6845
6466
|
_ts_decorate([
|
|
6846
6467
|
cache(),
|
|
6847
6468
|
_ts_metadata("design:type", Function),
|
|
6848
6469
|
_ts_metadata("design:paramtypes", [
|
|
6849
|
-
|
|
6470
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6471
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6850
6472
|
]),
|
|
6851
|
-
_ts_metadata("design:returntype",
|
|
6852
|
-
],
|
|
6473
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6474
|
+
], ZodSchemaFactory.prototype, "makeUpsertSchema", null);
|
|
6853
6475
|
_ts_decorate([
|
|
6854
6476
|
cache(),
|
|
6855
6477
|
_ts_metadata("design:type", Function),
|
|
6856
6478
|
_ts_metadata("design:paramtypes", [
|
|
6857
6479
|
String,
|
|
6858
6480
|
Array,
|
|
6859
|
-
void 0
|
|
6481
|
+
void 0,
|
|
6482
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6860
6483
|
]),
|
|
6861
6484
|
_ts_metadata("design:returntype", void 0)
|
|
6862
|
-
],
|
|
6485
|
+
], ZodSchemaFactory.prototype, "makeUpdateDataSchema", null);
|
|
6863
6486
|
_ts_decorate([
|
|
6864
6487
|
cache(),
|
|
6865
6488
|
_ts_metadata("design:type", Function),
|
|
6866
6489
|
_ts_metadata("design:paramtypes", [
|
|
6867
|
-
|
|
6490
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6491
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6868
6492
|
]),
|
|
6869
|
-
_ts_metadata("design:returntype",
|
|
6870
|
-
],
|
|
6493
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6494
|
+
], ZodSchemaFactory.prototype, "makeDeleteSchema", null);
|
|
6871
6495
|
_ts_decorate([
|
|
6872
6496
|
cache(),
|
|
6873
6497
|
_ts_metadata("design:type", Function),
|
|
6874
6498
|
_ts_metadata("design:paramtypes", [
|
|
6875
|
-
|
|
6499
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6500
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6876
6501
|
]),
|
|
6877
|
-
_ts_metadata("design:returntype",
|
|
6878
|
-
],
|
|
6502
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6503
|
+
], ZodSchemaFactory.prototype, "makeDeleteManySchema", null);
|
|
6879
6504
|
_ts_decorate([
|
|
6880
6505
|
cache(),
|
|
6881
6506
|
_ts_metadata("design:type", Function),
|
|
6882
6507
|
_ts_metadata("design:paramtypes", [
|
|
6883
|
-
|
|
6508
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6509
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6884
6510
|
]),
|
|
6885
|
-
_ts_metadata("design:returntype",
|
|
6886
|
-
],
|
|
6511
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6512
|
+
], ZodSchemaFactory.prototype, "makeCountSchema", null);
|
|
6887
6513
|
_ts_decorate([
|
|
6888
6514
|
cache(),
|
|
6889
6515
|
_ts_metadata("design:type", Function),
|
|
@@ -6891,15 +6517,16 @@ _ts_decorate([
|
|
|
6891
6517
|
String
|
|
6892
6518
|
]),
|
|
6893
6519
|
_ts_metadata("design:returntype", void 0)
|
|
6894
|
-
],
|
|
6520
|
+
], ZodSchemaFactory.prototype, "makeCountAggregateInputSchema", null);
|
|
6895
6521
|
_ts_decorate([
|
|
6896
6522
|
cache(),
|
|
6897
6523
|
_ts_metadata("design:type", Function),
|
|
6898
6524
|
_ts_metadata("design:paramtypes", [
|
|
6899
|
-
|
|
6525
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6526
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6900
6527
|
]),
|
|
6901
|
-
_ts_metadata("design:returntype",
|
|
6902
|
-
],
|
|
6528
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6529
|
+
], ZodSchemaFactory.prototype, "makeAggregateSchema", null);
|
|
6903
6530
|
_ts_decorate([
|
|
6904
6531
|
cache(),
|
|
6905
6532
|
_ts_metadata("design:type", Function),
|
|
@@ -6907,7 +6534,7 @@ _ts_decorate([
|
|
|
6907
6534
|
String
|
|
6908
6535
|
]),
|
|
6909
6536
|
_ts_metadata("design:returntype", void 0)
|
|
6910
|
-
],
|
|
6537
|
+
], ZodSchemaFactory.prototype, "makeSumAvgInputSchema", null);
|
|
6911
6538
|
_ts_decorate([
|
|
6912
6539
|
cache(),
|
|
6913
6540
|
_ts_metadata("design:type", Function),
|
|
@@ -6915,35 +6542,168 @@ _ts_decorate([
|
|
|
6915
6542
|
String
|
|
6916
6543
|
]),
|
|
6917
6544
|
_ts_metadata("design:returntype", void 0)
|
|
6918
|
-
],
|
|
6545
|
+
], ZodSchemaFactory.prototype, "makeMinMaxInputSchema", null);
|
|
6919
6546
|
_ts_decorate([
|
|
6920
6547
|
cache(),
|
|
6921
6548
|
_ts_metadata("design:type", Function),
|
|
6922
6549
|
_ts_metadata("design:paramtypes", [
|
|
6923
|
-
|
|
6550
|
+
typeof Model === "undefined" ? Object : Model,
|
|
6551
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6924
6552
|
]),
|
|
6925
|
-
_ts_metadata("design:returntype",
|
|
6926
|
-
],
|
|
6553
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6554
|
+
], ZodSchemaFactory.prototype, "makeGroupBySchema", null);
|
|
6927
6555
|
_ts_decorate([
|
|
6928
6556
|
cache(),
|
|
6929
6557
|
_ts_metadata("design:type", Function),
|
|
6930
6558
|
_ts_metadata("design:paramtypes", [
|
|
6931
|
-
Object
|
|
6559
|
+
Object,
|
|
6560
|
+
typeof CreateSchemaOptions === "undefined" ? Object : CreateSchemaOptions
|
|
6932
6561
|
]),
|
|
6933
|
-
_ts_metadata("design:returntype", typeof import_zod2.
|
|
6934
|
-
],
|
|
6562
|
+
_ts_metadata("design:returntype", typeof import_zod2.ZodType === "undefined" ? Object : import_zod2.ZodType)
|
|
6563
|
+
], ZodSchemaFactory.prototype, "makeProcedureParamSchema", null);
|
|
6935
6564
|
_ts_decorate([
|
|
6936
6565
|
cache(),
|
|
6937
6566
|
_ts_metadata("design:type", Function),
|
|
6938
6567
|
_ts_metadata("design:paramtypes", []),
|
|
6939
6568
|
_ts_metadata("design:returntype", void 0)
|
|
6940
|
-
],
|
|
6569
|
+
], ZodSchemaFactory.prototype, "makeSkipSchema", null);
|
|
6941
6570
|
_ts_decorate([
|
|
6942
6571
|
cache(),
|
|
6943
6572
|
_ts_metadata("design:type", Function),
|
|
6944
6573
|
_ts_metadata("design:paramtypes", []),
|
|
6945
6574
|
_ts_metadata("design:returntype", void 0)
|
|
6946
|
-
],
|
|
6575
|
+
], ZodSchemaFactory.prototype, "makeTakeSchema", null);
|
|
6576
|
+
|
|
6577
|
+
// src/client/crud/validator/validator.ts
|
|
6578
|
+
var InputValidator = class {
|
|
6579
|
+
static {
|
|
6580
|
+
__name(this, "InputValidator");
|
|
6581
|
+
}
|
|
6582
|
+
client;
|
|
6583
|
+
zodFactory;
|
|
6584
|
+
constructor(client) {
|
|
6585
|
+
this.client = client;
|
|
6586
|
+
this.zodFactory = new ZodSchemaFactory(client);
|
|
6587
|
+
}
|
|
6588
|
+
// #region Entry points
|
|
6589
|
+
validateFindArgs(model, args, operation) {
|
|
6590
|
+
return this.validate(model, operation, (model2) => (0, import_ts_pattern14.match)(operation).with("findFirst", () => this.zodFactory.makeFindFirstSchema(model2)).with("findUnique", () => this.zodFactory.makeFindUniqueSchema(model2)).with("findMany", () => this.zodFactory.makeFindManySchema(model2)).exhaustive(), args);
|
|
6591
|
+
}
|
|
6592
|
+
validateExistsArgs(model, args) {
|
|
6593
|
+
return this.validate(model, "exists", (model2) => this.zodFactory.makeExistsSchema(model2), args);
|
|
6594
|
+
}
|
|
6595
|
+
validateCreateArgs(model, args) {
|
|
6596
|
+
return this.validate(model, "create", (model2) => this.zodFactory.makeCreateSchema(model2), args);
|
|
6597
|
+
}
|
|
6598
|
+
validateCreateManyArgs(model, args) {
|
|
6599
|
+
return this.validate(model, "createMany", (model2) => this.zodFactory.makeCreateManySchema(model2), args);
|
|
6600
|
+
}
|
|
6601
|
+
validateCreateManyAndReturnArgs(model, args) {
|
|
6602
|
+
return this.validate(model, "createManyAndReturn", (model2) => this.zodFactory.makeCreateManyAndReturnSchema(model2), args);
|
|
6603
|
+
}
|
|
6604
|
+
validateUpdateArgs(model, args) {
|
|
6605
|
+
return this.validate(model, "update", (model2) => this.zodFactory.makeUpdateSchema(model2), args);
|
|
6606
|
+
}
|
|
6607
|
+
validateUpdateManyArgs(model, args) {
|
|
6608
|
+
return this.validate(model, "updateMany", (model2) => this.zodFactory.makeUpdateManySchema(model2), args);
|
|
6609
|
+
}
|
|
6610
|
+
validateUpdateManyAndReturnArgs(model, args) {
|
|
6611
|
+
return this.validate(model, "updateManyAndReturn", (model2) => this.zodFactory.makeUpdateManyAndReturnSchema(model2), args);
|
|
6612
|
+
}
|
|
6613
|
+
validateUpsertArgs(model, args) {
|
|
6614
|
+
return this.validate(model, "upsert", (model2) => this.zodFactory.makeUpsertSchema(model2), args);
|
|
6615
|
+
}
|
|
6616
|
+
validateDeleteArgs(model, args) {
|
|
6617
|
+
return this.validate(model, "delete", (model2) => this.zodFactory.makeDeleteSchema(model2), args);
|
|
6618
|
+
}
|
|
6619
|
+
validateDeleteManyArgs(model, args) {
|
|
6620
|
+
return this.validate(model, "deleteMany", (model2) => this.zodFactory.makeDeleteManySchema(model2), args);
|
|
6621
|
+
}
|
|
6622
|
+
validateCountArgs(model, args) {
|
|
6623
|
+
return this.validate(model, "count", (model2) => this.zodFactory.makeCountSchema(model2), args);
|
|
6624
|
+
}
|
|
6625
|
+
validateAggregateArgs(model, args) {
|
|
6626
|
+
return this.validate(model, "aggregate", (model2) => this.zodFactory.makeAggregateSchema(model2), args);
|
|
6627
|
+
}
|
|
6628
|
+
validateGroupByArgs(model, args) {
|
|
6629
|
+
return this.validate(model, "groupBy", (model2) => this.zodFactory.makeGroupBySchema(model2), args);
|
|
6630
|
+
}
|
|
6631
|
+
// TODO: turn it into a Zod schema and cache
|
|
6632
|
+
validateProcedureInput(proc, input) {
|
|
6633
|
+
const procDef = (this.client.$schema.procedures ?? {})[proc];
|
|
6634
|
+
(0, import_common_helpers9.invariant)(procDef, `Procedure "${proc}" not found in schema`);
|
|
6635
|
+
const params = Object.values(procDef.params ?? {});
|
|
6636
|
+
if (typeof input === "undefined") {
|
|
6637
|
+
if (params.length === 0) {
|
|
6638
|
+
return void 0;
|
|
6639
|
+
}
|
|
6640
|
+
if (params.every((p) => p.optional)) {
|
|
6641
|
+
return void 0;
|
|
6642
|
+
}
|
|
6643
|
+
throw createInvalidInputError("Missing procedure arguments", `$procs.${proc}`);
|
|
6644
|
+
}
|
|
6645
|
+
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
6646
|
+
throw createInvalidInputError("Procedure input must be an object", `$procs.${proc}`);
|
|
6647
|
+
}
|
|
6648
|
+
const envelope = input;
|
|
6649
|
+
const argsPayload = Object.prototype.hasOwnProperty.call(envelope, "args") ? envelope.args : void 0;
|
|
6650
|
+
if (params.length === 0) {
|
|
6651
|
+
if (typeof argsPayload === "undefined") {
|
|
6652
|
+
return input;
|
|
6653
|
+
}
|
|
6654
|
+
if (!argsPayload || typeof argsPayload !== "object" || Array.isArray(argsPayload)) {
|
|
6655
|
+
throw createInvalidInputError("Procedure `args` must be an object", `$procs.${proc}`);
|
|
6656
|
+
}
|
|
6657
|
+
if (Object.keys(argsPayload).length === 0) {
|
|
6658
|
+
return input;
|
|
6659
|
+
}
|
|
6660
|
+
throw createInvalidInputError("Procedure does not accept arguments", `$procs.${proc}`);
|
|
6661
|
+
}
|
|
6662
|
+
if (typeof argsPayload === "undefined") {
|
|
6663
|
+
if (params.every((p) => p.optional)) {
|
|
6664
|
+
return input;
|
|
6665
|
+
}
|
|
6666
|
+
throw createInvalidInputError("Missing procedure arguments", `$procs.${proc}`);
|
|
6667
|
+
}
|
|
6668
|
+
if (!argsPayload || typeof argsPayload !== "object" || Array.isArray(argsPayload)) {
|
|
6669
|
+
throw createInvalidInputError("Procedure `args` must be an object", `$procs.${proc}`);
|
|
6670
|
+
}
|
|
6671
|
+
const obj = argsPayload;
|
|
6672
|
+
for (const param of params) {
|
|
6673
|
+
const value = obj[param.name];
|
|
6674
|
+
if (!Object.prototype.hasOwnProperty.call(obj, param.name)) {
|
|
6675
|
+
if (param.optional) {
|
|
6676
|
+
continue;
|
|
6677
|
+
}
|
|
6678
|
+
throw createInvalidInputError(`Missing procedure argument: ${param.name}`, `$procs.${proc}`);
|
|
6679
|
+
}
|
|
6680
|
+
if (typeof value === "undefined") {
|
|
6681
|
+
if (param.optional) {
|
|
6682
|
+
continue;
|
|
6683
|
+
}
|
|
6684
|
+
throw createInvalidInputError(`Invalid procedure argument: ${param.name} is required`, `$procs.${proc}`);
|
|
6685
|
+
}
|
|
6686
|
+
const schema = this.zodFactory.makeProcedureParamSchema(param);
|
|
6687
|
+
const parsed = schema.safeParse(value);
|
|
6688
|
+
if (!parsed.success) {
|
|
6689
|
+
throw createInvalidInputError(`Invalid procedure argument: ${param.name}: ${formatError(parsed.error)}`, `$procs.${proc}`);
|
|
6690
|
+
}
|
|
6691
|
+
}
|
|
6692
|
+
return input;
|
|
6693
|
+
}
|
|
6694
|
+
// #endregion
|
|
6695
|
+
// #region Validation helpers
|
|
6696
|
+
validate(model, operation, getSchema, args) {
|
|
6697
|
+
const schema = getSchema(model);
|
|
6698
|
+
const { error, data } = schema.safeParse(args);
|
|
6699
|
+
if (error) {
|
|
6700
|
+
throw createInvalidInputError(`Invalid ${operation} args for model "${model}": ${formatError(error)}`, model, {
|
|
6701
|
+
cause: error
|
|
6702
|
+
});
|
|
6703
|
+
}
|
|
6704
|
+
return data;
|
|
6705
|
+
}
|
|
6706
|
+
};
|
|
6947
6707
|
|
|
6948
6708
|
// src/client/executor/zenstack-driver.ts
|
|
6949
6709
|
var ZenStackDriver = class {
|
|
@@ -7130,7 +6890,7 @@ __name(performanceNow, "performanceNow");
|
|
|
7130
6890
|
|
|
7131
6891
|
// src/client/executor/zenstack-query-executor.ts
|
|
7132
6892
|
var import_common_helpers11 = require("@zenstackhq/common-helpers");
|
|
7133
|
-
var
|
|
6893
|
+
var import_kysely9 = require("kysely");
|
|
7134
6894
|
var import_ts_pattern15 = require("ts-pattern");
|
|
7135
6895
|
|
|
7136
6896
|
// src/client/executor/name-mapper.ts
|
|
@@ -7718,8 +7478,32 @@ var QueryNameMapper = class extends import_kysely7.OperationNodeTransformer {
|
|
|
7718
7478
|
}
|
|
7719
7479
|
};
|
|
7720
7480
|
|
|
7481
|
+
// src/client/executor/temp-alias-transformer.ts
|
|
7482
|
+
var import_kysely8 = require("kysely");
|
|
7483
|
+
var TempAliasTransformer = class extends import_kysely8.OperationNodeTransformer {
|
|
7484
|
+
static {
|
|
7485
|
+
__name(this, "TempAliasTransformer");
|
|
7486
|
+
}
|
|
7487
|
+
aliasMap = /* @__PURE__ */ new Map();
|
|
7488
|
+
run(node) {
|
|
7489
|
+
this.aliasMap.clear();
|
|
7490
|
+
return this.transformNode(node);
|
|
7491
|
+
}
|
|
7492
|
+
transformIdentifier(node, queryId) {
|
|
7493
|
+
if (node.name.startsWith(TEMP_ALIAS_PREFIX)) {
|
|
7494
|
+
let mapped = this.aliasMap.get(node.name);
|
|
7495
|
+
if (!mapped) {
|
|
7496
|
+
mapped = `$$t${this.aliasMap.size + 1}`;
|
|
7497
|
+
this.aliasMap.set(node.name, mapped);
|
|
7498
|
+
}
|
|
7499
|
+
return import_kysely8.IdentifierNode.create(mapped);
|
|
7500
|
+
}
|
|
7501
|
+
return super.transformIdentifier(node, queryId);
|
|
7502
|
+
}
|
|
7503
|
+
};
|
|
7504
|
+
|
|
7721
7505
|
// src/client/executor/zenstack-query-executor.ts
|
|
7722
|
-
var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends
|
|
7506
|
+
var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends import_kysely9.DefaultQueryExecutor {
|
|
7723
7507
|
static {
|
|
7724
7508
|
__name(this, "ZenStackQueryExecutor");
|
|
7725
7509
|
}
|
|
@@ -7821,17 +7605,17 @@ var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends import_kysely8.
|
|
|
7821
7605
|
}
|
|
7822
7606
|
let preUpdateIds;
|
|
7823
7607
|
const mutationModel = this.getMutationModel(query);
|
|
7824
|
-
const needLoadAfterMutationEntities = (
|
|
7608
|
+
const needLoadAfterMutationEntities = (import_kysely9.InsertQueryNode.is(query) || import_kysely9.UpdateQueryNode.is(query)) && this.hasEntityMutationPluginsWithAfterMutationHooks;
|
|
7825
7609
|
if (needLoadAfterMutationEntities) {
|
|
7826
7610
|
if (this.dialect.supportsReturning) {
|
|
7827
7611
|
query = {
|
|
7828
7612
|
...query,
|
|
7829
|
-
returning:
|
|
7830
|
-
|
|
7613
|
+
returning: import_kysely9.ReturningNode.create([
|
|
7614
|
+
import_kysely9.SelectionNode.createSelectAll()
|
|
7831
7615
|
])
|
|
7832
7616
|
};
|
|
7833
7617
|
} else {
|
|
7834
|
-
if (
|
|
7618
|
+
if (import_kysely9.UpdateQueryNode.is(query)) {
|
|
7835
7619
|
preUpdateIds = await this.getPreUpdateIds(mutationModel, query, connection);
|
|
7836
7620
|
}
|
|
7837
7621
|
}
|
|
@@ -7841,7 +7625,7 @@ var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends import_kysely8.
|
|
|
7841
7625
|
const mutationInfo = this.getMutationInfo(query);
|
|
7842
7626
|
let beforeMutationEntities;
|
|
7843
7627
|
const loadBeforeMutationEntities = /* @__PURE__ */ __name(async () => {
|
|
7844
|
-
if (beforeMutationEntities === void 0 && (
|
|
7628
|
+
if (beforeMutationEntities === void 0 && (import_kysely9.UpdateQueryNode.is(query) || import_kysely9.DeleteQueryNode.is(query))) {
|
|
7845
7629
|
beforeMutationEntities = await this.loadEntities(mutationInfo.model, mutationInfo.where, connection, void 0);
|
|
7846
7630
|
}
|
|
7847
7631
|
return beforeMutationEntities;
|
|
@@ -7945,10 +7729,10 @@ var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends import_kysely8.
|
|
|
7945
7729
|
if (this.dialect.supportsReturning) {
|
|
7946
7730
|
return queryResult.rows;
|
|
7947
7731
|
} else {
|
|
7948
|
-
const mutatedIds =
|
|
7732
|
+
const mutatedIds = import_kysely9.InsertQueryNode.is(queryNode) ? this.getInsertIds(mutationInfo.model, queryNode, queryResult) : preUpdateIds;
|
|
7949
7733
|
if (mutatedIds) {
|
|
7950
7734
|
const idFields = requireIdFields(this.client.$schema, mutationInfo.model);
|
|
7951
|
-
const eb = (0,
|
|
7735
|
+
const eb = (0, import_kysely9.expressionBuilder)();
|
|
7952
7736
|
const filter = eb(
|
|
7953
7737
|
// @ts-ignore
|
|
7954
7738
|
eb.refTuple(...idFields),
|
|
@@ -7957,7 +7741,7 @@ var ZenStackQueryExecutor = class _ZenStackQueryExecutor extends import_kysely8.
|
|
|
7957
7741
|
...idFields.map((idField) => eb.val(idObj[idField]))
|
|
7958
7742
|
))
|
|
7959
7743
|
);
|
|
7960
|
-
const entities = await this.loadEntities(mutationInfo.model,
|
|
7744
|
+
const entities = await this.loadEntities(mutationInfo.model, import_kysely9.WhereNode.create(filter.toOperationNode()), connection, void 0);
|
|
7961
7745
|
return entities;
|
|
7962
7746
|
} else {
|
|
7963
7747
|
console.warn(`Unable to load after-mutation entities for hooks: model "${mutationInfo.model}", operation "${mutationInfo.action}".
|
|
@@ -7978,9 +7762,9 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
7978
7762
|
const idFields = requireIdFields(this.client.$schema, mutationModel);
|
|
7979
7763
|
if (query.updates) {
|
|
7980
7764
|
for (const update of query.updates) {
|
|
7981
|
-
if (
|
|
7765
|
+
if (import_kysely9.ColumnUpdateNode.is(update)) {
|
|
7982
7766
|
const columnNode = update.column;
|
|
7983
|
-
if (
|
|
7767
|
+
if (import_kysely9.ColumnNode.is(columnNode)) {
|
|
7984
7768
|
const columnName = columnNode.column.name;
|
|
7985
7769
|
if (idFields.includes(columnName)) {
|
|
7986
7770
|
return void 0;
|
|
@@ -7993,7 +7777,7 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
7993
7777
|
}
|
|
7994
7778
|
getInsertIds(mutationModel, query, queryResult) {
|
|
7995
7779
|
const idFields = requireIdFields(this.client.$schema, mutationModel);
|
|
7996
|
-
if (
|
|
7780
|
+
if (import_kysely9.InsertQueryNode.is(query) && queryResult.numAffectedRows === 1n && queryResult.insertId && idFields.length === 1) {
|
|
7997
7781
|
return [
|
|
7998
7782
|
{
|
|
7999
7783
|
[idFields[0]]: queryResult.insertId
|
|
@@ -8005,13 +7789,13 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
8005
7789
|
return void 0;
|
|
8006
7790
|
}
|
|
8007
7791
|
const values = query.values;
|
|
8008
|
-
if (!values || !
|
|
7792
|
+
if (!values || !import_kysely9.ValuesNode.is(values)) {
|
|
8009
7793
|
return void 0;
|
|
8010
7794
|
}
|
|
8011
7795
|
const allIds = [];
|
|
8012
7796
|
for (const valuesItem of values.values) {
|
|
8013
7797
|
const rowIds = {};
|
|
8014
|
-
if (
|
|
7798
|
+
if (import_kysely9.PrimitiveValueListNode.is(valuesItem)) {
|
|
8015
7799
|
(0, import_common_helpers11.invariant)(valuesItem.values.length === columns.length, "Values count must match columns count");
|
|
8016
7800
|
for (const idField of idFields) {
|
|
8017
7801
|
const colIndex = columns.findIndex((col) => col.column.name === idField);
|
|
@@ -8028,7 +7812,7 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
8028
7812
|
return void 0;
|
|
8029
7813
|
}
|
|
8030
7814
|
const valueNode = valuesItem.values[colIndex];
|
|
8031
|
-
if (!valueNode || !
|
|
7815
|
+
if (!valueNode || !import_kysely9.ValueNode.is(valueNode)) {
|
|
8032
7816
|
return void 0;
|
|
8033
7817
|
}
|
|
8034
7818
|
rowIds[idField] = valueNode.value;
|
|
@@ -8057,13 +7841,13 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
8057
7841
|
// #region utilities
|
|
8058
7842
|
getMutationInfo(queryNode) {
|
|
8059
7843
|
const model = this.getMutationModel(queryNode);
|
|
8060
|
-
const { action, where } = (0, import_ts_pattern15.match)(queryNode).when(
|
|
7844
|
+
const { action, where } = (0, import_ts_pattern15.match)(queryNode).when(import_kysely9.InsertQueryNode.is, () => ({
|
|
8061
7845
|
action: "create",
|
|
8062
7846
|
where: void 0
|
|
8063
|
-
})).when(
|
|
7847
|
+
})).when(import_kysely9.UpdateQueryNode.is, (node) => ({
|
|
8064
7848
|
action: "update",
|
|
8065
7849
|
where: node.where
|
|
8066
|
-
})).when(
|
|
7850
|
+
})).when(import_kysely9.DeleteQueryNode.is, (node) => ({
|
|
8067
7851
|
action: "delete",
|
|
8068
7852
|
where: node.where
|
|
8069
7853
|
})).exhaustive();
|
|
@@ -8074,31 +7858,43 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
8074
7858
|
};
|
|
8075
7859
|
}
|
|
8076
7860
|
isMutationNode(queryNode) {
|
|
8077
|
-
return
|
|
7861
|
+
return import_kysely9.InsertQueryNode.is(queryNode) || import_kysely9.UpdateQueryNode.is(queryNode) || import_kysely9.DeleteQueryNode.is(queryNode);
|
|
8078
7862
|
}
|
|
8079
7863
|
getMutationModel(queryNode) {
|
|
8080
|
-
return (0, import_ts_pattern15.match)(queryNode).when(
|
|
7864
|
+
return (0, import_ts_pattern15.match)(queryNode).when(import_kysely9.InsertQueryNode.is, (node) => {
|
|
8081
7865
|
(0, import_common_helpers11.invariant)(node.into, "InsertQueryNode must have an into clause");
|
|
8082
7866
|
return node.into.table.identifier.name;
|
|
8083
|
-
}).when(
|
|
7867
|
+
}).when(import_kysely9.UpdateQueryNode.is, (node) => {
|
|
8084
7868
|
(0, import_common_helpers11.invariant)(node.table, "UpdateQueryNode must have a table");
|
|
8085
7869
|
const { node: tableNode } = stripAlias(node.table);
|
|
8086
|
-
(0, import_common_helpers11.invariant)(
|
|
7870
|
+
(0, import_common_helpers11.invariant)(import_kysely9.TableNode.is(tableNode), "UpdateQueryNode must use a TableNode");
|
|
8087
7871
|
return tableNode.table.identifier.name;
|
|
8088
|
-
}).when(
|
|
7872
|
+
}).when(import_kysely9.DeleteQueryNode.is, (node) => {
|
|
8089
7873
|
(0, import_common_helpers11.invariant)(node.from.froms.length === 1, "Delete query must have exactly one from table");
|
|
8090
7874
|
const { node: tableNode } = stripAlias(node.from.froms[0]);
|
|
8091
|
-
(0, import_common_helpers11.invariant)(
|
|
7875
|
+
(0, import_common_helpers11.invariant)(import_kysely9.TableNode.is(tableNode), "DeleteQueryNode must use a TableNode");
|
|
8092
7876
|
return tableNode.table.identifier.name;
|
|
8093
7877
|
}).otherwise((node) => {
|
|
8094
7878
|
throw createInternalError(`Invalid query node: ${node}`);
|
|
8095
7879
|
});
|
|
8096
7880
|
}
|
|
7881
|
+
processQueryNode(query) {
|
|
7882
|
+
let result = query;
|
|
7883
|
+
result = this.processNameMapping(result);
|
|
7884
|
+
result = this.processTempAlias(result);
|
|
7885
|
+
return result;
|
|
7886
|
+
}
|
|
8097
7887
|
processNameMapping(query) {
|
|
8098
7888
|
return this.nameMapper?.transformNode(query) ?? query;
|
|
8099
7889
|
}
|
|
7890
|
+
processTempAlias(query) {
|
|
7891
|
+
if (this.options.useCompactAliasNames === false) {
|
|
7892
|
+
return query;
|
|
7893
|
+
}
|
|
7894
|
+
return new TempAliasTransformer().run(query);
|
|
7895
|
+
}
|
|
8100
7896
|
createClientForConnection(connection, inTx) {
|
|
8101
|
-
const innerExecutor = this.withConnectionProvider(new
|
|
7897
|
+
const innerExecutor = this.withConnectionProvider(new import_kysely9.SingleConnectionProvider(connection));
|
|
8102
7898
|
innerExecutor.suppressMutationHooks = true;
|
|
8103
7899
|
const innerClient = this.client.withExecutor(innerExecutor);
|
|
8104
7900
|
if (inTx) {
|
|
@@ -8108,16 +7904,16 @@ In such cases, ZenStack cannot reliably determine the IDs of the mutated entitie
|
|
|
8108
7904
|
}
|
|
8109
7905
|
andNodes(condition1, condition2) {
|
|
8110
7906
|
if (condition1 && condition2) {
|
|
8111
|
-
return
|
|
7907
|
+
return import_kysely9.WhereNode.create(import_kysely9.AndNode.create(condition1, condition2));
|
|
8112
7908
|
} else if (condition1) {
|
|
8113
|
-
return
|
|
7909
|
+
return import_kysely9.WhereNode.create(condition1);
|
|
8114
7910
|
} else {
|
|
8115
7911
|
return condition2;
|
|
8116
7912
|
}
|
|
8117
7913
|
}
|
|
8118
7914
|
async internalExecuteQuery(query, connection, queryId, parameters) {
|
|
8119
|
-
const finalQuery = this.
|
|
8120
|
-
let compiledQuery = this.compileQuery(finalQuery, queryId ?? (0,
|
|
7915
|
+
const finalQuery = this.processQueryNode(query);
|
|
7916
|
+
let compiledQuery = this.compileQuery(finalQuery, queryId ?? (0, import_kysely9.createQueryId)());
|
|
8121
7917
|
if (parameters) {
|
|
8122
7918
|
compiledQuery = {
|
|
8123
7919
|
...compiledQuery,
|
|
@@ -8187,7 +7983,7 @@ __export(functions_exports, {
|
|
|
8187
7983
|
startsWith: () => startsWith
|
|
8188
7984
|
});
|
|
8189
7985
|
var import_common_helpers12 = require("@zenstackhq/common-helpers");
|
|
8190
|
-
var
|
|
7986
|
+
var import_kysely10 = require("kysely");
|
|
8191
7987
|
var import_ts_pattern16 = require("ts-pattern");
|
|
8192
7988
|
var contains = /* @__PURE__ */ __name((eb, args, context) => textMatch(eb, args, context, "contains"), "contains");
|
|
8193
7989
|
var search = /* @__PURE__ */ __name((_eb, _args) => {
|
|
@@ -8225,20 +8021,20 @@ var textMatch = /* @__PURE__ */ __name((eb, args, { dialect }, method) => {
|
|
|
8225
8021
|
} else {
|
|
8226
8022
|
op = "like";
|
|
8227
8023
|
}
|
|
8228
|
-
searchExpr = eb.fn.coalesce(searchExpr,
|
|
8229
|
-
const escapedSearch =
|
|
8024
|
+
searchExpr = eb.fn.coalesce(searchExpr, import_kysely10.sql.lit(""));
|
|
8025
|
+
const escapedSearch = import_kysely10.sql`REPLACE(REPLACE(REPLACE(${dialect.castText(searchExpr)}, ${import_kysely10.sql.val("\\")}, ${import_kysely10.sql.val("\\\\")}), ${import_kysely10.sql.val("%")}, ${import_kysely10.sql.val("\\%")}), ${import_kysely10.sql.val("_")}, ${import_kysely10.sql.val("\\_")})`;
|
|
8230
8026
|
searchExpr = (0, import_ts_pattern16.match)(method).with("contains", () => eb.fn("CONCAT", [
|
|
8231
|
-
|
|
8027
|
+
import_kysely10.sql.lit("%"),
|
|
8232
8028
|
escapedSearch,
|
|
8233
|
-
|
|
8029
|
+
import_kysely10.sql.lit("%")
|
|
8234
8030
|
])).with("startsWith", () => eb.fn("CONCAT", [
|
|
8235
8031
|
escapedSearch,
|
|
8236
|
-
|
|
8032
|
+
import_kysely10.sql.lit("%")
|
|
8237
8033
|
])).with("endsWith", () => eb.fn("CONCAT", [
|
|
8238
|
-
|
|
8034
|
+
import_kysely10.sql.lit("%"),
|
|
8239
8035
|
escapedSearch
|
|
8240
8036
|
])).exhaustive();
|
|
8241
|
-
return
|
|
8037
|
+
return import_kysely10.sql`${fieldExpr} ${import_kysely10.sql.raw(op)} ${searchExpr} escape ${import_kysely10.sql.val("\\")}`;
|
|
8242
8038
|
}, "textMatch");
|
|
8243
8039
|
var has = /* @__PURE__ */ __name((_eb, args, context) => {
|
|
8244
8040
|
const [field, search2] = args;
|
|
@@ -8275,16 +8071,16 @@ var isEmpty = /* @__PURE__ */ __name((eb, args, { dialect }) => {
|
|
|
8275
8071
|
if (!field) {
|
|
8276
8072
|
throw new Error('"field" parameter is required');
|
|
8277
8073
|
}
|
|
8278
|
-
return eb(dialect.buildArrayLength(field), "=",
|
|
8074
|
+
return eb(dialect.buildArrayLength(field), "=", import_kysely10.sql.lit(0));
|
|
8279
8075
|
}, "isEmpty");
|
|
8280
|
-
var now = /* @__PURE__ */ __name(() =>
|
|
8076
|
+
var now = /* @__PURE__ */ __name(() => import_kysely10.sql.raw("CURRENT_TIMESTAMP"), "now");
|
|
8281
8077
|
var currentModel = /* @__PURE__ */ __name((_eb, args, { model }) => {
|
|
8282
8078
|
let result = model;
|
|
8283
8079
|
const [casing] = args;
|
|
8284
8080
|
if (casing) {
|
|
8285
8081
|
result = processCasing(casing, result, model);
|
|
8286
8082
|
}
|
|
8287
|
-
return
|
|
8083
|
+
return import_kysely10.sql.lit(result);
|
|
8288
8084
|
}, "currentModel");
|
|
8289
8085
|
var currentOperation = /* @__PURE__ */ __name((_eb, args, { operation }) => {
|
|
8290
8086
|
let result = operation;
|
|
@@ -8292,11 +8088,11 @@ var currentOperation = /* @__PURE__ */ __name((_eb, args, { operation }) => {
|
|
|
8292
8088
|
if (casing) {
|
|
8293
8089
|
result = processCasing(casing, result, operation);
|
|
8294
8090
|
}
|
|
8295
|
-
return
|
|
8091
|
+
return import_kysely10.sql.lit(result);
|
|
8296
8092
|
}, "currentOperation");
|
|
8297
8093
|
function processCasing(casing, result, model) {
|
|
8298
8094
|
const opNode = casing.toOperationNode();
|
|
8299
|
-
(0, import_common_helpers12.invariant)(
|
|
8095
|
+
(0, import_common_helpers12.invariant)(import_kysely10.ValueNode.is(opNode) && typeof opNode.value === "string", '"casting" parameter must be a string value');
|
|
8300
8096
|
result = (0, import_ts_pattern16.match)(opNode.value).with("original", () => model).with("upper", () => result.toUpperCase()).with("lower", () => result.toLowerCase()).with("capitalize", () => (0, import_common_helpers12.upperCaseFirst)(result)).with("uncapitalize", () => (0, import_common_helpers12.lowerCaseFirst)(result)).otherwise(() => {
|
|
8301
8097
|
throw new Error(`Invalid casing value: ${opNode.value}. Must be "original", "upper", "lower", "capitalize", or "uncapitalize".`);
|
|
8302
8098
|
});
|
|
@@ -8308,14 +8104,14 @@ function readBoolean(expr, defaultValue) {
|
|
|
8308
8104
|
return defaultValue;
|
|
8309
8105
|
}
|
|
8310
8106
|
const opNode = expr.toOperationNode();
|
|
8311
|
-
(0, import_common_helpers12.invariant)(
|
|
8107
|
+
(0, import_common_helpers12.invariant)(import_kysely10.ValueNode.is(opNode), "expression must be a literal value");
|
|
8312
8108
|
return !!opNode.value;
|
|
8313
8109
|
}
|
|
8314
8110
|
__name(readBoolean, "readBoolean");
|
|
8315
8111
|
|
|
8316
8112
|
// src/client/helpers/schema-db-pusher.ts
|
|
8317
8113
|
var import_common_helpers13 = require("@zenstackhq/common-helpers");
|
|
8318
|
-
var
|
|
8114
|
+
var import_kysely11 = require("kysely");
|
|
8319
8115
|
var import_toposort = __toESM(require("toposort"), 1);
|
|
8320
8116
|
var import_ts_pattern17 = require("ts-pattern");
|
|
8321
8117
|
var SchemaDbPusher = class {
|
|
@@ -8493,7 +8289,7 @@ var SchemaDbPusher = class {
|
|
|
8493
8289
|
if (fieldDef.default !== void 0 && this.isDefaultValueSupportedForType(fieldDef.type)) {
|
|
8494
8290
|
if (typeof fieldDef.default === "object" && "kind" in fieldDef.default) {
|
|
8495
8291
|
if (schema_exports.ExpressionUtils.isCall(fieldDef.default) && fieldDef.default.function === "now") {
|
|
8496
|
-
col = this.schema.provider.type === "mysql" ? col.defaultTo(
|
|
8292
|
+
col = this.schema.provider.type === "mysql" ? col.defaultTo(import_kysely11.sql`CURRENT_TIMESTAMP(3)`) : col.defaultTo(import_kysely11.sql`CURRENT_TIMESTAMP`);
|
|
8497
8293
|
}
|
|
8498
8294
|
} else {
|
|
8499
8295
|
if (this.schema.provider.type === "mysql" && fieldDef.type === "DateTime" && typeof fieldDef.default === "string") {
|
|
@@ -8525,7 +8321,7 @@ var SchemaDbPusher = class {
|
|
|
8525
8321
|
mapFieldType(fieldDef) {
|
|
8526
8322
|
if (this.schema.enums?.[fieldDef.type]) {
|
|
8527
8323
|
if (this.schema.provider.type === "postgresql") {
|
|
8528
|
-
return
|
|
8324
|
+
return import_kysely11.sql.ref(fieldDef.type);
|
|
8529
8325
|
} else if (this.schema.provider.type === "mysql") {
|
|
8530
8326
|
const enumDef = this.schema.enums[fieldDef.type];
|
|
8531
8327
|
let enumValues;
|
|
@@ -8543,7 +8339,7 @@ var SchemaDbPusher = class {
|
|
|
8543
8339
|
} else {
|
|
8544
8340
|
enumValues = Object.values(enumDef.values);
|
|
8545
8341
|
}
|
|
8546
|
-
return
|
|
8342
|
+
return import_kysely11.sql.raw(`enum(${enumValues.map((v) => `'${v}'`).join(", ")})`);
|
|
8547
8343
|
} else {
|
|
8548
8344
|
return "text";
|
|
8549
8345
|
}
|
|
@@ -8559,7 +8355,7 @@ var SchemaDbPusher = class {
|
|
|
8559
8355
|
throw new Error(`Unsupported field type: ${type}`);
|
|
8560
8356
|
});
|
|
8561
8357
|
if (fieldDef.array) {
|
|
8562
|
-
return
|
|
8358
|
+
return import_kysely11.sql.raw(`${result}[]`);
|
|
8563
8359
|
} else {
|
|
8564
8360
|
return result;
|
|
8565
8361
|
}
|
|
@@ -8605,25 +8401,25 @@ var SchemaDbPusher = class {
|
|
|
8605
8401
|
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("postgresql", () => "bytea").with("mysql", () => "blob").otherwise(() => "blob");
|
|
8606
8402
|
}
|
|
8607
8403
|
get stringType() {
|
|
8608
|
-
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () =>
|
|
8404
|
+
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () => import_kysely11.sql.raw("varchar(255)")).otherwise(() => "text");
|
|
8609
8405
|
}
|
|
8610
8406
|
get booleanType() {
|
|
8611
|
-
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () =>
|
|
8407
|
+
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () => import_kysely11.sql.raw("tinyint(1)")).otherwise(() => "boolean");
|
|
8612
8408
|
}
|
|
8613
8409
|
get intType() {
|
|
8614
8410
|
return "integer";
|
|
8615
8411
|
}
|
|
8616
8412
|
get floatType() {
|
|
8617
|
-
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("postgresql", () => "double precision").with("mysql", () =>
|
|
8413
|
+
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("postgresql", () => "double precision").with("mysql", () => import_kysely11.sql.raw("double")).otherwise(() => "real");
|
|
8618
8414
|
}
|
|
8619
8415
|
get bigIntType() {
|
|
8620
8416
|
return "bigint";
|
|
8621
8417
|
}
|
|
8622
8418
|
get decimalType() {
|
|
8623
|
-
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () =>
|
|
8419
|
+
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () => import_kysely11.sql.raw("decimal(65, 30)")).otherwise(() => "decimal");
|
|
8624
8420
|
}
|
|
8625
8421
|
get dateTimeType() {
|
|
8626
|
-
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () =>
|
|
8422
|
+
return (0, import_ts_pattern17.match)(this.schema.provider.type).with("mysql", () => import_kysely11.sql.raw("datetime(3)")).otherwise(() => "timestamp");
|
|
8627
8423
|
}
|
|
8628
8424
|
columnSupportsAutoIncrement() {
|
|
8629
8425
|
return [
|
|
@@ -8814,15 +8610,15 @@ var ClientImpl = class _ClientImpl {
|
|
|
8814
8610
|
if (baseClient) {
|
|
8815
8611
|
this.kyselyProps = {
|
|
8816
8612
|
...baseClient.kyselyProps,
|
|
8817
|
-
executor: executor ?? new ZenStackQueryExecutor(this, baseClient.kyselyProps.driver, baseClient.kyselyProps.dialect.createQueryCompiler(), baseClient.kyselyProps.dialect.createAdapter(), new
|
|
8613
|
+
executor: executor ?? new ZenStackQueryExecutor(this, baseClient.kyselyProps.driver, baseClient.kyselyProps.dialect.createQueryCompiler(), baseClient.kyselyProps.dialect.createAdapter(), new import_kysely12.DefaultConnectionProvider(baseClient.kyselyProps.driver))
|
|
8818
8614
|
};
|
|
8819
8615
|
this.kyselyRaw = baseClient.kyselyRaw;
|
|
8820
8616
|
this.auth = baseClient.auth;
|
|
8821
8617
|
} else {
|
|
8822
|
-
const driver = new ZenStackDriver(options.dialect.createDriver(), new
|
|
8618
|
+
const driver = new ZenStackDriver(options.dialect.createDriver(), new import_kysely12.Log(this.$options.log ?? []));
|
|
8823
8619
|
const compiler = options.dialect.createQueryCompiler();
|
|
8824
8620
|
const adapter = options.dialect.createAdapter();
|
|
8825
|
-
const connectionProvider = new
|
|
8621
|
+
const connectionProvider = new import_kysely12.DefaultConnectionProvider(driver);
|
|
8826
8622
|
this.kyselyProps = {
|
|
8827
8623
|
config: {
|
|
8828
8624
|
dialect: options.dialect,
|
|
@@ -8832,12 +8628,12 @@ var ClientImpl = class _ClientImpl {
|
|
|
8832
8628
|
driver,
|
|
8833
8629
|
executor: executor ?? new ZenStackQueryExecutor(this, driver, compiler, adapter, connectionProvider)
|
|
8834
8630
|
};
|
|
8835
|
-
this.kyselyRaw = new
|
|
8631
|
+
this.kyselyRaw = new import_kysely12.Kysely({
|
|
8836
8632
|
...this.kyselyProps,
|
|
8837
|
-
executor: new
|
|
8633
|
+
executor: new import_kysely12.DefaultQueryExecutor(compiler, adapter, connectionProvider, [])
|
|
8838
8634
|
});
|
|
8839
8635
|
}
|
|
8840
|
-
this.kysely = new
|
|
8636
|
+
this.kysely = new import_kysely12.Kysely(this.kyselyProps);
|
|
8841
8637
|
this.inputValidator = baseClient?.inputValidator ?? new InputValidator(this);
|
|
8842
8638
|
return createClientProxy(this);
|
|
8843
8639
|
}
|
|
@@ -8847,6 +8643,9 @@ var ClientImpl = class _ClientImpl {
|
|
|
8847
8643
|
get $qbRaw() {
|
|
8848
8644
|
return this.kyselyRaw;
|
|
8849
8645
|
}
|
|
8646
|
+
get $zod() {
|
|
8647
|
+
return this.inputValidator.zodFactory;
|
|
8648
|
+
}
|
|
8850
8649
|
get isTransaction() {
|
|
8851
8650
|
return this.kysely.isTransaction;
|
|
8852
8651
|
}
|
|
@@ -8887,7 +8686,7 @@ var ClientImpl = class _ClientImpl {
|
|
|
8887
8686
|
}
|
|
8888
8687
|
forceTransaction() {
|
|
8889
8688
|
if (!this.kysely.isTransaction) {
|
|
8890
|
-
this.kysely = new
|
|
8689
|
+
this.kysely = new import_kysely12.Transaction(this.kyselyProps);
|
|
8891
8690
|
}
|
|
8892
8691
|
}
|
|
8893
8692
|
async interactiveTransaction(callback, options) {
|
|
@@ -8978,7 +8777,7 @@ var ClientImpl = class _ClientImpl {
|
|
|
8978
8777
|
}
|
|
8979
8778
|
async $connect() {
|
|
8980
8779
|
await this.kysely.connection().execute(async (conn) => {
|
|
8981
|
-
await conn.executeQuery(
|
|
8780
|
+
await conn.executeQuery(import_kysely12.sql`select 1`.compile(this.kysely));
|
|
8982
8781
|
});
|
|
8983
8782
|
}
|
|
8984
8783
|
async $disconnect() {
|
|
@@ -9049,7 +8848,7 @@ var ClientImpl = class _ClientImpl {
|
|
|
9049
8848
|
}
|
|
9050
8849
|
$executeRaw(query, ...values) {
|
|
9051
8850
|
return createZenStackPromise(async () => {
|
|
9052
|
-
const result = await (0,
|
|
8851
|
+
const result = await (0, import_kysely12.sql)(query, ...values).execute(this.kysely);
|
|
9053
8852
|
return Number(result.numAffectedRows ?? 0);
|
|
9054
8853
|
});
|
|
9055
8854
|
}
|
|
@@ -9062,7 +8861,7 @@ var ClientImpl = class _ClientImpl {
|
|
|
9062
8861
|
}
|
|
9063
8862
|
$queryRaw(query, ...values) {
|
|
9064
8863
|
return createZenStackPromise(async () => {
|
|
9065
|
-
const result = await (0,
|
|
8864
|
+
const result = await (0, import_kysely12.sql)(query, ...values).execute(this.kysely);
|
|
9066
8865
|
return result.rows;
|
|
9067
8866
|
});
|
|
9068
8867
|
}
|
|
@@ -9074,7 +8873,7 @@ var ClientImpl = class _ClientImpl {
|
|
|
9074
8873
|
});
|
|
9075
8874
|
}
|
|
9076
8875
|
createRawCompiledQuery(query, values) {
|
|
9077
|
-
const q =
|
|
8876
|
+
const q = import_kysely12.CompiledQuery.raw(query, values);
|
|
9078
8877
|
return {
|
|
9079
8878
|
...q,
|
|
9080
8879
|
$raw: true
|
|
@@ -9253,7 +9052,7 @@ function createModelCrudHandler(client, model, inputValidator, resultProcessor)
|
|
|
9253
9052
|
};
|
|
9254
9053
|
const slicing = client.$options.slicing;
|
|
9255
9054
|
if (slicing?.models) {
|
|
9256
|
-
const modelSlicing = slicing.models[model];
|
|
9055
|
+
const modelSlicing = slicing.models[(0, import_common_helpers14.lowerCaseFirst)(model)];
|
|
9257
9056
|
const allSlicing = slicing.models.$all;
|
|
9258
9057
|
const includedOperations = modelSlicing?.includedOperations ?? allSlicing?.includedOperations;
|
|
9259
9058
|
const excludedOperations = modelSlicing?.excludedOperations ?? allSlicing?.excludedOperations;
|
|
@@ -9285,8 +9084,8 @@ var kysely_utils_exports = {};
|
|
|
9285
9084
|
__export(kysely_utils_exports, {
|
|
9286
9085
|
DefaultOperationNodeVisitor: () => DefaultOperationNodeVisitor
|
|
9287
9086
|
});
|
|
9288
|
-
var
|
|
9289
|
-
var DefaultOperationNodeVisitor = class extends
|
|
9087
|
+
var import_kysely13 = require("kysely");
|
|
9088
|
+
var DefaultOperationNodeVisitor = class extends import_kysely13.OperationNodeVisitor {
|
|
9290
9089
|
static {
|
|
9291
9090
|
__name(this, "DefaultOperationNodeVisitor");
|
|
9292
9091
|
}
|
|
@@ -9724,6 +9523,7 @@ var MatchingExpressionVisitor = class extends ExpressionVisitor {
|
|
|
9724
9523
|
SchemaUtils,
|
|
9725
9524
|
TransactionIsolationLevel,
|
|
9726
9525
|
ZenStackClient,
|
|
9526
|
+
createQuerySchemaFactory,
|
|
9727
9527
|
definePlugin,
|
|
9728
9528
|
getCrudDialect
|
|
9729
9529
|
});
|