@spinajs/rbac-http-admin 2.0.381 → 2.0.383

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.
Files changed (51) hide show
  1. package/lib/cjs/controllers/Users/Profile.d.ts +7 -0
  2. package/lib/cjs/controllers/Users/Profile.d.ts.map +1 -0
  3. package/lib/cjs/controllers/Users/Profile.js +43 -0
  4. package/lib/cjs/controllers/Users/Profile.js.map +1 -0
  5. package/lib/cjs/controllers/Users/Roles.d.ts +10 -0
  6. package/lib/cjs/controllers/Users/Roles.d.ts.map +1 -0
  7. package/lib/cjs/controllers/Users/Roles.js +70 -0
  8. package/lib/cjs/controllers/Users/Roles.js.map +1 -0
  9. package/lib/cjs/controllers/Users/Security.d.ts +17 -0
  10. package/lib/cjs/controllers/Users/Security.d.ts.map +1 -0
  11. package/lib/cjs/controllers/Users/Security.js +128 -0
  12. package/lib/cjs/controllers/Users/Security.js.map +1 -0
  13. package/lib/cjs/controllers/Users/Users.d.ts +20 -0
  14. package/lib/cjs/controllers/Users/Users.d.ts.map +1 -0
  15. package/lib/cjs/controllers/Users/Users.js +230 -0
  16. package/lib/cjs/controllers/Users/Users.js.map +1 -0
  17. package/lib/cjs/index.d.ts +1 -1
  18. package/lib/cjs/index.d.ts.map +1 -1
  19. package/lib/cjs/index.js +1 -1
  20. package/lib/cjs/index.js.map +1 -1
  21. package/lib/mjs/controllers/Users/Profile.d.ts +7 -0
  22. package/lib/mjs/controllers/Users/Profile.d.ts.map +1 -0
  23. package/lib/mjs/controllers/Users/Profile.js +40 -0
  24. package/lib/mjs/controllers/Users/Profile.js.map +1 -0
  25. package/lib/mjs/controllers/Users/Roles.d.ts +10 -0
  26. package/lib/mjs/controllers/Users/Roles.d.ts.map +1 -0
  27. package/lib/mjs/controllers/Users/Roles.js +67 -0
  28. package/lib/mjs/controllers/Users/Roles.js.map +1 -0
  29. package/lib/mjs/controllers/Users/Security.d.ts +17 -0
  30. package/lib/mjs/controllers/Users/Security.d.ts.map +1 -0
  31. package/lib/mjs/controllers/Users/Security.js +125 -0
  32. package/lib/mjs/controllers/Users/Security.js.map +1 -0
  33. package/lib/mjs/controllers/Users/Users.d.ts +20 -0
  34. package/lib/mjs/controllers/Users/Users.d.ts.map +1 -0
  35. package/lib/mjs/controllers/Users/Users.js +227 -0
  36. package/lib/mjs/controllers/Users/Users.js.map +1 -0
  37. package/lib/mjs/index.d.ts +1 -1
  38. package/lib/mjs/index.d.ts.map +1 -1
  39. package/lib/mjs/index.js +1 -1
  40. package/lib/mjs/index.js.map +1 -1
  41. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  42. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  43. package/package.json +11 -11
  44. package/lib/cjs/controllers/UserAdminController.d.ts +0 -6
  45. package/lib/cjs/controllers/UserAdminController.d.ts.map +0 -1
  46. package/lib/cjs/controllers/UserAdminController.js +0 -99
  47. package/lib/cjs/controllers/UserAdminController.js.map +0 -1
  48. package/lib/mjs/controllers/UserAdminController.d.ts +0 -6
  49. package/lib/mjs/controllers/UserAdminController.d.ts.map +0 -1
  50. package/lib/mjs/controllers/UserAdminController.js +0 -96
  51. package/lib/mjs/controllers/UserAdminController.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spinajs/rbac-http-admin",
3
- "version": "2.0.381",
3
+ "version": "2.0.383",
4
4
  "description": "HTTP API for administration of users and permissions",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/mjs/index.js",
@@ -47,20 +47,20 @@
47
47
  },
48
48
  "homepage": "https://github.com/spinajs/main#readme",
49
49
  "dependencies": {
50
- "@spinajs/configuration": "^2.0.381",
51
- "@spinajs/di": "^2.0.381",
52
- "@spinajs/exceptions": "^2.0.381",
53
- "@spinajs/http": "^2.0.381",
54
- "@spinajs/log": "^2.0.381",
55
- "@spinajs/orm": "^2.0.381",
56
- "@spinajs/orm-http": "^2.0.381",
57
- "@spinajs/rbac": "^2.0.381",
58
- "@spinajs/rbac-http": "^2.0.381",
50
+ "@spinajs/configuration": "^2.0.383",
51
+ "@spinajs/di": "^2.0.383",
52
+ "@spinajs/exceptions": "^2.0.383",
53
+ "@spinajs/http": "^2.0.383",
54
+ "@spinajs/log": "^2.0.383",
55
+ "@spinajs/orm": "^2.0.383",
56
+ "@spinajs/orm-http": "^2.0.383",
57
+ "@spinajs/rbac": "^2.0.383",
58
+ "@spinajs/rbac-http": "^2.0.383",
59
59
  "luxon": "^3.6.1",
60
60
  "uuid": "^9.0.0"
61
61
  },
62
62
  "devDependencies": {
63
- "@spinajs/orm-sqlite": "^2.0.381"
63
+ "@spinajs/orm-sqlite": "^2.0.383"
64
64
  },
65
65
  "gitHead": "002dc553b0ffffd72193d0121ac425a4083bc9ee"
66
66
  }
@@ -1,6 +0,0 @@
1
- import { BaseController, Ok } from '@spinajs/http';
2
- import { IFilter, OrderDTO, PaginationDTO } from '@spinajs/orm-http';
3
- export declare class UserAdminController extends BaseController {
4
- list(pagination?: PaginationDTO, order?: OrderDTO, include?: string[], filter?: IFilter[]): Promise<Ok>;
5
- }
6
- //# sourceMappingURL=UserAdminController.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/UserAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,EAAE,EAAiB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA8B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAwCjG,qBAEa,mBAAoB,SAAQ,cAAc;IAExC,IAAI,CACN,UAAU,CAAC,EAAE,aAAa,EAC1B,KAAK,CAAC,EAAE,QAAQ,EAQzB,OAAO,CAAC,EAAE,MAAM,EAAE,EAElB,MAAM,CAAC,EAAE,OAAO,EAAE;CA0DrB"}
@@ -1,99 +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
- 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.UserAdminController = void 0;
16
- const http_1 = require("@spinajs/http");
17
- const orm_1 = require("@spinajs/orm");
18
- const orm_http_1 = require("@spinajs/orm-http");
19
- const rbac_1 = require("@spinajs/rbac");
20
- const rbac_http_1 = require("@spinajs/rbac-http");
21
- /**
22
- * User model filter
23
- * We declare it here to not include orm-http in rbac module
24
- * and add unnessesery dependency
25
- */
26
- const USER_FILTER = [
27
- {
28
- Column: 'Uuid',
29
- Operators: ['eq'],
30
- },
31
- {
32
- Column: 'Email',
33
- Operators: ['eq', 'like'],
34
- },
35
- {
36
- Column: 'Login',
37
- Operators: ['eq', 'like'],
38
- },
39
- {
40
- Column: 'CreatedAt',
41
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt'],
42
- },
43
- {
44
- Column: 'LastLoginAt',
45
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt'],
46
- },
47
- {
48
- Column: 'DeletedAt',
49
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt', 'isnull', 'notnull'],
50
- },
51
- {
52
- Column: 'IsActive',
53
- Operators: ['eq'],
54
- },
55
- ];
56
- let UserAdminController = class UserAdminController extends http_1.BaseController {
57
- async list(pagination, order, include, filter) {
58
- const result = await rbac_1.User.select()
59
- .populate(include)
60
- .take(pagination?.limit ?? 10)
61
- .skip(pagination?.limit * pagination?.page)
62
- .order(order?.column ?? 'CreatedAt', order?.order ?? orm_1.SortOrder.DESC)
63
- .filter(filter);
64
- const count = await rbac_1.User.query().filter(filter).count();
65
- return new http_1.Ok(result.map((x) => x.dehydrateWithRelations({
66
- dateTimeFormat: "iso"
67
- })), {
68
- Headers: [
69
- {
70
- Name: 'X-Total-Count',
71
- Value: count,
72
- },
73
- ],
74
- });
75
- }
76
- };
77
- exports.UserAdminController = UserAdminController;
78
- __decorate([
79
- (0, http_1.Get)("/"),
80
- __param(0, (0, http_1.Query)()),
81
- __param(1, (0, http_1.Query)()),
82
- __param(2, (0, http_1.Query)({
83
- type: 'array',
84
- items: {
85
- type: 'string',
86
- enum: ['Metadata'],
87
- },
88
- })),
89
- __param(3, (0, orm_http_1.Filter)(USER_FILTER)),
90
- __metadata("design:type", Function),
91
- __metadata("design:paramtypes", [orm_http_1.PaginationDTO,
92
- orm_http_1.OrderDTO, Array, Array]),
93
- __metadata("design:returntype", Promise)
94
- ], UserAdminController.prototype, "list", null);
95
- exports.UserAdminController = UserAdminController = __decorate([
96
- (0, http_1.BasePath)('users'),
97
- (0, http_1.Policy)(rbac_http_1.AuthorizedPolicy)
98
- ], UserAdminController);
99
- //# sourceMappingURL=UserAdminController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserAdminController.js","sourceRoot":"","sources":["../../../src/controllers/UserAdminController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wCAAiF;AACjF,sCAAyC;AACzC,gDAAiG;AACjG,wCAAqC;AACrC,kDAAsD;AAEtD;;;;GAIG;AACH,MAAM,WAAW,GAAyB;IACxC;QACE,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,CAAC,IAAI,CAAC;KAClB;IACD;QACE,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;KAC1B;IACD;QACE,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;KAC1B;IACD;QACE,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACjE;IACD;QACE,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,CAAC,IAAI,CAAC;KAClB;CACF,CAAC;AAIK,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,qBAAc;IAExC,AAAN,KAAK,CAAC,IAAI,CACN,UAA0B,EAC1B,KAAgB,EAQzB,OAAkB,EAElB,MAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,WAAI,CAAC,MAAM,EAAE;aAC/B,QAAQ,CAAC,OAAO,CAAC;aACjB,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,UAAU,EAAE,IAAI,CAAC;aAC1C,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,eAAS,CAAC,IAAI,CAAC;aACnE,MAAM,CAAC,MAAM,CAAC,CAAC;QAElB,MAAM,KAAK,GAAG,MAAM,WAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAExD,OAAO,IAAI,SAAE,CACX,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACzC,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC,EACH;YACE,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,KAAK;iBACb;aACF;SACF,CACF,CAAC;IACJ,CAAC;CAkCF,CAAA;AAxEY,kDAAmB;AAEjB;IADZ,IAAA,UAAG,EAAC,GAAG,CAAC;IAEN,WAAA,IAAA,YAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAK,GAAE,CAAA;IACP,WAAA,IAAA,YAAK,EAAC;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB;KACF,CAAC,CAAA;IAED,WAAA,IAAA,iBAAM,EAAC,WAAW,CAAC,CAAA;;qCAVE,wBAAa;QAClB,mBAAQ;;+CAkC1B;8BAtCU,mBAAmB;IAF/B,IAAA,eAAQ,EAAC,OAAO,CAAC;IACjB,IAAA,aAAM,EAAC,4BAAgB,CAAC;GACZ,mBAAmB,CAwE/B"}
@@ -1,6 +0,0 @@
1
- import { BaseController, Ok } from '@spinajs/http';
2
- import { IFilter, OrderDTO, PaginationDTO } from '@spinajs/orm-http';
3
- export declare class UserAdminController extends BaseController {
4
- list(pagination?: PaginationDTO, order?: OrderDTO, include?: string[], filter?: IFilter[]): Promise<Ok>;
5
- }
6
- //# sourceMappingURL=UserAdminController.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/UserAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,EAAE,EAAiB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAA8B,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAwCjG,qBAEa,mBAAoB,SAAQ,cAAc;IAExC,IAAI,CACN,UAAU,CAAC,EAAE,aAAa,EAC1B,KAAK,CAAC,EAAE,QAAQ,EAQzB,OAAO,CAAC,EAAE,MAAM,EAAE,EAElB,MAAM,CAAC,EAAE,OAAO,EAAE;CA0DrB"}
@@ -1,96 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- 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;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
- var __param = (this && this.__param) || function (paramIndex, decorator) {
11
- return function (target, key) { decorator(target, key, paramIndex); }
12
- };
13
- import { BaseController, BasePath, Get, Ok, Policy, Query } from '@spinajs/http';
14
- import { SortOrder } from '@spinajs/orm';
15
- import { Filter, OrderDTO, PaginationDTO } from '@spinajs/orm-http';
16
- import { User } from '@spinajs/rbac';
17
- import { AuthorizedPolicy } from "@spinajs/rbac-http";
18
- /**
19
- * User model filter
20
- * We declare it here to not include orm-http in rbac module
21
- * and add unnessesery dependency
22
- */
23
- const USER_FILTER = [
24
- {
25
- Column: 'Uuid',
26
- Operators: ['eq'],
27
- },
28
- {
29
- Column: 'Email',
30
- Operators: ['eq', 'like'],
31
- },
32
- {
33
- Column: 'Login',
34
- Operators: ['eq', 'like'],
35
- },
36
- {
37
- Column: 'CreatedAt',
38
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt'],
39
- },
40
- {
41
- Column: 'LastLoginAt',
42
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt'],
43
- },
44
- {
45
- Column: 'DeletedAt',
46
- Operators: ['eq', 'gte', 'lte', 'lt', 'gt', 'isnull', 'notnull'],
47
- },
48
- {
49
- Column: 'IsActive',
50
- Operators: ['eq'],
51
- },
52
- ];
53
- let UserAdminController = class UserAdminController extends BaseController {
54
- async list(pagination, order, include, filter) {
55
- const result = await User.select()
56
- .populate(include)
57
- .take(pagination?.limit ?? 10)
58
- .skip(pagination?.limit * pagination?.page)
59
- .order(order?.column ?? 'CreatedAt', order?.order ?? SortOrder.DESC)
60
- .filter(filter);
61
- const count = await User.query().filter(filter).count();
62
- return new Ok(result.map((x) => x.dehydrateWithRelations({
63
- dateTimeFormat: "iso"
64
- })), {
65
- Headers: [
66
- {
67
- Name: 'X-Total-Count',
68
- Value: count,
69
- },
70
- ],
71
- });
72
- }
73
- };
74
- __decorate([
75
- Get("/"),
76
- __param(0, Query()),
77
- __param(1, Query()),
78
- __param(2, Query({
79
- type: 'array',
80
- items: {
81
- type: 'string',
82
- enum: ['Metadata'],
83
- },
84
- })),
85
- __param(3, Filter(USER_FILTER)),
86
- __metadata("design:type", Function),
87
- __metadata("design:paramtypes", [PaginationDTO,
88
- OrderDTO, Array, Array]),
89
- __metadata("design:returntype", Promise)
90
- ], UserAdminController.prototype, "list", null);
91
- UserAdminController = __decorate([
92
- BasePath('users'),
93
- Policy(AuthorizedPolicy)
94
- ], UserAdminController);
95
- export { UserAdminController };
96
- //# sourceMappingURL=UserAdminController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UserAdminController.js","sourceRoot":"","sources":["../../../src/controllers/UserAdminController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAsB,MAAM,EAAW,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,GAAyB;IACxC;QACE,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,CAAC,IAAI,CAAC;KAClB;IACD;QACE,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;KAC1B;IACD;QACE,MAAM,EAAE,OAAO;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;KAC1B;IACD;QACE,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,WAAW;QACnB,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;KACjE;IACD;QACE,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,CAAC,IAAI,CAAC;KAClB;CACF,CAAC;AAIK,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,cAAc;IAExC,AAAN,KAAK,CAAC,IAAI,CACN,UAA0B,EAC1B,KAAgB,EAQzB,OAAkB,EAElB,MAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE;aAC/B,QAAQ,CAAC,OAAO,CAAC;aACjB,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;aAC7B,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,UAAU,EAAE,IAAI,CAAC;aAC1C,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC;aACnE,MAAM,CAAC,MAAM,CAAC,CAAC;QAElB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QAExD,OAAO,IAAI,EAAE,CACX,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;YACzC,cAAc,EAAE,KAAK;SACtB,CAAC,CAAC,EACH;YACE,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,eAAe;oBACrB,KAAK,EAAE,KAAK;iBACb;aACF;SACF,CACF,CAAC;IACJ,CAAC;CAkCF,CAAA;AAtEc;IADZ,GAAG,CAAC,GAAG,CAAC;IAEN,WAAA,KAAK,EAAE,CAAA;IACP,WAAA,KAAK,EAAE,CAAA;IACP,WAAA,KAAK,CAAC;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,UAAU,CAAC;SACnB;KACF,CAAC,CAAA;IAED,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;;qCAVE,aAAa;QAClB,QAAQ;;+CAkC1B;AAtCU,mBAAmB;IAF/B,QAAQ,CAAC,OAAO,CAAC;IACjB,MAAM,CAAC,gBAAgB,CAAC;GACZ,mBAAmB,CAwE/B"}