@nauth-toolkit/core 0.1.14 → 0.1.18

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 +1780 -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 +62 -0
  412. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  413. package/dist/schemas/auth-config.schema.js +189 -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 +152 -12
  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
@@ -7,15 +7,73 @@ import { RiskScoringService } from './risk-scoring.service';
7
7
  import { ClientInfoService } from './client-info.service';
8
8
  import { NAuthConfig, AdaptiveMFARiskEventPayload } from '../interfaces/config.interface';
9
9
  import { NAuthLogger } from '../utils/nauth-logger';
10
+ /**
11
+ * Adaptive MFA decision result
12
+ */
10
13
  export interface AdaptiveMFADecision {
14
+ /**
15
+ * Action to take
16
+ */
11
17
  action: 'allow' | 'require_mfa' | 'block_signin';
18
+ /**
19
+ * Risk score (0-100)
20
+ */
12
21
  riskScore: number;
22
+ /**
23
+ * Risk level classification
24
+ */
13
25
  riskLevel: 'low' | 'medium' | 'high';
26
+ /**
27
+ * Detected risk factors
28
+ * Array of RiskFactor enum values (stored as strings at runtime)
29
+ */
14
30
  riskFactors: RiskFactor[];
31
+ /**
32
+ * Whether user should be notified
33
+ */
15
34
  notifyUser: boolean;
35
+ /**
36
+ * Whether lifecycle hook overrode the decision
37
+ */
16
38
  hookOverride: boolean;
39
+ /**
40
+ * Risk event payload (included when action requires it or notifyUser is true)
41
+ * Contains full client context for use in blockUserSignIn or audit logging
42
+ */
17
43
  payload?: AdaptiveMFARiskEventPayload;
18
44
  }
45
+ /**
46
+ * Adaptive MFA Decision Service
47
+ *
48
+ * Makes context-aware MFA requirement decisions based on risk analysis.
49
+ * Supports multiple actions (allow, require_mfa, block_signin) based on risk level.
50
+ *
51
+ * **Decision Flow:**
52
+ * 1. Detect risk factors (via RiskDetectionService)
53
+ * 2. Calculate risk score (via RiskScoringService)
54
+ * 3. Determine risk level and action from configuration
55
+ * 4. Call lifecycle hooks if notifyUser is true
56
+ * 5. Record audit event (non-blocking)
57
+ * 6. Return decision object
58
+ *
59
+ * **Default Risk Levels:**
60
+ * - Low (0-20): action 'allow', notifyUser false
61
+ * - Medium (21-50): action 'require_mfa', notifyUser true
62
+ * - High (51-100): action 'require_mfa', notifyUser true (conservative default)
63
+ *
64
+ * **User Blocking:**
65
+ * When action is 'block_signin', user is blocked in storage adapter with optional TTL.
66
+ * Block status is checked before evaluation to prevent blocked users from attempting sign-in.
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * const decision = await adaptiveMFADecisionService.evaluateAdaptiveMFA(user, 'password');
71
+ * if (decision.action === 'block_signin') {
72
+ * throw new NAuthException(AuthErrorCode.SIGNIN_BLOCKED_HIGH_RISK, 'Sign-in blocked');
73
+ * }
74
+ * return decision.action === 'require_mfa';
75
+ * ```
76
+ */
19
77
  export declare class AdaptiveMFADecisionService {
20
78
  private readonly riskDetectionService;
21
79
  private readonly riskScoringService;
@@ -24,16 +82,102 @@ export declare class AdaptiveMFADecisionService {
24
82
  private readonly config;
25
83
  private readonly logger;
26
84
  private readonly auditService?;
85
+ /**
86
+ * Default risk level configuration
87
+ *
88
+ * Conservative defaults that prioritize security:
89
+ * - Low risk: Allow without MFA (normal flow)
90
+ * - Medium risk: Require MFA
91
+ * - High risk: Require MFA (conservative - don't block by default)
92
+ */
27
93
  private readonly defaultRiskLevels;
28
94
  constructor(riskDetectionService: RiskDetectionService, riskScoringService: RiskScoringService, storageAdapter: StorageAdapter, clientInfoService: ClientInfoService, config: NAuthConfig, logger: NAuthLogger, auditService?: AuthAuditService | undefined);
95
+ /**
96
+ * Evaluate adaptive MFA requirement with risk-based actions
97
+ *
98
+ * Main entry point for adaptive MFA evaluation. Analyzes current login context,
99
+ * calculates risk score, determines action, and calls lifecycle hooks.
100
+ *
101
+ * @param user - User being authenticated
102
+ * @param authMethod - Authentication method ('password', 'google', 'apple', etc.)
103
+ * @returns Decision object with action, risk details, and hook override status
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const decision = await adaptiveMFADecisionService.evaluateAdaptiveMFA(user, 'password');
108
+ * if (decision.action === 'block_signin') {
109
+ * // Handle blocking
110
+ * }
111
+ * ```
112
+ */
29
113
  evaluateAdaptiveMFA(user: IUser, authMethod: string): Promise<AdaptiveMFADecision>;
114
+ /**
115
+ * Determine risk level and action based on score and configured thresholds
116
+ *
117
+ * Evaluates risk score against configured thresholds in order: low → medium → high.
118
+ * Returns the first level that the score falls within.
119
+ *
120
+ * @param riskScore - Calculated risk score (0-100)
121
+ * @param riskLevels - Configured risk level thresholds
122
+ * @returns Risk level, action, and notifyUser flag
123
+ * @private
124
+ */
30
125
  private determineRiskLevelAndAction;
126
+ /**
127
+ * Check if user is currently blocked due to high-risk sign-in
128
+ *
129
+ * Uses storage adapter to check for existing block. Block is stored with
130
+ * key format: `adaptive_mfa_block:{userId}`.
131
+ *
132
+ * @param userId - Internal user ID (integer)
133
+ * @returns Block status with expiration and message if blocked
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const blockStatus = await adaptiveMFADecisionService.isUserBlocked(user.id);
138
+ * if (blockStatus.blocked) {
139
+ * throw new NAuthException(AuthErrorCode.SIGNIN_BLOCKED_HIGH_RISK, blockStatus.message);
140
+ * }
141
+ * ```
142
+ */
31
143
  isUserBlocked(userId: number): Promise<{
32
144
  blocked: boolean;
33
145
  expiresAt?: Date;
34
146
  message?: string;
35
147
  }>;
148
+ /**
149
+ * Block user sign-in due to high risk
150
+ *
151
+ * Stores block in storage adapter with optional TTL. Block data includes:
152
+ * - userId, userSub (for reference)
153
+ * - message (shown to user)
154
+ * - riskScore, riskFactors (for audit)
155
+ * - blockedAt, expiresAt (timestamps)
156
+ *
157
+ * Also calls onSignInBlocked lifecycle hook if configured.
158
+ *
159
+ * @param user - User to block
160
+ * @param payload - Risk event payload with all context
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * await adaptiveMFADecisionService.blockUserSignIn(user, payload);
165
+ * ```
166
+ */
36
167
  blockUserSignIn(user: IUser, payload: AdaptiveMFARiskEventPayload): Promise<void>;
168
+ /**
169
+ * Clear user block (manual unblock)
170
+ *
171
+ * Removes the block from storage adapter, allowing user to sign in again.
172
+ * Useful for admin actions or when risk situation has improved.
173
+ *
174
+ * @param userId - Internal user ID (integer)
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * await adaptiveMFADecisionService.clearUserBlock(user.id);
179
+ * ```
180
+ */
37
181
  clearUserBlock(userId: number): Promise<void>;
38
182
  }
39
183
  //# sourceMappingURL=adaptive-mfa-decision.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive-mfa-decision.service.d.ts","sourceRoot":"","sources":["../../src/services/adaptive-mfa-decision.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAwB,MAAM,gCAAgC,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,WAAW,mBAAmB;IAIlC,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;IAKjD,SAAS,EAAE,MAAM,CAAC;IAKlB,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAMrC,WAAW,EAAE,UAAU,EAAE,CAAC;IAK1B,UAAU,EAAE,OAAO,CAAC;IAKpB,YAAY,EAAE,OAAO,CAAC;IAMtB,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC;AAkCD,qBAAa,0BAA0B;IAgCnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IA7BhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAoBhC;gBAGiB,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,gBAAgB,YAAA;IAqB5C,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwIxF,OAAO,CAAC,2BAA2B;IAqD7B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAmDI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDjF,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWpD"}
1
+ {"version":3,"file":"adaptive-mfa-decision.service.d.ts","sourceRoot":"","sources":["../../src/services/adaptive-mfa-decision.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,2BAA2B,EAAwB,MAAM,gCAAgC,CAAC;AAChH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;IAEjD;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAErC;;;OAGG;IACH,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,2BAA2B,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,0BAA0B;IAgCnC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IArChC;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAoBhC;gBAGiB,oBAAoB,EAAE,oBAAoB,EAC1C,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,gBAAgB,YAAA;IAGlD;;;;;;;;;;;;;;;;;OAiBG;IACG,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6HxF;;;;;;;;;;OAUG;IACH,OAAO,CAAC,2BAA2B;IAoCnC;;;;;;;;;;;;;;;;OAgBG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAgCF;;;;;;;;;;;;;;;;;;OAkBG;IACG,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IA2CvF;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAWpD"}
@@ -3,6 +3,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptiveMFADecisionService = void 0;
4
4
  const auth_audit_event_type_enum_1 = require("../enums/auth-audit-event-type.enum");
5
5
  const risk_factor_enum_1 = require("../enums/risk-factor.enum");
6
+ /**
7
+ * Adaptive MFA Decision Service
8
+ *
9
+ * Makes context-aware MFA requirement decisions based on risk analysis.
10
+ * Supports multiple actions (allow, require_mfa, block_signin) based on risk level.
11
+ *
12
+ * **Decision Flow:**
13
+ * 1. Detect risk factors (via RiskDetectionService)
14
+ * 2. Calculate risk score (via RiskScoringService)
15
+ * 3. Determine risk level and action from configuration
16
+ * 4. Call lifecycle hooks if notifyUser is true
17
+ * 5. Record audit event (non-blocking)
18
+ * 6. Return decision object
19
+ *
20
+ * **Default Risk Levels:**
21
+ * - Low (0-20): action 'allow', notifyUser false
22
+ * - Medium (21-50): action 'require_mfa', notifyUser true
23
+ * - High (51-100): action 'require_mfa', notifyUser true (conservative default)
24
+ *
25
+ * **User Blocking:**
26
+ * When action is 'block_signin', user is blocked in storage adapter with optional TTL.
27
+ * Block status is checked before evaluation to prevent blocked users from attempting sign-in.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const decision = await adaptiveMFADecisionService.evaluateAdaptiveMFA(user, 'password');
32
+ * if (decision.action === 'block_signin') {
33
+ * throw new NAuthException(AuthErrorCode.SIGNIN_BLOCKED_HIGH_RISK, 'Sign-in blocked');
34
+ * }
35
+ * return decision.action === 'require_mfa';
36
+ * ```
37
+ */
6
38
  class AdaptiveMFADecisionService {
7
39
  riskDetectionService;
8
40
  riskScoringService;
@@ -11,6 +43,14 @@ class AdaptiveMFADecisionService {
11
43
  config;
12
44
  logger;
13
45
  auditService;
46
+ /**
47
+ * Default risk level configuration
48
+ *
49
+ * Conservative defaults that prioritize security:
50
+ * - Low risk: Allow without MFA (normal flow)
51
+ * - Medium risk: Require MFA
52
+ * - High risk: Require MFA (conservative - don't block by default)
53
+ */
14
54
  defaultRiskLevels = {
15
55
  low: {
16
56
  maxScore: 20,
@@ -24,7 +64,7 @@ class AdaptiveMFADecisionService {
24
64
  },
25
65
  high: {
26
66
  maxScore: 100,
27
- action: 'require_mfa',
67
+ action: 'require_mfa', // Conservative default (don't block)
28
68
  notifyUser: true,
29
69
  },
30
70
  };
@@ -37,7 +77,26 @@ class AdaptiveMFADecisionService {
37
77
  this.logger = logger;
38
78
  this.auditService = auditService;
39
79
  }
80
+ /**
81
+ * Evaluate adaptive MFA requirement with risk-based actions
82
+ *
83
+ * Main entry point for adaptive MFA evaluation. Analyzes current login context,
84
+ * calculates risk score, determines action, and calls lifecycle hooks.
85
+ *
86
+ * @param user - User being authenticated
87
+ * @param authMethod - Authentication method ('password', 'google', 'apple', etc.)
88
+ * @returns Decision object with action, risk details, and hook override status
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const decision = await adaptiveMFADecisionService.evaluateAdaptiveMFA(user, 'password');
93
+ * if (decision.action === 'block_signin') {
94
+ * // Handle blocking
95
+ * }
96
+ * ```
97
+ */
40
98
  async evaluateAdaptiveMFA(user, authMethod) {
99
+ // Validate email is present (required by IUser interface but runtime check for safety)
41
100
  if (!user.email) {
42
101
  this.logger?.error?.(`User ${user.sub} missing email - cannot evaluate adaptive MFA`, {
43
102
  userId: user.id,
@@ -45,16 +104,22 @@ class AdaptiveMFADecisionService {
45
104
  });
46
105
  throw new Error(`User email is required for adaptive MFA evaluation`);
47
106
  }
107
+ // Get current client context
48
108
  const clientInfo = this.clientInfoService.get();
109
+ // Detect risk factors
49
110
  const riskFactors = await this.riskDetectionService.detectRiskFactors(user, clientInfo);
111
+ // Calculate risk score
50
112
  const riskScore = this.riskScoringService.calculateRiskScore(riskFactors);
113
+ // Determine risk level and action
51
114
  const riskLevels = this.config.mfa?.adaptive?.riskLevels || this.defaultRiskLevels;
52
115
  const { level, action, notifyUser } = this.determineRiskLevelAndAction(riskScore, riskLevels);
53
116
  this.logger?.log?.(`Adaptive MFA evaluation: user=${user.sub}, score=${riskScore}, level=${level}, action=${action}, notify=${notifyUser}, factors=[${riskFactors.join(', ')}]`);
117
+ // Prepare payload for hooks and audit
118
+ // Include payload when action requires it (block_signin) or when notifyUser is true
54
119
  const payload = {
55
120
  user: {
56
121
  sub: user.sub,
57
- email: user.email,
122
+ email: user.email, // Safe after validation above
58
123
  username: user.username || undefined,
59
124
  phoneNumber: user.phone || undefined,
60
125
  },
@@ -66,7 +131,7 @@ class AdaptiveMFADecisionService {
66
131
  ipAddress: clientInfo.ipAddress,
67
132
  ipCountry: clientInfo.ipCountry,
68
133
  ipCity: clientInfo.ipCity,
69
- deviceId: clientInfo.deviceToken,
134
+ deviceId: clientInfo.deviceToken, // deviceToken maps to deviceId in sessions
70
135
  deviceName: clientInfo.deviceName,
71
136
  deviceType: clientInfo.deviceType,
72
137
  userAgent: clientInfo.userAgent,
@@ -76,20 +141,30 @@ class AdaptiveMFADecisionService {
76
141
  authMethod,
77
142
  timestamp: new Date(),
78
143
  };
144
+ // Call lifecycle hook if configured and user should be notified
79
145
  let hookOverride = false;
80
146
  if (notifyUser && this.config.hooks?.onAdaptiveMFATriggered) {
81
147
  try {
82
148
  const result = await this.config.hooks.onAdaptiveMFATriggered(payload);
149
+ // Hook can return false to override and allow sign-in
83
150
  if (result === false) {
84
151
  hookOverride = true;
85
152
  this.logger?.warn?.(`Adaptive MFA action overridden by hook: user=${user.sub}`);
86
153
  }
87
154
  }
88
155
  catch (error) {
156
+ // Non-blocking: Log error but continue with original action
89
157
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
90
158
  this.logger?.error?.(`Adaptive MFA hook failed: ${errorMessage}`, { error, userId: user.sub });
91
159
  }
92
160
  }
161
+ // Record in audit trail (non-blocking)
162
+ // This logs the risk assessment result
163
+ // Determine event status based on risk level and action:
164
+ // - block_signin: SUSPICIOUS (security violation)
165
+ // - require_mfa with high/medium risk or suspicious factors: SUSPICIOUS
166
+ // - require_mfa with low risk: INFO (normal security measure)
167
+ // - allow: INFO (no risk detected)
93
168
  const hasSuspiciousFactors = riskFactors.includes(risk_factor_enum_1.RiskFactor.SUSPICIOUS_ACTIVITY) ||
94
169
  riskFactors.includes(risk_factor_enum_1.RiskFactor.IMPOSSIBLE_TRAVEL) ||
95
170
  level === 'high';
@@ -114,6 +189,7 @@ class AdaptiveMFADecisionService {
114
189
  action,
115
190
  riskFactors,
116
191
  },
192
+ // Client info automatically included from context
117
193
  })
118
194
  .catch((err) => {
119
195
  this.logger?.warn?.(`Failed to record ADAPTIVE_MFA_RISK_ASSESSED audit: ${err.message}`);
@@ -125,10 +201,24 @@ class AdaptiveMFADecisionService {
125
201
  riskFactors,
126
202
  notifyUser,
127
203
  hookOverride,
204
+ // Include payload when action requires it or when notifyUser is true
205
+ // This ensures consistent clientInfo data for blockUserSignIn and audit logs
128
206
  payload: action === 'block_signin' || notifyUser ? payload : undefined,
129
207
  };
130
208
  }
209
+ /**
210
+ * Determine risk level and action based on score and configured thresholds
211
+ *
212
+ * Evaluates risk score against configured thresholds in order: low → medium → high.
213
+ * Returns the first level that the score falls within.
214
+ *
215
+ * @param riskScore - Calculated risk score (0-100)
216
+ * @param riskLevels - Configured risk level thresholds
217
+ * @returns Risk level, action, and notifyUser flag
218
+ * @private
219
+ */
131
220
  determineRiskLevelAndAction(riskScore, riskLevels) {
221
+ // Check in order: low → medium → high
132
222
  if (riskScore <= (riskLevels.low?.maxScore ?? 20)) {
133
223
  return {
134
224
  level: 'low',
@@ -149,6 +239,23 @@ class AdaptiveMFADecisionService {
149
239
  notifyUser: riskLevels.high?.notifyUser ?? true,
150
240
  };
151
241
  }
242
+ /**
243
+ * Check if user is currently blocked due to high-risk sign-in
244
+ *
245
+ * Uses storage adapter to check for existing block. Block is stored with
246
+ * key format: `adaptive_mfa_block:{userId}`.
247
+ *
248
+ * @param userId - Internal user ID (integer)
249
+ * @returns Block status with expiration and message if blocked
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * const blockStatus = await adaptiveMFADecisionService.isUserBlocked(user.id);
254
+ * if (blockStatus.blocked) {
255
+ * throw new NAuthException(AuthErrorCode.SIGNIN_BLOCKED_HIGH_RISK, blockStatus.message);
256
+ * }
257
+ * ```
258
+ */
152
259
  async isUserBlocked(userId) {
153
260
  try {
154
261
  const blockKey = `adaptive_mfa_block:${userId}`;
@@ -158,7 +265,9 @@ class AdaptiveMFADecisionService {
158
265
  }
159
266
  const parsed = JSON.parse(blockData);
160
267
  const expiresAt = parsed.expiresAt ? new Date(parsed.expiresAt) : undefined;
268
+ // Check if block has expired (if temporary)
161
269
  if (expiresAt && expiresAt < new Date()) {
270
+ // Block expired - clean up
162
271
  await this.storageAdapter.del(blockKey);
163
272
  return { blocked: false };
164
273
  }
@@ -169,15 +278,36 @@ class AdaptiveMFADecisionService {
169
278
  };
170
279
  }
171
280
  catch (error) {
281
+ // Non-blocking: Log error but assume not blocked (safer for UX)
172
282
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
173
283
  this.logger?.warn?.(`Failed to check user block status: ${errorMessage}`, { error, userId });
174
284
  return { blocked: false };
175
285
  }
176
286
  }
287
+ /**
288
+ * Block user sign-in due to high risk
289
+ *
290
+ * Stores block in storage adapter with optional TTL. Block data includes:
291
+ * - userId, userSub (for reference)
292
+ * - message (shown to user)
293
+ * - riskScore, riskFactors (for audit)
294
+ * - blockedAt, expiresAt (timestamps)
295
+ *
296
+ * Also calls onSignInBlocked lifecycle hook if configured.
297
+ *
298
+ * @param user - User to block
299
+ * @param payload - Risk event payload with all context
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * await adaptiveMFADecisionService.blockUserSignIn(user, payload);
304
+ * ```
305
+ */
177
306
  async blockUserSignIn(user, payload) {
178
307
  const blockConfig = this.config.mfa?.adaptive?.blockedSignIn;
179
- const blockDuration = blockConfig?.blockDuration;
308
+ const blockDuration = blockConfig?.blockDuration; // minutes
180
309
  const message = blockConfig?.message || 'Sign-in blocked due to suspicious activity. Please contact support.';
310
+ // Store block in storage adapter
181
311
  const blockKey = `adaptive_mfa_block:${user.id}`;
182
312
  const blockData = {
183
313
  userId: user.id,
@@ -188,9 +318,10 @@ class AdaptiveMFADecisionService {
188
318
  blockedAt: new Date().toISOString(),
189
319
  expiresAt: blockDuration ? new Date(Date.now() + blockDuration * 60 * 1000).toISOString() : undefined,
190
320
  };
191
- const ttl = blockDuration ? blockDuration * 60 : undefined;
321
+ const ttl = blockDuration ? blockDuration * 60 : undefined; // Convert to seconds
192
322
  await this.storageAdapter.set(blockKey, JSON.stringify(blockData), ttl);
193
323
  this.logger?.warn?.(`User sign-in blocked: user=${user.sub}, score=${payload.riskScore}, duration=${blockDuration ? `${blockDuration}min` : 'permanent'}`);
324
+ // Call sign-in blocked hook if configured
194
325
  if (this.config.hooks?.onSignInBlocked) {
195
326
  const blockedPayload = {
196
327
  ...payload,
@@ -202,11 +333,25 @@ class AdaptiveMFADecisionService {
202
333
  await this.config.hooks.onSignInBlocked(blockedPayload);
203
334
  }
204
335
  catch (error) {
336
+ // Non-blocking
205
337
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
206
338
  this.logger?.error?.(`Sign-in blocked hook failed: ${errorMessage}`, { error, userId: user.sub });
207
339
  }
208
340
  }
209
341
  }
342
+ /**
343
+ * Clear user block (manual unblock)
344
+ *
345
+ * Removes the block from storage adapter, allowing user to sign in again.
346
+ * Useful for admin actions or when risk situation has improved.
347
+ *
348
+ * @param userId - Internal user ID (integer)
349
+ *
350
+ * @example
351
+ * ```typescript
352
+ * await adaptiveMFADecisionService.clearUserBlock(user.id);
353
+ * ```
354
+ */
210
355
  async clearUserBlock(userId) {
211
356
  try {
212
357
  const blockKey = `adaptive_mfa_block:${userId}`;
@@ -214,6 +359,7 @@ class AdaptiveMFADecisionService {
214
359
  this.logger?.log?.(`User block cleared: userId=${userId}`);
215
360
  }
216
361
  catch (error) {
362
+ // Non-blocking: Log error but continue
217
363
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
218
364
  this.logger?.warn?.(`Failed to clear user block: ${errorMessage}`, { error, userId });
219
365
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive-mfa-decision.service.js","sourceRoot":"","sources":["../../src/services/adaptive-mfa-decision.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptive-mfa-decision.service.js","sourceRoot":"","sources":["../../src/services/adaptive-mfa-decision.service.ts"],"names":[],"mappings":"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"}