rez_core 1.0.80 → 1.0.82
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/module/meta/service/entity-validation.service.js +10 -5
- package/dist/module/meta/service/entity-validation.service.js.map +1 -1
- package/dist/module/user/repository/role.repository.d.ts +4 -1
- package/dist/module/user/repository/role.repository.js +8 -3
- package/dist/module/user/repository/role.repository.js.map +1 -1
- package/dist/module/user/repository/user.repository.d.ts +2 -2
- package/dist/module/user/repository/user.repository.js +16 -10
- package/dist/module/user/repository/user.repository.js.map +1 -1
- package/dist/module/user/service/role.service.js +2 -2
- package/dist/module/user/service/role.service.js.map +1 -1
- package/dist/module/user/service/user.service.d.ts +2 -2
- package/dist/module/user/service/user.service.js +22 -14
- package/dist/module/user/service/user.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/module/meta/service/entity-validation.service.ts +16 -5
- package/src/module/user/repository/role.repository.ts +15 -5
- package/src/module/user/repository/user.repository.ts +22 -13
- package/src/module/user/service/role.service.ts +2 -2
- package/src/module/user/service/user.service.ts +46 -16
|
@@ -40,13 +40,18 @@ let EntityValidationService = class EntityValidationService {
|
|
|
40
40
|
for (const attr of attributeData.filter(a => a.is_unique)) {
|
|
41
41
|
const value = entityData[attr.attribute_key];
|
|
42
42
|
if (this.hasValidValue(value)) {
|
|
43
|
-
|
|
43
|
+
let qb = this.dataSource
|
|
44
44
|
.createQueryBuilder()
|
|
45
|
-
.select(
|
|
45
|
+
.select('*')
|
|
46
46
|
.from(db_table_name, db_table_name)
|
|
47
|
-
.where(`${db_table_name}.${attr.attribute_key} = :value`, { value })
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
.where(`${db_table_name}.${attr.attribute_key} = :value`, { value });
|
|
48
|
+
const orgId = entityData.organization_id;
|
|
49
|
+
if (orgId !== undefined && orgId !== null) {
|
|
50
|
+
qb = qb.andWhere(`${db_table_name}.organization_id = :organization_id`, {
|
|
51
|
+
organization_id: orgId,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
const existing = await qb.limit(1).getRawOne();
|
|
50
55
|
if (existing) {
|
|
51
56
|
errors.push({
|
|
52
57
|
field: attr.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-validation.service.js","sourceRoot":"","sources":["../../../../src/module/meta/service/entity-validation.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,yEAA0F;AAE1F,gGAA+E;AAC/E,qCAAqC;AAQ9B,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YACmB,sBAA8C,EAC9C,gBAAkC,EAC3C,UAAsB;QAFb,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAC3C,eAAU,GAAV,UAAU,CAAY;IAC7B,CAAC;IAKJ,sBAAsB,CACpB,UAA+B,EAC/B,aAAgC;QAEhC,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,aAAa;aACV,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;aAC7B,OAAO,CAAC,IAAI,CAAC,EAAE;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,eAAe;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,OAAO,MAAM,CAAC;IAChB,CAAC;IAKD,KAAK,CAAC,oBAAoB,CACxB,UAA+B,EAC/B,aAAgC,EAChC,UAAkB,EAClB,aAAqB;QAErB,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,
|
|
1
|
+
{"version":3,"file":"entity-validation.service.js","sourceRoot":"","sources":["../../../../src/module/meta/service/entity-validation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,8 @@ export declare class RoleRepository {
|
|
|
4
4
|
private readonly roleRepo;
|
|
5
5
|
constructor(roleRepo: Repository<Role>);
|
|
6
6
|
findByCode(code: string): Promise<Role | null>;
|
|
7
|
-
isRoleNameExists(name: string,
|
|
7
|
+
isRoleNameExists(name: string, options?: {
|
|
8
|
+
excludeRoleId?: number;
|
|
9
|
+
organization_id?: number;
|
|
10
|
+
}): Promise<boolean>;
|
|
8
11
|
}
|
|
@@ -24,12 +24,17 @@ let RoleRepository = class RoleRepository {
|
|
|
24
24
|
async findByCode(code) {
|
|
25
25
|
return this.roleRepo.findOne({ where: { code } });
|
|
26
26
|
}
|
|
27
|
-
async isRoleNameExists(name,
|
|
27
|
+
async isRoleNameExists(name, options) {
|
|
28
28
|
const query = this.roleRepo
|
|
29
29
|
.createQueryBuilder('role')
|
|
30
30
|
.where('role.name = :name', { name });
|
|
31
|
-
if (excludeRoleId) {
|
|
32
|
-
query.andWhere('role.id != :excludeRoleId', { excludeRoleId });
|
|
31
|
+
if (options?.excludeRoleId) {
|
|
32
|
+
query.andWhere('role.id != :excludeRoleId', { excludeRoleId: options.excludeRoleId });
|
|
33
|
+
}
|
|
34
|
+
if (options?.organization_id !== undefined) {
|
|
35
|
+
query.andWhere('role.organization_id = :organization_id', {
|
|
36
|
+
organization_id: options.organization_id,
|
|
37
|
+
});
|
|
33
38
|
}
|
|
34
39
|
const existingRole = await query.getOne();
|
|
35
40
|
return !!existingRole;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.repository.js","sourceRoot":"","sources":["../../../../src/module/user/repository/role.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,qCAAqC;AACrC,6CAAmD;AACnD,uDAA6C;AAKtC,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAEmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAGM,KAAK,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"role.repository.js","sourceRoot":"","sources":["../../../../src/module/user/repository/role.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,qCAAqC;AACrC,6CAAmD;AACnD,uDAA6C;AAKtC,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAEmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IAGM,KAAK,CAAC,gBAAgB,CAC3B,IAAY,EACZ,OAA8D;QAE9D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ;aACxB,kBAAkB,CAAC,MAAM,CAAC;aAC1B,KAAK,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAExC,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,2BAA2B,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACxF,CAAC;QAED,IAAI,OAAO,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;YAC3C,KAAK,CAAC,QAAQ,CAAC,yCAAyC,EAAE;gBACxD,eAAe,EAAE,OAAO,CAAC,eAAe;aACzC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC,YAAY,CAAC;IACxB,CAAC;CAEF,CAAA;AAjCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACI,oBAAU;GAH5B,cAAc,CAiC1B"}
|
|
@@ -3,8 +3,8 @@ import { UserData } from '../entity/user.entity';
|
|
|
3
3
|
export declare class UserRepository {
|
|
4
4
|
private userRepository;
|
|
5
5
|
constructor(userRepository: Repository<UserData>);
|
|
6
|
-
findByEmailId(email: string): Promise<UserData | null>;
|
|
7
6
|
findById(userId: number): Promise<UserData | null>;
|
|
8
|
-
|
|
7
|
+
findByEmailId(email: string, organization_id?: number): Promise<UserData | null>;
|
|
8
|
+
findByMobile(mobile: string, organization_id?: number): Promise<UserData | null>;
|
|
9
9
|
saveUser(user: UserData): Promise<UserData>;
|
|
10
10
|
}
|
|
@@ -21,20 +21,26 @@ let UserRepository = class UserRepository {
|
|
|
21
21
|
constructor(userRepository) {
|
|
22
22
|
this.userRepository = userRepository;
|
|
23
23
|
}
|
|
24
|
-
async findByEmailId(email) {
|
|
25
|
-
if (email) {
|
|
26
|
-
return this.userRepository.findOne({ where: { email_id: email } });
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
24
|
async findById(userId) {
|
|
31
25
|
return this.userRepository.findOne({ where: { id: userId } });
|
|
32
26
|
}
|
|
33
|
-
async
|
|
34
|
-
if (
|
|
35
|
-
return
|
|
27
|
+
async findByEmailId(email, organization_id) {
|
|
28
|
+
if (!email)
|
|
29
|
+
return null;
|
|
30
|
+
const where = { email_id: email };
|
|
31
|
+
if (organization_id !== undefined) {
|
|
32
|
+
where.organization_id = organization_id;
|
|
33
|
+
}
|
|
34
|
+
return this.userRepository.findOne({ where });
|
|
35
|
+
}
|
|
36
|
+
async findByMobile(mobile, organization_id) {
|
|
37
|
+
if (!mobile)
|
|
38
|
+
return null;
|
|
39
|
+
const where = { mobile: mobile };
|
|
40
|
+
if (organization_id !== undefined) {
|
|
41
|
+
where.organization_id = organization_id;
|
|
36
42
|
}
|
|
37
|
-
return
|
|
43
|
+
return this.userRepository.findOne({ where });
|
|
38
44
|
}
|
|
39
45
|
async saveUser(user) {
|
|
40
46
|
return this.userRepository.save(user);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../../src/module/user/repository/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,uDAAiD;AACjD,2CAA4C;AAC5C,6CAAmD;AAG5C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACsC,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;IACvE,CAAC;IAEJ,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"user.repository.js","sourceRoot":"","sources":["../../../../src/module/user/repository/user.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAqC;AACrC,uDAAiD;AACjD,2CAA4C;AAC5C,6CAAmD;AAG5C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YACsC,cAAoC;QAApC,mBAAc,GAAd,cAAc,CAAsB;IACvE,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,KAAa,EAAE,eAAwB;QACzD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,MAAM,KAAK,GAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,eAAwB;QACzD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,KAAK,GAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACtC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAID,KAAK,CAAC,QAAQ,CAAC,IAAc;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;CACF,CAAA;AAnCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,sBAAQ,CAAC,CAAA;qCAAyB,oBAAU;GAFrD,cAAc,CAmC1B"}
|
|
@@ -29,7 +29,7 @@ let RoleService = class RoleService extends entity_service_impl_service_1.Entity
|
|
|
29
29
|
}
|
|
30
30
|
async createEntity(entityData, loggedInUser) {
|
|
31
31
|
let role = entityData;
|
|
32
|
-
if (await this.roleRepository.isRoleNameExists(role.name)) {
|
|
32
|
+
if (await this.roleRepository.isRoleNameExists(role.name, { organization_id: entityData.organization_id })) {
|
|
33
33
|
throw new common_1.BadRequestException('Role name already exists.');
|
|
34
34
|
}
|
|
35
35
|
const sourceRole = role.copy_from_role_id
|
|
@@ -76,7 +76,7 @@ let RoleService = class RoleService extends entity_service_impl_service_1.Entity
|
|
|
76
76
|
throw new common_1.BadRequestException('Cannot deactivate system role');
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
if (await this.roleRepository.isRoleNameExists(entityData.name, entityData.id)) {
|
|
79
|
+
if (await this.roleRepository.isRoleNameExists(entityData.name, { excludeRoleId: entityData.id })) {
|
|
80
80
|
throw new common_1.BadRequestException('Role name already exists.');
|
|
81
81
|
}
|
|
82
82
|
const { copy_from_role_id, ...persistableData } = role;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/role.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AACjE,gGAAmF;AAInF,uEAA+D;AAC/D,mEAA+D;AAC/D,qCAAoD;AACpD,6CAAmD;AACnD,mFAAwE;AAIjE,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,+CAAiB;IAChD,YACmB,cAA8B,EAC9B,aAA4B,EAE5B,gBAA0C;QAE3D,KAAK,EAAE,CAAC;QALS,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAe;QAE5B,qBAAgB,GAAhB,gBAAgB,CAA0B;IAG7D,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,UAAsB,EACtB,YAA6B;QAE7B,IAAI,IAAI,GAAG,UAAkB,CAAC;QAE9B,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/role.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,6 @@ export declare class UserService extends EntityServiceImpl {
|
|
|
17
17
|
createEntity(entityData: BaseEntity, loggedInUser: UserData | null, manager?: EntityManager): Promise<BaseEntity>;
|
|
18
18
|
getEntityData(entityType: string, id: number): Promise<BaseEntity | null>;
|
|
19
19
|
updateEntity(entityData: BaseEntity, loggedInUserData: UserData): Promise<BaseEntity>;
|
|
20
|
-
findByEmailId(email_id: string): Promise<UserData | null>;
|
|
21
|
-
findByMobile(mobile: string): Promise<UserData | null>;
|
|
20
|
+
findByEmailId(email_id: string, organization_id?: number): Promise<UserData | null>;
|
|
21
|
+
findByMobile(mobile: string, organization_id: number): Promise<UserData | null>;
|
|
22
22
|
}
|
|
@@ -33,11 +33,11 @@ let UserService = class UserService extends entity_service_impl_service_1.Entity
|
|
|
33
33
|
}
|
|
34
34
|
async createEntity(entityData, loggedInUser, manager) {
|
|
35
35
|
let userData = entityData;
|
|
36
|
-
let existingUser = await this.userRepository.findByEmailId(userData.email_id);
|
|
36
|
+
let existingUser = await this.userRepository.findByEmailId(userData.email_id, userData.organization_id);
|
|
37
37
|
if (existingUser) {
|
|
38
38
|
throw new common_1.BadRequestException('User already exists');
|
|
39
39
|
}
|
|
40
|
-
existingUser = await this.userRepository.findByMobile(userData.mobile);
|
|
40
|
+
existingUser = await this.userRepository.findByMobile(userData.mobile, userData.organization_id);
|
|
41
41
|
if (existingUser) {
|
|
42
42
|
throw new common_1.BadRequestException('User already exists');
|
|
43
43
|
}
|
|
@@ -86,27 +86,35 @@ let UserService = class UserService extends entity_service_impl_service_1.Entity
|
|
|
86
86
|
return null;
|
|
87
87
|
}
|
|
88
88
|
async updateEntity(entityData, loggedInUserData) {
|
|
89
|
-
|
|
89
|
+
const userDto = entityData;
|
|
90
|
+
const existingUser = await this.userRepository.findById(entityData.id);
|
|
91
|
+
if (!existingUser) {
|
|
92
|
+
throw new common_1.BadRequestException('User not found');
|
|
93
|
+
}
|
|
90
94
|
if (userDto.password) {
|
|
91
|
-
const
|
|
92
|
-
userDto.password
|
|
95
|
+
const decryptedPassword = encryptUtil_service_1.EncryptUtilService.decryptGCM(existingUser.password, this.masterKey, this.masterIv);
|
|
96
|
+
if (decryptedPassword === userDto.password) {
|
|
97
|
+
throw new common_1.BadRequestException('New password cannot be the same as the current password');
|
|
98
|
+
}
|
|
99
|
+
const encryptedPassword = encryptUtil_service_1.EncryptUtilService.encryptGCM(userDto.password, this.masterKey, this.masterIv);
|
|
100
|
+
userDto.password = encryptedPassword;
|
|
93
101
|
}
|
|
94
|
-
|
|
95
|
-
|
|
102
|
+
const userData = (0, class_transformer_1.plainToInstance)(user_entity_1.UserData, userDto);
|
|
103
|
+
const savedData = await super.updateEntity(userData, loggedInUserData);
|
|
96
104
|
if (userDto.roles) {
|
|
97
|
-
|
|
98
|
-
for (const role
|
|
99
|
-
|
|
105
|
+
await this.userRoleMappingService.deleteByUserId(savedData.id);
|
|
106
|
+
for (const role of userDto.roles) {
|
|
107
|
+
const userRoleMapping = new user_role_mapping_entity_1.UserRoleMapping(savedData.id, Number(role));
|
|
100
108
|
await this.userRoleMappingService.assignUserRole(userRoleMapping);
|
|
101
109
|
}
|
|
102
110
|
}
|
|
103
111
|
return savedData;
|
|
104
112
|
}
|
|
105
|
-
async findByEmailId(email_id) {
|
|
106
|
-
return await this.userRepository.findByEmailId(email_id);
|
|
113
|
+
async findByEmailId(email_id, organization_id) {
|
|
114
|
+
return await this.userRepository.findByEmailId(email_id, organization_id);
|
|
107
115
|
}
|
|
108
|
-
async findByMobile(mobile) {
|
|
109
|
-
return await this.userRepository.findByMobile(mobile);
|
|
116
|
+
async findByMobile(mobile, organization_id) {
|
|
117
|
+
return await this.userRepository.findByMobile(mobile, organization_id);
|
|
110
118
|
}
|
|
111
119
|
};
|
|
112
120
|
exports.UserService = UserService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiE;AACjE,gGAAmF;AACnF,uDAAiD;AAEjD,mEAA+D;AAC/D,oFAAgF;AAChF,0FAAkF;AAClF,uEAG2C;AAE3C,2EAAqE;AACrE,iFAAqE;AACrE,yDAAoD;AAGpD,2CAA+C;AAGxC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,+CAAiB;IAChD,YACU,cAA8B,EAC9B,sBAA8C,EACrC,iBAAoC,EAC7C,aAA4B;QAEpC,KAAK,EAAE,CAAC;QALA,mBAAc,GAAd,cAAc,CAAgB;QAC9B,2BAAsB,GAAtB,sBAAsB,CAAwB;QACrC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC7C,kBAAa,GAAb,aAAa,CAAe;QAKtC,cAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvD,aAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAHrD,CAAC;IAKD,KAAK,CAAC,YAAY,CAChB,UAAsB,EACtB,YAA6B,EAC7B,OAAuB;QAEvB,IAAI,QAAQ,GAAG,UAA2B,CAAC;QAC3C,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACxD,QAAQ,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../../../src/module/user/service/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAiE;AACjE,gGAAmF;AACnF,uDAAiD;AAEjD,mEAA+D;AAC/D,oFAAgF;AAChF,0FAAkF;AAClF,uEAG2C;AAE3C,2EAAqE;AACrE,iFAAqE;AACrE,yDAAoD;AAGpD,2CAA+C;AAGxC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,+CAAiB;IAChD,YACU,cAA8B,EAC9B,sBAA8C,EACrC,iBAAoC,EAC7C,aAA4B;QAEpC,KAAK,EAAE,CAAC;QALA,mBAAc,GAAd,cAAc,CAAgB;QAC9B,2BAAsB,GAAtB,sBAAsB,CAAwB;QACrC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAC7C,kBAAa,GAAb,aAAa,CAAe;QAKtC,cAAS,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvD,aAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAHrD,CAAC;IAKD,KAAK,CAAC,YAAY,CAChB,UAAsB,EACtB,YAA6B,EAC7B,OAAuB;QAEvB,IAAI,QAAQ,GAAG,UAA2B,CAAC;QAC3C,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CACxD,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,eAAe,CACzB,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,4BAAmB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QAED,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CACnD,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,eAAe,CACzB,CAAC;QACF,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,4BAAmB,CAAC,qBAAqB,CAAC,CAAC;QACvD,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,QAAQ,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtB,QAAQ,GAAG,wCAAkB,CAAC,UAAU,CACtC,QAAQ,CAAC,QAAQ,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,wCAAkB,CAAC,UAAU,CACtC,WAAW,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,QAAQ,CAAC,aAAa,GAAG,CAAC,CAAC;QAC3B,QAAQ,CAAC,iBAAiB,GAAG,MAAM,CAAC;QACpC,QAAQ,CAAC,MAAM,GAAG,+BAAa,CAAC;QAChC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,eAAe,GAAG,IAAI,0CAAe,CACvC,SAAS,CAAC,EAAE,EACZ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CACpB,CAAC;gBACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,EAAU;QAEV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,gBAAgB,GAClB,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACrD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,OAAO,GAAG,IAAgC,CAAC;gBAC/C,IAAI,KAAK,GAAU,EAAE,CAAC;gBACtB,KAAK,IAAI,CAAC,IAAI,gBAAgB,EAAE,CAAC;oBAC/B,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;oBAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC;oBACvC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,iCAAe,EAAE,MAAM,CAAC,CAAC;oBAChE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,UAAsB,EACtB,gBAA0B;QAE1B,MAAM,OAAO,GAAG,UAA2B,CAAC;QAG5C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC;QAGD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,iBAAiB,GAAG,wCAAkB,CAAC,UAAU,CACrD,YAAY,CAAC,QAAQ,EACrB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;YAEF,IAAI,iBAAiB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC3C,MAAM,IAAI,4BAAmB,CAC3B,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YAGD,MAAM,iBAAiB,GAAG,wCAAkB,CAAC,UAAU,CACrD,OAAO,CAAC,QAAQ,EAChB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,CACd,CAAC;YACF,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,mCAAe,EAAC,sBAAQ,EAAE,OAAO,CAAC,CAAC;QAEpD,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAGvE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC/D,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACjC,MAAM,eAAe,GAAG,IAAI,0CAAe,CACzC,SAAS,CAAC,EAAE,EACZ,MAAM,CAAC,IAAI,CAAC,CACb,CAAC;gBACF,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAC,eAAwB;QAC3D,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,EAAC,eAAe,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAC,eAAuB;QACvD,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,EAAC,eAAe,CAAC,CAAC;IACxE,CAAC;CACF,CAAA;AA9JY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;qCAGe,gCAAc;QACN,kDAAsB;QAClB,0CAAiB;QAC9B,sBAAa;GAL3B,WAAW,CA8JvB"}
|