@nauth-toolkit/core 0.1.13 → 0.1.17

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 (623) hide show
  1. package/dist/adapters/database-columns.d.ts +70 -0
  2. package/dist/adapters/database-columns.d.ts.map +1 -1
  3. package/dist/adapters/database-columns.js +76 -2
  4. package/dist/adapters/database-columns.js.map +1 -1
  5. package/dist/adapters/express.adapter.d.ts +66 -0
  6. package/dist/adapters/express.adapter.d.ts.map +1 -1
  7. package/dist/adapters/express.adapter.js +80 -0
  8. package/dist/adapters/express.adapter.js.map +1 -1
  9. package/dist/adapters/fastify.adapter.d.ts +42 -0
  10. package/dist/adapters/fastify.adapter.d.ts.map +1 -1
  11. package/dist/adapters/fastify.adapter.js +86 -0
  12. package/dist/adapters/fastify.adapter.js.map +1 -1
  13. package/dist/adapters/index.d.ts +5 -0
  14. package/dist/adapters/index.d.ts.map +1 -1
  15. package/dist/adapters/index.js +9 -0
  16. package/dist/adapters/index.js.map +1 -1
  17. package/dist/adapters/storage.factory.d.ts +107 -0
  18. package/dist/adapters/storage.factory.d.ts.map +1 -1
  19. package/dist/adapters/storage.factory.js +114 -0
  20. package/dist/adapters/storage.factory.js.map +1 -1
  21. package/dist/adapters.d.ts +8 -0
  22. package/dist/adapters.d.ts.map +1 -1
  23. package/dist/adapters.js +8 -0
  24. package/dist/adapters.js.map +1 -1
  25. package/dist/bootstrap.d.ts +82 -0
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +106 -0
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/dto/admin-set-password.dto.d.ts +90 -0
  30. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  31. package/dist/dto/admin-set-password.dto.js +91 -0
  32. package/dist/dto/admin-set-password.dto.js.map +1 -1
  33. package/dist/dto/auth-challenge.dto.d.ts +170 -0
  34. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  35. package/dist/dto/auth-challenge.dto.js +170 -0
  36. package/dist/dto/auth-challenge.dto.js.map +1 -1
  37. package/dist/dto/auth-response.dto.d.ts +196 -0
  38. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-response.dto.js +149 -0
  40. package/dist/dto/auth-response.dto.js.map +1 -1
  41. package/dist/dto/challenge-response.dto.d.ts +155 -0
  42. package/dist/dto/challenge-response.dto.d.ts.map +1 -1
  43. package/dist/dto/challenge-response.dto.js +8 -0
  44. package/dist/dto/challenge-response.dto.js.map +1 -1
  45. package/dist/dto/change-password-request.dto.d.ts +35 -0
  46. package/dist/dto/change-password-request.dto.d.ts.map +1 -1
  47. package/dist/dto/change-password-request.dto.js +35 -0
  48. package/dist/dto/change-password-request.dto.js.map +1 -1
  49. package/dist/dto/change-password-response.dto.d.ts +25 -0
  50. package/dist/dto/change-password-response.dto.d.ts.map +1 -1
  51. package/dist/dto/change-password-response.dto.js +25 -0
  52. package/dist/dto/change-password-response.dto.js.map +1 -1
  53. package/dist/dto/change-password.dto.d.ts +45 -0
  54. package/dist/dto/change-password.dto.d.ts.map +1 -1
  55. package/dist/dto/change-password.dto.js +45 -0
  56. package/dist/dto/change-password.dto.js.map +1 -1
  57. package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
  58. package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
  59. package/dist/dto/confirm-forgot-password.dto.js +59 -0
  60. package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
  61. package/dist/dto/error-response.dto.d.ts +103 -0
  62. package/dist/dto/error-response.dto.d.ts.map +1 -1
  63. package/dist/dto/error-response.dto.js +103 -0
  64. package/dist/dto/error-response.dto.js.map +1 -1
  65. package/dist/dto/forgot-password.dto.d.ts +58 -0
  66. package/dist/dto/forgot-password.dto.d.ts.map +1 -1
  67. package/dist/dto/forgot-password.dto.js +58 -0
  68. package/dist/dto/forgot-password.dto.js.map +1 -1
  69. package/dist/dto/get-available-methods.dto.d.ts +37 -0
  70. package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
  71. package/dist/dto/get-available-methods.dto.js +37 -0
  72. package/dist/dto/get-available-methods.dto.js.map +1 -1
  73. package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
  74. package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
  75. package/dist/dto/get-challenge-data-response.dto.js +24 -0
  76. package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
  77. package/dist/dto/get-challenge-data.dto.d.ts +46 -0
  78. package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
  79. package/dist/dto/get-challenge-data.dto.js +46 -0
  80. package/dist/dto/get-challenge-data.dto.js.map +1 -1
  81. package/dist/dto/get-client-info.dto.d.ts +74 -0
  82. package/dist/dto/get-client-info.dto.d.ts.map +1 -1
  83. package/dist/dto/get-client-info.dto.js +74 -0
  84. package/dist/dto/get-client-info.dto.js.map +1 -1
  85. package/dist/dto/get-device-token-response.dto.d.ts +21 -0
  86. package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
  87. package/dist/dto/get-device-token-response.dto.js +21 -0
  88. package/dist/dto/get-device-token-response.dto.js.map +1 -1
  89. package/dist/dto/get-events-by-type.dto.d.ts +50 -0
  90. package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
  91. package/dist/dto/get-events-by-type.dto.js +50 -0
  92. package/dist/dto/get-events-by-type.dto.js.map +1 -1
  93. package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
  94. package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
  95. package/dist/dto/get-ip-address-response.dto.js +20 -0
  96. package/dist/dto/get-ip-address-response.dto.js.map +1 -1
  97. package/dist/dto/get-mfa-status.dto.d.ts +59 -0
  98. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  99. package/dist/dto/get-mfa-status.dto.js +59 -0
  100. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  101. package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
  102. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  103. package/dist/dto/get-risk-assessment-history.dto.js +28 -0
  104. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  105. package/dist/dto/get-session-id-response.dto.d.ts +21 -0
  106. package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
  107. package/dist/dto/get-session-id-response.dto.js +21 -0
  108. package/dist/dto/get-session-id-response.dto.js.map +1 -1
  109. package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
  110. package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
  111. package/dist/dto/get-setup-data-response.dto.js +27 -0
  112. package/dist/dto/get-setup-data-response.dto.js.map +1 -1
  113. package/dist/dto/get-setup-data.dto.d.ts +51 -0
  114. package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
  115. package/dist/dto/get-setup-data.dto.js +51 -0
  116. package/dist/dto/get-setup-data.dto.js.map +1 -1
  117. package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
  118. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  119. package/dist/dto/get-suspicious-activity.dto.js +31 -0
  120. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  121. package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
  122. package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
  123. package/dist/dto/get-user-agent-response.dto.js +19 -0
  124. package/dist/dto/get-user-agent-response.dto.js.map +1 -1
  125. package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
  126. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  127. package/dist/dto/get-user-auth-history.dto.js +64 -0
  128. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  129. package/dist/dto/get-user-by-email.dto.d.ts +42 -0
  130. package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
  131. package/dist/dto/get-user-by-email.dto.js +42 -0
  132. package/dist/dto/get-user-by-email.dto.js.map +1 -1
  133. package/dist/dto/get-user-by-id.dto.d.ts +32 -0
  134. package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
  135. package/dist/dto/get-user-by-id.dto.js +32 -0
  136. package/dist/dto/get-user-by-id.dto.js.map +1 -1
  137. package/dist/dto/get-user-devices.dto.d.ts +34 -0
  138. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  139. package/dist/dto/get-user-devices.dto.js +34 -0
  140. package/dist/dto/get-user-devices.dto.js.map +1 -1
  141. package/dist/dto/get-user-response.dto.d.ts +14 -0
  142. package/dist/dto/get-user-response.dto.d.ts.map +1 -1
  143. package/dist/dto/get-user-response.dto.js +15 -0
  144. package/dist/dto/get-user-response.dto.js.map +1 -1
  145. package/dist/dto/has-provider.dto.d.ts +33 -0
  146. package/dist/dto/has-provider.dto.d.ts.map +1 -1
  147. package/dist/dto/has-provider.dto.js +33 -0
  148. package/dist/dto/has-provider.dto.js.map +1 -1
  149. package/dist/dto/index.js +5 -0
  150. package/dist/dto/index.js.map +1 -1
  151. package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
  152. package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
  153. package/dist/dto/is-trusted-device-response.dto.js +28 -0
  154. package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
  155. package/dist/dto/list-providers-response.dto.d.ts +19 -0
  156. package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
  157. package/dist/dto/list-providers-response.dto.js +19 -0
  158. package/dist/dto/list-providers-response.dto.js.map +1 -1
  159. package/dist/dto/login.dto.d.ts +48 -0
  160. package/dist/dto/login.dto.d.ts.map +1 -1
  161. package/dist/dto/login.dto.js +50 -1
  162. package/dist/dto/login.dto.js.map +1 -1
  163. package/dist/dto/logout-all-response.dto.d.ts +20 -0
  164. package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
  165. package/dist/dto/logout-all-response.dto.js +20 -0
  166. package/dist/dto/logout-all-response.dto.js.map +1 -1
  167. package/dist/dto/logout-all.dto.d.ts +42 -0
  168. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  169. package/dist/dto/logout-all.dto.js +42 -0
  170. package/dist/dto/logout-all.dto.js.map +1 -1
  171. package/dist/dto/logout-response.dto.d.ts +21 -0
  172. package/dist/dto/logout-response.dto.d.ts.map +1 -1
  173. package/dist/dto/logout-response.dto.js +21 -0
  174. package/dist/dto/logout-response.dto.js.map +1 -1
  175. package/dist/dto/logout.dto.d.ts +45 -0
  176. package/dist/dto/logout.dto.d.ts.map +1 -1
  177. package/dist/dto/logout.dto.js +45 -0
  178. package/dist/dto/logout.dto.js.map +1 -1
  179. package/dist/dto/refresh-token.dto.d.ts +28 -0
  180. package/dist/dto/refresh-token.dto.d.ts.map +1 -1
  181. package/dist/dto/refresh-token.dto.js +28 -0
  182. package/dist/dto/refresh-token.dto.js.map +1 -1
  183. package/dist/dto/remove-devices.dto.d.ts +51 -0
  184. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  185. package/dist/dto/remove-devices.dto.js +51 -0
  186. package/dist/dto/remove-devices.dto.js.map +1 -1
  187. package/dist/dto/resend-code-response.dto.d.ts +28 -0
  188. package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
  189. package/dist/dto/resend-code-response.dto.js +28 -0
  190. package/dist/dto/resend-code-response.dto.js.map +1 -1
  191. package/dist/dto/resend-code.dto.d.ts +37 -0
  192. package/dist/dto/resend-code.dto.d.ts.map +1 -1
  193. package/dist/dto/resend-code.dto.js +37 -0
  194. package/dist/dto/resend-code.dto.js.map +1 -1
  195. package/dist/dto/reset-password.dto.d.ts +74 -0
  196. package/dist/dto/reset-password.dto.d.ts.map +1 -1
  197. package/dist/dto/reset-password.dto.js +76 -1
  198. package/dist/dto/reset-password.dto.js.map +1 -1
  199. package/dist/dto/respond-challenge.dto.d.ts +147 -0
  200. package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
  201. package/dist/dto/respond-challenge.dto.js +162 -0
  202. package/dist/dto/respond-challenge.dto.js.map +1 -1
  203. package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
  204. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  205. package/dist/dto/set-mfa-exemption.dto.js +65 -0
  206. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  207. package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
  208. package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
  209. package/dist/dto/set-must-change-password-response.dto.js +23 -0
  210. package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
  211. package/dist/dto/set-must-change-password.dto.d.ts +32 -0
  212. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  213. package/dist/dto/set-must-change-password.dto.js +32 -0
  214. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  215. package/dist/dto/set-preferred-method.dto.d.ts +48 -0
  216. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  217. package/dist/dto/set-preferred-method.dto.js +48 -0
  218. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  219. package/dist/dto/setup-mfa.dto.d.ts +62 -0
  220. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  221. package/dist/dto/setup-mfa.dto.js +62 -0
  222. package/dist/dto/setup-mfa.dto.js.map +1 -1
  223. package/dist/dto/signup.dto.d.ts +92 -0
  224. package/dist/dto/signup.dto.d.ts.map +1 -1
  225. package/dist/dto/signup.dto.js +93 -0
  226. package/dist/dto/signup.dto.js.map +1 -1
  227. package/dist/dto/social-auth.dto.d.ts +234 -0
  228. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  229. package/dist/dto/social-auth.dto.js +234 -0
  230. package/dist/dto/social-auth.dto.js.map +1 -1
  231. package/dist/dto/trust-device-response.dto.d.ts +26 -0
  232. package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
  233. package/dist/dto/trust-device-response.dto.js +26 -0
  234. package/dist/dto/trust-device-response.dto.js.map +1 -1
  235. package/dist/dto/trust-device.dto.d.ts +9 -0
  236. package/dist/dto/trust-device.dto.d.ts.map +1 -1
  237. package/dist/dto/trust-device.dto.js +9 -0
  238. package/dist/dto/trust-device.dto.js.map +1 -1
  239. package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
  240. package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
  241. package/dist/dto/update-user-attributes-request.dto.js +36 -0
  242. package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
  243. package/dist/dto/user-response.dto.d.ts +81 -0
  244. package/dist/dto/user-response.dto.d.ts.map +1 -1
  245. package/dist/dto/user-response.dto.js +84 -2
  246. package/dist/dto/user-response.dto.js.map +1 -1
  247. package/dist/dto/user-update.dto.d.ts +132 -0
  248. package/dist/dto/user-update.dto.d.ts.map +1 -1
  249. package/dist/dto/user-update.dto.js +133 -0
  250. package/dist/dto/user-update.dto.js.map +1 -1
  251. package/dist/dto/verify-email.dto.d.ts +171 -0
  252. package/dist/dto/verify-email.dto.d.ts.map +1 -1
  253. package/dist/dto/verify-email.dto.js +173 -1
  254. package/dist/dto/verify-email.dto.js.map +1 -1
  255. package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
  256. package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
  257. package/dist/dto/verify-mfa-code.dto.js +65 -0
  258. package/dist/dto/verify-mfa-code.dto.js.map +1 -1
  259. package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
  260. package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
  261. package/dist/dto/verify-phone-by-sub.dto.js +49 -0
  262. package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
  263. package/dist/dto/verify-phone.dto.d.ts +139 -0
  264. package/dist/dto/verify-phone.dto.d.ts.map +1 -1
  265. package/dist/dto/verify-phone.dto.js +142 -1
  266. package/dist/dto/verify-phone.dto.js.map +1 -1
  267. package/dist/dto.d.ts +10 -0
  268. package/dist/dto.d.ts.map +1 -1
  269. package/dist/dto.js +10 -0
  270. package/dist/dto.js.map +1 -1
  271. package/dist/entities/auth-audit.entity.d.ts +159 -0
  272. package/dist/entities/auth-audit.entity.d.ts.map +1 -1
  273. package/dist/entities/auth-audit.entity.js +166 -0
  274. package/dist/entities/auth-audit.entity.js.map +1 -1
  275. package/dist/entities/challenge-session.entity.d.ts +87 -0
  276. package/dist/entities/challenge-session.entity.d.ts.map +1 -1
  277. package/dist/entities/challenge-session.entity.js +87 -0
  278. package/dist/entities/challenge-session.entity.js.map +1 -1
  279. package/dist/entities/index.d.ts +18 -0
  280. package/dist/entities/index.d.ts.map +1 -1
  281. package/dist/entities/index.js +18 -0
  282. package/dist/entities/index.js.map +1 -1
  283. package/dist/entities/login-attempt.entity.d.ts +43 -0
  284. package/dist/entities/login-attempt.entity.d.ts.map +1 -1
  285. package/dist/entities/login-attempt.entity.js +43 -0
  286. package/dist/entities/login-attempt.entity.js.map +1 -1
  287. package/dist/entities/mfa-device.entity.d.ts +112 -0
  288. package/dist/entities/mfa-device.entity.d.ts.map +1 -1
  289. package/dist/entities/mfa-device.entity.js +112 -0
  290. package/dist/entities/mfa-device.entity.js.map +1 -1
  291. package/dist/entities/rate-limit.entity.d.ts +31 -0
  292. package/dist/entities/rate-limit.entity.d.ts.map +1 -1
  293. package/dist/entities/rate-limit.entity.js +31 -0
  294. package/dist/entities/rate-limit.entity.js.map +1 -1
  295. package/dist/entities/session.entity.d.ts +121 -0
  296. package/dist/entities/session.entity.d.ts.map +1 -1
  297. package/dist/entities/session.entity.js +121 -0
  298. package/dist/entities/session.entity.js.map +1 -1
  299. package/dist/entities/social-account.entity.d.ts +75 -0
  300. package/dist/entities/social-account.entity.d.ts.map +1 -1
  301. package/dist/entities/social-account.entity.js +75 -0
  302. package/dist/entities/social-account.entity.js.map +1 -1
  303. package/dist/entities/storage-lock.entity.d.ts +28 -0
  304. package/dist/entities/storage-lock.entity.d.ts.map +1 -1
  305. package/dist/entities/storage-lock.entity.js +28 -0
  306. package/dist/entities/storage-lock.entity.js.map +1 -1
  307. package/dist/entities/trusted-device.entity.d.ts +83 -0
  308. package/dist/entities/trusted-device.entity.d.ts.map +1 -1
  309. package/dist/entities/trusted-device.entity.js +83 -0
  310. package/dist/entities/trusted-device.entity.js.map +1 -1
  311. package/dist/entities/user.entity.d.ts +166 -0
  312. package/dist/entities/user.entity.d.ts.map +1 -1
  313. package/dist/entities/user.entity.js +166 -0
  314. package/dist/entities/user.entity.js.map +1 -1
  315. package/dist/entities/verification-token.entity.d.ts +102 -0
  316. package/dist/entities/verification-token.entity.d.ts.map +1 -1
  317. package/dist/entities/verification-token.entity.js +102 -0
  318. package/dist/entities/verification-token.entity.js.map +1 -1
  319. package/dist/entities.d.ts +8 -0
  320. package/dist/entities.d.ts.map +1 -1
  321. package/dist/entities.js +8 -0
  322. package/dist/entities.js.map +1 -1
  323. package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
  324. package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
  325. package/dist/enums/auth-audit-event-type.enum.js +244 -0
  326. package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
  327. package/dist/enums/error-codes.enum.d.ts +296 -0
  328. package/dist/enums/error-codes.enum.d.ts.map +1 -1
  329. package/dist/enums/error-codes.enum.js +332 -0
  330. package/dist/enums/error-codes.enum.js.map +1 -1
  331. package/dist/enums/mfa-method.enum.d.ts +74 -0
  332. package/dist/enums/mfa-method.enum.d.ts.map +1 -1
  333. package/dist/enums/mfa-method.enum.js +64 -0
  334. package/dist/enums/mfa-method.enum.js.map +1 -1
  335. package/dist/enums/risk-factor.enum.d.ts +91 -0
  336. package/dist/enums/risk-factor.enum.d.ts.map +1 -1
  337. package/dist/enums/risk-factor.enum.js +97 -0
  338. package/dist/enums/risk-factor.enum.js.map +1 -1
  339. package/dist/exceptions/nauth.exception.d.ts +149 -0
  340. package/dist/exceptions/nauth.exception.d.ts.map +1 -1
  341. package/dist/exceptions/nauth.exception.js +159 -0
  342. package/dist/exceptions/nauth.exception.js.map +1 -1
  343. package/dist/handlers/auth.handler.d.ts +32 -0
  344. package/dist/handlers/auth.handler.d.ts.map +1 -1
  345. package/dist/handlers/auth.handler.js +47 -1
  346. package/dist/handlers/auth.handler.js.map +1 -1
  347. package/dist/handlers/client-info.handler.d.ts +25 -0
  348. package/dist/handlers/client-info.handler.d.ts.map +1 -1
  349. package/dist/handlers/client-info.handler.js +36 -2
  350. package/dist/handlers/client-info.handler.js.map +1 -1
  351. package/dist/handlers/csrf.handler.d.ts +32 -0
  352. package/dist/handlers/csrf.handler.d.ts.map +1 -1
  353. package/dist/handlers/csrf.handler.js +49 -1
  354. package/dist/handlers/csrf.handler.js.map +1 -1
  355. package/dist/handlers/token-delivery.handler.d.ts +16 -0
  356. package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
  357. package/dist/handlers/token-delivery.handler.js +22 -1
  358. package/dist/handlers/token-delivery.handler.js.map +1 -1
  359. package/dist/index.d.ts +34 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +67 -0
  362. package/dist/index.js.map +1 -1
  363. package/dist/interfaces/client-info.interface.d.ts +58 -0
  364. package/dist/interfaces/client-info.interface.d.ts.map +1 -1
  365. package/dist/interfaces/config.interface.d.ts +1774 -0
  366. package/dist/interfaces/config.interface.d.ts.map +1 -1
  367. package/dist/interfaces/config.interface.js +16 -0
  368. package/dist/interfaces/config.interface.js.map +1 -1
  369. package/dist/interfaces/entities.interface.d.ts +48 -0
  370. package/dist/interfaces/entities.interface.d.ts.map +1 -1
  371. package/dist/interfaces/entities.interface.js +8 -0
  372. package/dist/interfaces/entities.interface.js.map +1 -1
  373. package/dist/interfaces/index.js +5 -0
  374. package/dist/interfaces/index.js.map +1 -1
  375. package/dist/interfaces/logger.interface.d.ts +213 -0
  376. package/dist/interfaces/logger.interface.d.ts.map +1 -1
  377. package/dist/interfaces/logger.interface.js +35 -0
  378. package/dist/interfaces/logger.interface.js.map +1 -1
  379. package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
  380. package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
  381. package/dist/interfaces/oauth.interface.d.ts +110 -0
  382. package/dist/interfaces/oauth.interface.d.ts.map +1 -1
  383. package/dist/interfaces/provider.interface.d.ts +83 -0
  384. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  385. package/dist/interfaces/sms-template.interface.d.ts +246 -0
  386. package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
  387. package/dist/interfaces/sms-template.interface.js +26 -0
  388. package/dist/interfaces/sms-template.interface.js.map +1 -1
  389. package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
  390. package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
  391. package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
  392. package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
  393. package/dist/interfaces/template.interface.d.ts +351 -0
  394. package/dist/interfaces/template.interface.d.ts.map +1 -1
  395. package/dist/interfaces/template.interface.js +13 -0
  396. package/dist/interfaces/template.interface.js.map +1 -1
  397. package/dist/interfaces/token-verifier.interface.d.ts +101 -0
  398. package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
  399. package/dist/interfaces.d.ts +8 -0
  400. package/dist/interfaces.d.ts.map +1 -1
  401. package/dist/interfaces.js +8 -0
  402. package/dist/interfaces.js.map +1 -1
  403. package/dist/internal.d.ts +120 -0
  404. package/dist/internal.d.ts.map +1 -1
  405. package/dist/internal.js +138 -0
  406. package/dist/internal.js.map +1 -1
  407. package/dist/platform/interfaces.d.ts +187 -0
  408. package/dist/platform/interfaces.d.ts.map +1 -1
  409. package/dist/platform/interfaces.js +11 -0
  410. package/dist/platform/interfaces.js.map +1 -1
  411. package/dist/schemas/auth-config.schema.d.ts +48 -0
  412. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  413. package/dist/schemas/auth-config.schema.js +188 -9
  414. package/dist/schemas/auth-config.schema.js.map +1 -1
  415. package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
  416. package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
  417. package/dist/services/adaptive-mfa-decision.service.js +151 -5
  418. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  419. package/dist/services/auth-audit.service.d.ts +195 -0
  420. package/dist/services/auth-audit.service.d.ts.map +1 -1
  421. package/dist/services/auth-audit.service.js +228 -1
  422. package/dist/services/auth-audit.service.js.map +1 -1
  423. package/dist/services/auth-challenge-helper.service.d.ts +144 -1
  424. package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
  425. package/dist/services/auth-challenge-helper.service.js +295 -16
  426. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  427. package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
  428. package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
  429. package/dist/services/auth-flow-context-builder.service.js +184 -5
  430. package/dist/services/auth-flow-context-builder.service.js.map +1 -1
  431. package/dist/services/auth-flow-rules.d.ts +136 -0
  432. package/dist/services/auth-flow-rules.d.ts.map +1 -1
  433. package/dist/services/auth-flow-rules.js +137 -0
  434. package/dist/services/auth-flow-rules.js.map +1 -1
  435. package/dist/services/auth-flow-state-definitions.d.ts +40 -0
  436. package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
  437. package/dist/services/auth-flow-state-definitions.js +98 -0
  438. package/dist/services/auth-flow-state-definitions.js.map +1 -1
  439. package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
  440. package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
  441. package/dist/services/auth-flow-state-machine.service.js +102 -0
  442. package/dist/services/auth-flow-state-machine.service.js.map +1 -1
  443. package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
  444. package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
  445. package/dist/services/auth-flow-state-machine.types.js +47 -0
  446. package/dist/services/auth-flow-state-machine.types.js.map +1 -1
  447. package/dist/services/auth.service.d.ts +397 -1
  448. package/dist/services/auth.service.d.ts.map +1 -1
  449. package/dist/services/auth.service.js +943 -27
  450. package/dist/services/auth.service.js.map +1 -1
  451. package/dist/services/challenge.service.d.ts +255 -1
  452. package/dist/services/challenge.service.d.ts.map +1 -1
  453. package/dist/services/challenge.service.js +327 -3
  454. package/dist/services/challenge.service.js.map +1 -1
  455. package/dist/services/client-info.service.d.ts +143 -0
  456. package/dist/services/client-info.service.d.ts.map +1 -1
  457. package/dist/services/client-info.service.js +161 -0
  458. package/dist/services/client-info.service.js.map +1 -1
  459. package/dist/services/csrf.service.d.ts +15 -0
  460. package/dist/services/csrf.service.d.ts.map +1 -1
  461. package/dist/services/csrf.service.js +16 -0
  462. package/dist/services/csrf.service.js.map +1 -1
  463. package/dist/services/email-verification.service.d.ts +52 -0
  464. package/dist/services/email-verification.service.d.ts.map +1 -1
  465. package/dist/services/email-verification.service.js +149 -10
  466. package/dist/services/email-verification.service.js.map +1 -1
  467. package/dist/services/geo-location.service.d.ts +105 -0
  468. package/dist/services/geo-location.service.d.ts.map +1 -1
  469. package/dist/services/geo-location.service.js +188 -2
  470. package/dist/services/geo-location.service.js.map +1 -1
  471. package/dist/services/jwt.service.d.ts +257 -0
  472. package/dist/services/jwt.service.d.ts.map +1 -1
  473. package/dist/services/jwt.service.js +284 -1
  474. package/dist/services/jwt.service.js.map +1 -1
  475. package/dist/services/mfa-base.service.d.ts +179 -1
  476. package/dist/services/mfa-base.service.d.ts.map +1 -1
  477. package/dist/services/mfa-base.service.js +256 -2
  478. package/dist/services/mfa-base.service.js.map +1 -1
  479. package/dist/services/mfa.service.d.ts +304 -0
  480. package/dist/services/mfa.service.d.ts.map +1 -1
  481. package/dist/services/mfa.service.js +380 -0
  482. package/dist/services/mfa.service.js.map +1 -1
  483. package/dist/services/password-reset.service.d.ts +46 -0
  484. package/dist/services/password-reset.service.d.ts.map +1 -1
  485. package/dist/services/password-reset.service.js +79 -0
  486. package/dist/services/password-reset.service.js.map +1 -1
  487. package/dist/services/password.service.d.ts +139 -0
  488. package/dist/services/password.service.d.ts.map +1 -1
  489. package/dist/services/password.service.js +167 -9
  490. package/dist/services/password.service.js.map +1 -1
  491. package/dist/services/phone-verification.service.d.ts +75 -0
  492. package/dist/services/phone-verification.service.d.ts.map +1 -1
  493. package/dist/services/phone-verification.service.js +188 -6
  494. package/dist/services/phone-verification.service.js.map +1 -1
  495. package/dist/services/risk-detection.service.d.ts +198 -0
  496. package/dist/services/risk-detection.service.d.ts.map +1 -1
  497. package/dist/services/risk-detection.service.js +358 -11
  498. package/dist/services/risk-detection.service.js.map +1 -1
  499. package/dist/services/risk-scoring.service.d.ts +84 -0
  500. package/dist/services/risk-scoring.service.d.ts.map +1 -1
  501. package/dist/services/risk-scoring.service.js +87 -0
  502. package/dist/services/risk-scoring.service.js.map +1 -1
  503. package/dist/services/session.service.d.ts +204 -0
  504. package/dist/services/session.service.d.ts.map +1 -1
  505. package/dist/services/session.service.js +289 -4
  506. package/dist/services/session.service.js.map +1 -1
  507. package/dist/services/social-auth-base.service.d.ts +123 -1
  508. package/dist/services/social-auth-base.service.d.ts.map +1 -1
  509. package/dist/services/social-auth-base.service.js +155 -2
  510. package/dist/services/social-auth-base.service.js.map +1 -1
  511. package/dist/services/social-auth.service.d.ts +191 -0
  512. package/dist/services/social-auth.service.d.ts.map +1 -1
  513. package/dist/services/social-auth.service.js +215 -2
  514. package/dist/services/social-auth.service.js.map +1 -1
  515. package/dist/services/social-provider-registry.service.d.ts +86 -0
  516. package/dist/services/social-provider-registry.service.d.ts.map +1 -1
  517. package/dist/services/social-provider-registry.service.js +86 -0
  518. package/dist/services/social-provider-registry.service.js.map +1 -1
  519. package/dist/services/trusted-device.service.d.ts +105 -0
  520. package/dist/services/trusted-device.service.d.ts.map +1 -1
  521. package/dist/services/trusted-device.service.js +133 -4
  522. package/dist/services/trusted-device.service.js.map +1 -1
  523. package/dist/storage/account-lockout-storage.service.d.ts +35 -0
  524. package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
  525. package/dist/storage/account-lockout-storage.service.js +35 -0
  526. package/dist/storage/account-lockout-storage.service.js.map +1 -1
  527. package/dist/storage/memory-storage.adapter.d.ts +148 -0
  528. package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
  529. package/dist/storage/memory-storage.adapter.js +201 -6
  530. package/dist/storage/memory-storage.adapter.js.map +1 -1
  531. package/dist/storage/rate-limit-storage.service.d.ts +3 -0
  532. package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
  533. package/dist/storage/rate-limit-storage.service.js +4 -0
  534. package/dist/storage/rate-limit-storage.service.js.map +1 -1
  535. package/dist/storage.d.ts +8 -0
  536. package/dist/storage.d.ts.map +1 -1
  537. package/dist/storage.js +8 -0
  538. package/dist/storage.js.map +1 -1
  539. package/dist/templates/html-template.engine.d.ts +110 -0
  540. package/dist/templates/html-template.engine.d.ts.map +1 -1
  541. package/dist/templates/html-template.engine.js +147 -0
  542. package/dist/templates/html-template.engine.js.map +1 -1
  543. package/dist/templates/index.d.ts +5 -0
  544. package/dist/templates/index.d.ts.map +1 -1
  545. package/dist/templates/index.js +5 -0
  546. package/dist/templates/index.js.map +1 -1
  547. package/dist/templates/sms-template.engine.d.ts +151 -0
  548. package/dist/templates/sms-template.engine.d.ts.map +1 -1
  549. package/dist/templates/sms-template.engine.js +171 -0
  550. package/dist/templates/sms-template.engine.js.map +1 -1
  551. package/dist/templates.d.ts +8 -0
  552. package/dist/templates.d.ts.map +1 -1
  553. package/dist/templates.js +8 -0
  554. package/dist/templates.js.map +1 -1
  555. package/dist/utils/common-passwords.d.ts +42 -0
  556. package/dist/utils/common-passwords.d.ts.map +1 -1
  557. package/dist/utils/common-passwords.js +88 -0
  558. package/dist/utils/common-passwords.js.map +1 -1
  559. package/dist/utils/context-storage.d.ts +129 -0
  560. package/dist/utils/context-storage.d.ts.map +1 -1
  561. package/dist/utils/context-storage.js +129 -0
  562. package/dist/utils/context-storage.js.map +1 -1
  563. package/dist/utils/cookie-names.util.d.ts +35 -0
  564. package/dist/utils/cookie-names.util.d.ts.map +1 -1
  565. package/dist/utils/cookie-names.util.js +37 -0
  566. package/dist/utils/cookie-names.util.js.map +1 -1
  567. package/dist/utils/cookies.util.d.ts +19 -0
  568. package/dist/utils/cookies.util.d.ts.map +1 -1
  569. package/dist/utils/cookies.util.js +30 -3
  570. package/dist/utils/cookies.util.js.map +1 -1
  571. package/dist/utils/index.d.ts +3 -0
  572. package/dist/utils/index.d.ts.map +1 -1
  573. package/dist/utils/index.js +4 -0
  574. package/dist/utils/index.js.map +1 -1
  575. package/dist/utils/ip-extractor.d.ts +88 -0
  576. package/dist/utils/ip-extractor.d.ts.map +1 -1
  577. package/dist/utils/ip-extractor.js +109 -16
  578. package/dist/utils/ip-extractor.js.map +1 -1
  579. package/dist/utils/nauth-logger.d.ts +70 -0
  580. package/dist/utils/nauth-logger.d.ts.map +1 -1
  581. package/dist/utils/nauth-logger.js +82 -4
  582. package/dist/utils/nauth-logger.js.map +1 -1
  583. package/dist/utils/pii-redactor.d.ts +70 -0
  584. package/dist/utils/pii-redactor.d.ts.map +1 -1
  585. package/dist/utils/pii-redactor.js +102 -0
  586. package/dist/utils/pii-redactor.js.map +1 -1
  587. package/dist/utils/setup/get-repositories.d.ts +16 -0
  588. package/dist/utils/setup/get-repositories.d.ts.map +1 -1
  589. package/dist/utils/setup/get-repositories.js +21 -0
  590. package/dist/utils/setup/get-repositories.js.map +1 -1
  591. package/dist/utils/setup/init-services.d.ts +40 -1
  592. package/dist/utils/setup/init-services.d.ts.map +1 -1
  593. package/dist/utils/setup/init-services.js +98 -0
  594. package/dist/utils/setup/init-services.js.map +1 -1
  595. package/dist/utils/setup/init-social.d.ts +27 -0
  596. package/dist/utils/setup/init-social.d.ts.map +1 -1
  597. package/dist/utils/setup/init-social.js +49 -0
  598. package/dist/utils/setup/init-social.js.map +1 -1
  599. package/dist/utils/setup/init-storage.d.ts +22 -0
  600. package/dist/utils/setup/init-storage.d.ts.map +1 -1
  601. package/dist/utils/setup/init-storage.js +36 -0
  602. package/dist/utils/setup/init-storage.js.map +1 -1
  603. package/dist/utils/setup/register-mfa.d.ts +22 -0
  604. package/dist/utils/setup/register-mfa.d.ts.map +1 -1
  605. package/dist/utils/setup/register-mfa.js +41 -0
  606. package/dist/utils/setup/register-mfa.js.map +1 -1
  607. package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
  608. package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
  609. package/dist/utils/setup/run-nauth-migrations.js +8 -0
  610. package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
  611. package/dist/utils/token-delivery-policy.d.ts +17 -0
  612. package/dist/utils/token-delivery-policy.d.ts.map +1 -1
  613. package/dist/utils/token-delivery-policy.js +17 -0
  614. package/dist/utils/token-delivery-policy.js.map +1 -1
  615. package/dist/utils.d.ts +8 -0
  616. package/dist/utils.d.ts.map +1 -1
  617. package/dist/utils.js +8 -0
  618. package/dist/utils.js.map +1 -1
  619. package/dist/validators/template.validator.d.ts +80 -0
  620. package/dist/validators/template.validator.d.ts.map +1 -1
  621. package/dist/validators/template.validator.js +94 -0
  622. package/dist/validators/template.validator.js.map +1 -1
  623. package/package.json +7 -2
@@ -10,6 +10,13 @@ import { GetUserAuthHistoryDTO, GetUserAuthHistoryResponseDTO } from '../dto/get
10
10
  import { GetEventsByTypeDTO, GetEventsByTypeResponseDTO } from '../dto/get-events-by-type.dto';
11
11
  import { GetSuspiciousActivityDTO, GetSuspiciousActivityResponseDTO } from '../dto/get-suspicious-activity.dto';
12
12
  import { GetRiskAssessmentHistoryDTO, GetRiskAssessmentHistoryResponseDTO } from '../dto/get-risk-assessment-history.dto';
13
+ /**
14
+ * DTO for creating audit events
15
+ *
16
+ * @internal
17
+ * This DTO is only used by InternalAuthAuditService and should not be exposed
18
+ * to consumer applications.
19
+ */
13
20
  export interface CreateAuthAuditEventDTO {
14
21
  userId?: number;
15
22
  userSub?: string;
@@ -27,18 +34,206 @@ export interface CreateAuthAuditEventDTO {
27
34
  description?: string | null;
28
35
  metadata?: Record<string, unknown> | null;
29
36
  }
37
+ /**
38
+ * Authentication Audit Service (Base Class - Public API)
39
+ *
40
+ * Manages audit trail queries for authentication and security events.
41
+ * Provides query capabilities for retrieving audit history.
42
+ *
43
+ * **Key Features:**
44
+ * - Efficient queries using userId (internal integer ID)
45
+ * - Pagination support for large datasets
46
+ * - Query filtering by event type, status, date ranges
47
+ * - User history queries (resolves userSub to userId automatically)
48
+ *
49
+ * **Design Notes:**
50
+ * - Only stores `userId` (integer) - no userSub duplication
51
+ * - All methods accepting userSub resolve to userId before querying
52
+ * - Risk tracking fields are infrastructure for future adaptive MFA (no business logic)
53
+ *
54
+ * **Note:** This is the public API class. Event recording is handled internally
55
+ * by `InternalAuthAuditService` and is not exposed to consumer applications.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Get user history (accepts userSub, resolves to userId)
60
+ * const history = await auditService.getUserAuthHistory({
61
+ * userSub: 'user-uuid',
62
+ * page: 1,
63
+ * limit: 50,
64
+ * startDate: new Date('2025-01-01'),
65
+ * });
66
+ * ```
67
+ */
30
68
  export declare class AuthAuditService {
31
69
  protected readonly auditRepository: Repository<BaseAuthAudit>;
32
70
  protected readonly userRepository: Repository<BaseUser>;
33
71
  protected readonly logger: NAuthLogger;
34
72
  protected readonly clientInfoService?: ClientInfoService | undefined;
35
73
  constructor(auditRepository: Repository<BaseAuthAudit>, userRepository: Repository<BaseUser>, logger: NAuthLogger, clientInfoService?: ClientInfoService | undefined);
74
+ /**
75
+ * Get paginated authentication history for a user
76
+ *
77
+ * Accepts userSub (external identifier) and resolves to userId for efficient queries.
78
+ * Supports filtering by event types, status, and date ranges.
79
+ *
80
+ * @param request - Request DTO containing userSub and filtering options
81
+ * @returns Response DTO with paginated audit records
82
+ * @throws {NAuthException} If user not found
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * const history = await auditService.getUserAuthHistory({
87
+ * userSub: 'user-uuid',
88
+ * page: 1,
89
+ * limit: 50,
90
+ * eventTypes: [AuthAuditEventType.LOGIN_SUCCESS, AuthAuditEventType.LOGIN_FAILED],
91
+ * startDate: new Date('2025-01-01'),
92
+ * });
93
+ * ```
94
+ */
36
95
  getUserAuthHistory(request: GetUserAuthHistoryDTO): Promise<GetUserAuthHistoryResponseDTO>;
96
+ /**
97
+ * Get events by type with pagination
98
+ *
99
+ * @param request - Request DTO containing eventType and pagination options
100
+ * @returns Response DTO with paginated audit records
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const events = await auditService.getEventsByType({
105
+ * eventType: AuthAuditEventType.SUSPICIOUS_ACTIVITY,
106
+ * page: 1,
107
+ * limit: 100,
108
+ * });
109
+ * ```
110
+ */
37
111
  getEventsByType(request: GetEventsByTypeDTO): Promise<GetEventsByTypeResponseDTO>;
112
+ /**
113
+ * Get suspicious activity events
114
+ *
115
+ * Returns events with SUSPICIOUS status or SUSPICIOUS_ACTIVITY event type.
116
+ *
117
+ * @param request - Request DTO containing optional userSub and limit
118
+ * @returns Response DTO with array of suspicious audit events
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * // Get all suspicious activity
123
+ * const suspicious = await auditService.getSuspiciousActivity({});
124
+ *
125
+ * // Get suspicious activity for specific user
126
+ * const userSuspicious = await auditService.getSuspiciousActivity({
127
+ * userSub: 'user-uuid',
128
+ * limit: 50,
129
+ * });
130
+ * ```
131
+ */
38
132
  getSuspiciousActivity(request: GetSuspiciousActivityDTO): Promise<GetSuspiciousActivityResponseDTO>;
133
+ /**
134
+ * Get risk assessment history for adaptive MFA analysis
135
+ *
136
+ * Returns events where risk assessment was performed (ADAPTIVE_MFA_RISK_ASSESSED,
137
+ * ADAPTIVE_MFA_TRIGGERED, ADAPTIVE_MFA_BYPASSED).
138
+ *
139
+ * @param request - Request DTO containing userSub and limit
140
+ * @returns Response DTO with array of risk assessment audit events
141
+ * @throws {NAuthException} If user not found
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const riskHistory = await auditService.getRiskAssessmentHistory({
146
+ * userSub: 'user-uuid',
147
+ * limit: 50,
148
+ * });
149
+ * ```
150
+ */
39
151
  getRiskAssessmentHistory(request: GetRiskAssessmentHistoryDTO): Promise<GetRiskAssessmentHistoryResponseDTO>;
40
152
  }
153
+ /**
154
+ * Internal Authentication Audit Service
155
+ *
156
+ * Extends the base AuthAuditService with event recording capabilities.
157
+ * This service is only available via `@nauth-toolkit/core/internal` and should
158
+ * NOT be used by consumer applications.
159
+ *
160
+ * **Event Recording:**
161
+ * The `recordEvent()` method is internal-only and is used by nauth-toolkit
162
+ * services to log authentication events. Consumer applications should use
163
+ * the query methods from the base `AuthAuditService` class.
164
+ *
165
+ * @internal
166
+ * This class is only exported from `@nauth-toolkit/core/internal` for use
167
+ * by framework adapters. Consumer applications should use the base
168
+ * `AuthAuditService` from `@nauth-toolkit/core`.
169
+ *
170
+ * @example
171
+ * ```typescript
172
+ * // Framework adapter usage
173
+ * import { AuthAuditService } from '@nauth-toolkit/core/internal';
174
+ *
175
+ * const auditService = new AuthAuditService(...);
176
+ * // Can use recordEvent() here (internal only)
177
+ * await auditService.recordEvent({ ... });
178
+ * ```
179
+ */
41
180
  export declare class InternalAuthAuditService extends AuthAuditService {
181
+ /**
182
+ * Record an authentication audit event
183
+ *
184
+ * Creates an audit record for an authentication or security event.
185
+ * Automatically extracts client information from request context when available.
186
+ * This method is non-blocking - errors are logged but don't throw exceptions.
187
+ *
188
+ * **Automatic Client Info Extraction:**
189
+ * When ClientInfoService is available, the following fields are automatically populated:
190
+ * - ipAddress, ipCountry, ipCity (from request and geolocation)
191
+ * - userAgent, platform, browser (from user agent parsing)
192
+ * - deviceId, deviceName, deviceType (from request context)
193
+ *
194
+ * Note: These fields cannot be overridden via the DTO - they are always captured from the request context.
195
+ * Only deviceId can be explicitly set for special cases (e.g., newly created device tokens).
196
+ * Do not include ipAddress, ipCountry, ipCity, userAgent, platform, browser, deviceName, or deviceType
197
+ * in the DTO - they will be automatically captured and attempts to include them will cause TypeScript errors.
198
+ *
199
+ * **Automatic performedBy Population:**
200
+ * The `performedBy` field is automatically populated from the authenticated user's context:
201
+ * - If userId is available from ClientInfoService (extracted from JWT token by interceptors/handlers), it is used as `performedBy`
202
+ * - This captures who performed the action (e.g., admin performing action on another user)
203
+ * - If no userId is found in client info, `performedBy` defaults to the event's `userId` (user performing action on themselves)
204
+ * - Explicit `performedBy` in DTO overrides automatic population
205
+ *
206
+ * @internal
207
+ * This method is only available in InternalAuthAuditService and should not
208
+ * be exposed to consumer applications.
209
+ *
210
+ * @param data - Audit event data (only event-specific fields needed)
211
+ * @param data.userId - Internal user ID (preferred, more efficient)
212
+ * @param data.userSub - External user identifier (will lookup userId if userId not provided)
213
+ * @param data.eventType - Type of event
214
+ * @param data.eventStatus - Event classification status
215
+ * @returns Created audit record
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * // Simple recording - client info auto-populated
220
+ * await auditService.recordEvent({
221
+ * userId: user.id,
222
+ * eventType: AuthAuditEventType.LOGIN_SUCCESS,
223
+ * eventStatus: 'SUCCESS',
224
+ * authMethod: 'password',
225
+ * // ipAddress, userAgent, deviceName, etc. automatically included!
226
+ * });
227
+ *
228
+ * // Override specific fields if needed
229
+ * await auditService.recordEvent({
230
+ * userId: user.id,
231
+ * eventType: AuthAuditEventType.LOGIN_SUCCESS,
232
+ * eventStatus: 'SUCCESS',
233
+ * // ipAddress, userAgent, etc. automatically captured from request context
234
+ * });
235
+ * ```
236
+ */
42
237
  recordEvent(data: CreateAuthAuditEventDTO): Promise<IAuthAudit | null>;
43
238
  }
44
239
  //# sourceMappingURL=auth-audit.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-audit.service.d.ts","sourceRoot":"","sources":["../../src/services/auth-audit.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAS,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAChH,OAAO,EACL,2BAA2B,EAC3B,mCAAmC,EACpC,MAAM,wCAAwC,CAAC;AAShD,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,WAAW,EAAE,oBAAoB,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAItC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAiCD,qBAAa,gBAAgB;IAEzB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,aAAa,CAAC;IAC7D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC;IACvD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW;IACtC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;gBAHrC,eAAe,EAAE,UAAU,CAAC,aAAa,CAAC,EAC1C,cAAc,EAAE,UAAU,CAAC,QAAQ,CAAC,EACpC,MAAM,EAAE,WAAW,EACnB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IA4BpD,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAmE1F,eAAe,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAmDjF,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IA+CnG,wBAAwB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,mCAAmC,CAAC;CA6BnH;AAiCD,qBAAa,wBAAyB,SAAQ,gBAAgB;IAyDtD,WAAW,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;CAmK7E"}
1
+ {"version":3,"file":"auth-audit.service.d.ts","sourceRoot":"","sources":["../../src/services/auth-audit.service.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,37 @@ const get_user_auth_history_dto_1 = require("../dto/get-user-auth-history.dto");
8
8
  const get_events_by_type_dto_1 = require("../dto/get-events-by-type.dto");
9
9
  const get_suspicious_activity_dto_1 = require("../dto/get-suspicious-activity.dto");
10
10
  const get_risk_assessment_history_dto_1 = require("../dto/get-risk-assessment-history.dto");
11
+ /**
12
+ * Authentication Audit Service (Base Class - Public API)
13
+ *
14
+ * Manages audit trail queries for authentication and security events.
15
+ * Provides query capabilities for retrieving audit history.
16
+ *
17
+ * **Key Features:**
18
+ * - Efficient queries using userId (internal integer ID)
19
+ * - Pagination support for large datasets
20
+ * - Query filtering by event type, status, date ranges
21
+ * - User history queries (resolves userSub to userId automatically)
22
+ *
23
+ * **Design Notes:**
24
+ * - Only stores `userId` (integer) - no userSub duplication
25
+ * - All methods accepting userSub resolve to userId before querying
26
+ * - Risk tracking fields are infrastructure for future adaptive MFA (no business logic)
27
+ *
28
+ * **Note:** This is the public API class. Event recording is handled internally
29
+ * by `InternalAuthAuditService` and is not exposed to consumer applications.
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * // Get user history (accepts userSub, resolves to userId)
34
+ * const history = await auditService.getUserAuthHistory({
35
+ * userSub: 'user-uuid',
36
+ * page: 1,
37
+ * limit: 50,
38
+ * startDate: new Date('2025-01-01'),
39
+ * });
40
+ * ```
41
+ */
11
42
  class AuthAuditService {
12
43
  auditRepository;
13
44
  userRepository;
@@ -19,7 +50,32 @@ class AuthAuditService {
19
50
  this.logger = logger;
20
51
  this.clientInfoService = clientInfoService;
21
52
  }
53
+ // ============================================================================
54
+ // Query Methods
55
+ // ============================================================================
56
+ /**
57
+ * Get paginated authentication history for a user
58
+ *
59
+ * Accepts userSub (external identifier) and resolves to userId for efficient queries.
60
+ * Supports filtering by event types, status, and date ranges.
61
+ *
62
+ * @param request - Request DTO containing userSub and filtering options
63
+ * @returns Response DTO with paginated audit records
64
+ * @throws {NAuthException} If user not found
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const history = await auditService.getUserAuthHistory({
69
+ * userSub: 'user-uuid',
70
+ * page: 1,
71
+ * limit: 50,
72
+ * eventTypes: [AuthAuditEventType.LOGIN_SUCCESS, AuthAuditEventType.LOGIN_FAILED],
73
+ * startDate: new Date('2025-01-01'),
74
+ * });
75
+ * ```
76
+ */
22
77
  async getUserAuthHistory(request) {
78
+ // Resolve userSub to userId
23
79
  const user = (await this.userRepository.findOne({ where: { sub: request.userSub } }));
24
80
  if (!user) {
25
81
  throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'User not found');
@@ -27,22 +83,28 @@ class AuthAuditService {
27
83
  const page = request.page || 1;
28
84
  const limit = request.limit || 50;
29
85
  const skip = (page - 1) * limit;
86
+ // Build query
30
87
  const queryBuilder = this.auditRepository
31
88
  .createQueryBuilder('audit')
32
89
  .where('audit.userId = :userId', { userId: user.id });
90
+ // Date range filter
33
91
  if (request.startDate) {
34
92
  queryBuilder.andWhere('audit.createdAt >= :startDate', { startDate: request.startDate });
35
93
  }
36
94
  if (request.endDate) {
37
95
  queryBuilder.andWhere('audit.createdAt <= :endDate', { endDate: request.endDate });
38
96
  }
97
+ // Event type filter
39
98
  if (request.eventTypes && request.eventTypes.length > 0) {
40
99
  queryBuilder.andWhere('audit.eventType IN (:...eventTypes)', { eventTypes: request.eventTypes });
41
100
  }
101
+ // Event status filter
42
102
  if (request.eventStatus && request.eventStatus.length > 0) {
43
103
  queryBuilder.andWhere('audit.eventStatus IN (:...eventStatus)', { eventStatus: request.eventStatus });
44
104
  }
105
+ // Order by date (newest first)
45
106
  queryBuilder.orderBy('audit.createdAt', 'DESC');
107
+ // Pagination
46
108
  queryBuilder.skip(skip).take(limit);
47
109
  const [data, total] = await queryBuilder.getManyAndCount();
48
110
  const response = new get_user_auth_history_dto_1.GetUserAuthHistoryResponseDTO();
@@ -53,6 +115,21 @@ class AuthAuditService {
53
115
  response.totalPages = Math.ceil(total / limit);
54
116
  return response;
55
117
  }
118
+ /**
119
+ * Get events by type with pagination
120
+ *
121
+ * @param request - Request DTO containing eventType and pagination options
122
+ * @returns Response DTO with paginated audit records
123
+ *
124
+ * @example
125
+ * ```typescript
126
+ * const events = await auditService.getEventsByType({
127
+ * eventType: AuthAuditEventType.SUSPICIOUS_ACTIVITY,
128
+ * page: 1,
129
+ * limit: 100,
130
+ * });
131
+ * ```
132
+ */
56
133
  async getEventsByType(request) {
57
134
  const page = request.page || 1;
58
135
  const limit = request.limit || 50;
@@ -60,6 +137,7 @@ class AuthAuditService {
60
137
  const queryBuilder = this.auditRepository.createQueryBuilder('audit').where('audit.eventType = :eventType', {
61
138
  eventType: request.eventType,
62
139
  });
140
+ // Date range filter
63
141
  if (request.startDate) {
64
142
  queryBuilder.andWhere('audit.createdAt >= :startDate', { startDate: request.startDate });
65
143
  }
@@ -76,6 +154,26 @@ class AuthAuditService {
76
154
  response.totalPages = Math.ceil(total / limit);
77
155
  return response;
78
156
  }
157
+ /**
158
+ * Get suspicious activity events
159
+ *
160
+ * Returns events with SUSPICIOUS status or SUSPICIOUS_ACTIVITY event type.
161
+ *
162
+ * @param request - Request DTO containing optional userSub and limit
163
+ * @returns Response DTO with array of suspicious audit events
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * // Get all suspicious activity
168
+ * const suspicious = await auditService.getSuspiciousActivity({});
169
+ *
170
+ * // Get suspicious activity for specific user
171
+ * const userSuspicious = await auditService.getSuspiciousActivity({
172
+ * userSub: 'user-uuid',
173
+ * limit: 50,
174
+ * });
175
+ * ```
176
+ */
79
177
  async getSuspiciousActivity(request) {
80
178
  const limit = request.limit || 100;
81
179
  const queryBuilder = this.auditRepository
@@ -84,6 +182,7 @@ class AuthAuditService {
84
182
  status: 'SUSPICIOUS',
85
183
  eventType: auth_audit_event_type_enum_1.AuthAuditEventType.SUSPICIOUS_ACTIVITY,
86
184
  });
185
+ // Filter by user if provided
87
186
  if (request.userSub) {
88
187
  const user = (await this.userRepository.findOne({ where: { sub: request.userSub } }));
89
188
  if (!user) {
@@ -97,8 +196,27 @@ class AuthAuditService {
97
196
  response.data = data;
98
197
  return response;
99
198
  }
199
+ /**
200
+ * Get risk assessment history for adaptive MFA analysis
201
+ *
202
+ * Returns events where risk assessment was performed (ADAPTIVE_MFA_RISK_ASSESSED,
203
+ * ADAPTIVE_MFA_TRIGGERED, ADAPTIVE_MFA_BYPASSED).
204
+ *
205
+ * @param request - Request DTO containing userSub and limit
206
+ * @returns Response DTO with array of risk assessment audit events
207
+ * @throws {NAuthException} If user not found
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * const riskHistory = await auditService.getRiskAssessmentHistory({
212
+ * userSub: 'user-uuid',
213
+ * limit: 50,
214
+ * });
215
+ * ```
216
+ */
100
217
  async getRiskAssessmentHistory(request) {
101
218
  const limit = request.limit || 100;
219
+ // Resolve userSub to userId
102
220
  const user = (await this.userRepository.findOne({ where: { sub: request.userSub } }));
103
221
  if (!user) {
104
222
  throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.NOT_FOUND, 'User not found');
@@ -122,9 +240,96 @@ class AuthAuditService {
122
240
  }
123
241
  }
124
242
  exports.AuthAuditService = AuthAuditService;
243
+ // ============================================================================
244
+ // Internal Service (Framework Adapters Only)
245
+ // ============================================================================
246
+ /**
247
+ * Internal Authentication Audit Service
248
+ *
249
+ * Extends the base AuthAuditService with event recording capabilities.
250
+ * This service is only available via `@nauth-toolkit/core/internal` and should
251
+ * NOT be used by consumer applications.
252
+ *
253
+ * **Event Recording:**
254
+ * The `recordEvent()` method is internal-only and is used by nauth-toolkit
255
+ * services to log authentication events. Consumer applications should use
256
+ * the query methods from the base `AuthAuditService` class.
257
+ *
258
+ * @internal
259
+ * This class is only exported from `@nauth-toolkit/core/internal` for use
260
+ * by framework adapters. Consumer applications should use the base
261
+ * `AuthAuditService` from `@nauth-toolkit/core`.
262
+ *
263
+ * @example
264
+ * ```typescript
265
+ * // Framework adapter usage
266
+ * import { AuthAuditService } from '@nauth-toolkit/core/internal';
267
+ *
268
+ * const auditService = new AuthAuditService(...);
269
+ * // Can use recordEvent() here (internal only)
270
+ * await auditService.recordEvent({ ... });
271
+ * ```
272
+ */
125
273
  class InternalAuthAuditService extends AuthAuditService {
274
+ /**
275
+ * Record an authentication audit event
276
+ *
277
+ * Creates an audit record for an authentication or security event.
278
+ * Automatically extracts client information from request context when available.
279
+ * This method is non-blocking - errors are logged but don't throw exceptions.
280
+ *
281
+ * **Automatic Client Info Extraction:**
282
+ * When ClientInfoService is available, the following fields are automatically populated:
283
+ * - ipAddress, ipCountry, ipCity (from request and geolocation)
284
+ * - userAgent, platform, browser (from user agent parsing)
285
+ * - deviceId, deviceName, deviceType (from request context)
286
+ *
287
+ * Note: These fields cannot be overridden via the DTO - they are always captured from the request context.
288
+ * Only deviceId can be explicitly set for special cases (e.g., newly created device tokens).
289
+ * Do not include ipAddress, ipCountry, ipCity, userAgent, platform, browser, deviceName, or deviceType
290
+ * in the DTO - they will be automatically captured and attempts to include them will cause TypeScript errors.
291
+ *
292
+ * **Automatic performedBy Population:**
293
+ * The `performedBy` field is automatically populated from the authenticated user's context:
294
+ * - If userId is available from ClientInfoService (extracted from JWT token by interceptors/handlers), it is used as `performedBy`
295
+ * - This captures who performed the action (e.g., admin performing action on another user)
296
+ * - If no userId is found in client info, `performedBy` defaults to the event's `userId` (user performing action on themselves)
297
+ * - Explicit `performedBy` in DTO overrides automatic population
298
+ *
299
+ * @internal
300
+ * This method is only available in InternalAuthAuditService and should not
301
+ * be exposed to consumer applications.
302
+ *
303
+ * @param data - Audit event data (only event-specific fields needed)
304
+ * @param data.userId - Internal user ID (preferred, more efficient)
305
+ * @param data.userSub - External user identifier (will lookup userId if userId not provided)
306
+ * @param data.eventType - Type of event
307
+ * @param data.eventStatus - Event classification status
308
+ * @returns Created audit record
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * // Simple recording - client info auto-populated
313
+ * await auditService.recordEvent({
314
+ * userId: user.id,
315
+ * eventType: AuthAuditEventType.LOGIN_SUCCESS,
316
+ * eventStatus: 'SUCCESS',
317
+ * authMethod: 'password',
318
+ * // ipAddress, userAgent, deviceName, etc. automatically included!
319
+ * });
320
+ *
321
+ * // Override specific fields if needed
322
+ * await auditService.recordEvent({
323
+ * userId: user.id,
324
+ * eventType: AuthAuditEventType.LOGIN_SUCCESS,
325
+ * eventStatus: 'SUCCESS',
326
+ * // ipAddress, userAgent, etc. automatically captured from request context
327
+ * });
328
+ * ```
329
+ */
126
330
  async recordEvent(data) {
127
331
  try {
332
+ // Resolve userId if userSub provided
128
333
  let userId = data.userId;
129
334
  if (!userId && data.userSub) {
130
335
  const user = (await this.userRepository.findOne({ where: { sub: data.userSub } }));
@@ -138,10 +343,15 @@ class InternalAuthAuditService extends AuthAuditService {
138
343
  this.logger?.warn?.('Cannot record audit event - userId or userSub required');
139
344
  return null;
140
345
  }
346
+ // ============================================================================
347
+ // Auto-extract client info from context (when available)
348
+ // Note: These fields are automatically captured and cannot be overridden by callers
349
+ // ============================================================================
141
350
  let clientInfo = {};
142
351
  if (this.clientInfoService) {
143
352
  try {
144
353
  const clientInfoFromContext = this.clientInfoService.get();
354
+ // Debug logging
145
355
  if (!clientInfoFromContext.ipLatitude || !clientInfoFromContext.ipLongitude) {
146
356
  this.logger?.warn?.(`[AuthAuditService] Creating audit WITHOUT coordinates from context: ` +
147
357
  `IP=${clientInfoFromContext.ipAddress}, country=${clientInfoFromContext.ipCountry}, ` +
@@ -153,6 +363,7 @@ class InternalAuthAuditService extends AuthAuditService {
153
363
  `IP=${clientInfoFromContext.ipAddress}, ${clientInfoFromContext.ipCity}, ` +
154
364
  `${clientInfoFromContext.ipCountry} (${clientInfoFromContext.ipLatitude}, ${clientInfoFromContext.ipLongitude})`);
155
365
  }
366
+ // Automatically capture from context (no override allowed)
156
367
  clientInfo = {
157
368
  ipAddress: clientInfoFromContext.ipAddress || null,
158
369
  ipCountry: clientInfoFromContext.ipCountry || null,
@@ -169,9 +380,14 @@ class InternalAuthAuditService extends AuthAuditService {
169
380
  };
170
381
  }
171
382
  catch (error) {
383
+ // Non-blocking: If client info extraction fails, continue without it
384
+ // This can happen if called outside request context (e.g., cron jobs)
172
385
  this.logger?.debug?.(`Failed to extract client info for audit: ${error instanceof Error ? error.message : 'Unknown error'}`);
173
386
  }
174
387
  }
388
+ // ============================================================================
389
+ // Use auto-extracted client info (deviceId can be overridden for special cases)
390
+ // ============================================================================
175
391
  const mergedData = {
176
392
  ipAddress: clientInfo.ipAddress ?? null,
177
393
  ipCountry: clientInfo.ipCountry ?? null,
@@ -181,26 +397,36 @@ class InternalAuthAuditService extends AuthAuditService {
181
397
  userAgent: clientInfo.userAgent ?? null,
182
398
  platform: clientInfo.platform ?? null,
183
399
  browser: clientInfo.browser ?? null,
184
- deviceId: data.deviceId ?? clientInfo.deviceId ?? null,
400
+ deviceId: data.deviceId ?? clientInfo.deviceId ?? null, // Allow override for newly created device tokens
185
401
  deviceName: clientInfo.deviceName ?? null,
186
402
  deviceType: clientInfo.deviceType ?? null,
187
403
  sessionId: data.sessionId ?? clientInfo.sessionId ?? null,
188
404
  };
405
+ // ============================================================================
406
+ // Auto-populate performedBy from client info context (if available)
407
+ // ============================================================================
189
408
  let performedBy = data.performedBy ?? null;
190
409
  if (!performedBy && this.clientInfoService) {
191
410
  try {
411
+ // Get userId from client info (extracted from JWT token by interceptors/handlers)
192
412
  const clientInfo = this.clientInfoService.get();
193
413
  if (clientInfo?.userId) {
414
+ // Use the userId from client info as performedBy
415
+ // This captures who performed the action (could be admin performing action on another user)
194
416
  performedBy = String(clientInfo.userId);
195
417
  }
196
418
  }
197
419
  catch (error) {
420
+ // Non-blocking: If client info extraction fails, continue without performedBy
198
421
  this.logger?.debug?.(`Failed to get userId from client info for performedBy: ${error instanceof Error ? error.message : 'Unknown error'}`);
199
422
  }
200
423
  }
424
+ // If still no performedBy and we have userId, use it as fallback
425
+ // (most actions are performed by the user themselves)
201
426
  if (!performedBy && userId) {
202
427
  performedBy = String(userId);
203
428
  }
429
+ // Create audit record
204
430
  const auditRecord = this.auditRepository.create({
205
431
  userId,
206
432
  eventType: data.eventType,
@@ -231,6 +457,7 @@ class InternalAuthAuditService extends AuthAuditService {
231
457
  return saved;
232
458
  }
233
459
  catch (error) {
460
+ // Non-blocking: Log error but don't throw
234
461
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
235
462
  this.logger?.error?.(`Failed to record audit event: ${errorMessage}`, { eventType: data.eventType, error });
236
463
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"auth-audit.service.js","sourceRoot":"","sources":["../../src/services/auth-audit.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-audit.service.js","sourceRoot":"","sources":["../../src/services/auth-audit.service.ts"],"names":[],"mappings":";;;AAGA,oFAAyE;AAGzE,mEAA+D;AAC/D,gEAA0D;AAG1D,gFAAwG;AACxG,0EAA+F;AAC/F,oFAAgH;AAChH,4FAGgD;AA8BhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAa,gBAAgB;IAEN;IACA;IACA;IACA;IAJrB,YACqB,eAA0C,EAC1C,cAAoC,EACpC,MAAmB,EACnB,iBAAqC;QAHrC,oBAAe,GAAf,eAAe,CAA2B;QAC1C,mBAAc,GAAd,cAAc,CAAsB;QACpC,WAAM,GAAN,MAAM,CAAa;QACnB,sBAAiB,GAAjB,iBAAiB,CAAoB;IACvD,CAAC;IAEJ,+EAA+E;IAC/E,gBAAgB;IAChB,+EAA+E;IAE/E;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAA8B;QACrD,4BAA4B;QAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAiB,CAAC;QACtG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,gCAAc,CAAC,gCAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAEhC,cAAc;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe;aACtC,kBAAkB,CAAC,OAAO,CAAC;aAC3B,KAAK,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAExD,oBAAoB;QACpB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,YAAY,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,YAAY,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,YAAY,CAAC,QAAQ,CAAC,qCAAqC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACnG,CAAC;QAED,sBAAsB;QACtB,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,YAAY,CAAC,QAAQ,CAAC,wCAAwC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,+BAA+B;QAC/B,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAEhD,aAAa;QACb,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAI,yDAA6B,EAAE,CAAC;QACrD,QAAQ,CAAC,IAAI,GAAG,IAA+B,CAAC;QAChD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAE/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,eAAe,CAAC,OAA2B;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC1G,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,oBAAoB;QACpB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,YAAY,CAAC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,YAAY,CAAC,QAAQ,CAAC,6BAA6B,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAI,mDAA0B,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,GAAG,IAA+B,CAAC;QAChD,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;QAE/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAiC;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QAEnC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe;aACtC,kBAAkB,CAAC,OAAO,CAAC;aAC3B,KAAK,CAAC,+DAA+D,EAAE;YACtE,MAAM,EAAE,YAAY;YACpB,SAAS,EAAE,+CAAkB,CAAC,mBAAmB;SAClD,CAAC,CAAC;QAEL,6BAA6B;QAC7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAiB,CAAC;YACtG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,gCAAc,CAAC,gCAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YACtE,CAAC;YACD,YAAY,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,8DAAgC,EAAE,CAAC;QACxD,QAAQ,CAAC,IAAI,GAAG,IAA+B,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,wBAAwB,CAAC,OAAoC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC;QAEnC,4BAA4B;QAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAiB,CAAC;QACtG,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,gCAAc,CAAC,gCAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe;aACtC,kBAAkB,CAAC,OAAO,CAAC;aAC3B,KAAK,CAAC,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aACpD,QAAQ,CAAC,qCAAqC,EAAE;YAC/C,UAAU,EAAE;gBACV,+CAAkB,CAAC,0BAA0B;gBAC7C,+CAAkB,CAAC,sBAAsB;gBACzC,+CAAkB,CAAC,qBAAqB;aACzC;SACF,CAAC;aACD,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;aAClC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEf,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,qEAAmC,EAAE,CAAC;QAC3D,QAAQ,CAAC,IAAI,GAAG,IAA+B,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAnOD,4CAmOC;AAED,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,wBAAyB,SAAQ,gBAAgB;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,KAAK,CAAC,WAAW,CAAC,IAA6B;QAC7C,IAAI,CAAC;YACH,qCAAqC;YACrC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAiB,CAAC;gBACnG,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,+CAA+C,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnF,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,wDAAwD,CAAC,CAAC;gBAC9E,OAAO,IAAI,CAAC;YACd,CAAC;YAED,+EAA+E;YAC/E,yDAAyD;YACzD,oFAAoF;YACpF,+EAA+E;YAC/E,IAAI,UAAU,GAaV,EAAE,CAAC;YAEP,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;oBAE3D,gBAAgB;oBAChB,IAAI,CAAC,qBAAqB,CAAC,UAAU,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;wBAC5E,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CACjB,sEAAsE;4BACpE,MAAM,qBAAqB,CAAC,SAAS,aAAa,qBAAqB,CAAC,SAAS,IAAI;4BACrF,QAAQ,qBAAqB,CAAC,MAAM,SAAS,qBAAqB,CAAC,UAAU,IAAI;4BACjF,OAAO,qBAAqB,CAAC,WAAW,EAAE,CAC7C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAClB,mEAAmE;4BACjE,MAAM,qBAAqB,CAAC,SAAS,KAAK,qBAAqB,CAAC,MAAM,IAAI;4BAC1E,GAAG,qBAAqB,CAAC,SAAS,KAAK,qBAAqB,CAAC,UAAU,KAAK,qBAAqB,CAAC,WAAW,GAAG,CACnH,CAAC;oBACJ,CAAC;oBAED,2DAA2D;oBAC3D,UAAU,GAAG;wBACX,SAAS,EAAE,qBAAqB,CAAC,SAAS,IAAI,IAAI;wBAClD,SAAS,EAAE,qBAAqB,CAAC,SAAS,IAAI,IAAI;wBAClD,MAAM,EAAE,qBAAqB,CAAC,MAAM,IAAI,IAAI;wBAC5C,UAAU,EAAE,qBAAqB,CAAC,UAAU,IAAI,IAAI;wBACpD,WAAW,EAAE,qBAAqB,CAAC,WAAW,IAAI,IAAI;wBACtD,SAAS,EAAE,qBAAqB,CAAC,SAAS,IAAI,IAAI;wBAClD,QAAQ,EAAE,qBAAqB,CAAC,QAAQ,IAAI,IAAI;wBAChD,OAAO,EAAE,qBAAqB,CAAC,OAAO,IAAI,IAAI;wBAC9C,QAAQ,EAAE,qBAAqB,CAAC,WAAW,IAAI,IAAI;wBACnD,UAAU,EAAE,qBAAqB,CAAC,UAAU,IAAI,IAAI;wBACpD,UAAU,EAAE,qBAAqB,CAAC,UAAU,IAAI,IAAI;wBACpD,SAAS,EAAE,qBAAqB,CAAC,SAAS,IAAI,IAAI;qBACnD,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,qEAAqE;oBACrE,sEAAsE;oBACtE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAClB,4CAA4C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACvG,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,+EAA+E;YAC/E,gFAAgF;YAChF,+EAA+E;YAC/E,MAAM,UAAU,GAAG;gBACjB,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;gBACvC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;gBACvC,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,IAAI;gBACjC,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;gBACzC,WAAW,EAAE,UAAU,CAAC,WAAW,IAAI,IAAI;gBAC3C,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,IAAI;gBACvC,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,IAAI;gBACrC,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,IAAI;gBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE,iDAAiD;gBACzG,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;gBACzC,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,IAAI;gBACzC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,IAAI;aAC1D,CAAC;YAEF,+EAA+E;YAC/E,oEAAoE;YACpE,+EAA+E;YAC/E,IAAI,WAAW,GAAkB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC;YAC1D,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,kFAAkF;oBAClF,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;oBAChD,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;wBACvB,iDAAiD;wBACjD,4FAA4F;wBAC5F,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,8EAA8E;oBAC9E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAClB,0DAA0D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACrH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,sDAAsD;YACtD,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;gBAC3B,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAED,sBAAsB;YACtB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;gBAC9C,MAAM;gBACN,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;gBACvD,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,WAAW,EAAE,UAAU,CAAC,WAAW;gBACnC,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;gBAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,SAAS,EAAE,UAAU,CAAC,SAAS;gBAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,IAAI;gBACnD,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;gBACnC,WAAW;gBACX,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;gBACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;aAChC,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,KAA8B,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0CAA0C;YAC1C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC9E,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,iCAAiC,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5G,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA5ND,4DA4NC"}