@zenstackhq/runtime 1.0.0-beta.13 → 1.0.0-beta.15
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 +21 -2
- package/constants.js +21 -2
- package/constants.js.map +1 -1
- package/enhancements/model-data-visitor.d.ts +16 -0
- package/enhancements/model-data-visitor.js +41 -0
- package/enhancements/model-data-visitor.js.map +1 -0
- package/enhancements/model-meta.d.ts +3 -2
- package/enhancements/model-meta.js.map +1 -1
- package/enhancements/nested-write-vistor.d.ts +18 -14
- package/enhancements/nested-write-vistor.js +67 -28
- package/enhancements/nested-write-vistor.js.map +1 -1
- package/enhancements/omit.d.ts +1 -1
- package/enhancements/policy/handler.d.ts +21 -13
- package/enhancements/policy/handler.js +711 -129
- package/enhancements/policy/handler.js.map +1 -1
- package/enhancements/policy/index.js +9 -0
- package/enhancements/policy/index.js.map +1 -1
- package/enhancements/policy/policy-utils.d.ts +83 -49
- package/enhancements/policy/policy-utils.js +389 -588
- package/enhancements/policy/policy-utils.js.map +1 -1
- package/enhancements/proxy.js +5 -5
- package/enhancements/proxy.js.map +1 -1
- package/enhancements/types.d.ts +6 -0
- package/enhancements/utils.js +4 -1
- package/enhancements/utils.js.map +1 -1
- package/error.js +9 -3
- package/error.js.map +1 -1
- package/package.json +1 -2
- package/types.d.ts +6 -2
- package/types.js +1 -0
- package/types.js.map +1 -1
package/constants.d.ts
CHANGED
|
@@ -31,13 +31,32 @@ export declare enum CrudFailureReason {
|
|
|
31
31
|
* Prisma error codes used
|
|
32
32
|
*/
|
|
33
33
|
export declare enum PrismaErrorCode {
|
|
34
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Unique constraint failed
|
|
36
|
+
*/
|
|
37
|
+
UNIQUE_CONSTRAINT_FAILED = "P2002",
|
|
38
|
+
/**
|
|
39
|
+
* A constraint failed on the database
|
|
40
|
+
*/
|
|
41
|
+
CONSTRAINED_FAILED = "P2004",
|
|
42
|
+
/**
|
|
43
|
+
* The required connected records were not found
|
|
44
|
+
*/
|
|
45
|
+
REQUIRED_CONNECTED_RECORD_NOT_FOUND = "P2018",
|
|
46
|
+
/**
|
|
47
|
+
* An operation failed because it depends on one or more records that were required but not found
|
|
48
|
+
*/
|
|
49
|
+
DEPEND_ON_RECORD_NOT_FOUND = "P2025"
|
|
35
50
|
}
|
|
36
51
|
/**
|
|
37
52
|
* Field name for storing in-transaction flag
|
|
38
53
|
*/
|
|
39
|
-
export declare const
|
|
54
|
+
export declare const PRISMA_TX_FLAG = "$__zenstack_tx";
|
|
40
55
|
/**
|
|
41
56
|
* Field name for getting current enhancer
|
|
42
57
|
*/
|
|
43
58
|
export declare const PRISMA_PROXY_ENHANCER = "$__zenstack_enhancer";
|
|
59
|
+
/**
|
|
60
|
+
* Minimum Prisma version supported
|
|
61
|
+
*/
|
|
62
|
+
export declare const PRISMA_MINIMUM_VERSION = "4.8.0";
|
package/constants.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PRISMA_PROXY_ENHANCER = exports.
|
|
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;
|
|
4
4
|
/**
|
|
5
5
|
* Default length of password hash salt (used by bcryptjs to hash password)
|
|
6
6
|
*/
|
|
@@ -36,14 +36,33 @@ var CrudFailureReason;
|
|
|
36
36
|
*/
|
|
37
37
|
var PrismaErrorCode;
|
|
38
38
|
(function (PrismaErrorCode) {
|
|
39
|
+
/**
|
|
40
|
+
* Unique constraint failed
|
|
41
|
+
*/
|
|
42
|
+
PrismaErrorCode["UNIQUE_CONSTRAINT_FAILED"] = "P2002";
|
|
43
|
+
/**
|
|
44
|
+
* A constraint failed on the database
|
|
45
|
+
*/
|
|
39
46
|
PrismaErrorCode["CONSTRAINED_FAILED"] = "P2004";
|
|
47
|
+
/**
|
|
48
|
+
* The required connected records were not found
|
|
49
|
+
*/
|
|
50
|
+
PrismaErrorCode["REQUIRED_CONNECTED_RECORD_NOT_FOUND"] = "P2018";
|
|
51
|
+
/**
|
|
52
|
+
* An operation failed because it depends on one or more records that were required but not found
|
|
53
|
+
*/
|
|
54
|
+
PrismaErrorCode["DEPEND_ON_RECORD_NOT_FOUND"] = "P2025";
|
|
40
55
|
})(PrismaErrorCode = exports.PrismaErrorCode || (exports.PrismaErrorCode = {}));
|
|
41
56
|
/**
|
|
42
57
|
* Field name for storing in-transaction flag
|
|
43
58
|
*/
|
|
44
|
-
exports.
|
|
59
|
+
exports.PRISMA_TX_FLAG = '$__zenstack_tx';
|
|
45
60
|
/**
|
|
46
61
|
* Field name for getting current enhancer
|
|
47
62
|
*/
|
|
48
63
|
exports.PRISMA_PROXY_ENHANCER = '$__zenstack_enhancer';
|
|
64
|
+
/**
|
|
65
|
+
* Minimum Prisma version supported
|
|
66
|
+
*/
|
|
67
|
+
exports.PRISMA_MINIMUM_VERSION = '4.8.0';
|
|
49
68
|
//# 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,
|
|
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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ModelMeta } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Callback for @see ModelDataVisitor.
|
|
4
|
+
*/
|
|
5
|
+
export type ModelDataVisitorCallback = (model: string, data: any, scalarData: any) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Visitor that traverses data returned by a Prisma query.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ModelDataVisitor {
|
|
10
|
+
private modelMeta;
|
|
11
|
+
constructor(modelMeta: ModelMeta);
|
|
12
|
+
/**
|
|
13
|
+
* Visits the given model data.
|
|
14
|
+
*/
|
|
15
|
+
visit(model: string, data: any, callback: ModelDataVisitorCallback): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModelDataVisitor = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
|
+
const model_meta_1 = require("./model-meta");
|
|
6
|
+
/**
|
|
7
|
+
* Visitor that traverses data returned by a Prisma query.
|
|
8
|
+
*/
|
|
9
|
+
class ModelDataVisitor {
|
|
10
|
+
constructor(modelMeta) {
|
|
11
|
+
this.modelMeta = modelMeta;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Visits the given model data.
|
|
15
|
+
*/
|
|
16
|
+
visit(model, data, callback) {
|
|
17
|
+
if (!data || typeof data !== 'object') {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const scalarData = {};
|
|
21
|
+
const subTasks = [];
|
|
22
|
+
for (const [k, v] of Object.entries(data)) {
|
|
23
|
+
const field = (0, model_meta_1.resolveField)(this.modelMeta, model, k);
|
|
24
|
+
if (field && field.isDataModel) {
|
|
25
|
+
if (field.isArray && Array.isArray(v)) {
|
|
26
|
+
subTasks.push(...v.map((item) => ({ model: field.type, data: item })));
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
subTasks.push({ model: field.type, data: v });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
scalarData[k] = v;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
callback(model, data, scalarData);
|
|
37
|
+
subTasks.forEach(({ model, data }) => this.visit(model, data, callback));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.ModelDataVisitor = ModelDataVisitor;
|
|
41
|
+
//# sourceMappingURL=model-data-visitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-data-visitor.js","sourceRoot":"","sources":["../../src/enhancements/model-data-visitor.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,6CAA4C;AAQ5C;;GAEG;AACH,MAAa,gBAAgB;IACzB,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE5C;;OAEG;IACH,KAAK,CAAC,KAAa,EAAE,IAAS,EAAE,QAAkC;QAC9D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACnC,OAAO;SACV;QAED,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAwC,EAAE,CAAC;QAEzD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvC,MAAM,KAAK,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrD,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACnC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;iBAC1E;qBAAM;oBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;iBACjD;aACJ;iBAAM;gBACH,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;aACrB;SACJ;QAED,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;CACJ;AA9BD,4CA8BC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { FieldInfo } from '../types';
|
|
1
2
|
import { ModelMeta } from './types';
|
|
2
3
|
/**
|
|
3
4
|
* Load model meta from standard location.
|
|
@@ -6,8 +7,8 @@ export declare function getDefaultModelMeta(): ModelMeta;
|
|
|
6
7
|
/**
|
|
7
8
|
* Resolves a model field to its metadata. Returns undefined if not found.
|
|
8
9
|
*/
|
|
9
|
-
export declare function resolveField(modelMeta: ModelMeta, model: string, field: string):
|
|
10
|
+
export declare function resolveField(modelMeta: ModelMeta, model: string, field: string): FieldInfo | undefined;
|
|
10
11
|
/**
|
|
11
12
|
* Gets all fields of a model.
|
|
12
13
|
*/
|
|
13
|
-
export declare function getFields(modelMeta: ModelMeta, model: string): Record<string,
|
|
14
|
+
export declare function getFields(modelMeta: ModelMeta, model: string): Record<string, FieldInfo>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-meta.js","sourceRoot":"","sources":["../../src/enhancements/model-meta.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,uDAAkD;AAClD,gDAAwB;
|
|
1
|
+
{"version":3,"file":"model-meta.js","sourceRoot":"","sources":["../../src/enhancements/model-meta.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAuD;AACvD,uDAAkD;AAClD,gDAAwB;AAIxB;;GAEG;AACH,SAAgB,mBAAmB;IAC/B,IAAI;QACA,cAAc;QACd,OAAO,OAAO,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC;KAClD;IAAC,WAAM;QACJ,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,EAAE;YACnC,IAAI;gBACA,uEAAuE;gBACvE,OAAO,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;aAC/F;YAAC,WAAM;gBACJ,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;aACtG;SACJ;QACD,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;KACtG;AACL,CAAC;AAfD,kDAeC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,SAAoB,EAAE,KAAa,EAAE,KAAa;IAC3E,OAAO,SAAS,CAAC,MAAM,CAAC,IAAA,iCAAc,EAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAFD,oCAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,SAAoB,EAAE,KAAa;IACzD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAA,iCAAc,EAAC,KAAK,CAAC,CAAC,CAAC;AACnD,CAAC;AAFD,8BAEC"}
|
|
@@ -24,35 +24,39 @@ export type NestedWriteVisitorContext = {
|
|
|
24
24
|
nestingPath: NestingPathItem[];
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
|
-
* NestedWriteVisitor's callback actions
|
|
27
|
+
* NestedWriteVisitor's callback actions. A call back function should return true or void to indicate
|
|
28
|
+
* that the visitor should continue traversing its children, or false to stop. It can also return an object
|
|
29
|
+
* to let the visitor traverse it instead of its original children.
|
|
28
30
|
*/
|
|
29
31
|
export type NestedWriterVisitorCallback = {
|
|
30
|
-
create?: (model: string, args: any[], context: NestedWriteVisitorContext) => Promise<void>;
|
|
32
|
+
create?: (model: string, args: any[], context: NestedWriteVisitorContext) => Promise<boolean | void>;
|
|
33
|
+
createMany?: (model: string, args: {
|
|
34
|
+
data: any;
|
|
35
|
+
skipDuplicates?: boolean;
|
|
36
|
+
}, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
31
37
|
connectOrCreate?: (model: string, args: {
|
|
32
38
|
where: object;
|
|
33
39
|
create: any;
|
|
34
|
-
}, context: NestedWriteVisitorContext) => Promise<void>;
|
|
35
|
-
connect?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<void>;
|
|
36
|
-
disconnect?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<void>;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
data: any;
|
|
40
|
-
}, context: NestedWriteVisitorContext) => Promise<void>;
|
|
40
|
+
}, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
41
|
+
connect?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
42
|
+
disconnect?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
43
|
+
set?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
44
|
+
update?: (model: string, args: object, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
41
45
|
updateMany?: (model: string, args: {
|
|
42
46
|
where?: object;
|
|
43
47
|
data: any;
|
|
44
|
-
}, context: NestedWriteVisitorContext) => Promise<void>;
|
|
48
|
+
}, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
45
49
|
upsert?: (model: string, args: {
|
|
46
50
|
where: object;
|
|
47
51
|
create: any;
|
|
48
52
|
update: any;
|
|
49
|
-
}, context: NestedWriteVisitorContext) => Promise<void>;
|
|
50
|
-
delete?: (model: string, args: object | boolean, context: NestedWriteVisitorContext) => Promise<void>;
|
|
51
|
-
deleteMany?: (model: string, args: any | object, context: NestedWriteVisitorContext) => Promise<void>;
|
|
53
|
+
}, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
54
|
+
delete?: (model: string, args: object | boolean, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
55
|
+
deleteMany?: (model: string, args: any | object, context: NestedWriteVisitorContext) => Promise<boolean | object | void>;
|
|
52
56
|
field?: (field: FieldInfo, action: PrismaWriteActionType, data: any, context: NestedWriteVisitorContext) => Promise<void>;
|
|
53
57
|
};
|
|
54
58
|
/**
|
|
55
|
-
* Recursive visitor for nested write (create/update) payload
|
|
59
|
+
* Recursive visitor for nested write (create/update) payload.
|
|
56
60
|
*/
|
|
57
61
|
export declare class NestedWriteVisitor {
|
|
58
62
|
private readonly modelMeta;
|
|
@@ -16,7 +16,7 @@ const types_1 = require("../types");
|
|
|
16
16
|
const model_meta_1 = require("./model-meta");
|
|
17
17
|
const utils_1 = require("./utils");
|
|
18
18
|
/**
|
|
19
|
-
* Recursive visitor for nested write (create/update) payload
|
|
19
|
+
* Recursive visitor for nested write (create/update) payload.
|
|
20
20
|
*/
|
|
21
21
|
class NestedWriteVisitor {
|
|
22
22
|
constructor(modelMeta, callback) {
|
|
@@ -37,7 +37,6 @@ class NestedWriteVisitor {
|
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
39
|
let topData = args;
|
|
40
|
-
// const topWhere = { ...topData.where };
|
|
41
40
|
switch (action) {
|
|
42
41
|
// create has its data wrapped in 'data' field
|
|
43
42
|
case 'create':
|
|
@@ -56,38 +55,47 @@ class NestedWriteVisitor {
|
|
|
56
55
|
if (!data) {
|
|
57
56
|
return;
|
|
58
57
|
}
|
|
59
|
-
const isToOneUpdate = (field === null || field === void 0 ? void 0 : field.isDataModel) && !field.isArray;
|
|
60
58
|
const context = { parent, field, nestingPath: [...nestingPath] };
|
|
59
|
+
const toplevel = field == undefined;
|
|
61
60
|
// visit payload
|
|
62
61
|
switch (action) {
|
|
63
62
|
case 'create':
|
|
64
63
|
context.nestingPath.push({ field, model, where: {}, unique: false });
|
|
65
64
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
65
|
+
let callbackResult;
|
|
66
66
|
if (this.callback.create) {
|
|
67
|
-
yield this.callback.create(model, item, context);
|
|
67
|
+
callbackResult = yield this.callback.create(model, item, context);
|
|
68
|
+
}
|
|
69
|
+
if (callbackResult !== false) {
|
|
70
|
+
const subPayload = typeof callbackResult === 'object' ? callbackResult : item;
|
|
71
|
+
yield this.visitSubPayload(model, action, subPayload, context.nestingPath);
|
|
68
72
|
}
|
|
69
|
-
yield this.visitSubPayload(model, action, item, context.nestingPath);
|
|
70
73
|
}
|
|
71
74
|
break;
|
|
72
75
|
case 'createMany':
|
|
73
|
-
|
|
74
|
-
if (data.data) {
|
|
76
|
+
if (data) {
|
|
75
77
|
context.nestingPath.push({ field, model, where: {}, unique: false });
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
let callbackResult;
|
|
79
|
+
if (this.callback.createMany) {
|
|
80
|
+
callbackResult = yield this.callback.createMany(model, data, context);
|
|
81
|
+
}
|
|
82
|
+
if (callbackResult !== false) {
|
|
83
|
+
const subPayload = typeof callbackResult === 'object' ? callbackResult : data.data;
|
|
84
|
+
yield this.visitSubPayload(model, action, subPayload, context.nestingPath);
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
break;
|
|
84
88
|
case 'connectOrCreate':
|
|
85
|
-
context.nestingPath.push({ field, model, where: data.where, unique:
|
|
89
|
+
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
86
90
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
91
|
+
let callbackResult;
|
|
87
92
|
if (this.callback.connectOrCreate) {
|
|
88
|
-
yield this.callback.connectOrCreate(model, item, context);
|
|
93
|
+
callbackResult = yield this.callback.connectOrCreate(model, item, context);
|
|
94
|
+
}
|
|
95
|
+
if (callbackResult !== false) {
|
|
96
|
+
const subPayload = typeof callbackResult === 'object' ? callbackResult : item.create;
|
|
97
|
+
yield this.visitSubPayload(model, action, subPayload, context.nestingPath);
|
|
89
98
|
}
|
|
90
|
-
yield this.visitSubPayload(model, action, item.create, context.nestingPath);
|
|
91
99
|
}
|
|
92
100
|
break;
|
|
93
101
|
case 'connect':
|
|
@@ -112,50 +120,81 @@ class NestedWriteVisitor {
|
|
|
112
120
|
}
|
|
113
121
|
}
|
|
114
122
|
break;
|
|
123
|
+
case 'set':
|
|
124
|
+
if (this.callback.set) {
|
|
125
|
+
context.nestingPath.push({ field, model, where: {}, unique: false });
|
|
126
|
+
yield this.callback.set(model, data, context);
|
|
127
|
+
}
|
|
128
|
+
break;
|
|
115
129
|
case 'update':
|
|
116
130
|
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
117
131
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
132
|
+
let callbackResult;
|
|
118
133
|
if (this.callback.update) {
|
|
119
|
-
yield this.callback.update(model, item, context);
|
|
134
|
+
callbackResult = yield this.callback.update(model, item, context);
|
|
135
|
+
}
|
|
136
|
+
if (callbackResult !== false) {
|
|
137
|
+
const subPayload = typeof callbackResult === 'object'
|
|
138
|
+
? callbackResult
|
|
139
|
+
: typeof item.data === 'object'
|
|
140
|
+
? item.data
|
|
141
|
+
: item;
|
|
142
|
+
yield this.visitSubPayload(model, action, subPayload, context.nestingPath);
|
|
120
143
|
}
|
|
121
|
-
const payload = isToOneUpdate ? item : item.data;
|
|
122
|
-
yield this.visitSubPayload(model, action, payload, context.nestingPath);
|
|
123
144
|
}
|
|
124
145
|
break;
|
|
125
146
|
case 'updateMany':
|
|
126
147
|
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
127
148
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
149
|
+
let callbackResult;
|
|
128
150
|
if (this.callback.updateMany) {
|
|
129
|
-
yield this.callback.updateMany(model, item, context);
|
|
151
|
+
callbackResult = yield this.callback.updateMany(model, item, context);
|
|
152
|
+
}
|
|
153
|
+
if (callbackResult !== false) {
|
|
154
|
+
const subPayload = typeof callbackResult === 'object' ? callbackResult : item;
|
|
155
|
+
yield this.visitSubPayload(model, action, subPayload, context.nestingPath);
|
|
130
156
|
}
|
|
131
|
-
yield this.visitSubPayload(model, action, item, context.nestingPath);
|
|
132
157
|
}
|
|
133
158
|
break;
|
|
134
159
|
case 'upsert': {
|
|
135
|
-
context.nestingPath.push({ field, model, where: data.where, unique:
|
|
160
|
+
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
136
161
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
162
|
+
let callbackResult;
|
|
137
163
|
if (this.callback.upsert) {
|
|
138
|
-
yield this.callback.upsert(model, item, context);
|
|
164
|
+
callbackResult = yield this.callback.upsert(model, item, context);
|
|
165
|
+
}
|
|
166
|
+
if (callbackResult !== false) {
|
|
167
|
+
if (typeof callbackResult === 'object') {
|
|
168
|
+
yield this.visitSubPayload(model, action, callbackResult, context.nestingPath);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
yield this.visitSubPayload(model, action, item.create, context.nestingPath);
|
|
172
|
+
yield this.visitSubPayload(model, action, item.update, context.nestingPath);
|
|
173
|
+
}
|
|
139
174
|
}
|
|
140
|
-
yield this.visitSubPayload(model, action, item.create, context.nestingPath);
|
|
141
|
-
yield this.visitSubPayload(model, action, item.update, context.nestingPath);
|
|
142
175
|
}
|
|
143
176
|
break;
|
|
144
177
|
}
|
|
145
178
|
case 'delete': {
|
|
146
179
|
if (this.callback.delete) {
|
|
147
|
-
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
148
180
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
149
|
-
|
|
181
|
+
const newContext = Object.assign(Object.assign({}, context), { nestingPath: [
|
|
182
|
+
...context.nestingPath,
|
|
183
|
+
{ field, model, where: toplevel ? item.where : item, unique: false },
|
|
184
|
+
] });
|
|
185
|
+
yield this.callback.delete(model, item, newContext);
|
|
150
186
|
}
|
|
151
187
|
}
|
|
152
188
|
break;
|
|
153
189
|
}
|
|
154
190
|
case 'deleteMany':
|
|
155
191
|
if (this.callback.deleteMany) {
|
|
156
|
-
context.nestingPath.push({ field, model, where: data.where, unique: false });
|
|
157
192
|
for (const item of (0, utils_1.enumerate)(data)) {
|
|
158
|
-
|
|
193
|
+
const newContext = Object.assign(Object.assign({}, context), { nestingPath: [
|
|
194
|
+
...context.nestingPath,
|
|
195
|
+
{ field, model, where: toplevel ? item.where : item, unique: false },
|
|
196
|
+
] });
|
|
197
|
+
yield this.callback.deleteMany(model, item, newContext);
|
|
159
198
|
}
|
|
160
199
|
}
|
|
161
200
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-write-vistor.js","sourceRoot":"","sources":["../../src/enhancements/nested-write-vistor.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,uDAAuD;;;;;;;;;;;;AAEvD,oCAAgF;AAChF,6CAA4C;AAE5C,mCAAoD;
|
|
1
|
+
{"version":3,"file":"nested-write-vistor.js","sourceRoot":"","sources":["../../src/enhancements/nested-write-vistor.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,uDAAuD;;;;;;;;;;;;AAEvD,oCAAgF;AAChF,6CAA4C;AAE5C,mCAAoD;AAoFpD;;GAEG;AACH,MAAa,kBAAkB;IAC3B,YAA6B,SAAoB,EAAmB,QAAqC;QAA5E,cAAS,GAAT,SAAS,CAAW;QAAmB,aAAQ,GAAR,QAAQ,CAA6B;IAAG,CAAC;IAErG,mBAAmB,CAAC,KAAa;QACrC,OAAO,0BAAkB,CAAC,QAAQ,CAAC,KAA8B,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACG,KAAK,CAAC,KAAa,EAAE,MAA6B,EAAE,IAAS;;YAC/D,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;aACV;YAED,IAAI,OAAO,GAAG,IAAI,CAAC;YAEnB,QAAQ,MAAM,EAAE;gBACZ,8CAA8C;gBAC9C,KAAK,QAAQ;oBACT,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;oBACvB,MAAM;gBAEV,KAAK,QAAQ,CAAC;gBACd,KAAK,YAAY;oBACb,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;oBACxB,MAAM;aACb;YAED,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;KAAA;IAEa,OAAO,CACjB,KAAa,EACb,MAA6B,EAC7B,IAAS,EACT,MAAW,EACX,KAA4B,EAC5B,WAA8B;;YAE9B,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO;aACV;YAED,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,KAAK,IAAI,SAAS,CAAC;YAEpC,gBAAgB;YAChB,QAAQ,MAAM,EAAE;gBACZ,KAAK,QAAQ;oBACT,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBACrE,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;4BACtB,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBACrE;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC9E,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;yBAC9E;qBACJ;oBACD,MAAM;gBAEV,KAAK,YAAY;oBACb,IAAI,IAAI,EAAE;wBACN,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;wBACrE,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;4BAC1B,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBACzE;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;4BACnF,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;yBAC9E;qBACJ;oBACD,MAAM;gBAEV,KAAK,iBAAiB;oBAClB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7E,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;4BAC/B,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBAC9E;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;4BACrF,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;yBAC9E;qBACJ;oBACD,MAAM;gBAEV,KAAK,SAAS;oBACV,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;wBACvB,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;4BAChC,MAAM,UAAU,mCACT,OAAO,KACV,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GACrF,CAAC;4BACF,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;yBACxD;qBACJ;oBACD,MAAM;gBAEV,KAAK,YAAY;oBACb,4BAA4B;oBAC5B,kEAAkE;oBAClE,kEAAkE;oBAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;wBAC1B,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;4BAChC,MAAM,UAAU,mCACT,OAAO,KACV,WAAW,EAAE;oCACT,GAAG,OAAO,CAAC,WAAW;oCACtB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,EAAE;iCAClE,GACJ,CAAC;4BACF,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;yBAC3D;qBACJ;oBACD,MAAM;gBAEV,KAAK,KAAK;oBACN,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;wBACnB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;wBACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;qBACjD;oBACD,MAAM;gBAEV,KAAK,QAAQ;oBACT,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7E,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;4BACtB,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBACrE;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,MAAM,UAAU,GACZ,OAAO,cAAc,KAAK,QAAQ;gCAC9B,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oCAC/B,CAAC,CAAC,IAAI,CAAC,IAAI;oCACX,CAAC,CAAC,IAAI,CAAC;4BACf,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;yBAC9E;qBACJ;oBACD,MAAM;gBAEV,KAAK,YAAY;oBACb,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7E,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;4BAC1B,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBACzE;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,MAAM,UAAU,GAAG,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;4BAC9E,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;yBAC9E;qBACJ;oBACD,MAAM;gBAEV,KAAK,QAAQ,CAAC,CAAC;oBACX,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC7E,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;wBAChC,IAAI,cAAmB,CAAC;wBACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;4BACtB,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;yBACrE;wBACD,IAAI,cAAc,KAAK,KAAK,EAAE;4BAC1B,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;gCACpC,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;6BAClF;iCAAM;gCACH,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gCAC5E,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;6BAC/E;yBACJ;qBACJ;oBACD,MAAM;iBACT;gBAED,KAAK,QAAQ,CAAC,CAAC;oBACX,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;wBACtB,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;4BAChC,MAAM,UAAU,mCACT,OAAO,KACV,WAAW,EAAE;oCACT,GAAG,OAAO,CAAC,WAAW;oCACtB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;iCACvE,GACJ,CAAC;4BACF,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;yBACvD;qBACJ;oBACD,MAAM;iBACT;gBAED,KAAK,YAAY;oBACb,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;wBAC1B,KAAK,MAAM,IAAI,IAAI,IAAA,iBAAS,EAAC,IAAI,CAAC,EAAE;4BAChC,MAAM,UAAU,mCACT,OAAO,KACV,WAAW,EAAE;oCACT,GAAG,OAAO,CAAC,WAAW;oCACtB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;iCACvE,GACJ,CAAC;4BACF,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;yBAC3D;qBACJ;oBACD,MAAM;gBAEV,OAAO,CAAC,CAAC;oBACL,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;iBACtD;aACJ;QACL,CAAC;KAAA;IAEa,eAAe,CACzB,KAAa,EACb,MAA6B,EAC7B,OAAY,EACZ,WAA8B;;YAE9B,KAAK,MAAM,KAAK,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE;gBACzC,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC7D,IAAI,CAAC,SAAS,EAAE;oBACZ,SAAS;iBACZ;gBAED,IAAI,SAAS,CAAC,WAAW,EAAE;oBACvB,+BAA+B;oBAC/B,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAM,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;wBACpE,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE;4BAChD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE;gCAC9E,GAAG,WAAW;6BACjB,CAAC,CAAC;yBACN;qBACJ;iBACJ;qBAAM;oBACH,oBAAoB;oBACpB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;wBACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;4BACzD,MAAM,EAAE,OAAO;4BACf,WAAW;4BACX,KAAK,EAAE,SAAS;yBACnB,CAAC,CAAC;qBACN;iBACJ;aACJ;QACL,CAAC;KAAA;CACJ;AA5PD,gDA4PC"}
|
package/enhancements/omit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AuthUser, DbClientContract
|
|
2
|
-
import {
|
|
1
|
+
import { AuthUser, DbClientContract } from '../../types';
|
|
2
|
+
import { PrismaProxyHandler } from '../proxy';
|
|
3
3
|
import type { ModelMeta, PolicyDef, ZodSchemas } from '../types';
|
|
4
4
|
/**
|
|
5
5
|
* Prisma proxy handler for injecting access policy check.
|
|
@@ -16,16 +16,24 @@ export declare class PolicyProxyHandler<DbClient extends DbClientContract> imple
|
|
|
16
16
|
private readonly utils;
|
|
17
17
|
constructor(prisma: DbClient, policy: PolicyDef, modelMeta: ModelMeta, zodSchemas: ZodSchemas | undefined, model: string, user?: AuthUser | undefined, logPrismaQuery?: boolean | undefined);
|
|
18
18
|
private get modelClient();
|
|
19
|
-
findUnique(args: any): Promise<
|
|
20
|
-
findUniqueOrThrow(args: any): Promise<
|
|
21
|
-
findFirst(args: any): Promise<
|
|
22
|
-
findFirstOrThrow(args: any): Promise<
|
|
19
|
+
findUnique(args: any): Promise<unknown>;
|
|
20
|
+
findUniqueOrThrow(args: any): Promise<unknown>;
|
|
21
|
+
findFirst(args: any): Promise<unknown>;
|
|
22
|
+
findFirstOrThrow(args: any): Promise<unknown>;
|
|
23
23
|
findMany(args: any): Promise<unknown[]>;
|
|
24
|
-
create(args: any): Promise<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
create(args: any): Promise<any>;
|
|
25
|
+
private doCreate;
|
|
26
|
+
private hasNestedCreateOrConnect;
|
|
27
|
+
private validateCreateInputSchema;
|
|
28
|
+
createMany(args: {
|
|
29
|
+
data: any;
|
|
30
|
+
skipDuplicates?: boolean;
|
|
31
|
+
}): Promise<any>;
|
|
32
|
+
private doCreateMany;
|
|
33
|
+
update(args: any): Promise<any>;
|
|
34
|
+
private doUpdate;
|
|
35
|
+
updateMany(args: any): Promise<any>;
|
|
36
|
+
upsert(args: any): Promise<any>;
|
|
29
37
|
delete(args: any): Promise<any>;
|
|
30
38
|
deleteMany(args: any): Promise<{
|
|
31
39
|
count: number;
|
|
@@ -33,7 +41,7 @@ export declare class PolicyProxyHandler<DbClient extends DbClientContract> imple
|
|
|
33
41
|
aggregate(args: any): Promise<unknown>;
|
|
34
42
|
groupBy(args: any): Promise<unknown>;
|
|
35
43
|
count(args: any): Promise<unknown>;
|
|
36
|
-
tryReject(operation: PolicyOperationKind): void;
|
|
37
|
-
private checkReadback;
|
|
38
44
|
private get shouldLogQuery();
|
|
45
|
+
private transaction;
|
|
46
|
+
private runPostWriteChecks;
|
|
39
47
|
}
|