@zenstackhq/runtime 2.4.0 → 2.5.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.
Files changed (139) hide show
  1. package/browser/index.js +3 -2
  2. package/browser/index.js.map +1 -1
  3. package/browser/index.mjs +3 -2
  4. package/browser/index.mjs.map +1 -1
  5. package/constants.d.ts +1 -1
  6. package/constants.js +1 -1
  7. package/constants.js.map +1 -1
  8. package/edge.d.ts +1 -7
  9. package/edge.js +1 -7
  10. package/edge.js.map +1 -1
  11. package/enhance-edge.d.ts +1 -0
  12. package/enhance-edge.js +10 -0
  13. package/enhancements/edge/create-enhancement.d.ts +37 -0
  14. package/enhancements/{create-enhancement.js → edge/create-enhancement.js} +2 -2
  15. package/enhancements/edge/create-enhancement.js.map +1 -0
  16. package/enhancements/{default-auth.d.ts → edge/default-auth.d.ts} +2 -1
  17. package/enhancements/{default-auth.js → edge/default-auth.js} +1 -1
  18. package/enhancements/edge/default-auth.js.map +1 -0
  19. package/enhancements/{delegate.d.ts → edge/delegate.d.ts} +1 -1
  20. package/enhancements/{delegate.js → edge/delegate.js} +16 -3
  21. package/enhancements/edge/delegate.js.map +1 -0
  22. package/enhancements/{index.d.ts → edge/index.d.ts} +1 -1
  23. package/enhancements/{index.js → edge/index.js} +1 -1
  24. package/enhancements/edge/index.js.map +1 -0
  25. package/enhancements/edge/logger.js.map +1 -0
  26. package/enhancements/{omit.js → edge/omit.js} +33 -3
  27. package/enhancements/edge/omit.js.map +1 -0
  28. package/enhancements/{password.js → edge/password.js} +2 -2
  29. package/enhancements/edge/password.js.map +1 -0
  30. package/enhancements/edge/policy/check-utils.d.ts +5 -0
  31. package/enhancements/edge/policy/check-utils.js +20 -0
  32. package/enhancements/edge/policy/check-utils.js.map +1 -0
  33. package/enhancements/{policy → edge/policy}/handler.d.ts +24 -9
  34. package/enhancements/{policy → edge/policy}/handler.js +67 -91
  35. package/enhancements/edge/policy/handler.js.map +1 -0
  36. package/enhancements/{policy → edge/policy}/index.d.ts +2 -1
  37. package/enhancements/{policy → edge/policy}/index.js +2 -2
  38. package/enhancements/edge/policy/index.js.map +1 -0
  39. package/enhancements/{policy → edge/policy}/policy-utils.d.ts +5 -5
  40. package/enhancements/{policy → edge/policy}/policy-utils.js +27 -21
  41. package/enhancements/edge/policy/policy-utils.js.map +1 -0
  42. package/enhancements/{promise.d.ts → edge/promise.d.ts} +1 -1
  43. package/enhancements/{promise.js → edge/promise.js} +1 -1
  44. package/enhancements/edge/promise.js.map +1 -0
  45. package/enhancements/{proxy.d.ts → edge/proxy.d.ts} +26 -9
  46. package/enhancements/{proxy.js → edge/proxy.js} +31 -7
  47. package/enhancements/edge/proxy.js.map +1 -0
  48. package/enhancements/{query-utils.d.ts → edge/query-utils.d.ts} +2 -2
  49. package/enhancements/{query-utils.js → edge/query-utils.js} +3 -4
  50. package/enhancements/edge/query-utils.js.map +1 -0
  51. package/enhancements/{types.d.ts → edge/types.d.ts} +5 -12
  52. package/enhancements/{types.js.map → edge/types.js.map} +1 -1
  53. package/enhancements/{utils.d.ts → edge/utils.d.ts} +2 -2
  54. package/enhancements/{utils.js → edge/utils.js} +2 -2
  55. package/enhancements/edge/utils.js.map +1 -0
  56. package/enhancements/{where-visitor.d.ts → edge/where-visitor.d.ts} +1 -1
  57. package/enhancements/{where-visitor.js → edge/where-visitor.js} +1 -1
  58. package/enhancements/edge/where-visitor.js.map +1 -0
  59. package/enhancements/node/create-enhancement.d.ts +37 -0
  60. package/enhancements/node/create-enhancement.js +79 -0
  61. package/enhancements/node/create-enhancement.js.map +1 -0
  62. package/enhancements/node/default-auth.d.ts +8 -0
  63. package/enhancements/node/default-auth.js +129 -0
  64. package/enhancements/node/default-auth.js.map +1 -0
  65. package/enhancements/node/delegate.d.ts +69 -0
  66. package/enhancements/node/delegate.js +1006 -0
  67. package/enhancements/node/delegate.js.map +1 -0
  68. package/enhancements/node/index.d.ts +4 -0
  69. package/enhancements/node/index.js +21 -0
  70. package/enhancements/node/index.js.map +1 -0
  71. package/enhancements/node/logger.d.ts +29 -0
  72. package/enhancements/node/logger.js +65 -0
  73. package/enhancements/node/logger.js.map +1 -0
  74. package/enhancements/node/omit.d.ts +7 -0
  75. package/enhancements/node/omit.js +93 -0
  76. package/enhancements/node/omit.js.map +1 -0
  77. package/enhancements/node/password.d.ts +7 -0
  78. package/enhancements/node/password.js +65 -0
  79. package/enhancements/node/password.js.map +1 -0
  80. package/enhancements/node/policy/check-utils.d.ts +5 -0
  81. package/enhancements/node/policy/check-utils.js +87 -0
  82. package/enhancements/node/policy/check-utils.js.map +1 -0
  83. package/enhancements/node/policy/constraint-solver.js.map +1 -0
  84. package/enhancements/node/policy/handler.d.ts +94 -0
  85. package/enhancements/node/policy/handler.js +1357 -0
  86. package/enhancements/node/policy/handler.js.map +1 -0
  87. package/enhancements/node/policy/index.d.ts +13 -0
  88. package/enhancements/node/policy/index.js +42 -0
  89. package/enhancements/node/policy/index.js.map +1 -0
  90. package/enhancements/node/policy/policy-utils.d.ts +184 -0
  91. package/enhancements/node/policy/policy-utils.js +1296 -0
  92. package/enhancements/node/policy/policy-utils.js.map +1 -0
  93. package/enhancements/node/promise.d.ts +15 -0
  94. package/enhancements/node/promise.js +99 -0
  95. package/enhancements/node/promise.js.map +1 -0
  96. package/enhancements/node/proxy.d.ts +118 -0
  97. package/enhancements/node/proxy.js +267 -0
  98. package/enhancements/node/proxy.js.map +1 -0
  99. package/enhancements/node/query-utils.d.ts +38 -0
  100. package/enhancements/node/query-utils.js +185 -0
  101. package/enhancements/node/query-utils.js.map +1 -0
  102. package/enhancements/node/types.d.ts +224 -0
  103. package/enhancements/node/types.js +3 -0
  104. package/enhancements/node/types.js.map +1 -0
  105. package/enhancements/node/utils.d.ts +11 -0
  106. package/enhancements/node/utils.js +49 -0
  107. package/enhancements/node/utils.js.map +1 -0
  108. package/enhancements/node/where-visitor.d.ts +32 -0
  109. package/enhancements/node/where-visitor.js +86 -0
  110. package/enhancements/node/where-visitor.js.map +1 -0
  111. package/index.d.ts +2 -2
  112. package/index.js +2 -2
  113. package/index.js.map +1 -1
  114. package/package.json +14 -6
  115. package/types.d.ts +62 -0
  116. package/enhancements/create-enhancement.d.ts +0 -78
  117. package/enhancements/create-enhancement.js.map +0 -1
  118. package/enhancements/default-auth.js.map +0 -1
  119. package/enhancements/delegate.js.map +0 -1
  120. package/enhancements/index.js.map +0 -1
  121. package/enhancements/logger.js.map +0 -1
  122. package/enhancements/omit.js.map +0 -1
  123. package/enhancements/password.js.map +0 -1
  124. package/enhancements/policy/constraint-solver.js.map +0 -1
  125. package/enhancements/policy/handler.js.map +0 -1
  126. package/enhancements/policy/index.js.map +0 -1
  127. package/enhancements/policy/policy-utils.js.map +0 -1
  128. package/enhancements/promise.js.map +0 -1
  129. package/enhancements/proxy.js.map +0 -1
  130. package/enhancements/query-utils.js.map +0 -1
  131. package/enhancements/utils.js.map +0 -1
  132. package/enhancements/where-visitor.js.map +0 -1
  133. /package/enhancements/{logger.d.ts → edge/logger.d.ts} +0 -0
  134. /package/enhancements/{logger.js → edge/logger.js} +0 -0
  135. /package/enhancements/{omit.d.ts → edge/omit.d.ts} +0 -0
  136. /package/enhancements/{password.d.ts → edge/password.d.ts} +0 -0
  137. /package/enhancements/{types.js → edge/types.js} +0 -0
  138. /package/enhancements/{policy → node/policy}/constraint-solver.d.ts +0 -0
  139. /package/enhancements/{policy → node/policy}/constraint-solver.js +0 -0
@@ -28,16 +28,15 @@ exports.PolicyProxyHandler = void 0;
28
28
  const deepmerge_1 = __importDefault(require("deepmerge"));
29
29
  const lower_case_first_1 = require("lower-case-first");
30
30
  const tiny_invariant_1 = __importDefault(require("tiny-invariant"));
31
- const ts_pattern_1 = require("ts-pattern");
32
31
  const upper_case_first_1 = require("upper-case-first");
33
32
  const zod_validation_error_1 = require("zod-validation-error");
34
- const constants_1 = require("../../constants");
35
- const cross_1 = require("../../cross");
33
+ const constants_1 = require("../../../constants");
34
+ const cross_1 = require("../../../cross");
36
35
  const logger_1 = require("../logger");
37
36
  const promise_1 = require("../promise");
38
37
  const query_utils_1 = require("../query-utils");
39
38
  const utils_1 = require("../utils");
40
- const constraint_solver_1 = require("./constraint-solver");
39
+ const check_utils_1 = require("./check-utils");
41
40
  const policy_utils_1 = require("./policy-utils");
42
41
  /**
43
42
  * Prisma proxy handler for injecting access policy check.
@@ -1207,17 +1206,15 @@ class PolicyProxyHandler {
1207
1206
  });
1208
1207
  }
1209
1208
  //#endregion
1210
- //#region Subscribe (Prisma Pulse)
1209
+ //#region Prisma Pulse
1211
1210
  subscribe(args) {
1212
- return (0, promise_1.createDeferredPromise)(() => {
1213
- const readGuard = this.policyUtils.getAuthGuard(this.prisma, this.model, 'read');
1214
- if (this.policyUtils.isTrue(readGuard)) {
1215
- // no need to inject
1216
- if (this.shouldLogQuery) {
1217
- this.logger.info(`[policy] \`subscribe\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
1218
- }
1219
- return this.modelClient.subscribe(args);
1220
- }
1211
+ return this.handleSubscribeStream('subscribe', args);
1212
+ }
1213
+ stream(args) {
1214
+ return this.handleSubscribeStream('stream', args);
1215
+ }
1216
+ handleSubscribeStream(action, args) {
1217
+ return __awaiter(this, void 0, void 0, function* () {
1221
1218
  if (!args) {
1222
1219
  // include all
1223
1220
  args = { create: {}, update: {}, delete: {} };
@@ -1226,28 +1223,67 @@ class PolicyProxyHandler {
1226
1223
  if (typeof args !== 'object') {
1227
1224
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, 'argument must be an object');
1228
1225
  }
1229
- if (Object.keys(args).length === 0) {
1230
- // include all
1231
- args = { create: {}, update: {}, delete: {} };
1226
+ args = this.policyUtils.safeClone(args);
1227
+ }
1228
+ // inject read guard as subscription filter
1229
+ for (const key of ['create', 'update', 'delete']) {
1230
+ if (args[key] === undefined) {
1231
+ continue;
1232
+ }
1233
+ // "update" has an extra layer of "after"
1234
+ const payload = key === 'update' ? args[key].after : args[key];
1235
+ const toInject = { where: payload };
1236
+ this.policyUtils.injectForRead(this.prisma, this.model, toInject);
1237
+ if (key === 'update') {
1238
+ // "update" has an extra layer of "after"
1239
+ args[key].after = toInject.where;
1232
1240
  }
1233
1241
  else {
1234
- args = this.policyUtils.safeClone(args);
1242
+ args[key] = toInject.where;
1235
1243
  }
1236
1244
  }
1237
- // inject into subscribe conditions
1238
- if (args.create) {
1239
- args.create.after = this.policyUtils.and(args.create.after, readGuard);
1240
- }
1241
- if (args.update) {
1242
- args.update.after = this.policyUtils.and(args.update.after, readGuard);
1243
- }
1244
- if (args.delete) {
1245
- args.delete.before = this.policyUtils.and(args.delete.before, readGuard);
1246
- }
1247
1245
  if (this.shouldLogQuery) {
1248
- this.logger.info(`[policy] \`subscribe\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
1246
+ this.logger.info(`[policy] \`${action}\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
1249
1247
  }
1250
- return this.modelClient.subscribe(args);
1248
+ // Prisma Pulse returns an async iterable, which we need to wrap
1249
+ // and post-process the iteration results
1250
+ const iterable = yield this.modelClient[action](args);
1251
+ return {
1252
+ [Symbol.asyncIterator]: () => {
1253
+ const iter = iterable[Symbol.asyncIterator].bind(iterable)();
1254
+ return {
1255
+ next: () => __awaiter(this, void 0, void 0, function* () {
1256
+ const { done, value } = yield iter.next();
1257
+ let processedValue = value;
1258
+ if (value && 'action' in value) {
1259
+ switch (value.action) {
1260
+ case 'create':
1261
+ if ('created' in value) {
1262
+ processedValue = Object.assign(Object.assign({}, value), { created: this.policyUtils.postProcessForRead(value.created, this.model, {}) });
1263
+ }
1264
+ break;
1265
+ case 'update':
1266
+ if ('before' in value) {
1267
+ processedValue = Object.assign(Object.assign({}, value), { before: this.policyUtils.postProcessForRead(value.before, this.model, {}) });
1268
+ }
1269
+ if ('after' in value) {
1270
+ processedValue = Object.assign(Object.assign({}, value), { after: this.policyUtils.postProcessForRead(value.after, this.model, {}) });
1271
+ }
1272
+ break;
1273
+ case 'delete':
1274
+ if ('deleted' in value) {
1275
+ processedValue = Object.assign(Object.assign({}, value), { deleted: this.policyUtils.postProcessForRead(value.deleted, this.model, {}) });
1276
+ }
1277
+ break;
1278
+ }
1279
+ }
1280
+ return { done, value: processedValue };
1281
+ }),
1282
+ return: () => { var _a; return (_a = iter.return) === null || _a === void 0 ? void 0 : _a.call(iter); },
1283
+ throw: () => { var _a; return (_a = iter.throw) === null || _a === void 0 ? void 0 : _a.call(iter); },
1284
+ };
1285
+ },
1286
+ };
1251
1287
  });
1252
1288
  }
1253
1289
  //#endregion
@@ -1259,67 +1295,7 @@ class PolicyProxyHandler {
1259
1295
  */
1260
1296
  check(args) {
1261
1297
  return __awaiter(this, void 0, void 0, function* () {
1262
- return (0, promise_1.createDeferredPromise)(() => this.doCheck(args));
1263
- });
1264
- }
1265
- doCheck(args) {
1266
- return __awaiter(this, void 0, void 0, function* () {
1267
- if (!['create', 'read', 'update', 'delete'].includes(args.operation)) {
1268
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Invalid "operation" ${args.operation}`);
1269
- }
1270
- let constraint = this.policyUtils.getCheckerConstraint(this.model, args.operation);
1271
- if (typeof constraint === 'boolean') {
1272
- return constraint;
1273
- }
1274
- if (args.where) {
1275
- // combine runtime filters with generated constraints
1276
- const extraConstraints = [];
1277
- for (const [field, value] of Object.entries(args.where)) {
1278
- if (value === undefined) {
1279
- continue;
1280
- }
1281
- if (value === null) {
1282
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Using "null" as filter value is not supported yet`);
1283
- }
1284
- const fieldInfo = (0, cross_1.requireField)(this.modelMeta, this.model, field);
1285
- // relation and array fields are not supported
1286
- if (fieldInfo.isDataModel || fieldInfo.isArray) {
1287
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Providing filter for field "${field}" is not supported. Only scalar fields are allowed.`);
1288
- }
1289
- // map field type to constraint type
1290
- const fieldType = (0, ts_pattern_1.match)(fieldInfo.type)
1291
- .with(ts_pattern_1.P.union('Int', 'BigInt', 'Float', 'Decimal'), () => 'number')
1292
- .with('String', () => 'string')
1293
- .with('Boolean', () => 'boolean')
1294
- .otherwise(() => {
1295
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Providing filter for field "${field}" is not supported. Only number, string, and boolean fields are allowed.`);
1296
- });
1297
- // check value type
1298
- const valueType = typeof value;
1299
- if (valueType !== 'number' && valueType !== 'string' && valueType !== 'boolean') {
1300
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Invalid value type for field "${field}". Only number, string or boolean is allowed.`);
1301
- }
1302
- if (fieldType !== valueType) {
1303
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Invalid value type for field "${field}". Expected "${fieldType}".`);
1304
- }
1305
- // check number validity
1306
- if (typeof value === 'number' && (!Number.isInteger(value) || value < 0)) {
1307
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, `Invalid value for field "${field}". Only non-negative integers are allowed.`);
1308
- }
1309
- // build a constraint
1310
- extraConstraints.push({
1311
- kind: 'eq',
1312
- left: { kind: 'variable', name: field, type: fieldType },
1313
- right: { kind: 'value', value, type: fieldType },
1314
- });
1315
- }
1316
- if (extraConstraints.length > 0) {
1317
- // combine the constraints
1318
- constraint = { kind: 'and', children: [constraint, ...extraConstraints] };
1319
- }
1320
- }
1321
- // check satisfiability
1322
- return new constraint_solver_1.ConstraintSolver().checkSat(constraint);
1298
+ return (0, check_utils_1.checkPermission)(this.model, args, this.modelMeta, this.policyUtils, this.prisma, this.prismaModule);
1323
1299
  });
1324
1300
  }
1325
1301
  //#endregion
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/enhancements/edge/policy/handler.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import type { EnhancementContext, InternalEnhancementOptions } from '../create-enhancement';
1
+ import { EnhancementContext } from '../../../types';
2
+ import type { InternalEnhancementOptions } from '../create-enhancement';
2
3
  /**
3
4
  * Gets an enhanced Prisma client with access policy check.
4
5
  *
@@ -2,8 +2,8 @@
2
2
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.withPolicy = withPolicy;
5
- const cross_1 = require("../../cross");
6
- const validation_1 = require("../../validation");
5
+ const cross_1 = require("../../../cross");
6
+ const validation_1 = require("../../../validation");
7
7
  const logger_1 = require("../logger");
8
8
  const proxy_1 = require("../proxy");
9
9
  const handler_1 = require("./handler");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/enhancements/edge/policy/index.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAoBvD,gCAyCC;AA3DD,0CAA6C;AAE7C,oDAAmD;AAEnD,sCAAmC;AACnC,oCAAqC;AACrC,uCAA+C;AAE/C;;;;;;;;;GASG;AACH,SAAgB,UAAU,CACtB,MAAgB,EAChB,OAAmC,EACnC,OAA4B;IAE5B,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEtC,wBAAwB;IACxB,MAAM,WAAW,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAClC,IAAI,WAAW,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7D,IACI,CAAC,IAAA,yBAAY,EACT,OAAO,CAAC,IAAI,EACZ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAC9B,EACH,CAAC;YACC,MAAM,IAAI,KAAK,CACX,kDAAkD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACpG,CAAC;QACN,CAAC;QAED,8DAA8D;QAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACzC,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,MAAM,CAAC,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,wBAAwB,CAAC,CAAC;gBAChF,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,OAAO,IAAA,iBAAS,EACZ,MAAM,EACN,SAAS,EACT,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,4BAAkB,CAAC,OAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChG,QAAQ,EACR,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAC5B,CAAC;AACN,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { z, type ZodError } from 'zod';
2
- import { CrudFailureReason } from '../../constants';
3
- import { CrudContract, DbClientContract, PolicyCrudKind, PolicyOperationKind } from '../../types';
4
- import type { EnhancementContext, InternalEnhancementOptions } from '../create-enhancement';
2
+ import { CrudFailureReason } from '../../../constants';
3
+ import { CrudContract, DbClientContract, EnhancementContext, PolicyCrudKind, PolicyOperationKind } from '../../../types';
4
+ import type { InternalEnhancementOptions } from '../create-enhancement';
5
5
  import { QueryUtils } from '../query-utils';
6
6
  import type { EntityChecker, PermissionCheckerFunc } from '../types';
7
7
  /**
@@ -79,7 +79,7 @@ export declare class PolicyUtil extends QueryUtils {
79
79
  * Injects model auth guard as where clause.
80
80
  */
81
81
  injectAuthGuardAsWhere(db: CrudContract, args: any, model: string, operation: PolicyOperationKind): boolean;
82
- private injectReadGuardForRelationFields;
82
+ private buildReadGuardForFields;
83
83
  private injectReadGuardForToManyField;
84
84
  private injectReadGuardForToOneField;
85
85
  /**
@@ -93,7 +93,7 @@ export declare class PolicyUtil extends QueryUtils {
93
93
  /**
94
94
  * Gets unique constraints for the given model.
95
95
  */
96
- getUniqueConstraints(model: string): Record<string, import("../../cross").UniqueConstraint>;
96
+ getUniqueConstraints(model: string): Record<string, import("../../../cross").UniqueConstraint>;
97
97
  private injectNestedReadConditions;
98
98
  /**
99
99
  * Given a model and a unique filter, checks the operation is allowed by policies and field validations.
@@ -15,17 +15,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.PolicyUtil = void 0;
17
17
  const deepmerge_1 = __importDefault(require("deepmerge"));
18
+ const is_plain_object_1 = require("is-plain-object");
18
19
  const lower_case_first_1 = require("lower-case-first");
19
20
  const upper_case_first_1 = require("upper-case-first");
20
21
  const zod_1 = require("zod");
21
22
  const zod_validation_error_1 = require("zod-validation-error");
22
- const constants_1 = require("../../constants");
23
- const cross_1 = require("../../cross");
24
- const version_1 = require("../../version");
23
+ const constants_1 = require("../../../constants");
24
+ const cross_1 = require("../../../cross");
25
+ const version_1 = require("../../../version");
25
26
  const logger_1 = require("../logger");
26
27
  const query_utils_1 = require("../query-utils");
27
28
  const utils_1 = require("../utils");
28
- const is_plain_object_1 = require("is-plain-object");
29
29
  /**
30
30
  * Access policy enforcement utilities
31
31
  */
@@ -410,17 +410,18 @@ class PolicyUtil extends query_utils_1.QueryUtils {
410
410
  }
411
411
  let mergedGuard = guard;
412
412
  if (args.where) {
413
- // inject into relation fields:
413
+ // inject into fields:
414
414
  // to-many: some/none/every
415
415
  // to-one: direct-conditions/is/isNot
416
- mergedGuard = this.injectReadGuardForRelationFields(db, model, args.where, guard);
416
+ // regular fields
417
+ mergedGuard = this.buildReadGuardForFields(db, model, args.where, guard);
417
418
  }
418
419
  args.where = this.and(args.where, mergedGuard);
419
420
  return true;
420
421
  }
421
422
  // Injects guard for relation fields nested in `payload`. The `modelGuard` parameter represents the model-level guard for `model`.
422
423
  // The function returns a modified copy of `modelGuard` with field-level policies combined.
423
- injectReadGuardForRelationFields(db, model, payload, modelGuard) {
424
+ buildReadGuardForFields(db, model, payload, modelGuard) {
424
425
  if (!payload || typeof payload !== 'object' || Object.keys(payload).length === 0) {
425
426
  return modelGuard;
426
427
  }
@@ -453,12 +454,12 @@ class PolicyUtil extends query_utils_1.QueryUtils {
453
454
  injectReadGuardForToManyField(db, fieldInfo, payload) {
454
455
  const guard = this.getAuthGuard(db, fieldInfo.type, 'read');
455
456
  if (payload.some) {
456
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload.some, guard);
457
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload.some, guard);
457
458
  // turn "some" into: { some: { AND: [guard, payload.some] } }
458
459
  payload.some = this.and(payload.some, mergedGuard);
459
460
  }
460
461
  if (payload.none) {
461
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload.none, guard);
462
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload.none, guard);
462
463
  // turn none into: { none: { AND: [guard, payload.none] } }
463
464
  payload.none = this.and(payload.none, mergedGuard);
464
465
  }
@@ -466,7 +467,7 @@ class PolicyUtil extends query_utils_1.QueryUtils {
466
467
  typeof payload.every === 'object' &&
467
468
  // ignore empty every clause
468
469
  Object.keys(payload.every).length > 0) {
469
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload.every, guard);
470
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload.every, guard);
470
471
  // turn "every" into: { none: { AND: [guard, { NOT: payload.every }] } }
471
472
  if (!payload.none) {
472
473
  payload.none = {};
@@ -481,18 +482,18 @@ class PolicyUtil extends query_utils_1.QueryUtils {
481
482
  // is and isNot can be null value
482
483
  if (payload.is !== undefined || payload.isNot !== undefined) {
483
484
  if (payload.is) {
484
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload.is, guard);
485
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload.is, guard);
485
486
  // merge guard with existing "is": { is: { AND: [originalIs, guard] } }
486
487
  payload.is = this.and(payload.is, mergedGuard);
487
488
  }
488
489
  if (payload.isNot) {
489
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload.isNot, guard);
490
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload.isNot, guard);
490
491
  // merge guard with existing "isNot": { isNot: { AND: [originalIsNot, guard] } }
491
492
  payload.isNot = this.and(payload.isNot, mergedGuard);
492
493
  }
493
494
  }
494
495
  else {
495
- const mergedGuard = this.injectReadGuardForRelationFields(db, fieldInfo.type, payload, guard);
496
+ const mergedGuard = this.buildReadGuardForFields(db, fieldInfo.type, payload, guard);
496
497
  // turn direct conditions into: { is: { AND: [ originalConditions, guard ] } }
497
498
  const combined = this.and((0, cross_1.clone)(payload), mergedGuard);
498
499
  Object.keys(payload).forEach((key) => delete payload[key]);
@@ -506,22 +507,27 @@ class PolicyUtil extends query_utils_1.QueryUtils {
506
507
  // make select and include visible to the injection
507
508
  const injected = { select: args.select, include: args.include };
508
509
  if (!this.injectAuthGuardAsWhere(db, injected, model, 'read')) {
510
+ args.where = this.makeFalse();
509
511
  return false;
510
512
  }
511
513
  if (args.where) {
512
- // inject into relation fields:
514
+ // inject into fields:
513
515
  // to-many: some/none/every
514
516
  // to-one: direct-conditions/is/isNot
515
- this.injectReadGuardForRelationFields(db, model, args.where, {});
517
+ // regular fields
518
+ const mergedGuard = this.buildReadGuardForFields(db, model, args.where, {});
519
+ this.mergeWhereClause(args.where, mergedGuard);
516
520
  }
517
- if (injected.where && Object.keys(injected.where).length > 0 && !this.isTrue(injected.where)) {
518
- if (!args.where) {
519
- args.where = injected.where;
520
- }
521
- else {
521
+ if (args.where) {
522
+ if (injected.where && Object.keys(injected.where).length > 0) {
523
+ // merge injected guard with the user-provided where clause
522
524
  this.mergeWhereClause(args.where, injected.where);
523
525
  }
524
526
  }
527
+ else if (injected.where) {
528
+ // no user-provided where clause, use the injected one
529
+ args.where = injected.where;
530
+ }
525
531
  // recursively inject read guard conditions into nested select, include, and _count
526
532
  const hoistedConditions = this.injectNestedReadConditions(db, model, args);
527
533
  // the injection process may generate conditions that need to be hoisted to the toplevel,
@@ -993,7 +999,7 @@ class PolicyUtil extends query_utils_1.QueryUtils {
993
999
  //#endregion
994
1000
  //#region Errors
995
1001
  deniedByPolicy(model, operation, extra, reason, zodErrors) {
996
- const args = { clientVersion: (0, version_1.getVersion)(), code: constants_1.PrismaErrorCode.CONSTRAINED_FAILED, meta: {} };
1002
+ const args = { clientVersion: (0, version_1.getVersion)(), code: constants_1.PrismaErrorCode.CONSTRAINT_FAILED, meta: {} };
997
1003
  if (reason) {
998
1004
  args.meta.reason = reason;
999
1005
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-utils.js","sourceRoot":"","sources":["../../../../src/enhancements/edge/policy/policy-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ModelMeta } from '../cross';
1
+ import { type ModelMeta } from '../../cross';
2
2
  /**
3
3
  * Creates a promise that only executes when it's awaited or .then() is called.
4
4
  * @see https://github.com/prisma/prisma/blob/main/packages/client/src/runtime/core/request/createPrismaPromise.ts