@ackplus/nest-auth 1.1.67 → 1.1.69-beta.2

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 (199) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/admin-console/admin-console.module.d.ts.map +1 -1
  6. package/dist/lib/admin-console/admin-console.module.js +4 -1
  7. package/dist/lib/admin-console/admin-console.module.js.map +1 -1
  8. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts +12 -9
  9. package/dist/lib/admin-console/controllers/admin-users.controller.d.ts.map +1 -1
  10. package/dist/lib/admin-console/controllers/admin-users.controller.js +52 -22
  11. package/dist/lib/admin-console/controllers/admin-users.controller.js.map +1 -1
  12. package/dist/lib/admin-console/dto/admin-user.dto.d.ts +3 -6
  13. package/dist/lib/admin-console/dto/admin-user.dto.d.ts.map +1 -1
  14. package/dist/lib/admin-console/dto/admin-user.dto.js +12 -33
  15. package/dist/lib/admin-console/dto/admin-user.dto.js.map +1 -1
  16. package/dist/lib/admin-console/entities/admin-user.entity.d.ts.map +1 -1
  17. package/dist/lib/admin-console/entities/admin-user.entity.js +3 -2
  18. package/dist/lib/admin-console/entities/admin-user.entity.js.map +1 -1
  19. package/dist/lib/admin-console/services/admin-user-management.service.d.ts +14 -0
  20. package/dist/lib/admin-console/services/admin-user-management.service.d.ts.map +1 -0
  21. package/dist/lib/admin-console/services/admin-user-management.service.js +135 -0
  22. package/dist/lib/admin-console/services/admin-user-management.service.js.map +1 -0
  23. package/dist/lib/admin-console/static/index.html +216 -216
  24. package/dist/lib/admin-console/static/nest-auth.json +60 -1
  25. package/dist/lib/auth/controllers/auth.controller.d.ts +3 -1
  26. package/dist/lib/auth/controllers/auth.controller.d.ts.map +1 -1
  27. package/dist/lib/auth/controllers/auth.controller.js +25 -4
  28. package/dist/lib/auth/controllers/auth.controller.js.map +1 -1
  29. package/dist/lib/auth/controllers/mfa.controller.d.ts +0 -1
  30. package/dist/lib/auth/controllers/mfa.controller.d.ts.map +1 -1
  31. package/dist/lib/auth/controllers/mfa.controller.js +31 -14
  32. package/dist/lib/auth/controllers/mfa.controller.js.map +1 -1
  33. package/dist/lib/auth/dto/requests/switch-tenant.request.dto.d.ts +5 -0
  34. package/dist/lib/auth/dto/requests/switch-tenant.request.dto.d.ts.map +1 -0
  35. package/dist/lib/auth/dto/requests/switch-tenant.request.dto.js +27 -0
  36. package/dist/lib/auth/dto/requests/switch-tenant.request.dto.js.map +1 -0
  37. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts +3 -1
  38. package/dist/lib/auth/dto/responses/auth.response.dto.d.ts.map +1 -1
  39. package/dist/lib/auth/dto/responses/auth.response.dto.js +16 -0
  40. package/dist/lib/auth/dto/responses/auth.response.dto.js.map +1 -1
  41. package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts +2 -3
  42. package/dist/lib/auth/dto/responses/client-config.response.dto.d.ts.map +1 -1
  43. package/dist/lib/auth/dto/responses/client-config.response.dto.js +2 -6
  44. package/dist/lib/auth/dto/responses/client-config.response.dto.js.map +1 -1
  45. package/dist/lib/auth/guards/auth.guard.d.ts +1 -4
  46. package/dist/lib/auth/guards/auth.guard.d.ts.map +1 -1
  47. package/dist/lib/auth/guards/auth.guard.js +6 -16
  48. package/dist/lib/auth/guards/auth.guard.js.map +1 -1
  49. package/dist/lib/auth/index.d.ts +1 -0
  50. package/dist/lib/auth/index.d.ts.map +1 -1
  51. package/dist/lib/auth/index.js +1 -0
  52. package/dist/lib/auth/index.js.map +1 -1
  53. package/dist/lib/auth/services/auth.service.d.ts +8 -2
  54. package/dist/lib/auth/services/auth.service.d.ts.map +1 -1
  55. package/dist/lib/auth/services/auth.service.js +114 -43
  56. package/dist/lib/auth/services/auth.service.js.map +1 -1
  57. package/dist/lib/auth/services/mfa.service.d.ts.map +1 -1
  58. package/dist/lib/auth/services/mfa.service.js +2 -1
  59. package/dist/lib/auth/services/mfa.service.js.map +1 -1
  60. package/dist/lib/auth/services/password.service.d.ts.map +1 -1
  61. package/dist/lib/auth/services/password.service.js +7 -8
  62. package/dist/lib/auth/services/password.service.js.map +1 -1
  63. package/dist/lib/auth/services/verification.service.js +8 -8
  64. package/dist/lib/auth/services/verification.service.js.map +1 -1
  65. package/dist/lib/auth.constants.d.ts +1 -0
  66. package/dist/lib/auth.constants.d.ts.map +1 -1
  67. package/dist/lib/auth.constants.js +2 -1
  68. package/dist/lib/auth.constants.js.map +1 -1
  69. package/dist/lib/core/core.module.d.ts.map +1 -1
  70. package/dist/lib/core/core.module.js +0 -3
  71. package/dist/lib/core/core.module.js.map +1 -1
  72. package/dist/lib/core/entities.d.ts +3 -1
  73. package/dist/lib/core/entities.d.ts.map +1 -1
  74. package/dist/lib/core/entities.js +3 -0
  75. package/dist/lib/core/entities.js.map +1 -1
  76. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts +3 -2
  77. package/dist/lib/core/interfaces/auth-module-options.interface.d.ts.map +1 -1
  78. package/dist/lib/core/interfaces/token-payload.interface.d.ts +1 -0
  79. package/dist/lib/core/interfaces/token-payload.interface.d.ts.map +1 -1
  80. package/dist/lib/core/providers/email-auth.provider.d.ts +0 -2
  81. package/dist/lib/core/providers/email-auth.provider.d.ts.map +1 -1
  82. package/dist/lib/core/providers/email-auth.provider.js +8 -16
  83. package/dist/lib/core/providers/email-auth.provider.js.map +1 -1
  84. package/dist/lib/core/providers/phone-auth.provider.d.ts +2 -0
  85. package/dist/lib/core/providers/phone-auth.provider.d.ts.map +1 -1
  86. package/dist/lib/core/providers/phone-auth.provider.js +14 -0
  87. package/dist/lib/core/providers/phone-auth.provider.js.map +1 -1
  88. package/dist/lib/core/services/auth-config.service.d.ts.map +1 -1
  89. package/dist/lib/core/services/auth-config.service.js +4 -1
  90. package/dist/lib/core/services/auth-config.service.js.map +1 -1
  91. package/dist/lib/core/services/jwt.service.d.ts +1 -0
  92. package/dist/lib/core/services/jwt.service.d.ts.map +1 -1
  93. package/dist/lib/core/services/jwt.service.js.map +1 -1
  94. package/dist/lib/nest-auth.module.d.ts.map +1 -1
  95. package/dist/lib/nest-auth.module.js.map +1 -1
  96. package/dist/lib/request-context/request-context.d.ts +9 -2
  97. package/dist/lib/request-context/request-context.d.ts.map +1 -1
  98. package/dist/lib/request-context/request-context.js +41 -1
  99. package/dist/lib/request-context/request-context.js.map +1 -1
  100. package/dist/lib/role/entities/role.entity.d.ts +2 -0
  101. package/dist/lib/role/entities/role.entity.d.ts.map +1 -1
  102. package/dist/lib/role/entities/role.entity.js +25 -11
  103. package/dist/lib/role/entities/role.entity.js.map +1 -1
  104. package/dist/lib/role/services/role.service.d.ts.map +1 -1
  105. package/dist/lib/role/services/role.service.js +0 -17
  106. package/dist/lib/role/services/role.service.js.map +1 -1
  107. package/dist/lib/session/services/session-manager.service.d.ts +1 -0
  108. package/dist/lib/session/services/session-manager.service.d.ts.map +1 -1
  109. package/dist/lib/session/services/session-manager.service.js +4 -3
  110. package/dist/lib/session/services/session-manager.service.js.map +1 -1
  111. package/dist/lib/session/utils/session.util.d.ts.map +1 -1
  112. package/dist/lib/session/utils/session.util.js.map +1 -1
  113. package/dist/lib/tenant/decorators/current-tenant.decorator.d.ts +3 -0
  114. package/dist/lib/tenant/decorators/current-tenant.decorator.d.ts.map +1 -0
  115. package/dist/lib/tenant/decorators/current-tenant.decorator.js +10 -0
  116. package/dist/lib/tenant/decorators/current-tenant.decorator.js.map +1 -0
  117. package/dist/lib/tenant/decorators/current-user-access.decorator.d.ts +3 -0
  118. package/dist/lib/tenant/decorators/current-user-access.decorator.d.ts.map +1 -0
  119. package/dist/lib/tenant/decorators/current-user-access.decorator.js +10 -0
  120. package/dist/lib/tenant/decorators/current-user-access.decorator.js.map +1 -0
  121. package/dist/lib/tenant/entities/tenant.entity.d.ts +2 -1
  122. package/dist/lib/tenant/entities/tenant.entity.d.ts.map +1 -1
  123. package/dist/lib/tenant/entities/tenant.entity.js +5 -4
  124. package/dist/lib/tenant/entities/tenant.entity.js.map +1 -1
  125. package/dist/lib/tenant/entities/user-access.entity.d.ts +19 -0
  126. package/dist/lib/tenant/entities/user-access.entity.d.ts.map +1 -0
  127. package/dist/lib/tenant/entities/user-access.entity.js +100 -0
  128. package/dist/lib/tenant/entities/user-access.entity.js.map +1 -0
  129. package/dist/lib/tenant/index.d.ts +4 -0
  130. package/dist/lib/tenant/index.d.ts.map +1 -1
  131. package/dist/lib/tenant/index.js +8 -1
  132. package/dist/lib/tenant/index.js.map +1 -1
  133. package/dist/lib/tenant/services/tenant.service.d.ts +4 -9
  134. package/dist/lib/tenant/services/tenant.service.d.ts.map +1 -1
  135. package/dist/lib/tenant/services/tenant.service.js +23 -72
  136. package/dist/lib/tenant/services/tenant.service.js.map +1 -1
  137. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts +13 -0
  138. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.d.ts.map +1 -0
  139. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.js +26 -0
  140. package/dist/lib/tenant/tenant-context/services/base-tenant-context.service.js.map +1 -0
  141. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts +10 -0
  142. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.d.ts.map +1 -0
  143. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.js +29 -0
  144. package/dist/lib/tenant/tenant-context/services/disabled-tenant-context.service.js.map +1 -0
  145. package/dist/lib/tenant/tenant-context/services/isolated-tenant-context.service.d.ts +6 -0
  146. package/dist/lib/tenant/tenant-context/services/isolated-tenant-context.service.d.ts.map +1 -0
  147. package/dist/lib/tenant/tenant-context/services/isolated-tenant-context.service.js +26 -0
  148. package/dist/lib/tenant/tenant-context/services/isolated-tenant-context.service.js.map +1 -0
  149. package/dist/lib/tenant/tenant-context/services/shared-tenant-context.service.d.ts +6 -0
  150. package/dist/lib/tenant/tenant-context/services/shared-tenant-context.service.d.ts.map +1 -0
  151. package/dist/lib/tenant/tenant-context/services/shared-tenant-context.service.js +26 -0
  152. package/dist/lib/tenant/tenant-context/services/shared-tenant-context.service.js.map +1 -0
  153. package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts +9 -0
  154. package/dist/lib/tenant/tenant-context/tenant-context.interface.d.ts.map +1 -0
  155. package/dist/lib/tenant/tenant-context/tenant-context.interface.js +3 -0
  156. package/dist/lib/tenant/tenant-context/tenant-context.interface.js.map +1 -0
  157. package/dist/lib/tenant/tenant.module.d.ts.map +1 -1
  158. package/dist/lib/tenant/tenant.module.js +25 -0
  159. package/dist/lib/tenant/tenant.module.js.map +1 -1
  160. package/dist/lib/user/entities/user.entity.d.ts +8 -15
  161. package/dist/lib/user/entities/user.entity.d.ts.map +1 -1
  162. package/dist/lib/user/entities/user.entity.js +77 -66
  163. package/dist/lib/user/entities/user.entity.js.map +1 -1
  164. package/dist/lib/user/events/user-deleted.event.d.ts +0 -1
  165. package/dist/lib/user/events/user-deleted.event.d.ts.map +1 -1
  166. package/dist/lib/user/events/user-deleted.event.js.map +1 -1
  167. package/dist/lib/user/events/user-updated.event.d.ts +0 -1
  168. package/dist/lib/user/events/user-updated.event.d.ts.map +1 -1
  169. package/dist/lib/user/events/user-updated.event.js.map +1 -1
  170. package/dist/lib/user/services/access-key.service.d.ts.map +1 -1
  171. package/dist/lib/user/services/access-key.service.js.map +1 -1
  172. package/dist/lib/user/services/user.service.d.ts +11 -3
  173. package/dist/lib/user/services/user.service.d.ts.map +1 -1
  174. package/dist/lib/user/services/user.service.js +159 -58
  175. package/dist/lib/user/services/user.service.js.map +1 -1
  176. package/dist/lib/user/user.module.d.ts.map +1 -1
  177. package/dist/lib/user/user.module.js +2 -1
  178. package/dist/lib/user/user.module.js.map +1 -1
  179. package/dist/lib/utils/database.utils.d.ts +1 -0
  180. package/dist/lib/utils/database.utils.d.ts.map +1 -1
  181. package/dist/lib/utils/database.utils.js +12 -0
  182. package/dist/lib/utils/database.utils.js.map +1 -1
  183. package/dist/lib/utils/index.d.ts +1 -0
  184. package/dist/lib/utils/index.d.ts.map +1 -1
  185. package/dist/lib/utils/index.js +1 -0
  186. package/dist/lib/utils/index.js.map +1 -1
  187. package/dist/lib/utils/normalize.util.d.ts +3 -0
  188. package/dist/lib/utils/normalize.util.d.ts.map +1 -0
  189. package/dist/lib/utils/normalize.util.js +17 -0
  190. package/dist/lib/utils/normalize.util.js.map +1 -0
  191. package/package.json +2 -2
  192. package/dist/lib/auth/filters/index.d.ts +0 -2
  193. package/dist/lib/auth/filters/index.d.ts.map +0 -1
  194. package/dist/lib/auth/filters/index.js +0 -18
  195. package/dist/lib/auth/filters/index.js.map +0 -1
  196. package/dist/lib/core/services/initialization.service.d.ts +0 -11
  197. package/dist/lib/core/services/initialization.service.d.ts.map +0 -1
  198. package/dist/lib/core/services/initialization.service.js +0 -44
  199. package/dist/lib/core/services/initialization.service.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-user-management.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/admin-console/services/admin-user-management.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAS9E,qBACa,0BAA0B;IAGnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAFjB,oBAAoB,EAAE,UAAU,CAAC,kBAAkB,CAAC,EACpD,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB;IAGvD,OAAO,CAAC,aAAa;YAMP,gBAAgB;IA8BxB,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAqFjC"}
@@ -0,0 +1,135 @@
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.AdminUserManagementService = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const typeorm_1 = require("@nestjs/typeorm");
18
+ const typeorm_2 = require("typeorm");
19
+ const tenant_service_1 = require("../../tenant/services/tenant.service");
20
+ const auth_config_service_1 = require("../../core/services/auth-config.service");
21
+ const user_access_entity_1 = require("../../tenant/entities/user-access.entity");
22
+ const nest_auth_contracts_1 = require("@ackplus/nest-auth-contracts");
23
+ let AdminUserManagementService = class AdminUserManagementService {
24
+ userAccessRepository;
25
+ tenantService;
26
+ authConfigService;
27
+ constructor(userAccessRepository, tenantService, authConfigService) {
28
+ this.userAccessRepository = userAccessRepository;
29
+ this.tenantService = tenantService;
30
+ this.authConfigService = authConfigService;
31
+ }
32
+ getTenantMode() {
33
+ const config = this.authConfigService.getConfig();
34
+ const mode = config.tenant?.mode;
35
+ return mode === nest_auth_contracts_1.TenantModeEnum.SHARED ? nest_auth_contracts_1.TenantModeEnum.SHARED : nest_auth_contracts_1.TenantModeEnum.ISOLATED;
36
+ }
37
+ async ensureUserAccess(userId, tenantId) {
38
+ if (!userId || !tenantId) {
39
+ return null;
40
+ }
41
+ const existing = await this.userAccessRepository.findOne({
42
+ where: { userId, tenantId },
43
+ });
44
+ if (existing) {
45
+ if (!existing.isActive) {
46
+ existing.isActive = true;
47
+ await this.userAccessRepository.save(existing);
48
+ }
49
+ return existing;
50
+ }
51
+ const access = this.userAccessRepository.create({
52
+ userId,
53
+ tenantId,
54
+ });
55
+ return await this.userAccessRepository.save(access);
56
+ }
57
+ async syncUserAccesses(userId, tenantIds) {
58
+ if (!userId) {
59
+ return [];
60
+ }
61
+ const tenantMode = this.getTenantMode();
62
+ if (tenantMode === nest_auth_contracts_1.TenantModeEnum.ISOLATED) {
63
+ if (tenantIds?.length) {
64
+ const resolvedTenantId = await this.tenantService.resolveTenantId(tenantIds[0]);
65
+ if (resolvedTenantId) {
66
+ const existing = await this.userAccessRepository.find({ where: { userId } });
67
+ const toDeactivate = existing.filter((a) => a.tenantId !== resolvedTenantId && a.isActive);
68
+ if (toDeactivate.length) {
69
+ toDeactivate.forEach((a) => { a.isActive = false; });
70
+ await this.userAccessRepository.save(toDeactivate);
71
+ }
72
+ await this.ensureUserAccess(userId, resolvedTenantId);
73
+ return this.userAccessRepository.find({
74
+ where: { userId, isActive: true },
75
+ relations: ['tenant'],
76
+ });
77
+ }
78
+ }
79
+ return [];
80
+ }
81
+ const resolvedTenantIds = (await Promise.all((tenantIds || [])
82
+ .map((id) => (id ? id.trim() : ''))
83
+ .filter(Boolean)
84
+ .map((id) => this.tenantService.resolveTenantId(id)))).filter(Boolean);
85
+ if (resolvedTenantIds.length === 0) {
86
+ const existingList = await this.userAccessRepository.find({ where: { userId } });
87
+ const updates = existingList
88
+ .filter((a) => a.isActive)
89
+ .map((a) => {
90
+ a.isActive = false;
91
+ return a;
92
+ });
93
+ if (updates.length) {
94
+ await this.userAccessRepository.save(updates);
95
+ }
96
+ return [];
97
+ }
98
+ const existingList = await this.userAccessRepository.find({ where: { userId } });
99
+ const accessByTenant = new Map(existingList.map((a) => [a.tenantId, a]));
100
+ const tenantIdSet = new Set(resolvedTenantIds);
101
+ const updates = [];
102
+ for (const access of existingList) {
103
+ const shouldBeActive = tenantIdSet.has(access.tenantId);
104
+ if (access.isActive !== shouldBeActive) {
105
+ access.isActive = shouldBeActive;
106
+ updates.push(access);
107
+ }
108
+ }
109
+ for (const tenantId of resolvedTenantIds) {
110
+ if (!accessByTenant.has(tenantId)) {
111
+ updates.push(this.userAccessRepository.create({
112
+ userId,
113
+ tenantId,
114
+ isActive: true,
115
+ }));
116
+ }
117
+ }
118
+ if (updates.length) {
119
+ await this.userAccessRepository.save(updates);
120
+ }
121
+ return this.userAccessRepository.find({
122
+ where: { userId, isActive: true },
123
+ relations: ['tenant'],
124
+ });
125
+ }
126
+ };
127
+ exports.AdminUserManagementService = AdminUserManagementService;
128
+ exports.AdminUserManagementService = AdminUserManagementService = __decorate([
129
+ (0, common_1.Injectable)(),
130
+ __param(0, (0, typeorm_1.InjectRepository)(user_access_entity_1.NestAuthUserAccess)),
131
+ __metadata("design:paramtypes", [typeorm_2.Repository,
132
+ tenant_service_1.TenantService,
133
+ auth_config_service_1.AuthConfigService])
134
+ ], AdminUserManagementService);
135
+ //# sourceMappingURL=admin-user-management.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-user-management.service.js","sourceRoot":"","sources":["../../../../src/lib/admin-console/services/admin-user-management.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,yEAAqE;AACrE,iFAA4E;AAC5E,iFAA8E;AAC9E,sEAA8D;AASvD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAGlB;IACA;IACA;IAJnB,YAEmB,oBAAoD,EACpD,aAA4B,EAC5B,iBAAoC;QAFpC,yBAAoB,GAApB,oBAAoB,CAAgC;QACpD,kBAAa,GAAb,aAAa,CAAe;QAC5B,sBAAiB,GAAjB,iBAAiB,CAAmB;IACnD,CAAC;IAEG,aAAa;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;QACjC,OAAO,IAAI,KAAK,oCAAc,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAc,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAc,CAAC,QAAQ,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,MAAc,EACd,QAAgB;QAEhB,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YACvD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC5B,CAAC,CAAC;QAEH,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACvB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACzB,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC9C,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IAOD,KAAK,CAAC,gBAAgB,CACpB,MAAc,EACd,SAAmB;QAEnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,IAAI,UAAU,KAAK,oCAAc,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;gBACtB,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC7E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,gBAAgB,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC3F,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;wBACxB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACrD,CAAC;oBACD,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;oBACtD,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;wBACpC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;wBACjC,SAAS,EAAE,CAAC,QAAQ,CAAC;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,iBAAiB,GAAG,CACxB,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,SAAS,IAAI,EAAE,CAAC;aACd,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CACvD,CACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,YAAY;iBACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACT,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACnB,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;YACL,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAyB,EAAE,CAAC;QAEzC,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxD,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;gBACvC,MAAM,CAAC,QAAQ,GAAG,cAAc,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CACV,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;oBAC/B,MAAM;oBACN,QAAQ;oBACR,QAAQ,EAAE,IAAI;iBACf,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACjC,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AApIY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,uCAAkB,CAAC,CAAA;qCACE,oBAAU;QACjB,8BAAa;QACT,uCAAiB;GAL5C,0BAA0B,CAoItC"}