@evara-group/guard 1.0.30
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/README.md +46 -0
- package/dist/core/enums/locale.d.ts +4 -0
- package/dist/core/enums/locale.js +9 -0
- package/dist/core/enums/locale.js.map +1 -0
- package/dist/core/enums/user-role.d.ts +4 -0
- package/dist/core/enums/user-role.js +9 -0
- package/dist/core/enums/user-role.js.map +1 -0
- package/dist/core/utils/base.dto.d.ts +9 -0
- package/dist/core/utils/base.dto.js +7 -0
- package/dist/core/utils/base.dto.js.map +1 -0
- package/dist/core/utils/base.entity.d.ts +9 -0
- package/dist/core/utils/base.entity.js +45 -0
- package/dist/core/utils/base.entity.js.map +1 -0
- package/dist/core/utils/header-util.d.ts +4 -0
- package/dist/core/utils/header-util.js +12 -0
- package/dist/core/utils/header-util.js.map +1 -0
- package/dist/core/utils/paginate.dto.d.ts +6 -0
- package/dist/core/utils/paginate.dto.js +64 -0
- package/dist/core/utils/paginate.dto.js.map +1 -0
- package/dist/core/utils/pagination.entity.d.ts +19 -0
- package/dist/core/utils/pagination.entity.js +63 -0
- package/dist/core/utils/pagination.entity.js.map +1 -0
- package/dist/core/utils/password-util.d.ts +3 -0
- package/dist/core/utils/password-util.js +44 -0
- package/dist/core/utils/password-util.js.map +1 -0
- package/dist/core/utils/request.d.ts +7 -0
- package/dist/core/utils/request.js +3 -0
- package/dist/core/utils/request.js.map +1 -0
- package/dist/core/utils/response-message.dto.d.ts +3 -0
- package/dist/core/utils/response-message.dto.js +7 -0
- package/dist/core/utils/response-message.dto.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +26 -0
- package/dist/index.js.map +1 -0
- package/dist/security/decorators/auth-user.decorator.d.ts +1 -0
- package/dist/security/decorators/auth-user.decorator.js +9 -0
- package/dist/security/decorators/auth-user.decorator.js.map +1 -0
- package/dist/security/decorators/roles.decorator.d.ts +1 -0
- package/dist/security/decorators/roles.decorator.js +7 -0
- package/dist/security/decorators/roles.decorator.js.map +1 -0
- package/dist/security/guards/jwt-auth.guard.d.ts +4 -0
- package/dist/security/guards/jwt-auth.guard.js +18 -0
- package/dist/security/guards/jwt-auth.guard.js.map +1 -0
- package/dist/security/guards/roles.guard.d.ts +7 -0
- package/dist/security/guards/roles.guard.js +35 -0
- package/dist/security/guards/roles.guard.js.map +1 -0
- package/dist/security/security.module.d.ts +7 -0
- package/dist/security/security.module.js +43 -0
- package/dist/security/security.module.js.map +1 -0
- package/dist/security/security.service.d.ts +7 -0
- package/dist/security/security.service.js +31 -0
- package/dist/security/security.service.js.map +1 -0
- package/dist/security/strategies/jwt.strategy.d.ts +9 -0
- package/dist/security/strategies/jwt.strategy.js +38 -0
- package/dist/security/strategies/jwt.strategy.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/user/dtos/create-user.dto.d.ts +5 -0
- package/dist/user/dtos/create-user.dto.js +7 -0
- package/dist/user/dtos/create-user.dto.js.map +1 -0
- package/dist/user/dtos/update-user.dto.d.ts +5 -0
- package/dist/user/dtos/update-user.dto.js +9 -0
- package/dist/user/dtos/update-user.dto.js.map +1 -0
- package/dist/user/dtos/user-query.dto.d.ts +3 -0
- package/dist/user/dtos/user-query.dto.js +8 -0
- package/dist/user/dtos/user-query.dto.js.map +1 -0
- package/dist/user/dtos/user.dto.d.ts +11 -0
- package/dist/user/dtos/user.dto.js +81 -0
- package/dist/user/dtos/user.dto.js.map +1 -0
- package/dist/user/user.controller.d.ts +16 -0
- package/dist/user/user.controller.js +161 -0
- package/dist/user/user.controller.js.map +1 -0
- package/dist/user/user.entity.d.ts +11 -0
- package/dist/user/user.entity.js +52 -0
- package/dist/user/user.entity.js.map +1 -0
- package/dist/user/user.mapper.d.ts +6 -0
- package/dist/user/user.mapper.js +32 -0
- package/dist/user/user.mapper.js.map +1 -0
- package/dist/user/user.module.d.ts +4 -0
- package/dist/user/user.module.js +31 -0
- package/dist/user/user.module.js.map +1 -0
- package/dist/user/user.service.d.ts +15 -0
- package/dist/user/user.service.js +79 -0
- package/dist/user/user.service.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-user.dto.js","sourceRoot":"","sources":["../../../src/user/dtos/create-user.dto.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;CAIzB;AAJD,sCAIC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateUserDTO = void 0;
|
|
4
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
5
|
+
const user_dto_1 = require("./user.dto");
|
|
6
|
+
class UpdateUserDTO extends (0, swagger_1.PartialType)(user_dto_1.UserDTO) {
|
|
7
|
+
}
|
|
8
|
+
exports.UpdateUserDTO = UpdateUserDTO;
|
|
9
|
+
//# sourceMappingURL=update-user.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-user.dto.js","sourceRoot":"","sources":["../../../src/user/dtos/update-user.dto.ts"],"names":[],"mappings":";;;AAAA,6CAA8C;AAC9C,yCAAqC;AAErC,MAAa,aAAc,SAAQ,IAAA,qBAAW,EAAC,kBAAO,CAAC;CAAG;AAA1D,sCAA0D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserQueryDTO = void 0;
|
|
4
|
+
const paginate_dto_1 = require("../../core/utils/paginate.dto");
|
|
5
|
+
class UserQueryDTO extends paginate_dto_1.PaginateDTO {
|
|
6
|
+
}
|
|
7
|
+
exports.UserQueryDTO = UserQueryDTO;
|
|
8
|
+
//# sourceMappingURL=user-query.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-query.dto.js","sourceRoot":"","sources":["../../../src/user/dtos/user-query.dto.ts"],"names":[],"mappings":";;;AAAA,gEAA4D;AAE5D,MAAa,YAAa,SAAQ,0BAAW;CAAG;AAAhD,oCAAgD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseDTO } from "../../core/utils/base.dto";
|
|
2
|
+
import { UserRole } from "../../core/enums/user-role";
|
|
3
|
+
export declare class UserDTO extends BaseDTO {
|
|
4
|
+
email?: string;
|
|
5
|
+
password?: string;
|
|
6
|
+
username?: string;
|
|
7
|
+
activated?: boolean;
|
|
8
|
+
imageUrl?: string;
|
|
9
|
+
role?: UserRole;
|
|
10
|
+
resetPasswordRequest?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UserDTO = void 0;
|
|
13
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
14
|
+
const class_validator_1 = require("class-validator");
|
|
15
|
+
const class_transformer_1 = require("class-transformer");
|
|
16
|
+
const base_dto_1 = require("../../core/utils/base.dto");
|
|
17
|
+
const user_role_1 = require("../../core/enums/user-role");
|
|
18
|
+
class UserDTO extends base_dto_1.BaseDTO {
|
|
19
|
+
}
|
|
20
|
+
exports.UserDTO = UserDTO;
|
|
21
|
+
__decorate([
|
|
22
|
+
(0, swagger_1.ApiProperty)({
|
|
23
|
+
uniqueItems: true,
|
|
24
|
+
required: true,
|
|
25
|
+
example: "email@domain.com",
|
|
26
|
+
description: "User Email",
|
|
27
|
+
}),
|
|
28
|
+
(0, class_validator_1.IsEmail)(),
|
|
29
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], UserDTO.prototype, "email", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, swagger_1.ApiProperty)({ example: "123456789", description: "User password" }),
|
|
34
|
+
(0, class_transformer_1.Exclude)(),
|
|
35
|
+
__metadata("design:type", String)
|
|
36
|
+
], UserDTO.prototype, "password", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, swagger_1.ApiProperty)({
|
|
39
|
+
example: "John",
|
|
40
|
+
description: "Username",
|
|
41
|
+
required: false,
|
|
42
|
+
}),
|
|
43
|
+
(0, class_validator_1.IsString)(),
|
|
44
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], UserDTO.prototype, "username", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
(0, swagger_1.ApiProperty)({
|
|
49
|
+
example: 1,
|
|
50
|
+
description: "User activation",
|
|
51
|
+
required: false,
|
|
52
|
+
}),
|
|
53
|
+
__metadata("design:type", Boolean)
|
|
54
|
+
], UserDTO.prototype, "activated", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, swagger_1.ApiProperty)({
|
|
57
|
+
example: "http://my-image-url",
|
|
58
|
+
description: "Image url",
|
|
59
|
+
required: false,
|
|
60
|
+
}),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], UserDTO.prototype, "imageUrl", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, swagger_1.ApiProperty)({
|
|
65
|
+
enum: user_role_1.UserRole,
|
|
66
|
+
description: "User Role",
|
|
67
|
+
required: true,
|
|
68
|
+
}),
|
|
69
|
+
(0, class_validator_1.IsEnum)(user_role_1.UserRole),
|
|
70
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], UserDTO.prototype, "role", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
(0, swagger_1.ApiProperty)({
|
|
75
|
+
example: false,
|
|
76
|
+
description: "Whether the user has requested a password reset",
|
|
77
|
+
required: false,
|
|
78
|
+
}),
|
|
79
|
+
__metadata("design:type", Boolean)
|
|
80
|
+
], UserDTO.prototype, "resetPasswordRequest", void 0);
|
|
81
|
+
//# sourceMappingURL=user.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/user/dtos/user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAwE;AACxE,yDAA4C;AAC5C,wDAAoD;AACpD,0DAAsD;AAKtD,MAAa,OAAQ,SAAQ,kBAAO;CAqDnC;AArDD,0BAqDC;AA5CC;IARC,IAAA,qBAAW,EAAC;QACX,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,YAAY;KAC1B,CAAC;IACD,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;sCACE;AAIf;IAFC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IACnE,IAAA,2BAAO,GAAE;;yCACQ;AASlB;IAPC,IAAA,qBAAW,EAAC;QACX,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,KAAK;KAChB,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;yCACK;AAOlB;IALC,IAAA,qBAAW,EAAC;QACX,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,KAAK;KAChB,CAAC;;0CACkB;AAOpB;IALC,IAAA,qBAAW,EAAC;QACX,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,KAAK;KAChB,CAAC;;yCACgB;AASlB;IAPC,IAAA,qBAAW,EAAC;QACX,IAAI,EAAE,oBAAQ;QACd,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,wBAAM,EAAC,oBAAQ,CAAC;IAChB,IAAA,4BAAU,GAAE;;qCACG;AAOhB;IALC,IAAA,qBAAW,EAAC;QACX,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,iDAAiD;QAC9D,QAAQ,EAAE,KAAK;KAChB,CAAC;;qDAC6B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Logger } from "@nestjs/common";
|
|
2
|
+
import { UserService } from "./user.service";
|
|
3
|
+
import { UserDTO } from "./dtos/user.dto";
|
|
4
|
+
import { User } from "./user.entity";
|
|
5
|
+
import { UserQueryDTO } from "./dtos/user-query.dto";
|
|
6
|
+
import { UpdateUserDTO } from "./dtos/update-user.dto";
|
|
7
|
+
import type { Request } from "../core/utils/request";
|
|
8
|
+
export declare class UserController {
|
|
9
|
+
private readonly userService;
|
|
10
|
+
logger: Logger;
|
|
11
|
+
constructor(userService: UserService);
|
|
12
|
+
getAllUsers(req: Request, query: UserQueryDTO): Promise<UpdateUserDTO[]>;
|
|
13
|
+
create(userDTO: UserDTO, user: User): Promise<UserDTO>;
|
|
14
|
+
update(id: number, userDTO: UpdateUserDTO, user: User): Promise<UpdateUserDTO>;
|
|
15
|
+
delete(id: number): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.UserController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const user_service_1 = require("./user.service");
|
|
18
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
19
|
+
const user_dto_1 = require("./dtos/user.dto");
|
|
20
|
+
const user_entity_1 = require("./user.entity");
|
|
21
|
+
const typeorm_1 = require("typeorm");
|
|
22
|
+
const roles_guard_1 = require("../security/guards/roles.guard");
|
|
23
|
+
const passport_1 = require("@nestjs/passport");
|
|
24
|
+
const user_role_1 = require("../core/enums/user-role");
|
|
25
|
+
const roles_decorator_1 = require("../security/decorators/roles.decorator");
|
|
26
|
+
const user_query_dto_1 = require("./dtos/user-query.dto");
|
|
27
|
+
const update_user_dto_1 = require("./dtos/update-user.dto");
|
|
28
|
+
const pagination_entity_1 = require("../core/utils/pagination.entity");
|
|
29
|
+
const user_mapper_1 = require("./user.mapper");
|
|
30
|
+
const header_util_1 = require("../core/utils/header-util");
|
|
31
|
+
const auth_user_decorator_1 = require("../security/decorators/auth-user.decorator");
|
|
32
|
+
let UserController = class UserController {
|
|
33
|
+
constructor(userService) {
|
|
34
|
+
this.userService = userService;
|
|
35
|
+
this.logger = new common_1.Logger("UsersController");
|
|
36
|
+
}
|
|
37
|
+
async getAllUsers(req, query) {
|
|
38
|
+
const pageRequest = new pagination_entity_1.PageRequest(+(query.page ?? 1), +(query.pageSize ?? 10), query.sortField ? `${query.sortField},${query.sortOrder || "ASC"}` : "");
|
|
39
|
+
const [results, count] = await this.userService.findAndCount({
|
|
40
|
+
skip: +pageRequest.page * pageRequest.size,
|
|
41
|
+
take: +pageRequest.size,
|
|
42
|
+
order: pageRequest.sort.asOrder(),
|
|
43
|
+
});
|
|
44
|
+
const userDtos = (0, user_mapper_1.mapUserToUserDtoSelective)(results);
|
|
45
|
+
header_util_1.HeaderUtil.addPaginationHeaders(req.res, count, pageRequest.page, count > pageRequest.page * pageRequest.size);
|
|
46
|
+
return userDtos;
|
|
47
|
+
}
|
|
48
|
+
async create(userDTO, user) {
|
|
49
|
+
if (!userDTO.email) {
|
|
50
|
+
throw new common_1.BadRequestException("Email is required");
|
|
51
|
+
}
|
|
52
|
+
const existing = await this.userService.findByFields({
|
|
53
|
+
where: { email: (0, typeorm_1.Equal)(userDTO.email) },
|
|
54
|
+
});
|
|
55
|
+
if (existing) {
|
|
56
|
+
throw new common_1.BadRequestException(`User with email ${userDTO.email} already exists`);
|
|
57
|
+
}
|
|
58
|
+
const created = await this.userService.save(userDTO, user?.email, true);
|
|
59
|
+
return created;
|
|
60
|
+
}
|
|
61
|
+
async update(id, userDTO, user) {
|
|
62
|
+
const existing = await this.userService.findById(id);
|
|
63
|
+
if (!existing) {
|
|
64
|
+
throw new common_1.NotFoundException(`User with id ${id} not found`);
|
|
65
|
+
}
|
|
66
|
+
let existingEmail;
|
|
67
|
+
if (userDTO.email) {
|
|
68
|
+
existingEmail = await this.userService.findByFields({
|
|
69
|
+
where: { email: (0, typeorm_1.Equal)(userDTO.email) },
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (existingEmail && existingEmail.id !== Number(id)) {
|
|
73
|
+
throw new common_1.BadRequestException(`User with email ${userDTO.email} already exists`);
|
|
74
|
+
}
|
|
75
|
+
userDTO.id = id;
|
|
76
|
+
const updated = await this.userService.update(userDTO, user?.email);
|
|
77
|
+
return updated;
|
|
78
|
+
}
|
|
79
|
+
async delete(id) {
|
|
80
|
+
const existing = await this.userService.findById(id);
|
|
81
|
+
if (!existing) {
|
|
82
|
+
throw new common_1.NotFoundException(`User with id ${id} not found`);
|
|
83
|
+
}
|
|
84
|
+
await this.userService.delete(existing);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.UserController = UserController;
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, common_1.Get)("/"),
|
|
90
|
+
(0, roles_decorator_1.Roles)(user_role_1.UserRole.ADMIN, user_role_1.UserRole.USER),
|
|
91
|
+
(0, swagger_1.ApiOperation)({ summary: "Get the list of users paginated" }),
|
|
92
|
+
(0, swagger_1.ApiResponse)({
|
|
93
|
+
status: 200,
|
|
94
|
+
description: "List all users",
|
|
95
|
+
type: user_dto_1.UserDTO,
|
|
96
|
+
isArray: true,
|
|
97
|
+
}),
|
|
98
|
+
__param(0, (0, common_1.Req)()),
|
|
99
|
+
__param(1, (0, common_1.Query)()),
|
|
100
|
+
__metadata("design:type", Function),
|
|
101
|
+
__metadata("design:paramtypes", [Object, user_query_dto_1.UserQueryDTO]),
|
|
102
|
+
__metadata("design:returntype", Promise)
|
|
103
|
+
], UserController.prototype, "getAllUsers", null);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, common_1.Post)("/"),
|
|
106
|
+
(0, roles_decorator_1.Roles)(user_role_1.UserRole.ADMIN),
|
|
107
|
+
(0, swagger_1.ApiOperation)({ summary: "Create a new user" }),
|
|
108
|
+
(0, swagger_1.ApiResponse)({
|
|
109
|
+
status: 201,
|
|
110
|
+
description: "The record has been successfully created.",
|
|
111
|
+
type: user_dto_1.UserDTO,
|
|
112
|
+
}),
|
|
113
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: "Forbidden." }),
|
|
114
|
+
__param(0, (0, common_1.Body)()),
|
|
115
|
+
__param(1, (0, auth_user_decorator_1.AuthUser)()),
|
|
116
|
+
__metadata("design:type", Function),
|
|
117
|
+
__metadata("design:paramtypes", [user_dto_1.UserDTO,
|
|
118
|
+
user_entity_1.User]),
|
|
119
|
+
__metadata("design:returntype", Promise)
|
|
120
|
+
], UserController.prototype, "create", null);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, common_1.Put)("/:id"),
|
|
123
|
+
(0, roles_decorator_1.Roles)(user_role_1.UserRole.ADMIN),
|
|
124
|
+
(0, swagger_1.ApiOperation)({ summary: "Update an existing user" }),
|
|
125
|
+
(0, swagger_1.ApiResponse)({
|
|
126
|
+
status: 200,
|
|
127
|
+
description: "The record has been successfully updated.",
|
|
128
|
+
type: user_dto_1.UserDTO,
|
|
129
|
+
}),
|
|
130
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: "Forbidden." }),
|
|
131
|
+
__param(0, (0, common_1.Param)("id")),
|
|
132
|
+
__param(1, (0, common_1.Body)()),
|
|
133
|
+
__param(2, (0, auth_user_decorator_1.AuthUser)()),
|
|
134
|
+
__metadata("design:type", Function),
|
|
135
|
+
__metadata("design:paramtypes", [Number, update_user_dto_1.UpdateUserDTO,
|
|
136
|
+
user_entity_1.User]),
|
|
137
|
+
__metadata("design:returntype", Promise)
|
|
138
|
+
], UserController.prototype, "update", null);
|
|
139
|
+
__decorate([
|
|
140
|
+
(0, common_1.Delete)("/:id"),
|
|
141
|
+
(0, roles_decorator_1.Roles)(user_role_1.UserRole.ADMIN),
|
|
142
|
+
(0, swagger_1.ApiOperation)({ summary: "Delete a user" }),
|
|
143
|
+
(0, swagger_1.ApiResponse)({
|
|
144
|
+
status: 200,
|
|
145
|
+
description: "The record has been successfully deleted.",
|
|
146
|
+
}),
|
|
147
|
+
(0, swagger_1.ApiResponse)({ status: 403, description: "Forbidden." }),
|
|
148
|
+
__param(0, (0, common_1.Param)("id")),
|
|
149
|
+
__metadata("design:type", Function),
|
|
150
|
+
__metadata("design:paramtypes", [Number]),
|
|
151
|
+
__metadata("design:returntype", Promise)
|
|
152
|
+
], UserController.prototype, "delete", null);
|
|
153
|
+
exports.UserController = UserController = __decorate([
|
|
154
|
+
(0, common_1.Controller)("api/users"),
|
|
155
|
+
(0, swagger_1.ApiBearerAuth)(),
|
|
156
|
+
(0, common_1.UseGuards)(passport_1.AuthGuard, roles_guard_1.RolesGuard),
|
|
157
|
+
(0, roles_decorator_1.Roles)(user_role_1.UserRole.ADMIN),
|
|
158
|
+
(0, swagger_1.ApiTags)("users-module"),
|
|
159
|
+
__metadata("design:paramtypes", [user_service_1.UserService])
|
|
160
|
+
], UserController);
|
|
161
|
+
//# sourceMappingURL=user.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.controller.js","sourceRoot":"","sources":["../../src/user/user.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseEntity } from "../core/utils/base.entity";
|
|
2
|
+
import { UserRole } from "../core/enums/user-role";
|
|
3
|
+
export declare class User extends BaseEntity {
|
|
4
|
+
email?: string;
|
|
5
|
+
password?: string;
|
|
6
|
+
username?: string;
|
|
7
|
+
activated?: boolean;
|
|
8
|
+
imageUrl?: string;
|
|
9
|
+
role?: UserRole;
|
|
10
|
+
resetPasswordRequest?: boolean;
|
|
11
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.User = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const class_transformer_1 = require("class-transformer");
|
|
15
|
+
const base_entity_1 = require("../core/utils/base.entity");
|
|
16
|
+
const user_role_1 = require("../core/enums/user-role");
|
|
17
|
+
let User = class User extends base_entity_1.BaseEntity {
|
|
18
|
+
};
|
|
19
|
+
exports.User = User;
|
|
20
|
+
__decorate([
|
|
21
|
+
(0, typeorm_1.Column)({ unique: true, type: "varchar", nullable: false }),
|
|
22
|
+
__metadata("design:type", String)
|
|
23
|
+
], User.prototype, "email", void 0);
|
|
24
|
+
__decorate([
|
|
25
|
+
(0, class_transformer_1.Exclude)(),
|
|
26
|
+
(0, typeorm_1.Column)({ type: "varchar", nullable: false }),
|
|
27
|
+
__metadata("design:type", String)
|
|
28
|
+
], User.prototype, "password", void 0);
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, typeorm_1.Column)({ type: "varchar", nullable: true }),
|
|
31
|
+
__metadata("design:type", String)
|
|
32
|
+
], User.prototype, "username", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, typeorm_1.Column)({ type: "boolean", nullable: false, default: false }),
|
|
35
|
+
__metadata("design:type", Boolean)
|
|
36
|
+
], User.prototype, "activated", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, typeorm_1.Column)({ name: "image_url", type: "varchar", nullable: true }),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], User.prototype, "imageUrl", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, typeorm_1.Column)({ type: "enum", enum: user_role_1.UserRole }),
|
|
43
|
+
__metadata("design:type", String)
|
|
44
|
+
], User.prototype, "role", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, typeorm_1.Column)({ name: "reset_password_request", type: "boolean", default: false }),
|
|
47
|
+
__metadata("design:type", Boolean)
|
|
48
|
+
], User.prototype, "resetPasswordRequest", void 0);
|
|
49
|
+
exports.User = User = __decorate([
|
|
50
|
+
(0, typeorm_1.Entity)("users")
|
|
51
|
+
], User);
|
|
52
|
+
//# sourceMappingURL=user.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/user/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAyC;AACzC,yDAA4C;AAC5C,2DAAuD;AACvD,uDAAmD;AAG5C,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,wBAAU;CAsBnC,CAAA;AAtBY,oBAAI;AAEf;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;mCAC5C;AAIf;IAFC,IAAA,2BAAO,GAAE;IACT,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;;sCAC3B;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC1B;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;uCACzC;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sCAC7C;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAQ,EAAE,CAAC;;kCACzB;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;kDAC7C;eArBpB,IAAI;IADhB,IAAA,gBAAM,EAAC,OAAO,CAAC;GACH,IAAI,CAsBhB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { User } from "./user.entity";
|
|
2
|
+
import { UserDTO } from "./dtos/user.dto";
|
|
3
|
+
import { BaseDTO } from "../core/utils/base.dto";
|
|
4
|
+
import { UpdateUserDTO } from "./dtos/update-user.dto";
|
|
5
|
+
export declare function mapUserToUserDtoSelective(user: User, keys?: (keyof UserDTO | keyof BaseDTO)[]): UpdateUserDTO;
|
|
6
|
+
export declare function mapUserToUserDtoSelective(users: User[], keys?: (keyof UserDTO | keyof BaseDTO)[]): UpdateUserDTO[];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mapUserToUserDtoSelective = mapUserToUserDtoSelective;
|
|
4
|
+
const allowedUserDtoKeys = [
|
|
5
|
+
"id",
|
|
6
|
+
"createdAt",
|
|
7
|
+
"email",
|
|
8
|
+
"username",
|
|
9
|
+
"activated",
|
|
10
|
+
"imageUrl",
|
|
11
|
+
"role",
|
|
12
|
+
"resetPasswordRequest",
|
|
13
|
+
];
|
|
14
|
+
function mapUserToUserDtoSelective(userOrUsers, keys) {
|
|
15
|
+
const mapSingle = (user) => {
|
|
16
|
+
const resultDto = {};
|
|
17
|
+
const keysToMap = (keys || allowedUserDtoKeys).filter((key) => allowedUserDtoKeys.includes(key));
|
|
18
|
+
keysToMap.forEach((key) => {
|
|
19
|
+
if (key in user && user[key] !== undefined) {
|
|
20
|
+
resultDto[key] = user[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return resultDto;
|
|
24
|
+
};
|
|
25
|
+
if (Array.isArray(userOrUsers)) {
|
|
26
|
+
return userOrUsers.map(mapSingle);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
return mapSingle(userOrUsers);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=user.mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.mapper.js","sourceRoot":"","sources":["../../src/user/user.mapper.ts"],"names":[],"mappings":";;AAoCA,8DAgCC;AA7DD,MAAM,kBAAkB,GAAiD;IACvE,IAAI;IACJ,WAAW;IACX,OAAO;IACP,UAAU;IACV,WAAW;IACX,UAAU;IACV,MAAM;IACN,sBAAsB;CACvB,CAAC;AAoBF,SAAgB,yBAAyB,CACvC,WAA0B,EAC1B,IAAwC;IAExC,MAAM,SAAS,GAAG,CAAC,IAAU,EAAiB,EAAE;QAC9C,MAAM,SAAS,GAAkB,EAAE,CAAC;QAGpC,MAAM,SAAS,GAAG,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAC3D,kBAA2D,CAAC,QAAQ,CAAC,GAAG,CAAC,CAC3E,CAAC;QAEF,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAGxB,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,CAAC,GAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAKxD,SAAiB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAiB,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var UserModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.UserModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
13
|
+
const user_service_1 = require("./user.service");
|
|
14
|
+
const user_controller_1 = require("./user.controller");
|
|
15
|
+
const user_entity_1 = require("./user.entity");
|
|
16
|
+
let UserModule = UserModule_1 = class UserModule {
|
|
17
|
+
static forRoot() {
|
|
18
|
+
return {
|
|
19
|
+
module: UserModule_1,
|
|
20
|
+
imports: [typeorm_1.TypeOrmModule.forFeature([user_entity_1.User])],
|
|
21
|
+
controllers: [user_controller_1.UserController],
|
|
22
|
+
providers: [user_service_1.UserService],
|
|
23
|
+
exports: [user_service_1.UserService],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.UserModule = UserModule;
|
|
28
|
+
exports.UserModule = UserModule = UserModule_1 = __decorate([
|
|
29
|
+
(0, common_1.Module)({})
|
|
30
|
+
], UserModule);
|
|
31
|
+
//# sourceMappingURL=user.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.module.js","sourceRoot":"","sources":["../../src/user/user.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,6CAAgD;AAChD,iDAA6C;AAC7C,uDAAmD;AACnD,+CAAqC;AAG9B,IAAM,UAAU,kBAAhB,MAAM,UAAU;IACrB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,CAAC,CAAC,CAAC;YAC3C,WAAW,EAAE,CAAC,gCAAc,CAAC;YAC7B,SAAS,EAAE,CAAC,0BAAW,CAAC;YACxB,OAAO,EAAE,CAAC,0BAAW,CAAC;SACvB,CAAC;IACJ,CAAC;CACF,CAAA;AAVY,gCAAU;qBAAV,UAAU;IADtB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,UAAU,CAUtB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { User } from "./user.entity";
|
|
2
|
+
import { FindManyOptions, FindOneOptions, Repository } from "typeorm";
|
|
3
|
+
import { UpdateUserDTO } from "./dtos/update-user.dto";
|
|
4
|
+
import { UserDTO } from "./dtos/user.dto";
|
|
5
|
+
export declare class UserService {
|
|
6
|
+
private userRepository;
|
|
7
|
+
constructor(userRepository: Repository<User>);
|
|
8
|
+
findById(id: number): Promise<UserDTO | undefined>;
|
|
9
|
+
findByFields(options: FindOneOptions<UpdateUserDTO>): Promise<UserDTO | undefined>;
|
|
10
|
+
find(options: FindManyOptions<UpdateUserDTO>): Promise<UserDTO | undefined>;
|
|
11
|
+
findAndCount(options: FindManyOptions<UserDTO>): Promise<[UserDTO[], number]>;
|
|
12
|
+
save(userDTO: UpdateUserDTO, creator?: string, updatePassword?: boolean): Promise<UserDTO>;
|
|
13
|
+
update(userDTO: UpdateUserDTO, updater?: string): Promise<UpdateUserDTO>;
|
|
14
|
+
delete(userDTO: UserDTO): Promise<UserDTO | undefined>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.UserService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
|
+
const user_entity_1 = require("./user.entity");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
const password_util_1 = require("../core/utils/password-util");
|
|
21
|
+
let UserService = class UserService {
|
|
22
|
+
constructor(userRepository) {
|
|
23
|
+
this.userRepository = userRepository;
|
|
24
|
+
}
|
|
25
|
+
async findById(id) {
|
|
26
|
+
const result = await this.userRepository.findOne({
|
|
27
|
+
where: { id: (0, typeorm_2.Equal)(id) },
|
|
28
|
+
});
|
|
29
|
+
return result || undefined;
|
|
30
|
+
}
|
|
31
|
+
async findByFields(options) {
|
|
32
|
+
const result = await this.userRepository.findOne(options);
|
|
33
|
+
return result || undefined;
|
|
34
|
+
}
|
|
35
|
+
async find(options) {
|
|
36
|
+
const result = await this.userRepository.findOne(options);
|
|
37
|
+
return result || undefined;
|
|
38
|
+
}
|
|
39
|
+
async findAndCount(options) {
|
|
40
|
+
const resultList = await this.userRepository.findAndCount(options);
|
|
41
|
+
return resultList;
|
|
42
|
+
}
|
|
43
|
+
async save(userDTO, creator, updatePassword = false) {
|
|
44
|
+
if (updatePassword) {
|
|
45
|
+
await (0, password_util_1.transformPassword)(userDTO);
|
|
46
|
+
}
|
|
47
|
+
if (creator) {
|
|
48
|
+
if (!userDTO.createdBy) {
|
|
49
|
+
userDTO.createdBy = creator;
|
|
50
|
+
}
|
|
51
|
+
userDTO.updatedBy = creator;
|
|
52
|
+
}
|
|
53
|
+
const result = await this.userRepository.save(userDTO);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
async update(userDTO, updater) {
|
|
57
|
+
if (updater) {
|
|
58
|
+
userDTO.updatedBy = updater;
|
|
59
|
+
}
|
|
60
|
+
if (userDTO.password) {
|
|
61
|
+
await (0, password_util_1.transformPassword)(userDTO);
|
|
62
|
+
}
|
|
63
|
+
await this.userRepository.update({
|
|
64
|
+
id: userDTO.id,
|
|
65
|
+
}, userDTO);
|
|
66
|
+
return userDTO;
|
|
67
|
+
}
|
|
68
|
+
async delete(userDTO) {
|
|
69
|
+
const result = await this.userRepository.remove(userDTO);
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.UserService = UserService;
|
|
74
|
+
exports.UserService = UserService = __decorate([
|
|
75
|
+
(0, common_1.Injectable)(),
|
|
76
|
+
__param(0, (0, typeorm_1.InjectRepository)(user_entity_1.User)),
|
|
77
|
+
__metadata("design:paramtypes", [typeorm_2.Repository])
|
|
78
|
+
], UserService);
|
|
79
|
+
//# sourceMappingURL=user.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/user/user.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,+CAAqC;AACrC,qCAA6E;AAG7E,+DAAgE;AAGzD,IAAM,WAAW,GAAjB,MAAM,WAAW;IACtB,YAEU,cAAgC;QAAhC,mBAAc,GAAd,cAAc,CAAkB;IACvC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/C,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,eAAK,EAAC,EAAE,CAAC,EAAE;SACzB,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAsC;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAuC;QAEvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAiC;QAEjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,OAAsB,EACtB,OAAgB,EAChB,cAAc,GAAG,KAAK;QAEtB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;YAC9B,CAAC;YACD,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC9B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAsB,EACtB,OAAgB;QAEhB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QAC9B,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAA,iCAAiB,EAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAC9B;YACE,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,EACD,OAAO,CACR,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAe,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA3EY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACC,oBAAU;GAHzB,WAAW,CA2EvB"}
|