@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
@@ -12,7 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.createDeferredPromise = createDeferredPromise;
14
14
  exports.createFluentPromise = createFluentPromise;
15
- const cross_1 = require("../cross");
15
+ const cross_1 = require("../../cross");
16
16
  /**
17
17
  * Creates a promise that only executes when it's awaited or .then() is called.
18
18
  * @see https://github.com/prisma/prisma/blob/main/packages/client/src/runtime/core/request/createPrismaPromise.ts
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promise.js","sourceRoot":"","sources":["../../../src/enhancements/edge/promise.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { ModelMeta } from '../cross';
2
- import type { DbClientContract } from '../types';
1
+ import { type ModelMeta } from '../../cross';
2
+ import type { DbClientContract, ErrorTransformer } from '../../types';
3
3
  import type { InternalEnhancementOptions } from './create-enhancement';
4
4
  /**
5
5
  * Prisma batch write operation result
@@ -7,10 +7,6 @@ import type { InternalEnhancementOptions } from './create-enhancement';
7
7
  export type BatchResult = {
8
8
  count: number;
9
9
  };
10
- /**
11
- * Function for transforming errors.
12
- */
13
- export type ErrorTransformer = (error: unknown) => unknown;
14
10
  /**
15
11
  * Interface for proxy that intercepts Prisma operations.
16
12
  */
@@ -39,6 +35,7 @@ export interface PrismaProxyHandler {
39
35
  groupBy(args: any): Promise<unknown>;
40
36
  count(args: any): Promise<unknown | number>;
41
37
  subscribe(args: any): Promise<unknown>;
38
+ stream(args: any): Promise<unknown>;
42
39
  }
43
40
  /**
44
41
  * All Prisma operation names
@@ -85,15 +82,35 @@ export declare class DefaultPrismaProxyHandler implements PrismaProxyHandler {
85
82
  aggregate(args: any): Promise<unknown>;
86
83
  groupBy(args: any): Promise<unknown>;
87
84
  count(args: any): Promise<unknown>;
88
- subscribe(args: any): Promise<unknown>;
85
+ subscribe(args: any): Promise<{
86
+ [Symbol.asyncIterator]: () => {
87
+ next: () => Promise<{
88
+ done: any;
89
+ value: any;
90
+ }>;
91
+ return: () => any;
92
+ throw: () => any;
93
+ };
94
+ }>;
95
+ stream(args: any): Promise<{
96
+ [Symbol.asyncIterator]: () => {
97
+ next: () => Promise<{
98
+ done: any;
99
+ value: any;
100
+ }>;
101
+ return: () => any;
102
+ throw: () => any;
103
+ };
104
+ }>;
105
+ private doSubscribeStream;
89
106
  /**
90
107
  * Processes result entities before they're returned
91
108
  */
92
- protected processResultEntity<T>(data: T): Promise<T>;
109
+ protected processResultEntity<T>(_method: PrismaProxyActions, data: T): Promise<T>;
93
110
  /**
94
111
  * Processes query args before they're passed to Prisma.
95
112
  */
96
- protected preprocessArgs(method: PrismaProxyActions, args: any): Promise<any>;
113
+ protected preprocessArgs(_method: PrismaProxyActions, args: any): Promise<any>;
97
114
  }
98
115
  /**
99
116
  * Makes a Prisma client proxy.
@@ -12,8 +12,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.DefaultPrismaProxyHandler = void 0;
14
14
  exports.makeProxy = makeProxy;
15
- const constants_1 = require("../constants");
16
- const cross_1 = require("../cross");
15
+ const constants_1 = require("../../constants");
16
+ const cross_1 = require("../../cross");
17
17
  const promise_1 = require("./promise");
18
18
  /**
19
19
  * A default implementation of @see PrismaProxyHandler which directly
@@ -31,7 +31,7 @@ class DefaultPrismaProxyHandler {
31
31
  const promise = (0, promise_1.createFluentPromise)(() => __awaiter(this, void 0, void 0, function* () {
32
32
  args = yield this.preprocessArgs(method, args);
33
33
  const r = yield this.prisma[this.model][method](args);
34
- return postProcess ? this.processResultEntity(r) : r;
34
+ return postProcess ? this.processResultEntity(method, r) : r;
35
35
  }), args, this.options.modelMeta, this.model);
36
36
  return promise;
37
37
  }
@@ -39,7 +39,7 @@ class DefaultPrismaProxyHandler {
39
39
  return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
40
40
  args = yield this.preprocessArgs(method, args);
41
41
  const r = yield this.prisma[this.model][method](args);
42
- return postProcess ? this.processResultEntity(r) : r;
42
+ return postProcess ? this.processResultEntity(method, r) : r;
43
43
  }));
44
44
  }
45
45
  findUnique(args) {
@@ -91,12 +91,36 @@ class DefaultPrismaProxyHandler {
91
91
  return this.deferred('count', args, false);
92
92
  }
93
93
  subscribe(args) {
94
- return this.deferred('subscribe', args, false);
94
+ return this.doSubscribeStream('subscribe', args);
95
+ }
96
+ stream(args) {
97
+ return this.doSubscribeStream('stream', args);
98
+ }
99
+ doSubscribeStream(method, args) {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ // Prisma's `subscribe` and `stream` methods return an async iterable
102
+ // which we need to wrap to process the iteration results
103
+ const iterable = yield this.prisma[this.model][method](args);
104
+ return {
105
+ [Symbol.asyncIterator]: () => {
106
+ const iter = iterable[Symbol.asyncIterator].bind(iterable)();
107
+ return {
108
+ next: () => __awaiter(this, void 0, void 0, function* () {
109
+ const { done, value } = yield iter.next();
110
+ const processedValue = value ? yield this.processResultEntity(method, value) : value;
111
+ return { done, value: processedValue };
112
+ }),
113
+ return: () => { var _a; return (_a = iter.return) === null || _a === void 0 ? void 0 : _a.call(iter); },
114
+ throw: () => { var _a; return (_a = iter.throw) === null || _a === void 0 ? void 0 : _a.call(iter); },
115
+ };
116
+ },
117
+ };
118
+ });
95
119
  }
96
120
  /**
97
121
  * Processes result entities before they're returned
98
122
  */
99
- processResultEntity(data) {
123
+ processResultEntity(_method, data) {
100
124
  return __awaiter(this, void 0, void 0, function* () {
101
125
  return data;
102
126
  });
@@ -104,7 +128,7 @@ class DefaultPrismaProxyHandler {
104
128
  /**
105
129
  * Processes query args before they're passed to Prisma.
106
130
  */
107
- preprocessArgs(method, args) {
131
+ preprocessArgs(_method, args) {
108
132
  return __awaiter(this, void 0, void 0, function* () {
109
133
  return args;
110
134
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/enhancements/edge/proxy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { type FieldInfo, type NestedWriteVisitorContext } from '../cross';
2
- import type { CrudContract, DbClientContract } from '../types';
1
+ import { type FieldInfo, type NestedWriteVisitorContext } from '../../cross';
2
+ import type { CrudContract, DbClientContract } from '../../types';
3
3
  import { InternalEnhancementOptions } from './create-enhancement';
4
4
  export declare class QueryUtils {
5
5
  private readonly prisma;
@@ -2,9 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QueryUtils = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-explicit-any */
5
- const cross_1 = require("../cross");
6
- const cross_2 = require("../cross");
7
- const version_1 = require("../version");
5
+ const cross_1 = require("../../cross");
6
+ const version_1 = require("../../version");
8
7
  const utils_1 = require("./utils");
9
8
  class QueryUtils {
10
9
  constructor(prisma, options) {
@@ -179,7 +178,7 @@ class QueryUtils {
179
178
  * Clones an object and makes sure it's not empty.
180
179
  */
181
180
  safeClone(value) {
182
- return value ? (0, cross_2.clone)(value) : value === undefined || value === null ? {} : value;
181
+ return value ? (0, cross_1.clone)(value) : value === undefined || value === null ? {} : value;
183
182
  }
184
183
  }
185
184
  exports.QueryUtils = QueryUtils;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-utils.js","sourceRoot":"","sources":["../../../src/enhancements/edge/query-utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { z } from 'zod';
2
- import type { CrudContract, PermissionCheckerContext, QueryContext } from '../types';
1
+ import type { CrudContract, PermissionCheckerContext, PolicyCrudKind, QueryContext } from '../../types';
3
2
  /**
4
3
  * Common options for PrismaClient enhancements
5
4
  */
@@ -216,16 +215,10 @@ type FieldUpdateDef = {
216
215
  overrideEntityChecker?: EntityChecker;
217
216
  };
218
217
  /**
219
- * Zod schemas for validation
218
+ * Permission check API (`check()`) arguments
220
219
  */
221
- export type ZodSchemas = {
222
- /**
223
- * Zod schema for each model
224
- */
225
- models: Record<string, z.ZodSchema>;
226
- /**
227
- * Zod schema for Prisma input types for each model
228
- */
229
- input?: Record<string, Record<string, z.ZodSchema>>;
220
+ export type PermissionCheckArgs = {
221
+ operation: PolicyCrudKind;
222
+ where?: Record<string, number | string | boolean>;
230
223
  };
231
224
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/enhancements/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/enhancements/edge/types.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { type FieldInfo, type ModelMeta } from '..';
2
- import type { DbClientContract } from '../types';
1
+ import { type FieldInfo, type ModelMeta } from '../../cross';
2
+ import type { DbClientContract } from '../../types';
3
3
  /**
4
4
  * Formats an object for pretty printing.
5
5
  */
@@ -10,7 +10,7 @@ exports.prismaClientUnknownRequestError = prismaClientUnknownRequestError;
10
10
  exports.isUnsafeMutate = isUnsafeMutate;
11
11
  exports.isAutoIncrementIdField = isAutoIncrementIdField;
12
12
  const safe_json_stringify_1 = __importDefault(require("safe-json-stringify"));
13
- const __1 = require("..");
13
+ const cross_1 = require("../../cross");
14
14
  /**
15
15
  * Formats an object for pretty printing.
16
16
  */
@@ -36,7 +36,7 @@ function isUnsafeMutate(model, args, modelMeta) {
36
36
  return false;
37
37
  }
38
38
  for (const k of Object.keys(args)) {
39
- const field = (0, __1.resolveField)(modelMeta, model, k);
39
+ const field = (0, cross_1.resolveField)(modelMeta, model, k);
40
40
  if (field && (isAutoIncrementIdField(field) || field.isForeignKey)) {
41
41
  return true;
42
42
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/enhancements/edge/utils.ts"],"names":[],"mappings":";;;;;AAQA,oCAEC;AAGD,kEAEC;AAGD,sEAEC;AAGD,0EAEC;AAGD,wCAWC;AAED,wDAEC;AA3CD,8EAAoD;AACpD,uCAA2E;AAG3E;;GAEG;AACH,8DAA8D;AAC9D,SAAgB,YAAY,CAAC,KAAU,EAAE,SAAS,GAAG,IAAI;IACrD,OAAO,SAAS,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,KAAK,CAAC,CAAC;AACzF,CAAC;AAED,8DAA8D;AAC9D,SAAgB,2BAA2B,CAAC,MAAwB,EAAE,YAAiB,EAAE,OAAe;IACpG,MAAM,IAAI,YAAY,CAAC,2BAA2B,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;AAC1G,CAAC;AAED,8DAA8D;AAC9D,SAAgB,6BAA6B,CAAC,MAAwB,EAAE,YAAiB,EAAE,GAAG,IAAe;IACzG,OAAO,IAAI,YAAY,CAAC,6BAA6B,CAAC,GAAG,IAAI,CAAC,CAAC;AACnE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,+BAA+B,CAAC,YAAiB,EAAE,GAAG,IAAe;IACjF,MAAM,IAAI,YAAY,CAAC,+BAA+B,CAAC,GAAG,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,cAAc,CAAC,KAAa,EAAE,IAAS,EAAE,SAAoB;IACzE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,KAAK,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAgB;IACnD,OAAO,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC;AAC/C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type FieldInfo, type ModelMeta } from '../cross';
1
+ import { type FieldInfo, type ModelMeta } from '../../cross';
2
2
  /**
3
3
  * Context for visiting
4
4
  */
@@ -12,7 +12,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.WhereVisitor = void 0;
15
- const cross_1 = require("../cross");
15
+ const cross_1 = require("../../cross");
16
16
  const FILTER_OPERATORS = [
17
17
  'equals',
18
18
  'not',
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,37 @@
1
+ import { type ModelMeta } from '../../cross';
2
+ import type { 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
+ /**
28
+ * Gets a Prisma client enhanced with all enhancement behaviors, including access
29
+ * policy, field validation, field omission and password hashing.
30
+ *
31
+ * @private
32
+ *
33
+ * @param prisma The Prisma client to enhance.
34
+ * @param context Context.
35
+ * @param options Options.
36
+ */
37
+ export declare function createEnhancement<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context?: EnhancementContext): DbClient;
@@ -0,0 +1,79 @@
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 logger_1 = require("./logger");
13
+ const omit_1 = require("./omit");
14
+ const password_1 = require("./password");
15
+ const policy_1 = require("./policy");
16
+ /**
17
+ * All enhancement kinds
18
+ */
19
+ const ALL_ENHANCEMENTS = ['password', 'omit', 'policy', 'validation', 'delegate'];
20
+ /**
21
+ * Gets a Prisma client enhanced with all enhancement behaviors, including access
22
+ * policy, field validation, field omission and password hashing.
23
+ *
24
+ * @private
25
+ *
26
+ * @param prisma The Prisma client to enhance.
27
+ * @param context Context.
28
+ * @param options Options.
29
+ */
30
+ function createEnhancement(prisma, options, context) {
31
+ var _a;
32
+ if (!prisma) {
33
+ throw new Error('Invalid prisma instance');
34
+ }
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ const prismaVer = prisma._clientVersion;
37
+ if (prismaVer && semver_1.default.lt(prismaVer, constants_1.PRISMA_MINIMUM_VERSION)) {
38
+ console.warn(`ZenStack requires Prisma version "${constants_1.PRISMA_MINIMUM_VERSION}" or higher. Detected version is "${prismaVer}".`);
39
+ }
40
+ // TODO: move the detection logic into each enhancement
41
+ // TODO: how to properly cache the detection result?
42
+ const allFields = Object.values(options.modelMeta.models).flatMap((modelInfo) => Object.values(modelInfo.fields));
43
+ const hasPassword = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@password'); });
44
+ const hasOmit = allFields.some((field) => { var _a; return (_a = field.attributes) === null || _a === void 0 ? void 0 : _a.some((attr) => attr.name === '@omit'); });
45
+ const hasDefaultAuth = allFields.some((field) => field.defaultValueProvider);
46
+ const kinds = (_a = options.kinds) !== null && _a !== void 0 ? _a : ALL_ENHANCEMENTS;
47
+ let result = prisma;
48
+ // delegate proxy needs to be wrapped inside policy proxy, since it may translate `deleteMany`
49
+ // and `updateMany` to plain `delete` and `update`
50
+ if (Object.values(options.modelMeta.models).some((model) => (0, cross_1.isDelegateModel)(options.modelMeta, model.name))) {
51
+ if (!kinds.includes('delegate')) {
52
+ const logger = new logger_1.Logger(prisma);
53
+ logger.warn('Your ZModel contains delegate models but "delegate" enhancement kind is not enabled. This may result in unexpected behavior.');
54
+ }
55
+ else {
56
+ result = (0, delegate_1.withDelegate)(result, options);
57
+ }
58
+ }
59
+ // password enhancement must be applied prior to policy because it changes then length of the field
60
+ // and can break validation rules like `@length`
61
+ if (hasPassword && kinds.includes('password')) {
62
+ // @password proxy
63
+ result = (0, password_1.withPassword)(result, options);
64
+ }
65
+ // 'policy' and 'validation' enhancements are both enabled by `withPolicy`
66
+ if (kinds.includes('policy') || kinds.includes('validation')) {
67
+ result = (0, policy_1.withPolicy)(result, options, context);
68
+ if (kinds.includes('policy') && hasDefaultAuth) {
69
+ // @default(auth()) proxy
70
+ result = (0, default_auth_1.withDefaultAuth)(result, options, context);
71
+ }
72
+ }
73
+ if (hasOmit && kinds.includes('omit')) {
74
+ // @omit proxy
75
+ result = (0, omit_1.withOmit)(result, options);
76
+ }
77
+ return result;
78
+ }
79
+ //# sourceMappingURL=create-enhancement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/node/create-enhancement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
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;
@@ -0,0 +1,129 @@
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 cross_1 = require("../../cross");
16
+ const proxy_1 = require("./proxy");
17
+ const utils_1 = require("./utils");
18
+ /**
19
+ * Gets an enhanced Prisma client that supports `@default(auth())` attribute.
20
+ *
21
+ * @private
22
+ */
23
+ function withDefaultAuth(prisma, options, context = {}) {
24
+ return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DefaultAuthHandler(_prisma, model, options, context), 'defaultAuth');
25
+ }
26
+ class DefaultAuthHandler extends proxy_1.DefaultPrismaProxyHandler {
27
+ constructor(prisma, model, options, context) {
28
+ super(prisma, model, options);
29
+ this.context = context;
30
+ this.userContext = this.context.user;
31
+ }
32
+ // base override
33
+ preprocessArgs(action, args) {
34
+ return __awaiter(this, void 0, void 0, function* () {
35
+ const actionsOfInterest = ['create', 'createMany', 'update', 'updateMany', 'upsert'];
36
+ if (actionsOfInterest.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) => {
47
+ const fields = (0, cross_1.getFields)(this.options.modelMeta, model);
48
+ for (const fieldInfo of Object.values(fields)) {
49
+ if (fieldInfo.name in data) {
50
+ // create payload already sets field value
51
+ continue;
52
+ }
53
+ if (!fieldInfo.defaultValueProvider) {
54
+ // field doesn't have a runtime default value provider
55
+ continue;
56
+ }
57
+ const authDefaultValue = this.getDefaultValueFromAuth(fieldInfo);
58
+ if (authDefaultValue !== undefined) {
59
+ // set field value extracted from `auth()`
60
+ this.setAuthDefaultValue(fieldInfo, model, data, authDefaultValue);
61
+ }
62
+ }
63
+ };
64
+ // visit create payload and set default value to fields using `auth()` in `@default()`
65
+ const visitor = new cross_1.NestedWriteVisitor(this.options.modelMeta, {
66
+ create: (model, data) => {
67
+ processCreatePayload(model, data);
68
+ },
69
+ upsert: (model, data) => {
70
+ processCreatePayload(model, data.create);
71
+ },
72
+ createMany: (model, args) => {
73
+ for (const item of (0, cross_1.enumerate)(args.data)) {
74
+ processCreatePayload(model, item);
75
+ }
76
+ },
77
+ });
78
+ yield visitor.visit(model, action, newArgs);
79
+ return newArgs;
80
+ });
81
+ }
82
+ setAuthDefaultValue(fieldInfo, model, data, authDefaultValue) {
83
+ var _a;
84
+ if (fieldInfo.isForeignKey && fieldInfo.relationField && fieldInfo.relationField in data) {
85
+ // if the field is a fk, and the relation field is already set, we should not override it
86
+ return;
87
+ }
88
+ if (fieldInfo.isForeignKey && !(0, utils_1.isUnsafeMutate)(model, data, this.options.modelMeta)) {
89
+ // if the field is a fk, and the create payload is not unsafe, we need to translate
90
+ // the fk field setting to a `connect` of the corresponding relation field
91
+ const relFieldName = fieldInfo.relationField;
92
+ if (!relFieldName) {
93
+ throw new Error(`Field \`${fieldInfo.name}\` is a foreign key field but no corresponding relation field is found`);
94
+ }
95
+ const relationField = (0, cross_1.requireField)(this.options.modelMeta, model, relFieldName);
96
+ // construct a `{ connect: { ... } }` payload
97
+ let connect = (_a = data[relationField.name]) === null || _a === void 0 ? void 0 : _a.connect;
98
+ if (!connect) {
99
+ connect = {};
100
+ data[relationField.name] = { connect };
101
+ }
102
+ // sets the opposite fk field to value `authDefaultValue`
103
+ const oppositeFkFieldName = this.getOppositeFkFieldName(relationField, fieldInfo);
104
+ if (!oppositeFkFieldName) {
105
+ throw new Error(`Cannot find opposite foreign key field for \`${fieldInfo.name}\` in relation field \`${relFieldName}\``);
106
+ }
107
+ connect[oppositeFkFieldName] = authDefaultValue;
108
+ }
109
+ else {
110
+ // set default value directly
111
+ data[fieldInfo.name] = authDefaultValue;
112
+ }
113
+ }
114
+ getOppositeFkFieldName(relationField, fieldInfo) {
115
+ if (!relationField.foreignKeyMapping) {
116
+ return undefined;
117
+ }
118
+ const entry = Object.entries(relationField.foreignKeyMapping).find(([, v]) => v === fieldInfo.name);
119
+ return entry === null || entry === void 0 ? void 0 : entry[0];
120
+ }
121
+ getDefaultValueFromAuth(fieldInfo) {
122
+ var _a;
123
+ if (!this.userContext) {
124
+ throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Evaluating default value of field \`${fieldInfo.name}\` requires a user context`);
125
+ }
126
+ return (_a = fieldInfo.defaultValueProvider) === null || _a === void 0 ? void 0 : _a.call(fieldInfo, this.userContext);
127
+ }
128
+ }
129
+ //# sourceMappingURL=default-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/node/default-auth.ts"],"names":[],"mappings":"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"}