@lenne.tech/nest-server 3.1.3 → 3.3.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/dist/core/common/args/filter.args.d.ts +5 -0
- package/dist/core/common/args/filter.args.js +10 -0
- package/dist/core/common/args/filter.args.js.map +1 -1
- package/dist/core/common/args/pagination.args.d.ts +8 -1
- package/dist/core/common/args/pagination.args.js +24 -6
- package/dist/core/common/args/pagination.args.js.map +1 -1
- package/dist/core/common/decorators/restricted.decorator.d.ts +3 -0
- package/dist/core/common/decorators/restricted.decorator.js +16 -5
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/helpers/context.helper.js +15 -5
- package/dist/core/common/helpers/context.helper.js.map +1 -1
- package/dist/core/common/helpers/filter.helper.d.ts +3 -3
- package/dist/core/common/helpers/filter.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql.helper.d.ts +4 -4
- package/dist/core/common/helpers/input.helper.js +13 -7
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/helpers/service.helper.d.ts +11 -8
- package/dist/core/common/helpers/service.helper.js +50 -12
- package/dist/core/common/helpers/service.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.d.ts +8 -2
- package/dist/core/common/inputs/combined-filter.input.js +16 -5
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/core-input.input.d.ts +8 -0
- package/dist/core/common/inputs/core-input.input.js +15 -0
- package/dist/core/common/inputs/core-input.input.js.map +1 -0
- package/dist/core/common/inputs/filter.input.d.ts +7 -1
- package/dist/core/common/inputs/filter.input.js +14 -1
- package/dist/core/common/inputs/filter.input.js.map +1 -1
- package/dist/core/common/inputs/single-filter.input.d.ts +2 -1
- package/dist/core/common/inputs/single-filter.input.js +10 -1
- package/dist/core/common/inputs/single-filter.input.js.map +1 -1
- package/dist/core/common/inputs/sort.input.d.ts +2 -1
- package/dist/core/common/inputs/sort.input.js +7 -1
- package/dist/core/common/inputs/sort.input.js.map +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
- package/dist/core/common/interfaces/core-persistence-model.interface.d.ts +1 -0
- package/dist/core/common/interfaces/server-options.interface.d.ts +3 -15
- package/dist/core/common/models/core-model.model.d.ts +6 -0
- package/dist/core/common/models/core-model.model.js +14 -5
- package/dist/core/common/models/core-model.model.js.map +1 -1
- package/dist/core/common/models/core-persistence.model.d.ts +5 -29
- package/dist/core/common/models/core-persistence.model.js +19 -41
- package/dist/core/common/models/core-persistence.model.js.map +1 -1
- package/dist/core/common/pipes/check-input.pipe.d.ts +2 -3
- package/dist/core/common/pipes/check-input.pipe.js +5 -20
- package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.d.ts +4 -0
- package/dist/core/common/pipes/map-and-validate.pipe.js +40 -0
- package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -0
- package/dist/core/common/types/plain-input.type.d.ts +3 -0
- package/dist/core/common/types/plain-input.type.js +3 -0
- package/dist/core/common/types/plain-input.type.js.map +1 -0
- package/dist/core/modules/auth/core-auth.model.d.ts +3 -1
- package/dist/core/modules/auth/core-auth.model.js +7 -1
- package/dist/core/modules/auth/core-auth.model.js.map +1 -1
- package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -1
- package/dist/core/modules/user/core-user.model.d.ts +3 -0
- package/dist/core/modules/user/core-user.model.js +9 -4
- package/dist/core/modules/user/core-user.model.js.map +1 -1
- package/dist/core/modules/user/core-user.service.d.ts +9 -13
- package/dist/core/modules/user/core-user.service.js +38 -67
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user-create.input.js +4 -0
- package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user.input.d.ts +2 -1
- package/dist/core/modules/user/inputs/core-user.input.js +12 -2
- package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
- package/dist/core.module.js +4 -4
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/server/common/models/persistence.model.d.ts +4 -2
- package/dist/server/common/models/persistence.model.js +6 -2
- package/dist/server/common/models/persistence.model.js.map +1 -1
- package/dist/server/modules/auth/auth.model.d.ts +1 -0
- package/dist/server/modules/auth/auth.model.js +4 -0
- package/dist/server/modules/auth/auth.model.js.map +1 -1
- package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
- package/dist/server/modules/user/inputs/user.input.js.map +1 -1
- package/dist/server/modules/user/user.model.d.ts +3 -2
- package/dist/server/modules/user/user.model.js +9 -5
- package/dist/server/modules/user/user.model.js.map +1 -1
- package/dist/server/modules/user/user.resolver.d.ts +2 -2
- package/dist/server/modules/user/user.resolver.js +10 -12
- package/dist/server/modules/user/user.resolver.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +6 -6
- package/dist/server/modules/user/user.service.js +12 -4
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +26 -26
- package/src/core/common/args/filter.args.ts +22 -1
- package/src/core/common/args/pagination.args.ts +42 -7
- package/src/core/common/decorators/restricted.decorator.ts +24 -5
- package/src/core/common/helpers/context.helper.ts +14 -3
- package/src/core/common/helpers/filter.helper.ts +3 -3
- package/src/core/common/helpers/input.helper.ts +17 -11
- package/src/core/common/helpers/service.helper.ts +96 -31
- package/src/core/common/inputs/combined-filter.input.ts +30 -9
- package/src/core/common/inputs/core-input.input.ts +36 -0
- package/src/core/common/inputs/filter.input.ts +27 -3
- package/src/core/common/inputs/single-filter.input.ts +7 -6
- package/src/core/common/inputs/sort.input.ts +4 -3
- package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
- package/src/core/common/interfaces/core-persistence-model.interface.ts +1 -0
- package/src/core/common/interfaces/server-options.interface.ts +3 -33
- package/src/core/common/models/core-model.model.ts +42 -3
- package/src/core/common/models/core-persistence.model.ts +33 -120
- package/src/core/common/pipes/check-input.pipe.ts +13 -33
- package/src/core/common/pipes/map-and-validate.pipe.ts +32 -0
- package/src/core/common/types/plain-input.type.ts +6 -0
- package/src/core/modules/auth/core-auth.model.ts +15 -1
- package/src/core/modules/auth/core-auth.resolver.ts +1 -1
- package/src/core/modules/user/core-user.model.ts +16 -4
- package/src/core/modules/user/core-user.service.ts +59 -115
- package/src/core/modules/user/inputs/core-user-create.input.ts +5 -1
- package/src/core/modules/user/inputs/core-user.input.ts +13 -8
- package/src/core.module.ts +13 -6
- package/src/index.ts +6 -2
- package/src/server/common/models/persistence.model.ts +16 -2
- package/src/server/modules/auth/auth.model.ts +13 -0
- package/src/server/modules/user/inputs/user-create.input.ts +4 -0
- package/src/server/modules/user/inputs/user.input.ts +4 -0
- package/src/server/modules/user/user.model.ts +18 -5
- package/src/server/modules/user/user.resolver.ts +15 -19
- package/src/server/modules/user/user.service.ts +22 -7
|
@@ -3,30 +3,26 @@ import { CoreBasicUserService } from './core-basic-user.service';
|
|
|
3
3
|
import { CoreUserModel } from './core-user.model';
|
|
4
4
|
import { CoreUserCreateInput } from './inputs/core-user-create.input';
|
|
5
5
|
import { CoreUserInput } from './inputs/core-user.input';
|
|
6
|
-
import { Model } from 'mongoose';
|
|
6
|
+
import { Model, Document } from 'mongoose';
|
|
7
7
|
import { EmailService } from '../../common/services/email.service';
|
|
8
8
|
export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CoreBasicUserService<TUser, TUserInput, TUserCreateInput> {
|
|
9
|
-
protected readonly userModel: Model<
|
|
9
|
+
protected readonly userModel: Model<TUser & Document>;
|
|
10
10
|
protected emailService: EmailService;
|
|
11
|
-
protected constructor(userModel: Model<
|
|
11
|
+
protected constructor(userModel: Model<TUser & Document>, emailService: EmailService);
|
|
12
12
|
create(input: TUserCreateInput, currentUser?: TUser, ...args: any[]): Promise<TUser>;
|
|
13
13
|
delete(id: string, ...args: any[]): Promise<TUser>;
|
|
14
14
|
get(id: string, ...args: any[]): Promise<TUser>;
|
|
15
15
|
find(filterArgs?: FilterArgs, ...args: any[]): Promise<TUser[]>;
|
|
16
|
-
verify(token: string): Promise<
|
|
17
|
-
resetPassword(token: string, newPassword: string): Promise<
|
|
18
|
-
|
|
19
|
-
setRoles(userId: string, roles: string[]): Promise<TUser>;
|
|
16
|
+
verify(token: string, ...args: any[]): Promise<TUser>;
|
|
17
|
+
resetPassword(token: string, newPassword: string, ...args: any[]): Promise<TUser>;
|
|
18
|
+
setPasswordResetTokenForEmail(email: string, ...args: any[]): Promise<TUser>;
|
|
19
|
+
setRoles(userId: string, roles: string[], ...args: any[]): Promise<TUser>;
|
|
20
20
|
update(id: string, input: TUserInput, currentUser: TUser, ...args: any[]): Promise<TUser>;
|
|
21
|
-
protected prepareInput(input: {
|
|
22
|
-
[key: string]: any;
|
|
23
|
-
}, currentUser?: TUser, options?: {
|
|
21
|
+
protected prepareInput(input: Record<string, any>, currentUser?: TUser, options?: {
|
|
24
22
|
[key: string]: any;
|
|
25
23
|
checkRoles?: boolean;
|
|
26
24
|
clone?: boolean;
|
|
27
|
-
}, ...args: any[]): Promise<
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
}>;
|
|
25
|
+
}, ...args: any[]): Promise<Record<string, any>>;
|
|
30
26
|
protected prepareOutput(user: TUser, options?: {
|
|
31
27
|
[key: string]: any;
|
|
32
28
|
clone?: boolean;
|
|
@@ -4,12 +4,10 @@ exports.CoreUserService = void 0;
|
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const bcrypt = require("bcrypt");
|
|
6
6
|
const graphql_subscriptions_1 = require("graphql-subscriptions");
|
|
7
|
-
const role_enum_1 = require("../../common/enums/role.enum");
|
|
8
7
|
const filter_helper_1 = require("../../common/helpers/filter.helper");
|
|
8
|
+
const service_helper_1 = require("../../common/helpers/service.helper");
|
|
9
9
|
const core_basic_user_service_1 = require("./core-basic-user.service");
|
|
10
|
-
const _ = require("lodash");
|
|
11
10
|
const crypto = require("crypto");
|
|
12
|
-
const config_env_1 = require("../../../config.env");
|
|
13
11
|
const pubSub = new graphql_subscriptions_1.PubSub();
|
|
14
12
|
class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
|
|
15
13
|
constructor(userModel, emailService) {
|
|
@@ -19,8 +17,7 @@ class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
|
|
|
19
17
|
}
|
|
20
18
|
async create(input, currentUser, ...args) {
|
|
21
19
|
await this.prepareInput(input, currentUser, { create: true });
|
|
22
|
-
const
|
|
23
|
-
const createdUser = new this.userModel(this.model.map(newUser));
|
|
20
|
+
const createdUser = new this.userModel(Object.assign(Object.assign({}, input), { verificationToken: crypto.randomBytes(32).toString('hex') }));
|
|
24
21
|
try {
|
|
25
22
|
await createdUser.save();
|
|
26
23
|
}
|
|
@@ -32,21 +29,22 @@ class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
|
|
|
32
29
|
throw new common_1.UnprocessableEntityException();
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
await this.prepareOutput(createdUser, args[0]);
|
|
36
|
-
pubSub.publish('userCreated', { userCreated:
|
|
37
|
-
return
|
|
32
|
+
const preparedUser = await this.prepareOutput(this.model.map(createdUser), args[0]);
|
|
33
|
+
pubSub.publish('userCreated', { userCreated: preparedUser });
|
|
34
|
+
return preparedUser;
|
|
38
35
|
}
|
|
39
36
|
async delete(id, ...args) {
|
|
40
|
-
|
|
37
|
+
const user = await this.userModel.findById(id).exec();
|
|
41
38
|
if (!user) {
|
|
42
39
|
throw new common_1.NotFoundException();
|
|
43
40
|
}
|
|
44
|
-
await
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
await user.delete();
|
|
42
|
+
const deletedUser = await this.prepareOutput(this.model.map(user), args[0]);
|
|
43
|
+
pubSub.publish('userDeleted', { userDeleted: deletedUser });
|
|
44
|
+
return deletedUser;
|
|
47
45
|
}
|
|
48
46
|
async get(id, ...args) {
|
|
49
|
-
const user = await this.userModel.
|
|
47
|
+
const user = await this.userModel.findById(id).exec();
|
|
50
48
|
if (!user) {
|
|
51
49
|
throw new common_1.NotFoundException();
|
|
52
50
|
}
|
|
@@ -55,10 +53,10 @@ class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
|
|
|
55
53
|
async find(filterArgs, ...args) {
|
|
56
54
|
const filterQuery = filter_helper_1.Filter.convertFilterArgsToQuery(filterArgs);
|
|
57
55
|
return await Promise.all((await this.userModel.find(filterQuery[0], null, filterQuery[1]).exec()).map((user) => {
|
|
58
|
-
return this.prepareOutput(user, args[0]);
|
|
56
|
+
return this.prepareOutput(this.model.map(user), args[0]);
|
|
59
57
|
}));
|
|
60
58
|
}
|
|
61
|
-
async verify(token) {
|
|
59
|
+
async verify(token, ...args) {
|
|
62
60
|
const user = await this.userModel.findOne({ verificationToken: token }).exec();
|
|
63
61
|
if (!user) {
|
|
64
62
|
throw new common_1.NotFoundException();
|
|
@@ -69,86 +67,59 @@ class CoreUserService extends core_basic_user_service_1.CoreBasicUserService {
|
|
|
69
67
|
if (user.verified) {
|
|
70
68
|
throw new Error('User already verified');
|
|
71
69
|
}
|
|
72
|
-
await
|
|
73
|
-
|
|
70
|
+
await Object.assign(user, {
|
|
71
|
+
verified: true,
|
|
72
|
+
verificationToken: null,
|
|
73
|
+
}).save();
|
|
74
|
+
const verifiedUser = this.prepareOutput(this.model.map(user), args[0]);
|
|
75
|
+
pubSub.publish('userVerified', { userVerified: verifiedUser });
|
|
76
|
+
return verifiedUser;
|
|
74
77
|
}
|
|
75
|
-
async resetPassword(token, newPassword) {
|
|
78
|
+
async resetPassword(token, newPassword, ...args) {
|
|
76
79
|
const user = await this.userModel.findOne({ passwordResetToken: token }).exec();
|
|
77
80
|
if (!user) {
|
|
78
81
|
throw new common_1.NotFoundException();
|
|
79
82
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
return
|
|
83
|
+
await Object.assign(user, {
|
|
84
|
+
password: await bcrypt.hash(newPassword, 10),
|
|
85
|
+
passwordResetToken: null,
|
|
86
|
+
}).save();
|
|
87
|
+
return this.prepareOutput(this.model.map(user), args[0]);
|
|
85
88
|
}
|
|
86
|
-
async
|
|
89
|
+
async setPasswordResetTokenForEmail(email, ...args) {
|
|
87
90
|
const user = await this.userModel.findOne({ email }).exec();
|
|
88
91
|
if (!user) {
|
|
89
92
|
throw new common_1.NotFoundException();
|
|
90
93
|
}
|
|
91
94
|
const resetToken = crypto.randomBytes(32).toString('hex');
|
|
92
|
-
|
|
93
|
-
await
|
|
94
|
-
|
|
95
|
-
templateData: { name: user.username, link: config_env_1.default.email.passwordResetLink + '/' + resetToken },
|
|
96
|
-
});
|
|
97
|
-
return true;
|
|
95
|
+
user.passwordResetToken = resetToken;
|
|
96
|
+
await user.save();
|
|
97
|
+
return this.prepareOutput(this.model.map(user), args[0]);
|
|
98
98
|
}
|
|
99
|
-
async setRoles(userId, roles) {
|
|
99
|
+
async setRoles(userId, roles, ...args) {
|
|
100
100
|
if (!Array.isArray(roles)) {
|
|
101
101
|
throw new common_1.BadRequestException('Missing roles');
|
|
102
102
|
}
|
|
103
103
|
if (roles.some((role) => typeof role !== 'string')) {
|
|
104
104
|
throw new common_1.BadRequestException('roles contains invalid values');
|
|
105
105
|
}
|
|
106
|
-
|
|
106
|
+
const user = await this.userModel.findByIdAndUpdate(userId, { roles }).exec();
|
|
107
|
+
return this.prepareOutput(this.model.map(user), args[0]);
|
|
107
108
|
}
|
|
108
109
|
async update(id, input, currentUser, ...args) {
|
|
109
|
-
|
|
110
|
+
const user = await this.userModel.findById(id).exec();
|
|
110
111
|
if (!user) {
|
|
111
112
|
throw new common_1.NotFoundException(`User not found with ID: ${id}`);
|
|
112
113
|
}
|
|
113
114
|
await this.prepareInput(input, currentUser);
|
|
114
|
-
|
|
115
|
-
await
|
|
116
|
-
user = this.model.map(user);
|
|
117
|
-
return await this.prepareOutput(user, args[0]);
|
|
115
|
+
await Object.assign(user, input).save();
|
|
116
|
+
return await this.prepareOutput(this.model.map(user), args[0]);
|
|
118
117
|
}
|
|
119
118
|
async prepareInput(input, currentUser, options = {}, ...args) {
|
|
120
|
-
|
|
121
|
-
const config = Object.assign({ checkRoles: true, clone: false }, options);
|
|
122
|
-
if (config.clone) {
|
|
123
|
-
input = JSON.parse(JSON.stringify(input));
|
|
124
|
-
}
|
|
125
|
-
if (input.roles && config.checkRoles && (!(currentUser === null || currentUser === void 0 ? void 0 : currentUser.hasRole) || !currentUser.hasRole(role_enum_1.RoleEnum.ADMIN))) {
|
|
126
|
-
if (!((_a = currentUser) === null || _a === void 0 ? void 0 : _a.roles)) {
|
|
127
|
-
throw new common_1.UnauthorizedException('Missing roles of current user');
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
const allowedRoles = _.intersection(input.roles, currentUser.roles);
|
|
131
|
-
if (allowedRoles.length !== input.roles.length) {
|
|
132
|
-
const missingRoles = _.difference(input.roles, currentUser.roles);
|
|
133
|
-
throw new common_1.UnauthorizedException('Current user not allowed setting roles: ' + missingRoles);
|
|
134
|
-
}
|
|
135
|
-
input.roles = allowedRoles;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (input.password) {
|
|
139
|
-
input.password = await bcrypt.hash(input.password, 10);
|
|
140
|
-
}
|
|
141
|
-
return input;
|
|
119
|
+
return service_helper_1.ServiceHelper.prepareInput(input, currentUser, options);
|
|
142
120
|
}
|
|
143
121
|
async prepareOutput(user, options = {}, ...args) {
|
|
144
|
-
|
|
145
|
-
if (config.clone) {
|
|
146
|
-
user = JSON.parse(JSON.stringify(user));
|
|
147
|
-
}
|
|
148
|
-
delete user.password;
|
|
149
|
-
delete user.verificationToken;
|
|
150
|
-
delete user.passwordResetToken;
|
|
151
|
-
return user;
|
|
122
|
+
return service_helper_1.ServiceHelper.prepareOutput(user, options);
|
|
152
123
|
}
|
|
153
124
|
}
|
|
154
125
|
exports.CoreUserService = CoreUserService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":";;;AAAA,2CAAsG;AACtG,iCAAiC;AACjC,iEAA+C;AAE/C,sEAA4D;AAC5D,wEAAoE;AACpE,uEAAiE;AAKjE,iCAAiC;AAKjC,MAAM,MAAM,GAAG,IAAI,8BAAM,EAAE,CAAC;AAK5B,MAAsB,eAIpB,SAAQ,8CAAyD;IACjE,YAAyC,SAAkC,EAAY,YAA0B;QAC/G,KAAK,CAAC,SAAS,CAAC,CAAC;QADsB,cAAS,GAAT,SAAS,CAAyB;QAAY,iBAAY,GAAZ,YAAY,CAAc;IAEjH,CAAC;IASD,KAAK,CAAC,MAAM,CAAC,KAAuB,EAAE,WAAmB,EAAE,GAAG,IAAW;QAEvE,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAG9D,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,SAAS,iCACjC,KAAK,KACR,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IACzD,CAAC;QAEH,IAAI;YAEF,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE;gBACxB,MAAM,IAAI,qCAA4B,CAAC,4BAA6B,KAAa,CAAC,KAAK,kBAAkB,CAAC,CAAC;aAC5G;iBAAM;gBACL,MAAM,IAAI,qCAA4B,EAAE,CAAC;aAC1C;SACF;QAGD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAGpF,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;QAG7D,OAAO,YAAY,CAAC;IACtB,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,GAAG,IAAW;QAErC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAGtD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,EAAE,CAAC;SAC/B;QAGD,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAGpB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAG5E,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;QAG5D,OAAO,WAAW,CAAC;IACrB,CAAC;IAKD,KAAK,CAAC,GAAG,CAAC,EAAU,EAAE,GAAG,IAAW;QAClC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,EAAE,CAAC;SAC/B;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAKD,KAAK,CAAC,IAAI,CAAC,UAAuB,EAAE,GAAG,IAAW;QAChD,MAAM,WAAW,GAAG,sBAAM,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;QAEhE,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,CACE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CACvE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,GAAG,IAAW;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/E,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,EAAE,CAAC;SAC/B;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;SAC1C;QAGD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACxB,QAAQ,EAAE,IAAI;YACd,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC,IAAI,EAAE,CAAC;QAGV,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAGvE,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC;QAG/D,OAAO,YAAY,CAAC;IACtB,CAAC;IAKD,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,WAAmB,EAAE,GAAG,IAAW;QACpE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhF,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,EAAE,CAAC;SAC/B;QAGD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YACxB,QAAQ,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5C,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC,IAAI,EAAE,CAAC;QAGV,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAKD,KAAK,CAAC,6BAA6B,CAAC,KAAa,EAAE,GAAG,IAAW;QAC/D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5D,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,EAAE,CAAC;SAC/B;QAGD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;QACrC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAGlB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAKD,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAe,EAAE,GAAG,IAAW;QAE5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACzB,MAAM,IAAI,4BAAmB,CAAC,eAAe,CAAC,CAAC;SAChD;QAGD,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE;YAClD,MAAM,IAAI,4BAAmB,CAAC,+BAA+B,CAAC,CAAC;SAChE;QAGD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAiB,EAAE,WAAkB,EAAE,GAAG,IAAW;QAE5E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,0BAAiB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;SAC9D;QAGD,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAG5C,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAGxC,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IASS,KAAK,CAAC,YAAY,CAC1B,KAA0B,EAC1B,WAAmB,EACnB,UAAyE,EAAE,EAC3E,GAAG,IAAW;QAEd,OAAO,8BAAa,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAKS,KAAK,CAAC,aAAa,CAC3B,IAAW,EACX,UAAmD,EAAE,EACrD,GAAG,IAAW;QAEd,OAAO,8BAAa,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;CACF;AA/OD,0CA+OC"}
|
|
@@ -14,6 +14,10 @@ const class_validator_1 = require("class-validator");
|
|
|
14
14
|
const graphql_1 = require("@nestjs/graphql");
|
|
15
15
|
const core_user_input_1 = require("./core-user.input");
|
|
16
16
|
let CoreUserCreateInput = class CoreUserCreateInput extends core_user_input_1.CoreUserInput {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.email = undefined;
|
|
20
|
+
}
|
|
17
21
|
};
|
|
18
22
|
__decorate([
|
|
19
23
|
(0, graphql_1.Field)({ description: 'Email of the user', nullable: false }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user-create.input.js","sourceRoot":"","sources":["../../../../../src/core/modules/user/inputs/core-user-create.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0C;AAC1C,6CAAmD;AACnD,uDAAkD;
|
|
1
|
+
{"version":3,"file":"core-user-create.input.js","sourceRoot":"","sources":["../../../../../src/core/modules/user/inputs/core-user-create.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0C;AAC1C,6CAAmD;AACnD,uDAAkD;AAUlD,IAAsB,mBAAmB,GAAzC,MAAsB,mBAAoB,SAAQ,+BAAa;IAA/D;;QAGE,UAAK,GAAW,SAAS,CAAC;IAC5B,CAAC;CAAA,CAAA;AADC;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5D,IAAA,yBAAO,GAAE;;kDACgB;AAHN,mBAAmB;IADxC,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAC1D,mBAAmB,CAIxC;AAJqB,kDAAmB"}
|
|
@@ -14,7 +14,17 @@ const class_validator_1 = require("class-validator");
|
|
|
14
14
|
const graphql_1 = require("@nestjs/graphql");
|
|
15
15
|
const restricted_decorator_1 = require("../../../common/decorators/restricted.decorator");
|
|
16
16
|
const role_enum_1 = require("../../../common/enums/role.enum");
|
|
17
|
-
|
|
17
|
+
const core_input_input_1 = require("../../../common/inputs/core-input.input");
|
|
18
|
+
let CoreUserInput = class CoreUserInput extends core_input_input_1.CoreInput {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.email = undefined;
|
|
22
|
+
this.firstName = undefined;
|
|
23
|
+
this.lastName = undefined;
|
|
24
|
+
this.roles = undefined;
|
|
25
|
+
this.username = undefined;
|
|
26
|
+
this.password = undefined;
|
|
27
|
+
}
|
|
18
28
|
};
|
|
19
29
|
__decorate([
|
|
20
30
|
(0, graphql_1.Field)({ description: 'Email of the user', nullable: true }),
|
|
@@ -33,7 +43,7 @@ __decorate([
|
|
|
33
43
|
__metadata("design:type", String)
|
|
34
44
|
], CoreUserInput.prototype, "lastName", void 0);
|
|
35
45
|
__decorate([
|
|
36
|
-
(0, restricted_decorator_1.Restricted)(role_enum_1.RoleEnum.ADMIN
|
|
46
|
+
(0, restricted_decorator_1.Restricted)(role_enum_1.RoleEnum.ADMIN),
|
|
37
47
|
(0, graphql_1.Field)((type) => [String], { description: 'Roles of the user', nullable: true }),
|
|
38
48
|
(0, class_validator_1.IsOptional)(),
|
|
39
49
|
__metadata("design:type", Array)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user.input.js","sourceRoot":"","sources":["../../../../../src/core/modules/user/inputs/core-user.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsD;AACtD,6CAAmD;AACnD,0FAA6E;AAC7E,+DAA2D;
|
|
1
|
+
{"version":3,"file":"core-user.input.js","sourceRoot":"","sources":["../../../../../src/core/modules/user/inputs/core-user.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsD;AACtD,6CAAmD;AACnD,0FAA6E;AAC7E,+DAA2D;AAC3D,8EAAoE;AAUpE,IAAsB,aAAa,GAAnC,MAAsB,aAAc,SAAQ,4BAAS;IAArD;;QAOE,UAAK,GAAY,SAAS,CAAC;QAO3B,cAAS,GAAY,SAAS,CAAC;QAO/B,aAAQ,GAAY,SAAS,CAAC;QAQ9B,UAAK,GAAc,SAAS,CAAC;QAO7B,aAAQ,GAAY,SAAS,CAAC;QAO9B,aAAQ,GAAY,SAAS,CAAC;IAChC,CAAC;CAAA,CAAA;AArCC;IAHC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;4CACiB;AAO3B;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChE,IAAA,4BAAU,GAAE;;gDACkB;AAO/B;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAA,4BAAU,GAAE;;+CACiB;AAQ9B;IAHC,IAAA,iCAAU,EAAC,oBAAQ,CAAC,KAAK,CAAC;IAC1B,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/E,IAAA,4BAAU,GAAE;;4CACgB;AAO7B;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtE,IAAA,4BAAU,GAAE;;+CACiB;AAO9B;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAA,4BAAU,GAAE;;+CACiB;AA3CV,aAAa;IADlC,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GACrC,aAAa,CA4ClC;AA5CqB,sCAAa"}
|
package/dist/core.module.js
CHANGED
|
@@ -13,12 +13,13 @@ const core_1 = require("@nestjs/core");
|
|
|
13
13
|
const graphql_1 = require("@nestjs/graphql");
|
|
14
14
|
const config_helper_1 = require("./core/common/helpers/config.helper");
|
|
15
15
|
const check_response_interceptor_1 = require("./core/common/interceptors/check-response.interceptor");
|
|
16
|
-
const
|
|
16
|
+
const map_and_validate_pipe_1 = require("./core/common/pipes/map-and-validate.pipe");
|
|
17
17
|
const config_service_1 = require("./core/common/services/config.service");
|
|
18
18
|
const email_service_1 = require("./core/common/services/email.service");
|
|
19
19
|
const template_service_1 = require("./core/common/services/template.service");
|
|
20
20
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
21
21
|
const mailjet_service_1 = require("./core/common/services/mailjet.service");
|
|
22
|
+
const apollo_1 = require("@nestjs/apollo");
|
|
22
23
|
let CoreModule = CoreModule_1 = class CoreModule {
|
|
23
24
|
static forRoot(options) {
|
|
24
25
|
const config = config_helper_1.Config.merge({
|
|
@@ -57,8 +58,7 @@ let CoreModule = CoreModule_1 = class CoreModule {
|
|
|
57
58
|
},
|
|
58
59
|
{
|
|
59
60
|
provide: core_1.APP_PIPE,
|
|
60
|
-
|
|
61
|
-
useClass: check_input_pipe_1.CheckInputPipe,
|
|
61
|
+
useClass: map_and_validate_pipe_1.MapAndValidatePipe,
|
|
62
62
|
},
|
|
63
63
|
email_service_1.EmailService,
|
|
64
64
|
template_service_1.TemplateService,
|
|
@@ -68,7 +68,7 @@ let CoreModule = CoreModule_1 = class CoreModule {
|
|
|
68
68
|
module: CoreModule_1,
|
|
69
69
|
imports: [
|
|
70
70
|
mongoose_1.MongooseModule.forRoot(config.mongoose.uri, config.mongoose.options),
|
|
71
|
-
graphql_1.GraphQLModule.forRoot(config.graphQl),
|
|
71
|
+
graphql_1.GraphQLModule.forRoot(Object.assign({ driver: apollo_1.ApolloDriver }, config.graphQl)),
|
|
72
72
|
],
|
|
73
73
|
providers,
|
|
74
74
|
exports: [config_service_1.ConfigService, email_service_1.EmailService, template_service_1.TemplateService, mailjet_service_1.MailjetService],
|
package/dist/core.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA+D;AAC/D,uCAAyD;AACzD,6CAAgD;AAChD,uEAA6D;AAC7D,sGAAiG;AAEjG,qFAA+E;AAC/E,0EAAsE;AACtE,wEAAoE;AACpE,8EAA0E;AAC1E,+CAAkD;AAClD,4EAAwE;AACxE,2CAAkE;AAmBlE,IAAa,UAAU,kBAAvB,MAAa,UAAU;IAKrB,MAAM,CAAC,OAAO,CAAC,OAAgC;QAE7C,MAAM,MAAM,GAAmB,sBAAM,CAAC,KAAK,CACzC;YACE,GAAG,EAAE,SAAS;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,YAAY;gBAC5B,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC/B,2BAA2B,EAAE,IAAI;gBACjC,aAAa,EAAE;oBACb,4BAA4B,EAAE;wBAC5B,SAAS,EAAE,CAAC,gBAAgB,EAAE,EAAE;4BAE9B,MAAM,SAAS,GAAG,gBAAgB,CAAC,aAAa,CAAC;wBACnD,CAAC;qBACF;iBACF;aACF;YACD,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE;gBACR,GAAG,EAAE,yCAAyC;gBAC9C,OAAO,EAAE;oBACP,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE;wBAEhC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,CAAC;wBACvE,OAAO,UAAU,CAAC;oBACpB,CAAC;iBACF;aACF;SACgB,EACnB,OAAO,CACR,CAAC;QAGF,MAAM,SAAS,GAAG;YAEhB;gBACE,OAAO,EAAE,8BAAa;gBACtB,QAAQ,EAAE,IAAI,8BAAa,CAAC,MAAM,CAAC;aACpC;YAID;gBACE,OAAO,EAAE,sBAAe;gBACxB,QAAQ,EAAE,qDAAwB;aACnC;YAWD;gBACE,OAAO,EAAE,eAAQ;gBACjB,QAAQ,EAAE,0CAAkB;aAC7B;YAGD,4BAAY;YACZ,kCAAe;YACf,gCAAc;SACf,CAAC;QAGF,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE;gBACP,yBAAc,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpE,uBAAa,CAAC,OAAO,CAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;aACnG;YACD,SAAS;YACT,OAAO,EAAE,CAAC,8BAAa,EAAE,4BAAY,EAAE,kCAAe,EAAE,gCAAc,CAAC;SACxE,CAAC;IACJ,CAAC;CACF,CAAA;AApFY,UAAU;IAFtB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAoFtB;AApFY,gCAAU"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,22 +18,26 @@ export * from './core/common/helpers/input.helper';
|
|
|
18
18
|
export * from './core/common/helpers/model.helper';
|
|
19
19
|
export * from './core/common/helpers/service.helper';
|
|
20
20
|
export * from './core/common/inputs/combined-filter.input';
|
|
21
|
+
export * from './core/common/inputs/core-input.input';
|
|
21
22
|
export * from './core/common/inputs/filter.input';
|
|
22
23
|
export * from './core/common/inputs/single-filter.input';
|
|
23
24
|
export * from './core/common/inputs/sort.input';
|
|
24
25
|
export * from './core/common/interceptors/check-response.interceptor';
|
|
25
26
|
export * from './core/common/interfaces/core-persistence-model.interface';
|
|
27
|
+
export * from './core/common/interfaces/mailjet-options.interface';
|
|
26
28
|
export * from './core/common/interfaces/server-options.interface';
|
|
27
29
|
export * from './core/common/models/core-model.model';
|
|
28
30
|
export * from './core/common/models/core-persistence.model';
|
|
29
31
|
export * from './core/common/pipes/check-input.pipe';
|
|
32
|
+
export * from './core/common/pipes/map-and-validate.pipe';
|
|
30
33
|
export * from './core/common/scalars/any.scalar';
|
|
31
34
|
export * from './core/common/scalars/date.scalar';
|
|
32
35
|
export * from './core/common/scalars/json.scalar';
|
|
33
36
|
export * from './core/common/services/config.service';
|
|
34
37
|
export * from './core/common/services/email.service';
|
|
35
|
-
export * from './core/common/services/template.service';
|
|
36
38
|
export * from './core/common/services/mailjet.service';
|
|
39
|
+
export * from './core/common/services/template.service';
|
|
40
|
+
export * from './core/common/types/plain-input.type';
|
|
37
41
|
export * from './core/modules/auth/guards/auth.guard';
|
|
38
42
|
export * from './core/modules/auth/guards/roles.guard';
|
|
39
43
|
export * from './core/modules/auth/interfaces/core-auth-user.interface';
|
|
@@ -46,7 +50,7 @@ export * from './core/modules/auth/core-auth.resolver';
|
|
|
46
50
|
export * from './core/modules/auth/jwt.strategy';
|
|
47
51
|
export * from './core/modules/user/inputs/core-user.input';
|
|
48
52
|
export * from './core/modules/user/inputs/core-user-create.input';
|
|
49
|
-
export * from './core/modules/user/core-user.model';
|
|
50
53
|
export * from './core/modules/user/core-basic-user.service';
|
|
54
|
+
export * from './core/modules/user/core-user.model';
|
|
51
55
|
export * from './core/modules/user/core-user.service';
|
|
52
56
|
export * from './test/test.helper';
|
package/dist/index.js
CHANGED
|
@@ -30,22 +30,26 @@ __exportStar(require("./core/common/helpers/input.helper"), exports);
|
|
|
30
30
|
__exportStar(require("./core/common/helpers/model.helper"), exports);
|
|
31
31
|
__exportStar(require("./core/common/helpers/service.helper"), exports);
|
|
32
32
|
__exportStar(require("./core/common/inputs/combined-filter.input"), exports);
|
|
33
|
+
__exportStar(require("./core/common/inputs/core-input.input"), exports);
|
|
33
34
|
__exportStar(require("./core/common/inputs/filter.input"), exports);
|
|
34
35
|
__exportStar(require("./core/common/inputs/single-filter.input"), exports);
|
|
35
36
|
__exportStar(require("./core/common/inputs/sort.input"), exports);
|
|
36
37
|
__exportStar(require("./core/common/interceptors/check-response.interceptor"), exports);
|
|
37
38
|
__exportStar(require("./core/common/interfaces/core-persistence-model.interface"), exports);
|
|
39
|
+
__exportStar(require("./core/common/interfaces/mailjet-options.interface"), exports);
|
|
38
40
|
__exportStar(require("./core/common/interfaces/server-options.interface"), exports);
|
|
39
41
|
__exportStar(require("./core/common/models/core-model.model"), exports);
|
|
40
42
|
__exportStar(require("./core/common/models/core-persistence.model"), exports);
|
|
41
43
|
__exportStar(require("./core/common/pipes/check-input.pipe"), exports);
|
|
44
|
+
__exportStar(require("./core/common/pipes/map-and-validate.pipe"), exports);
|
|
42
45
|
__exportStar(require("./core/common/scalars/any.scalar"), exports);
|
|
43
46
|
__exportStar(require("./core/common/scalars/date.scalar"), exports);
|
|
44
47
|
__exportStar(require("./core/common/scalars/json.scalar"), exports);
|
|
45
48
|
__exportStar(require("./core/common/services/config.service"), exports);
|
|
46
49
|
__exportStar(require("./core/common/services/email.service"), exports);
|
|
47
|
-
__exportStar(require("./core/common/services/template.service"), exports);
|
|
48
50
|
__exportStar(require("./core/common/services/mailjet.service"), exports);
|
|
51
|
+
__exportStar(require("./core/common/services/template.service"), exports);
|
|
52
|
+
__exportStar(require("./core/common/types/plain-input.type"), exports);
|
|
49
53
|
__exportStar(require("./core/modules/auth/guards/auth.guard"), exports);
|
|
50
54
|
__exportStar(require("./core/modules/auth/guards/roles.guard"), exports);
|
|
51
55
|
__exportStar(require("./core/modules/auth/interfaces/core-auth-user.interface"), exports);
|
|
@@ -58,8 +62,8 @@ __exportStar(require("./core/modules/auth/core-auth.resolver"), exports);
|
|
|
58
62
|
__exportStar(require("./core/modules/auth/jwt.strategy"), exports);
|
|
59
63
|
__exportStar(require("./core/modules/user/inputs/core-user.input"), exports);
|
|
60
64
|
__exportStar(require("./core/modules/user/inputs/core-user-create.input"), exports);
|
|
61
|
-
__exportStar(require("./core/modules/user/core-user.model"), exports);
|
|
62
65
|
__exportStar(require("./core/modules/user/core-basic-user.service"), exports);
|
|
66
|
+
__exportStar(require("./core/modules/user/core-user.model"), exports);
|
|
63
67
|
__exportStar(require("./core/modules/user/core-user.service"), exports);
|
|
64
68
|
__exportStar(require("./test/test.helper"), exports);
|
|
65
69
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,gDAA8B;AAK9B,iEAA+C;AAC/C,qEAAmD;AACnD,kFAAgE;AAChE,+EAA6D;AAC7D,gFAA8D;AAC9D,2EAAyD;AACzD,+EAA6D;AAC7D,4EAA0D;AAC1D,gEAA8C;AAC9C,sEAAoD;AACpD,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,sEAAoD;AACpD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,uEAAqD;AACrD,6EAA2D;AAC3D,oEAAkD;AAClD,2EAAyD;AACzD,kEAAgD;AAChD,wFAAsE;AACtE,4FAA0E;AAC1E,oFAAkE;AAClE,wEAAsD;AACtD,8EAA4D;AAC5D,uEAAqD;AACrD,mEAAiD;AACjD,oEAAkD;AAClD,oEAAkD;AAClD,wEAAsD;AACtD,uEAAqD;AACrD,0EAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAIA,gDAA8B;AAK9B,iEAA+C;AAC/C,qEAAmD;AACnD,kFAAgE;AAChE,+EAA6D;AAC7D,gFAA8D;AAC9D,2EAAyD;AACzD,+EAA6D;AAC7D,4EAA0D;AAC1D,gEAA8C;AAC9C,sEAAoD;AACpD,sEAAoD;AACpD,uEAAqD;AACrD,oEAAkD;AAClD,sEAAoD;AACpD,uEAAqD;AACrD,qEAAmD;AACnD,qEAAmD;AACnD,uEAAqD;AACrD,6EAA2D;AAC3D,wEAAsD;AACtD,oEAAkD;AAClD,2EAAyD;AACzD,kEAAgD;AAChD,wFAAsE;AACtE,4FAA0E;AAC1E,qFAAmE;AACnE,oFAAkE;AAClE,wEAAsD;AACtD,8EAA4D;AAC5D,uEAAqD;AACrD,4EAA0D;AAC1D,mEAAiD;AACjD,oEAAkD;AAClD,oEAAkD;AAClD,wEAAsD;AACtD,uEAAqD;AACrD,yEAAuD;AACvD,0EAAwD;AACxD,uEAAqD;AAMrD,wEAAsD;AACtD,yEAAuD;AACvD,0FAAwE;AACxE,uFAAqE;AACrE,iFAA+D;AAC/D,sFAAoE;AACpE,sEAAoD;AACpD,uEAAqD;AACrD,yEAAuD;AACvD,mEAAiD;AAMjD,6EAA2D;AAC3D,oFAAkE;AAClE,8EAA4D;AAC5D,sEAAoD;AACpD,wEAAsD;AAMtD,qDAAmC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { Types } from 'mongoose';
|
|
1
2
|
import { CorePersistenceModel } from '../../../core/common/models/core-persistence.model';
|
|
2
3
|
import { User } from '../../modules/user/user.model';
|
|
3
4
|
export declare abstract class PersistenceModel extends CorePersistenceModel {
|
|
4
|
-
createdBy?: User;
|
|
5
|
-
updatedBy?: User;
|
|
5
|
+
createdBy?: Types.ObjectId | User;
|
|
6
|
+
updatedBy?: Types.ObjectId | User;
|
|
7
|
+
init(): this;
|
|
6
8
|
}
|
|
@@ -21,6 +21,10 @@ let PersistenceModel = class PersistenceModel extends core_persistence_model_1.C
|
|
|
21
21
|
this.createdBy = undefined;
|
|
22
22
|
this.updatedBy = undefined;
|
|
23
23
|
}
|
|
24
|
+
init() {
|
|
25
|
+
super.init();
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
24
28
|
};
|
|
25
29
|
__decorate([
|
|
26
30
|
(0, graphql_1.Field)((type) => user_model_1.User, {
|
|
@@ -28,7 +32,7 @@ __decorate([
|
|
|
28
32
|
nullable: true,
|
|
29
33
|
}),
|
|
30
34
|
(0, mongoose_1.Prop)({ type: mongoose.Schema.Types.ObjectId, ref: 'User' }),
|
|
31
|
-
__metadata("design:type",
|
|
35
|
+
__metadata("design:type", Object)
|
|
32
36
|
], PersistenceModel.prototype, "createdBy", void 0);
|
|
33
37
|
__decorate([
|
|
34
38
|
(0, graphql_1.Field)((type) => user_model_1.User, {
|
|
@@ -36,7 +40,7 @@ __decorate([
|
|
|
36
40
|
nullable: true,
|
|
37
41
|
}),
|
|
38
42
|
(0, mongoose_1.Prop)({ type: mongoose.Schema.Types.ObjectId, ref: 'User' }),
|
|
39
|
-
__metadata("design:type",
|
|
43
|
+
__metadata("design:type", Object)
|
|
40
44
|
], PersistenceModel.prototype, "updatedBy", void 0);
|
|
41
45
|
PersistenceModel = __decorate([
|
|
42
46
|
(0, graphql_1.ObjectType)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.model.js","sourceRoot":"","sources":["../../../../src/server/common/models/persistence.model.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"persistence.model.js","sourceRoot":"","sources":["../../../../src/server/common/models/persistence.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qCAAqC;AACrC,+CAAwC;AACxC,6CAAoD;AACpD,+FAA0F;AAC1F,8DAAqD;AAWrD,IAAsB,gBAAgB,GAAtC,MAAsB,gBAAiB,SAAQ,6CAAoB;IAAnE;;QAWE,cAAS,GAA2B,SAAS,CAAC;QAY9C,cAAS,GAA2B,SAAS,CAAC;IAchD,CAAC;IALC,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1BC;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAI,EAAE;QACrB,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;;mDACd;AAY9C;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAI,EAAE;QACrB,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;;mDACd;AAvB1B,gBAAgB;IAJrC,IAAA,oBAAU,EAAC;QACV,WAAW,EAAE,6CAA6C;QAC1D,UAAU,EAAE,IAAI;KACjB,CAAC;GACoB,gBAAgB,CAqCrC;AArCqB,4CAAgB"}
|
|
@@ -18,6 +18,10 @@ let Auth = class Auth extends core_auth_model_1.CoreAuthModel {
|
|
|
18
18
|
super(...arguments);
|
|
19
19
|
this.user = undefined;
|
|
20
20
|
}
|
|
21
|
+
init() {
|
|
22
|
+
super.init();
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
21
25
|
};
|
|
22
26
|
__decorate([
|
|
23
27
|
(0, graphql_1.Field)((type) => user_model_1.User, { description: 'User who signed in' }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.model.js","sourceRoot":"","sources":["../../../../src/server/modules/auth/auth.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AACpD,gFAA2E;AAC3E,mDAA0C;AAM1C,IAAa,IAAI,GAAjB,MAAa,IAAK,SAAQ,+BAAa;IAAvC;;QASE,SAAI,GAAS,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.model.js","sourceRoot":"","sources":["../../../../src/server/modules/auth/auth.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AACpD,gFAA2E;AAC3E,mDAA0C;AAM1C,IAAa,IAAI,GAAjB,MAAa,IAAK,SAAQ,+BAAa;IAAvC;;QASE,SAAI,GAAS,SAAS,CAAC;IAczB,CAAC;IALC,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAdC;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAI,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;8BACvD,iBAAI;kCAAa;AATZ,IAAI;IADhB,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;GACvB,IAAI,CAuBhB;AAvBY,oBAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-create.input.js","sourceRoot":"","sources":["../../../../../src/server/modules/user/inputs/user-create.input.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA4C;AAC5C,wGAAkG;
|
|
1
|
+
{"version":3,"file":"user-create.input.js","sourceRoot":"","sources":["../../../../../src/server/modules/user/inputs/user-create.input.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA4C;AAC5C,wGAAkG;AAUlG,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,4CAAmB;CAEvD,CAAA;AAFY,eAAe;IAD3B,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,iCAAiC,EAAE,CAAC;GACjD,eAAe,CAE3B;AAFY,0CAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.input.js","sourceRoot":"","sources":["../../../../../src/server/modules/user/inputs/user.input.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA4C;AAC5C,0FAAqF;
|
|
1
|
+
{"version":3,"file":"user.input.js","sourceRoot":"","sources":["../../../../../src/server/modules/user/inputs/user.input.ts"],"names":[],"mappings":";;;;;;;;;AAAA,6CAA4C;AAC5C,0FAAqF;AAUrF,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,+BAAa;CAE3C,CAAA;AAFY,SAAS;IADrB,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;GAC5B,SAAS,CAErB;AAFY,8BAAS"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CoreUserModel } from '../../../core/modules/user/core-user.model';
|
|
2
2
|
import { PersistenceModel } from '../../common/models/persistence.model';
|
|
3
|
-
import
|
|
3
|
+
import { Schema, Document } from 'mongoose';
|
|
4
4
|
export declare type UserDocument = User & Document;
|
|
5
5
|
export declare class User extends CoreUserModel implements PersistenceModel {
|
|
6
6
|
avatar: string;
|
|
7
7
|
createdBy: User;
|
|
8
8
|
updatedBy: User;
|
|
9
|
+
init(): this;
|
|
9
10
|
}
|
|
10
|
-
export declare const UserSchema:
|
|
11
|
+
export declare const UserSchema: Schema<Document<User, any, any>, import("mongoose").Model<Document<User, any, any>, any, any, any>, any, any>;
|
|
@@ -14,7 +14,7 @@ exports.UserSchema = exports.User = void 0;
|
|
|
14
14
|
const graphql_1 = require("@nestjs/graphql");
|
|
15
15
|
const core_user_model_1 = require("../../../core/modules/user/core-user.model");
|
|
16
16
|
const mongoose_1 = require("@nestjs/mongoose");
|
|
17
|
-
const
|
|
17
|
+
const mongoose_2 = require("mongoose");
|
|
18
18
|
let User = User_1 = class User extends core_user_model_1.CoreUserModel {
|
|
19
19
|
constructor() {
|
|
20
20
|
super(...arguments);
|
|
@@ -22,6 +22,10 @@ let User = User_1 = class User extends core_user_model_1.CoreUserModel {
|
|
|
22
22
|
this.createdBy = undefined;
|
|
23
23
|
this.updatedBy = undefined;
|
|
24
24
|
}
|
|
25
|
+
init() {
|
|
26
|
+
super.init();
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
25
29
|
};
|
|
26
30
|
__decorate([
|
|
27
31
|
(0, graphql_1.Field)({ description: 'URL to avatar file of the user', nullable: true }),
|
|
@@ -33,7 +37,7 @@ __decorate([
|
|
|
33
37
|
description: 'ID of the user who created the object',
|
|
34
38
|
nullable: true,
|
|
35
39
|
}),
|
|
36
|
-
(0, mongoose_1.Prop)({ type:
|
|
40
|
+
(0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.ObjectId, ref: 'User' }),
|
|
37
41
|
__metadata("design:type", User)
|
|
38
42
|
], User.prototype, "createdBy", void 0);
|
|
39
43
|
__decorate([
|
|
@@ -41,12 +45,12 @@ __decorate([
|
|
|
41
45
|
description: 'ID of the user who last updated the object',
|
|
42
46
|
nullable: true,
|
|
43
47
|
}),
|
|
44
|
-
(0, mongoose_1.Prop)({ type:
|
|
48
|
+
(0, mongoose_1.Prop)({ type: mongoose_2.Schema.Types.ObjectId, ref: 'User' }),
|
|
45
49
|
__metadata("design:type", User)
|
|
46
50
|
], User.prototype, "updatedBy", void 0);
|
|
47
51
|
User = User_1 = __decorate([
|
|
48
|
-
(0,
|
|
49
|
-
(0,
|
|
52
|
+
(0, graphql_1.ObjectType)({ description: 'User' }),
|
|
53
|
+
(0, mongoose_1.Schema)({ timestamps: true })
|
|
50
54
|
], User);
|
|
51
55
|
exports.User = User;
|
|
52
56
|
exports.UserSchema = mongoose_1.SchemaFactory.createForClass(User);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAoD;AACpD,gFAA2E;AAE3E,+
|
|
1
|
+
{"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../../src/server/modules/user/user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,6CAAoD;AACpD,gFAA2E;AAE3E,+CAAiF;AACjF,uCAA4C;AAS5C,IAAa,IAAI,YAAjB,MAAa,IAAK,SAAQ,+BAAa;IAAvC;;QAUE,WAAM,GAAW,SAAS,CAAC;QAY3B,cAAS,GAAS,SAAS,CAAC;QAY5B,cAAS,GAAS,SAAS,CAAC;IAc9B,CAAC;IALC,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtCC;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,IAAA,eAAI,GAAE;;oCACoB;AAY3B;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAI,EAAE;QACrB,WAAW,EAAE,uCAAuC;QACpD,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;8BACxC,IAAI;uCAAa;AAY5B;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAI,EAAE;QACrB,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,iBAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;8BACxC,IAAI;uCAAa;AAlCjB,IAAI;IAFhB,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;IACnC,IAAA,iBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GACxB,IAAI,CAgDhB;AAhDY,oBAAI;AAkDJ,QAAA,UAAU,GAAG,wBAAa,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC"}
|