@nauth-toolkit/core 0.1.14 → 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
@@ -1,14 +1,157 @@
1
1
  import { GetClientInfoResponseDTO, GetIpAddressResponseDTO, GetUserAgentResponseDTO, GetDeviceTokenResponseDTO, GetSessionIdResponseDTO } from '../dto';
2
+ /**
3
+ * Client Info Service
4
+ *
5
+ * Provides transparent access to client information (IP address, user agent, device info)
6
+ * from the current request context using async local storage.
7
+ *
8
+ * This service eliminates the need to pass IP addresses and user agents as parameters
9
+ * to authentication methods. The library handles this automatically, just like AWS Cognito.
10
+ *
11
+ * **Key Features:**
12
+ * - Transparent access to client metadata
13
+ * - No parameters needed in service methods
14
+ * - Works across async boundaries
15
+ * - Type-safe with TypeScript
16
+ * - Thread-safe with async local storage
17
+ * - Platform-agnostic (no framework dependencies)
18
+ *
19
+ * **Usage:**
20
+ * ```typescript
21
+ * export class AuthService {
22
+ * constructor(private clientInfoService: ClientInfoService) {}
23
+ *
24
+ * async login(dto: LoginDTO) {
25
+ * // Get client info from context (no parameters needed!)
26
+ * const clientInfo = this.clientInfoService.get();
27
+ *
28
+ * // Use it
29
+ * logger.debug('IP Address:', clientInfo.ipAddress);
30
+ * logger.debug('User Agent:', clientInfo.userAgent);
31
+ * }
32
+ * }
33
+ * ```
34
+ *
35
+ * **Note:**
36
+ * This service must be called within the context of an HTTP request.
37
+ * If called outside a request context (e.g., cron jobs, CLI), it will
38
+ * return a default ClientInfo object with 'unknown' values.
39
+ */
2
40
  export declare class ClientInfoService {
3
41
  constructor();
42
+ /**
43
+ * Get client information from the current request context
44
+ *
45
+ * This method retrieves client metadata that was automatically extracted
46
+ * by ClientInfoInterceptor and stored in async local storage.
47
+ *
48
+ * @returns Response DTO with client information
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const result = this.clientInfoService.get();
53
+ * logger.debug('IP Address:', result.ipAddress); // 192.168.1.100
54
+ * logger.debug('User Agent:', result.userAgent); // Mozilla/5.0 ...
55
+ * ```
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // If called outside request context (e.g., cron job)
60
+ * const result = this.clientInfoService.get();
61
+ * logger.debug('IP Address:', result.ipAddress); // 'unknown'
62
+ * ```
63
+ */
4
64
  get(): GetClientInfoResponseDTO;
65
+ /**
66
+ * Get IP address from the current request context
67
+ *
68
+ * Convenience method to get just the IP address without the full ClientInfo object.
69
+ *
70
+ * @returns Response DTO with IP address
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const result = this.clientInfoService.getIpAddress();
75
+ * logger.debug('IP Address:', result.ipAddress); // 192.168.1.100
76
+ * ```
77
+ */
5
78
  getIpAddress(): GetIpAddressResponseDTO;
79
+ /**
80
+ * Get user agent from the current request context
81
+ *
82
+ * Convenience method to get just the user agent without the full ClientInfo object.
83
+ *
84
+ * @returns Response DTO with user agent
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const result = this.clientInfoService.getUserAgent();
89
+ * logger.debug('User Agent:', result.userAgent); // Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
90
+ * ```
91
+ */
6
92
  getUserAgent(): GetUserAgentResponseDTO;
93
+ /**
94
+ * Get device token from the current request context
95
+ *
96
+ * Convenience method to get just the device token (for trusted device feature).
97
+ *
98
+ * @returns Response DTO with device token
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * const result = this.clientInfoService.getDeviceToken();
103
+ * if (result.deviceToken) {
104
+ * logger.debug('Device token:', result.deviceToken);
105
+ * }
106
+ * ```
107
+ */
7
108
  getDeviceToken(): GetDeviceTokenResponseDTO;
109
+ /**
110
+ * Get session ID from the current request context
111
+ *
112
+ * Convenience method to get just the session ID (extracted from JWT token after authentication).
113
+ *
114
+ * @returns Response DTO with session ID
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const result = this.clientInfoService.getSessionId();
119
+ * if (result.sessionId) {
120
+ * logger.debug('Session ID:', result.sessionId);
121
+ * }
122
+ * ```
123
+ */
8
124
  getSessionId(): GetSessionIdResponseDTO;
125
+ /**
126
+ * Get response object from the current request context
127
+ *
128
+ * Returns the HTTP response object that was stored by the framework interceptor.
129
+ * Used internally by services to perform response operations like clearing cookies.
130
+ *
131
+ * @returns Response object with cookie manipulation methods, or null if not available
132
+ * @internal - Used by core services, not by application code
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const response = this.clientInfoService.getResponse();
137
+ * if (response?.clearCookie) {
138
+ * response.clearCookie('my_cookie');
139
+ * }
140
+ * ```
141
+ */
9
142
  getResponse(): {
10
143
  clearCookie?: (name: string, options?: unknown) => void;
11
144
  } | null;
145
+ /**
146
+ * Parse user-agent string to extract browser, platform, and device information
147
+ *
148
+ * This method is used internally by interceptors to populate ClientInfo.
149
+ * Services should use ClientInfoService.get() to access parsed information.
150
+ *
151
+ * @param userAgent - User-agent string from HTTP request
152
+ * @returns Parsed user-agent information
153
+ * @internal - Used by interceptors, not by application code
154
+ */
12
155
  parseUserAgent(userAgent?: string | null): {
13
156
  browser: string | null;
14
157
  platform: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"client-info.service.d.ts","sourceRoot":"","sources":["../../src/services/client-info.service.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,QAAQ,CAAC;AAwChB,qBAAa,iBAAiB;;IA2B5B,GAAG,IAAI,wBAAwB;IA2B/B,YAAY,IAAI,uBAAuB;IAmBvC,YAAY,IAAI,uBAAuB;IAqBvC,cAAc,IAAI,yBAAyB;IAqB3C,YAAY,IAAI,uBAAuB;IAuBvC,WAAW,IAAI;QAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI;IAcjF,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;QACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;QACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B;CAuJF"}
1
+ {"version":3,"file":"client-info.service.d.ts","sourceRoot":"","sources":["../../src/services/client-info.service.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,QAAQ,CAAC;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBAAa,iBAAiB;;IAK5B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,GAAG,IAAI,wBAAwB;IAc/B;;;;;;;;;;;;OAYG;IACH,YAAY,IAAI,uBAAuB;IAMvC;;;;;;;;;;;;OAYG;IACH,YAAY,IAAI,uBAAuB;IAMvC;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,yBAAyB;IAM3C;;;;;;;;;;;;;;OAcG;IACH,YAAY,IAAI,uBAAuB;IAMvC;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,IAAI;QAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,GAAG,IAAI;IAIjF;;;;;;;;;OASG;IACH,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG;QACzC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,UAAU,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC;QACnD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B;CAuJF"}
@@ -2,11 +2,73 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ClientInfoService = void 0;
4
4
  const context_storage_1 = require("../utils/context-storage");
5
+ /**
6
+ * Client Info Service
7
+ *
8
+ * Provides transparent access to client information (IP address, user agent, device info)
9
+ * from the current request context using async local storage.
10
+ *
11
+ * This service eliminates the need to pass IP addresses and user agents as parameters
12
+ * to authentication methods. The library handles this automatically, just like AWS Cognito.
13
+ *
14
+ * **Key Features:**
15
+ * - Transparent access to client metadata
16
+ * - No parameters needed in service methods
17
+ * - Works across async boundaries
18
+ * - Type-safe with TypeScript
19
+ * - Thread-safe with async local storage
20
+ * - Platform-agnostic (no framework dependencies)
21
+ *
22
+ * **Usage:**
23
+ * ```typescript
24
+ * export class AuthService {
25
+ * constructor(private clientInfoService: ClientInfoService) {}
26
+ *
27
+ * async login(dto: LoginDTO) {
28
+ * // Get client info from context (no parameters needed!)
29
+ * const clientInfo = this.clientInfoService.get();
30
+ *
31
+ * // Use it
32
+ * logger.debug('IP Address:', clientInfo.ipAddress);
33
+ * logger.debug('User Agent:', clientInfo.userAgent);
34
+ * }
35
+ * }
36
+ * ```
37
+ *
38
+ * **Note:**
39
+ * This service must be called within the context of an HTTP request.
40
+ * If called outside a request context (e.g., cron jobs, CLI), it will
41
+ * return a default ClientInfo object with 'unknown' values.
42
+ */
5
43
  class ClientInfoService {
6
44
  constructor() {
45
+ // No dependencies - uses static ContextStorage
7
46
  }
47
+ /**
48
+ * Get client information from the current request context
49
+ *
50
+ * This method retrieves client metadata that was automatically extracted
51
+ * by ClientInfoInterceptor and stored in async local storage.
52
+ *
53
+ * @returns Response DTO with client information
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * const result = this.clientInfoService.get();
58
+ * logger.debug('IP Address:', result.ipAddress); // 192.168.1.100
59
+ * logger.debug('User Agent:', result.userAgent); // Mozilla/5.0 ...
60
+ * ```
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * // If called outside request context (e.g., cron job)
65
+ * const result = this.clientInfoService.get();
66
+ * logger.debug('IP Address:', result.ipAddress); // 'unknown'
67
+ * ```
68
+ */
8
69
  get() {
9
70
  const clientInfo = context_storage_1.ContextStorage.get('CLIENT_INFO');
71
+ // If no client info in context (e.g., cron job, CLI), return default
10
72
  if (!clientInfo) {
11
73
  return {
12
74
  ipAddress: 'unknown',
@@ -15,29 +77,112 @@ class ClientInfoService {
15
77
  }
16
78
  return clientInfo;
17
79
  }
80
+ /**
81
+ * Get IP address from the current request context
82
+ *
83
+ * Convenience method to get just the IP address without the full ClientInfo object.
84
+ *
85
+ * @returns Response DTO with IP address
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const result = this.clientInfoService.getIpAddress();
90
+ * logger.debug('IP Address:', result.ipAddress); // 192.168.1.100
91
+ * ```
92
+ */
18
93
  getIpAddress() {
19
94
  return {
20
95
  ipAddress: this.get().ipAddress,
21
96
  };
22
97
  }
98
+ /**
99
+ * Get user agent from the current request context
100
+ *
101
+ * Convenience method to get just the user agent without the full ClientInfo object.
102
+ *
103
+ * @returns Response DTO with user agent
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * const result = this.clientInfoService.getUserAgent();
108
+ * logger.debug('User Agent:', result.userAgent); // Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
109
+ * ```
110
+ */
23
111
  getUserAgent() {
24
112
  return {
25
113
  userAgent: this.get().userAgent,
26
114
  };
27
115
  }
116
+ /**
117
+ * Get device token from the current request context
118
+ *
119
+ * Convenience method to get just the device token (for trusted device feature).
120
+ *
121
+ * @returns Response DTO with device token
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const result = this.clientInfoService.getDeviceToken();
126
+ * if (result.deviceToken) {
127
+ * logger.debug('Device token:', result.deviceToken);
128
+ * }
129
+ * ```
130
+ */
28
131
  getDeviceToken() {
29
132
  return {
30
133
  deviceToken: this.get().deviceToken,
31
134
  };
32
135
  }
136
+ /**
137
+ * Get session ID from the current request context
138
+ *
139
+ * Convenience method to get just the session ID (extracted from JWT token after authentication).
140
+ *
141
+ * @returns Response DTO with session ID
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const result = this.clientInfoService.getSessionId();
146
+ * if (result.sessionId) {
147
+ * logger.debug('Session ID:', result.sessionId);
148
+ * }
149
+ * ```
150
+ */
33
151
  getSessionId() {
34
152
  return {
35
153
  sessionId: this.get().sessionId,
36
154
  };
37
155
  }
156
+ /**
157
+ * Get response object from the current request context
158
+ *
159
+ * Returns the HTTP response object that was stored by the framework interceptor.
160
+ * Used internally by services to perform response operations like clearing cookies.
161
+ *
162
+ * @returns Response object with cookie manipulation methods, or null if not available
163
+ * @internal - Used by core services, not by application code
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * const response = this.clientInfoService.getResponse();
168
+ * if (response?.clearCookie) {
169
+ * response.clearCookie('my_cookie');
170
+ * }
171
+ * ```
172
+ */
38
173
  getResponse() {
39
174
  return context_storage_1.ContextStorage.get('HTTP_RESPONSE') || null;
40
175
  }
176
+ /**
177
+ * Parse user-agent string to extract browser, platform, and device information
178
+ *
179
+ * This method is used internally by interceptors to populate ClientInfo.
180
+ * Services should use ClientInfoService.get() to access parsed information.
181
+ *
182
+ * @param userAgent - User-agent string from HTTP request
183
+ * @returns Parsed user-agent information
184
+ * @internal - Used by interceptors, not by application code
185
+ */
41
186
  parseUserAgent(userAgent) {
42
187
  if (!userAgent || typeof userAgent !== 'string' || userAgent.trim() === '') {
43
188
  return {
@@ -48,8 +193,13 @@ class ClientInfoService {
48
193
  };
49
194
  }
50
195
  const ua = userAgent.toLowerCase();
196
+ // ============================================================================
197
+ // Detect Device Type
198
+ // ============================================================================
51
199
  let deviceType = null;
200
+ // Mobile devices
52
201
  if (/mobile|android|iphone|ipod|blackberry|opera|mini|windows\s+phone|palm|iemobile/i.test(ua)) {
202
+ // Tablets
53
203
  if (/tablet|ipad|playbook|silk|kindle/i.test(ua)) {
54
204
  deviceType = 'tablet';
55
205
  }
@@ -60,6 +210,9 @@ class ClientInfoService {
60
210
  else {
61
211
  deviceType = 'desktop';
62
212
  }
213
+ // ============================================================================
214
+ // Detect Platform/OS
215
+ // ============================================================================
63
216
  let platform = null;
64
217
  if (/windows/i.test(ua)) {
65
218
  if (/windows nt 10/i.test(ua)) {
@@ -85,6 +238,7 @@ class ClientInfoService {
85
238
  const match = ua.match(/mac os x (\d+)[._](\d+)/);
86
239
  if (match) {
87
240
  const major = parseInt(match[1], 10);
241
+ // Convert to macOS version names (approximate)
88
242
  if (major >= 13) {
89
243
  platform = 'macOS Ventura+';
90
244
  }
@@ -132,6 +286,9 @@ class ClientInfoService {
132
286
  else {
133
287
  platform = null;
134
288
  }
289
+ // ============================================================================
290
+ // Detect Browser
291
+ // ============================================================================
135
292
  let browser = null;
136
293
  if (/edg/i.test(ua)) {
137
294
  browser = 'Edge';
@@ -160,6 +317,9 @@ class ClientInfoService {
160
317
  else {
161
318
  browser = null;
162
319
  }
320
+ // ============================================================================
321
+ // Generate Device Name
322
+ // ============================================================================
163
323
  let deviceName = null;
164
324
  if (browser && platform) {
165
325
  deviceName = `${browser} on ${platform}`;
@@ -170,6 +330,7 @@ class ClientInfoService {
170
330
  else if (platform) {
171
331
  deviceName = platform;
172
332
  }
333
+ // Special cases for mobile devices
173
334
  if (deviceType === 'mobile' || deviceType === 'tablet') {
174
335
  if (/iphone/i.test(ua)) {
175
336
  const modelMatch = ua.match(/iphone(\d+),?(\d+)?/);
@@ -1 +1 @@
1
- {"version":3,"file":"client-info.service.js","sourceRoot":"","sources":["../../src/services/client-info.service.ts"],"names":[],"mappings":";;;AACA,8DAA0D;AA+C1D,MAAa,iBAAiB;IAC5B;IAEA,CAAC;IAwBD,GAAG;QACD,MAAM,UAAU,GAAG,gCAAc,CAAC,GAAG,CAAa,aAAa,CAAC,CAAC;QAGjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;aACO,CAAC;QAChC,CAAC;QAED,OAAO,UAAsC,CAAC;IAChD,CAAC;IAeD,YAAY;QACV,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAeD,YAAY;QACV,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAiBD,cAAc;QACZ,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW;SACpC,CAAC;IACJ,CAAC;IAiBD,YAAY;QACV,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS;SAChC,CAAC;IACJ,CAAC;IAmBD,WAAW;QACT,OAAO,gCAAc,CAAC,GAAG,CAA8D,eAAe,CAAC,IAAI,IAAI,CAAC;IAClH,CAAC;IAYD,cAAc,CAAC,SAAyB;QAMtC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,IAAI;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAKnC,IAAI,UAAU,GAA2C,IAAI,CAAC;QAG9D,IAAI,iFAAiF,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAE/F,IAAI,mCAAmC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjD,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAKD,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC;iBAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,QAAQ,GAAG,YAAY,CAAC;YAC1B,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,aAAa,CAAC;YAC3B,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,WAAW,CAAC;YACzB,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,QAAQ,GAAG,WAAW,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAErC,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;oBAChB,QAAQ,GAAG,gBAAgB,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;oBACvB,QAAQ,GAAG,gBAAgB,CAAC;gBAC9B,CAAC;qBAAM,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;oBACvB,QAAQ,GAAG,eAAe,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,OAAO,CAAC;gBACrB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,OAAO,CAAC;YACrB,CAAC;QACH,CAAC;aAAM,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC5C,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,OAAO,CAAC;QACrB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,QAAQ,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAKD,IAAI,OAAO,GAAkB,IAAI,CAAC;QAElC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpB,OAAO,GAAG,MAAM,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACxC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,CAAC;aAAM,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACzC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpD,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACzC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;aAAM,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,OAAO,GAAG,mBAAmB,CAAC;QAChC,CAAC;aAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAKD,IAAI,UAAU,GAAkB,IAAI,CAAC;QAErC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,UAAU,GAAG,GAAG,OAAO,OAAO,QAAQ,EAAE,CAAC;QAC3C,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,UAAU,GAAG,OAAO,CAAC;QACvB,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,UAAU,GAAG,QAAQ,CAAC;QACxB,CAAC;QAGD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACnD,IAAI,UAAU,EAAE,CAAC;oBACf,UAAU,GAAG,UAAU,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC5G,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,aAAa,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAChD,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5B,UAAU,GAAG,WAAW,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC9C,CAAC;iBAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC/B,UAAU,GAAG,GAAG,OAAO,IAAI,SAAS,OAAO,QAAQ,IAAI,SAAS,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO;YACP,QAAQ;YACR,UAAU;YACV,UAAU;SACX,CAAC;IACJ,CAAC;CACF;AApTD,8CAoTC"}
1
+ {"version":3,"file":"client-info.service.js","sourceRoot":"","sources":["../../src/services/client-info.service.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * CSRF Protection Service
3
+ *
4
+ * Handles CSRF token generation and validation for cookie-based authentication.
5
+ * Uses cryptographically secure random tokens.
6
+ */
1
7
  import { NAuthConfig } from '../index';
2
8
  import { NAuthCookieOptions } from '../platform/interfaces';
3
9
  export declare class CsrfService {
@@ -5,7 +11,16 @@ export declare class CsrfService {
5
11
  private readonly headerName;
6
12
  private readonly cookieOptions;
7
13
  constructor(config: NAuthConfig);
14
+ /**
15
+ * Generate a new CSRF token
16
+ * @returns Random 32-byte token as hex string
17
+ */
8
18
  generateToken(): string;
19
+ /**
20
+ * Validate CSRF token
21
+ * Compares token from request header with token from cookie.
22
+ * Uses constant-time comparison to prevent timing attacks.
23
+ */
9
24
  validateToken(headerToken: string, cookieToken: string): boolean;
10
25
  getCookieName(): string;
11
26
  getHeaderName(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"csrf.service.d.ts","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,MAAM,EAAE,WAAW;IAU/B,aAAa,IAAI,MAAM;IASvB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAQhE,aAAa,IAAI,MAAM;IAIvB,aAAa,IAAI,MAAM;IAIvB,gBAAgB,IAAI,kBAAkB;CAGvC"}
1
+ {"version":3,"file":"csrf.service.d.ts","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAEvC,MAAM,EAAE,WAAW;IAM/B;;;OAGG;IACH,aAAa,IAAI,MAAM;IAIvB;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAQhE,aAAa,IAAI,MAAM;IAIvB,aAAa,IAAI,MAAM;IAIvB,gBAAgB,IAAI,kBAAkB;CAGvC"}
@@ -1,4 +1,10 @@
1
1
  "use strict";
2
+ /**
3
+ * CSRF Protection Service
4
+ *
5
+ * Handles CSRF token generation and validation for cookie-based authentication.
6
+ * Uses cryptographically secure random tokens.
7
+ */
2
8
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
9
  if (k2 === undefined) k2 = k;
4
10
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -44,13 +50,23 @@ class CsrfService {
44
50
  this.headerName = config.security?.csrf?.headerName || 'x-csrf-token';
45
51
  this.cookieOptions = config.security?.csrf?.cookieOptions || {};
46
52
  }
53
+ /**
54
+ * Generate a new CSRF token
55
+ * @returns Random 32-byte token as hex string
56
+ */
47
57
  generateToken() {
48
58
  return crypto.randomBytes(32).toString('hex');
49
59
  }
60
+ /**
61
+ * Validate CSRF token
62
+ * Compares token from request header with token from cookie.
63
+ * Uses constant-time comparison to prevent timing attacks.
64
+ */
50
65
  validateToken(headerToken, cookieToken) {
51
66
  if (!headerToken || !cookieToken) {
52
67
  return false;
53
68
  }
69
+ // Constant-time comparison
54
70
  return crypto.timingSafeEqual(Buffer.from(headerToken), Buffer.from(cookieToken));
55
71
  }
56
72
  getCookieName() {
@@ -1 +1 @@
1
- {"version":3,"file":"csrf.service.js","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,+CAAiC;AAIjC,MAAa,WAAW;IACL,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,aAAa,CAAqB;IAEnD,YAAY,MAAmB;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,kBAAkB,CAAC;QAC1E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC;IAClE,CAAC;IAMD,aAAa;QACX,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAOD,aAAa,CAAC,WAAmB,EAAE,WAAmB;QACpD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF;AA3CD,kCA2CC"}
1
+ {"version":3,"file":"csrf.service.js","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,+CAAiC;AAIjC,MAAa,WAAW;IACL,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,aAAa,CAAqB;IAEnD,YAAY,MAAmB;QAC7B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,kBAAkB,CAAC;QAC1E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;QACtE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC;IAClE,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,WAAmB,EAAE,WAAmB;QACpD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,2BAA2B;QAC3B,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF;AA3CD,kCA2CC"}
@@ -7,6 +7,17 @@ import { ClientInfoService } from './client-info.service';
7
7
  import { InternalAuthAuditService as AuthAuditService } from './auth-audit.service';
8
8
  import { NAuthLogger } from '../utils/nauth-logger';
9
9
  import { SendVerificationEmailDTO, SendVerificationEmailResponseDTO, VerifyEmailWithCodeDTO, VerifyEmailWithTokenDTO, ResendVerificationEmailDTO, ResendVerificationEmailResponseDTO, VerifyEmailResponseDTO } from '../dto/verify-email.dto';
10
+ /**
11
+ * Email Verification Service
12
+ *
13
+ * Handles email verification workflow:
14
+ * - Generate verification codes
15
+ * - Send verification emails
16
+ * - Verify codes with token generation
17
+ * - Resend with rate limiting
18
+ *
19
+ * Supports both code-based (6-digit OTP) and link-based verification.
20
+ */
10
21
  export declare class EmailVerificationService {
11
22
  private readonly verificationTokenRepo;
12
23
  private readonly userRepo;
@@ -17,14 +28,55 @@ export declare class EmailVerificationService {
17
28
  private readonly logger;
18
29
  private readonly auditService?;
19
30
  constructor(verificationTokenRepo: Repository<BaseVerificationToken>, userRepo: Repository<BaseUser>, emailProvider: EmailProvider, storageAdapter: StorageAdapter, config: NAuthConfig, clientInfoService: ClientInfoService, logger: NAuthLogger, auditService?: AuthAuditService | undefined);
31
+ /**
32
+ * Send verification email to user
33
+ * Generates a new verification code and sends it via email
34
+ *
35
+ * @param dto - Request DTO containing sub, baseUrl, and skipAlreadyVerifiedCheck
36
+ * @returns Response DTO with verification token ID
37
+ */
20
38
  sendVerificationEmail(dto: SendVerificationEmailDTO): Promise<SendVerificationEmailResponseDTO>;
39
+ /**
40
+ * Verify email with code (6-digit OTP)
41
+ * Marks email as verified and activates user account
42
+ *
43
+ * @param dto - Request DTO containing email and code
44
+ * @returns Response DTO with success message
45
+ */
21
46
  verifyEmailWithCode(dto: VerifyEmailWithCodeDTO): Promise<VerifyEmailResponseDTO>;
47
+ /**
48
+ * Verify email with link token
49
+ * Marks email as verified and activates user account
50
+ *
51
+ * @param dto - Request DTO containing token
52
+ * @returns Response DTO with success message
53
+ */
22
54
  verifyEmailWithToken(dto: VerifyEmailWithTokenDTO): Promise<VerifyEmailResponseDTO>;
55
+ /**
56
+ * Resend verification email
57
+ * Supports both sub and email-based resend
58
+ *
59
+ * @param dto - Request DTO containing sub or email, and optional baseUrl
60
+ * @returns Response DTO with verification token ID
61
+ */
23
62
  resendVerificationEmail(dto: ResendVerificationEmailDTO): Promise<ResendVerificationEmailResponseDTO>;
24
63
  private resendVerificationEmailBySub;
25
64
  private resendVerificationEmailByEmail;
65
+ /**
66
+ * Generate 6-digit verification code
67
+ * @returns 6-digit numeric code
68
+ */
26
69
  private generateCode;
70
+ /**
71
+ * Generate secure random token
72
+ * @returns Random token (32 bytes, hex encoded)
73
+ */
27
74
  private generateToken;
75
+ /**
76
+ * Hash token with SHA-256
77
+ * @param token - Plain token
78
+ * @returns Hashed token
79
+ */
28
80
  private hashToken;
29
81
  }
30
82
  //# sourceMappingURL=email-verification.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"email-verification.service.d.ts","sourceRoot":"","sources":["../../src/services/email-verification.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAcjC,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAPb,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CAAC,EACxD,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC9B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,WAAW,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,gBAAgB,YAAA;IAU5C,qBAAqB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IA6J/F,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAsMjF,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA8EnF,uBAAuB,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,kCAAkC,CAAC;YAa7F,4BAA4B;YA0C5B,8BAA8B;IAgB5C,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"email-verification.service.d.ts","sourceRoot":"","sources":["../../src/services/email-verification.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAU,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIpF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,EACtB,uBAAuB,EACvB,0BAA0B,EAC1B,kCAAkC,EAClC,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC;;;;;;;;;;GAUG;AACH,qBAAa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAPb,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CAAC,EACxD,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAC9B,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,WAAW,EACnB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,WAAW,EACnB,YAAY,CAAC,EAAE,gBAAgB,YAAA;IAGlD;;;;;;OAMG;IACG,qBAAqB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,gCAAgC,CAAC;IAsJrG;;;;;;OAMG;IACG,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA+LvF;;;;;;OAMG;IACG,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAuEzF;;;;;;OAMG;IACG,uBAAuB,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,kCAAkC,CAAC;YAa7F,4BAA4B;YA0C5B,8BAA8B;IAY5C;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIpB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAIrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;CAGlB"}