@lenne.tech/nest-server 8.1.0 → 8.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.env.js +3 -2
- package/dist/config.env.js.map +1 -1
- package/dist/core/common/decorators/restricted.decorator.d.ts +2 -0
- package/dist/core/common/decorators/restricted.decorator.js +10 -7
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/helpers/input.helper.d.ts +12 -2
- package/dist/core/common/helpers/input.helper.js +50 -11
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/interfaces/service-options.interface.d.ts +6 -0
- package/dist/core/common/models/core-model.model.d.ts +1 -1
- package/dist/core/common/models/core-model.model.js.map +1 -1
- package/dist/core/common/pipes/check-input.pipe.js +1 -1
- package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
- package/dist/core/common/services/crud.service.js +17 -19
- package/dist/core/common/services/crud.service.js.map +1 -1
- package/dist/core/common/services/module.service.d.ts +13 -1
- package/dist/core/common/services/module.service.js +39 -4
- package/dist/core/common/services/module.service.js.map +1 -1
- package/dist/core/common/types/ids.type.d.ts +8 -0
- package/dist/core/common/types/ids.type.js +3 -0
- package/dist/core/common/types/ids.type.js.map +1 -0
- package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
- package/dist/core/modules/user/core-user.service.js +38 -35
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/server/modules/user/user.model.d.ts +1 -1
- package/dist/server/modules/user/user.resolver.d.ts +2 -2
- package/dist/server/modules/user/user.resolver.js +30 -14
- package/dist/server/modules/user/user.resolver.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +37 -37
- package/src/config.env.ts +3 -2
- package/src/core/common/decorators/restricted.decorator.ts +16 -10
- package/src/core/common/helpers/input.helper.ts +63 -14
- package/src/core/common/interfaces/service-options.interface.ts +19 -1
- package/src/core/common/models/core-model.model.ts +1 -1
- package/src/core/common/pipes/check-input.pipe.ts +1 -1
- package/src/core/common/services/crud.service.ts +17 -22
- package/src/core/common/services/module.service.ts +75 -9
- package/src/core/common/types/ids.type.ts +7 -0
- package/src/core/modules/auth/guards/roles.guard.ts +1 -1
- package/src/core/modules/user/core-user.service.ts +42 -44
- package/src/index.ts +1 -0
- package/src/server/modules/user/user.resolver.ts +26 -20
package/dist/config.env.js
CHANGED
|
@@ -93,7 +93,8 @@ const config = {
|
|
|
93
93
|
},
|
|
94
94
|
},
|
|
95
95
|
};
|
|
96
|
-
const
|
|
97
|
-
|
|
96
|
+
const env = process.env['NODE' + '_ENV'] || 'development';
|
|
97
|
+
const envConfig = config[env] || config.development;
|
|
98
|
+
console.log('Configured for: ' + envConfig.env + (env !== envConfig.env ? ' (requested: ' + env + ')' : ''));
|
|
98
99
|
exports.default = envConfig;
|
|
99
100
|
//# sourceMappingURL=config.env.js.map
|
package/dist/config.env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAM5B,MAAM,MAAM,GAAsC;IAIhD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,2BAA2B;SACpC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,qCAAqC;SAC3C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;IAKD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,4BAA4B;SACrC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,sCAAsC;SAC5C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;CACF,CAAC;AAOF,MAAM,
|
|
1
|
+
{"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAM5B,MAAM,MAAM,GAAsC;IAIhD,WAAW,EAAE;QACX,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,2BAA2B;SACpC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,qCAAqC;SAC3C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;IAKD,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE;oBACJ,IAAI,EAAE,yBAAyB;oBAC/B,IAAI,EAAE,oBAAoB;iBAC3B;gBACD,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,GAAG;gBACT,MAAM,EAAE,KAAK;aACd;YACD,OAAO,EAAE;gBACP,cAAc,EAAE,wBAAwB;gBACxC,eAAe,EAAE,yBAAyB;aAC3C;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,yBAAyB;gBAChC,IAAI,EAAE,mBAAmB;aAC1B;YACD,gBAAgB,EAAE,yCAAyC;YAC3D,iBAAiB,EAAE,2CAA2C;SAC/D;QACD,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,KAAK,EAAE,KAAK;gBACZ,aAAa,EAAE,IAAI;aACpB;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE,4BAA4B;SACrC;QACD,QAAQ,EAAE;YACR,GAAG,EAAE,sCAAsC;SAC5C;QACD,IAAI,EAAE,IAAI;QACV,YAAY,EAAE;YACZ,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;YACrC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAChC;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,WAAW,CAAC;YAClC,MAAM,EAAE,KAAK;SACd;KACF;CACF,CAAC;AAOF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,aAAa,CAAC;AAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;AACpD,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAK7G,kBAAe,SAAS,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
+
import { IdsType } from '../types/ids.type';
|
|
2
3
|
export declare const Restricted: (...roles: string[]) => PropertyDecorator;
|
|
3
4
|
export declare const getRestricted: (object: unknown, propertyKey: string) => any;
|
|
4
5
|
export declare const checkRestricted: (data: any, user: {
|
|
@@ -6,5 +7,6 @@ export declare const checkRestricted: (data: any, user: {
|
|
|
6
7
|
hasRole: (roles: string[]) => boolean;
|
|
7
8
|
}, options?: {
|
|
8
9
|
ignoreUndefined?: boolean;
|
|
10
|
+
ownerIds?: IdsType;
|
|
9
11
|
throwError?: boolean;
|
|
10
12
|
}, processedObjects?: any[]) => any;
|
|
@@ -4,6 +4,7 @@ exports.checkRestricted = exports.getRestricted = exports.Restricted = void 0;
|
|
|
4
4
|
require("reflect-metadata");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const role_enum_1 = require("../enums/role.enum");
|
|
7
|
+
const db_helper_1 = require("../helpers/db.helper");
|
|
7
8
|
const restrictedMetaKey = Symbol('restricted');
|
|
8
9
|
const Restricted = (...roles) => {
|
|
9
10
|
return Reflect.metadata(restrictedMetaKey, roles);
|
|
@@ -23,7 +24,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
|
|
|
23
24
|
}
|
|
24
25
|
processedObjects.push(data);
|
|
25
26
|
if (Array.isArray(data)) {
|
|
26
|
-
return data.map((item) => (0, exports.checkRestricted)(item, user,
|
|
27
|
+
return data.map((item) => (0, exports.checkRestricted)(item, user, config, processedObjects));
|
|
27
28
|
}
|
|
28
29
|
for (const propertyKey of Object.keys(data)) {
|
|
29
30
|
if (data[propertyKey] === undefined && config.ignoreUndefined) {
|
|
@@ -33,12 +34,14 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
|
|
|
33
34
|
if (roles && roles.some((value) => !!value)) {
|
|
34
35
|
if (!user || !user.hasRole(roles)) {
|
|
35
36
|
if (user && roles.includes(role_enum_1.RoleEnum.OWNER)) {
|
|
36
|
-
const userId =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
data.ownerIds.some((item) => (item.id ? item.id.toString() === userId : item.toString() === userId))))) {
|
|
37
|
+
const userId = (0, db_helper_1.getStringIds)(user);
|
|
38
|
+
const ownerIds = config.ownerIds ? (0, db_helper_1.getStringIds)(config.ownerIds) : null;
|
|
39
|
+
if (!ownerIds ||
|
|
40
|
+
!(ownerIds === userId || (Array.isArray(ownerIds) && ownerIds.includes(userId)))) {
|
|
41
41
|
if (config.throwError) {
|
|
42
|
+
if (!config.ownerIds) {
|
|
43
|
+
throw new common_1.UnauthorizedException('Lack of ownerIds to verify ownership of ' + propertyKey);
|
|
44
|
+
}
|
|
42
45
|
throw new common_1.UnauthorizedException('Current user is not allowed to set ' + propertyKey);
|
|
43
46
|
}
|
|
44
47
|
continue;
|
|
@@ -52,7 +55,7 @@ const checkRestricted = (data, user, options = {}, processedObjects = []) => {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
data[propertyKey] = (0, exports.checkRestricted)(data[propertyKey], user,
|
|
58
|
+
data[propertyKey] = (0, exports.checkRestricted)(data[propertyKey], user, config, processedObjects);
|
|
56
59
|
}
|
|
57
60
|
return data;
|
|
58
61
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAC1B,2CAAuD;AACvD,kDAA8C;
|
|
1
|
+
{"version":3,"file":"restricted.decorator.js","sourceRoot":"","sources":["../../../../src/core/common/decorators/restricted.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { IdsType } from '../types/ids.type';
|
|
1
2
|
export default class InputHelper {
|
|
2
3
|
static check(value: any, user: {
|
|
3
4
|
id: any;
|
|
4
5
|
hasRole: (roles: string[]) => boolean;
|
|
5
|
-
},
|
|
6
|
+
}, options?: {
|
|
7
|
+
metatype?: any;
|
|
8
|
+
ownerIds?: IdsType;
|
|
9
|
+
roles?: string | string[];
|
|
10
|
+
}): Promise<any>;
|
|
6
11
|
static errorFunction(caller: (...params: any[]) => any, message?: string): void;
|
|
7
12
|
static isArray(parameter: any, falseFunction?: (...params: any[]) => any): boolean;
|
|
8
13
|
static isBasicType(metatype: any, falseFunction?: (...params: any[]) => any): boolean;
|
|
@@ -27,7 +32,12 @@ export default class InputHelper {
|
|
|
27
32
|
export declare function check(value: any, user: {
|
|
28
33
|
id: any;
|
|
29
34
|
hasRole: (roles: string[]) => boolean;
|
|
30
|
-
},
|
|
35
|
+
}, options?: {
|
|
36
|
+
metatype?: any;
|
|
37
|
+
ownerIds?: IdsType;
|
|
38
|
+
roles?: string | string[];
|
|
39
|
+
throwError?: boolean;
|
|
40
|
+
}): Promise<any>;
|
|
31
41
|
export declare function errorFunction(caller: (...params: any[]) => any, message?: string): void;
|
|
32
42
|
export declare function isArray(parameter: any, falseFunction?: (...params: any[]) => any): boolean;
|
|
33
43
|
export declare function isBasicType(metatype: any, falseFunction?: (...params: any[]) => any): boolean;
|
|
@@ -6,9 +6,11 @@ const class_transformer_1 = require("class-transformer");
|
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const _ = require("lodash");
|
|
8
8
|
const restricted_decorator_1 = require("../decorators/restricted.decorator");
|
|
9
|
+
const role_enum_1 = require("../enums/role.enum");
|
|
10
|
+
const db_helper_1 = require("./db.helper");
|
|
9
11
|
class InputHelper {
|
|
10
|
-
static async check(value, user,
|
|
11
|
-
return check(value, user,
|
|
12
|
+
static async check(value, user, options) {
|
|
13
|
+
return check(value, user, options);
|
|
12
14
|
}
|
|
13
15
|
static errorFunction(caller, message = 'Required parameter is missing or invalid') {
|
|
14
16
|
return errorFunction(caller, message);
|
|
@@ -72,23 +74,60 @@ class InputHelper {
|
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
exports.default = InputHelper;
|
|
75
|
-
async function check(value, user,
|
|
76
|
-
|
|
77
|
+
async function check(value, user, options) {
|
|
78
|
+
var _a;
|
|
79
|
+
const config = Object.assign({ throwError: true }, options);
|
|
80
|
+
if (((_a = config.roles) === null || _a === void 0 ? void 0 : _a.length) && config.throwError) {
|
|
81
|
+
let roles = config.roles;
|
|
82
|
+
if (!Array.isArray(roles)) {
|
|
83
|
+
roles = [roles];
|
|
84
|
+
}
|
|
85
|
+
let valid = false;
|
|
86
|
+
if (roles.includes(role_enum_1.RoleEnum.USER) && (user === null || user === void 0 ? void 0 : user.id)) {
|
|
87
|
+
valid = true;
|
|
88
|
+
}
|
|
89
|
+
else if (user.hasRole(roles)) {
|
|
90
|
+
valid = true;
|
|
91
|
+
}
|
|
92
|
+
else if (roles.includes(role_enum_1.RoleEnum.OWNER) && (user === null || user === void 0 ? void 0 : user.id) && config.ownerIds) {
|
|
93
|
+
let ownerIds = (0, db_helper_1.getStringIds)(config.ownerIds);
|
|
94
|
+
if (!Array.isArray(ownerIds)) {
|
|
95
|
+
ownerIds = [ownerIds];
|
|
96
|
+
}
|
|
97
|
+
valid = ownerIds.includes((0, db_helper_1.getStringIds)(user.id));
|
|
98
|
+
}
|
|
99
|
+
if (!valid) {
|
|
100
|
+
throw new common_1.UnauthorizedException('Missing rights');
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (typeof value !== 'object') {
|
|
104
|
+
return value;
|
|
105
|
+
}
|
|
106
|
+
if (Array.isArray(value)) {
|
|
107
|
+
for (const [key, item] of Object.entries(value)) {
|
|
108
|
+
value[key] = await check(item, user, config);
|
|
109
|
+
}
|
|
77
110
|
return value;
|
|
78
111
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
112
|
+
const metatype = config.metatype;
|
|
113
|
+
if (metatype) {
|
|
114
|
+
if (isBasicType(metatype)) {
|
|
115
|
+
return value;
|
|
82
116
|
}
|
|
83
|
-
|
|
84
|
-
|
|
117
|
+
if (!(value instanceof metatype)) {
|
|
118
|
+
if (metatype === null || metatype === void 0 ? void 0 : metatype.map) {
|
|
119
|
+
value = metatype === null || metatype === void 0 ? void 0 : metatype.map(value);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
value = (0, class_transformer_1.plainToInstance)(metatype, value);
|
|
123
|
+
}
|
|
85
124
|
}
|
|
86
125
|
}
|
|
87
126
|
const errors = await (0, class_validator_1.validate)(value);
|
|
88
|
-
if (errors.length > 0) {
|
|
127
|
+
if (errors.length > 0 && config.throwError) {
|
|
89
128
|
throw new common_1.BadRequestException('Validation failed');
|
|
90
129
|
}
|
|
91
|
-
value = (0, restricted_decorator_1.checkRestricted)(value, user);
|
|
130
|
+
value = (0, restricted_decorator_1.checkRestricted)(value, user, config);
|
|
92
131
|
return value;
|
|
93
132
|
}
|
|
94
133
|
exports.check = check;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/input.helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"input.helper.js","sourceRoot":"","sources":["../../../../src/core/common/helpers/input.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { Model } from 'mongoose';
|
|
2
2
|
import { FieldSelection } from '../types/field-selection.type';
|
|
3
|
+
import { IdsType } from '../types/ids.type';
|
|
3
4
|
export interface ServiceOptions {
|
|
4
5
|
[key: string]: any;
|
|
6
|
+
checkRights?: boolean;
|
|
5
7
|
currentUser?: {
|
|
6
8
|
[key: string]: any;
|
|
7
9
|
id: string;
|
|
8
10
|
roles?: string[];
|
|
9
11
|
};
|
|
10
12
|
fieldSelection?: FieldSelection;
|
|
13
|
+
inputType?: new (...params: any[]) => any;
|
|
14
|
+
ownerIds?: IdsType;
|
|
11
15
|
processFieldSelection?: {
|
|
12
16
|
model?: new (...args: any[]) => any;
|
|
13
17
|
dbModel?: Model<any>;
|
|
@@ -27,4 +31,6 @@ export interface ServiceOptions {
|
|
|
27
31
|
targetModel?: new (...args: any[]) => any;
|
|
28
32
|
};
|
|
29
33
|
pubSub?: boolean;
|
|
34
|
+
resultType?: new (...params: any[]) => any;
|
|
35
|
+
roles?: string | string[];
|
|
30
36
|
}
|
|
@@ -16,7 +16,7 @@ export declare abstract class CoreModel {
|
|
|
16
16
|
item?: T;
|
|
17
17
|
mapId?: boolean;
|
|
18
18
|
}): T;
|
|
19
|
-
init
|
|
19
|
+
init(...args: any[]): this;
|
|
20
20
|
map(data: Partial<this> | Record<string, any>, options?: {
|
|
21
21
|
[key: string]: any;
|
|
22
22
|
cloneDeep?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAA8C;AAY9C,MAAsB,SAAS;IAItB,MAAM,CAAC,IAAI,CAAuD,GAAG,IAAW;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKM,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAMM,IAAI,
|
|
1
|
+
{"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAA8C;AAY9C,MAAsB,SAAS;IAItB,MAAM,CAAC,IAAI,CAAuD,GAAG,IAAW;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKM,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAOI,EAAE;QAEN,MAAM,MAAM,mBACV,IAAI,EAAE,IAAI,IACP,OAAO,CACX,CAAC;QAEF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAMM,IAAI,CAAC,GAAG,IAAW;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAKM,GAAG,CACR,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAG,EAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAUM,OAAO,CACZ,IAAyC,EACzC,UAMI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AA1HD,8BA0HC"}
|
|
@@ -24,7 +24,7 @@ let CheckInputPipe = class CheckInputPipe {
|
|
|
24
24
|
async transform(value, metadata) {
|
|
25
25
|
const metatype = metadata === null || metadata === void 0 ? void 0 : metadata.metatype;
|
|
26
26
|
const { user } = (0, context_helper_1.getContextData)(this.context);
|
|
27
|
-
return (0, input_helper_1.check)(value, user, metatype);
|
|
27
|
+
return (0, input_helper_1.check)(value, user, { metatype });
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
CheckInputPipe = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,6CAA0C;AAC1C,8DAA2D;AAC3D,0DAAgD;AAUhD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAEpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAGpC,MAAM,EAAE,IAAI,EAAE,GAAQ,IAAA,+BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGnD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,6CAA0C;AAC1C,8DAA2D;AAC3D,0DAAgD;AAUhD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAEpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAGpC,MAAM,EAAE,IAAI,EAAE,GAAQ,IAAA,+BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGnD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF,CAAA;AAnBY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAA;;GAJjB,cAAc,CAmB1B;AAnBY,wCAAc"}
|
|
@@ -13,13 +13,11 @@ class CrudService extends module_service_1.ModuleService {
|
|
|
13
13
|
}, { input, serviceOptions });
|
|
14
14
|
}
|
|
15
15
|
async get(id, serviceOptions) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return item;
|
|
22
|
-
}, { input: id, serviceOptions });
|
|
16
|
+
const dbObject = await this.mainDbModel.findById(id).exec();
|
|
17
|
+
if (!dbObject) {
|
|
18
|
+
throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
|
|
19
|
+
}
|
|
20
|
+
return this.process(async () => dbObject, { dbObject, serviceOptions });
|
|
23
21
|
}
|
|
24
22
|
async find(filterArgs, serviceOptions) {
|
|
25
23
|
return this.process(async (data) => {
|
|
@@ -36,23 +34,23 @@ class CrudService extends module_service_1.ModuleService {
|
|
|
36
34
|
}
|
|
37
35
|
}
|
|
38
36
|
async update(id, input, serviceOptions) {
|
|
37
|
+
const dbObject = await this.mainDbModel.findById(id).exec();
|
|
38
|
+
if (!dbObject) {
|
|
39
|
+
throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
|
|
40
|
+
}
|
|
39
41
|
return this.process(async (data) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
|
|
43
|
-
}
|
|
44
|
-
return await Object.assign(item, data.input).save();
|
|
45
|
-
}, { input, serviceOptions });
|
|
42
|
+
return await Object.assign(dbObject, data.input).save();
|
|
43
|
+
}, { dbObject, input, serviceOptions });
|
|
46
44
|
}
|
|
47
45
|
async delete(id, serviceOptions) {
|
|
46
|
+
const dbObject = await this.mainDbModel.findById(id).exec();
|
|
47
|
+
if (!dbObject) {
|
|
48
|
+
throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
|
|
49
|
+
}
|
|
48
50
|
return this.process(async (data) => {
|
|
49
|
-
const item = await this.mainDbModel.findById(id).exec();
|
|
50
|
-
if (!item) {
|
|
51
|
-
throw new common_1.NotFoundException(`No ${this.mainModelConstructor.name} found with ID: ${id}`);
|
|
52
|
-
}
|
|
53
51
|
await this.mainDbModel.findByIdAndDelete(id).exec();
|
|
54
|
-
return
|
|
55
|
-
}, { input: id, serviceOptions });
|
|
52
|
+
return dbObject;
|
|
53
|
+
}, { dbObject, input: id, serviceOptions });
|
|
56
54
|
}
|
|
57
55
|
}
|
|
58
56
|
exports.CrudService = CrudService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":";;;AAAA,2CAAmD;AAEnD,4DAAiD;AACjD,4DAAoE;AAGpE,qDAAiD;AAEjD,MAAsB,WAAuC,SAAQ,8BAAgB;IAInF,KAAK,CAAC,MAAM,CAAC,KAAU,EAAE,cAA+B;QACtD,IAAA,qBAAK,EAAC,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,CACjB,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,OAAO,IAAI,IAAI,CAAC,WAAW,mBAAM,IAAI,CAAC,KAAK,EAAG,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC,EACD,EAAE,KAAK,EAAE,cAAc,EAAE,CAC1B,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,cAA+B;QACnD,
|
|
1
|
+
{"version":3,"file":"crud.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Document, Model } from 'mongoose';
|
|
1
|
+
import { Document, Model, Types } from 'mongoose';
|
|
2
2
|
import { ServiceOptions } from '../interfaces/service-options.interface';
|
|
3
3
|
import { CoreModel } from '../models/core-model.model';
|
|
4
4
|
import { FieldSelection } from '../types/field-selection.type';
|
|
5
|
+
import { IdsType } from '../types/ids.type';
|
|
5
6
|
export declare abstract class ModuleService<T extends CoreModel = any> {
|
|
6
7
|
protected mainModelConstructor: new (...args: any[]) => T;
|
|
7
8
|
protected mainDbModel: Model<T & Document>;
|
|
@@ -9,12 +10,23 @@ export declare abstract class ModuleService<T extends CoreModel = any> {
|
|
|
9
10
|
mainDbModel: Model<T & Document>;
|
|
10
11
|
mainModelConstructor?: new (...args: any[]) => T;
|
|
11
12
|
});
|
|
13
|
+
checkRights(input: any, currentUser: {
|
|
14
|
+
id: any;
|
|
15
|
+
hasRole: (roles: string[]) => boolean;
|
|
16
|
+
}, options?: {
|
|
17
|
+
metatype?: any;
|
|
18
|
+
ownerIds?: IdsType;
|
|
19
|
+
roles?: string | string[];
|
|
20
|
+
throwError?: boolean;
|
|
21
|
+
}): Promise<any>;
|
|
22
|
+
abstract get(id: any, ...args: any[]): any;
|
|
12
23
|
process(serviceFunc: (options?: {
|
|
13
24
|
[key: string]: any;
|
|
14
25
|
input?: any;
|
|
15
26
|
serviceOptions?: ServiceOptions;
|
|
16
27
|
}) => any, options?: {
|
|
17
28
|
[key: string]: any;
|
|
29
|
+
dbObject?: string | Types.ObjectId | any;
|
|
18
30
|
input?: any;
|
|
19
31
|
serviceOptions?: ServiceOptions;
|
|
20
32
|
}): Promise<any>;
|
|
@@ -1,19 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModuleService = void 0;
|
|
4
|
+
const mongoose_1 = require("mongoose");
|
|
4
5
|
const db_helper_1 = require("../helpers/db.helper");
|
|
6
|
+
const input_helper_1 = require("../helpers/input.helper");
|
|
5
7
|
const service_helper_1 = require("../helpers/service.helper");
|
|
6
8
|
class ModuleService {
|
|
7
9
|
constructor(options) {
|
|
8
10
|
this.mainDbModel = options === null || options === void 0 ? void 0 : options.mainDbModel;
|
|
9
11
|
this.mainModelConstructor = options === null || options === void 0 ? void 0 : options.mainModelConstructor;
|
|
10
12
|
}
|
|
13
|
+
checkRights(input, currentUser, options) {
|
|
14
|
+
const config = Object.assign({ metatype: this.mainModelConstructor }, options);
|
|
15
|
+
return (0, input_helper_1.check)(input, currentUser, config);
|
|
16
|
+
}
|
|
11
17
|
async process(serviceFunc, options) {
|
|
12
|
-
|
|
18
|
+
var _a;
|
|
19
|
+
const config = Object.assign({ checkRights: true, dbObject: options === null || options === void 0 ? void 0 : options.dbObject, input: options === null || options === void 0 ? void 0 : options.input, processFieldSelection: {}, prepareInput: {}, prepareOutput: {}, pubSub: true }, options === null || options === void 0 ? void 0 : options.serviceOptions);
|
|
13
20
|
if (config.prepareInput && this.prepareInput) {
|
|
14
|
-
await this.prepareInput(
|
|
21
|
+
await this.prepareInput(config.input, config.prepareInput);
|
|
22
|
+
}
|
|
23
|
+
let ownerIds = undefined;
|
|
24
|
+
if (config.checkRights && this.checkRights) {
|
|
25
|
+
ownerIds = (0, db_helper_1.getStringIds)(config.ownerIds);
|
|
26
|
+
if (!(ownerIds === null || ownerIds === void 0 ? void 0 : ownerIds.length)) {
|
|
27
|
+
if (config.dbObject) {
|
|
28
|
+
if (typeof config.dbObject === 'string' || config.dbObject instanceof mongoose_1.Types.ObjectId) {
|
|
29
|
+
ownerIds = (_a = (await this.get((0, db_helper_1.getStringIds)(config.dbObject)))) === null || _a === void 0 ? void 0 : _a.ownerIds;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
ownerIds = config.dbObject.ownerIds;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
15
36
|
}
|
|
16
|
-
|
|
37
|
+
if (config.input && config.checkRights && this.checkRights) {
|
|
38
|
+
const opts = { ownerIds, roles: config.roles };
|
|
39
|
+
if (config.inputType) {
|
|
40
|
+
opts.metatype = config.resultType;
|
|
41
|
+
}
|
|
42
|
+
config.input = await this.checkRights(config.input, config.currentUser, opts);
|
|
43
|
+
}
|
|
44
|
+
let result = await serviceFunc(config);
|
|
17
45
|
if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
|
|
18
46
|
await this.processFieldSelection(result, config.fieldSelection, config.processFieldSelection);
|
|
19
47
|
}
|
|
@@ -21,7 +49,14 @@ class ModuleService {
|
|
|
21
49
|
if (config.processFieldSelection && config.fieldSelection && this.processFieldSelection) {
|
|
22
50
|
config.prepareOutput.targetModel = null;
|
|
23
51
|
}
|
|
24
|
-
|
|
52
|
+
result = await this.prepareOutput(result, config.prepareOutput);
|
|
53
|
+
}
|
|
54
|
+
if (config.checkRights && this.checkRights) {
|
|
55
|
+
const opts = { ownerIds, roles: config.roles, throwError: false };
|
|
56
|
+
if (config.resultType) {
|
|
57
|
+
opts.metatype = config.resultType;
|
|
58
|
+
}
|
|
59
|
+
result = await this.checkRights(result, config.currentUser, opts);
|
|
25
60
|
}
|
|
26
61
|
return result;
|
|
27
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"module.service.js","sourceRoot":"","sources":["../../../../src/core/common/services/module.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Types } from 'mongoose';
|
|
2
|
+
export declare type IdsType = string | Types.ObjectId | {
|
|
3
|
+
id?: string | Types.ObjectId;
|
|
4
|
+
_id?: string | Types.ObjectId;
|
|
5
|
+
} | (string | Types.ObjectId | {
|
|
6
|
+
id?: string | Types.ObjectId;
|
|
7
|
+
_id?: string | Types.ObjectId;
|
|
8
|
+
})[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/ids.type.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"roles.guard.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/guards/roles.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA6F;AAC7F,uCAAyC;AACzC,6CAAsD;AACtD,+DAA2D;AAC3D,6CAAyC;AASzC,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,IAAA,sBAAS,EAAC,KAAK,CAAC;IAI9C,YAA+B,SAAoB;QACjD,KAAK,EAAE,CAAC;QADqB,cAAS,GAAT,SAAS,CAAW;IAEnD,CAAC;IAKD,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO;QAEpC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAa,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC9G,MAAM,KAAK,GAAa,cAAc,CAAC,CAAC,CAAC;YACvC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAGtB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;QAGD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAEjC,MAAM,IAAI,GAAQ,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;YAGhE,IACE,IAAI;gBACJ,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EACrG;gBACA,OAAO,IAAI,CAAC;aACb;YAGD,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QAGD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD,UAAU,CAAC,OAAyB;QAClC,MAAM,GAAG,GAAG,6BAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACvF,CAAC;CACF,CAAA;AArDY,UAAU;IADtB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,UAAU,CAqDtB;AArDY,gCAAU"}
|