@zenstackhq/runtime 2.5.0 → 2.6.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 (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 +6 -3
  13. package/enhancements/edge/delegate.js +145 -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 +6 -3
  36. package/enhancements/node/delegate.js +145 -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,17 +1,19 @@
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;
@@ -19,6 +21,7 @@ export declare class DelegateProxyHandler extends DefaultPrismaProxyHandler {
19
21
  private injectBaseIncludeRecursively;
20
22
  private injectConcreteIncludeRecursively;
21
23
  create(args: any): Promise<any>;
24
+ private sanitizeMutationPayload;
22
25
  createMany(args: {
23
26
  data: any;
24
27
  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,86 @@ 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
196
  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];
197
+ return __awaiter(this, void 0, void 0, function* () {
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
  }
190
- }
191
- });
192
- }
193
- if (!selectInclude.select) {
194
- this.injectBaseIncludeRecursively(model, selectInclude);
195
- this.injectConcreteIncludeRecursively(model, selectInclude);
196
- }
197
- return selectInclude;
216
+ });
217
+ }
218
+ if (!selectInclude.select) {
219
+ this.injectBaseIncludeRecursively(model, selectInclude);
220
+ yield this.injectConcreteIncludeRecursively(model, selectInclude);
221
+ }
222
+ return selectInclude;
223
+ });
198
224
  }
199
225
  injectBaseFieldSelect(model, field, value, selectInclude, context) {
200
226
  const fieldInfo = (0, cross_1.resolveField)(this.options.modelMeta, model, field);
@@ -253,24 +279,32 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
253
279
  this.injectBaseIncludeRecursively(base.name, selectInclude.include[baseRelationName]);
254
280
  }
255
281
  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;
282
+ return __awaiter(this, void 0, void 0, function* () {
283
+ const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model);
284
+ if (!modelInfo) {
285
+ return;
268
286
  }
269
- else {
270
- selectInclude.include = Object.assign({ [subRelationName]: {} }, selectInclude.include);
287
+ // get sub models of this model
288
+ 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); });
289
+ for (const subModel of subModels) {
290
+ // include sub model relation field
291
+ const subRelationName = this.makeAuxRelationName(subModel);
292
+ const includePayload = {};
293
+ if (this.options.processIncludeRelationPayload) {
294
+ // use the callback in options to process the include payload, so enhancements
295
+ // like 'policy' can do extra work (e.g., inject policy rules)
296
+ yield this.options.processIncludeRelationPayload(this.prisma, subModel.name, includePayload, this.options, this.context);
297
+ }
298
+ if (selectInclude.select) {
299
+ selectInclude.include = Object.assign({ [subRelationName]: includePayload }, selectInclude.select);
300
+ delete selectInclude.select;
301
+ }
302
+ else {
303
+ selectInclude.include = Object.assign({ [subRelationName]: includePayload }, selectInclude.include);
304
+ }
305
+ yield this.injectConcreteIncludeRecursively(subModel.name, selectInclude.include[subRelationName]);
271
306
  }
272
- this.injectConcreteIncludeRecursively(subModel.name, selectInclude.include[subRelationName]);
273
- }
307
+ });
274
308
  }
275
309
  // #endregion
276
310
  // #region create
@@ -285,6 +319,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
285
319
  if (!args.data) {
286
320
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
287
321
  }
322
+ this.sanitizeMutationPayload(args.data);
288
323
  if ((0, cross_1.isDelegateModel)(this.options.modelMeta, this.model)) {
289
324
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Model "${this.model}" is a delegate and cannot be created directly`);
290
325
  }
@@ -294,6 +329,19 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
294
329
  return this.doCreate(this.prisma, this.model, args);
295
330
  });
296
331
  }
332
+ sanitizeMutationPayload(data) {
333
+ if (!data) {
334
+ return;
335
+ }
336
+ const prisma = this.prisma;
337
+ const prismaModule = this.options.prismaModule;
338
+ (0, traverse_1.default)(data).forEach(function () {
339
+ var _a;
340
+ if ((_a = this.key) === null || _a === void 0 ? void 0 : _a.startsWith(constants_1.DELEGATE_AUX_RELATION_PREFIX)) {
341
+ throw (0, utils_1.prismaClientValidationError)(prisma, prismaModule, `Auxiliary relation field "${this.key}" cannot be set directly`);
342
+ }
343
+ });
344
+ }
297
345
  createMany(args) {
298
346
  if (!args) {
299
347
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'query argument is required');
@@ -301,6 +349,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
301
349
  if (!args.data) {
302
350
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
303
351
  }
352
+ this.sanitizeMutationPayload(args.data);
304
353
  if (!this.involvesDelegateModel(this.model)) {
305
354
  return super.createMany(args);
306
355
  }
@@ -325,6 +374,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
325
374
  if (!args.data) {
326
375
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
327
376
  }
377
+ this.sanitizeMutationPayload(args.data);
328
378
  if (!this.involvesDelegateModel(this.model)) {
329
379
  return super.createManyAndReturn(args);
330
380
  }
@@ -346,7 +396,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
346
396
  return __awaiter(this, void 0, void 0, function* () {
347
397
  args = (0, cross_1.clone)(args);
348
398
  yield this.injectCreateHierarchy(model, args);
349
- this.injectSelectIncludeHierarchy(model, args);
399
+ yield this.injectSelectIncludeHierarchy(model, args);
350
400
  if (this.options.logPrismaQuery) {
351
401
  this.logger.info(`[delegate] \`create\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
352
402
  }
@@ -462,6 +512,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
462
512
  if (!args.data) {
463
513
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
464
514
  }
515
+ this.sanitizeMutationPayload(args.data);
465
516
  if (!this.involvesDelegateModel(this.model)) {
466
517
  return super.update(args);
467
518
  }
@@ -478,6 +529,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
478
529
  if (!args.data) {
479
530
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'data field is required in query argument');
480
531
  }
532
+ this.sanitizeMutationPayload(args.data);
481
533
  if (!this.involvesDelegateModel(this.model)) {
482
534
  return _super.updateMany.call(this, args);
483
535
  }
@@ -500,6 +552,8 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
500
552
  if (!args.where) {
501
553
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, 'where field is required in query argument');
502
554
  }
555
+ this.sanitizeMutationPayload(args.update);
556
+ this.sanitizeMutationPayload(args.create);
503
557
  if ((0, cross_1.isDelegateModel)(this.options.modelMeta, this.model)) {
504
558
  throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options.prismaModule, `Model "${this.model}" is a delegate and doesn't support upsert`);
505
559
  }
@@ -508,7 +562,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
508
562
  }
509
563
  args = (0, cross_1.clone)(args);
510
564
  this.injectWhereHierarchy(this.model, args === null || args === void 0 ? void 0 : args.where);
511
- this.injectSelectIncludeHierarchy(this.model, args);
565
+ yield this.injectSelectIncludeHierarchy(this.model, args);
512
566
  if (args.create) {
513
567
  this.doProcessCreatePayload(this.model, args.create);
514
568
  }
@@ -526,7 +580,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
526
580
  return __awaiter(this, void 0, void 0, function* () {
527
581
  args = (0, cross_1.clone)(args);
528
582
  yield this.injectUpdateHierarchy(db, model, args);
529
- this.injectSelectIncludeHierarchy(model, args);
583
+ yield this.injectSelectIncludeHierarchy(model, args);
530
584
  if (this.options.logPrismaQuery) {
531
585
  this.logger.info(`[delegate] \`update\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
532
586
  }
@@ -679,7 +733,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
679
733
  return super.delete(args);
680
734
  }
681
735
  return this.queryUtils.transaction(this.prisma, (tx) => __awaiter(this, void 0, void 0, function* () {
682
- const selectInclude = this.buildSelectIncludeHierarchy(this.model, args);
736
+ const selectInclude = yield this.buildSelectIncludeHierarchy(this.model, args);
683
737
  // make sure id fields are selected
684
738
  const idFields = this.getIdFields(this.model);
685
739
  for (const idField of idFields) {
@@ -724,6 +778,7 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
724
778
  doDelete(db, model, args) {
725
779
  return __awaiter(this, void 0, void 0, function* () {
726
780
  this.injectWhereHierarchy(model, args.where);
781
+ yield this.injectSelectIncludeHierarchy(model, args);
727
782
  if (this.options.logPrismaQuery) {
728
783
  this.logger.info(`[delegate] \`delete\` ${this.getModelName(model)}: ${(0, utils_1.formatObject)(args)}`);
729
784
  }
@@ -921,11 +976,11 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
921
976
  const result = {};
922
977
  const base = this.getBaseModel(model);
923
978
  if (base) {
924
- // merge base fields
979
+ // fully merge base fields
925
980
  const baseRelationName = this.makeAuxRelationName(base);
926
981
  const baseData = entity[baseRelationName];
927
982
  if (baseData && typeof baseData === 'object') {
928
- const baseAssembled = this.assembleUp(base.name, baseData);
983
+ const baseAssembled = this.assembleHierarchy(base.name, baseData);
929
984
  Object.assign(result, baseAssembled);
930
985
  }
931
986
  }
@@ -965,14 +1020,14 @@ class DelegateProxyHandler extends proxy_1.DefaultPrismaProxyHandler {
965
1020
  const result = {};
966
1021
  const modelInfo = (0, cross_1.getModelInfo)(this.options.modelMeta, model, true);
967
1022
  if (modelInfo.discriminator) {
968
- // model is a delegate, merge sub model fields
1023
+ // model is a delegate, fully merge concrete model fields
969
1024
  const subModelName = entity[modelInfo.discriminator];
970
1025
  if (subModelName) {
971
1026
  const subModel = (0, cross_1.getModelInfo)(this.options.modelMeta, subModelName, true);
972
1027
  const subRelationName = this.makeAuxRelationName(subModel);
973
1028
  const subData = entity[subRelationName];
974
1029
  if (subData && typeof subData === 'object') {
975
- const subAssembled = this.assembleDown(subModel.name, subData);
1030
+ const subAssembled = this.assembleHierarchy(subModel.name, subData);
976
1031
  Object.assign(result, subAssembled);
977
1032
  }
978
1033
  }