@zenstackhq/runtime 2.16.0 → 3.0.0-alpha.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 (236) hide show
  1. package/LICENSE +1 -1
  2. package/dist/client.cjs +6094 -0
  3. package/dist/client.cjs.map +1 -0
  4. package/dist/client.d.cts +19 -0
  5. package/dist/client.d.ts +19 -0
  6. package/dist/client.js +6060 -0
  7. package/dist/client.js.map +1 -0
  8. package/dist/contract-DguafRNB.d.cts +1272 -0
  9. package/dist/contract-DguafRNB.d.ts +1272 -0
  10. package/dist/index.cjs +6088 -0
  11. package/dist/index.cjs.map +1 -0
  12. package/dist/index.d.cts +14 -0
  13. package/dist/index.d.ts +14 -0
  14. package/dist/index.js +6057 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/plugins/policy.cjs +2343 -0
  17. package/dist/plugins/policy.cjs.map +1 -0
  18. package/dist/plugins/policy.d.cts +24 -0
  19. package/dist/plugins/policy.d.ts +24 -0
  20. package/dist/plugins/policy.js +2307 -0
  21. package/dist/plugins/policy.js.map +1 -0
  22. package/dist/schema.cjs +110 -0
  23. package/dist/schema.cjs.map +1 -0
  24. package/dist/schema.d.cts +29 -0
  25. package/dist/schema.d.ts +29 -0
  26. package/dist/schema.js +85 -0
  27. package/dist/schema.js.map +1 -0
  28. package/dist/utils/pg-utils.cjs +39 -0
  29. package/dist/utils/pg-utils.cjs.map +1 -0
  30. package/dist/utils/pg-utils.d.cts +8 -0
  31. package/dist/utils/pg-utils.d.ts +8 -0
  32. package/dist/utils/pg-utils.js +16 -0
  33. package/dist/utils/pg-utils.js.map +1 -0
  34. package/{browser/index.js → dist/utils/sqlite-utils.cjs} +21 -37
  35. package/dist/utils/sqlite-utils.cjs.map +1 -0
  36. package/dist/utils/sqlite-utils.d.cts +8 -0
  37. package/dist/utils/sqlite-utils.d.ts +8 -0
  38. package/dist/utils/sqlite-utils.js +22 -0
  39. package/dist/utils/sqlite-utils.js.map +1 -0
  40. package/package.json +106 -117
  41. package/README.md +0 -5
  42. package/browser/index.d.mts +0 -13
  43. package/browser/index.d.ts +0 -13
  44. package/browser/index.js.map +0 -1
  45. package/browser/index.mjs +0 -33
  46. package/browser/index.mjs.map +0 -1
  47. package/constants.d.ts +0 -62
  48. package/constants.js +0 -76
  49. package/constants.js.map +0 -1
  50. package/cross/index.d.mts +0 -379
  51. package/cross/index.d.ts +0 -379
  52. package/cross/index.js +0 -923
  53. package/cross/index.js.map +0 -1
  54. package/cross/index.mjs +0 -881
  55. package/cross/index.mjs.map +0 -1
  56. package/edge.d.ts +0 -1
  57. package/edge.js +0 -18
  58. package/edge.js.map +0 -1
  59. package/encryption/index.d.ts +0 -25
  60. package/encryption/index.js +0 -74
  61. package/encryption/index.js.map +0 -1
  62. package/encryption/utils.d.ts +0 -9
  63. package/encryption/utils.js +0 -99
  64. package/encryption/utils.js.map +0 -1
  65. package/enhance-edge.d.ts +0 -1
  66. package/enhance-edge.js +0 -10
  67. package/enhance.d.ts +0 -1
  68. package/enhance.js +0 -10
  69. package/enhancements/edge/create-enhancement.d.ts +0 -42
  70. package/enhancements/edge/create-enhancement.js +0 -102
  71. package/enhancements/edge/create-enhancement.js.map +0 -1
  72. package/enhancements/edge/default-auth.d.ts +0 -8
  73. package/enhancements/edge/default-auth.js +0 -180
  74. package/enhancements/edge/default-auth.js.map +0 -1
  75. package/enhancements/edge/delegate.d.ts +0 -77
  76. package/enhancements/edge/delegate.js +0 -1293
  77. package/enhancements/edge/delegate.js.map +0 -1
  78. package/enhancements/edge/encryption.d.ts +0 -7
  79. package/enhancements/edge/encryption.js +0 -150
  80. package/enhancements/edge/encryption.js.map +0 -1
  81. package/enhancements/edge/index.d.ts +0 -4
  82. package/enhancements/edge/index.js +0 -21
  83. package/enhancements/edge/index.js.map +0 -1
  84. package/enhancements/edge/json-processor.d.ts +0 -7
  85. package/enhancements/edge/json-processor.js +0 -89
  86. package/enhancements/edge/json-processor.js.map +0 -1
  87. package/enhancements/edge/logger.d.ts +0 -29
  88. package/enhancements/edge/logger.js +0 -65
  89. package/enhancements/edge/logger.js.map +0 -1
  90. package/enhancements/edge/omit.d.ts +0 -7
  91. package/enhancements/edge/omit.js +0 -96
  92. package/enhancements/edge/omit.js.map +0 -1
  93. package/enhancements/edge/password.d.ts +0 -7
  94. package/enhancements/edge/password.js +0 -64
  95. package/enhancements/edge/password.js.map +0 -1
  96. package/enhancements/edge/policy/check-utils.d.ts +0 -5
  97. package/enhancements/edge/policy/check-utils.js +0 -20
  98. package/enhancements/edge/policy/check-utils.js.map +0 -1
  99. package/enhancements/edge/policy/handler.d.ts +0 -100
  100. package/enhancements/edge/policy/handler.js +0 -1440
  101. package/enhancements/edge/policy/handler.js.map +0 -1
  102. package/enhancements/edge/policy/index.d.ts +0 -19
  103. package/enhancements/edge/policy/index.js +0 -65
  104. package/enhancements/edge/policy/index.js.map +0 -1
  105. package/enhancements/edge/policy/policy-utils.d.ts +0 -181
  106. package/enhancements/edge/policy/policy-utils.js +0 -1356
  107. package/enhancements/edge/policy/policy-utils.js.map +0 -1
  108. package/enhancements/edge/promise.d.ts +0 -15
  109. package/enhancements/edge/promise.js +0 -99
  110. package/enhancements/edge/promise.js.map +0 -1
  111. package/enhancements/edge/proxy.d.ts +0 -120
  112. package/enhancements/edge/proxy.js +0 -287
  113. package/enhancements/edge/proxy.js.map +0 -1
  114. package/enhancements/edge/query-utils.d.ts +0 -53
  115. package/enhancements/edge/query-utils.js +0 -256
  116. package/enhancements/edge/query-utils.js.map +0 -1
  117. package/enhancements/edge/types.d.ts +0 -238
  118. package/enhancements/edge/types.js +0 -3
  119. package/enhancements/edge/types.js.map +0 -1
  120. package/enhancements/edge/utils.d.ts +0 -11
  121. package/enhancements/edge/utils.js +0 -49
  122. package/enhancements/edge/utils.js.map +0 -1
  123. package/enhancements/edge/where-visitor.d.ts +0 -32
  124. package/enhancements/edge/where-visitor.js +0 -86
  125. package/enhancements/edge/where-visitor.js.map +0 -1
  126. package/enhancements/node/create-enhancement.d.ts +0 -42
  127. package/enhancements/node/create-enhancement.js +0 -102
  128. package/enhancements/node/create-enhancement.js.map +0 -1
  129. package/enhancements/node/default-auth.d.ts +0 -8
  130. package/enhancements/node/default-auth.js +0 -180
  131. package/enhancements/node/default-auth.js.map +0 -1
  132. package/enhancements/node/delegate.d.ts +0 -77
  133. package/enhancements/node/delegate.js +0 -1293
  134. package/enhancements/node/delegate.js.map +0 -1
  135. package/enhancements/node/encryption.d.ts +0 -7
  136. package/enhancements/node/encryption.js +0 -150
  137. package/enhancements/node/encryption.js.map +0 -1
  138. package/enhancements/node/index.d.ts +0 -4
  139. package/enhancements/node/index.js +0 -21
  140. package/enhancements/node/index.js.map +0 -1
  141. package/enhancements/node/json-processor.d.ts +0 -7
  142. package/enhancements/node/json-processor.js +0 -89
  143. package/enhancements/node/json-processor.js.map +0 -1
  144. package/enhancements/node/logger.d.ts +0 -29
  145. package/enhancements/node/logger.js +0 -65
  146. package/enhancements/node/logger.js.map +0 -1
  147. package/enhancements/node/omit.d.ts +0 -7
  148. package/enhancements/node/omit.js +0 -96
  149. package/enhancements/node/omit.js.map +0 -1
  150. package/enhancements/node/password.d.ts +0 -7
  151. package/enhancements/node/password.js +0 -64
  152. package/enhancements/node/password.js.map +0 -1
  153. package/enhancements/node/policy/check-utils.d.ts +0 -5
  154. package/enhancements/node/policy/check-utils.js +0 -87
  155. package/enhancements/node/policy/check-utils.js.map +0 -1
  156. package/enhancements/node/policy/constraint-solver.d.ts +0 -27
  157. package/enhancements/node/policy/constraint-solver.js +0 -164
  158. package/enhancements/node/policy/constraint-solver.js.map +0 -1
  159. package/enhancements/node/policy/handler.d.ts +0 -100
  160. package/enhancements/node/policy/handler.js +0 -1440
  161. package/enhancements/node/policy/handler.js.map +0 -1
  162. package/enhancements/node/policy/index.d.ts +0 -19
  163. package/enhancements/node/policy/index.js +0 -65
  164. package/enhancements/node/policy/index.js.map +0 -1
  165. package/enhancements/node/policy/policy-utils.d.ts +0 -181
  166. package/enhancements/node/policy/policy-utils.js +0 -1356
  167. package/enhancements/node/policy/policy-utils.js.map +0 -1
  168. package/enhancements/node/promise.d.ts +0 -15
  169. package/enhancements/node/promise.js +0 -99
  170. package/enhancements/node/promise.js.map +0 -1
  171. package/enhancements/node/proxy.d.ts +0 -120
  172. package/enhancements/node/proxy.js +0 -287
  173. package/enhancements/node/proxy.js.map +0 -1
  174. package/enhancements/node/query-utils.d.ts +0 -53
  175. package/enhancements/node/query-utils.js +0 -256
  176. package/enhancements/node/query-utils.js.map +0 -1
  177. package/enhancements/node/types.d.ts +0 -238
  178. package/enhancements/node/types.js +0 -3
  179. package/enhancements/node/types.js.map +0 -1
  180. package/enhancements/node/utils.d.ts +0 -11
  181. package/enhancements/node/utils.js +0 -49
  182. package/enhancements/node/utils.js.map +0 -1
  183. package/enhancements/node/where-visitor.d.ts +0 -32
  184. package/enhancements/node/where-visitor.js +0 -86
  185. package/enhancements/node/where-visitor.js.map +0 -1
  186. package/error.d.ts +0 -11
  187. package/error.js +0 -22
  188. package/error.js.map +0 -1
  189. package/index.d.ts +0 -7
  190. package/index.js +0 -24
  191. package/index.js.map +0 -1
  192. package/local-helpers/index.d.ts +0 -6
  193. package/local-helpers/index.js +0 -23
  194. package/local-helpers/index.js.map +0 -1
  195. package/local-helpers/is-plain-object.d.ts +0 -1
  196. package/local-helpers/is-plain-object.js +0 -25
  197. package/local-helpers/is-plain-object.js.map +0 -1
  198. package/local-helpers/lower-case-first.d.ts +0 -1
  199. package/local-helpers/lower-case-first.js +0 -7
  200. package/local-helpers/lower-case-first.js.map +0 -1
  201. package/local-helpers/param-case.d.ts +0 -1
  202. package/local-helpers/param-case.js +0 -20
  203. package/local-helpers/param-case.js.map +0 -1
  204. package/local-helpers/sleep.d.ts +0 -1
  205. package/local-helpers/sleep.js +0 -9
  206. package/local-helpers/sleep.js.map +0 -1
  207. package/local-helpers/tiny-invariant.d.ts +0 -1
  208. package/local-helpers/tiny-invariant.js +0 -15
  209. package/local-helpers/tiny-invariant.js.map +0 -1
  210. package/local-helpers/upper-case-first.d.ts +0 -1
  211. package/local-helpers/upper-case-first.js +0 -7
  212. package/local-helpers/upper-case-first.js.map +0 -1
  213. package/model-meta.d.ts +0 -1
  214. package/model-meta.js +0 -10
  215. package/models.d.ts +0 -1
  216. package/models.js +0 -1
  217. package/types.d.ts +0 -200
  218. package/types.js +0 -4
  219. package/types.js.map +0 -1
  220. package/validation.d.ts +0 -24
  221. package/validation.js +0 -52
  222. package/validation.js.map +0 -1
  223. package/version.d.ts +0 -5
  224. package/version.js +0 -35
  225. package/version.js.map +0 -1
  226. package/zod/index.d.ts +0 -3
  227. package/zod/index.js +0 -5
  228. package/zod/input.d.ts +0 -1
  229. package/zod/input.js +0 -8
  230. package/zod/models.d.ts +0 -1
  231. package/zod/models.js +0 -8
  232. package/zod/objects.d.ts +0 -1
  233. package/zod/objects.js +0 -8
  234. package/zod-utils.d.ts +0 -12
  235. package/zod-utils.js +0 -97
  236. package/zod-utils.js.map +0 -1
@@ -1,86 +0,0 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/explicit-module-boundary-types */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.WhereVisitor = void 0;
15
- const cross_1 = require("../../cross");
16
- const FILTER_OPERATORS = [
17
- 'equals',
18
- 'not',
19
- 'in',
20
- 'notIn',
21
- 'lt',
22
- 'lte',
23
- 'gt',
24
- 'gte',
25
- 'contains',
26
- 'search',
27
- 'startsWith',
28
- 'endsWith',
29
- ];
30
- const RELATION_FILTER_OPERATORS = ['is', 'isNot', 'some', 'every', 'none'];
31
- /**
32
- * Recursive visitor for where payload
33
- */
34
- class WhereVisitor {
35
- constructor(modelMeta, callback) {
36
- this.modelMeta = modelMeta;
37
- this.callback = callback;
38
- }
39
- /**
40
- * Start visiting
41
- */
42
- visit(model, where) {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- var _a, _b, _c, _d;
45
- if (!where) {
46
- return;
47
- }
48
- for (const [k, v] of Object.entries(where)) {
49
- if (['AND', 'OR', 'NOT'].includes(k)) {
50
- for (const item of (0, cross_1.enumerate)(v)) {
51
- yield this.visit(model, item);
52
- }
53
- continue;
54
- }
55
- if (RELATION_FILTER_OPERATORS.includes(k)) {
56
- // visit into filter body
57
- yield this.visit(model, v);
58
- continue;
59
- }
60
- const field = (0, cross_1.resolveField)(this.modelMeta, model, k);
61
- if (!field) {
62
- continue;
63
- }
64
- if (typeof v === 'object') {
65
- const filterOp = Object.keys(v).find((f) => FILTER_OPERATORS.includes(f));
66
- if (filterOp) {
67
- // reach into filter value
68
- const newValue = yield ((_b = (_a = this.callback).field) === null || _b === void 0 ? void 0 : _b.call(_a, field, v[filterOp]));
69
- v[filterOp] = newValue;
70
- continue;
71
- }
72
- if (Object.keys(v).some((f) => RELATION_FILTER_OPERATORS.includes(f))) {
73
- // filter payload
74
- yield this.visit(field.type, v);
75
- continue;
76
- }
77
- }
78
- // scalar field
79
- const newValue = yield ((_d = (_c = this.callback).field) === null || _d === void 0 ? void 0 : _d.call(_c, field, v));
80
- where[k] = newValue;
81
- }
82
- });
83
- }
84
- }
85
- exports.WhereVisitor = WhereVisitor;
86
- //# sourceMappingURL=where-visitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"where-visitor.js","sourceRoot":"","sources":["../../../src/enhancements/edge/where-visitor.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,uDAAuD;;;;;;;;;;;;AAEvD,uCAAsF;AAwBtF,MAAM,gBAAgB,GAAG;IACrB,QAAQ;IACR,KAAK;IACL,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,KAAK;IACL,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,UAAU;CACb,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAa,YAAY;IACrB,YAA6B,SAAoB,EAAmB,QAA8B;QAArE,cAAS,GAAT,SAAS,CAAW;QAAmB,aAAQ,GAAR,QAAQ,CAAsB;IAAG,CAAC;IAEtG;;OAEG;IACG,KAAK,CAAC,KAAa,EAAE,KAAU;;;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO;YACX,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,KAAK,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,CAAC,CAAC,EAAE,CAAC;wBAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBAClC,CAAC;oBACD,SAAS;gBACb,CAAC;gBAED,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,yBAAyB;oBACzB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC3B,SAAS;gBACb,CAAC;gBAED,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,EAAE,CAAC;oBACT,SAAS;gBACb,CAAC;gBAED,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,IAAI,QAAQ,EAAE,CAAC;wBACX,0BAA0B;wBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,KAAK,mDAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC;wBACjE,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;wBACvB,SAAS;oBACb,CAAC;oBAED,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,iBAAiB;wBACjB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBAChC,SAAS;oBACb,CAAC;gBACL,CAAC;gBAED,eAAe;gBACf,MAAM,QAAQ,GAAG,MAAM,CAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,EAAC,KAAK,mDAAG,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC;gBACvD,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACxB,CAAC;QACL,CAAC;KAAA;CACJ;AAnDD,oCAmDC"}
@@ -1,42 +0,0 @@
1
- import { type ModelMeta } from '../../cross';
2
- import type { DbClientContract, EnhancementContext, EnhancementOptions, ZodSchemas } from '../../types';
3
- import type { PolicyDef } from './types';
4
- /**
5
- * Options for {@link createEnhancement}
6
- *
7
- * @private
8
- */
9
- export type InternalEnhancementOptions = EnhancementOptions & {
10
- /**
11
- * Policy definition
12
- */
13
- policy: PolicyDef;
14
- /**
15
- * Model metadata
16
- */
17
- modelMeta: ModelMeta;
18
- /**
19
- * Zod schemas for validation
20
- */
21
- zodSchemas?: ZodSchemas;
22
- /**
23
- * The Node module that contains PrismaClient
24
- */
25
- prismaModule: any;
26
- /**
27
- * A callback shared among enhancements to process the payload for including a relation
28
- * field. e.g.: `{ author: true }`.
29
- */
30
- processIncludeRelationPayload?: (prisma: DbClientContract, model: string, payload: unknown, options: InternalEnhancementOptions, context: EnhancementContext | undefined) => Promise<void>;
31
- };
32
- /**
33
- * Gets a Prisma client enhanced with all enhancement behaviors, including access
34
- * policy, field validation, field omission and password hashing.
35
- *
36
- * @private
37
- *
38
- * @param prisma The Prisma client to enhance.
39
- * @param context Context.
40
- * @param options Options.
41
- */
42
- export declare function createEnhancement<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createEnhancement = createEnhancement;
7
- const semver_1 = __importDefault(require("semver"));
8
- const constants_1 = require("../../constants");
9
- const cross_1 = require("../../cross");
10
- const default_auth_1 = require("./default-auth");
11
- const delegate_1 = require("./delegate");
12
- const encryption_1 = require("./encryption");
13
- const json_processor_1 = require("./json-processor");
14
- const logger_1 = require("./logger");
15
- const omit_1 = require("./omit");
16
- const password_1 = require("./password");
17
- const policy_1 = require("./policy");
18
- /**
19
- * All enhancement kinds
20
- */
21
- const ALL_ENHANCEMENTS = ['password', 'omit', 'policy', 'validation', 'delegate', 'encryption'];
22
- /**
23
- * Gets a Prisma client enhanced with all enhancement behaviors, including access
24
- * policy, field validation, field omission and password hashing.
25
- *
26
- * @private
27
- *
28
- * @param prisma The Prisma client to enhance.
29
- * @param context Context.
30
- * @param options Options.
31
- */
32
- function createEnhancement(prisma, options, context) {
33
- var _a;
34
- if (!prisma) {
35
- throw new Error('Invalid prisma instance');
36
- }
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- const prismaVer = prisma._clientVersion;
39
- if (prismaVer && semver_1.default.lt(prismaVer, constants_1.PRISMA_MINIMUM_VERSION)) {
40
- console.warn(`ZenStack requires Prisma version "${constants_1.PRISMA_MINIMUM_VERSION}" or higher. Detected version is "${prismaVer}".`);
41
- }
42
- // TODO: move the detection logic into each enhancement
43
- // TODO: how to properly cache the detection result?
44
- const allFields = Object.values(options.modelMeta.models).flatMap((modelInfo) => Object.values(modelInfo.fields));
45
- if (options.modelMeta.typeDefs) {
46
- allFields.push(...Object.values(options.modelMeta.typeDefs).flatMap((typeDefInfo) => Object.values(typeDefInfo.fields)));
47
- }
48
- const hasPassword = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@password'); });
49
- const hasEncrypted = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@encrypted'); });
50
- const hasOmit = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@omit'); });
51
- const hasDefaultAuth = allFields.some((field) => field.defaultValueProvider);
52
- const hasTypeDefField = allFields.some((field) => field.isTypeDef);
53
- const kinds = (_a = options.kinds) !== null && _a !== void 0 ? _a : ALL_ENHANCEMENTS;
54
- let result = prisma;
55
- // delegate proxy needs to be wrapped inside policy proxy, since it may translate `deleteMany`
56
- // and `updateMany` to plain `delete` and `update`
57
- if (Object.values(options.modelMeta.models).some((model) => (0, cross_1.isDelegateModel)(options.modelMeta, model.name))) {
58
- if (!kinds.includes('delegate')) {
59
- const logger = new logger_1.Logger(prisma);
60
- logger.warn('Your ZModel contains delegate models but "delegate" enhancement kind is not enabled. This may result in unexpected behavior.');
61
- }
62
- else {
63
- result = (0, delegate_1.withDelegate)(result, options, context);
64
- }
65
- }
66
- // password and encrypted enhancement must be applied prior to policy because it changes then length of the field
67
- // and can break validation rules like `@length`
68
- if (hasPassword && kinds.includes('password')) {
69
- // @password proxy
70
- result = (0, password_1.withPassword)(result, options);
71
- }
72
- if (hasEncrypted && kinds.includes('encryption')) {
73
- if (!options.encryption) {
74
- throw new Error('Encryption options are required for @encrypted enhancement');
75
- }
76
- // @encrypted proxy
77
- result = (0, encryption_1.withEncrypted)(result, options);
78
- }
79
- // 'policy' and 'validation' enhancements are both enabled by `withPolicy`
80
- if (kinds.includes('policy') || kinds.includes('validation')) {
81
- result = (0, policy_1.withPolicy)(result, options, context);
82
- // if any enhancement is to introduce an inclusion of a relation field, the
83
- // inclusion payload must be processed by the policy enhancement for injecting
84
- // access control rules
85
- // TODO: this is currently a global callback shared among all enhancements, which
86
- // is far from ideal
87
- options.processIncludeRelationPayload = policy_1.policyProcessIncludeRelationPayload;
88
- if (kinds.includes('policy') && hasDefaultAuth) {
89
- // @default(auth()) proxy
90
- result = (0, default_auth_1.withDefaultAuth)(result, options, context);
91
- }
92
- }
93
- if (hasOmit && kinds.includes('omit')) {
94
- // @omit proxy
95
- result = (0, omit_1.withOmit)(result, options);
96
- }
97
- if (hasTypeDefField) {
98
- result = (0, json_processor_1.withJsonProcessor)(result, options);
99
- }
100
- return result;
101
- }
102
- //# sourceMappingURL=create-enhancement.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/node/create-enhancement.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { EnhancementContext } from '../../types';
2
- import { InternalEnhancementOptions } from './create-enhancement';
3
- /**
4
- * Gets an enhanced Prisma client that supports `@default(auth())` attribute.
5
- *
6
- * @private
7
- */
8
- export declare function withDefaultAuth<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
@@ -1,180 +0,0 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/no-unused-vars */
3
- /* eslint-disable @typescript-eslint/no-explicit-any */
4
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
5
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
6
- return new (P || (P = Promise))(function (resolve, reject) {
7
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
8
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
9
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
10
- step((generator = generator.apply(thisArg, _arguments || [])).next());
11
- });
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.withDefaultAuth = withDefaultAuth;
15
- const constants_1 = require("../../constants");
16
- const cross_1 = require("../../cross");
17
- const proxy_1 = require("./proxy");
18
- const utils_1 = require("./utils");
19
- /**
20
- * Gets an enhanced Prisma client that supports `@default(auth())` attribute.
21
- *
22
- * @private
23
- */
24
- function withDefaultAuth(prisma, options, context = {}) {
25
- return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DefaultAuthHandler(_prisma, model, options, context), 'defaultAuth');
26
- }
27
- class DefaultAuthHandler extends proxy_1.DefaultPrismaProxyHandler {
28
- constructor(prisma, model, options, context) {
29
- super(prisma, model, options);
30
- this.context = context;
31
- this.userContext = this.context.user;
32
- }
33
- // base override
34
- preprocessArgs(action, args) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- if (args && constants_1.ACTIONS_WITH_WRITE_PAYLOAD.includes(action)) {
37
- const newArgs = yield this.preprocessWritePayload(this.model, action, args);
38
- return newArgs;
39
- }
40
- return args;
41
- });
42
- }
43
- preprocessWritePayload(model, action, args) {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- const newArgs = (0, cross_1.clone)(args);
46
- const processCreatePayload = (model, data, context) => {
47
- const fields = (0, cross_1.getFields)(this.options.modelMeta, model);
48
- for (const fieldInfo of Object.values(fields)) {
49
- if (fieldInfo.isTypeDef) {
50
- this.setDefaultValueForTypeDefData(fieldInfo.type, data[fieldInfo.name]);
51
- continue;
52
- }
53
- if (fieldInfo.name in data) {
54
- // create payload already sets field value
55
- continue;
56
- }
57
- if (!fieldInfo.defaultValueProvider) {
58
- // field doesn't have a runtime default value provider
59
- continue;
60
- }
61
- const defaultValue = this.getDefaultValue(fieldInfo);
62
- if (defaultValue !== undefined) {
63
- // set field value extracted from `auth()`
64
- this.setDefaultValueForModelData(fieldInfo, model, data, defaultValue, context);
65
- }
66
- }
67
- };
68
- // visit create payload and set default value to fields using `auth()` in `@default()`
69
- const visitor = new cross_1.NestedWriteVisitor(this.options.modelMeta, {
70
- create: (model, data, context) => {
71
- processCreatePayload(model, data, context);
72
- },
73
- upsert: (model, data, context) => {
74
- processCreatePayload(model, data.create, context);
75
- },
76
- createMany: (model, args, context) => {
77
- for (const item of (0, cross_1.enumerate)(args.data)) {
78
- processCreatePayload(model, item, context);
79
- }
80
- },
81
- });
82
- yield visitor.visit(model, action, newArgs);
83
- return newArgs;
84
- });
85
- }
86
- setDefaultValueForModelData(fieldInfo, model, data, authDefaultValue, context) {
87
- var _a, _b;
88
- if (fieldInfo.isForeignKey) {
89
- // if the field being inspected is a fk field, there are several cases we should not
90
- // set the default value or should not set directly
91
- // if the field is a fk, and the relation field is already set, we should not override it
92
- if (fieldInfo.relationField && fieldInfo.relationField in data) {
93
- return;
94
- }
95
- if ((_a = context.field) === null || _a === void 0 ? void 0 : _a.backLink) {
96
- // if the fk field is in a creation context where its implied by the parent,
97
- // we should not set the default value, e.g.:
98
- //
99
- // ```
100
- // parent.create({ data: { child: { create: {} } } })
101
- // ```
102
- //
103
- // even if child's fk to parent has a default value, we should not set default
104
- // value here
105
- // get the opposite side of the relation for the current create context
106
- const oppositeRelationField = (0, cross_1.requireField)(this.options.modelMeta, model, context.field.backLink);
107
- if (oppositeRelationField.foreignKeyMapping &&
108
- Object.values(oppositeRelationField.foreignKeyMapping).includes(fieldInfo.name)) {
109
- return;
110
- }
111
- }
112
- if (!(0, utils_1.isUnsafeMutate)(model, data, this.options.modelMeta)) {
113
- // if the field is a fk, and the create payload is not unsafe, we need to translate
114
- // the fk field setting to a `connect` of the corresponding relation field
115
- const relFieldName = fieldInfo.relationField;
116
- if (!relFieldName) {
117
- throw new Error(`Field \`${fieldInfo.name}\` is a foreign key field but no corresponding relation field is found`);
118
- }
119
- const relationField = (0, cross_1.requireField)(this.options.modelMeta, model, relFieldName);
120
- // construct a `{ connect: { ... } }` payload
121
- let connect = (_b = data[relationField.name]) === null || _b === void 0 ? void 0 : _b.connect;
122
- if (!connect) {
123
- connect = {};
124
- data[relationField.name] = { connect };
125
- }
126
- // sets the opposite fk field to value `authDefaultValue`
127
- const oppositeFkFieldName = this.getOppositeFkFieldName(relationField, fieldInfo);
128
- if (!oppositeFkFieldName) {
129
- throw new Error(`Cannot find opposite foreign key field for \`${fieldInfo.name}\` in relation field \`${relFieldName}\``);
130
- }
131
- connect[oppositeFkFieldName] = authDefaultValue;
132
- return;
133
- }
134
- }
135
- // set default value directly
136
- data[fieldInfo.name] = authDefaultValue;
137
- }
138
- getOppositeFkFieldName(relationField, fieldInfo) {
139
- if (!relationField.foreignKeyMapping) {
140
- return undefined;
141
- }
142
- const entry = Object.entries(relationField.foreignKeyMapping).find(([, v]) => v === fieldInfo.name);
143
- return entry === null || entry === void 0 ? void 0 : entry[0];
144
- }
145
- getDefaultValue(fieldInfo) {
146
- var _a;
147
- if (!this.userContext) {
148
- throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Evaluating default value of field \`${fieldInfo.name}\` requires a user context`);
149
- }
150
- return (_a = fieldInfo.defaultValueProvider) === null || _a === void 0 ? void 0 : _a.call(fieldInfo, this.userContext);
151
- }
152
- setDefaultValueForTypeDefData(type, data) {
153
- if (!data || (typeof data !== 'object' && !Array.isArray(data))) {
154
- return;
155
- }
156
- const typeDef = (0, cross_1.getTypeDefInfo)(this.options.modelMeta, type);
157
- if (!typeDef) {
158
- return;
159
- }
160
- (0, cross_1.enumerate)(data).forEach((item) => {
161
- if (!item || typeof item !== 'object') {
162
- return;
163
- }
164
- for (const fieldInfo of Object.values(typeDef.fields)) {
165
- if (fieldInfo.isTypeDef) {
166
- // recurse
167
- this.setDefaultValueForTypeDefData(fieldInfo.type, item[fieldInfo.name]);
168
- }
169
- else if (!(fieldInfo.name in item)) {
170
- // set default value if the payload doesn't set the field
171
- const defaultValue = this.getDefaultValue(fieldInfo);
172
- if (defaultValue !== undefined) {
173
- item[fieldInfo.name] = defaultValue;
174
- }
175
- }
176
- }
177
- });
178
- }
179
- }
180
- //# sourceMappingURL=default-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/node/default-auth.ts"],"names":[],"mappings":"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"}
@@ -1,77 +0,0 @@
1
- import type { DbClientContract, EnhancementContext } from '../../types';
2
- import type { InternalEnhancementOptions } from './create-enhancement';
3
- import { DefaultPrismaProxyHandler } from './proxy';
4
- export declare function withDelegate<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context: EnhancementContext | undefined): DbClient;
5
- export declare class DelegateProxyHandler extends DefaultPrismaProxyHandler {
6
- private readonly context;
7
- private readonly logger;
8
- private readonly queryUtils;
9
- constructor(prisma: DbClientContract, model: string, options: InternalEnhancementOptions, context: EnhancementContext | undefined);
10
- findFirst(args: any): Promise<unknown>;
11
- findFirstOrThrow(args: any): Promise<unknown>;
12
- findUnique(args: any): Promise<unknown>;
13
- findUniqueOrThrow(args: any): Promise<unknown>;
14
- findMany(args: any): Promise<unknown[]>;
15
- private doFind;
16
- private ensureDiscriminatorSelection;
17
- private injectWhereHierarchy;
18
- private injectSelectIncludeHierarchy;
19
- private buildSelectIncludeHierarchy;
20
- private injectBaseFieldSelect;
21
- private injectBaseIncludeRecursively;
22
- private injectConcreteIncludeRecursively;
23
- private createConcreteRelationIncludePayload;
24
- create(args: any): Promise<any>;
25
- private sanitizeMutationPayload;
26
- createMany(args: {
27
- data: any;
28
- skipDuplicates?: boolean;
29
- }): Promise<{
30
- count: number;
31
- }>;
32
- createManyAndReturn(args: {
33
- data: any;
34
- select?: any;
35
- skipDuplicates?: boolean;
36
- }): Promise<unknown[]>;
37
- private doCreate;
38
- private injectCreateHierarchy;
39
- private doProcessCreatePayload;
40
- private ensureBaseCreateHierarchy;
41
- private fkAssignmentToConnect;
42
- private injectBaseFieldData;
43
- update(args: any): Promise<unknown>;
44
- updateMany(args: any): Promise<{
45
- count: number;
46
- }>;
47
- upsert(args: any): Promise<unknown>;
48
- private doUpdate;
49
- private doUpdateMany;
50
- private injectUpdateHierarchy;
51
- private doProcessUpdatePayload;
52
- delete(args: any): Promise<unknown>;
53
- deleteMany(args: any): Promise<{
54
- count: number;
55
- }>;
56
- private doDeleteMany;
57
- private deleteBaseRecursively;
58
- private doDelete;
59
- private getRelationDelegateEntitiesForCascadeDelete;
60
- private isFieldCascadeDelete;
61
- aggregate(args: any): Promise<unknown>;
62
- count(args: any): Promise<unknown>;
63
- groupBy(args: any): Promise<unknown>;
64
- private checkAggregationArgs;
65
- private extractSelectInclude;
66
- private makeAuxRelationName;
67
- private getModelName;
68
- private getIdFields;
69
- private getModelInfo;
70
- private getBaseModel;
71
- private involvesDelegateModel;
72
- private isDelegateOrDescendantOfDelegate;
73
- private assembleHierarchy;
74
- private assembleUp;
75
- private assembleDown;
76
- private getUpdatedAtFromDelegateBases;
77
- }