@zenstackhq/runtime 1.0.0-beta.19 → 1.0.0-beta.20

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.
package/constants.d.ts CHANGED
@@ -60,3 +60,23 @@ export declare const PRISMA_PROXY_ENHANCER = "$__zenstack_enhancer";
60
60
  * Minimum Prisma version supported
61
61
  */
62
62
  export declare const PRISMA_MINIMUM_VERSION = "4.8.0";
63
+ /**
64
+ * Selector function name for fetching pre-update entity values.
65
+ */
66
+ export declare const PRE_UPDATE_VALUE_SELECTOR = "preValueSelect";
67
+ /**
68
+ * Prefix for field-level read checker function name
69
+ */
70
+ export declare const FIELD_LEVEL_READ_CHECKER_PREFIX = "readFieldCheck$";
71
+ /**
72
+ * Field-level access control evaluation selector function name
73
+ */
74
+ export declare const FIELD_LEVEL_READ_CHECKER_SELECTOR = "readFieldSelect";
75
+ /**
76
+ * Prefix for field-level update guard function name
77
+ */
78
+ export declare const FIELD_LEVEL_UPDATE_GUARD_PREFIX = "updateFieldCheck$";
79
+ /**
80
+ * Flag that indicates if the model has field-level access control
81
+ */
82
+ export declare const HAS_FIELD_LEVEL_POLICY_FLAG = "hasFieldLevelPolicy";
package/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PRISMA_MINIMUM_VERSION = exports.PRISMA_PROXY_ENHANCER = exports.PRISMA_TX_FLAG = exports.PrismaErrorCode = exports.CrudFailureReason = exports.AUXILIARY_FIELDS = exports.GUARD_FIELD_NAME = exports.TRANSACTION_FIELD_NAME = exports.DEFAULT_PASSWORD_SALT_LENGTH = void 0;
3
+ exports.HAS_FIELD_LEVEL_POLICY_FLAG = exports.FIELD_LEVEL_UPDATE_GUARD_PREFIX = exports.FIELD_LEVEL_READ_CHECKER_SELECTOR = exports.FIELD_LEVEL_READ_CHECKER_PREFIX = exports.PRE_UPDATE_VALUE_SELECTOR = exports.PRISMA_MINIMUM_VERSION = exports.PRISMA_PROXY_ENHANCER = exports.PRISMA_TX_FLAG = exports.PrismaErrorCode = exports.CrudFailureReason = exports.AUXILIARY_FIELDS = exports.GUARD_FIELD_NAME = exports.TRANSACTION_FIELD_NAME = exports.DEFAULT_PASSWORD_SALT_LENGTH = void 0;
4
4
  /**
5
5
  * Default length of password hash salt (used by bcryptjs to hash password)
6
6
  */
@@ -65,4 +65,24 @@ exports.PRISMA_PROXY_ENHANCER = '$__zenstack_enhancer';
65
65
  * Minimum Prisma version supported
66
66
  */
67
67
  exports.PRISMA_MINIMUM_VERSION = '4.8.0';
68
+ /**
69
+ * Selector function name for fetching pre-update entity values.
70
+ */
71
+ exports.PRE_UPDATE_VALUE_SELECTOR = 'preValueSelect';
72
+ /**
73
+ * Prefix for field-level read checker function name
74
+ */
75
+ exports.FIELD_LEVEL_READ_CHECKER_PREFIX = 'readFieldCheck$';
76
+ /**
77
+ * Field-level access control evaluation selector function name
78
+ */
79
+ exports.FIELD_LEVEL_READ_CHECKER_SELECTOR = 'readFieldSelect';
80
+ /**
81
+ * Prefix for field-level update guard function name
82
+ */
83
+ exports.FIELD_LEVEL_UPDATE_GUARD_PREFIX = 'updateFieldCheck$';
84
+ /**
85
+ * Flag that indicates if the model has field-level access control
86
+ */
87
+ exports.HAS_FIELD_LEVEL_POLICY_FLAG = 'hasFieldLevelPolicy';
68
88
  //# sourceMappingURL=constants.js.map
package/constants.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;GAEG;AACU,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D;;GAEG;AACU,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,8BAAsB,EAAE,wBAAgB,CAAC,CAAC;AAE3E;;GAEG;AACH,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB;;OAEG;IACH,gEAA2C,CAAA;IAE3C;;OAEG;IACH,4EAAuD,CAAA;AAC3D,CAAC,EAVW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAU5B;AAED;;GAEG;AACH,IAAY,eAoBX;AApBD,WAAY,eAAe;IACvB;;OAEG;IACH,qDAAkC,CAAA;IAElC;;OAEG;IACH,+CAA4B,CAAA;IAE5B;;OAEG;IACH,gEAA6C,CAAA;IAE7C;;OAEG;IACH,uDAAoC,CAAA;AACxC,CAAC,EApBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoB1B;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C;;GAEG;AACU,QAAA,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D;;GAEG;AACU,QAAA,sBAAsB,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACU,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;GAEG;AACU,QAAA,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D;;GAEG;AACU,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,8BAAsB,EAAE,wBAAgB,CAAC,CAAC;AAE3E;;GAEG;AACH,IAAY,iBAUX;AAVD,WAAY,iBAAiB;IACzB;;OAEG;IACH,gEAA2C,CAAA;IAE3C;;OAEG;IACH,4EAAuD,CAAA;AAC3D,CAAC,EAVW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAU5B;AAED;;GAEG;AACH,IAAY,eAoBX;AApBD,WAAY,eAAe;IACvB;;OAEG;IACH,qDAAkC,CAAA;IAElC;;OAEG;IACH,+CAA4B,CAAA;IAE5B;;OAEG;IACH,gEAA6C,CAAA;IAE7C;;OAEG;IACH,uDAAoC,CAAA;AACxC,CAAC,EApBW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAoB1B;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,gBAAgB,CAAC;AAE/C;;GAEG;AACU,QAAA,qBAAqB,GAAG,sBAAsB,CAAC;AAE5D;;GAEG;AACU,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACU,QAAA,yBAAyB,GAAG,gBAAgB,CAAC;AAE1D;;GAEG;AACU,QAAA,+BAA+B,GAAG,iBAAiB,CAAC;AAEjE;;GAEG;AACU,QAAA,iCAAiC,GAAG,iBAAiB,CAAC;AAEnE;;GAEG;AACU,QAAA,+BAA+B,GAAG,mBAAmB,CAAC;AAEnE;;GAEG;AACU,QAAA,2BAA2B,GAAG,qBAAqB,CAAC"}
@@ -41,6 +41,7 @@ export declare class PolicyProxyHandler<DbClient extends DbClientContract> imple
41
41
  aggregate(args: any): Promise<unknown>;
42
42
  groupBy(args: any): Promise<unknown>;
43
43
  count(args: any): Promise<unknown>;
44
+ subscribe(args: any): Promise<unknown>;
44
45
  private get shouldLogQuery();
45
46
  private transaction;
46
47
  private runPostWriteChecks;
@@ -59,15 +59,17 @@ class PolicyProxyHandler {
59
59
  if (!args.where) {
60
60
  throw (0, utils_1.prismaClientValidationError)(this.prisma, 'where field is required in query argument');
61
61
  }
62
+ const origArgs = args;
62
63
  args = this.utils.clone(args);
63
64
  if (!(yield this.utils.injectForRead(this.prisma, this.model, args))) {
64
65
  return null;
65
66
  }
67
+ this.utils.injectReadCheckSelect(this.model, args);
66
68
  if (this.shouldLogQuery) {
67
69
  this.logger.info(`[policy] \`findUnique\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
68
70
  }
69
71
  const result = yield this.modelClient.findUnique(args);
70
- this.utils.postProcessForRead(result);
72
+ this.utils.postProcessForRead(result, this.model, origArgs);
71
73
  return result;
72
74
  });
73
75
  }
@@ -79,57 +81,65 @@ class PolicyProxyHandler {
79
81
  if (!args.where) {
80
82
  throw (0, utils_1.prismaClientValidationError)(this.prisma, 'where field is required in query argument');
81
83
  }
84
+ const origArgs = args;
82
85
  args = this.utils.clone(args);
83
86
  if (!(yield this.utils.injectForRead(this.prisma, this.model, args))) {
84
87
  throw this.utils.notFound(this.model);
85
88
  }
89
+ this.utils.injectReadCheckSelect(this.model, args);
86
90
  if (this.shouldLogQuery) {
87
91
  this.logger.info(`[policy] \`findUniqueOrThrow\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
88
92
  }
89
93
  const result = yield this.modelClient.findUniqueOrThrow(args);
90
- this.utils.postProcessForRead(result);
94
+ this.utils.postProcessForRead(result, this.model, origArgs);
91
95
  return result;
92
96
  });
93
97
  }
94
98
  findFirst(args) {
95
99
  return __awaiter(this, void 0, void 0, function* () {
100
+ const origArgs = args;
96
101
  args = args ? this.utils.clone(args) : {};
97
102
  if (!(yield this.utils.injectForRead(this.prisma, this.model, args))) {
98
103
  return null;
99
104
  }
105
+ this.utils.injectReadCheckSelect(this.model, args);
100
106
  if (this.shouldLogQuery) {
101
107
  this.logger.info(`[policy] \`findFirst\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
102
108
  }
103
109
  const result = yield this.modelClient.findFirst(args);
104
- this.utils.postProcessForRead(result);
110
+ this.utils.postProcessForRead(result, this.model, origArgs);
105
111
  return result;
106
112
  });
107
113
  }
108
114
  findFirstOrThrow(args) {
109
115
  return __awaiter(this, void 0, void 0, function* () {
116
+ const origArgs = args;
110
117
  args = args ? this.utils.clone(args) : {};
111
118
  if (!(yield this.utils.injectForRead(this.prisma, this.model, args))) {
112
119
  throw this.utils.notFound(this.model);
113
120
  }
121
+ this.utils.injectReadCheckSelect(this.model, args);
114
122
  if (this.shouldLogQuery) {
115
123
  this.logger.info(`[policy] \`findFirstOrThrow\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
116
124
  }
117
125
  const result = yield this.modelClient.findFirstOrThrow(args);
118
- this.utils.postProcessForRead(result);
126
+ this.utils.postProcessForRead(result, this.model, origArgs);
119
127
  return result;
120
128
  });
121
129
  }
122
130
  findMany(args) {
123
131
  return __awaiter(this, void 0, void 0, function* () {
132
+ const origArgs = args;
124
133
  args = args ? this.utils.clone(args) : {};
125
134
  if (!(yield this.utils.injectForRead(this.prisma, this.model, args))) {
126
135
  return [];
127
136
  }
137
+ this.utils.injectReadCheckSelect(this.model, args);
128
138
  if (this.shouldLogQuery) {
129
139
  this.logger.info(`[policy] \`findMany\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
130
140
  }
131
141
  const result = yield this.modelClient.findMany(args);
132
- this.utils.postProcessForRead(result);
142
+ this.utils.postProcessForRead(result, this.model, origArgs);
133
143
  return result;
134
144
  });
135
145
  }
@@ -230,7 +240,7 @@ class PolicyProxyHandler {
230
240
  if (backLinkField === null || backLinkField === void 0 ? void 0 : backLinkField.isRelationOwner) {
231
241
  // the target side of relation owns the relation,
232
242
  // check if it's updatable
233
- yield this.utils.checkPolicyForUnique(model, args.where, 'update', db);
243
+ yield this.utils.checkPolicyForUnique(model, args.where, 'update', db, args);
234
244
  }
235
245
  }
236
246
  if (context.parent.connect) {
@@ -272,7 +282,7 @@ class PolicyProxyHandler {
272
282
  yield this.utils.checkExistence(db, model, args, true);
273
283
  // the target side of relation owns the relation,
274
284
  // check if it's updatable
275
- yield this.utils.checkPolicyForUnique(model, args, 'update', db);
285
+ yield this.utils.checkPolicyForUnique(model, args, 'update', db, args);
276
286
  }
277
287
  }
278
288
  }),
@@ -464,6 +474,7 @@ class PolicyProxyHandler {
464
474
  if (!args.data) {
465
475
  throw (0, utils_1.prismaClientValidationError)(this.prisma, 'data field is required in query argument');
466
476
  }
477
+ args = this.utils.clone(args);
467
478
  const { result, error } = yield this.transaction((tx) => __awaiter(this, void 0, void 0, function* () {
468
479
  // proceed with nested writes and collect post-write checks
469
480
  const { result, postWriteChecks } = yield this.doUpdate(args, tx);
@@ -482,7 +493,6 @@ class PolicyProxyHandler {
482
493
  }
483
494
  doUpdate(args, db) {
484
495
  return __awaiter(this, void 0, void 0, function* () {
485
- args = this.utils.clone(args);
486
496
  // collected post-update checks
487
497
  const postWriteChecks = [];
488
498
  // registers a post-update check task
@@ -542,7 +552,7 @@ class PolicyProxyHandler {
542
552
  const backLinkField = this.utils.getModelField(model, context.field.backLink);
543
553
  if (backLinkField.isRelationOwner) {
544
554
  // update happens on the related model, require updatable
545
- yield this.utils.checkPolicyForUnique(model, args, 'update', db);
555
+ yield this.utils.checkPolicyForUnique(model, args, 'update', db, args);
546
556
  // register post-update check
547
557
  yield _registerPostUpdateCheck(model, args);
548
558
  }
@@ -579,7 +589,7 @@ class PolicyProxyHandler {
579
589
  if (thisModelUpdate) {
580
590
  this.utils.tryReject(db, this.model, 'update');
581
591
  // check pre-update guard
582
- yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'update', db);
592
+ yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'update', db, args);
583
593
  // handles the case where id fields are updated
584
594
  const ids = this.utils.clone(existing);
585
595
  for (const key of Object.keys(existing)) {
@@ -643,7 +653,7 @@ class PolicyProxyHandler {
643
653
  if (existing) {
644
654
  // update case
645
655
  // check pre-update guard
646
- yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'update', db);
656
+ yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'update', db, args);
647
657
  // register post-update check
648
658
  yield _registerPostUpdateCheck(model, uniqueFilter);
649
659
  // convert upsert to update
@@ -698,7 +708,7 @@ class PolicyProxyHandler {
698
708
  // handle not-found
699
709
  yield this.utils.checkExistence(db, model, uniqueFilter, true);
700
710
  // check delete guard
701
- yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'delete', db);
711
+ yield this.utils.checkPolicyForUnique(model, uniqueFilter, 'delete', db, args);
702
712
  }),
703
713
  deleteMany: (model, args, context) => __awaiter(this, void 0, void 0, function* () {
704
714
  // inject delete guard
@@ -784,6 +794,7 @@ class PolicyProxyHandler {
784
794
  }
785
795
  yield this.utils.tryReject(this.prisma, this.model, 'create');
786
796
  yield this.utils.tryReject(this.prisma, this.model, 'update');
797
+ args = this.utils.clone(args);
787
798
  // We can call the native "upsert" because we can't tell if an entity was created or updated
788
799
  // for doing post-write check accordingly. Instead, decompose it into create or update.
789
800
  const { result, error } = yield this.transaction((tx) => __awaiter(this, void 0, void 0, function* () {
@@ -831,7 +842,7 @@ class PolicyProxyHandler {
831
842
  // check existence
832
843
  yield this.utils.checkExistence(tx, this.model, args.where, true);
833
844
  // inject delete guard
834
- yield this.utils.checkPolicyForUnique(this.model, args.where, 'delete', tx);
845
+ yield this.utils.checkPolicyForUnique(this.model, args.where, 'delete', tx, args);
835
846
  // proceed with the deletion
836
847
  if (this.shouldLogQuery) {
837
848
  this.logger.info(`[policy] \`delete\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
@@ -867,6 +878,7 @@ class PolicyProxyHandler {
867
878
  if (!args) {
868
879
  throw (0, utils_1.prismaClientValidationError)(this.prisma, 'query argument is required');
869
880
  }
881
+ args = this.utils.clone(args);
870
882
  // inject policy conditions
871
883
  yield this.utils.injectAuthGuard(this.prisma, args, this.model, 'read');
872
884
  if (this.shouldLogQuery) {
@@ -880,6 +892,7 @@ class PolicyProxyHandler {
880
892
  if (!args) {
881
893
  throw (0, utils_1.prismaClientValidationError)(this.prisma, 'query argument is required');
882
894
  }
895
+ args = this.utils.clone(args);
883
896
  // inject policy conditions
884
897
  yield this.utils.injectAuthGuard(this.prisma, args, this.model, 'read');
885
898
  if (this.shouldLogQuery) {
@@ -891,7 +904,7 @@ class PolicyProxyHandler {
891
904
  count(args) {
892
905
  return __awaiter(this, void 0, void 0, function* () {
893
906
  // inject policy conditions
894
- args = args !== null && args !== void 0 ? args : {};
907
+ args = args ? this.utils.clone(args) : {};
895
908
  yield this.utils.injectAuthGuard(this.prisma, args, this.model, 'read');
896
909
  if (this.shouldLogQuery) {
897
910
  this.logger.info(`[policy] \`count\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
@@ -900,6 +913,50 @@ class PolicyProxyHandler {
900
913
  });
901
914
  }
902
915
  //#endregion
916
+ //#region Subscribe (Prisma Pulse)
917
+ subscribe(args) {
918
+ return __awaiter(this, void 0, void 0, function* () {
919
+ const readGuard = this.utils.getAuthGuard(this.prisma, this.model, 'read');
920
+ if (this.utils.isTrue(readGuard)) {
921
+ // no need to inject
922
+ if (this.shouldLogQuery) {
923
+ this.logger.info(`[policy] \`subscribe\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
924
+ }
925
+ return this.modelClient.subscribe(args);
926
+ }
927
+ if (!args) {
928
+ // include all
929
+ args = { create: {}, update: {}, delete: {} };
930
+ }
931
+ else {
932
+ if (typeof args !== 'object') {
933
+ throw (0, utils_1.prismaClientValidationError)(this.prisma, 'argument must be an object');
934
+ }
935
+ if (Object.keys(args).length === 0) {
936
+ // include all
937
+ args = { create: {}, update: {}, delete: {} };
938
+ }
939
+ else {
940
+ args = this.utils.clone(args);
941
+ }
942
+ }
943
+ // inject into subscribe conditions
944
+ if (args.create) {
945
+ args.create.after = this.utils.and(args.create.after, readGuard);
946
+ }
947
+ if (args.update) {
948
+ args.update.after = this.utils.and(args.update.after, readGuard);
949
+ }
950
+ if (args.delete) {
951
+ args.delete.before = this.utils.and(args.delete.before, readGuard);
952
+ }
953
+ if (this.shouldLogQuery) {
954
+ this.logger.info(`[policy] \`subscribe\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
955
+ }
956
+ return this.modelClient.subscribe(args);
957
+ });
958
+ }
959
+ //#endregion
903
960
  //#region Utils
904
961
  get shouldLogQuery() {
905
962
  return !!this.logPrismaQuery && this.logger.enabled('info');
@@ -915,7 +972,7 @@ class PolicyProxyHandler {
915
972
  }
916
973
  runPostWriteChecks(postWriteChecks, db) {
917
974
  return __awaiter(this, void 0, void 0, function* () {
918
- yield Promise.all(postWriteChecks.map(({ model, operation, uniqueFilter, preValue }) => __awaiter(this, void 0, void 0, function* () { return this.utils.checkPolicyForUnique(model, uniqueFilter, operation, db, preValue); })));
975
+ yield Promise.all(postWriteChecks.map(({ model, operation, uniqueFilter, preValue }) => __awaiter(this, void 0, void 0, function* () { return this.utils.checkPolicyForUnique(model, uniqueFilter, operation, db, undefined, preValue); })));
919
976
  });
920
977
  }
921
978
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/enhancements/policy/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/enhancements/policy/handler.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class Logger {
9
9
  constructor(prisma) {
10
10
  this.prisma = prisma;
11
11
  this.eventNames = [];
12
- const engine = this.prisma.getEngine();
12
+ const engine = this.prisma._engine;
13
13
  this.emitter = engine ? engine.logEmitter : undefined;
14
14
  if (this.emitter) {
15
15
  this.eventNames = this.emitter.eventNames();
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/enhancements/policy/logger.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAIvD;;GAEG;AACH,MAAa,MAAM;IAIf,YAA6B,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAFhC,eAAU,GAA2B,EAAE,CAAC;QAG5C,MAAM,MAAM,GAAI,IAAI,CAAC,MAAc,CAAC,SAAS,EAAE,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAE,MAAM,CAAC,UAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/C;IACL,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,KAAgC;QAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAAgC,EAAE,OAAe;;QACxD,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;YACP,MAAM,EAAE,UAAU;SACrB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAe;QACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ;AAlDD,wBAkDC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/enhancements/policy/logger.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAIvD;;GAEG;AACH,MAAa,MAAM;IAIf,YAA6B,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAFhC,eAAU,GAA2B,EAAE,CAAC;QAG5C,MAAM,MAAM,GAAI,IAAI,CAAC,MAAc,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAE,MAAM,CAAC,UAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;SAC/C;IACL,CAAC;IAED;;OAEG;IACI,OAAO,CAAC,KAAgC;QAC3C,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,GAAG,CAAC,KAAgC,EAAE,OAAe;;QACxD,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,KAAK,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO;YACP,MAAM,EAAE,UAAU;SACrB,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,IAAI,CAAC,OAAe;QACvB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAe;QACxB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;CACJ;AAlDD,wBAkDC"}
@@ -17,17 +17,17 @@ export declare class PolicyUtil {
17
17
  /**
18
18
  * Creates a conjunction of a list of query conditions.
19
19
  */
20
- and(...conditions: (boolean | object)[]): object;
20
+ and(...conditions: (boolean | object | undefined)[]): object;
21
21
  /**
22
22
  * Creates a disjunction of a list of query conditions.
23
23
  */
24
- or(...conditions: (boolean | object)[]): object;
24
+ or(...conditions: (boolean | object | undefined)[]): object;
25
25
  /**
26
26
  * Creates a negation of a query condition.
27
27
  */
28
28
  not(condition: object | boolean | undefined): object;
29
- private isTrue;
30
- private isFalse;
29
+ isTrue(condition: object): boolean;
30
+ isFalse(condition: object): boolean;
31
31
  private makeTrue;
32
32
  private makeFalse;
33
33
  private reduce;
@@ -38,6 +38,10 @@ export declare class PolicyUtil {
38
38
  * otherwise returns a guard object
39
39
  */
40
40
  getAuthGuard(db: Record<string, DbOperations>, model: string, operation: PolicyOperationKind, preValue?: any): object;
41
+ /**
42
+ * Get field-level auth guard
43
+ */
44
+ getFieldUpdateAuthGuard(db: Record<string, DbOperations>, model: string, field: string): object;
41
45
  /**
42
46
  * Checks if the given model has a policy guard for the given operation.
43
47
  */
@@ -73,7 +77,8 @@ export declare class PolicyUtil {
73
77
  * Given a model and a unique filter, checks the operation is allowed by policies and field validations.
74
78
  * Rejects with an error if not allowed.
75
79
  */
76
- checkPolicyForUnique(model: string, uniqueFilter: any, operation: PolicyOperationKind, db: Record<string, DbOperations>, preValue?: any): Promise<void>;
80
+ checkPolicyForUnique(model: string, uniqueFilter: any, operation: PolicyOperationKind, db: Record<string, DbOperations>, args: any, preValue?: any): Promise<void>;
81
+ private getFieldUpdateGuards;
77
82
  /**
78
83
  * Tries rejecting a request based on static "false" policy.
79
84
  */
@@ -92,6 +97,13 @@ export declare class PolicyUtil {
92
97
  result: unknown;
93
98
  error?: Error;
94
99
  }>;
100
+ /**
101
+ * Injects field selection needed for checking field-level read policy into query args.
102
+ * @returns
103
+ */
104
+ injectReadCheckSelect(model: string, args: any): void;
105
+ private doInjectReadCheckSelect;
106
+ private makeAllScalarFieldSelect;
95
107
  deniedByPolicy(model: string, operation: PolicyOperationKind, extra?: string, reason?: CrudFailureReason): Error;
96
108
  notFound(model: string): Error;
97
109
  validationError(message: string): void;
@@ -100,7 +112,10 @@ export declare class PolicyUtil {
100
112
  * Gets field selection for fetching pre-update entity values for the given model.
101
113
  */
102
114
  getPreValueSelect(model: string): object | undefined;
115
+ private getReadFieldSelect;
116
+ private checkReadField;
103
117
  private hasFieldValidation;
118
+ private hasFieldLevelPolicy;
104
119
  /**
105
120
  * Gets Zod schema for the given model and access kind.
106
121
  *
@@ -110,7 +125,8 @@ export declare class PolicyUtil {
110
125
  /**
111
126
  * Post processing checks and clean-up for read model entities.
112
127
  */
113
- postProcessForRead(data: any): void;
128
+ postProcessForRead(data: any, model: string, queryArgs: any): void;
129
+ private doPostProcessForRead;
114
130
  /**
115
131
  * Gets information for a specific model field.
116
132
  */
@@ -162,6 +162,24 @@ class PolicyUtil {
162
162
  const r = provider({ user: this.user, preValue }, db);
163
163
  return this.reduce(r);
164
164
  }
165
+ /**
166
+ * Get field-level auth guard
167
+ */
168
+ getFieldUpdateAuthGuard(db, model, field) {
169
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
170
+ if (!guard) {
171
+ throw this.unknownError(`unable to load policy guard for ${model}`);
172
+ }
173
+ const provider = guard[`${constants_1.FIELD_LEVEL_UPDATE_GUARD_PREFIX}${field}`];
174
+ if (typeof provider === 'boolean') {
175
+ return this.reduce(provider);
176
+ }
177
+ if (!provider) {
178
+ return this.makeTrue();
179
+ }
180
+ const r = provider({ user: this.user }, db);
181
+ return this.reduce(r);
182
+ }
165
183
  /**
166
184
  * Checks if the given model has a policy guard for the given operation.
167
185
  */
@@ -197,11 +215,24 @@ class PolicyUtil {
197
215
  */
198
216
  injectAuthGuard(db, args, model, operation) {
199
217
  return __awaiter(this, void 0, void 0, function* () {
200
- const guard = this.getAuthGuard(db, model, operation);
218
+ let guard = this.getAuthGuard(db, model, operation);
201
219
  if (this.isFalse(guard)) {
202
220
  args.where = this.makeFalse();
203
221
  return false;
204
222
  }
223
+ if (operation === 'update' && args) {
224
+ // merge field-level policy guards
225
+ const fieldUpdateGuard = this.getFieldUpdateGuards(db, model, args);
226
+ if (fieldUpdateGuard.rejectedByField) {
227
+ // rejected
228
+ args.where = this.makeFalse();
229
+ return false;
230
+ }
231
+ else if (fieldUpdateGuard.guard) {
232
+ // merge
233
+ guard = this.and(guard, fieldUpdateGuard.guard);
234
+ }
235
+ }
205
236
  if (args.where) {
206
237
  // inject into relation fields:
207
238
  // to-many: some/none/every
@@ -480,12 +511,24 @@ class PolicyUtil {
480
511
  * Given a model and a unique filter, checks the operation is allowed by policies and field validations.
481
512
  * Rejects with an error if not allowed.
482
513
  */
483
- checkPolicyForUnique(model, uniqueFilter, operation, db, preValue) {
514
+ checkPolicyForUnique(model, uniqueFilter, operation, db, args, preValue) {
484
515
  return __awaiter(this, void 0, void 0, function* () {
485
- const guard = this.getAuthGuard(db, model, operation, preValue);
516
+ let guard = this.getAuthGuard(db, model, operation, preValue);
486
517
  if (this.isFalse(guard)) {
487
518
  throw this.deniedByPolicy(model, operation, `entity ${(0, utils_1.formatObject)(uniqueFilter)} failed policy check`);
488
519
  }
520
+ if (operation === 'update' && args) {
521
+ // merge field-level policy guards
522
+ const fieldUpdateGuard = this.getFieldUpdateGuards(db, model, args);
523
+ if (fieldUpdateGuard.rejectedByField) {
524
+ // rejected
525
+ throw this.deniedByPolicy(model, 'update', `entity ${(0, utils_1.formatObject)(uniqueFilter)} failed update policy check for field "${fieldUpdateGuard.rejectedByField}"`);
526
+ }
527
+ else if (fieldUpdateGuard.guard) {
528
+ // merge
529
+ guard = this.and(guard, fieldUpdateGuard.guard);
530
+ }
531
+ }
489
532
  // Zod schema is to be checked for "create" and "postUpdate"
490
533
  const schema = ['create', 'postUpdate'].includes(operation) ? this.getZodSchema(model) : undefined;
491
534
  if (this.isTrue(guard) && !schema) {
@@ -523,6 +566,21 @@ class PolicyUtil {
523
566
  }
524
567
  });
525
568
  }
569
+ getFieldUpdateGuards(db, model, args) {
570
+ var _a;
571
+ const allFieldGuards = [];
572
+ for (const [k, v] of Object.entries((_a = args.data) !== null && _a !== void 0 ? _a : args)) {
573
+ if (typeof v === 'undefined') {
574
+ continue;
575
+ }
576
+ const fieldGuard = this.getFieldUpdateAuthGuard(db, model, k);
577
+ if (this.isFalse(fieldGuard)) {
578
+ return { guard: allFieldGuards, rejectedByField: k };
579
+ }
580
+ allFieldGuards.push(fieldGuard);
581
+ }
582
+ return { guard: this.and(...allFieldGuards), rejectedByField: undefined };
583
+ }
526
584
  /**
527
585
  * Tries rejecting a request based on static "false" policy.
528
586
  */
@@ -565,6 +623,8 @@ class PolicyUtil {
565
623
  if (!injectResult) {
566
624
  return { error, result: undefined };
567
625
  }
626
+ // inject select needed for field-level read checks
627
+ this.injectReadCheckSelect(model, readArgs);
568
628
  if (this.shouldLogQuery) {
569
629
  this.logger.info(`[policy] checking read-back, \`findFirst\` ${model}:\n${(0, utils_1.formatObject)(readArgs)}`);
570
630
  }
@@ -572,10 +632,84 @@ class PolicyUtil {
572
632
  if (!result) {
573
633
  return { error, result: undefined };
574
634
  }
575
- this.postProcessForRead(result);
635
+ this.postProcessForRead(result, model, selectInclude);
576
636
  return { result, error: undefined };
577
637
  });
578
638
  }
639
+ /**
640
+ * Injects field selection needed for checking field-level read policy into query args.
641
+ * @returns
642
+ */
643
+ injectReadCheckSelect(model, args) {
644
+ if (!this.hasFieldLevelPolicy(model)) {
645
+ return;
646
+ }
647
+ const readFieldSelect = this.getReadFieldSelect(model);
648
+ if (!readFieldSelect) {
649
+ return;
650
+ }
651
+ this.doInjectReadCheckSelect(model, args, { select: readFieldSelect });
652
+ }
653
+ doInjectReadCheckSelect(model, args, input) {
654
+ if (!(input === null || input === void 0 ? void 0 : input.select)) {
655
+ return;
656
+ }
657
+ let target; // injection target
658
+ let isInclude = false; // if the target is include or select
659
+ if (args.select) {
660
+ target = args.select;
661
+ isInclude = false;
662
+ }
663
+ else if (args.include) {
664
+ target = args.include;
665
+ isInclude = true;
666
+ }
667
+ else {
668
+ target = args.select = this.makeAllScalarFieldSelect(model);
669
+ isInclude = false;
670
+ }
671
+ if (!isInclude) {
672
+ // merge selects
673
+ for (const [k, v] of Object.entries(input.select)) {
674
+ if (v === true) {
675
+ if (!target[k]) {
676
+ target[k] = true;
677
+ }
678
+ }
679
+ }
680
+ }
681
+ // recurse into nested selects (relation fields)
682
+ for (const [k, v] of Object.entries(input.select)) {
683
+ if (typeof v === 'object' && (v === null || v === void 0 ? void 0 : v.select)) {
684
+ const field = (0, model_meta_1.resolveField)(this.modelMeta, model, k);
685
+ if (field === null || field === void 0 ? void 0 : field.isDataModel) {
686
+ // recurse into relation
687
+ if (isInclude && target[k] === true) {
688
+ // select all fields for the relation
689
+ target[k] = { select: this.makeAllScalarFieldSelect(field.type) };
690
+ }
691
+ else if (!target[k]) {
692
+ // ensure an empty select clause
693
+ target[k] = { select: {} };
694
+ }
695
+ // recurse
696
+ this.doInjectReadCheckSelect(field.type, target[k], v);
697
+ }
698
+ }
699
+ }
700
+ }
701
+ makeAllScalarFieldSelect(model) {
702
+ const fields = this.modelMeta.fields[(0, lower_case_first_1.lowerCaseFirst)(model)];
703
+ const result = {};
704
+ if (fields) {
705
+ Object.entries(fields).forEach(([k, v]) => {
706
+ if (!v.isDataModel) {
707
+ result[k] = true;
708
+ }
709
+ });
710
+ }
711
+ return result;
712
+ }
579
713
  //#endregion
580
714
  //#region Errors
581
715
  deniedByPolicy(model, operation, extra, reason) {
@@ -607,12 +741,39 @@ class PolicyUtil {
607
741
  if (!guard) {
608
742
  throw this.unknownError(`unable to load policy guard for ${model}`);
609
743
  }
610
- return guard.preValueSelect;
744
+ return guard[constants_1.PRE_UPDATE_VALUE_SELECTOR];
745
+ }
746
+ getReadFieldSelect(model) {
747
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
748
+ if (!guard) {
749
+ throw this.unknownError(`unable to load policy guard for ${model}`);
750
+ }
751
+ return guard[constants_1.FIELD_LEVEL_READ_CHECKER_SELECTOR];
752
+ }
753
+ checkReadField(model, field, entity) {
754
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
755
+ if (!guard) {
756
+ throw this.unknownError(`unable to load policy guard for ${model}`);
757
+ }
758
+ const func = guard[`${constants_1.FIELD_LEVEL_READ_CHECKER_PREFIX}${field}`];
759
+ if (!func) {
760
+ return true;
761
+ }
762
+ else {
763
+ return func(entity, { user: this.user });
764
+ }
611
765
  }
612
766
  hasFieldValidation(model) {
613
767
  var _a, _b;
614
768
  return ((_b = (_a = this.policy.validation) === null || _a === void 0 ? void 0 : _a[(0, lower_case_first_1.lowerCaseFirst)(model)]) === null || _b === void 0 ? void 0 : _b.hasValidation) === true;
615
769
  }
770
+ hasFieldLevelPolicy(model) {
771
+ const guard = this.policy.guard[(0, lower_case_first_1.lowerCaseFirst)(model)];
772
+ if (!guard) {
773
+ throw this.unknownError(`unable to load policy guard for ${model}`);
774
+ }
775
+ return !!guard[constants_1.HAS_FIELD_LEVEL_POLICY_FLAG];
776
+ }
616
777
  /**
617
778
  * Gets Zod schema for the given model and access kind.
618
779
  *
@@ -629,11 +790,18 @@ class PolicyUtil {
629
790
  /**
630
791
  * Post processing checks and clean-up for read model entities.
631
792
  */
632
- postProcessForRead(data) {
793
+ postProcessForRead(data, model, queryArgs) {
794
+ // preserve the original data as it may be needed for checking field-level readability,
795
+ // while the "data" will be manipulated during traversal (deleting unreadable fields)
796
+ const origData = this.clone(data);
797
+ this.doPostProcessForRead(data, model, origData, queryArgs, this.hasFieldLevelPolicy(model));
798
+ }
799
+ doPostProcessForRead(data, model, fullData, queryArgs, hasFieldLevelPolicy, path = '') {
800
+ var _a, _b;
633
801
  if (data === null || data === undefined) {
634
802
  return;
635
803
  }
636
- for (const entityData of (0, utils_1.enumerate)(data)) {
804
+ for (const [entityData, entityFullData] of (0, utils_1.zip)(data, fullData)) {
637
805
  if (typeof entityData !== 'object' || !entityData) {
638
806
  return;
639
807
  }
@@ -643,11 +811,51 @@ class PolicyUtil {
643
811
  delete entityData[auxField];
644
812
  }
645
813
  }
646
- for (const fieldData of Object.values(entityData)) {
647
- if (typeof fieldData !== 'object' || !fieldData) {
814
+ for (const [field, fieldData] of Object.entries(entityData)) {
815
+ if (fieldData === undefined) {
816
+ continue;
817
+ }
818
+ const fieldInfo = (0, model_meta_1.resolveField)(this.modelMeta, model, field);
819
+ if (!fieldInfo) {
820
+ // could be _count, etc.
648
821
  continue;
649
822
  }
650
- this.postProcessForRead(fieldData);
823
+ if (hasFieldLevelPolicy) {
824
+ // 1. remove fields selected for checking field-level policies but not selected by the original query args
825
+ // 2. evaluate field-level policies and remove fields that are not readable
826
+ if (!fieldInfo.isDataModel) {
827
+ // scalar field, delete unselected ones
828
+ const select = queryArgs === null || queryArgs === void 0 ? void 0 : queryArgs.select;
829
+ if (select && typeof select === 'object' && select[field] !== true) {
830
+ // there's a select clause but this field is not included
831
+ delete entityData[field];
832
+ continue;
833
+ }
834
+ }
835
+ else {
836
+ // relation field, delete if not selected or included
837
+ const include = queryArgs === null || queryArgs === void 0 ? void 0 : queryArgs.include;
838
+ const select = queryArgs === null || queryArgs === void 0 ? void 0 : queryArgs.select;
839
+ if (!(include === null || include === void 0 ? void 0 : include[field]) && !(select === null || select === void 0 ? void 0 : select[field])) {
840
+ // relation field not included or selected
841
+ delete entityData[field];
842
+ continue;
843
+ }
844
+ }
845
+ // delete unreadable fields
846
+ if (!this.checkReadField(model, field, entityFullData)) {
847
+ if (this.shouldLogQuery) {
848
+ this.logger.info(`[policy] dropping unreadable field ${path ? path + '.' : ''}${field}`);
849
+ }
850
+ delete entityData[field];
851
+ continue;
852
+ }
853
+ }
854
+ if (fieldInfo.isDataModel) {
855
+ // recurse into nested fields
856
+ const nextArgs = (_b = ((_a = queryArgs === null || queryArgs === void 0 ? void 0 : queryArgs.select) !== null && _a !== void 0 ? _a : queryArgs === null || queryArgs === void 0 ? void 0 : queryArgs.include)) === null || _b === void 0 ? void 0 : _b[field];
857
+ this.doPostProcessForRead(fieldData, fieldInfo.type, entityFullData[field], nextArgs, hasFieldLevelPolicy, path ? path + '.' + field : field);
858
+ }
651
859
  }
652
860
  }
653
861
  }
@@ -1 +1 @@
1
- {"version":3,"file":"policy-utils.js","sourceRoot":"","sources":["../../../src/enhancements/policy/policy-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-utils.js","sourceRoot":"","sources":["../../../src/enhancements/policy/policy-utils.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export interface PrismaProxyHandler {
25
25
  aggregate(args: any): Promise<unknown>;
26
26
  groupBy(args: any): Promise<unknown>;
27
27
  count(args: any): Promise<unknown | number>;
28
+ subscribe(args: any): Promise<unknown>;
28
29
  }
29
30
  /**
30
31
  * All Prisma operation names
@@ -60,6 +61,7 @@ export declare class DefaultPrismaProxyHandler implements PrismaProxyHandler {
60
61
  aggregate(args: any): Promise<unknown>;
61
62
  groupBy(args: any): Promise<unknown>;
62
63
  count(args: any): Promise<unknown>;
64
+ subscribe(args: any): Promise<unknown>;
63
65
  /**
64
66
  * Processes result entities before they're returned
65
67
  */
@@ -121,6 +121,12 @@ class DefaultPrismaProxyHandler {
121
121
  return this.prisma[this.model].count(args);
122
122
  });
123
123
  }
124
+ subscribe(args) {
125
+ return __awaiter(this, void 0, void 0, function* () {
126
+ args = yield this.preprocessArgs('subscribe', args);
127
+ return this.prisma[this.model].subscribe(args);
128
+ });
129
+ }
124
130
  /**
125
131
  * Processes result entities before they're returned
126
132
  */
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/enhancements/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../src/enhancements/proxy.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import type { DbOperations, FieldInfo, PolicyOperationKind, QueryContext } from '../types';
3
+ import { FIELD_LEVEL_READ_CHECKER_SELECTOR, PRE_UPDATE_VALUE_SELECTOR, FIELD_LEVEL_READ_CHECKER_PREFIX, FIELD_LEVEL_UPDATE_GUARD_PREFIX, HAS_FIELD_LEVEL_POLICY_FLAG } from '../constants';
3
4
  /**
4
5
  * Metadata for a model-level unique constraint
5
6
  * e.g.: @@unique([a, b])
@@ -23,17 +24,18 @@ export type PolicyFunc = (context: QueryContext, db: Record<string, DbOperations
23
24
  * Function for getting policy guard with a given context
24
25
  */
25
26
  export type InputCheckFunc = (args: any, context: QueryContext) => boolean;
27
+ /**
28
+ * Function for getting policy guard with a given context
29
+ */
30
+ export type ReadFieldCheckFunc = (input: any, context: QueryContext) => boolean;
26
31
  /**
27
32
  * Policy definition
28
33
  */
29
34
  export type PolicyDef = {
30
- guard: Record<string, {
31
- allowAll?: boolean;
32
- denyAll?: boolean;
33
- } & Partial<Record<PolicyOperationKind, PolicyFunc>> & {
34
- create_input: InputCheckFunc;
35
- } & {
36
- preValueSelect?: object;
35
+ guard: Record<string, Partial<Record<PolicyOperationKind, PolicyFunc | boolean>> & Partial<Record<`${PolicyOperationKind}_input`, InputCheckFunc | boolean>> & Record<`${typeof FIELD_LEVEL_READ_CHECKER_PREFIX}${string}`, ReadFieldCheckFunc> & Record<`${typeof FIELD_LEVEL_UPDATE_GUARD_PREFIX}${string}`, PolicyFunc> & {
36
+ [PRE_UPDATE_VALUE_SELECTOR]?: object;
37
+ [FIELD_LEVEL_READ_CHECKER_SELECTOR]?: object;
38
+ [HAS_FIELD_LEVEL_POLICY_FLAG]?: boolean;
37
39
  }>;
38
40
  validation: Record<string, {
39
41
  hasValidation: boolean;
@@ -1,3 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const constants_1 = require("../constants");
3
4
  //# sourceMappingURL=types.js.map
@@ -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/types.ts"],"names":[],"mappings":";;AAGA,4CAMsB"}
@@ -16,6 +16,10 @@ export type Enumerable<T> = T | Array<T>;
16
16
  * Uniformly enumerates an array or scalar.
17
17
  */
18
18
  export declare function enumerate<T>(x: Enumerable<T>): T[];
19
+ /**
20
+ * Zip two arrays or scalars.
21
+ */
22
+ export declare function zip<T1, T2>(x: Enumerable<T1>, y: Enumerable<T2>): Array<[T1, T2]>;
19
23
  /**
20
24
  * Formats an object for pretty printing.
21
25
  */
@@ -27,7 +27,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
27
27
  return (mod && mod.__esModule) ? mod : { "default": mod };
28
28
  };
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.prismaClientUnknownRequestError = exports.prismaClientKnownRequestError = exports.prismaClientValidationError = exports.formatObject = exports.enumerate = exports.getIdFields = exports.getModelFields = void 0;
30
+ exports.prismaClientUnknownRequestError = exports.prismaClientKnownRequestError = exports.prismaClientValidationError = exports.formatObject = exports.zip = exports.enumerate = exports.getIdFields = exports.getModelFields = void 0;
31
31
  const lower_case_first_1 = require("lower-case-first");
32
32
  const path_1 = __importDefault(require("path"));
33
33
  const util = __importStar(require("util"));
@@ -74,6 +74,27 @@ function enumerate(x) {
74
74
  }
75
75
  }
76
76
  exports.enumerate = enumerate;
77
+ /**
78
+ * Zip two arrays or scalars.
79
+ */
80
+ function zip(x, y) {
81
+ if (Array.isArray(x)) {
82
+ if (!Array.isArray(y)) {
83
+ throw new Error('x and y should be both array or both scalar');
84
+ }
85
+ if (x.length !== y.length) {
86
+ throw new Error('x and y should have the same length');
87
+ }
88
+ return x.map((_, i) => [x[i], y[i]]);
89
+ }
90
+ else {
91
+ if (Array.isArray(y)) {
92
+ throw new Error('x and y should be both array or both scalar');
93
+ }
94
+ return [[x, y]];
95
+ }
96
+ }
97
+ exports.zip = zip;
77
98
  /**
78
99
  * Formats an object for pretty printing.
79
100
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/enhancements/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/enhancements/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@zenstackhq/runtime",
3
3
  "displayName": "ZenStack Runtime Library",
4
- "version": "1.0.0-beta.19",
4
+ "version": "1.0.0-beta.20",
5
5
  "description": "Runtime of ZenStack for both client-side and server-side environments.",
6
6
  "repository": {
7
7
  "type": "git",
package/types.d.ts CHANGED
@@ -23,6 +23,7 @@ export interface DbOperations {
23
23
  aggregate(args: unknown): Promise<unknown>;
24
24
  groupBy(args: unknown): Promise<unknown>;
25
25
  count(args?: unknown): Promise<unknown>;
26
+ subscribe(args?: unknown): Promise<unknown>;
26
27
  fields: Record<string, any>;
27
28
  }
28
29
  /**
package/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAuH1C,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,YAAY;CACN,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;AAwH1C,QAAA,kBAAkB,GAAG;IAC9B,QAAQ;IACR,YAAY;IACZ,iBAAiB;IACjB,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,KAAK;IACL,QAAQ;IACR,YAAY;CACN,CAAC"}