@uecsio/users-api 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,13 @@
1
- import { CreateUserDto } from './create-user.dto';
2
- declare const UpdateUserDto_base: import("@nestjs/mapped-types").MappedType<Partial<CreateUserDto>>;
3
- export declare class UpdateUserDto extends UpdateUserDto_base {
4
- id?: number;
1
+ export declare class UpdateUserDto {
2
+ username?: string;
3
+ password?: string;
4
+ role?: string;
5
+ status?: number;
6
+ name?: string;
7
+ town?: string;
8
+ address?: string;
9
+ email?: string;
10
+ phone?: string;
11
+ profile?: string;
5
12
  }
6
- export {};
7
13
  //# sourceMappingURL=update-user.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-user.dto.d.ts","sourceRoot":"","sources":["../../src/dto/update-user.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;;AAElD,qBAAa,aAAc,SAAQ,kBAA0B;IAQ3D,EAAE,CAAC,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"update-user.dto.d.ts","sourceRoot":"","sources":["../../src/dto/update-user.dto.ts"],"names":[],"mappings":"AAGA,qBAAa,aAAa;IAQxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IASlB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAQlB,IAAI,CAAC,EAAE,MAAM,CAAC;IAUd,MAAM,CAAC,EAAE,MAAM,CAAC;IAShB,IAAI,CAAC,EAAE,MAAM,CAAC;IASd,IAAI,CAAC,EAAE,MAAM,CAAC;IAQd,OAAO,CAAC,EAAE,MAAM,CAAC;IASjB,KAAK,CAAC,EAAE,MAAM,CAAC;IASf,KAAK,CAAC,EAAE,MAAM,CAAC;IAQf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -10,21 +10,107 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.UpdateUserDto = void 0;
13
- const mapped_types_1 = require("@nestjs/mapped-types");
14
13
  const class_validator_1 = require("class-validator");
15
14
  const swagger_1 = require("@nestjs/swagger");
16
- const create_user_dto_1 = require("./create-user.dto");
17
- class UpdateUserDto extends (0, mapped_types_1.PartialType)(create_user_dto_1.CreateUserDto) {
15
+ class UpdateUserDto {
18
16
  }
19
17
  exports.UpdateUserDto = UpdateUserDto;
20
18
  __decorate([
21
19
  (0, swagger_1.ApiPropertyOptional)({
22
- description: 'The unique identifier of the user',
20
+ description: 'The username of the user',
21
+ example: 'john_doe',
22
+ maxLength: 128,
23
+ }),
24
+ (0, class_validator_1.IsOptional)(),
25
+ (0, class_validator_1.IsString)(),
26
+ __metadata("design:type", String)
27
+ ], UpdateUserDto.prototype, "username", void 0);
28
+ __decorate([
29
+ (0, swagger_1.ApiPropertyOptional)({
30
+ description: 'The password of the user',
31
+ example: 'securePassword123',
32
+ maxLength: 128,
33
+ }),
34
+ (0, class_validator_1.IsOptional)(),
35
+ (0, class_validator_1.IsString)(),
36
+ __metadata("design:type", String)
37
+ ], UpdateUserDto.prototype, "password", void 0);
38
+ __decorate([
39
+ (0, swagger_1.ApiPropertyOptional)({
40
+ description: 'The role of the user',
41
+ example: 'admin',
42
+ }),
43
+ (0, class_validator_1.IsOptional)(),
44
+ (0, class_validator_1.IsString)(),
45
+ __metadata("design:type", String)
46
+ ], UpdateUserDto.prototype, "role", void 0);
47
+ __decorate([
48
+ (0, swagger_1.ApiPropertyOptional)({
49
+ description: 'The status of the user (1: active, 0: inactive)',
23
50
  example: 1,
24
- readOnly: true,
51
+ minimum: 0,
52
+ maximum: 1,
25
53
  }),
26
54
  (0, class_validator_1.IsOptional)(),
27
55
  (0, class_validator_1.IsNumber)(),
28
56
  __metadata("design:type", Number)
29
- ], UpdateUserDto.prototype, "id", void 0);
57
+ ], UpdateUserDto.prototype, "status", void 0);
58
+ __decorate([
59
+ (0, swagger_1.ApiPropertyOptional)({
60
+ description: 'The full name of the user',
61
+ example: 'John Doe',
62
+ maxLength: 255,
63
+ }),
64
+ (0, class_validator_1.IsOptional)(),
65
+ (0, class_validator_1.IsString)(),
66
+ __metadata("design:type", String)
67
+ ], UpdateUserDto.prototype, "name", void 0);
68
+ __decorate([
69
+ (0, swagger_1.ApiPropertyOptional)({
70
+ description: 'The town/city of the user',
71
+ example: 'New York',
72
+ maxLength: 255,
73
+ }),
74
+ (0, class_validator_1.IsOptional)(),
75
+ (0, class_validator_1.IsString)(),
76
+ __metadata("design:type", String)
77
+ ], UpdateUserDto.prototype, "town", void 0);
78
+ __decorate([
79
+ (0, swagger_1.ApiPropertyOptional)({
80
+ description: 'The address of the user',
81
+ example: '123 Main Street, Apt 4B',
82
+ }),
83
+ (0, class_validator_1.IsOptional)(),
84
+ (0, class_validator_1.IsString)(),
85
+ __metadata("design:type", String)
86
+ ], UpdateUserDto.prototype, "address", void 0);
87
+ __decorate([
88
+ (0, swagger_1.ApiPropertyOptional)({
89
+ description: 'The email address of the user',
90
+ example: 'john.doe@example.com',
91
+ maxLength: 128,
92
+ }),
93
+ (0, class_validator_1.IsOptional)(),
94
+ (0, class_validator_1.IsEmail)(),
95
+ __metadata("design:type", String)
96
+ ], UpdateUserDto.prototype, "email", void 0);
97
+ __decorate([
98
+ (0, swagger_1.ApiPropertyOptional)({
99
+ description: 'The phone number of the user',
100
+ example: '+1234567890',
101
+ maxLength: 50,
102
+ }),
103
+ (0, class_validator_1.IsOptional)(),
104
+ (0, class_validator_1.IsString)(),
105
+ __metadata("design:type", String)
106
+ ], UpdateUserDto.prototype, "phone", void 0);
107
+ __decorate([
108
+ (0, swagger_1.ApiPropertyOptional)({
109
+ description: 'Additional profile information',
110
+ example: 'Software developer with 5 years experience',
111
+ }),
112
+ (0, class_validator_1.IsOptional)(),
113
+ (0, class_validator_1.IsString)(),
114
+ __metadata("design:type", String)
115
+ ], UpdateUserDto.prototype, "profile", void 0);
30
116
  //# sourceMappingURL=update-user.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-user.dto.js","sourceRoot":"","sources":["../../src/dto/update-user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAmD;AACnD,qDAAuD;AACvD,6CAAsD;AACtD,uDAAkD;AAElD,MAAa,aAAc,SAAQ,IAAA,0BAAW,EAAC,+BAAa,CAAC;CAS5D;AATD,sCASC;AADC;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yCACC"}
1
+ {"version":3,"file":"update-user.dto.js","sourceRoot":"","sources":["../../src/dto/update-user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsF;AACtF,6CAAsD;AAEtD,MAAa,aAAa;CAwFzB;AAxFD,sCAwFC;AAhFC;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,GAAG;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;+CACO;AASlB;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,mBAAmB;QAC5B,SAAS,EAAE,GAAG;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;+CACO;AAQlB;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,OAAO;KACjB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAUd;IARC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;KACX,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6CACK;AAShB;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,GAAG;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AASd;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,UAAU;QACnB,SAAS,EAAE,GAAG;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;2CACG;AAQd;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,yBAAyB;QACtC,OAAO,EAAE,yBAAyB;KACnC,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8CACM;AASjB;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,sBAAsB;QAC/B,SAAS,EAAE,GAAG;KACf,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;4CACK;AASf;IAPC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,EAAE;KACd,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4CACI;AAQf;IANC,IAAA,6BAAmB,EAAC;QACnB,WAAW,EAAE,gCAAgC;QAC7C,OAAO,EAAE,4CAA4C;KACtD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8CACM"}
@@ -63,6 +63,6 @@ __decorate([
63
63
  __metadata("design:type", Date)
64
64
  ], User.prototype, "createdAt", void 0);
65
65
  exports.User = User = __decorate([
66
- (0, typeorm_1.Entity)()
66
+ (0, typeorm_1.Entity)('user')
67
67
  ], User);
68
68
  //# sourceMappingURL=user.entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAKiB;AAGV,IAAM,IAAI,GAAV,MAAM,IAAI;CAoChB,CAAA;AApCY,oBAAI;AAEf;IADC,IAAA,gCAAsB,GAAE;;gCACd;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCACrB;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCACP;AAGjB;IADC,IAAA,gBAAM,GAAE;;kCACI;AAGb;IADC,IAAA,gBAAM,GAAE;;oCACM;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kCAC3B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;kCACX;AAGb;IADC,IAAA,gBAAM,GAAE;;qCACO;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;mCAC1B;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;mCACT;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACX;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACjE,IAAI;uCAAC;eAnCL,IAAI;IADhB,IAAA,gBAAM,GAAE;GACI,IAAI,CAoChB"}
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAKiB;AAGV,IAAM,IAAI,GAAV,MAAM,IAAI;CAoChB,CAAA;AApCY,oBAAI;AAEf;IADC,IAAA,gCAAsB,GAAE;;gCACd;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCACrB;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;sCACP;AAGjB;IADC,IAAA,gBAAM,GAAE;;kCACI;AAGb;IADC,IAAA,gBAAM,GAAE;;oCACM;AAGf;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kCAC3B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;kCACX;AAGb;IADC,IAAA,gBAAM,GAAE;;qCACO;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;;mCAC1B;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;mCACT;AAGd;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qCACX;AAGhB;IADC,IAAA,0BAAgB,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;8BACjE,IAAI;uCAAC;eAnCL,IAAI;IADhB,IAAA,gBAAM,EAAC,MAAM,CAAC;GACF,IAAI,CAoChB"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  export * from './users.module';
2
2
  export * from './services/users.service';
3
- export * from './controllers/users.controller';
4
3
  export * from './dto/create-user.dto';
5
4
  export * from './dto/update-user.dto';
6
5
  export * from './entities/user.entity';
@@ -9,6 +8,5 @@ export { User } from './entities/user.entity';
9
8
  export { CreateUserDto } from './dto/create-user.dto';
10
9
  export { UpdateUserDto } from './dto/update-user.dto';
11
10
  export { UsersService } from './services/users.service';
12
- export { UsersController } from './controllers/users.controller';
13
11
  export { UsersModule } from './users.module';
14
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,+BAA+B,CAAC;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -14,10 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.UsersModule = exports.UsersController = exports.UsersService = exports.UpdateUserDto = exports.CreateUserDto = exports.User = void 0;
17
+ exports.UsersModule = exports.UsersService = exports.UpdateUserDto = exports.CreateUserDto = exports.User = void 0;
18
18
  __exportStar(require("./users.module"), exports);
19
19
  __exportStar(require("./services/users.service"), exports);
20
- __exportStar(require("./controllers/users.controller"), exports);
21
20
  __exportStar(require("./dto/create-user.dto"), exports);
22
21
  __exportStar(require("./dto/update-user.dto"), exports);
23
22
  __exportStar(require("./entities/user.entity"), exports);
@@ -30,8 +29,6 @@ var update_user_dto_1 = require("./dto/update-user.dto");
30
29
  Object.defineProperty(exports, "UpdateUserDto", { enumerable: true, get: function () { return update_user_dto_1.UpdateUserDto; } });
31
30
  var users_service_1 = require("./services/users.service");
32
31
  Object.defineProperty(exports, "UsersService", { enumerable: true, get: function () { return users_service_1.UsersService; } });
33
- var users_controller_1 = require("./controllers/users.controller");
34
- Object.defineProperty(exports, "UsersController", { enumerable: true, get: function () { return users_controller_1.UsersController; } });
35
32
  var users_module_1 = require("./users.module");
36
33
  Object.defineProperty(exports, "UsersModule", { enumerable: true, get: function () { return users_module_1.UsersModule; } });
37
34
  //# 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":";;;;;;;;;;;;;;;;;AACA,iDAA+B;AAC/B,2DAAyC;AACzC,iEAA+C;AAC/C,wDAAsC;AACtC,wDAAsC;AACtC,yDAAuC;AAGvC,gEAA8C;AAG9C,sDAA8C;AAArC,mGAAA,IAAI,OAAA;AACb,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AACtB,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AACtB,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AACrB,mEAAiE;AAAxD,mHAAA,eAAe,OAAA;AACxB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,iDAA+B;AAC/B,2DAAyC;AAEzC,wDAAsC;AACtC,wDAAsC;AACtC,yDAAuC;AAGvC,gEAA8C;AAG9C,sDAA8C;AAArC,mGAAA,IAAI,OAAA;AACb,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AACtB,yDAAsD;AAA7C,gHAAA,aAAa,OAAA;AACtB,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AAErB,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
@@ -5,7 +5,7 @@ const typeorm_1 = require("typeorm");
5
5
  class CreateUsersTable1704067200000 {
6
6
  async up(queryRunner) {
7
7
  await queryRunner.createTable(new typeorm_1.Table({
8
- name: 'users',
8
+ name: 'user',
9
9
  columns: [
10
10
  {
11
11
  name: 'id',
@@ -73,25 +73,25 @@ class CreateUsersTable1704067200000 {
73
73
  isNullable: true,
74
74
  },
75
75
  {
76
- name: 'created_at',
76
+ name: 'createdAt',
77
77
  type: 'timestamp',
78
78
  default: 'CURRENT_TIMESTAMP',
79
79
  isNullable: false,
80
80
  },
81
81
  ],
82
82
  }), true);
83
- await queryRunner.createIndex('users', new typeorm_1.TableIndex({
84
- name: 'IDX_USERS_USERNAME',
83
+ await queryRunner.createIndex('user', new typeorm_1.TableIndex({
84
+ name: 'IDX_USER_USERNAME',
85
85
  columnNames: ['username'],
86
86
  isUnique: true,
87
87
  }));
88
- await queryRunner.createIndex('users', new typeorm_1.TableIndex({
89
- name: 'IDX_USERS_EMAIL',
88
+ await queryRunner.createIndex('user', new typeorm_1.TableIndex({
89
+ name: 'IDX_USER_EMAIL',
90
90
  columnNames: ['email'],
91
91
  }));
92
92
  }
93
93
  async down(queryRunner) {
94
- await queryRunner.dropTable('users');
94
+ await queryRunner.dropTable('user');
95
95
  }
96
96
  }
97
97
  exports.CreateUsersTable1704067200000 = CreateUsersTable1704067200000;
@@ -1 +1 @@
1
- {"version":3,"file":"1704067200000-CreateUsersTable.js","sourceRoot":"","sources":["../../src/migrations/1704067200000-CreateUsersTable.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAE7E,MAAa,6BAA6B;IACjC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,WAAW,CAC3B,IAAI,eAAK,CAAC;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,IAAI;oBACjB,kBAAkB,EAAE,WAAW;iBAChC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,KAAK;iBAClB;aACF;SACF,CAAC,EACF,IAAI,CACL,CAAC;QAEF,MAAM,WAAW,CAAC,WAAW,CAC3B,OAAO,EACP,IAAI,oBAAU,CAAC;YACb,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,CAAC,WAAW,CAC3B,OAAO,EACP,IAAI,oBAAU,CAAC;YACb,IAAI,EAAE,iBAAiB;YACvB,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAvGD,sEAuGC"}
1
+ {"version":3,"file":"1704067200000-CreateUsersTable.js","sourceRoot":"","sources":["../../src/migrations/1704067200000-CreateUsersTable.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAE7E,MAAa,6BAA6B;IACjC,KAAK,CAAC,EAAE,CAAC,WAAwB;QACtC,MAAM,WAAW,CAAC,WAAW,CAC3B,IAAI,eAAK,CAAC;YACR,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,IAAI;oBACjB,kBAAkB,EAAE,WAAW;iBAChC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,KAAK;oBACb,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;oBACf,MAAM,EAAE,IAAI;oBACZ,UAAU,EAAE,KAAK;iBAClB;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,IAAI;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,KAAK;iBAClB;aACF;SACF,CAAC,EACF,IAAI,CACL,CAAC;QAEF,MAAM,WAAW,CAAC,WAAW,CAC3B,MAAM,EACN,IAAI,oBAAU,CAAC;YACb,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,CAAC,UAAU,CAAC;YACzB,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,CAAC,WAAW,CAC3B,MAAM,EACN,IAAI,oBAAU,CAAC;YACb,IAAI,EAAE,gBAAgB;YACtB,WAAW,EAAE,CAAC,OAAO,CAAC;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAwB;QACxC,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AAvGD,sEAuGC"}
@@ -1,7 +1,7 @@
1
- import { CrudService } from '@nestjs-library/crud';
2
1
  import { Repository } from 'typeorm';
2
+ import { BaseTypeOrmCrudService } from '@uecsio/utils-api';
3
3
  import { User } from '../entities/user.entity';
4
- export declare class UsersService extends CrudService<User> {
5
- constructor(repository: Repository<User>);
4
+ export declare class UsersService extends BaseTypeOrmCrudService<User> {
5
+ constructor(repo: Repository<User>);
6
6
  }
7
7
  //# sourceMappingURL=users.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,qBACa,YAAa,SAAQ,WAAW,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC;CAGjE"}
1
+ {"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,qBACa,YAAa,SAAQ,sBAAsB,CAAC,IAAI,CAAC;gBACxB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC;CAG3D"}
@@ -15,12 +15,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.UsersService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
- const crud_1 = require("@nestjs-library/crud");
19
18
  const typeorm_2 = require("typeorm");
19
+ const utils_api_1 = require("@uecsio/utils-api");
20
20
  const user_entity_1 = require("../entities/user.entity");
21
- let UsersService = class UsersService extends crud_1.CrudService {
22
- constructor(repository) {
23
- super(repository);
21
+ let UsersService = class UsersService extends utils_api_1.BaseTypeOrmCrudService {
22
+ constructor(repo) {
23
+ super(repo);
24
24
  }
25
25
  };
26
26
  exports.UsersService = UsersService;
@@ -1 +1 @@
1
- {"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,+CAAmD;AACnD,qCAAqC;AACrC,yDAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kBAAiB;IACjD,YAAoC,UAA4B;QAC9D,KAAK,CAAC,UAAU,CAAC,CAAC;IACpB,CAAC;CACF,CAAA;AAJY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCAAa,oBAAU;GAD/C,YAAY,CAIxB"}
1
+ {"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,iDAA2D;AAC3D,yDAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kCAA4B;IAC5D,YAAoC,IAAsB;QACxD,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;CACF,CAAA;AAJY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCAAO,oBAAU;GADzC,YAAY,CAIxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../src/users.module.ts"],"names":[],"mappings":"AAMA,qBAMa,WAAW;CAAG"}
1
+ {"version":3,"file":"users.module.d.ts","sourceRoot":"","sources":["../src/users.module.ts"],"names":[],"mappings":"AAOA,qBAaa,WAAW;CAAG"}
@@ -8,18 +8,26 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.UsersModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
- const typeorm_1 = require("@nestjs/typeorm");
11
+ const nestjs_crud_module_1 = require("@uecsio/nestjs-crud-module");
12
12
  const user_entity_1 = require("./entities/user.entity");
13
- const users_controller_1 = require("./controllers/users.controller");
13
+ const create_user_dto_1 = require("./dto/create-user.dto");
14
+ const update_user_dto_1 = require("./dto/update-user.dto");
14
15
  const users_service_1 = require("./services/users.service");
15
16
  let UsersModule = class UsersModule {
16
17
  };
17
18
  exports.UsersModule = UsersModule;
18
19
  exports.UsersModule = UsersModule = __decorate([
19
20
  (0, common_1.Module)({
20
- imports: [typeorm_1.TypeOrmModule.forFeature([user_entity_1.User])],
21
- controllers: [users_controller_1.UsersController],
22
- providers: [users_service_1.UsersService],
21
+ imports: [
22
+ nestjs_crud_module_1.CrudModule.register({
23
+ entity: user_entity_1.User,
24
+ path: 'users',
25
+ createDto: create_user_dto_1.CreateUserDto,
26
+ updateDto: update_user_dto_1.UpdateUserDto,
27
+ service: users_service_1.UsersService,
28
+ }),
29
+ ],
30
+ providers: [],
23
31
  exports: [users_service_1.UsersService],
24
32
  })
25
33
  ], UsersModule);
@@ -1 +1 @@
1
- {"version":3,"file":"users.module.js","sourceRoot":"","sources":["../src/users.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,6CAAgD;AAChD,wDAA8C;AAC9C,qEAAiE;AACjE,4DAAwD;AAQjD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IANvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,uBAAa,CAAC,UAAU,CAAC,CAAC,kBAAI,CAAC,CAAC,CAAC;QAC3C,WAAW,EAAE,CAAC,kCAAe,CAAC;QAC9B,SAAS,EAAE,CAAC,4BAAY,CAAC;QACzB,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"users.module.js","sourceRoot":"","sources":["../src/users.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mEAAwD;AACxD,wDAA8C;AAC9C,2DAAsD;AACtD,2DAAsD;AACtD,4DAAwD;AAejD,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAbvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,+BAAU,CAAC,QAAQ,CAAC;gBAClB,MAAM,EAAE,kBAAI;gBACZ,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,+BAAa;gBACxB,SAAS,EAAE,+BAAa;gBACxB,OAAO,EAAE,4BAAY;aACtB,CAAC;SACH;QACD,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,CAAC,4BAAY,CAAC;KACxB,CAAC;GACW,WAAW,CAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uecsio/users-api",
3
- "version": "1.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "A reusable NestJS API Users module for user management",
5
5
  "keywords": [
6
6
  "nestjs",
@@ -29,46 +29,39 @@
29
29
  "clean": "rimraf dist"
30
30
  },
31
31
  "peerDependencies": {
32
+ "@dataui/crud": "^5.3.4",
33
+ "@dataui/crud-typeorm": "^5.3.4",
32
34
  "@nestjs/common": "^11.0.0",
33
35
  "@nestjs/core": "^11.0.0",
34
36
  "@nestjs/typeorm": "^11.0.0",
35
- "typeorm": "^0.3.0",
36
- "class-validator": "^0.14.0",
37
+ "@uecsio/utils-api": "^0.0.2",
37
38
  "class-transformer": "^0.5.1",
38
- "@nestjs-library/crud": "^0.13.1"
39
+ "class-validator": "^0.14.0",
40
+ "typeorm": "^0.3.0",
41
+ "@uecsio/nestjs-crud-module": "^1.0.0"
39
42
  },
40
43
  "devDependencies": {
44
+ "@dataui/crud": "^5.3.4",
45
+ "@dataui/crud-typeorm": "^5.3.4",
41
46
  "@nestjs/common": "^11.0.0",
47
+ "@nestjs/config": "^4.0.2",
42
48
  "@nestjs/core": "^11.0.0",
49
+ "@nestjs/swagger": "^11.2.0",
43
50
  "@nestjs/testing": "^11.0.0",
44
51
  "@nestjs/typeorm": "^11.0.0",
45
52
  "@types/jest": "^30.0.0",
46
53
  "@types/node": "^22.0.0",
54
+ "@types/supertest": "^6.0.3",
55
+ "@uecsio/utils-api": "^0.0.2",
56
+ "@uecsio/nestjs-crud-module": "^1.0.0",
57
+ "class-transformer": "^0.5.1",
58
+ "class-validator": "^0.14.2",
47
59
  "jest": "^30.0.0",
60
+ "rimraf": "^5.0.0",
61
+ "supertest": "^7.1.4",
48
62
  "ts-jest": "^29.2.5",
49
- "typescript": "^5.7.3",
50
63
  "typeorm": "^0.3.26",
51
- "class-validator": "^0.14.2",
52
- "class-transformer": "^0.5.1",
53
- "@nestjs-library/crud": "^0.13.1",
54
- "rimraf": "^5.0.0"
55
- },
56
- "jest": {
57
- "moduleFileExtensions": [
58
- "js",
59
- "json",
60
- "ts"
61
- ],
62
- "rootDir": "src",
63
- "testRegex": ".*\\.spec\\.ts$",
64
- "transform": {
65
- "^.+\\.(t|j)s$": "ts-jest"
66
- },
67
- "collectCoverageFrom": [
68
- "**/*.(t|j)s"
69
- ],
70
- "coverageDirectory": "../coverage",
71
- "testEnvironment": "node"
64
+ "typescript": "^5.7.3"
72
65
  },
73
66
  "repository": {
74
67
  "type": "git",
@@ -1,8 +0,0 @@
1
- import { CrudController } from '@nestjs-library/crud';
2
- import { User } from '../entities/user.entity';
3
- import { UsersService } from '../services/users.service';
4
- export declare class UsersController implements CrudController<User> {
5
- readonly crudService: UsersService;
6
- constructor(crudService: UsersService);
7
- }
8
- //# sourceMappingURL=users.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/users.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAIzD,qBAmBa,eAAgB,YAAW,cAAc,CAAC,IAAI,CAAC;aAC9B,WAAW,EAAE,YAAY;gBAAzB,WAAW,EAAE,YAAY;CACtD"}
@@ -1,48 +0,0 @@
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.UsersController = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const crud_1 = require("@nestjs-library/crud");
15
- const swagger_1 = require("@nestjs/swagger");
16
- const user_entity_1 = require("../entities/user.entity");
17
- const users_service_1 = require("../services/users.service");
18
- const create_user_dto_1 = require("../dto/create-user.dto");
19
- const update_user_dto_1 = require("../dto/update-user.dto");
20
- let UsersController = class UsersController {
21
- constructor(crudService) {
22
- this.crudService = crudService;
23
- }
24
- };
25
- exports.UsersController = UsersController;
26
- exports.UsersController = UsersController = __decorate([
27
- (0, swagger_1.ApiTags)('users'),
28
- (0, crud_1.Crud)({
29
- entity: user_entity_1.User,
30
- routes: {
31
- create: {
32
- swagger: {
33
- body: create_user_dto_1.CreateUserDto,
34
- response: user_entity_1.User,
35
- },
36
- },
37
- update: {
38
- swagger: {
39
- body: update_user_dto_1.UpdateUserDto,
40
- response: user_entity_1.User,
41
- },
42
- },
43
- },
44
- }),
45
- (0, common_1.Controller)('users'),
46
- __metadata("design:paramtypes", [users_service_1.UsersService])
47
- ], UsersController);
48
- //# sourceMappingURL=users.controller.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"users.controller.js","sourceRoot":"","sources":["../../src/controllers/users.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,+CAA4D;AAC5D,6CAA0C;AAC1C,yDAA+C;AAC/C,6DAAyD;AACzD,4DAAuD;AACvD,4DAAuD;AAqBhD,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAA4B,WAAyB;QAAzB,gBAAW,GAAX,WAAW,CAAc;IAAG,CAAC;CAC1D,CAAA;AAFY,0CAAe;0BAAf,eAAe;IAnB3B,IAAA,iBAAO,EAAC,OAAO,CAAC;IAChB,IAAA,WAAI,EAAC;QACJ,MAAM,EAAE,kBAAI;QACZ,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,IAAI,EAAE,+BAAa;oBACnB,QAAQ,EAAE,kBAAI;iBACf;aACF;YACD,MAAM,EAAE;gBACN,OAAO,EAAE;oBACP,IAAI,EAAE,+BAAa;oBACnB,QAAQ,EAAE,kBAAI;iBACf;aACF;SACF;KACF,CAAC;IACD,IAAA,mBAAU,EAAC,OAAO,CAAC;qCAEuB,4BAAY;GAD1C,eAAe,CAE3B"}