prisma-guard 1.32.0 → 1.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime/index.cjs +45 -19
- package/dist/runtime/index.cjs.map +1 -1
- package/dist/runtime/index.js +45 -19
- package/dist/runtime/index.js.map +1 -1
- package/package.json +1 -1
package/dist/runtime/index.js
CHANGED
|
@@ -1486,12 +1486,15 @@ function applyForcedCountWhere(container, forcedCountWhere) {
|
|
|
1486
1486
|
}
|
|
1487
1487
|
function resolvedWhereCoversConstraint(where, constraint) {
|
|
1488
1488
|
if (constraint.fields.length === 1) {
|
|
1489
|
-
|
|
1489
|
+
const value2 = where[constraint.fields[0]];
|
|
1490
|
+
return value2 !== null && value2 !== void 0;
|
|
1490
1491
|
}
|
|
1491
1492
|
const value = where[constraint.selector];
|
|
1492
1493
|
if (!isPlainObject(value))
|
|
1493
1494
|
return false;
|
|
1494
|
-
return constraint.fields.every(
|
|
1495
|
+
return constraint.fields.every(
|
|
1496
|
+
(field) => value[field] !== null && value[field] !== void 0
|
|
1497
|
+
);
|
|
1495
1498
|
}
|
|
1496
1499
|
function validateResolvedUniqueWhere(model, where, method, uniqueMap) {
|
|
1497
1500
|
const constraints = uniqueMap[model];
|
|
@@ -1518,17 +1521,16 @@ function assertDirectUniqueShapeValue(model, field, value, typeMap) {
|
|
|
1518
1521
|
);
|
|
1519
1522
|
}
|
|
1520
1523
|
}
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
const keys = Object.keys(value);
|
|
1524
|
+
const actual = isForcedValue(value) ? value.value : value;
|
|
1525
|
+
if (isPlainObject(actual)) {
|
|
1526
|
+
const keys = Object.keys(actual);
|
|
1525
1527
|
throw new ShapeError(
|
|
1526
1528
|
`Invalid unique where shape for "${model ?? "unknown"}.${field}". Prisma WhereUniqueInput does not accept filter operator objects${keys.length ? `: ${keys.join(", ")}` : ""}. Use { ${field}: true } in guard shape and { ${field}: value } in request args.`
|
|
1527
1529
|
);
|
|
1528
1530
|
}
|
|
1529
|
-
if (
|
|
1531
|
+
if (actual === null || actual === void 0) {
|
|
1530
1532
|
throw new ShapeError(
|
|
1531
|
-
`Invalid unique where shape for "${model ?? "unknown"}.${field}". Unique fields must use true or a forced value.`
|
|
1533
|
+
`Invalid unique where shape for "${model ?? "unknown"}.${field}". Unique fields must use true or a forced non-null value.`
|
|
1532
1534
|
);
|
|
1533
1535
|
}
|
|
1534
1536
|
}
|
|
@@ -1542,9 +1544,8 @@ function shapeCoversConstraint(where, constraint, model, typeMap) {
|
|
|
1542
1544
|
}
|
|
1543
1545
|
if (!(constraint.selector in where))
|
|
1544
1546
|
return false;
|
|
1545
|
-
const
|
|
1546
|
-
|
|
1547
|
-
return true;
|
|
1547
|
+
const rawSelectorValue = where[constraint.selector];
|
|
1548
|
+
const selectorValue = isForcedValue(rawSelectorValue) ? rawSelectorValue.value : rawSelectorValue;
|
|
1548
1549
|
if (!isPlainObject(selectorValue)) {
|
|
1549
1550
|
throw new ShapeError(
|
|
1550
1551
|
`Compound unique selector "${model}.${constraint.selector}" must be an object with fields: ${constraint.fields.join(", ")}`
|
|
@@ -2047,8 +2048,18 @@ function createWhereBuilder(typeMap, enumMap, scalarBase, uniqueMap = {}) {
|
|
|
2047
2048
|
(constraint) => constraint.selector === selector
|
|
2048
2049
|
) ?? null;
|
|
2049
2050
|
}
|
|
2050
|
-
function
|
|
2051
|
+
function buildUniqueWhereFieldSchema(fieldMeta, allowNullableFilter) {
|
|
2051
2052
|
const schema = buildDirectScalarSchema(fieldMeta, enumMap, scalarBase);
|
|
2053
|
+
if (allowNullableFilter && !fieldMeta.isRequired) {
|
|
2054
|
+
return schema.nullable();
|
|
2055
|
+
}
|
|
2056
|
+
return schema;
|
|
2057
|
+
}
|
|
2058
|
+
function parseForcedUniqueValue(model, fieldName, fieldMeta, value, allowNullableFilter) {
|
|
2059
|
+
const schema = buildUniqueWhereFieldSchema(
|
|
2060
|
+
fieldMeta,
|
|
2061
|
+
allowNullableFilter
|
|
2062
|
+
);
|
|
2052
2063
|
const actual = isForcedValue(value) ? value.value : value;
|
|
2053
2064
|
try {
|
|
2054
2065
|
return schema.parse(actual);
|
|
@@ -2126,10 +2137,9 @@ function createWhereBuilder(typeMap, enumMap, scalarBase, uniqueMap = {}) {
|
|
|
2126
2137
|
`Invalid compound unique where shape for "${model}.${key}.${fieldName}". Prisma compound unique selectors do not accept filter operator objects${operators.length ? `: ${operators.join(", ")}` : ""}. Use direct values only.`
|
|
2127
2138
|
);
|
|
2128
2139
|
}
|
|
2129
|
-
const directSchema2 =
|
|
2140
|
+
const directSchema2 = buildUniqueWhereFieldSchema(
|
|
2130
2141
|
fieldMeta2,
|
|
2131
|
-
|
|
2132
|
-
scalarBase
|
|
2142
|
+
false
|
|
2133
2143
|
);
|
|
2134
2144
|
if (fieldValue === true) {
|
|
2135
2145
|
nestedSchemas[fieldName] = directSchema2;
|
|
@@ -2138,7 +2148,8 @@ function createWhereBuilder(typeMap, enumMap, scalarBase, uniqueMap = {}) {
|
|
|
2138
2148
|
model,
|
|
2139
2149
|
fieldName,
|
|
2140
2150
|
fieldMeta2,
|
|
2141
|
-
fieldValue
|
|
2151
|
+
fieldValue,
|
|
2152
|
+
false
|
|
2142
2153
|
);
|
|
2143
2154
|
}
|
|
2144
2155
|
}
|
|
@@ -2177,7 +2188,7 @@ function createWhereBuilder(typeMap, enumMap, scalarBase, uniqueMap = {}) {
|
|
|
2177
2188
|
`Invalid unique where shape for "${model}.${key}". Prisma WhereUniqueInput does not accept operators: ${keys.join(", ")}. Use a direct unique value shape, for example { ${key}: true }.`
|
|
2178
2189
|
);
|
|
2179
2190
|
}
|
|
2180
|
-
const directSchema =
|
|
2191
|
+
const directSchema = buildUniqueWhereFieldSchema(fieldMeta, true);
|
|
2181
2192
|
if (value === true) {
|
|
2182
2193
|
fieldSchemas[key] = directSchema;
|
|
2183
2194
|
continue;
|
|
@@ -2186,7 +2197,8 @@ function createWhereBuilder(typeMap, enumMap, scalarBase, uniqueMap = {}) {
|
|
|
2186
2197
|
model,
|
|
2187
2198
|
key,
|
|
2188
2199
|
fieldMeta,
|
|
2189
|
-
value
|
|
2200
|
+
value,
|
|
2201
|
+
true
|
|
2190
2202
|
);
|
|
2191
2203
|
forcedOnlyKeys.add(key);
|
|
2192
2204
|
}
|
|
@@ -3539,7 +3551,21 @@ function createQueryBuilder(typeMap, enumMap, uniqueMap, scalarBase) {
|
|
|
3539
3551
|
built = builtCache.get(resolution.key);
|
|
3540
3552
|
}
|
|
3541
3553
|
}
|
|
3542
|
-
|
|
3554
|
+
const result = applyBuiltShape(
|
|
3555
|
+
built,
|
|
3556
|
+
normalizedBody,
|
|
3557
|
+
isUnique,
|
|
3558
|
+
model
|
|
3559
|
+
);
|
|
3560
|
+
if (isUnique && result.where) {
|
|
3561
|
+
validateResolvedUniqueWhere(
|
|
3562
|
+
model,
|
|
3563
|
+
result.where,
|
|
3564
|
+
method,
|
|
3565
|
+
uniqueMap
|
|
3566
|
+
);
|
|
3567
|
+
}
|
|
3568
|
+
return result;
|
|
3543
3569
|
}
|
|
3544
3570
|
};
|
|
3545
3571
|
}
|