@zenstackhq/runtime 2.5.1 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/cross/index.d.mts +1 -1
  2. package/cross/index.d.ts +1 -1
  3. package/cross/index.js +2 -0
  4. package/cross/index.js.map +1 -1
  5. package/cross/index.mjs +2 -0
  6. package/cross/index.mjs.map +1 -1
  7. package/enhancements/edge/create-enhancement.d.ts +6 -1
  8. package/enhancements/edge/create-enhancement.js +7 -1
  9. package/enhancements/edge/create-enhancement.js.map +1 -1
  10. package/enhancements/edge/default-auth.js +8 -1
  11. package/enhancements/edge/default-auth.js.map +1 -1
  12. package/enhancements/edge/delegate.d.ts +7 -3
  13. package/enhancements/edge/delegate.js +158 -90
  14. package/enhancements/edge/delegate.js.map +1 -1
  15. package/enhancements/edge/omit.js +4 -1
  16. package/enhancements/edge/omit.js.map +1 -1
  17. package/enhancements/edge/policy/handler.d.ts +6 -0
  18. package/enhancements/edge/policy/handler.js +45 -14
  19. package/enhancements/edge/policy/handler.js.map +1 -1
  20. package/enhancements/edge/policy/index.d.ts +7 -1
  21. package/enhancements/edge/policy/index.js +23 -0
  22. package/enhancements/edge/policy/index.js.map +1 -1
  23. package/enhancements/edge/policy/policy-utils.js +15 -7
  24. package/enhancements/edge/policy/policy-utils.js.map +1 -1
  25. package/enhancements/edge/proxy.d.ts +2 -2
  26. package/enhancements/edge/proxy.js.map +1 -1
  27. package/enhancements/edge/query-utils.d.ts +1 -0
  28. package/enhancements/edge/query-utils.js +15 -0
  29. package/enhancements/edge/query-utils.js.map +1 -1
  30. package/enhancements/node/create-enhancement.d.ts +6 -1
  31. package/enhancements/node/create-enhancement.js +7 -1
  32. package/enhancements/node/create-enhancement.js.map +1 -1
  33. package/enhancements/node/default-auth.js +8 -1
  34. package/enhancements/node/default-auth.js.map +1 -1
  35. package/enhancements/node/delegate.d.ts +7 -3
  36. package/enhancements/node/delegate.js +158 -90
  37. package/enhancements/node/delegate.js.map +1 -1
  38. package/enhancements/node/omit.js +4 -1
  39. package/enhancements/node/omit.js.map +1 -1
  40. package/enhancements/node/policy/handler.d.ts +6 -0
  41. package/enhancements/node/policy/handler.js +45 -14
  42. package/enhancements/node/policy/handler.js.map +1 -1
  43. package/enhancements/node/policy/index.d.ts +7 -1
  44. package/enhancements/node/policy/index.js +23 -0
  45. package/enhancements/node/policy/index.js.map +1 -1
  46. package/enhancements/node/policy/policy-utils.js +15 -7
  47. package/enhancements/node/policy/policy-utils.js.map +1 -1
  48. package/enhancements/node/proxy.d.ts +2 -2
  49. package/enhancements/node/proxy.js.map +1 -1
  50. package/enhancements/node/query-utils.d.ts +1 -0
  51. package/enhancements/node/query-utils.js +15 -0
  52. package/enhancements/node/query-utils.js.map +1 -1
  53. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/edge/create-enhancement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-enhancement.js","sourceRoot":"","sources":["../../../src/enhancements/edge/create-enhancement.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,14 @@ class DefaultAuthHandler extends proxy_1.DefaultPrismaProxyHandler {
32
32
  // base override
33
33
  preprocessArgs(action, args) {
34
34
  return __awaiter(this, void 0, void 0, function* () {
35
- const actionsOfInterest = ['create', 'createMany', 'update', 'updateMany', 'upsert'];
35
+ const actionsOfInterest = [
36
+ 'create',
37
+ 'createMany',
38
+ 'createManyAndReturn',
39
+ 'update',
40
+ 'updateMany',
41
+ 'upsert',
42
+ ];
36
43
  if (actionsOfInterest.includes(action)) {
37
44
  const newArgs = yield this.preprocessWritePayload(this.model, action, args);
38
45
  return newArgs;
@@ -1 +1 @@
1
- {"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/edge/default-auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../../src/enhancements/edge/default-auth.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,28 @@
1
- import type { DbClientContract } from '../../types';
1
+ import type { DbClientContract, EnhancementContext } from '../../types';
2
2
  import type { InternalEnhancementOptions } from './create-enhancement';
3
3
  import { DefaultPrismaProxyHandler } from './proxy';
4
- export declare function withDelegate<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions): DbClient;
4
+ export declare function withDelegate<DbClient extends object>(prisma: DbClient, options: InternalEnhancementOptions, context: EnhancementContext | undefined): DbClient;
5
5
  export declare class DelegateProxyHandler extends DefaultPrismaProxyHandler {
6
+ private readonly context;
6
7
  private readonly logger;
7
8
  private readonly queryUtils;
8
- constructor(prisma: DbClientContract, model: string, options: InternalEnhancementOptions);
9
+ constructor(prisma: DbClientContract, model: string, options: InternalEnhancementOptions, context: EnhancementContext | undefined);
9
10
  findFirst(args: any): Promise<unknown>;
10
11
  findFirstOrThrow(args: any): Promise<unknown>;
11
12
  findUnique(args: any): Promise<unknown>;
12
13
  findUniqueOrThrow(args: any): Promise<unknown>;
13
14
  findMany(args: any): Promise<unknown[]>;
14
15
  private doFind;
16
+ private ensureDiscriminatorSelection;
15
17
  private injectWhereHierarchy;
16
18
  private injectSelectIncludeHierarchy;
17
19
  private buildSelectIncludeHierarchy;
18
20
  private injectBaseFieldSelect;
19
21
  private injectBaseIncludeRecursively;
20
22
  private injectConcreteIncludeRecursively;
23
+ private createConcreteRelationIncludePayload;
21
24
  create(args: any): Promise<any>;
25
+ private sanitizeMutationPayload;
22
26
  createMany(args: {
23
27
  data: any;
24
28
  skipDuplicates?: boolean;
@@ -18,18 +18,20 @@ exports.withDelegate = withDelegate;
18
18
  const deepmerge_1 = __importDefault(require("deepmerge"));
19
19
  const is_plain_object_1 = require("is-plain-object");
20
20
  const lower_case_first_1 = require("lower-case-first");
21
+ const traverse_1 = __importDefault(require("traverse"));
21
22
  const constants_1 = require("../../constants");
22
23
  const cross_1 = require("../../cross");
23
24
  const logger_1 = require("./logger");
24
25
  const proxy_1 = require("./proxy");
25
26
  const query_utils_1 = require("./query-utils");
26
27
  const utils_1 = require("./utils");
27
- function withDelegate(prisma, options) {
28
- return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DelegateProxyHandler(_prisma, model, options), 'delegate');
28
+ function withDelegate(prisma, options, context) {
29
+ return (0, proxy_1.makeProxy)(prisma, options.modelMeta, (_prisma, model) => new DelegateProxyHandler(_prisma, model, options, context), 'delegate');
29
30
  }
30
31
  class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
31
- constructor(prisma, model, options) {
32
+ constructor(prisma, model, options, context) {
32
33
  super(prisma, model, options);
34
+ this.context = context;
33
35
  this.logger = new logger_1.Logger(prisma);
34
36
  this.queryUtils = new query_utils_1.QueryUtils(prisma, this.options);
35
37
  }
@@ -59,7 +61,10 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
59
61
  }
60
62
  args = args ? (0, cross_1.clone)(args) : {};
61
63
  this.injectWhereHierarchy(model, args === null || args === void 0 ? void 0 : args.where);
62
- this.injectSelectIncludeHierarchy(model, args);
64
+ yield this.injectSelectIncludeHierarchy(model, args);
65
+ // discriminator field is needed during post process to determine the
66
+ // actual concrete model type
67
+ this.ensureDiscriminatorSelection(model, args);
63
68
  if (args.orderBy) {
64
69
  // `orderBy` may contain fields from base types
65
70
  this.injectWhereHierarchy(this.model, args.orderBy);
@@ -76,6 +81,20 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
76
81
  }
77
82
  });
78
83
  }
84
+ ensureDiscriminatorSelection(model, args) {
85
+ const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model);
86
+ if (!(modelInfo === null || modelInfo === void 0 ? void 0 : modelInfo.discriminator)) {
87
+ return;
88
+ }
89
+ if (args.select && typeof args.select === 'object') {
90
+ args.select[modelInfo.discriminator] = true;
91
+ return;
92
+ }
93
+ if (args.omit && typeof args.omit === 'object') {
94
+ args.omit[modelInfo.discriminator] = false;
95
+ return;
96
+ }
97
+ }
79
98
  injectWhereHierarchy(model, where) {
80
99
  if (!where || !(0, is_plain_object_1.isPlainObject)(where)) {
81
100
  return;
@@ -122,79 +141,88 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
122
141
  });
123
142
  }
124
143
  injectSelectIncludeHierarchy(model, args) {
125
- if (!args || typeof args !== 'object') {
126
- return;
127
- }
128
- for (const kind of ['select', 'include']) {
129
- if (args[kind] && typeof args[kind] === 'object') {
130
- for (const [field, value] of Object.entries(args[kind])) {
131
- const fieldInfo = (0, cross_1.resolveField)(this.options.modelMeta, model, field);
132
- if (!fieldInfo) {
133
- continue;
134
- }
135
- if (this.isDelegateOrDescendantOfDelegate(fieldInfo === null || fieldInfo === void 0 ? void 0 : fieldInfo.type) && value) {
136
- // delegate model, recursively inject hierarchy
137
- if (args[kind][field]) {
138
- if (args[kind][field] === true) {
139
- // make sure the payload is an object
140
- args[kind][field] = {};
141
- }
142
- this.injectSelectIncludeHierarchy(fieldInfo.type, args[kind][field]);
143
- }
144
- }
145
- if (value !== undefined) {
146
- if (value === null || value === void 0 ? void 0 : value.orderBy) {
147
- // `orderBy` may contain fields from base types
148
- this.injectWhereHierarchy(fieldInfo.type, value.orderBy);
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ if (!args || typeof args !== 'object') {
146
+ return;
147
+ }
148
+ for (const kind of ['select', 'include']) {
149
+ if (args[kind] && typeof args[kind] === 'object') {
150
+ for (const [field, value] of Object.entries(args[kind])) {
151
+ const fieldInfo = (0, cross_1.resolveField)(this.options.modelMeta, model, field);
152
+ if (!fieldInfo) {
153
+ continue;
149
154
  }
150
- if (this.injectBaseFieldSelect(model, field, value, args, kind)) {
151
- delete args[kind][field];
155
+ if (this.isDelegateOrDescendantOfDelegate(fieldInfo === null || fieldInfo === void 0 ? void 0 : fieldInfo.type) && value) {
156
+ // delegate model, recursively inject hierarchy
157
+ if (args[kind][field]) {
158
+ if (args[kind][field] === true) {
159
+ // make sure the payload is an object
160
+ args[kind][field] = {};
161
+ }
162
+ yield this.injectSelectIncludeHierarchy(fieldInfo.type, args[kind][field]);
163
+ }
152
164
  }
153
- else if (fieldInfo.isDataModel) {
154
- let nextValue = value;
155
- if (nextValue === true) {
156
- // make sure the payload is an object
157
- args[kind][field] = nextValue = {};
165
+ // refetch the field select/include value because it may have been
166
+ // updated during injection
167
+ const fieldValue = args[kind][field];
168
+ if (fieldValue !== undefined) {
169
+ if (fieldValue.orderBy) {
170
+ // `orderBy` may contain fields from base types
171
+ this.injectWhereHierarchy(fieldInfo.type, fieldValue.orderBy);
172
+ }
173
+ if (this.injectBaseFieldSelect(model, field, fieldValue, args, kind)) {
174
+ delete args[kind][field];
175
+ }
176
+ else if (fieldInfo.isDataModel) {
177
+ let nextValue = fieldValue;
178
+ if (nextValue === true) {
179
+ // make sure the payload is an object
180
+ args[kind][field] = nextValue = {};
181
+ }
182
+ yield this.injectSelectIncludeHierarchy(fieldInfo.type, nextValue);
158
183
  }
159
- this.injectSelectIncludeHierarchy(fieldInfo.type, nextValue);
160
184
  }
161
185
  }
162
186
  }
163
187
  }
164
- }
165
- if (!args.select) {
166
- // include base models upwards
167
- this.injectBaseIncludeRecursively(model, args);
168
- // include sub models downwards
169
- this.injectConcreteIncludeRecursively(model, args);
170
- }
188
+ if (!args.select) {
189
+ // include base models upwards
190
+ this.injectBaseIncludeRecursively(model, args);
191
+ // include sub models downwards
192
+ yield this.injectConcreteIncludeRecursively(model, args);
193
+ }
194
+ });
171
195
  }
172
- buildSelectIncludeHierarchy(model, args) {
173
- args = (0, cross_1.clone)(args);
174
- const selectInclude = this.extractSelectInclude(args) || {};
175
- if (selectInclude.select && typeof selectInclude.select === 'object') {
176
- Object.entries(selectInclude.select).forEach(([field, value]) => {
177
- if (value) {
178
- if (this.injectBaseFieldSelect(model, field, value, selectInclude, 'select')) {
179
- delete selectInclude.select[field];
196
+ buildSelectIncludeHierarchy(model_1, args_1) {
197
+ return __awaiter(this, arguments, void 0, function* (model, args, includeConcreteFields = true) {
198
+ args = (0, cross_1.clone)(args);
199
+ const selectInclude = this.extractSelectInclude(args) || {};
200
+ if (selectInclude.select && typeof selectInclude.select === 'object') {
201
+ Object.entries(selectInclude.select).forEach(([field, value]) => {
202
+ if (value) {
203
+ if (this.injectBaseFieldSelect(model, field, value, selectInclude, 'select')) {
204
+ delete selectInclude.select[field];
205
+ }
180
206
  }
181
- }
182
- });
183
- }
184
- else if (selectInclude.include && typeof selectInclude.include === 'object') {
185
- Object.entries(selectInclude.include).forEach(([field, value]) => {
186
- if (value) {
187
- if (this.injectBaseFieldSelect(model, field, value, selectInclude, 'include')) {
188
- delete selectInclude.include[field];
207
+ });
208
+ }
209
+ else if (selectInclude.include && typeof selectInclude.include === 'object') {
210
+ Object.entries(selectInclude.include).forEach(([field, value]) => {
211
+ if (value) {
212
+ if (this.injectBaseFieldSelect(model, field, value, selectInclude, 'include')) {
213
+ delete selectInclude.include[field];
214
+ }
189
215
  }
216
+ });
217
+ }
218
+ if (!selectInclude.select) {
219
+ this.injectBaseIncludeRecursively(model, selectInclude);
220
+ if (includeConcreteFields) {
221
+ yield this.injectConcreteIncludeRecursively(model, selectInclude);
190
222
  }
191
- });
192
- }
193
- if (!selectInclude.select) {
194
- this.injectBaseIncludeRecursively(model, selectInclude);
195
- this.injectConcreteIncludeRecursively(model, selectInclude);
196
- }
197
- return selectInclude;
223
+ }
224
+ return selectInclude;
225
+ });
198
226
  }
199
227
  injectBaseFieldSelect(model, field, value, selectInclude, context) {
200
228
  const fieldInfo = (0, cross_1.resolveField)(this.options.modelMeta, model, field);
@@ -253,24 +281,43 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
253
281
  this.injectBaseIncludeRecursively(base.name, selectInclude.include[baseRelationName]);
254
282
  }
255
283
  injectConcreteIncludeRecursively(model, selectInclude) {
256
- const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model);
257
- if (!modelInfo) {
258
- return;
259
- }
260
- // get sub models of this model
261
- const subModels = Object.values(this.options.modelMeta.models).filter((m) => { var _a; return (_a = m.baseTypes) === null || _a === void 0 ? void 0 : _a.includes(modelInfo.name); });
262
- for (const subModel of subModels) {
263
- // include sub model relation field
264
- const subRelationName = this.makeAuxRelationName(subModel);
265
- if (selectInclude.select) {
266
- selectInclude.include = Object.assign({ [subRelationName]: {} }, selectInclude.select);
267
- delete selectInclude.select;
284
+ return __awaiter(this, void 0, void 0, function* () {
285
+ const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model);
286
+ if (!modelInfo) {
287
+ return;
268
288
  }
269
- else {
270
- selectInclude.include = Object.assign({ [subRelationName]: {} }, selectInclude.include);
289
+ // get sub models of this model
290
+ const subModels = Object.values(this.options.modelMeta.models).filter((m) => { var _a; return (_a = m.baseTypes) === null || _a === void 0 ? void 0 : _a.includes(modelInfo.name); });
291
+ for (const subModel of subModels) {
292
+ // include sub model relation field
293
+ const subRelationName = this.makeAuxRelationName(subModel);
294
+ // create a payload to include the sub model relation
295
+ const includePayload = yield this.createConcreteRelationIncludePayload(subModel.name);
296
+ if (selectInclude.select) {
297
+ selectInclude.include = Object.assign({ [subRelationName]: includePayload }, selectInclude.select);
298
+ delete selectInclude.select;
299
+ }
300
+ else {
301
+ selectInclude.include = Object.assign({ [subRelationName]: includePayload }, selectInclude.include);
302
+ }
303
+ yield this.injectConcreteIncludeRecursively(subModel.name, selectInclude.include[subRelationName]);
271
304
  }
272
- this.injectConcreteIncludeRecursively(subModel.name, selectInclude.include[subRelationName]);
273
- }
305
+ });
306
+ }
307
+ createConcreteRelationIncludePayload(model) {
308
+ return __awaiter(this, void 0, void 0, function* () {
309
+ let result = {};
310
+ if (this.options.processIncludeRelationPayload) {
311
+ // use the callback in options to process the include payload, so enhancements
312
+ // like 'policy' can do extra work (e.g., inject policy rules)
313
+ yield this.options.processIncludeRelationPayload(this.prisma, model, result, this.options, this.context);
314
+ // the callback may directly reference fields from polymorphic bases, we need to fix it
315
+ // into a proper hierarchy by moving base field references to the base layer relations
316
+ const properHierarchy = yield this.buildSelectIncludeHierarchy(model, result, false);
317
+ result = Object.assign(Object.assign({}, result), properHierarchy);
318
+ }
319
+ return result;
320
+ });
274
321
  }
275
322
  // #endregion
276
323
  // #region create
@@ -285,6 +332,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
285
332
  if (!args.data) {
286
333
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
287
334
  }
335
+ this.sanitizeMutationPayload(args.data);
288
336
  if ((0, cross_1.isDelegateModel)(this.options.modelMeta, this.model)) {
289
337
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Model "${this.model}" is a delegate and cannot be created directly`);
290
338
  }
@@ -294,6 +342,19 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
294
342
  return this.doCreate(this.prisma, this.model, args);
295
343
  });
296
344
  }
345
+ sanitizeMutationPayload(data) {
346
+ if (!data) {
347
+ return;
348
+ }
349
+ const prisma = this.prisma;
350
+ const prismaModule = this.options.prismaModule;
351
+ (0, traverse_1.default)(data).forEach(function () {
352
+ var _a;
353
+ if ((_a = this.key) === null || _a === void 0 ? void 0 : _a.startsWith(constants_1.DELEGATE_AUX_RELATION_PREFIX)) {
354
+ throw (0, utils_1.prismaClientValidationError)(prisma, prismaModule, `Auxiliary relation field "${this.key}" cannot be set directly`);
355
+ }
356
+ });
357
+ }
297
358
  createMany(args) {
298
359
  if (!args) {
299
360
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'query argument is required');
@@ -301,6 +362,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
301
362
  if (!args.data) {
302
363
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
303
364
  }
365
+ this.sanitizeMutationPayload(args.data);
304
366
  if (!this.involvesDelegateModel(this.model)) {
305
367
  return super.createMany(args);
306
368
  }
@@ -325,6 +387,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
325
387
  if (!args.data) {
326
388
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
327
389
  }
390
+ this.sanitizeMutationPayload(args.data);
328
391
  if (!this.involvesDelegateModel(this.model)) {
329
392
  return super.createManyAndReturn(args);
330
393
  }
@@ -346,7 +409,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
346
409
  return __awaiter(this, void 0, void 0, function* () {
347
410
  args = (0, cross_1.clone)(args);
348
411
  yield this.injectCreateHierarchy(model, args);
349
- this.injectSelectIncludeHierarchy(model, args);
412
+ yield this.injectSelectIncludeHierarchy(model, args);
350
413
  if (this.options.logPrismaQuery) {
351
414
  this.logger.info(`[delegate] \`create\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
352
415
  }
@@ -462,6 +525,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
462
525
  if (!args.data) {
463
526
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
464
527
  }
528
+ this.sanitizeMutationPayload(args.data);
465
529
  if (!this.involvesDelegateModel(this.model)) {
466
530
  return super.update(args);
467
531
  }
@@ -478,6 +542,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
478
542
  if (!args.data) {
479
543
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
480
544
  }
545
+ this.sanitizeMutationPayload(args.data);
481
546
  if (!this.involvesDelegateModel(this.model)) {
482
547
  return _super.updateMany.call(this, args);
483
548
  }
@@ -500,6 +565,8 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
500
565
  if (!args.where) {
501
566
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'where field is required in query argument');
502
567
  }
568
+ this.sanitizeMutationPayload(args.update);
569
+ this.sanitizeMutationPayload(args.create);
503
570
  if ((0, cross_1.isDelegateModel)(this.options.modelMeta, this.model)) {
504
571
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Model "${this.model}" is a delegate and doesn't support upsert`);
505
572
  }
@@ -508,7 +575,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
508
575
  }
509
576
  args = (0, cross_1.clone)(args);
510
577
  this.injectWhereHierarchy(this.model, args === null || args === void 0 ? void 0 : args.where);
511
- this.injectSelectIncludeHierarchy(this.model, args);
578
+ yield this.injectSelectIncludeHierarchy(this.model, args);
512
579
  if (args.create) {
513
580
  this.doProcessCreatePayload(this.model, args.create);
514
581
  }
@@ -526,7 +593,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
526
593
  return __awaiter(this, void 0, void 0, function* () {
527
594
  args = (0, cross_1.clone)(args);
528
595
  yield this.injectUpdateHierarchy(db, model, args);
529
- this.injectSelectIncludeHierarchy(model, args);
596
+ yield this.injectSelectIncludeHierarchy(model, args);
530
597
  if (this.options.logPrismaQuery) {
531
598
  this.logger.info(`[delegate] \`update\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
532
599
  }
@@ -679,7 +746,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
679
746
  return super.delete(args);
680
747
  }
681
748
  return this.queryUtils.transaction(this.prisma, (tx) => __awaiter(this, void 0, void 0, function* () {
682
- const selectInclude = this.buildSelectIncludeHierarchy(this.model, args);
749
+ const selectInclude = yield this.buildSelectIncludeHierarchy(this.model, args);
683
750
  // make sure id fields are selected
684
751
  const idFields = this.getIdFields(this.model);
685
752
  for (const idField of idFields) {
@@ -724,6 +791,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
724
791
  doDelete(db, model, args) {
725
792
  return __awaiter(this, void 0, void 0, function* () {
726
793
  this.injectWhereHierarchy(model, args.where);
794
+ yield this.injectSelectIncludeHierarchy(model, args);
727
795
  if (this.options.logPrismaQuery) {
728
796
  this.logger.info(`[delegate] \`delete\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
729
797
  }
@@ -921,11 +989,11 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
921
989
  const result = {};
922
990
  const base = this.getBaseModel(model);
923
991
  if (base) {
924
- // merge base fields
992
+ // fully merge base fields
925
993
  const baseRelationName = this.makeAuxRelationName(base);
926
994
  const baseData = entity[baseRelationName];
927
995
  if (baseData && typeof baseData === 'object') {
928
- const baseAssembled = this.assembleUp(base.name, baseData);
996
+ const baseAssembled = this.assembleHierarchy(base.name, baseData);
929
997
  Object.assign(result, baseAssembled);
930
998
  }
931
999
  }
@@ -965,14 +1033,14 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
965
1033
  const result = {};
966
1034
  const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model, true);
967
1035
  if (modelInfo.discriminator) {
968
- // model is a delegate, merge sub model fields
1036
+ // model is a delegate, fully merge concrete model fields
969
1037
  const subModelName = entity[modelInfo.discriminator];
970
1038
  if (subModelName) {
971
1039
  const subModel = (0, cross_1.getModelInfo)(this.options.modelMeta, subModelName, true);
972
1040
  const subRelationName = this.makeAuxRelationName(subModel);
973
1041
  const subData = entity[subRelationName];
974
1042
  if (subData && typeof subData === 'object') {
975
- const subAssembled = this.assembleDown(subModel.name, subData);
1043
+ const subAssembled = this.assembleHierarchy(subModel.name, subData);
976
1044
  Object.assign(result, subAssembled);
977
1045
  }
978
1046
  }