@acorex-platform/module-security-management-server 0.0.15 → 2.0.0-next.42

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 (453) hide show
  1. package/contracts/src/AXM_USER_ACCESS_STATE_DEFINITION_KEY.js.map +1 -1
  2. package/contracts/src/AXM_USER_EFFECTIVE_STATE_DEFINITION_KEY.js.map +1 -1
  3. package/contracts/src/ROLE_PERMISSIONS_PAGE_COMPONENT_KEY.d.ts +2 -0
  4. package/contracts/src/ROLE_PERMISSIONS_PAGE_COMPONENT_KEY.js +6 -0
  5. package/contracts/src/ROLE_PERMISSIONS_PAGE_COMPONENT_KEY.js.map +1 -0
  6. package/contracts/src/USER_ROLES_PAGE_COMPONENT_KEY.d.ts +1 -0
  7. package/contracts/src/USER_ROLES_PAGE_COMPONENT_KEY.js +5 -0
  8. package/contracts/src/USER_ROLES_PAGE_COMPONENT_KEY.js.map +1 -0
  9. package/contracts/src/create-application-role-rows.util.d.ts +15 -0
  10. package/contracts/src/create-application-role-rows.util.js +67 -0
  11. package/contracts/src/create-application-role-rows.util.js.map +1 -0
  12. package/contracts/src/device-session-admin-scope.d.ts +15 -0
  13. package/contracts/src/device-session-admin-scope.js +16 -0
  14. package/contracts/src/device-session-admin-scope.js.map +1 -0
  15. package/contracts/src/entities/device-sessions/device-sessions.entity.js +50 -1
  16. package/contracts/src/entities/device-sessions/device-sessions.entity.js.map +1 -1
  17. package/contracts/src/entities/device-sessions/device-sessions.types.d.ts +7 -0
  18. package/contracts/src/entities/device-sessions/device-sessions.types.js.map +1 -1
  19. package/contracts/src/entities/device-sessions/index.d.ts +0 -1
  20. package/contracts/src/entities/device-sessions/index.js +0 -1
  21. package/contracts/src/entities/device-sessions/index.js.map +1 -1
  22. package/contracts/src/entities/identity-provider/identity-provider.entity.d.ts +2 -0
  23. package/contracts/src/entities/identity-provider/identity-provider.entity.js +453 -0
  24. package/contracts/src/entities/identity-provider/identity-provider.entity.js.map +1 -0
  25. package/contracts/src/entities/identity-provider/identity-provider.types.d.ts +61 -0
  26. package/contracts/src/entities/identity-provider/identity-provider.types.js +14 -0
  27. package/contracts/src/entities/identity-provider/identity-provider.types.js.map +1 -0
  28. package/contracts/src/entities/identity-provider/index.d.ts +1 -0
  29. package/contracts/src/entities/identity-provider/index.js +5 -0
  30. package/contracts/src/entities/identity-provider/index.js.map +1 -0
  31. package/contracts/src/entities/index.d.ts +4 -0
  32. package/contracts/src/entities/index.js +4 -0
  33. package/contracts/src/entities/index.js.map +1 -1
  34. package/contracts/src/entities/policy/index.d.ts +0 -1
  35. package/contracts/src/entities/policy/index.js +0 -1
  36. package/contracts/src/entities/policy/index.js.map +1 -1
  37. package/contracts/src/entities/policy/policy.entity.js +15 -0
  38. package/contracts/src/entities/policy/policy.entity.js.map +1 -1
  39. package/contracts/src/entities/policy/policy.types.js.map +1 -1
  40. package/contracts/src/entities/profile/index.d.ts +0 -1
  41. package/contracts/src/entities/profile/index.js +0 -1
  42. package/contracts/src/entities/profile/index.js.map +1 -1
  43. package/contracts/src/entities/profile/profile.entity.js +15 -0
  44. package/contracts/src/entities/profile/profile.entity.js.map +1 -1
  45. package/contracts/src/entities/profile/profile.types.js.map +1 -1
  46. package/contracts/src/entities/role-permission/index.d.ts +1 -0
  47. package/contracts/src/entities/role-permission/index.js +5 -0
  48. package/contracts/src/entities/role-permission/index.js.map +1 -0
  49. package/contracts/src/entities/role-permission/role-permission.entity.d.ts +2 -0
  50. package/contracts/src/entities/role-permission/role-permission.entity.js +163 -0
  51. package/contracts/src/entities/role-permission/role-permission.entity.js.map +1 -0
  52. package/contracts/src/entities/role-permission/role-permission.types.d.ts +11 -0
  53. package/contracts/src/entities/role-permission/role-permission.types.js +5 -0
  54. package/contracts/src/entities/role-permission/role-permission.types.js.map +1 -0
  55. package/contracts/src/entities/roles/index.d.ts +0 -1
  56. package/contracts/src/entities/roles/index.js +0 -1
  57. package/contracts/src/entities/roles/index.js.map +1 -1
  58. package/contracts/src/entities/roles/roles.entity.js +73 -144
  59. package/contracts/src/entities/roles/roles.entity.js.map +1 -1
  60. package/contracts/src/entities/roles/roles.types.d.ts +4 -1
  61. package/contracts/src/entities/roles/roles.types.js.map +1 -1
  62. package/contracts/src/entities/user-role/index.d.ts +1 -0
  63. package/{src/lib/seed/tenant → contracts/src/entities/user-role}/index.js +1 -1
  64. package/contracts/src/entities/user-role/index.js.map +1 -0
  65. package/contracts/src/entities/user-role/user-role.entity.d.ts +2 -0
  66. package/contracts/src/entities/user-role/user-role.entity.js +164 -0
  67. package/contracts/src/entities/user-role/user-role.entity.js.map +1 -0
  68. package/contracts/src/entities/user-role/user-role.types.d.ts +11 -0
  69. package/contracts/src/entities/user-role/user-role.types.js +5 -0
  70. package/contracts/src/entities/user-role/user-role.types.js.map +1 -0
  71. package/contracts/src/entities/user-two-factor/index.d.ts +2 -0
  72. package/contracts/src/entities/user-two-factor/index.js +8 -0
  73. package/contracts/src/entities/user-two-factor/index.js.map +1 -0
  74. package/contracts/src/entities/user-two-factor/user-two-factor.entity.d.ts +6 -0
  75. package/contracts/src/entities/user-two-factor/user-two-factor.entity.js +103 -0
  76. package/contracts/src/entities/user-two-factor/user-two-factor.entity.js.map +1 -0
  77. package/contracts/src/entities/user-two-factor/user-two-factor.types.d.ts +24 -0
  78. package/contracts/src/entities/user-two-factor/user-two-factor.types.js +4 -0
  79. package/contracts/src/entities/user-two-factor/user-two-factor.types.js.map +1 -0
  80. package/contracts/src/entities/users/index.d.ts +1 -1
  81. package/contracts/src/entities/users/index.js +1 -1
  82. package/contracts/src/entities/users/index.js.map +1 -1
  83. package/contracts/src/entities/users/user-provisioning-list-actions.d.ts +8 -0
  84. package/contracts/src/entities/users/user-provisioning-list-actions.js +95 -0
  85. package/contracts/src/entities/users/user-provisioning-list-actions.js.map +1 -0
  86. package/contracts/src/entities/users/users.entity.js +341 -283
  87. package/contracts/src/entities/users/users.entity.js.map +1 -1
  88. package/contracts/src/entities/users/users.types.d.ts +24 -1
  89. package/contracts/src/entities/users/users.types.js.map +1 -1
  90. package/contracts/src/entity-catalog.d.ts +7 -0
  91. package/contracts/src/entity-catalog.js +28 -0
  92. package/contracts/src/entity-catalog.js.map +1 -0
  93. package/contracts/src/entity-entry.device-sessions.d.ts +1 -0
  94. package/contracts/src/entity-entry.device-sessions.js +6 -0
  95. package/contracts/src/entity-entry.device-sessions.js.map +1 -0
  96. package/contracts/src/entity-entry.identity-provider.d.ts +1 -0
  97. package/contracts/src/entity-entry.identity-provider.js +6 -0
  98. package/contracts/src/entity-entry.identity-provider.js.map +1 -0
  99. package/contracts/src/entity-entry.policy.d.ts +1 -0
  100. package/contracts/src/entity-entry.policy.js +6 -0
  101. package/contracts/src/entity-entry.policy.js.map +1 -0
  102. package/contracts/src/entity-entry.profile.d.ts +1 -0
  103. package/contracts/src/entity-entry.profile.js +6 -0
  104. package/contracts/src/entity-entry.profile.js.map +1 -0
  105. package/contracts/src/entity-entry.role-permission.d.ts +1 -0
  106. package/contracts/src/entity-entry.role-permission.js +6 -0
  107. package/contracts/src/entity-entry.role-permission.js.map +1 -0
  108. package/contracts/src/entity-entry.roles.d.ts +1 -0
  109. package/contracts/src/entity-entry.roles.js +6 -0
  110. package/contracts/src/entity-entry.roles.js.map +1 -0
  111. package/contracts/src/entity-entry.user-role.d.ts +1 -0
  112. package/contracts/src/entity-entry.user-role.js +6 -0
  113. package/contracts/src/entity-entry.user-role.js.map +1 -0
  114. package/contracts/src/entity-entry.user-two-factor.d.ts +1 -0
  115. package/contracts/src/entity-entry.user-two-factor.js +6 -0
  116. package/contracts/src/entity-entry.user-two-factor.js.map +1 -0
  117. package/contracts/src/entity-entry.users.d.ts +1 -0
  118. package/contracts/src/entity-entry.users.js +6 -0
  119. package/contracts/src/entity-entry.users.js.map +1 -0
  120. package/contracts/src/features.keys.d.ts +4 -0
  121. package/contracts/src/features.keys.js +4 -0
  122. package/contracts/src/features.keys.js.map +1 -1
  123. package/contracts/src/index.d.ts +13 -1
  124. package/contracts/src/index.js +13 -1
  125. package/contracts/src/index.js.map +1 -1
  126. package/contracts/src/invite-application-role-rows.util.d.ts +16 -0
  127. package/contracts/src/invite-application-role-rows.util.js +68 -0
  128. package/contracts/src/invite-application-role-rows.util.js.map +1 -0
  129. package/contracts/src/invite-assignable-roles.util.d.ts +34 -0
  130. package/contracts/src/invite-assignable-roles.util.js +75 -0
  131. package/contracts/src/invite-assignable-roles.util.js.map +1 -0
  132. package/contracts/src/lib/context.definitions.d.ts +2 -0
  133. package/contracts/src/lib/context.definitions.js +15 -0
  134. package/contracts/src/lib/context.definitions.js.map +1 -0
  135. package/contracts/src/manifest.d.ts +6 -0
  136. package/contracts/src/manifest.js +24 -0
  137. package/contracts/src/manifest.js.map +1 -0
  138. package/contracts/src/menu.keys.d.ts +1 -0
  139. package/contracts/src/menu.keys.js +1 -0
  140. package/contracts/src/menu.keys.js.map +1 -1
  141. package/contracts/src/permission.keys.d.ts +48 -18
  142. package/contracts/src/permission.keys.js +49 -21
  143. package/contracts/src/permission.keys.js.map +1 -1
  144. package/contracts/src/resolve-user-effective-state.d.ts +10 -0
  145. package/contracts/src/resolve-user-effective-state.js +46 -0
  146. package/contracts/src/resolve-user-effective-state.js.map +1 -0
  147. package/contracts/src/root-config.d.ts +33 -0
  148. package/contracts/src/root-config.js +33 -0
  149. package/contracts/src/root-config.js.map +1 -1
  150. package/contracts/src/server-commands.d.ts +340 -0
  151. package/contracts/src/server-commands.js +88 -0
  152. package/contracts/src/server-commands.js.map +1 -0
  153. package/contracts/src/settings.keys.d.ts +16 -0
  154. package/contracts/src/settings.keys.js +21 -0
  155. package/contracts/src/settings.keys.js.map +1 -0
  156. package/contracts/src/user-access-state.js.map +1 -1
  157. package/contracts/src/user-effective-state.js.map +1 -1
  158. package/contracts/src/user-invitation.d.ts +41 -0
  159. package/contracts/src/user-invitation.js +18 -0
  160. package/contracts/src/user-invitation.js.map +1 -0
  161. package/contracts/src/user-password-reset.d.ts +9 -0
  162. package/contracts/src/user-password-reset.js +5 -0
  163. package/contracts/src/user-password-reset.js.map +1 -0
  164. package/package.json +16 -11
  165. package/server/src/index.d.ts +3 -0
  166. package/server/src/index.js +11 -0
  167. package/server/src/index.js.map +1 -0
  168. package/server/src/lib/effective-access-history/effective-access-history.service.d.ts +35 -0
  169. package/server/src/lib/effective-access-history/effective-access-history.service.js +486 -0
  170. package/server/src/lib/effective-access-history/effective-access-history.service.js.map +1 -0
  171. package/server/src/lib/effective-access-history/effective-access-history.types.d.ts +64 -0
  172. package/server/src/lib/effective-access-history/effective-access-history.types.js +5 -0
  173. package/server/src/lib/effective-access-history/effective-access-history.types.js.map +1 -0
  174. package/server/src/lib/effective-access-history/version-as-of.util.d.ts +37 -0
  175. package/server/src/lib/effective-access-history/version-as-of.util.js +167 -0
  176. package/server/src/lib/effective-access-history/version-as-of.util.js.map +1 -0
  177. package/server/src/lib/entities/index.d.ts +1 -0
  178. package/server/src/lib/entities/index.js +5 -0
  179. package/{src/lib/seed/tenant → server/src/lib/entities}/index.js.map +1 -1
  180. package/server/src/lib/entities/security-management.entity-catalog.d.ts +1 -0
  181. package/server/src/lib/entities/security-management.entity-catalog.js +12 -0
  182. package/server/src/lib/entities/security-management.entity-catalog.js.map +1 -0
  183. package/server/src/lib/handlers/security-report.handlers.d.ts +36 -0
  184. package/server/src/lib/handlers/security-report.handlers.js +164 -0
  185. package/server/src/lib/handlers/security-report.handlers.js.map +1 -0
  186. package/server/src/lib/identity-provider/auth-oauth-clients.constants.d.ts +5 -0
  187. package/server/src/lib/identity-provider/auth-oauth-clients.constants.js +11 -0
  188. package/server/src/lib/identity-provider/auth-oauth-clients.constants.js.map +1 -0
  189. package/server/src/lib/identity-provider/identity-provider-catalog.service.d.ts +20 -0
  190. package/server/src/lib/identity-provider/identity-provider-catalog.service.js +169 -0
  191. package/server/src/lib/identity-provider/identity-provider-catalog.service.js.map +1 -0
  192. package/server/src/lib/identity-provider/identity-provider-ids.constants.d.ts +8 -0
  193. package/server/src/lib/identity-provider/identity-provider-ids.constants.js +19 -0
  194. package/server/src/lib/identity-provider/identity-provider-ids.constants.js.map +1 -0
  195. package/server/src/lib/identity-provider/identity-provider-stub.bootstrap.d.ts +12 -0
  196. package/server/src/lib/identity-provider/identity-provider-stub.bootstrap.js +48 -0
  197. package/server/src/lib/identity-provider/identity-provider-stub.bootstrap.js.map +1 -0
  198. package/server/src/lib/identity-provider/identity-provider.constants.d.ts +1 -0
  199. package/server/src/lib/identity-provider/identity-provider.constants.js +7 -0
  200. package/server/src/lib/identity-provider/identity-provider.constants.js.map +1 -0
  201. package/server/src/lib/middlewares/device-sessions-active.middleware.d.ts +15 -0
  202. package/server/src/lib/middlewares/device-sessions-active.middleware.js +76 -0
  203. package/server/src/lib/middlewares/device-sessions-active.middleware.js.map +1 -0
  204. package/server/src/lib/middlewares/device-sessions-app-scope.middleware.d.ts +29 -0
  205. package/server/src/lib/middlewares/device-sessions-app-scope.middleware.js +137 -0
  206. package/server/src/lib/middlewares/device-sessions-app-scope.middleware.js.map +1 -0
  207. package/server/src/lib/middlewares/device-sessions-app-scope.util.d.ts +41 -0
  208. package/server/src/lib/middlewares/device-sessions-app-scope.util.js +69 -0
  209. package/server/src/lib/middlewares/device-sessions-app-scope.util.js.map +1 -0
  210. package/server/src/lib/middlewares/device-sessions-token-revoke.middleware.d.ts +18 -0
  211. package/server/src/lib/middlewares/device-sessions-token-revoke.middleware.js +90 -0
  212. package/server/src/lib/middlewares/device-sessions-token-revoke.middleware.js.map +1 -0
  213. package/server/src/lib/middlewares/user-assigned-roles.middleware.d.ts +36 -0
  214. package/server/src/lib/middlewares/user-assigned-roles.middleware.js +359 -0
  215. package/server/src/lib/middlewares/user-assigned-roles.middleware.js.map +1 -0
  216. package/server/src/lib/middlewares/user-effective-state.middleware.d.ts +13 -0
  217. package/server/src/lib/middlewares/user-effective-state.middleware.js +57 -0
  218. package/server/src/lib/middlewares/user-effective-state.middleware.js.map +1 -0
  219. package/server/src/lib/middlewares/user-invitation-list.middleware.d.ts +32 -0
  220. package/server/src/lib/middlewares/user-invitation-list.middleware.js +250 -0
  221. package/server/src/lib/middlewares/user-invitation-list.middleware.js.map +1 -0
  222. package/server/src/lib/middlewares/user-profile-write.middleware.d.ts +18 -0
  223. package/server/src/lib/middlewares/user-profile-write.middleware.js +206 -0
  224. package/server/src/lib/middlewares/user-profile-write.middleware.js.map +1 -0
  225. package/server/src/lib/password-reset/change-own-password.command.d.ts +8 -0
  226. package/server/src/lib/password-reset/change-own-password.command.js +38 -0
  227. package/server/src/lib/password-reset/change-own-password.command.js.map +1 -0
  228. package/server/src/lib/password-reset/complete-password-reset.command.d.ts +8 -0
  229. package/server/src/lib/password-reset/complete-password-reset.command.js +37 -0
  230. package/server/src/lib/password-reset/complete-password-reset.command.js.map +1 -0
  231. package/server/src/lib/password-reset/get-own-password-status.command.d.ts +8 -0
  232. package/server/src/lib/password-reset/get-own-password-status.command.js +31 -0
  233. package/server/src/lib/password-reset/get-own-password-status.command.js.map +1 -0
  234. package/server/src/lib/password-reset/send-password-reset-email.command.d.ts +20 -0
  235. package/server/src/lib/password-reset/send-password-reset-email.command.js +43 -0
  236. package/server/src/lib/password-reset/send-password-reset-email.command.js.map +1 -0
  237. package/server/src/lib/password-reset/user-change-password.service.d.ts +24 -0
  238. package/server/src/lib/password-reset/user-change-password.service.js +92 -0
  239. package/server/src/lib/password-reset/user-change-password.service.js.map +1 -0
  240. package/server/src/lib/password-reset/user-password-reset.service.d.ts +26 -0
  241. package/server/src/lib/password-reset/user-password-reset.service.js +221 -0
  242. package/server/src/lib/password-reset/user-password-reset.service.js.map +1 -0
  243. package/server/src/lib/queries/get-permission-holders-history.query.d.ts +4 -0
  244. package/server/src/lib/queries/get-permission-holders-history.query.definition.d.ts +5 -0
  245. package/server/src/lib/queries/get-permission-holders-history.query.definition.js +38 -0
  246. package/server/src/lib/queries/get-permission-holders-history.query.definition.js.map +1 -0
  247. package/server/src/lib/queries/get-permission-holders-history.query.js +25 -0
  248. package/server/src/lib/queries/get-permission-holders-history.query.js.map +1 -0
  249. package/server/src/lib/queries/get-role-holders-history.query.d.ts +4 -0
  250. package/server/src/lib/queries/get-role-holders-history.query.definition.d.ts +5 -0
  251. package/server/src/lib/queries/get-role-holders-history.query.definition.js +38 -0
  252. package/server/src/lib/queries/get-role-holders-history.query.definition.js.map +1 -0
  253. package/server/src/lib/queries/get-role-holders-history.query.js +25 -0
  254. package/server/src/lib/queries/get-role-holders-history.query.js.map +1 -0
  255. package/server/src/lib/queries/get-user-effective-permissions-history.query.d.ts +4 -0
  256. package/server/src/lib/queries/get-user-effective-permissions-history.query.definition.d.ts +5 -0
  257. package/server/src/lib/queries/get-user-effective-permissions-history.query.definition.js +35 -0
  258. package/server/src/lib/queries/get-user-effective-permissions-history.query.definition.js.map +1 -0
  259. package/server/src/lib/queries/get-user-effective-permissions-history.query.js +26 -0
  260. package/server/src/lib/queries/get-user-effective-permissions-history.query.js.map +1 -0
  261. package/server/src/lib/queries/get-user-effective-roles-history.query.d.ts +4 -0
  262. package/server/src/lib/queries/get-user-effective-roles-history.query.definition.d.ts +5 -0
  263. package/server/src/lib/queries/get-user-effective-roles-history.query.definition.js +36 -0
  264. package/server/src/lib/queries/get-user-effective-roles-history.query.definition.js.map +1 -0
  265. package/server/src/lib/queries/get-user-effective-roles-history.query.js +25 -0
  266. package/server/src/lib/queries/get-user-effective-roles-history.query.js.map +1 -0
  267. package/server/src/lib/queries/get-user-password-change-history.query.d.ts +4 -0
  268. package/server/src/lib/queries/get-user-password-change-history.query.definition.d.ts +5 -0
  269. package/server/src/lib/queries/get-user-password-change-history.query.definition.js +33 -0
  270. package/server/src/lib/queries/get-user-password-change-history.query.definition.js.map +1 -0
  271. package/server/src/lib/queries/get-user-password-change-history.query.js +23 -0
  272. package/server/src/lib/queries/get-user-password-change-history.query.js.map +1 -0
  273. package/server/src/lib/queries/security-query.helpers.d.ts +47 -0
  274. package/server/src/lib/queries/security-query.helpers.js +184 -0
  275. package/server/src/lib/queries/security-query.helpers.js.map +1 -0
  276. package/server/src/lib/reports/password-change-history.service.d.ts +14 -0
  277. package/server/src/lib/reports/password-change-history.service.js +74 -0
  278. package/server/src/lib/reports/password-change-history.service.js.map +1 -0
  279. package/server/src/lib/reports/permission-display-catalog.d.ts +7 -0
  280. package/server/src/lib/reports/permission-display-catalog.js +101 -0
  281. package/server/src/lib/reports/permission-display-catalog.js.map +1 -0
  282. package/server/src/lib/reports/security-report-definition.provider.d.ts +5 -0
  283. package/server/src/lib/reports/security-report-definition.provider.js +23 -0
  284. package/server/src/lib/reports/security-report-definition.provider.js.map +1 -0
  285. package/server/src/lib/reports/security-report-parameter-groups.d.ts +343 -0
  286. package/server/src/lib/reports/security-report-parameter-groups.js +167 -0
  287. package/server/src/lib/reports/security-report-parameter-groups.js.map +1 -0
  288. package/server/src/lib/reports/security-report-scope.constants.d.ts +5 -0
  289. package/server/src/lib/reports/security-report-scope.constants.js +11 -0
  290. package/server/src/lib/reports/security-report-scope.constants.js.map +1 -0
  291. package/server/src/lib/reports/security-report.definitions.d.ts +12 -0
  292. package/server/src/lib/reports/security-report.definitions.js +386 -0
  293. package/server/src/lib/reports/security-report.definitions.js.map +1 -0
  294. package/server/src/lib/security-management-entity-storage.bootstrap.d.ts +26 -0
  295. package/server/src/lib/security-management-entity-storage.bootstrap.js +56 -0
  296. package/server/src/lib/security-management-entity-storage.bootstrap.js.map +1 -0
  297. package/server/src/lib/security-management-server.module.d.ts +7 -0
  298. package/server/src/lib/security-management-server.module.js +190 -0
  299. package/server/src/lib/security-management-server.module.js.map +1 -0
  300. package/server/src/lib/two-factor/admin-reset-two-factor.command.d.ts +8 -0
  301. package/server/src/lib/two-factor/admin-reset-two-factor.command.js +35 -0
  302. package/server/src/lib/two-factor/admin-reset-two-factor.command.js.map +1 -0
  303. package/server/src/lib/two-factor/confirm-two-factor-enrollment.command.d.ts +8 -0
  304. package/server/src/lib/two-factor/confirm-two-factor-enrollment.command.js +34 -0
  305. package/server/src/lib/two-factor/confirm-two-factor-enrollment.command.js.map +1 -0
  306. package/server/src/lib/two-factor/disable-two-factor.command.d.ts +8 -0
  307. package/server/src/lib/two-factor/disable-two-factor.command.js +31 -0
  308. package/server/src/lib/two-factor/disable-two-factor.command.js.map +1 -0
  309. package/server/src/lib/two-factor/generate-two-factor-recovery-codes.command.d.ts +8 -0
  310. package/server/src/lib/two-factor/generate-two-factor-recovery-codes.command.js +34 -0
  311. package/server/src/lib/two-factor/generate-two-factor-recovery-codes.command.js.map +1 -0
  312. package/server/src/lib/two-factor/get-two-factor-status.command.d.ts +8 -0
  313. package/server/src/lib/two-factor/get-two-factor-status.command.js +31 -0
  314. package/server/src/lib/two-factor/get-two-factor-status.command.js.map +1 -0
  315. package/server/src/lib/two-factor/recovery-codes.util.d.ts +11 -0
  316. package/server/src/lib/two-factor/recovery-codes.util.js +73 -0
  317. package/server/src/lib/two-factor/recovery-codes.util.js.map +1 -0
  318. package/server/src/lib/two-factor/start-two-factor-enrollment.command.d.ts +8 -0
  319. package/server/src/lib/two-factor/start-two-factor-enrollment.command.js +31 -0
  320. package/server/src/lib/two-factor/start-two-factor-enrollment.command.js.map +1 -0
  321. package/server/src/lib/two-factor/totp.util.d.ts +32 -0
  322. package/server/src/lib/two-factor/totp.util.js +128 -0
  323. package/server/src/lib/two-factor/totp.util.js.map +1 -0
  324. package/server/src/lib/two-factor/two-factor-encryption.util.d.ts +25 -0
  325. package/server/src/lib/two-factor/two-factor-encryption.util.js +123 -0
  326. package/server/src/lib/two-factor/two-factor-encryption.util.js.map +1 -0
  327. package/server/src/lib/two-factor/two-factor-gate.bootstrap.d.ts +9 -0
  328. package/server/src/lib/two-factor/two-factor-gate.bootstrap.js +65 -0
  329. package/server/src/lib/two-factor/two-factor-gate.bootstrap.js.map +1 -0
  330. package/server/src/lib/two-factor/two-factor-redis.store.d.ts +63 -0
  331. package/server/src/lib/two-factor/two-factor-redis.store.js +321 -0
  332. package/server/src/lib/two-factor/two-factor-redis.store.js.map +1 -0
  333. package/server/src/lib/two-factor/user-two-factor.service.d.ts +62 -0
  334. package/server/src/lib/two-factor/user-two-factor.service.js +573 -0
  335. package/server/src/lib/two-factor/user-two-factor.service.js.map +1 -0
  336. package/server/src/lib/two-factor/verify-two-factor-login.command.d.ts +18 -0
  337. package/server/src/lib/two-factor/verify-two-factor-login.command.js +54 -0
  338. package/server/src/lib/two-factor/verify-two-factor-login.command.js.map +1 -0
  339. package/server/src/lib/user-invitation/accept-invitation.command.d.ts +8 -0
  340. package/server/src/lib/user-invitation/accept-invitation.command.js +41 -0
  341. package/server/src/lib/user-invitation/accept-invitation.command.js.map +1 -0
  342. package/server/src/lib/user-invitation/accept-my-invitation.command.d.ts +8 -0
  343. package/server/src/lib/user-invitation/accept-my-invitation.command.js +40 -0
  344. package/server/src/lib/user-invitation/accept-my-invitation.command.js.map +1 -0
  345. package/server/src/lib/user-invitation/approve-join-request.command.d.ts +8 -0
  346. package/server/src/lib/user-invitation/approve-join-request.command.js +41 -0
  347. package/server/src/lib/user-invitation/approve-join-request.command.js.map +1 -0
  348. package/server/src/lib/user-invitation/cancel-invitation.command.d.ts +8 -0
  349. package/server/src/lib/user-invitation/cancel-invitation.command.js +37 -0
  350. package/server/src/lib/user-invitation/cancel-invitation.command.js.map +1 -0
  351. package/server/src/lib/user-invitation/cancel-my-join-request.command.d.ts +8 -0
  352. package/server/src/lib/user-invitation/cancel-my-join-request.command.js +40 -0
  353. package/server/src/lib/user-invitation/cancel-my-join-request.command.js.map +1 -0
  354. package/server/src/lib/user-invitation/create-user-in-tenant.command.d.ts +8 -0
  355. package/server/src/lib/user-invitation/create-user-in-tenant.command.js +37 -0
  356. package/server/src/lib/user-invitation/create-user-in-tenant.command.js.map +1 -0
  357. package/server/src/lib/user-invitation/decline-invitation.command.d.ts +8 -0
  358. package/server/src/lib/user-invitation/decline-invitation.command.js +37 -0
  359. package/server/src/lib/user-invitation/decline-invitation.command.js.map +1 -0
  360. package/server/src/lib/user-invitation/invite-user.command.d.ts +8 -0
  361. package/server/src/lib/user-invitation/invite-user.command.js +37 -0
  362. package/server/src/lib/user-invitation/invite-user.command.js.map +1 -0
  363. package/server/src/lib/user-invitation/list-invite-assignable-roles.command.d.ts +8 -0
  364. package/server/src/lib/user-invitation/list-invite-assignable-roles.command.js +41 -0
  365. package/server/src/lib/user-invitation/list-invite-assignable-roles.command.js.map +1 -0
  366. package/server/src/lib/user-invitation/list-my-join-requests.command.d.ts +8 -0
  367. package/server/src/lib/user-invitation/list-my-join-requests.command.js +40 -0
  368. package/server/src/lib/user-invitation/list-my-join-requests.command.js.map +1 -0
  369. package/server/src/lib/user-invitation/list-my-pending-invitations.command.d.ts +8 -0
  370. package/server/src/lib/user-invitation/list-my-pending-invitations.command.js +37 -0
  371. package/server/src/lib/user-invitation/list-my-pending-invitations.command.js.map +1 -0
  372. package/server/src/lib/user-invitation/list-tenant-entitled-applications.command.d.ts +8 -0
  373. package/server/src/lib/user-invitation/list-tenant-entitled-applications.command.js +41 -0
  374. package/server/src/lib/user-invitation/list-tenant-entitled-applications.command.js.map +1 -0
  375. package/server/src/lib/user-invitation/lookup-tenant-by-unique-name.command.d.ts +8 -0
  376. package/server/src/lib/user-invitation/lookup-tenant-by-unique-name.command.js +40 -0
  377. package/server/src/lib/user-invitation/lookup-tenant-by-unique-name.command.js.map +1 -0
  378. package/server/src/lib/user-invitation/reject-join-request.command.d.ts +8 -0
  379. package/server/src/lib/user-invitation/reject-join-request.command.js +41 -0
  380. package/server/src/lib/user-invitation/reject-join-request.command.js.map +1 -0
  381. package/server/src/lib/user-invitation/request-tenant-membership.command.d.ts +8 -0
  382. package/server/src/lib/user-invitation/request-tenant-membership.command.js +40 -0
  383. package/server/src/lib/user-invitation/request-tenant-membership.command.js.map +1 -0
  384. package/server/src/lib/user-invitation/resend-invitation.command.d.ts +12 -0
  385. package/server/src/lib/user-invitation/resend-invitation.command.js +37 -0
  386. package/server/src/lib/user-invitation/resend-invitation.command.js.map +1 -0
  387. package/server/src/lib/user-invitation/user-invitation-application-access.util.d.ts +25 -0
  388. package/server/src/lib/user-invitation/user-invitation-application-access.util.js +121 -0
  389. package/server/src/lib/user-invitation/user-invitation-application-access.util.js.map +1 -0
  390. package/server/src/lib/user-invitation/user-invitation.service.d.ts +162 -0
  391. package/server/src/lib/user-invitation/user-invitation.service.js +1658 -0
  392. package/server/src/lib/user-invitation/user-invitation.service.js.map +1 -0
  393. package/contracts/src/datasource.keys.d.ts +0 -4
  394. package/contracts/src/datasource.keys.js +0 -10
  395. package/contracts/src/datasource.keys.js.map +0 -1
  396. package/src/index.d.ts +0 -5
  397. package/src/index.js +0 -13
  398. package/src/index.js.map +0 -1
  399. package/src/lib/security-management-server.module.d.ts +0 -2
  400. package/src/lib/security-management-server.module.js +0 -23
  401. package/src/lib/security-management-server.module.js.map +0 -1
  402. package/src/lib/seed/index.d.ts +0 -22
  403. package/src/lib/seed/index.js +0 -24
  404. package/src/lib/seed/index.js.map +0 -1
  405. package/src/lib/seed/policy/index.d.ts +0 -2
  406. package/src/lib/seed/policy/index.js +0 -6
  407. package/src/lib/seed/policy/index.js.map +0 -1
  408. package/src/lib/seed/policy/policy.mock.d.ts +0 -7
  409. package/src/lib/seed/policy/policy.mock.js +0 -40
  410. package/src/lib/seed/policy/policy.mock.js.map +0 -1
  411. package/src/lib/seed/policy/policy.seed.d.ts +0 -5
  412. package/src/lib/seed/policy/policy.seed.js +0 -31
  413. package/src/lib/seed/policy/policy.seed.js.map +0 -1
  414. package/src/lib/seed/role/index.d.ts +0 -4
  415. package/src/lib/seed/role/index.js +0 -8
  416. package/src/lib/seed/role/index.js.map +0 -1
  417. package/src/lib/seed/role/role-ids.constants.d.ts +0 -14
  418. package/src/lib/seed/role/role-ids.constants.js +0 -20
  419. package/src/lib/seed/role/role-ids.constants.js.map +0 -1
  420. package/src/lib/seed/role/role-permission-keys.constants.d.ts +0 -578
  421. package/src/lib/seed/role/role-permission-keys.constants.js +0 -620
  422. package/src/lib/seed/role/role-permission-keys.constants.js.map +0 -1
  423. package/src/lib/seed/role/role.mock.d.ts +0 -4
  424. package/src/lib/seed/role/role.mock.js +0 -321
  425. package/src/lib/seed/role/role.mock.js.map +0 -1
  426. package/src/lib/seed/role/role.seed.d.ts +0 -5
  427. package/src/lib/seed/role/role.seed.js +0 -31
  428. package/src/lib/seed/role/role.seed.js.map +0 -1
  429. package/src/lib/seed/security-management-seed.provider.d.ts +0 -4
  430. package/src/lib/seed/security-management-seed.provider.js +0 -18
  431. package/src/lib/seed/security-management-seed.provider.js.map +0 -1
  432. package/src/lib/seed/security-management-seed.tokens.d.ts +0 -1
  433. package/src/lib/seed/security-management-seed.tokens.js +0 -7
  434. package/src/lib/seed/security-management-seed.tokens.js.map +0 -1
  435. package/src/lib/seed/security-management.seed-catalog.d.ts +0 -2
  436. package/src/lib/seed/security-management.seed-catalog.js +0 -17
  437. package/src/lib/seed/security-management.seed-catalog.js.map +0 -1
  438. package/src/lib/seed/tenant/index.d.ts +0 -1
  439. package/src/lib/seed/tenant/tenant-ids.constants.d.ts +0 -11
  440. package/src/lib/seed/tenant/tenant-ids.constants.js +0 -17
  441. package/src/lib/seed/tenant/tenant-ids.constants.js.map +0 -1
  442. package/src/lib/seed/user/index.d.ts +0 -4
  443. package/src/lib/seed/user/index.js +0 -13
  444. package/src/lib/seed/user/index.js.map +0 -1
  445. package/src/lib/seed/user/resolve-user-effective-state.util.d.ts +0 -14
  446. package/src/lib/seed/user/resolve-user-effective-state.util.js +0 -61
  447. package/src/lib/seed/user/resolve-user-effective-state.util.js.map +0 -1
  448. package/src/lib/seed/user/user.mock.d.ts +0 -20
  449. package/src/lib/seed/user/user.mock.js +0 -332
  450. package/src/lib/seed/user/user.mock.js.map +0 -1
  451. package/src/lib/seed/user/user.seed.d.ts +0 -5
  452. package/src/lib/seed/user/user.seed.js +0 -31
  453. package/src/lib/seed/user/user.seed.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGetPermissionHoldersHistoryQuery = runGetPermissionHoldersHistoryQuery;
4
+ const tslib_1 = require("tslib");
5
+ const security_query_helpers_1 = require("./security-query.helpers");
6
+ //#region ----- Permission holders history query -----
7
+ function runGetPermissionHoldersHistoryQuery(history_1, input_1) {
8
+ return tslib_1.__awaiter(this, arguments, void 0, function* (history, input, scope = {}) {
9
+ const filters = (0, security_query_helpers_1.extractSecurityHistoryFilters)(input.filter, scope);
10
+ const range = (0, security_query_helpers_1.requireHistoryRange)(filters);
11
+ if (!range || !filters.permission) {
12
+ return { items: [], total: 0 };
13
+ }
14
+ const rows = yield history.getPermissionHoldersInRange({
15
+ permission: filters.permission,
16
+ tenantId: range.tenantId,
17
+ applicationId: range.applicationId,
18
+ from: range.from,
19
+ to: range.to,
20
+ });
21
+ return (0, security_query_helpers_1.paginateRows)(rows, input);
22
+ });
23
+ }
24
+ //#endregion
25
+ //# sourceMappingURL=get-permission-holders-history.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-permission-holders-history.query.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-permission-holders-history.query.ts"],"names":[],"mappings":";;AAWA,kFAoBC;;AA7BD,qEAKkC;AAElC,sDAAsD;AAEtD,SAAsB,mCAAmC;iEACvD,OAAsC,EACtC,KAAuB,EACvB,QAA2C,EAAE;QAE7C,MAAM,OAAO,GAAG,IAAA,sDAA6B,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,2BAA2B,CAAC;YACrD,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QAEH,OAAO,IAAA,qCAAY,EAAC,IAA4C,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CAAA;AAED,YAAY"}
@@ -0,0 +1,4 @@
1
+ import type { ReportQueryInput, ReportQueryResult } from '@acorex-platform/framework-server/report';
2
+ import type { EffectiveAccessHistoryService } from '../effective-access-history/effective-access-history.service';
3
+ import { type SecurityHistoryFilterScopeOptions } from './security-query.helpers';
4
+ export declare function runGetRoleHoldersHistoryQuery(history: EffectiveAccessHistoryService, input: ReportQueryInput, scope?: SecurityHistoryFilterScopeOptions): Promise<ReportQueryResult>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Build-time only. Do not import from Nest modules.
3
+ * Source: get-role-holders-history.query.ts
4
+ */
5
+ export declare const getRoleHoldersHistoryQueryDefinition: import("@acorex-platform/framework-shared/runtime").AXPAlignedQueryMetadataDefinition;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /**
3
+ * Build-time only. Do not import from Nest modules.
4
+ * Source: get-role-holders-history.query.ts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getRoleHoldersHistoryQueryDefinition = void 0;
8
+ const runtime_1 = require("@acorex-platform/framework-shared/runtime");
9
+ const module_security_management_contracts_1 = require("@acorex-platform/module-security-management-client/contracts");
10
+ exports.getRoleHoldersHistoryQueryDefinition = (0, runtime_1.defineQuery)({
11
+ key: module_security_management_contracts_1.RootConfig.queries.reports.getRoleHoldersHistory,
12
+ title: 'Role holders',
13
+ description: 'Users who held a role that overlaps the selected date range, reconstructed from UserRole Change History.',
14
+ executionMode: 'backend',
15
+ kind: 'collection',
16
+ filter: [
17
+ { name: 'roleId', title: 'Role', source: 'custom', interface: { name: 'lookup-editor' } },
18
+ { name: 'dateRange', title: 'Date range', source: 'custom', interface: { name: 'date-time-editor' } },
19
+ { name: 'tenantId', title: 'Tenant', source: 'custom', interface: { name: 'lookup-editor' } },
20
+ { name: 'applicationId', title: 'Application', source: 'custom', interface: { name: 'lookup-editor' } },
21
+ ],
22
+ sort: [
23
+ { name: 'username', title: 'Username', field: 'username' },
24
+ { name: 'displayName', title: 'Display name', field: 'displayName' },
25
+ { name: 'roleTitle', title: 'Role title', field: 'roleTitle' },
26
+ { name: 'validFrom', title: 'Valid from', field: 'validFrom' },
27
+ { name: 'validTo', title: 'Valid to', field: 'validTo' },
28
+ ],
29
+ columns: [
30
+ { name: 'username', title: 'Username', interface: { name: 'text-editor' } },
31
+ { name: 'displayName', title: 'Display name', interface: { name: 'text-editor' } },
32
+ { name: 'roleTitle', title: 'Role title', interface: { name: 'text-editor' } },
33
+ { name: 'validFrom', title: 'Valid from', interface: { name: 'date-time-editor' } },
34
+ { name: 'validTo', title: 'Valid to', interface: { name: 'date-time-editor' } },
35
+ ],
36
+ categories: [runtime_1.AXP_CATALOG_DEFINITION_CATEGORY_REPORT],
37
+ });
38
+ //# sourceMappingURL=get-role-holders-history.query.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-role-holders-history.query.definition.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-role-holders-history.query.definition.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uEAAgH;AAChH,gHAAmF;AAEtE,QAAA,oCAAoC,GAAG,IAAA,qBAAW,EAAC;IAC9D,GAAG,EAAE,iDAAU,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB;IACrD,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,0GAA0G;IAC5G,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QACzF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACrG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;KACxG;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;QAC1D,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE;QACpE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9D,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;KACzD;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC3E,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAClF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC9E,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACnF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;KAChF;IACD,UAAU,EAAE,CAAC,gDAAsC,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGetRoleHoldersHistoryQuery = runGetRoleHoldersHistoryQuery;
4
+ const tslib_1 = require("tslib");
5
+ const security_query_helpers_1 = require("./security-query.helpers");
6
+ //#region ----- Role holders history query -----
7
+ function runGetRoleHoldersHistoryQuery(history_1, input_1) {
8
+ return tslib_1.__awaiter(this, arguments, void 0, function* (history, input, scope = {}) {
9
+ const filters = (0, security_query_helpers_1.extractSecurityHistoryFilters)(input.filter, scope);
10
+ const range = (0, security_query_helpers_1.requireHistoryRange)(filters);
11
+ if (!range || !filters.roleId) {
12
+ return { items: [], total: 0 };
13
+ }
14
+ const rows = yield history.getRoleHoldersInRange({
15
+ roleId: filters.roleId,
16
+ tenantId: range.tenantId,
17
+ applicationId: range.applicationId,
18
+ from: range.from,
19
+ to: range.to,
20
+ });
21
+ return (0, security_query_helpers_1.paginateRows)(rows, input);
22
+ });
23
+ }
24
+ //#endregion
25
+ //# sourceMappingURL=get-role-holders-history.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-role-holders-history.query.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-role-holders-history.query.ts"],"names":[],"mappings":";;AAWA,sEAoBC;;AA7BD,qEAKkC;AAElC,gDAAgD;AAEhD,SAAsB,6BAA6B;iEACjD,OAAsC,EACtC,KAAuB,EACvB,QAA2C,EAAE;QAE7C,MAAM,OAAO,GAAG,IAAA,sDAA6B,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC;YAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QAEH,OAAO,IAAA,qCAAY,EAAC,IAA4C,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CAAA;AAED,YAAY"}
@@ -0,0 +1,4 @@
1
+ import type { ReportQueryInput, ReportQueryResult } from '@acorex-platform/framework-server/report';
2
+ import type { EffectiveAccessHistoryService } from '../effective-access-history/effective-access-history.service';
3
+ import { type SecurityHistoryFilterScopeOptions } from './security-query.helpers';
4
+ export declare function runGetUserEffectivePermissionsHistoryQuery(history: EffectiveAccessHistoryService, input: ReportQueryInput, scope?: SecurityHistoryFilterScopeOptions): Promise<ReportQueryResult>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Build-time only. Do not import from Nest modules.
3
+ * Source: get-user-effective-permissions-history.query.ts
4
+ */
5
+ export declare const getUserEffectivePermissionsHistoryQueryDefinition: import("@acorex-platform/framework-shared/runtime").AXPAlignedQueryMetadataDefinition;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /**
3
+ * Build-time only. Do not import from Nest modules.
4
+ * Source: get-user-effective-permissions-history.query.ts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getUserEffectivePermissionsHistoryQueryDefinition = void 0;
8
+ const runtime_1 = require("@acorex-platform/framework-shared/runtime");
9
+ const module_security_management_contracts_1 = require("@acorex-platform/module-security-management-client/contracts");
10
+ exports.getUserEffectivePermissionsHistoryQueryDefinition = (0, runtime_1.defineQuery)({
11
+ key: module_security_management_contracts_1.RootConfig.queries.reports.getUserEffectivePermissionsHistory,
12
+ title: 'User effective permissions',
13
+ description: 'Permissions a user held that overlap the selected date range, reconstructed from grant history.',
14
+ executionMode: 'backend',
15
+ kind: 'collection',
16
+ filter: [
17
+ { name: 'userId', title: 'User', source: 'custom', interface: { name: 'lookup-editor' } },
18
+ { name: 'permissionSearch', title: 'Permission search', source: 'custom', interface: { name: 'text-editor' } },
19
+ { name: 'dateRange', title: 'Date range', source: 'custom', interface: { name: 'date-time-editor' } },
20
+ { name: 'tenantId', title: 'Tenant', source: 'custom', interface: { name: 'lookup-editor' } },
21
+ { name: 'applicationId', title: 'Application', source: 'custom', interface: { name: 'lookup-editor' } },
22
+ ],
23
+ sort: [
24
+ { name: 'permission', title: 'Permission', field: 'permission' },
25
+ { name: 'validFrom', title: 'Valid from', field: 'validFrom' },
26
+ { name: 'validTo', title: 'Valid to', field: 'validTo' },
27
+ ],
28
+ columns: [
29
+ { name: 'permission', title: 'Permission', interface: { name: 'text-editor' } },
30
+ { name: 'validFrom', title: 'Valid from', interface: { name: 'date-time-editor' } },
31
+ { name: 'validTo', title: 'Valid to', interface: { name: 'date-time-editor' } },
32
+ ],
33
+ categories: [runtime_1.AXP_CATALOG_DEFINITION_CATEGORY_REPORT],
34
+ });
35
+ //# sourceMappingURL=get-user-effective-permissions-history.query.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-effective-permissions-history.query.definition.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-effective-permissions-history.query.definition.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uEAAgH;AAChH,gHAAmF;AAEtE,QAAA,iDAAiD,GAAG,IAAA,qBAAW,EAAC;IAC3E,GAAG,EAAE,iDAAU,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC;IAClE,KAAK,EAAE,4BAA4B;IACnC,WAAW,EACT,iGAAiG;IACnG,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QACzF,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC9G,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACrG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;KACxG;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;QAChE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;KACzD;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC/E,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACnF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;KAChF;IACD,UAAU,EAAE,CAAC,gDAAsC,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGetUserEffectivePermissionsHistoryQuery = runGetUserEffectivePermissionsHistoryQuery;
4
+ const tslib_1 = require("tslib");
5
+ const security_query_helpers_1 = require("./security-query.helpers");
6
+ //#region ----- User effective permissions history query -----
7
+ function runGetUserEffectivePermissionsHistoryQuery(history_1, input_1) {
8
+ return tslib_1.__awaiter(this, arguments, void 0, function* (history, input, scope = {}) {
9
+ const filters = (0, security_query_helpers_1.extractSecurityHistoryFilters)(input.filter, scope);
10
+ const range = (0, security_query_helpers_1.requireHistoryRange)(filters);
11
+ if (!range || !filters.userId) {
12
+ return { items: [], total: 0 };
13
+ }
14
+ const rows = yield history.getUserEffectivePermissionsInRange({
15
+ userId: filters.userId,
16
+ tenantId: range.tenantId,
17
+ applicationId: range.applicationId,
18
+ from: range.from,
19
+ to: range.to,
20
+ permissionSearch: filters.permissionSearch,
21
+ });
22
+ return (0, security_query_helpers_1.paginateRows)(rows, input);
23
+ });
24
+ }
25
+ //#endregion
26
+ //# sourceMappingURL=get-user-effective-permissions-history.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-effective-permissions-history.query.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-effective-permissions-history.query.ts"],"names":[],"mappings":";;AAWA,gGAqBC;;AA9BD,qEAKkC;AAElC,8DAA8D;AAE9D,SAAsB,0CAA0C;iEAC9D,OAAsC,EACtC,KAAuB,EACvB,QAA2C,EAAE;QAE7C,MAAM,OAAO,GAAG,IAAA,sDAA6B,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,kCAAkC,CAAC;YAC5D,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;SAC3C,CAAC,CAAC;QAEH,OAAO,IAAA,qCAAY,EAAC,IAA4C,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CAAA;AAED,YAAY"}
@@ -0,0 +1,4 @@
1
+ import type { ReportQueryInput, ReportQueryResult } from '@acorex-platform/framework-server/report';
2
+ import type { EffectiveAccessHistoryService } from '../effective-access-history/effective-access-history.service';
3
+ import { type SecurityHistoryFilterScopeOptions } from './security-query.helpers';
4
+ export declare function runGetUserEffectiveRolesHistoryQuery(history: EffectiveAccessHistoryService, input: ReportQueryInput, scope?: SecurityHistoryFilterScopeOptions): Promise<ReportQueryResult>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Build-time only. Do not import from Nest modules.
3
+ * Source: get-user-effective-roles-history.query.ts
4
+ */
5
+ export declare const getUserEffectiveRolesHistoryQueryDefinition: import("@acorex-platform/framework-shared/runtime").AXPAlignedQueryMetadataDefinition;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ /**
3
+ * Build-time only. Do not import from Nest modules.
4
+ * Source: get-user-effective-roles-history.query.ts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getUserEffectiveRolesHistoryQueryDefinition = void 0;
8
+ const runtime_1 = require("@acorex-platform/framework-shared/runtime");
9
+ const module_security_management_contracts_1 = require("@acorex-platform/module-security-management-client/contracts");
10
+ exports.getUserEffectiveRolesHistoryQueryDefinition = (0, runtime_1.defineQuery)({
11
+ key: module_security_management_contracts_1.RootConfig.queries.reports.getUserEffectiveRolesHistory,
12
+ title: 'User effective roles',
13
+ description: 'Roles a user held that overlap the selected date range, reconstructed from UserRole Change History.',
14
+ executionMode: 'backend',
15
+ kind: 'collection',
16
+ filter: [
17
+ { name: 'userId', title: 'User', source: 'custom', interface: { name: 'lookup-editor' } },
18
+ { name: 'dateRange', title: 'Date range', source: 'custom', interface: { name: 'date-time-editor' } },
19
+ { name: 'tenantId', title: 'Tenant', source: 'custom', interface: { name: 'lookup-editor' } },
20
+ { name: 'applicationId', title: 'Application', source: 'custom', interface: { name: 'lookup-editor' } },
21
+ ],
22
+ sort: [
23
+ { name: 'roleName', title: 'Role name', field: 'roleName' },
24
+ { name: 'roleTitle', title: 'Role title', field: 'roleTitle' },
25
+ { name: 'validFrom', title: 'Valid from', field: 'validFrom' },
26
+ { name: 'validTo', title: 'Valid to', field: 'validTo' },
27
+ ],
28
+ columns: [
29
+ { name: 'roleName', title: 'Role name', interface: { name: 'text-editor' } },
30
+ { name: 'roleTitle', title: 'Role title', interface: { name: 'text-editor' } },
31
+ { name: 'validFrom', title: 'Valid from', interface: { name: 'date-time-editor' } },
32
+ { name: 'validTo', title: 'Valid to', interface: { name: 'date-time-editor' } },
33
+ ],
34
+ categories: [runtime_1.AXP_CATALOG_DEFINITION_CATEGORY_REPORT],
35
+ });
36
+ //# sourceMappingURL=get-user-effective-roles-history.query.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-effective-roles-history.query.definition.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-effective-roles-history.query.definition.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uEAAgH;AAChH,gHAAmF;AAEtE,QAAA,2CAA2C,GAAG,IAAA,qBAAW,EAAC;IACrE,GAAG,EAAE,iDAAU,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B;IAC5D,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,qGAAqG;IACvG,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QACzF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACrG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;KACxG;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE;QAC3D,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9D,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;QAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE;KACzD;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC5E,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC9E,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACnF,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;KAChF;IACD,UAAU,EAAE,CAAC,gDAAsC,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGetUserEffectiveRolesHistoryQuery = runGetUserEffectiveRolesHistoryQuery;
4
+ const tslib_1 = require("tslib");
5
+ const security_query_helpers_1 = require("./security-query.helpers");
6
+ //#region ----- User effective roles history query -----
7
+ function runGetUserEffectiveRolesHistoryQuery(history_1, input_1) {
8
+ return tslib_1.__awaiter(this, arguments, void 0, function* (history, input, scope = {}) {
9
+ const filters = (0, security_query_helpers_1.extractSecurityHistoryFilters)(input.filter, scope);
10
+ const range = (0, security_query_helpers_1.requireHistoryRange)(filters);
11
+ if (!range || !filters.userId) {
12
+ return { items: [], total: 0 };
13
+ }
14
+ const rows = yield history.getUserEffectiveRolesInRange({
15
+ userId: filters.userId,
16
+ tenantId: range.tenantId,
17
+ applicationId: range.applicationId,
18
+ from: range.from,
19
+ to: range.to,
20
+ });
21
+ return (0, security_query_helpers_1.paginateRows)(rows, input);
22
+ });
23
+ }
24
+ //#endregion
25
+ //# sourceMappingURL=get-user-effective-roles-history.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-effective-roles-history.query.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-effective-roles-history.query.ts"],"names":[],"mappings":";;AAWA,oFAoBC;;AA7BD,qEAKkC;AAElC,wDAAwD;AAExD,SAAsB,oCAAoC;iEACxD,OAAsC,EACtC,KAAuB,EACvB,QAA2C,EAAE;QAE7C,MAAM,OAAO,GAAG,IAAA,sDAA6B,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,4BAA4B,CAAC;YACtD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QAEH,OAAO,IAAA,qCAAY,EAAC,IAA4C,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;CAAA;AAED,YAAY"}
@@ -0,0 +1,4 @@
1
+ import type { ReportQueryInput, ReportQueryResult } from '@acorex-platform/framework-server/report';
2
+ import type { PasswordChangeHistoryService } from '../reports/password-change-history.service';
3
+ import { type SecurityHistoryFilterScopeOptions } from './security-query.helpers';
4
+ export declare function runGetUserPasswordChangeHistoryQuery(history: PasswordChangeHistoryService, input: ReportQueryInput, scope?: SecurityHistoryFilterScopeOptions): Promise<ReportQueryResult>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Build-time only. Do not import from Nest modules.
3
+ * Source: get-user-password-change-history.query.ts
4
+ */
5
+ export declare const getUserPasswordChangeHistoryQueryDefinition: import("@acorex-platform/framework-shared/runtime").AXPAlignedQueryMetadataDefinition;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * Build-time only. Do not import from Nest modules.
4
+ * Source: get-user-password-change-history.query.ts
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getUserPasswordChangeHistoryQueryDefinition = void 0;
8
+ const runtime_1 = require("@acorex-platform/framework-shared/runtime");
9
+ const module_security_management_contracts_1 = require("@acorex-platform/module-security-management-client/contracts");
10
+ exports.getUserPasswordChangeHistoryQueryDefinition = (0, runtime_1.defineQuery)({
11
+ key: module_security_management_contracts_1.RootConfig.queries.reports.getUserPasswordChangeHistory,
12
+ title: 'User password change history',
13
+ description: 'Password change timestamp for a user in a date range (last recorded change on the user profile).',
14
+ executionMode: 'backend',
15
+ kind: 'collection',
16
+ filter: [
17
+ { name: 'userId', title: 'User', source: 'custom', interface: { name: 'lookup-editor' } },
18
+ { name: 'dateRange', title: 'Date range', source: 'custom', interface: { name: 'date-time-editor' } },
19
+ { name: 'tenantId', title: 'Tenant', source: 'custom', interface: { name: 'lookup-editor' } },
20
+ { name: 'applicationId', title: 'Application', source: 'custom', interface: { name: 'lookup-editor' } },
21
+ ],
22
+ sort: [
23
+ { name: 'passwordChangedAt', title: 'Password changed at', field: 'passwordChangedAt' },
24
+ { name: 'username', title: 'Username', field: 'username' },
25
+ ],
26
+ columns: [
27
+ { name: 'username', title: 'Username', interface: { name: 'text-editor' } },
28
+ { name: 'displayName', title: 'Display name', interface: { name: 'text-editor' } },
29
+ { name: 'passwordChangedAt', title: 'Password changed at', interface: { name: 'date-time-editor' } },
30
+ ],
31
+ categories: [runtime_1.AXP_CATALOG_DEFINITION_CATEGORY_REPORT],
32
+ });
33
+ //# sourceMappingURL=get-user-password-change-history.query.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-password-change-history.query.definition.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-password-change-history.query.definition.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uEAAgH;AAChH,gHAAmF;AAEtE,QAAA,2CAA2C,GAAG,IAAA,qBAAW,EAAC;IACrE,GAAG,EAAE,iDAAU,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B;IAC5D,KAAK,EAAE,8BAA8B;IACrC,WAAW,EACT,kGAAkG;IACpG,aAAa,EAAE,SAAS;IACxB,IAAI,EAAE,YAAY;IAClB,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QACzF,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;QACrG,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;QAC7F,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE;KACxG;IACD,IAAI,EAAE;QACJ,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,mBAAmB,EAAE;QACvF,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;KAC3D;IACD,OAAO,EAAE;QACP,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAC3E,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE;QAClF,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE;KACrG;IACD,UAAU,EAAE,CAAC,gDAAsC,CAAC;CACrD,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runGetUserPasswordChangeHistoryQuery = runGetUserPasswordChangeHistoryQuery;
4
+ const tslib_1 = require("tslib");
5
+ const security_query_helpers_1 = require("./security-query.helpers");
6
+ //#region ----- User password change history query -----
7
+ function runGetUserPasswordChangeHistoryQuery(history_1, input_1) {
8
+ return tslib_1.__awaiter(this, arguments, void 0, function* (history, input, scope = {}) {
9
+ const filters = (0, security_query_helpers_1.extractSecurityHistoryFilters)(input.filter, scope);
10
+ const range = (0, security_query_helpers_1.requireHistoryRange)(filters);
11
+ if (!range || !filters.userId) {
12
+ return { items: [], total: 0 };
13
+ }
14
+ const rows = yield history.rows({
15
+ userId: filters.userId,
16
+ from: range.from,
17
+ to: range.to,
18
+ });
19
+ return (0, security_query_helpers_1.paginateRows)(rows, input);
20
+ });
21
+ }
22
+ //#endregion
23
+ //# sourceMappingURL=get-user-password-change-history.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-user-password-change-history.query.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/get-user-password-change-history.query.ts"],"names":[],"mappings":";;AAWA,oFAkBC;;AA3BD,qEAKkC;AAElC,wDAAwD;AAExD,SAAsB,oCAAoC;iEACxD,OAAqC,EACrC,KAAuB,EACvB,QAA2C,EAAE;QAE7C,MAAM,OAAO,GAAG,IAAA,sDAA6B,EAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAA,4CAAmB,EAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QAEH,OAAO,IAAA,qCAAY,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CAAA;AAED,YAAY"}
@@ -0,0 +1,47 @@
1
+ import { type ReportQueryInput } from '@acorex-platform/framework-server/report';
2
+ export type ReportFilterLeaf = {
3
+ field?: string;
4
+ value?: unknown;
5
+ operator?: {
6
+ type?: string;
7
+ };
8
+ };
9
+ export interface SecurityHistoryReportFilters {
10
+ userId?: string;
11
+ roleId?: string;
12
+ permission?: string;
13
+ /** Contains-search over permission title / description / key (permissions history). */
14
+ permissionSearch?: string;
15
+ tenantId?: string;
16
+ applicationId?: string;
17
+ from?: Date;
18
+ to?: Date;
19
+ }
20
+ export interface SecurityHistoryFilterScopeOptions {
21
+ /**
22
+ * When false, tenantId is always forced to the session tenant
23
+ * (matches Tenant parameter visibility via MaintainTenants).
24
+ */
25
+ canSelectTenant?: boolean;
26
+ sessionTenantId?: string;
27
+ /** Current session application — always used for scope scoring today. */
28
+ sessionApplicationId?: string;
29
+ }
30
+ export declare function extractSecurityHistoryFilters(parameters: unknown, scope?: SecurityHistoryFilterScopeOptions): SecurityHistoryReportFilters;
31
+ /**
32
+ * Aligns execute-time tenant/app scope with the current session.
33
+ *
34
+ * - Tenant: forced to session unless `canSelectTenant` (MaintainTenants).
35
+ * - Application: always the session application for now (no override permission yet).
36
+ */
37
+ export declare function applySessionTenantScope(filters: SecurityHistoryReportFilters, scope?: SecurityHistoryFilterScopeOptions): SecurityHistoryReportFilters;
38
+ export declare function requireHistoryRange(filters: SecurityHistoryReportFilters): {
39
+ tenantId: string;
40
+ from: Date;
41
+ to: Date;
42
+ applicationId?: string;
43
+ } | null;
44
+ export declare function paginateRows(rows: Record<string, unknown>[], input: ReportQueryInput): {
45
+ items: Record<string, unknown>[];
46
+ total: number;
47
+ };
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractSecurityHistoryFilters = extractSecurityHistoryFilters;
4
+ exports.applySessionTenantScope = applySessionTenantScope;
5
+ exports.requireHistoryRange = requireHistoryRange;
6
+ exports.paginateRows = paginateRows;
7
+ const tslib_1 = require("tslib");
8
+ const core_1 = require("@acorex-platform/framework-server/core");
9
+ const report_1 = require("@acorex-platform/framework-server/report");
10
+ const security_1 = require("@acorex-platform/framework-server/security");
11
+ //#endregion
12
+ //#region ----- Filter extraction -----
13
+ function extractSecurityHistoryFilters(parameters, scope = {}) {
14
+ const result = {};
15
+ const paramsAny = parameters;
16
+ const filters = Array.isArray(paramsAny === null || paramsAny === void 0 ? void 0 : paramsAny.filters)
17
+ ? paramsAny.filters
18
+ : Array.isArray(parameters)
19
+ ? parameters
20
+ : [];
21
+ for (const raw of filters) {
22
+ const filter = raw;
23
+ if (!(filter === null || filter === void 0 ? void 0 : filter.field) || filter.value === undefined || filter.value === null) {
24
+ continue;
25
+ }
26
+ switch (filter.field) {
27
+ case 'userId':
28
+ result.userId = firstString(filter.value);
29
+ break;
30
+ case 'roleId':
31
+ result.roleId = firstString(filter.value);
32
+ break;
33
+ case 'permission':
34
+ result.permission = firstString(filter.value);
35
+ break;
36
+ case 'permissionSearch':
37
+ result.permissionSearch = firstString(filter.value);
38
+ break;
39
+ case 'tenantId':
40
+ result.tenantId = firstString(filter.value);
41
+ break;
42
+ case 'applicationId':
43
+ result.applicationId = firstString(filter.value) || undefined;
44
+ break;
45
+ case 'dateRange': {
46
+ const range = normalizeDateRange(filter.value);
47
+ if (range) {
48
+ result.from = range.from;
49
+ result.to = range.to;
50
+ }
51
+ break;
52
+ }
53
+ default:
54
+ break;
55
+ }
56
+ }
57
+ return applySessionTenantScope(result, scope);
58
+ }
59
+ /**
60
+ * Aligns execute-time tenant/app scope with the current session.
61
+ *
62
+ * - Tenant: forced to session unless `canSelectTenant` (MaintainTenants).
63
+ * - Application: always the session application for now (no override permission yet).
64
+ */
65
+ function applySessionTenantScope(filters, scope = {}) {
66
+ var _a, _b, _c, _d, _e;
67
+ const tenantId = (_b = ((_a = scope.sessionTenantId) !== null && _a !== void 0 ? _a : resolveSessionTenantId())) === null || _b === void 0 ? void 0 : _b.trim();
68
+ const applicationId = (_d = ((_c = scope.sessionApplicationId) !== null && _c !== void 0 ? _c : resolveSessionApplicationId())) === null || _d === void 0 ? void 0 : _d.trim();
69
+ let next = Object.assign({}, filters);
70
+ if (tenantId) {
71
+ next = scope.canSelectTenant
72
+ ? Object.assign(Object.assign({}, next), { tenantId: ((_e = next.tenantId) === null || _e === void 0 ? void 0 : _e.trim()) || tenantId }) : Object.assign(Object.assign({}, next), { tenantId });
73
+ }
74
+ // Always bind to the current application workspace (ignore client filter).
75
+ if (applicationId) {
76
+ next = Object.assign(Object.assign({}, next), { applicationId });
77
+ }
78
+ else {
79
+ const { applicationId: _ignored } = next, rest = tslib_1.__rest(next, ["applicationId"]);
80
+ next = rest;
81
+ }
82
+ return next;
83
+ }
84
+ function requireHistoryRange(filters) {
85
+ if (!filters.tenantId || !filters.from || !filters.to) {
86
+ return null;
87
+ }
88
+ return {
89
+ tenantId: filters.tenantId,
90
+ from: filters.from,
91
+ to: filters.to,
92
+ applicationId: filters.applicationId,
93
+ };
94
+ }
95
+ function paginateRows(rows, input) {
96
+ const sorted = sortRows(rows, input.sort);
97
+ const skip = (0, report_1.resolveReportQuerySkip)(input.skip);
98
+ const take = (0, report_1.resolveReportQueryTake)(input.take);
99
+ return { items: sorted.slice(skip, skip + take), total: sorted.length };
100
+ }
101
+ //#endregion
102
+ //#region ----- Internals -----
103
+ function resolveSessionTenantId() {
104
+ var _a;
105
+ const request = (0, core_1.getEntityStorageRequest)();
106
+ const tenantId = (_a = request === null || request === void 0 ? void 0 : request[security_1.CURRENT_SESSION_KEY]) === null || _a === void 0 ? void 0 : _a.tenantId;
107
+ return typeof tenantId === 'string' && tenantId.trim() ? tenantId.trim() : undefined;
108
+ }
109
+ function resolveSessionApplicationId() {
110
+ var _a;
111
+ const request = (0, core_1.getEntityStorageRequest)();
112
+ const applicationId = (_a = request === null || request === void 0 ? void 0 : request[security_1.CURRENT_SESSION_KEY]) === null || _a === void 0 ? void 0 : _a.applicationId;
113
+ return typeof applicationId === 'string' && applicationId.trim()
114
+ ? applicationId.trim()
115
+ : undefined;
116
+ }
117
+ function firstString(value) {
118
+ if (typeof value === 'string' && value.trim()) {
119
+ return value.trim();
120
+ }
121
+ if (Array.isArray(value) && value.length > 0 && typeof value[0] === 'string') {
122
+ return value[0].trim() || undefined;
123
+ }
124
+ return undefined;
125
+ }
126
+ function normalizeDateRange(value) {
127
+ var _a, _b;
128
+ if (!value || typeof value !== 'object') {
129
+ return null;
130
+ }
131
+ const raw = value;
132
+ const fromRaw = (_a = raw['from']) !== null && _a !== void 0 ? _a : raw['start'];
133
+ const toRaw = (_b = raw['to']) !== null && _b !== void 0 ? _b : raw['end'];
134
+ if (typeof fromRaw !== 'string' || typeof toRaw !== 'string') {
135
+ return null;
136
+ }
137
+ const from = new Date(fromRaw);
138
+ const to = new Date(toRaw);
139
+ if (Number.isNaN(from.getTime()) || Number.isNaN(to.getTime())) {
140
+ return null;
141
+ }
142
+ // Date-only UI values: include the full end day for overlap semantics.
143
+ if (!hasExplicitTime(toRaw)) {
144
+ to.setHours(23, 59, 59, 999);
145
+ }
146
+ if (from.getTime() > to.getTime()) {
147
+ return null;
148
+ }
149
+ return { from, to };
150
+ }
151
+ function hasExplicitTime(isoLike) {
152
+ return /T\d{2}:\d{2}/.test(isoLike) || /\d{2}:\d{2}:\d{2}/.test(isoLike);
153
+ }
154
+ function sortRows(rows, sort) {
155
+ if (!(sort === null || sort === void 0 ? void 0 : sort.length)) {
156
+ return rows;
157
+ }
158
+ return [...rows].sort((a, b) => {
159
+ for (const sortField of sort) {
160
+ const field = sortField.field;
161
+ const aValue = a[field];
162
+ const bValue = b[field];
163
+ const dir = sortField.dir === 'asc' ? 1 : -1;
164
+ if (aValue == null && bValue == null) {
165
+ continue;
166
+ }
167
+ if (aValue == null) {
168
+ return dir;
169
+ }
170
+ if (bValue == null) {
171
+ return -dir;
172
+ }
173
+ if (aValue < bValue) {
174
+ return -dir;
175
+ }
176
+ if (aValue > bValue) {
177
+ return dir;
178
+ }
179
+ }
180
+ return 0;
181
+ });
182
+ }
183
+ //#endregion
184
+ //# sourceMappingURL=security-query.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-query.helpers.js","sourceRoot":"","sources":["../../../../../../../libs/modules/security-management/server/src/lib/queries/security-query.helpers.ts"],"names":[],"mappings":";;AA8CA,sEAmDC;AAQD,0DA0BC;AAED,kDAeC;AAED,oCAQC;;AA9JD,iEAAiF;AACjF,qEAIkD;AAClD,yEAGoD;AAiCpD,YAAY;AAEZ,uCAAuC;AAEvC,SAAgB,6BAA6B,CAC3C,UAAmB,EACnB,QAA2C,EAAE;IAE7C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,UAAiD,CAAC;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC,OAAO;QACnB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACzB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE,CAAC;IAET,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAuB,CAAC;QACvC,IAAI,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1E,SAAS;QACX,CAAC;QAED,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,YAAY;gBACf,MAAM,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;gBAC9D,MAAM;YACR,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/C,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACzB,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,CAAC;gBACD,MAAM;YACR,CAAC;YACD;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,uBAAuB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,uBAAuB,CACrC,OAAqC,EACrC,QAA2C,EAAE;;IAE7C,MAAM,QAAQ,GAAG,MAAA,CAAC,MAAA,KAAK,CAAC,eAAe,mCAAI,sBAAsB,EAAE,CAAC,0CAAE,IAAI,EAAE,CAAC;IAC7E,MAAM,aAAa,GAAG,MAAA,CACpB,MAAA,KAAK,CAAC,oBAAoB,mCAAI,2BAA2B,EAAE,CAC5D,0CAAE,IAAI,EAAE,CAAC;IAEV,IAAI,IAAI,qBAAsC,OAAO,CAAE,CAAC;IAExD,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,GAAG,KAAK,CAAC,eAAe;YAC1B,CAAC,iCAAM,IAAI,KAAE,QAAQ,EAAE,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,IAAI,EAAE,KAAI,QAAQ,IACxD,CAAC,iCAAM,IAAI,KAAE,QAAQ,GAAE,CAAC;IAC5B,CAAC;IAED,2EAA2E;IAC3E,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,mCAAQ,IAAI,KAAE,aAAa,GAAE,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,aAAa,EAAE,QAAQ,KAAc,IAAI,EAAb,IAAI,kBAAK,IAAI,EAA3C,iBAAoC,CAAO,CAAC;QAClD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,mBAAmB,CAAC,OAAqC;IAMvE,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAC1B,IAA+B,EAC/B,KAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAA,+BAAsB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAA,+BAAsB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AAC1E,CAAC;AAED,YAAY;AAEZ,+BAA+B;AAE/B,SAAS,sBAAsB;;IAC7B,MAAM,OAAO,GAAG,IAAA,8BAAuB,GAE1B,CAAC;IACd,MAAM,QAAQ,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,8BAAmB,CAAC,0CAAE,QAAQ,CAAC;IAC1D,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED,SAAS,2BAA2B;;IAClC,MAAM,OAAO,GAAG,IAAA,8BAAuB,GAE1B,CAAC;IACd,MAAM,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,8BAAmB,CAAC,0CAAE,aAAa,CAAC;IACpE,OAAO,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE;QAC9D,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;QACtB,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7E,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAA,GAAG,CAAC,MAAM,CAAC,mCAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAA,GAAG,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,QAAQ,CACf,IAA+B,EAC/B,IAA8B;IAE9B,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAA,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7B,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,OAAO,GAAG,CAAC;YACb,CAAC;YACD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC;YACd,CAAC;YACD,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC;YACd,CAAC;YACD,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC;gBACpB,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC;AAED,YAAY"}