@zenstackhq/runtime 2.0.0-beta.9 → 2.0.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.
- package/cross/index.js +7 -11
- package/cross/index.js.map +1 -1
- package/cross/index.mjs +7 -11
- package/cross/index.mjs.map +1 -1
- package/edge.d.ts +7 -0
- package/edge.js +24 -0
- package/edge.js.map +1 -0
- package/enhancements/default-auth.js +4 -0
- package/enhancements/default-auth.js.map +1 -1
- package/enhancements/policy/handler.d.ts +2 -0
- package/enhancements/policy/handler.js +72 -32
- package/enhancements/policy/handler.js.map +1 -1
- package/enhancements/query-utils.d.ts +13 -3
- package/enhancements/query-utils.js +31 -4
- package/enhancements/query-utils.js.map +1 -1
- package/enhancements/utils.d.ts +2 -1
- package/enhancements/utils.js +7 -1
- package/enhancements/utils.js.map +1 -1
- package/package.json +17 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../src/enhancements/default-auth.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,uDAAuD;;;;;;;;;;;;;;;AAEvD,wDAAgC;AAChC,oCAAoH;AAGpH,mCAAmF;AACnF,mCAAyC;AAEzC;;;;GAIG;AACH,SAAgB,eAAe,CAC3B,MAAgB,EAChB,OAAmC,EACnC,UAA8B,EAAE;IAEhC,OAAO,IAAA,iBAAS,EACZ,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,OAA2B,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAChG,aAAa,CAChB,CAAC;AACN,CAAC;AAXD,0CAWC;AAED,MAAM,kBAAmB,SAAQ,iCAAyB;IAGtD,YACI,MAAwB,EACxB,KAAa,EACb,OAAmC,EAClB,OAA2B;QAE5C,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAFb,YAAO,GAAP,OAAO,CAAoB;QAI5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,gBAAgB;IACA,cAAc,CAAC,MAA0B,EAAE,IAAS;;YAChE,MAAM,iBAAiB,GAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YAC3G,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,MAA+B,EAAE,IAAI,CAAC,CAAC;gBACrG,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC;KAAA;IAEa,sBAAsB,CAAC,KAAa,EAAE,MAA6B,EAAE,IAAS;;YACxF,MAAM,OAAO,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;YAE/B,MAAM,oBAAoB,GAAG,CAAC,KAAa,EAAE,IAAS,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACxD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,IAAI,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;wBACzB,0CAA0C;wBAC1C,SAAS;oBACb,CAAC;oBAED,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;wBAClC,sDAAsD;wBACtD,SAAS;oBACb,CAAC;oBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;oBACjE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;wBACjC,0CAA0C;wBAC1C,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBACvE,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,sFAAsF;YACtF,MAAM,OAAO,GAAG,IAAI,0BAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACpB,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACtC,CAAC;gBAED,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;oBACxB,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACtC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACtC,CAAC;gBACL,CAAC;aACJ,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC;QACnB,CAAC;KAAA;IAEO,mBAAmB,CAAC,SAAoB,EAAE,KAAa,EAAE,IAAS,EAAE,gBAAyB;;QACjG,IAAI,SAAS,CAAC,YAAY,IAAI,CAAC,IAAA,sBAAc,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACjF,mFAAmF;YACnF,0EAA0E;YAC1E,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC;YAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACX,WAAW,SAAS,CAAC,IAAI,wEAAwE,CACpG,CAAC;YACN,CAAC;YACD,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;YAEhF,6CAA6C;YAC7C,IAAI,OAAO,GAAG,MAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,0CAAE,OAAO,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YAC3C,CAAC;YAED,yDAAyD;YACzD,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAClF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACX,gDAAgD,SAAS,CAAC,IAAI,0BAA0B,YAAY,IAAI,CAC3G,CAAC;YACN,CAAC;YACD,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;QACpD,CAAC;aAAM,CAAC;YACJ,6BAA6B;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;QAC5C,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,aAAwB,EAAE,SAAoB;QACzE,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC;QACpG,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,CAAC;IACtB,CAAC;IAEO,uBAAuB,CAAC,SAAoB;;QAChD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,CAAC,IAAI,4BAA4B,CAAC,CAAC;QACvG,CAAC;QACD,OAAO,MAAA,SAAS,CAAC,oBAAoB,0DAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"default-auth.js","sourceRoot":"","sources":["../../src/enhancements/default-auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ export declare class PolicyProxyHandler<DbClient extends DbClientContract> imple
|
|
|
37
37
|
private hasDuplicatedUniqueConstraint;
|
|
38
38
|
update(args: any): Promise<unknown>;
|
|
39
39
|
private doUpdate;
|
|
40
|
+
private calculatePostUpdateIds;
|
|
41
|
+
private overrideForeignKeyFields;
|
|
40
42
|
private validateUpdateInputSchema;
|
|
41
43
|
updateMany(args: any): Promise<{
|
|
42
44
|
count: number;
|
|
@@ -88,13 +88,13 @@ class PolicyProxyHandler {
|
|
|
88
88
|
}
|
|
89
89
|
// make a find query promise with fluent API call stubs installed
|
|
90
90
|
findWithFluent(method, args, handleRejection) {
|
|
91
|
-
args =
|
|
91
|
+
args = (0, utils_1.clone)(args);
|
|
92
92
|
return (0, promise_1.createFluentPromise)(() => this.doFind(args, method, handleRejection), args, this.options.modelMeta, this.model);
|
|
93
93
|
}
|
|
94
94
|
doFind(args, actionName, handleRejection) {
|
|
95
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
96
96
|
const origArgs = args;
|
|
97
|
-
const _args =
|
|
97
|
+
const _args = (0, utils_1.clone)(args);
|
|
98
98
|
if (!this.policyUtils.injectForRead(this.prisma, this.model, _args)) {
|
|
99
99
|
if (this.shouldLogQuery) {
|
|
100
100
|
this.logger.info(`[policy] \`${actionName}\` ${this.model}: unconditionally denied`);
|
|
@@ -122,7 +122,7 @@ class PolicyProxyHandler {
|
|
|
122
122
|
return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
123
123
|
this.policyUtils.tryReject(this.prisma, this.model, 'create');
|
|
124
124
|
const origArgs = args;
|
|
125
|
-
args =
|
|
125
|
+
args = (0, utils_1.clone)(args);
|
|
126
126
|
// static input policy check for top-level create data
|
|
127
127
|
const inputCheck = this.policyUtils.checkInputGuard(this.model, args.data, 'create');
|
|
128
128
|
if (inputCheck === false) {
|
|
@@ -287,7 +287,7 @@ class PolicyProxyHandler {
|
|
|
287
287
|
}
|
|
288
288
|
});
|
|
289
289
|
// return only the ids of the top-level entity
|
|
290
|
-
const ids = this.policyUtils.getEntityIds(
|
|
290
|
+
const ids = this.policyUtils.getEntityIds(model, result);
|
|
291
291
|
return { result: ids, postWriteChecks: [...postCreateChecks.values()] };
|
|
292
292
|
});
|
|
293
293
|
}
|
|
@@ -353,7 +353,7 @@ class PolicyProxyHandler {
|
|
|
353
353
|
}
|
|
354
354
|
return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
355
355
|
this.policyUtils.tryReject(this.prisma, this.model, 'create');
|
|
356
|
-
args =
|
|
356
|
+
args = (0, utils_1.clone)(args);
|
|
357
357
|
// go through create items, statically check input to determine if post-create
|
|
358
358
|
// check is needed, and also validate zod schema
|
|
359
359
|
let needPostCreateCheck = false;
|
|
@@ -499,7 +499,7 @@ class PolicyProxyHandler {
|
|
|
499
499
|
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, 'data field is required in query argument');
|
|
500
500
|
}
|
|
501
501
|
return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
502
|
-
args =
|
|
502
|
+
args = (0, utils_1.clone)(args);
|
|
503
503
|
const { result, error } = yield this.queryUtils.transaction(this.prisma, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
504
504
|
// proceed with nested writes and collect post-write checks
|
|
505
505
|
const { result, postWriteChecks } = yield this.doUpdate(args, tx);
|
|
@@ -602,8 +602,9 @@ class PolicyProxyHandler {
|
|
|
602
602
|
}
|
|
603
603
|
}
|
|
604
604
|
// proceed with the create and collect post-create checks
|
|
605
|
-
const { postWriteChecks: checks } = yield this.doCreate(model, { data: createData }, db);
|
|
605
|
+
const { postWriteChecks: checks, result } = yield this.doCreate(model, { data: createData }, db);
|
|
606
606
|
postWriteChecks.push(...checks);
|
|
607
|
+
return result;
|
|
607
608
|
});
|
|
608
609
|
const _createMany = (model, args, context) => __awaiter(this, void 0, void 0, function* () {
|
|
609
610
|
for (const item of (0, cross_1.enumerate)(args.data)) {
|
|
@@ -679,16 +680,10 @@ class PolicyProxyHandler {
|
|
|
679
680
|
this.policyUtils.tryReject(db, this.model, 'update');
|
|
680
681
|
// check pre-update guard
|
|
681
682
|
yield this.policyUtils.checkPolicyForUnique(model, uniqueFilter, 'update', db, args);
|
|
682
|
-
//
|
|
683
|
-
const
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
if (typeof updateValue === 'string' ||
|
|
687
|
-
typeof updateValue === 'number' ||
|
|
688
|
-
typeof updateValue === 'bigint') {
|
|
689
|
-
postUpdateIds[key] = updateValue;
|
|
690
|
-
}
|
|
691
|
-
}
|
|
683
|
+
// handle the case where id fields are updated
|
|
684
|
+
const _args = args;
|
|
685
|
+
const updatePayload = _args.data && typeof _args.data === 'object' ? _args.data : _args;
|
|
686
|
+
const postUpdateIds = this.calculatePostUpdateIds(model, existing, updatePayload);
|
|
692
687
|
// register post-update check
|
|
693
688
|
yield _registerPostUpdateCheck(model, existing, postUpdateIds);
|
|
694
689
|
}
|
|
@@ -760,9 +755,11 @@ class PolicyProxyHandler {
|
|
|
760
755
|
if (existing) {
|
|
761
756
|
// update case
|
|
762
757
|
// check pre-update guard
|
|
763
|
-
yield this.policyUtils.checkPolicyForUnique(model,
|
|
758
|
+
yield this.policyUtils.checkPolicyForUnique(model, existing, 'update', db, args);
|
|
759
|
+
// handle the case where id fields are updated
|
|
760
|
+
const postUpdateIds = this.calculatePostUpdateIds(model, existing, args.update);
|
|
764
761
|
// register post-update check
|
|
765
|
-
yield _registerPostUpdateCheck(model,
|
|
762
|
+
yield _registerPostUpdateCheck(model, existing, postUpdateIds);
|
|
766
763
|
// convert upsert to update
|
|
767
764
|
const convertedUpdate = {
|
|
768
765
|
where: args.where,
|
|
@@ -790,10 +787,20 @@ class PolicyProxyHandler {
|
|
|
790
787
|
if (existing) {
|
|
791
788
|
// connect
|
|
792
789
|
yield _connectDisconnect(model, args.where, context);
|
|
790
|
+
return true;
|
|
793
791
|
}
|
|
794
792
|
else {
|
|
795
793
|
// create
|
|
796
|
-
yield _create(model, args.create, context);
|
|
794
|
+
const created = yield _create(model, args.create, context);
|
|
795
|
+
const upperContext = context.nestingPath[context.nestingPath.length - 2];
|
|
796
|
+
if ((upperContext === null || upperContext === void 0 ? void 0 : upperContext.where) && context.field) {
|
|
797
|
+
// check if the where clause of the upper context references the id
|
|
798
|
+
// of the connected entity, if so, we need to update it
|
|
799
|
+
this.overrideForeignKeyFields(upperContext.model, upperContext.where, context.field, created);
|
|
800
|
+
}
|
|
801
|
+
// remove the payload from the parent
|
|
802
|
+
this.removeFromParent(context.parent, 'connectOrCreate', args);
|
|
803
|
+
return false;
|
|
797
804
|
}
|
|
798
805
|
}),
|
|
799
806
|
disconnect: (model, args, context) => __awaiter(this, void 0, void 0, function* () { return _connectDisconnect(model, args, context); }),
|
|
@@ -853,6 +860,43 @@ class PolicyProxyHandler {
|
|
|
853
860
|
return { result, postWriteChecks };
|
|
854
861
|
});
|
|
855
862
|
}
|
|
863
|
+
// calculate id fields used for post-update check given an update payload
|
|
864
|
+
calculatePostUpdateIds(_model, currentIds, updatePayload) {
|
|
865
|
+
const result = (0, utils_1.clone)(currentIds);
|
|
866
|
+
for (const key of Object.keys(currentIds)) {
|
|
867
|
+
const updateValue = updatePayload[key];
|
|
868
|
+
if (typeof updateValue === 'string' || typeof updateValue === 'number' || typeof updateValue === 'bigint') {
|
|
869
|
+
result[key] = updateValue;
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
return result;
|
|
873
|
+
}
|
|
874
|
+
// updates foreign key fields inside `payload` based on relation id fields in `newIds`
|
|
875
|
+
overrideForeignKeyFields(model, payload, relation, newIds) {
|
|
876
|
+
if (!relation.foreignKeyMapping || Object.keys(relation.foreignKeyMapping).length === 0) {
|
|
877
|
+
return;
|
|
878
|
+
}
|
|
879
|
+
// override foreign key values
|
|
880
|
+
for (const [id, fk] of Object.entries(relation.foreignKeyMapping)) {
|
|
881
|
+
if (payload[fk] !== undefined && newIds[id] !== undefined) {
|
|
882
|
+
payload[fk] = newIds[id];
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
// deal with compound id fields
|
|
886
|
+
const uniqueConstraints = this.policyUtils.getUniqueConstraints(model);
|
|
887
|
+
for (const [name, constraint] of Object.entries(uniqueConstraints)) {
|
|
888
|
+
if (constraint.fields.length > 1) {
|
|
889
|
+
const target = payload[name];
|
|
890
|
+
if (target) {
|
|
891
|
+
for (const [id, fk] of Object.entries(relation.foreignKeyMapping)) {
|
|
892
|
+
if (target[fk] !== undefined && newIds[id] !== undefined) {
|
|
893
|
+
target[fk] = newIds[id];
|
|
894
|
+
}
|
|
895
|
+
}
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
}
|
|
856
900
|
// Validates the given update payload against Zod schema if any
|
|
857
901
|
validateUpdateInputSchema(model, data) {
|
|
858
902
|
const schema = this.policyUtils.getZodSchema(model, 'update');
|
|
@@ -878,14 +922,10 @@ class PolicyProxyHandler {
|
|
|
878
922
|
}
|
|
879
923
|
if (!args.data) {
|
|
880
924
|
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, 'data field is required in query argument');
|
|
881
|
-
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options, 'query argument is required');
|
|
882
|
-
}
|
|
883
|
-
if (!args.data) {
|
|
884
|
-
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.options, 'data field is required in query argument');
|
|
885
925
|
}
|
|
886
926
|
return (0, promise_1.createDeferredPromise)(() => {
|
|
887
927
|
this.policyUtils.tryReject(this.prisma, this.model, 'update');
|
|
888
|
-
args =
|
|
928
|
+
args = (0, utils_1.clone)(args);
|
|
889
929
|
this.policyUtils.injectAuthGuardAsWhere(this.prisma, args, this.model, 'update');
|
|
890
930
|
args.data = this.validateUpdateInputSchema(this.model, args.data);
|
|
891
931
|
if (this.policyUtils.hasAuthGuard(this.model, 'postUpdate') || this.policyUtils.getZodSchema(this.model)) {
|
|
@@ -942,15 +982,15 @@ class PolicyProxyHandler {
|
|
|
942
982
|
return (0, promise_1.createDeferredPromise)(() => __awaiter(this, void 0, void 0, function* () {
|
|
943
983
|
this.policyUtils.tryReject(this.prisma, this.model, 'create');
|
|
944
984
|
this.policyUtils.tryReject(this.prisma, this.model, 'update');
|
|
945
|
-
args =
|
|
985
|
+
args = (0, utils_1.clone)(args);
|
|
946
986
|
// We can call the native "upsert" because we can't tell if an entity was created or updated
|
|
947
987
|
// for doing post-write check accordingly. Instead, decompose it into create or update.
|
|
948
988
|
const { result, error } = yield this.queryUtils.transaction(this.prisma, (tx) => __awaiter(this, void 0, void 0, function* () {
|
|
949
989
|
const { where, create, update } = args, rest = __rest(args, ["where", "create", "update"]);
|
|
950
|
-
const existing = yield this.policyUtils.checkExistence(tx, this.model,
|
|
990
|
+
const existing = yield this.policyUtils.checkExistence(tx, this.model, where);
|
|
951
991
|
if (existing) {
|
|
952
992
|
// update case
|
|
953
|
-
const { result, postWriteChecks } = yield this.doUpdate(Object.assign({ where, data: update }, rest), tx);
|
|
993
|
+
const { result, postWriteChecks } = yield this.doUpdate(Object.assign({ where: this.policyUtils.composeCompoundUniqueField(this.model, existing), data: update }, rest), tx);
|
|
954
994
|
yield this.runPostWriteChecks(postWriteChecks, tx);
|
|
955
995
|
return this.policyUtils.readBack(tx, this.model, 'update', args, result);
|
|
956
996
|
}
|
|
@@ -1026,7 +1066,7 @@ class PolicyProxyHandler {
|
|
|
1026
1066
|
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, 'query argument is required');
|
|
1027
1067
|
}
|
|
1028
1068
|
return (0, promise_1.createDeferredPromise)(() => {
|
|
1029
|
-
args =
|
|
1069
|
+
args = (0, utils_1.clone)(args);
|
|
1030
1070
|
// inject policy conditions
|
|
1031
1071
|
this.policyUtils.injectAuthGuardAsWhere(this.prisma, args, this.model, 'read');
|
|
1032
1072
|
if (this.shouldLogQuery) {
|
|
@@ -1040,7 +1080,7 @@ class PolicyProxyHandler {
|
|
|
1040
1080
|
throw (0, utils_1.prismaClientValidationError)(this.prisma, this.prismaModule, 'query argument is required');
|
|
1041
1081
|
}
|
|
1042
1082
|
return (0, promise_1.createDeferredPromise)(() => {
|
|
1043
|
-
args =
|
|
1083
|
+
args = (0, utils_1.clone)(args);
|
|
1044
1084
|
// inject policy conditions
|
|
1045
1085
|
this.policyUtils.injectAuthGuardAsWhere(this.prisma, args, this.model, 'read');
|
|
1046
1086
|
if (this.shouldLogQuery) {
|
|
@@ -1052,7 +1092,7 @@ class PolicyProxyHandler {
|
|
|
1052
1092
|
count(args) {
|
|
1053
1093
|
return (0, promise_1.createDeferredPromise)(() => {
|
|
1054
1094
|
// inject policy conditions
|
|
1055
|
-
args = args ?
|
|
1095
|
+
args = args ? (0, utils_1.clone)(args) : {};
|
|
1056
1096
|
this.policyUtils.injectAuthGuardAsWhere(this.prisma, args, this.model, 'read');
|
|
1057
1097
|
if (this.shouldLogQuery) {
|
|
1058
1098
|
this.logger.info(`[policy] \`count\` ${this.model}:\n${(0, utils_1.formatObject)(args)}`);
|
|
@@ -1085,7 +1125,7 @@ class PolicyProxyHandler {
|
|
|
1085
1125
|
args = { create: {}, update: {}, delete: {} };
|
|
1086
1126
|
}
|
|
1087
1127
|
else {
|
|
1088
|
-
args =
|
|
1128
|
+
args = (0, utils_1.clone)(args);
|
|
1089
1129
|
}
|
|
1090
1130
|
}
|
|
1091
1131
|
// inject into subscribe conditions
|
|
@@ -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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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FieldInfo, NestedWriteVisitorContext } from '../cross';
|
|
2
|
-
import { CrudContract, DbClientContract } from '../types';
|
|
1
|
+
import { type FieldInfo, type NestedWriteVisitorContext } from '../cross';
|
|
2
|
+
import type { CrudContract, DbClientContract } from '../types';
|
|
3
3
|
import { InternalEnhancementOptions } from './create-enhancement';
|
|
4
4
|
export declare class QueryUtils {
|
|
5
5
|
private readonly prisma;
|
|
@@ -12,7 +12,17 @@ export declare class QueryUtils {
|
|
|
12
12
|
* Initiates a transaction.
|
|
13
13
|
*/
|
|
14
14
|
transaction<T>(db: CrudContract, action: (tx: CrudContract) => Promise<T>): Promise<T>;
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Builds a reversed query for the given nested path.
|
|
17
|
+
*/
|
|
18
|
+
buildReversedQuery(context: NestedWriteVisitorContext, forMutationPayload?: boolean, unsafeOperation?: boolean): any;
|
|
19
|
+
/**
|
|
20
|
+
* Composes a compound unique field from multiple fields. E.g.: { a: '1', b: '1' } => { a_b: { a: '1', b: '1' } }.
|
|
21
|
+
*/
|
|
22
|
+
composeCompoundUniqueField(model: string, fieldData: any): any;
|
|
23
|
+
/**
|
|
24
|
+
* Flattens a generated unique field. E.g.: { a_b: { a: '1', b: '1' } } => { a: '1', b: '1' }.
|
|
25
|
+
*/
|
|
16
26
|
flattenGeneratedUniqueField(model: string, args: any): void;
|
|
17
27
|
validationError(message: string): Error;
|
|
18
28
|
unknownError(message: string): Error;
|
|
@@ -45,7 +45,10 @@ class QueryUtils {
|
|
|
45
45
|
return action(db);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Builds a reversed query for the given nested path.
|
|
50
|
+
*/
|
|
51
|
+
buildReversedQuery(context, forMutationPayload = false, unsafeOperation = false) {
|
|
49
52
|
let result, currQuery;
|
|
50
53
|
let currField;
|
|
51
54
|
for (let i = context.nestingPath.length - 1; i >= 0; i--) {
|
|
@@ -72,7 +75,7 @@ class QueryUtils {
|
|
|
72
75
|
if (!backLinkField) {
|
|
73
76
|
throw this.unknownError(`missing backLink field ${currField.backLink} in ${currField.type}`);
|
|
74
77
|
}
|
|
75
|
-
if (backLinkField.isArray && !
|
|
78
|
+
if (backLinkField.isArray && !forMutationPayload) {
|
|
76
79
|
// many-side of relationship, wrap with "some" query
|
|
77
80
|
currQuery[currField.backLink] = { some: Object.assign({}, visitWhere) };
|
|
78
81
|
currQuery = currQuery[currField.backLink].some;
|
|
@@ -82,7 +85,7 @@ class QueryUtils {
|
|
|
82
85
|
// calculate if we should preserve the relation condition (e.g., { user: { id: 1 } })
|
|
83
86
|
const shouldPreserveRelationCondition =
|
|
84
87
|
// doing a mutation
|
|
85
|
-
|
|
88
|
+
forMutationPayload &&
|
|
86
89
|
// and it's a safe mutate
|
|
87
90
|
!unsafeOperation &&
|
|
88
91
|
// and the current segment is the direct parent (the last one is the mutate itself),
|
|
@@ -103,6 +106,10 @@ class QueryUtils {
|
|
|
103
106
|
// preserve the original structure
|
|
104
107
|
currQuery[currField.backLink] = Object.assign({}, visitWhere);
|
|
105
108
|
}
|
|
109
|
+
if (forMutationPayload && currQuery[currField.backLink]) {
|
|
110
|
+
// reconstruct compound unique field
|
|
111
|
+
currQuery[currField.backLink] = this.composeCompoundUniqueField(backLinkField.type, currQuery[currField.backLink]);
|
|
112
|
+
}
|
|
106
113
|
currQuery = currQuery[currField.backLink];
|
|
107
114
|
}
|
|
108
115
|
currField = field;
|
|
@@ -110,8 +117,28 @@ class QueryUtils {
|
|
|
110
117
|
}
|
|
111
118
|
return result;
|
|
112
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Composes a compound unique field from multiple fields. E.g.: { a: '1', b: '1' } => { a_b: { a: '1', b: '1' } }.
|
|
122
|
+
*/
|
|
123
|
+
composeCompoundUniqueField(model, fieldData) {
|
|
124
|
+
const uniqueConstraints = (0, cross_1.getUniqueConstraints)(this.options.modelMeta, model);
|
|
125
|
+
if (!uniqueConstraints) {
|
|
126
|
+
return fieldData;
|
|
127
|
+
}
|
|
128
|
+
const result = (0, utils_1.clone)(fieldData);
|
|
129
|
+
for (const [name, constraint] of Object.entries(uniqueConstraints)) {
|
|
130
|
+
if (constraint.fields.length > 1 && constraint.fields.every((f) => fieldData[f] !== undefined)) {
|
|
131
|
+
// multi-field unique constraint, compose it
|
|
132
|
+
result[name] = constraint.fields.reduce((prev, field) => (Object.assign(Object.assign({}, prev), { [field]: fieldData[field] })), {});
|
|
133
|
+
constraint.fields.forEach((f) => delete result[f]);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Flattens a generated unique field. E.g.: { a_b: { a: '1', b: '1' } } => { a: '1', b: '1' }.
|
|
140
|
+
*/
|
|
113
141
|
flattenGeneratedUniqueField(model, args) {
|
|
114
|
-
// e.g.: { a_b: { a: '1', b: '1' } } => { a: '1', b: '1' }
|
|
115
142
|
const uniqueConstraints = (0, cross_1.getUniqueConstraints)(this.options.modelMeta, model);
|
|
116
143
|
if (uniqueConstraints && Object.keys(uniqueConstraints).length > 0) {
|
|
117
144
|
for (const [field, value] of Object.entries(args)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-utils.js","sourceRoot":"","sources":["../../src/enhancements/query-utils.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,oCAOkB;AAElB,wCAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"query-utils.js","sourceRoot":"","sources":["../../src/enhancements/query-utils.ts"],"names":[],"mappings":"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"}
|
package/enhancements/utils.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FieldInfo, ModelMeta } from '..';
|
|
1
|
+
import { type FieldInfo, type ModelMeta } from '..';
|
|
2
2
|
import type { DbClientContract } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Formats an object for pretty printing.
|
|
@@ -9,3 +9,4 @@ export declare function prismaClientKnownRequestError(prisma: DbClientContract,
|
|
|
9
9
|
export declare function prismaClientUnknownRequestError(prismaModule: any, ...args: unknown[]): Error;
|
|
10
10
|
export declare function isUnsafeMutate(model: string, args: any, modelMeta: ModelMeta): boolean;
|
|
11
11
|
export declare function isAutoIncrementIdField(field: FieldInfo): boolean | undefined;
|
|
12
|
+
export declare function clone(value: unknown): any;
|