@nauth-toolkit/core 0.1.13 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/dist/adapters/database-columns.d.ts +70 -0
  2. package/dist/adapters/database-columns.d.ts.map +1 -1
  3. package/dist/adapters/database-columns.js +76 -2
  4. package/dist/adapters/database-columns.js.map +1 -1
  5. package/dist/adapters/express.adapter.d.ts +66 -0
  6. package/dist/adapters/express.adapter.d.ts.map +1 -1
  7. package/dist/adapters/express.adapter.js +80 -0
  8. package/dist/adapters/express.adapter.js.map +1 -1
  9. package/dist/adapters/fastify.adapter.d.ts +42 -0
  10. package/dist/adapters/fastify.adapter.d.ts.map +1 -1
  11. package/dist/adapters/fastify.adapter.js +86 -0
  12. package/dist/adapters/fastify.adapter.js.map +1 -1
  13. package/dist/adapters/index.d.ts +5 -0
  14. package/dist/adapters/index.d.ts.map +1 -1
  15. package/dist/adapters/index.js +9 -0
  16. package/dist/adapters/index.js.map +1 -1
  17. package/dist/adapters/storage.factory.d.ts +107 -0
  18. package/dist/adapters/storage.factory.d.ts.map +1 -1
  19. package/dist/adapters/storage.factory.js +114 -0
  20. package/dist/adapters/storage.factory.js.map +1 -1
  21. package/dist/adapters.d.ts +8 -0
  22. package/dist/adapters.d.ts.map +1 -1
  23. package/dist/adapters.js +8 -0
  24. package/dist/adapters.js.map +1 -1
  25. package/dist/bootstrap.d.ts +82 -0
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +106 -0
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/dto/admin-set-password.dto.d.ts +90 -0
  30. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  31. package/dist/dto/admin-set-password.dto.js +91 -0
  32. package/dist/dto/admin-set-password.dto.js.map +1 -1
  33. package/dist/dto/auth-challenge.dto.d.ts +170 -0
  34. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  35. package/dist/dto/auth-challenge.dto.js +170 -0
  36. package/dist/dto/auth-challenge.dto.js.map +1 -1
  37. package/dist/dto/auth-response.dto.d.ts +196 -0
  38. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-response.dto.js +149 -0
  40. package/dist/dto/auth-response.dto.js.map +1 -1
  41. package/dist/dto/challenge-response.dto.d.ts +155 -0
  42. package/dist/dto/challenge-response.dto.d.ts.map +1 -1
  43. package/dist/dto/challenge-response.dto.js +8 -0
  44. package/dist/dto/challenge-response.dto.js.map +1 -1
  45. package/dist/dto/change-password-request.dto.d.ts +35 -0
  46. package/dist/dto/change-password-request.dto.d.ts.map +1 -1
  47. package/dist/dto/change-password-request.dto.js +35 -0
  48. package/dist/dto/change-password-request.dto.js.map +1 -1
  49. package/dist/dto/change-password-response.dto.d.ts +25 -0
  50. package/dist/dto/change-password-response.dto.d.ts.map +1 -1
  51. package/dist/dto/change-password-response.dto.js +25 -0
  52. package/dist/dto/change-password-response.dto.js.map +1 -1
  53. package/dist/dto/change-password.dto.d.ts +45 -0
  54. package/dist/dto/change-password.dto.d.ts.map +1 -1
  55. package/dist/dto/change-password.dto.js +45 -0
  56. package/dist/dto/change-password.dto.js.map +1 -1
  57. package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
  58. package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
  59. package/dist/dto/confirm-forgot-password.dto.js +59 -0
  60. package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
  61. package/dist/dto/error-response.dto.d.ts +103 -0
  62. package/dist/dto/error-response.dto.d.ts.map +1 -1
  63. package/dist/dto/error-response.dto.js +103 -0
  64. package/dist/dto/error-response.dto.js.map +1 -1
  65. package/dist/dto/forgot-password.dto.d.ts +58 -0
  66. package/dist/dto/forgot-password.dto.d.ts.map +1 -1
  67. package/dist/dto/forgot-password.dto.js +58 -0
  68. package/dist/dto/forgot-password.dto.js.map +1 -1
  69. package/dist/dto/get-available-methods.dto.d.ts +37 -0
  70. package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
  71. package/dist/dto/get-available-methods.dto.js +37 -0
  72. package/dist/dto/get-available-methods.dto.js.map +1 -1
  73. package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
  74. package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
  75. package/dist/dto/get-challenge-data-response.dto.js +24 -0
  76. package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
  77. package/dist/dto/get-challenge-data.dto.d.ts +46 -0
  78. package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
  79. package/dist/dto/get-challenge-data.dto.js +46 -0
  80. package/dist/dto/get-challenge-data.dto.js.map +1 -1
  81. package/dist/dto/get-client-info.dto.d.ts +74 -0
  82. package/dist/dto/get-client-info.dto.d.ts.map +1 -1
  83. package/dist/dto/get-client-info.dto.js +74 -0
  84. package/dist/dto/get-client-info.dto.js.map +1 -1
  85. package/dist/dto/get-device-token-response.dto.d.ts +21 -0
  86. package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
  87. package/dist/dto/get-device-token-response.dto.js +21 -0
  88. package/dist/dto/get-device-token-response.dto.js.map +1 -1
  89. package/dist/dto/get-events-by-type.dto.d.ts +50 -0
  90. package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
  91. package/dist/dto/get-events-by-type.dto.js +50 -0
  92. package/dist/dto/get-events-by-type.dto.js.map +1 -1
  93. package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
  94. package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
  95. package/dist/dto/get-ip-address-response.dto.js +20 -0
  96. package/dist/dto/get-ip-address-response.dto.js.map +1 -1
  97. package/dist/dto/get-mfa-status.dto.d.ts +59 -0
  98. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  99. package/dist/dto/get-mfa-status.dto.js +59 -0
  100. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  101. package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
  102. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  103. package/dist/dto/get-risk-assessment-history.dto.js +28 -0
  104. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  105. package/dist/dto/get-session-id-response.dto.d.ts +21 -0
  106. package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
  107. package/dist/dto/get-session-id-response.dto.js +21 -0
  108. package/dist/dto/get-session-id-response.dto.js.map +1 -1
  109. package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
  110. package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
  111. package/dist/dto/get-setup-data-response.dto.js +27 -0
  112. package/dist/dto/get-setup-data-response.dto.js.map +1 -1
  113. package/dist/dto/get-setup-data.dto.d.ts +51 -0
  114. package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
  115. package/dist/dto/get-setup-data.dto.js +51 -0
  116. package/dist/dto/get-setup-data.dto.js.map +1 -1
  117. package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
  118. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  119. package/dist/dto/get-suspicious-activity.dto.js +31 -0
  120. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  121. package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
  122. package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
  123. package/dist/dto/get-user-agent-response.dto.js +19 -0
  124. package/dist/dto/get-user-agent-response.dto.js.map +1 -1
  125. package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
  126. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  127. package/dist/dto/get-user-auth-history.dto.js +64 -0
  128. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  129. package/dist/dto/get-user-by-email.dto.d.ts +42 -0
  130. package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
  131. package/dist/dto/get-user-by-email.dto.js +42 -0
  132. package/dist/dto/get-user-by-email.dto.js.map +1 -1
  133. package/dist/dto/get-user-by-id.dto.d.ts +32 -0
  134. package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
  135. package/dist/dto/get-user-by-id.dto.js +32 -0
  136. package/dist/dto/get-user-by-id.dto.js.map +1 -1
  137. package/dist/dto/get-user-devices.dto.d.ts +34 -0
  138. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  139. package/dist/dto/get-user-devices.dto.js +34 -0
  140. package/dist/dto/get-user-devices.dto.js.map +1 -1
  141. package/dist/dto/get-user-response.dto.d.ts +14 -0
  142. package/dist/dto/get-user-response.dto.d.ts.map +1 -1
  143. package/dist/dto/get-user-response.dto.js +15 -0
  144. package/dist/dto/get-user-response.dto.js.map +1 -1
  145. package/dist/dto/has-provider.dto.d.ts +33 -0
  146. package/dist/dto/has-provider.dto.d.ts.map +1 -1
  147. package/dist/dto/has-provider.dto.js +33 -0
  148. package/dist/dto/has-provider.dto.js.map +1 -1
  149. package/dist/dto/index.js +5 -0
  150. package/dist/dto/index.js.map +1 -1
  151. package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
  152. package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
  153. package/dist/dto/is-trusted-device-response.dto.js +28 -0
  154. package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
  155. package/dist/dto/list-providers-response.dto.d.ts +19 -0
  156. package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
  157. package/dist/dto/list-providers-response.dto.js +19 -0
  158. package/dist/dto/list-providers-response.dto.js.map +1 -1
  159. package/dist/dto/login.dto.d.ts +48 -0
  160. package/dist/dto/login.dto.d.ts.map +1 -1
  161. package/dist/dto/login.dto.js +50 -1
  162. package/dist/dto/login.dto.js.map +1 -1
  163. package/dist/dto/logout-all-response.dto.d.ts +20 -0
  164. package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
  165. package/dist/dto/logout-all-response.dto.js +20 -0
  166. package/dist/dto/logout-all-response.dto.js.map +1 -1
  167. package/dist/dto/logout-all.dto.d.ts +42 -0
  168. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  169. package/dist/dto/logout-all.dto.js +42 -0
  170. package/dist/dto/logout-all.dto.js.map +1 -1
  171. package/dist/dto/logout-response.dto.d.ts +21 -0
  172. package/dist/dto/logout-response.dto.d.ts.map +1 -1
  173. package/dist/dto/logout-response.dto.js +21 -0
  174. package/dist/dto/logout-response.dto.js.map +1 -1
  175. package/dist/dto/logout.dto.d.ts +45 -0
  176. package/dist/dto/logout.dto.d.ts.map +1 -1
  177. package/dist/dto/logout.dto.js +45 -0
  178. package/dist/dto/logout.dto.js.map +1 -1
  179. package/dist/dto/refresh-token.dto.d.ts +28 -0
  180. package/dist/dto/refresh-token.dto.d.ts.map +1 -1
  181. package/dist/dto/refresh-token.dto.js +28 -0
  182. package/dist/dto/refresh-token.dto.js.map +1 -1
  183. package/dist/dto/remove-devices.dto.d.ts +51 -0
  184. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  185. package/dist/dto/remove-devices.dto.js +51 -0
  186. package/dist/dto/remove-devices.dto.js.map +1 -1
  187. package/dist/dto/resend-code-response.dto.d.ts +28 -0
  188. package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
  189. package/dist/dto/resend-code-response.dto.js +28 -0
  190. package/dist/dto/resend-code-response.dto.js.map +1 -1
  191. package/dist/dto/resend-code.dto.d.ts +37 -0
  192. package/dist/dto/resend-code.dto.d.ts.map +1 -1
  193. package/dist/dto/resend-code.dto.js +37 -0
  194. package/dist/dto/resend-code.dto.js.map +1 -1
  195. package/dist/dto/reset-password.dto.d.ts +74 -0
  196. package/dist/dto/reset-password.dto.d.ts.map +1 -1
  197. package/dist/dto/reset-password.dto.js +76 -1
  198. package/dist/dto/reset-password.dto.js.map +1 -1
  199. package/dist/dto/respond-challenge.dto.d.ts +147 -0
  200. package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
  201. package/dist/dto/respond-challenge.dto.js +162 -0
  202. package/dist/dto/respond-challenge.dto.js.map +1 -1
  203. package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
  204. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  205. package/dist/dto/set-mfa-exemption.dto.js +65 -0
  206. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  207. package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
  208. package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
  209. package/dist/dto/set-must-change-password-response.dto.js +23 -0
  210. package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
  211. package/dist/dto/set-must-change-password.dto.d.ts +32 -0
  212. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  213. package/dist/dto/set-must-change-password.dto.js +32 -0
  214. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  215. package/dist/dto/set-preferred-method.dto.d.ts +48 -0
  216. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  217. package/dist/dto/set-preferred-method.dto.js +48 -0
  218. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  219. package/dist/dto/setup-mfa.dto.d.ts +62 -0
  220. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  221. package/dist/dto/setup-mfa.dto.js +62 -0
  222. package/dist/dto/setup-mfa.dto.js.map +1 -1
  223. package/dist/dto/signup.dto.d.ts +92 -0
  224. package/dist/dto/signup.dto.d.ts.map +1 -1
  225. package/dist/dto/signup.dto.js +93 -0
  226. package/dist/dto/signup.dto.js.map +1 -1
  227. package/dist/dto/social-auth.dto.d.ts +234 -0
  228. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  229. package/dist/dto/social-auth.dto.js +234 -0
  230. package/dist/dto/social-auth.dto.js.map +1 -1
  231. package/dist/dto/trust-device-response.dto.d.ts +26 -0
  232. package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
  233. package/dist/dto/trust-device-response.dto.js +26 -0
  234. package/dist/dto/trust-device-response.dto.js.map +1 -1
  235. package/dist/dto/trust-device.dto.d.ts +9 -0
  236. package/dist/dto/trust-device.dto.d.ts.map +1 -1
  237. package/dist/dto/trust-device.dto.js +9 -0
  238. package/dist/dto/trust-device.dto.js.map +1 -1
  239. package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
  240. package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
  241. package/dist/dto/update-user-attributes-request.dto.js +36 -0
  242. package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
  243. package/dist/dto/user-response.dto.d.ts +81 -0
  244. package/dist/dto/user-response.dto.d.ts.map +1 -1
  245. package/dist/dto/user-response.dto.js +84 -2
  246. package/dist/dto/user-response.dto.js.map +1 -1
  247. package/dist/dto/user-update.dto.d.ts +132 -0
  248. package/dist/dto/user-update.dto.d.ts.map +1 -1
  249. package/dist/dto/user-update.dto.js +133 -0
  250. package/dist/dto/user-update.dto.js.map +1 -1
  251. package/dist/dto/verify-email.dto.d.ts +171 -0
  252. package/dist/dto/verify-email.dto.d.ts.map +1 -1
  253. package/dist/dto/verify-email.dto.js +173 -1
  254. package/dist/dto/verify-email.dto.js.map +1 -1
  255. package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
  256. package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
  257. package/dist/dto/verify-mfa-code.dto.js +65 -0
  258. package/dist/dto/verify-mfa-code.dto.js.map +1 -1
  259. package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
  260. package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
  261. package/dist/dto/verify-phone-by-sub.dto.js +49 -0
  262. package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
  263. package/dist/dto/verify-phone.dto.d.ts +139 -0
  264. package/dist/dto/verify-phone.dto.d.ts.map +1 -1
  265. package/dist/dto/verify-phone.dto.js +142 -1
  266. package/dist/dto/verify-phone.dto.js.map +1 -1
  267. package/dist/dto.d.ts +10 -0
  268. package/dist/dto.d.ts.map +1 -1
  269. package/dist/dto.js +10 -0
  270. package/dist/dto.js.map +1 -1
  271. package/dist/entities/auth-audit.entity.d.ts +159 -0
  272. package/dist/entities/auth-audit.entity.d.ts.map +1 -1
  273. package/dist/entities/auth-audit.entity.js +166 -0
  274. package/dist/entities/auth-audit.entity.js.map +1 -1
  275. package/dist/entities/challenge-session.entity.d.ts +87 -0
  276. package/dist/entities/challenge-session.entity.d.ts.map +1 -1
  277. package/dist/entities/challenge-session.entity.js +87 -0
  278. package/dist/entities/challenge-session.entity.js.map +1 -1
  279. package/dist/entities/index.d.ts +18 -0
  280. package/dist/entities/index.d.ts.map +1 -1
  281. package/dist/entities/index.js +18 -0
  282. package/dist/entities/index.js.map +1 -1
  283. package/dist/entities/login-attempt.entity.d.ts +43 -0
  284. package/dist/entities/login-attempt.entity.d.ts.map +1 -1
  285. package/dist/entities/login-attempt.entity.js +43 -0
  286. package/dist/entities/login-attempt.entity.js.map +1 -1
  287. package/dist/entities/mfa-device.entity.d.ts +112 -0
  288. package/dist/entities/mfa-device.entity.d.ts.map +1 -1
  289. package/dist/entities/mfa-device.entity.js +112 -0
  290. package/dist/entities/mfa-device.entity.js.map +1 -1
  291. package/dist/entities/rate-limit.entity.d.ts +31 -0
  292. package/dist/entities/rate-limit.entity.d.ts.map +1 -1
  293. package/dist/entities/rate-limit.entity.js +31 -0
  294. package/dist/entities/rate-limit.entity.js.map +1 -1
  295. package/dist/entities/session.entity.d.ts +121 -0
  296. package/dist/entities/session.entity.d.ts.map +1 -1
  297. package/dist/entities/session.entity.js +121 -0
  298. package/dist/entities/session.entity.js.map +1 -1
  299. package/dist/entities/social-account.entity.d.ts +75 -0
  300. package/dist/entities/social-account.entity.d.ts.map +1 -1
  301. package/dist/entities/social-account.entity.js +75 -0
  302. package/dist/entities/social-account.entity.js.map +1 -1
  303. package/dist/entities/storage-lock.entity.d.ts +28 -0
  304. package/dist/entities/storage-lock.entity.d.ts.map +1 -1
  305. package/dist/entities/storage-lock.entity.js +28 -0
  306. package/dist/entities/storage-lock.entity.js.map +1 -1
  307. package/dist/entities/trusted-device.entity.d.ts +83 -0
  308. package/dist/entities/trusted-device.entity.d.ts.map +1 -1
  309. package/dist/entities/trusted-device.entity.js +83 -0
  310. package/dist/entities/trusted-device.entity.js.map +1 -1
  311. package/dist/entities/user.entity.d.ts +166 -0
  312. package/dist/entities/user.entity.d.ts.map +1 -1
  313. package/dist/entities/user.entity.js +166 -0
  314. package/dist/entities/user.entity.js.map +1 -1
  315. package/dist/entities/verification-token.entity.d.ts +102 -0
  316. package/dist/entities/verification-token.entity.d.ts.map +1 -1
  317. package/dist/entities/verification-token.entity.js +102 -0
  318. package/dist/entities/verification-token.entity.js.map +1 -1
  319. package/dist/entities.d.ts +8 -0
  320. package/dist/entities.d.ts.map +1 -1
  321. package/dist/entities.js +8 -0
  322. package/dist/entities.js.map +1 -1
  323. package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
  324. package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
  325. package/dist/enums/auth-audit-event-type.enum.js +244 -0
  326. package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
  327. package/dist/enums/error-codes.enum.d.ts +296 -0
  328. package/dist/enums/error-codes.enum.d.ts.map +1 -1
  329. package/dist/enums/error-codes.enum.js +332 -0
  330. package/dist/enums/error-codes.enum.js.map +1 -1
  331. package/dist/enums/mfa-method.enum.d.ts +74 -0
  332. package/dist/enums/mfa-method.enum.d.ts.map +1 -1
  333. package/dist/enums/mfa-method.enum.js +64 -0
  334. package/dist/enums/mfa-method.enum.js.map +1 -1
  335. package/dist/enums/risk-factor.enum.d.ts +91 -0
  336. package/dist/enums/risk-factor.enum.d.ts.map +1 -1
  337. package/dist/enums/risk-factor.enum.js +97 -0
  338. package/dist/enums/risk-factor.enum.js.map +1 -1
  339. package/dist/exceptions/nauth.exception.d.ts +149 -0
  340. package/dist/exceptions/nauth.exception.d.ts.map +1 -1
  341. package/dist/exceptions/nauth.exception.js +159 -0
  342. package/dist/exceptions/nauth.exception.js.map +1 -1
  343. package/dist/handlers/auth.handler.d.ts +32 -0
  344. package/dist/handlers/auth.handler.d.ts.map +1 -1
  345. package/dist/handlers/auth.handler.js +47 -1
  346. package/dist/handlers/auth.handler.js.map +1 -1
  347. package/dist/handlers/client-info.handler.d.ts +25 -0
  348. package/dist/handlers/client-info.handler.d.ts.map +1 -1
  349. package/dist/handlers/client-info.handler.js +36 -2
  350. package/dist/handlers/client-info.handler.js.map +1 -1
  351. package/dist/handlers/csrf.handler.d.ts +32 -0
  352. package/dist/handlers/csrf.handler.d.ts.map +1 -1
  353. package/dist/handlers/csrf.handler.js +49 -1
  354. package/dist/handlers/csrf.handler.js.map +1 -1
  355. package/dist/handlers/token-delivery.handler.d.ts +16 -0
  356. package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
  357. package/dist/handlers/token-delivery.handler.js +22 -1
  358. package/dist/handlers/token-delivery.handler.js.map +1 -1
  359. package/dist/index.d.ts +34 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +67 -0
  362. package/dist/index.js.map +1 -1
  363. package/dist/interfaces/client-info.interface.d.ts +58 -0
  364. package/dist/interfaces/client-info.interface.d.ts.map +1 -1
  365. package/dist/interfaces/config.interface.d.ts +1774 -0
  366. package/dist/interfaces/config.interface.d.ts.map +1 -1
  367. package/dist/interfaces/config.interface.js +16 -0
  368. package/dist/interfaces/config.interface.js.map +1 -1
  369. package/dist/interfaces/entities.interface.d.ts +48 -0
  370. package/dist/interfaces/entities.interface.d.ts.map +1 -1
  371. package/dist/interfaces/entities.interface.js +8 -0
  372. package/dist/interfaces/entities.interface.js.map +1 -1
  373. package/dist/interfaces/index.js +5 -0
  374. package/dist/interfaces/index.js.map +1 -1
  375. package/dist/interfaces/logger.interface.d.ts +213 -0
  376. package/dist/interfaces/logger.interface.d.ts.map +1 -1
  377. package/dist/interfaces/logger.interface.js +35 -0
  378. package/dist/interfaces/logger.interface.js.map +1 -1
  379. package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
  380. package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
  381. package/dist/interfaces/oauth.interface.d.ts +110 -0
  382. package/dist/interfaces/oauth.interface.d.ts.map +1 -1
  383. package/dist/interfaces/provider.interface.d.ts +83 -0
  384. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  385. package/dist/interfaces/sms-template.interface.d.ts +246 -0
  386. package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
  387. package/dist/interfaces/sms-template.interface.js +26 -0
  388. package/dist/interfaces/sms-template.interface.js.map +1 -1
  389. package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
  390. package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
  391. package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
  392. package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
  393. package/dist/interfaces/template.interface.d.ts +351 -0
  394. package/dist/interfaces/template.interface.d.ts.map +1 -1
  395. package/dist/interfaces/template.interface.js +13 -0
  396. package/dist/interfaces/template.interface.js.map +1 -1
  397. package/dist/interfaces/token-verifier.interface.d.ts +101 -0
  398. package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
  399. package/dist/interfaces.d.ts +8 -0
  400. package/dist/interfaces.d.ts.map +1 -1
  401. package/dist/interfaces.js +8 -0
  402. package/dist/interfaces.js.map +1 -1
  403. package/dist/internal.d.ts +120 -0
  404. package/dist/internal.d.ts.map +1 -1
  405. package/dist/internal.js +138 -0
  406. package/dist/internal.js.map +1 -1
  407. package/dist/platform/interfaces.d.ts +187 -0
  408. package/dist/platform/interfaces.d.ts.map +1 -1
  409. package/dist/platform/interfaces.js +11 -0
  410. package/dist/platform/interfaces.js.map +1 -1
  411. package/dist/schemas/auth-config.schema.d.ts +48 -0
  412. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  413. package/dist/schemas/auth-config.schema.js +188 -9
  414. package/dist/schemas/auth-config.schema.js.map +1 -1
  415. package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
  416. package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
  417. package/dist/services/adaptive-mfa-decision.service.js +151 -5
  418. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  419. package/dist/services/auth-audit.service.d.ts +195 -0
  420. package/dist/services/auth-audit.service.d.ts.map +1 -1
  421. package/dist/services/auth-audit.service.js +228 -1
  422. package/dist/services/auth-audit.service.js.map +1 -1
  423. package/dist/services/auth-challenge-helper.service.d.ts +144 -1
  424. package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
  425. package/dist/services/auth-challenge-helper.service.js +295 -16
  426. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  427. package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
  428. package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
  429. package/dist/services/auth-flow-context-builder.service.js +184 -5
  430. package/dist/services/auth-flow-context-builder.service.js.map +1 -1
  431. package/dist/services/auth-flow-rules.d.ts +136 -0
  432. package/dist/services/auth-flow-rules.d.ts.map +1 -1
  433. package/dist/services/auth-flow-rules.js +137 -0
  434. package/dist/services/auth-flow-rules.js.map +1 -1
  435. package/dist/services/auth-flow-state-definitions.d.ts +40 -0
  436. package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
  437. package/dist/services/auth-flow-state-definitions.js +98 -0
  438. package/dist/services/auth-flow-state-definitions.js.map +1 -1
  439. package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
  440. package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
  441. package/dist/services/auth-flow-state-machine.service.js +102 -0
  442. package/dist/services/auth-flow-state-machine.service.js.map +1 -1
  443. package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
  444. package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
  445. package/dist/services/auth-flow-state-machine.types.js +47 -0
  446. package/dist/services/auth-flow-state-machine.types.js.map +1 -1
  447. package/dist/services/auth.service.d.ts +397 -1
  448. package/dist/services/auth.service.d.ts.map +1 -1
  449. package/dist/services/auth.service.js +943 -27
  450. package/dist/services/auth.service.js.map +1 -1
  451. package/dist/services/challenge.service.d.ts +255 -1
  452. package/dist/services/challenge.service.d.ts.map +1 -1
  453. package/dist/services/challenge.service.js +327 -3
  454. package/dist/services/challenge.service.js.map +1 -1
  455. package/dist/services/client-info.service.d.ts +143 -0
  456. package/dist/services/client-info.service.d.ts.map +1 -1
  457. package/dist/services/client-info.service.js +161 -0
  458. package/dist/services/client-info.service.js.map +1 -1
  459. package/dist/services/csrf.service.d.ts +15 -0
  460. package/dist/services/csrf.service.d.ts.map +1 -1
  461. package/dist/services/csrf.service.js +16 -0
  462. package/dist/services/csrf.service.js.map +1 -1
  463. package/dist/services/email-verification.service.d.ts +52 -0
  464. package/dist/services/email-verification.service.d.ts.map +1 -1
  465. package/dist/services/email-verification.service.js +149 -10
  466. package/dist/services/email-verification.service.js.map +1 -1
  467. package/dist/services/geo-location.service.d.ts +105 -0
  468. package/dist/services/geo-location.service.d.ts.map +1 -1
  469. package/dist/services/geo-location.service.js +188 -2
  470. package/dist/services/geo-location.service.js.map +1 -1
  471. package/dist/services/jwt.service.d.ts +257 -0
  472. package/dist/services/jwt.service.d.ts.map +1 -1
  473. package/dist/services/jwt.service.js +284 -1
  474. package/dist/services/jwt.service.js.map +1 -1
  475. package/dist/services/mfa-base.service.d.ts +179 -1
  476. package/dist/services/mfa-base.service.d.ts.map +1 -1
  477. package/dist/services/mfa-base.service.js +256 -2
  478. package/dist/services/mfa-base.service.js.map +1 -1
  479. package/dist/services/mfa.service.d.ts +304 -0
  480. package/dist/services/mfa.service.d.ts.map +1 -1
  481. package/dist/services/mfa.service.js +380 -0
  482. package/dist/services/mfa.service.js.map +1 -1
  483. package/dist/services/password-reset.service.d.ts +46 -0
  484. package/dist/services/password-reset.service.d.ts.map +1 -1
  485. package/dist/services/password-reset.service.js +79 -0
  486. package/dist/services/password-reset.service.js.map +1 -1
  487. package/dist/services/password.service.d.ts +139 -0
  488. package/dist/services/password.service.d.ts.map +1 -1
  489. package/dist/services/password.service.js +167 -9
  490. package/dist/services/password.service.js.map +1 -1
  491. package/dist/services/phone-verification.service.d.ts +75 -0
  492. package/dist/services/phone-verification.service.d.ts.map +1 -1
  493. package/dist/services/phone-verification.service.js +188 -6
  494. package/dist/services/phone-verification.service.js.map +1 -1
  495. package/dist/services/risk-detection.service.d.ts +198 -0
  496. package/dist/services/risk-detection.service.d.ts.map +1 -1
  497. package/dist/services/risk-detection.service.js +358 -11
  498. package/dist/services/risk-detection.service.js.map +1 -1
  499. package/dist/services/risk-scoring.service.d.ts +84 -0
  500. package/dist/services/risk-scoring.service.d.ts.map +1 -1
  501. package/dist/services/risk-scoring.service.js +87 -0
  502. package/dist/services/risk-scoring.service.js.map +1 -1
  503. package/dist/services/session.service.d.ts +204 -0
  504. package/dist/services/session.service.d.ts.map +1 -1
  505. package/dist/services/session.service.js +289 -4
  506. package/dist/services/session.service.js.map +1 -1
  507. package/dist/services/social-auth-base.service.d.ts +123 -1
  508. package/dist/services/social-auth-base.service.d.ts.map +1 -1
  509. package/dist/services/social-auth-base.service.js +155 -2
  510. package/dist/services/social-auth-base.service.js.map +1 -1
  511. package/dist/services/social-auth.service.d.ts +191 -0
  512. package/dist/services/social-auth.service.d.ts.map +1 -1
  513. package/dist/services/social-auth.service.js +215 -2
  514. package/dist/services/social-auth.service.js.map +1 -1
  515. package/dist/services/social-provider-registry.service.d.ts +86 -0
  516. package/dist/services/social-provider-registry.service.d.ts.map +1 -1
  517. package/dist/services/social-provider-registry.service.js +86 -0
  518. package/dist/services/social-provider-registry.service.js.map +1 -1
  519. package/dist/services/trusted-device.service.d.ts +105 -0
  520. package/dist/services/trusted-device.service.d.ts.map +1 -1
  521. package/dist/services/trusted-device.service.js +133 -4
  522. package/dist/services/trusted-device.service.js.map +1 -1
  523. package/dist/storage/account-lockout-storage.service.d.ts +35 -0
  524. package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
  525. package/dist/storage/account-lockout-storage.service.js +35 -0
  526. package/dist/storage/account-lockout-storage.service.js.map +1 -1
  527. package/dist/storage/memory-storage.adapter.d.ts +148 -0
  528. package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
  529. package/dist/storage/memory-storage.adapter.js +201 -6
  530. package/dist/storage/memory-storage.adapter.js.map +1 -1
  531. package/dist/storage/rate-limit-storage.service.d.ts +3 -0
  532. package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
  533. package/dist/storage/rate-limit-storage.service.js +4 -0
  534. package/dist/storage/rate-limit-storage.service.js.map +1 -1
  535. package/dist/storage.d.ts +8 -0
  536. package/dist/storage.d.ts.map +1 -1
  537. package/dist/storage.js +8 -0
  538. package/dist/storage.js.map +1 -1
  539. package/dist/templates/html-template.engine.d.ts +110 -0
  540. package/dist/templates/html-template.engine.d.ts.map +1 -1
  541. package/dist/templates/html-template.engine.js +147 -0
  542. package/dist/templates/html-template.engine.js.map +1 -1
  543. package/dist/templates/index.d.ts +5 -0
  544. package/dist/templates/index.d.ts.map +1 -1
  545. package/dist/templates/index.js +5 -0
  546. package/dist/templates/index.js.map +1 -1
  547. package/dist/templates/sms-template.engine.d.ts +151 -0
  548. package/dist/templates/sms-template.engine.d.ts.map +1 -1
  549. package/dist/templates/sms-template.engine.js +171 -0
  550. package/dist/templates/sms-template.engine.js.map +1 -1
  551. package/dist/templates.d.ts +8 -0
  552. package/dist/templates.d.ts.map +1 -1
  553. package/dist/templates.js +8 -0
  554. package/dist/templates.js.map +1 -1
  555. package/dist/utils/common-passwords.d.ts +42 -0
  556. package/dist/utils/common-passwords.d.ts.map +1 -1
  557. package/dist/utils/common-passwords.js +88 -0
  558. package/dist/utils/common-passwords.js.map +1 -1
  559. package/dist/utils/context-storage.d.ts +129 -0
  560. package/dist/utils/context-storage.d.ts.map +1 -1
  561. package/dist/utils/context-storage.js +129 -0
  562. package/dist/utils/context-storage.js.map +1 -1
  563. package/dist/utils/cookie-names.util.d.ts +35 -0
  564. package/dist/utils/cookie-names.util.d.ts.map +1 -1
  565. package/dist/utils/cookie-names.util.js +37 -0
  566. package/dist/utils/cookie-names.util.js.map +1 -1
  567. package/dist/utils/cookies.util.d.ts +19 -0
  568. package/dist/utils/cookies.util.d.ts.map +1 -1
  569. package/dist/utils/cookies.util.js +30 -3
  570. package/dist/utils/cookies.util.js.map +1 -1
  571. package/dist/utils/index.d.ts +3 -0
  572. package/dist/utils/index.d.ts.map +1 -1
  573. package/dist/utils/index.js +4 -0
  574. package/dist/utils/index.js.map +1 -1
  575. package/dist/utils/ip-extractor.d.ts +88 -0
  576. package/dist/utils/ip-extractor.d.ts.map +1 -1
  577. package/dist/utils/ip-extractor.js +109 -16
  578. package/dist/utils/ip-extractor.js.map +1 -1
  579. package/dist/utils/nauth-logger.d.ts +70 -0
  580. package/dist/utils/nauth-logger.d.ts.map +1 -1
  581. package/dist/utils/nauth-logger.js +82 -4
  582. package/dist/utils/nauth-logger.js.map +1 -1
  583. package/dist/utils/pii-redactor.d.ts +70 -0
  584. package/dist/utils/pii-redactor.d.ts.map +1 -1
  585. package/dist/utils/pii-redactor.js +102 -0
  586. package/dist/utils/pii-redactor.js.map +1 -1
  587. package/dist/utils/setup/get-repositories.d.ts +16 -0
  588. package/dist/utils/setup/get-repositories.d.ts.map +1 -1
  589. package/dist/utils/setup/get-repositories.js +21 -0
  590. package/dist/utils/setup/get-repositories.js.map +1 -1
  591. package/dist/utils/setup/init-services.d.ts +40 -1
  592. package/dist/utils/setup/init-services.d.ts.map +1 -1
  593. package/dist/utils/setup/init-services.js +98 -0
  594. package/dist/utils/setup/init-services.js.map +1 -1
  595. package/dist/utils/setup/init-social.d.ts +27 -0
  596. package/dist/utils/setup/init-social.d.ts.map +1 -1
  597. package/dist/utils/setup/init-social.js +49 -0
  598. package/dist/utils/setup/init-social.js.map +1 -1
  599. package/dist/utils/setup/init-storage.d.ts +22 -0
  600. package/dist/utils/setup/init-storage.d.ts.map +1 -1
  601. package/dist/utils/setup/init-storage.js +36 -0
  602. package/dist/utils/setup/init-storage.js.map +1 -1
  603. package/dist/utils/setup/register-mfa.d.ts +22 -0
  604. package/dist/utils/setup/register-mfa.d.ts.map +1 -1
  605. package/dist/utils/setup/register-mfa.js +41 -0
  606. package/dist/utils/setup/register-mfa.js.map +1 -1
  607. package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
  608. package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
  609. package/dist/utils/setup/run-nauth-migrations.js +8 -0
  610. package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
  611. package/dist/utils/token-delivery-policy.d.ts +17 -0
  612. package/dist/utils/token-delivery-policy.d.ts.map +1 -1
  613. package/dist/utils/token-delivery-policy.js +17 -0
  614. package/dist/utils/token-delivery-policy.js.map +1 -1
  615. package/dist/utils.d.ts +8 -0
  616. package/dist/utils.d.ts.map +1 -1
  617. package/dist/utils.js +8 -0
  618. package/dist/utils.js.map +1 -1
  619. package/dist/validators/template.validator.d.ts +80 -0
  620. package/dist/validators/template.validator.d.ts.map +1 -1
  621. package/dist/validators/template.validator.js +94 -0
  622. package/dist/validators/template.validator.js.map +1 -1
  623. package/package.json +7 -2
@@ -1,29 +1,76 @@
1
1
  "use strict";
2
+ /**
3
+ * IP Address Extractor
4
+ *
5
+ * Extracts the real client IP address from requests, handling:
6
+ * - Direct connections
7
+ * - Reverse proxies (Nginx, Apache)
8
+ * - Load balancers (AWS ALB/NLB, GCP, Azure)
9
+ * - CDNs (Cloudflare, Fastly, Akamai)
10
+ *
11
+ * **Priority Order:**
12
+ * 1. X-Forwarded-For (standard proxy header)
13
+ * 2. CF-Connecting-IP (Cloudflare)
14
+ * 3. X-Real-IP (Nginx proxy)
15
+ * 4. X-Client-IP (Apache, other proxies)
16
+ * 5. Fastly-Client-IP (Fastly CDN)
17
+ * 6. Akamai-Origin-Hop (Akamai CDN)
18
+ * 7. req.ip (NestJS/Express default)
19
+ * 8. req.socket.remoteAddress (fallback)
20
+ *
21
+ * **Security:**
22
+ * - Handles multiple proxies (takes leftmost IP)
23
+ * - Validates IP format
24
+ * - Filters private/internal IPs (optional)
25
+ * - Prevents IP spoofing
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * import { extractClientIp } from '@nauth-toolkit/core/utils';
30
+ *
31
+ * @Post('login')
32
+ * async login(@Req() req: Request) {
33
+ * const ipAddress = extractClientIp(req);
34
+ * logger.debug('Client IP:', ipAddress); // Real client IP
35
+ * }
36
+ * ```
37
+ */
2
38
  Object.defineProperty(exports, "__esModule", { value: true });
3
39
  exports.extractClientIp = extractClientIp;
4
40
  exports.isPrivateIp = isPrivateIp;
5
41
  exports.getIpGeolocation = getIpGeolocation;
42
+ /**
43
+ * Extracts the real client IP address from an HTTP request
44
+ *
45
+ * @param req - Express Request object
46
+ * @param options - Optional configuration
47
+ * @returns The client's IP address, or '0.0.0.0' if unable to determine
48
+ */
6
49
  function extractClientIp(req, options = {}) {
7
50
  const { filterPrivateIps = false, useLeftmostIp = true } = options;
51
+ // Priority order of headers to check
8
52
  const headers = [
9
- 'x-forwarded-for',
10
- 'cf-connecting-ip',
11
- 'x-real-ip',
12
- 'x-client-ip',
13
- 'fastly-client-ip',
14
- 'akamai-origin-hop',
15
- 'true-client-ip',
16
- 'x-original-forwarded-for',
53
+ 'x-forwarded-for', // Standard proxy header (comma-separated)
54
+ 'cf-connecting-ip', // Cloudflare
55
+ 'x-real-ip', // Nginx
56
+ 'x-client-ip', // Apache, other proxies
57
+ 'fastly-client-ip', // Fastly CDN
58
+ 'akamai-origin-hop', // Akamai CDN
59
+ 'true-client-ip', // Cloudflare Enterprise
60
+ 'x-original-forwarded-for', // AWS ALB
17
61
  ];
62
+ // Ensure headers object exists
18
63
  const reqHeaders = req.headers || {};
64
+ // Try each header in priority order
19
65
  for (const header of headers) {
66
+ // Try multiple case variations
20
67
  const variations = [
21
- header,
22
- header.toUpperCase(),
68
+ header, // lowercase: x-forwarded-for
69
+ header.toUpperCase(), // uppercase: X-FORWARDED-FOR
23
70
  header
24
71
  .split('-')
25
72
  .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
26
- .join('-'),
73
+ .join('-'), // PascalCase: X-Forwarded-For
27
74
  ];
28
75
  let value = null;
29
76
  for (const variant of variations) {
@@ -37,53 +84,99 @@ function extractClientIp(req, options = {}) {
37
84
  const ip = extractIpFromHeader(value, useLeftmostIp);
38
85
  if (ip && isValidIp(ip)) {
39
86
  if (filterPrivateIps && isPrivateIp(ip)) {
40
- continue;
87
+ continue; // Skip private IPs
41
88
  }
42
89
  return ip;
43
90
  }
44
91
  }
45
92
  }
93
+ // Fallback to NestJS/Express defaults
46
94
  const fallbackIp = req.ip || req.socket?.remoteAddress || req.connection?.remoteAddress || '0.0.0.0';
95
+ // Clean up IPv6 localhost to IPv4
47
96
  if (fallbackIp === '::1' || fallbackIp === '::ffff:127.0.0.1') {
48
97
  return '127.0.0.1';
49
98
  }
99
+ // Strip IPv6 prefix if present
50
100
  const cleanIp = fallbackIp.replace(/^::ffff:/, '');
51
101
  return cleanIp;
52
102
  }
103
+ /**
104
+ * Extracts IP address from header value
105
+ *
106
+ * @param value - Header value (may be comma-separated list)
107
+ * @param useLeftmost - Whether to use leftmost (original client) or rightmost (last proxy)
108
+ * @returns Extracted IP address or null
109
+ */
53
110
  function extractIpFromHeader(value, useLeftmost) {
54
111
  const valueStr = Array.isArray(value) ? value[0] : value;
55
112
  if (!valueStr)
56
113
  return null;
114
+ // Split by comma (X-Forwarded-For can have multiple IPs)
57
115
  const ips = valueStr
58
116
  .split(',')
59
117
  .map((ip) => ip.trim())
60
118
  .filter(Boolean);
61
119
  if (ips.length === 0)
62
120
  return null;
121
+ // Return leftmost (original client) or rightmost (last proxy)
63
122
  return useLeftmost ? ips[0] : ips[ips.length - 1];
64
123
  }
124
+ /**
125
+ * Validates if a string is a valid IPv4 or IPv6 address
126
+ *
127
+ * @param ip - IP address to validate
128
+ * @returns True if valid, false otherwise
129
+ */
65
130
  function isValidIp(ip) {
131
+ // IPv4 validation
66
132
  const ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/;
67
133
  if (ipv4Regex.test(ip)) {
68
134
  const parts = ip.split('.').map(Number);
69
135
  return parts.every((part) => part >= 0 && part <= 255);
70
136
  }
137
+ // IPv6 validation (simplified)
71
138
  const ipv6Regex = /^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/;
72
139
  return ipv6Regex.test(ip);
73
140
  }
141
+ /**
142
+ * Checks if an IP address is private/internal
143
+ *
144
+ * Detects:
145
+ * - Localhost (127.0.0.0/8, ::1)
146
+ * - Private IPv4 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
147
+ * - Link-local addresses (169.254.0.0/16)
148
+ *
149
+ * @param ip - IP address to check
150
+ * @returns True if private, false otherwise
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * isPrivateIp('192.168.1.1'); // true
155
+ * isPrivateIp('8.8.8.8'); // false
156
+ * ```
157
+ */
74
158
  function isPrivateIp(ip) {
159
+ // Localhost
75
160
  if (ip === '127.0.0.1' || ip === '::1' || ip.startsWith('127.')) {
76
161
  return true;
77
162
  }
163
+ // Private IPv4 ranges
78
164
  const privateRanges = [
79
- /^10\./,
80
- /^172\.(1[6-9]|2[0-9]|3[0-1])\./,
81
- /^192\.168\./,
82
- /^169\.254\./,
165
+ /^10\./, // 10.0.0.0/8
166
+ /^172\.(1[6-9]|2[0-9]|3[0-1])\./, // 172.16.0.0/12
167
+ /^192\.168\./, // 192.168.0.0/16
168
+ /^169\.254\./, // Link-local (169.254.0.0/16)
83
169
  ];
84
170
  return privateRanges.some((regex) => regex.test(ip));
85
171
  }
172
+ /**
173
+ * Gets geolocation information for an IP address (placeholder)
174
+ *
175
+ * @param ip - IP address
176
+ * @returns Geolocation info (to be implemented with MaxMind/IP-API)
177
+ */
86
178
  function getIpGeolocation(_ip) {
179
+ // TODO: Implement with MaxMind GeoIP2 or IP-API
87
180
  return {};
88
181
  }
89
182
  //# sourceMappingURL=ip-extractor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ip-extractor.js","sourceRoot":"","sources":["../../src/utils/ip-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ip-extractor.js","sourceRoot":"","sources":["../../src/utils/ip-extractor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;;AAgDH,0CA8DC;AA8DD,kCAeC;AAQD,4CAGC;AA7JD;;;;;;GAMG;AACH,SAAgB,eAAe,CAAC,GAAkB,EAAE,UAA8B,EAAE;IAClF,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnE,qCAAqC;IACrC,MAAM,OAAO,GAAG;QACd,iBAAiB,EAAE,0CAA0C;QAC7D,kBAAkB,EAAE,aAAa;QACjC,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,wBAAwB;QACvC,kBAAkB,EAAE,aAAa;QACjC,mBAAmB,EAAE,aAAa;QAClC,gBAAgB,EAAE,wBAAwB;QAC1C,0BAA0B,EAAE,UAAU;KACvC,CAAC;IAEF,+BAA+B;IAC/B,MAAM,UAAU,GAA4B,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;IAE9D,oCAAoC;IACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,+BAA+B;QAC/B,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,6BAA6B;YACrC,MAAM,CAAC,WAAW,EAAE,EAAE,6BAA6B;YACnD,MAAM;iBACH,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAC3D,IAAI,CAAC,GAAG,CAAC,EAAE,8BAA8B;SAC7C,CAAC;QAEF,IAAI,KAAK,GAA6B,IAAI,CAAC;QAC3C,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC9D,KAAK,GAAG,SAAS,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACrD,IAAI,EAAE,IAAI,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,IAAI,gBAAgB,IAAI,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,SAAS,CAAC,mBAAmB;gBAC/B,CAAC;gBACD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,IAAI,GAAG,CAAC,UAAU,EAAE,aAAa,IAAI,SAAS,CAAC;IAErG,kCAAkC;IAClC,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QAC9D,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,+BAA+B;IAC/B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEnD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,KAAwB,EAAE,WAAoB;IACzE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,yDAAyD;IACzD,MAAM,GAAG,GAAG,QAAQ;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,8DAA8D;IAC9D,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CAAC,EAAU;IAC3B,kBAAkB;IAClB,MAAM,SAAS,GAAG,yBAAyB,CAAC;IAC5C,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,+BAA+B;IAC/B,MAAM,SAAS,GAAG,4CAA4C,CAAC;IAC/D,OAAO,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,WAAW,CAAC,EAAU;IACpC,YAAY;IACZ,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sBAAsB;IACtB,MAAM,aAAa,GAAG;QACpB,OAAO,EAAE,aAAa;QACtB,gCAAgC,EAAE,gBAAgB;QAClD,aAAa,EAAE,iBAAiB;QAChC,aAAa,EAAE,8BAA8B;KAC9C,CAAC;IAEF,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,gDAAgD;IAChD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,4 +1,41 @@
1
1
  import { LoggerService, NAuthLoggerConfig } from '../interfaces/config.interface';
2
+ /**
3
+ * NAuth Logger Wrapper
4
+ *
5
+ * Wraps any NestJS-compatible logger and adds features:
6
+ * 1. "NAUTH:" prefix to all messages for easy identification
7
+ * 2. Automatic PII redaction (emails, IPs, tokens, etc.) - enabled by default
8
+ * 3. Optional log level filtering
9
+ * 4. Silent mode if no logger is provided
10
+ *
11
+ * This allows nauth-toolkit to integrate seamlessly with the consuming application's
12
+ * logging infrastructure while maintaining security and compliance.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * // With NestJS built-in logger (PII redaction enabled by default)
17
+ * const logger = new NAuthLogger(new Logger('MyApp'));
18
+ * logger.log('User user@example.com signed up');
19
+ * // Output: [MyApp] NAUTH: User u***@***.com signed up
20
+ *
21
+ * // With config options
22
+ * const logger = new NAuthLogger({
23
+ * instance: new Logger('MyApp'),
24
+ * enablePiiRedaction: true, // Default
25
+ * logLevel: 'debug'
26
+ * });
27
+ *
28
+ * // Disable PII redaction (debugging only)
29
+ * const logger = new NAuthLogger({
30
+ * instance: myLogger,
31
+ * enablePiiRedaction: false
32
+ * });
33
+ *
34
+ * // Silent mode (no logger provided)
35
+ * const logger = new NAuthLogger();
36
+ * logger.log('This will not be logged'); // No output
37
+ * ```
38
+ */
2
39
  export declare class NAuthLogger implements LoggerService {
3
40
  private static readonly PREFIX;
4
41
  private readonly logger?;
@@ -6,15 +43,48 @@ export declare class NAuthLogger implements LoggerService {
6
43
  private readonly enablePiiRedaction;
7
44
  private readonly logLevel?;
8
45
  constructor(config?: LoggerService | NAuthLoggerConfig);
46
+ /**
47
+ * Log a message (info level)
48
+ */
9
49
  log(message: any, ...optionalParams: any[]): any;
50
+ /**
51
+ * Log an error message
52
+ */
10
53
  error(message: any, ...optionalParams: any[]): any;
54
+ /**
55
+ * Log a warning message
56
+ */
11
57
  warn(message: any, ...optionalParams: any[]): any;
58
+ /**
59
+ * Log a debug message
60
+ */
12
61
  debug(message: any, ...optionalParams: any[]): any;
62
+ /**
63
+ * Log a verbose message
64
+ */
13
65
  verbose(message: any, ...optionalParams: any[]): any;
66
+ /**
67
+ * Process message: add prefix and apply PII redaction
68
+ * @private
69
+ */
14
70
  private processMessage;
71
+ /**
72
+ * Process optional parameters: apply PII redaction
73
+ * @private
74
+ */
15
75
  private processParams;
76
+ /**
77
+ * Check if message should be logged based on log level
78
+ * @private
79
+ */
16
80
  private shouldLog;
81
+ /**
82
+ * Check if logger is enabled
83
+ */
17
84
  isEnabled(): boolean;
85
+ /**
86
+ * Check if PII redaction is enabled
87
+ */
18
88
  isPiiRedactionEnabled(): boolean;
19
89
  }
20
90
  //# sourceMappingURL=nauth-logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nauth-logger.d.ts","sourceRoot":"","sources":["../../src/utils/nauth-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAwClF,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAY;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;gBAEvB,MAAM,CAAC,EAAE,aAAa,GAAG,iBAAiB;IA8BtD,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAWhD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAWlD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAWjD,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAWlD,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAYpD,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,SAAS;IAajB,SAAS,IAAI,OAAO;IAOpB,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"nauth-logger.d.ts","sourceRoot":"","sources":["../../src/utils/nauth-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,WAAY,YAAW,aAAa;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAY;IAE1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;gBAEvB,MAAM,CAAC,EAAE,aAAa,GAAG,iBAAiB;IA2BtD;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAQhD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAQlD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAQjD;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAQlD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,GAAG;IAQpD;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqBtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IA2BrB;;;OAGG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,qBAAqB,IAAI,OAAO;CAGjC"}
@@ -2,6 +2,43 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NAuthLogger = void 0;
4
4
  const pii_redactor_1 = require("./pii-redactor");
5
+ /**
6
+ * NAuth Logger Wrapper
7
+ *
8
+ * Wraps any NestJS-compatible logger and adds features:
9
+ * 1. "NAUTH:" prefix to all messages for easy identification
10
+ * 2. Automatic PII redaction (emails, IPs, tokens, etc.) - enabled by default
11
+ * 3. Optional log level filtering
12
+ * 4. Silent mode if no logger is provided
13
+ *
14
+ * This allows nauth-toolkit to integrate seamlessly with the consuming application's
15
+ * logging infrastructure while maintaining security and compliance.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // With NestJS built-in logger (PII redaction enabled by default)
20
+ * const logger = new NAuthLogger(new Logger('MyApp'));
21
+ * logger.log('User user@example.com signed up');
22
+ * // Output: [MyApp] NAUTH: User u***@***.com signed up
23
+ *
24
+ * // With config options
25
+ * const logger = new NAuthLogger({
26
+ * instance: new Logger('MyApp'),
27
+ * enablePiiRedaction: true, // Default
28
+ * logLevel: 'debug'
29
+ * });
30
+ *
31
+ * // Disable PII redaction (debugging only)
32
+ * const logger = new NAuthLogger({
33
+ * instance: myLogger,
34
+ * enablePiiRedaction: false
35
+ * });
36
+ *
37
+ * // Silent mode (no logger provided)
38
+ * const logger = new NAuthLogger();
39
+ * logger.log('This will not be logged'); // No output
40
+ * ```
41
+ */
5
42
  class NAuthLogger {
6
43
  static PREFIX = 'NAUTH:';
7
44
  logger;
@@ -10,13 +47,15 @@ class NAuthLogger {
10
47
  logLevel;
11
48
  constructor(config) {
12
49
  if (!config) {
50
+ // Silent mode
13
51
  this.logger = undefined;
14
52
  this.enablePiiRedaction = true;
15
53
  this.piiRedactor = new pii_redactor_1.PiiRedactor();
16
54
  }
17
55
  else if ('instance' in config) {
56
+ // LoggerConfig object
18
57
  this.logger = config.instance;
19
- this.enablePiiRedaction = config.enablePiiRedaction !== false;
58
+ this.enablePiiRedaction = config.enablePiiRedaction !== false; // Default: true
20
59
  this.logLevel = config.logLevel;
21
60
  this.piiRedactor = new pii_redactor_1.PiiRedactor({
22
61
  redactEmails: this.enablePiiRedaction,
@@ -24,15 +63,19 @@ class NAuthLogger {
24
63
  redactTokens: this.enablePiiRedaction,
25
64
  redactPhoneNumbers: this.enablePiiRedaction,
26
65
  redactNames: this.enablePiiRedaction,
27
- redactPasswords: true,
66
+ redactPasswords: true, // Always redact passwords
28
67
  });
29
68
  }
30
69
  else {
70
+ // LoggerService instance directly
31
71
  this.logger = config;
32
- this.enablePiiRedaction = true;
72
+ this.enablePiiRedaction = true; // Default: enabled
33
73
  this.piiRedactor = new pii_redactor_1.PiiRedactor();
34
74
  }
35
75
  }
76
+ /**
77
+ * Log a message (info level)
78
+ */
36
79
  log(message, ...optionalParams) {
37
80
  if (!this.logger || !this.shouldLog('log'))
38
81
  return;
@@ -40,6 +83,9 @@ class NAuthLogger {
40
83
  const processedParams = this.processParams(optionalParams);
41
84
  return this.logger.log(processedMessage, ...processedParams);
42
85
  }
86
+ /**
87
+ * Log an error message
88
+ */
43
89
  error(message, ...optionalParams) {
44
90
  if (!this.logger || !this.shouldLog('error'))
45
91
  return;
@@ -47,6 +93,9 @@ class NAuthLogger {
47
93
  const processedParams = this.processParams(optionalParams);
48
94
  return this.logger.error(processedMessage, ...processedParams);
49
95
  }
96
+ /**
97
+ * Log a warning message
98
+ */
50
99
  warn(message, ...optionalParams) {
51
100
  if (!this.logger || !this.shouldLog('warn'))
52
101
  return;
@@ -54,6 +103,9 @@ class NAuthLogger {
54
103
  const processedParams = this.processParams(optionalParams);
55
104
  return this.logger.warn(processedMessage, ...processedParams);
56
105
  }
106
+ /**
107
+ * Log a debug message
108
+ */
57
109
  debug(message, ...optionalParams) {
58
110
  if (!this.logger || !this.logger.debug || !this.shouldLog('debug'))
59
111
  return;
@@ -61,6 +113,9 @@ class NAuthLogger {
61
113
  const processedParams = this.processParams(optionalParams);
62
114
  return this.logger.debug(processedMessage, ...processedParams);
63
115
  }
116
+ /**
117
+ * Log a verbose message
118
+ */
64
119
  verbose(message, ...optionalParams) {
65
120
  if (!this.logger || !this.logger.verbose || !this.shouldLog('verbose'))
66
121
  return;
@@ -68,22 +123,33 @@ class NAuthLogger {
68
123
  const processedParams = this.processParams(optionalParams);
69
124
  return this.logger.verbose(processedMessage, ...processedParams);
70
125
  }
126
+ /**
127
+ * Process message: add prefix and apply PII redaction
128
+ * @private
129
+ */
71
130
  processMessage(message) {
72
131
  let processedMessage;
73
132
  if (typeof message === 'string') {
74
133
  processedMessage = message;
75
134
  }
76
135
  else if (typeof message === 'object') {
136
+ // For objects, stringify then redact
77
137
  processedMessage = JSON.stringify(message);
78
138
  }
79
139
  else {
80
140
  processedMessage = String(message);
81
141
  }
142
+ // Apply PII redaction if enabled
82
143
  if (this.enablePiiRedaction) {
83
144
  processedMessage = this.piiRedactor.redactMessage(processedMessage);
84
145
  }
146
+ // Add NAUTH: prefix
85
147
  return `${NAuthLogger.PREFIX} ${processedMessage}`;
86
148
  }
149
+ /**
150
+ * Process optional parameters: apply PII redaction
151
+ * @private
152
+ */
87
153
  processParams(params) {
88
154
  if (!this.enablePiiRedaction || params.length === 0) {
89
155
  return params;
@@ -93,6 +159,7 @@ class NAuthLogger {
93
159
  return this.piiRedactor.redactMessage(param);
94
160
  }
95
161
  else if (typeof param === 'object') {
162
+ // For objects, stringify, redact, then parse back
96
163
  try {
97
164
  const stringified = JSON.stringify(param);
98
165
  const redacted = this.piiRedactor.redactMessage(stringified);
@@ -104,23 +171,34 @@ class NAuthLogger {
104
171
  }
105
172
  }
106
173
  catch {
174
+ // Handle circular references or other JSON.stringify errors (e.g., toJSON throwing)
107
175
  return '[Object with circular reference or invalid JSON]';
108
176
  }
109
177
  }
110
178
  return param;
111
179
  });
112
180
  }
181
+ /**
182
+ * Check if message should be logged based on log level
183
+ * @private
184
+ */
113
185
  shouldLog(level) {
114
186
  if (!this.logLevel)
115
- return true;
187
+ return true; // No filter, log everything
116
188
  const levels = ['error', 'warn', 'log', 'debug', 'verbose'];
117
189
  const configLevel = levels.indexOf(this.logLevel);
118
190
  const messageLevel = levels.indexOf(level);
119
191
  return messageLevel <= configLevel;
120
192
  }
193
+ /**
194
+ * Check if logger is enabled
195
+ */
121
196
  isEnabled() {
122
197
  return !!this.logger;
123
198
  }
199
+ /**
200
+ * Check if PII redaction is enabled
201
+ */
124
202
  isPiiRedactionEnabled() {
125
203
  return this.enablePiiRedaction;
126
204
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nauth-logger.js","sourceRoot":"","sources":["../../src/utils/nauth-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nauth-logger.js","sourceRoot":"","sources":["../../src/utils/nauth-logger.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,86 @@
1
1
  import { LogMetadata, PiiRedactionOptions } from '../interfaces/logger.interface';
2
+ /**
3
+ * PII Redactor Utility
4
+ *
5
+ * Automatically redacts Personally Identifiable Information (PII) from log messages
6
+ * and metadata to ensure privacy compliance (GDPR, CCPA, etc.).
7
+ *
8
+ * Redaction patterns:
9
+ * - Emails: `user@example.com` → `u***@***.com`
10
+ * - IP Addresses: `192.168.1.100` → `192.168.1.***`
11
+ * - Tokens: `eyJhbGciOiJIUz...` → `[REDACTED_TOKEN]`
12
+ * - Passwords: Always `[REDACTED]`
13
+ * - Phone Numbers: `+1234567890` → `+123***7890`
14
+ * - Names: `John Doe` → `J*** D***`
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const redactor = new PiiRedactor();
19
+ * const safe = redactor.redactMessage('User user@example.com logged in');
20
+ * // Output: 'User u***@***.com logged in'
21
+ * ```
22
+ */
2
23
  export declare class PiiRedactor {
3
24
  private options;
25
+ /**
26
+ * Constructor
27
+ *
28
+ * @param options - PII redaction configuration
29
+ */
4
30
  constructor(options?: PiiRedactionOptions);
31
+ /**
32
+ * Redact PII from a log message
33
+ *
34
+ * @param message - Log message that may contain PII
35
+ * @returns Redacted message
36
+ */
5
37
  redactMessage(message: string): string;
38
+ /**
39
+ * Redact PII from log metadata
40
+ *
41
+ * @param metadata - Log metadata that may contain PII
42
+ * @returns Redacted metadata
43
+ */
6
44
  redactMetadata(metadata?: LogMetadata): LogMetadata | undefined;
45
+ /**
46
+ * Redact email addresses
47
+ * @private
48
+ */
7
49
  private redactEmails;
50
+ /**
51
+ * Redact IP addresses (keep first 3 octets)
52
+ * @private
53
+ */
8
54
  private redactIpAddresses;
55
+ /**
56
+ * Redact a single IP address
57
+ * @private
58
+ */
9
59
  private redactIpAddress;
60
+ /**
61
+ * Redact JWT tokens and bearer tokens
62
+ * @private
63
+ */
10
64
  private redactTokens;
65
+ /**
66
+ * Redact phone numbers
67
+ * @private
68
+ */
11
69
  private redactPhoneNumbers;
70
+ /**
71
+ * Redact names (firstName, lastName)
72
+ * @private
73
+ */
12
74
  private redactNames;
75
+ /**
76
+ * Redact passwords and password-related fields
77
+ * @private
78
+ */
13
79
  private redactPasswords;
80
+ /**
81
+ * Recursively redact an object
82
+ * @private
83
+ */
14
84
  private redactObject;
15
85
  }
16
86
  //# sourceMappingURL=pii-redactor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pii-redactor.d.ts","sourceRoot":"","sources":["../../src/utils/pii-redactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAuBlF,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAgC;gBAOnC,OAAO,CAAC,EAAE,mBAAmB;IAoBzC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IA0CtC,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAoC/D,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,WAAW;IA2BnB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,YAAY;CAqCrB"}
1
+ {"version":3,"file":"pii-redactor.d.ts","sourceRoot":"","sources":["../../src/utils/pii-redactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAgC;IAE/C;;;;OAIG;gBACS,OAAO,CAAC,EAAE,mBAAmB;IAczC;;;;;OAKG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAoCtC;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAgC/D;;;OAGG;IACH,OAAO,CAAC,YAAY;IAWpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAO1B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAavB;;;OAGG;IACH,OAAO,CAAC,YAAY;CAqCrB"}