@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
@@ -4,37 +4,112 @@ exports.HtmlTemplateEngine = void 0;
4
4
  const template_interface_1 = require("../interfaces/template.interface");
5
5
  const nauth_exception_1 = require("../exceptions/nauth.exception");
6
6
  const error_codes_enum_1 = require("../enums/error-codes.enum");
7
+ /**
8
+ * HTML Template Engine
9
+ *
10
+ * Simple yet powerful template engine for email templates using HTML with placeholder tokens.
11
+ * Supports {{variable}} syntax for variable injection.
12
+ *
13
+ * Features:
14
+ * - Simple {{variable}} placeholder syntax
15
+ * - Built-in default templates for all email types
16
+ * - Custom template registration
17
+ * - Automatic HTML entity escaping for security
18
+ * - Plain text generation from HTML
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const engine = new HtmlTemplateEngine();
23
+ * const result = await engine.render(
24
+ * TemplateType.VERIFICATION,
25
+ * { userName: 'John', code: '123456', expiryMinutes: 60 }
26
+ * );
27
+ * ```
28
+ */
7
29
  class HtmlTemplateEngine {
30
+ /**
31
+ * Storage for registered templates
32
+ * Maps template type to template definition
33
+ */
8
34
  templates = new Map();
35
+ /**
36
+ * Constructor
37
+ * Initializes the engine with default templates
38
+ */
9
39
  constructor() {
10
40
  this.registerDefaultTemplates();
11
41
  }
42
+ /**
43
+ * Render a template with variables
44
+ *
45
+ * Replaces all {{variable}} placeholders with actual values.
46
+ * Variables are HTML-escaped for security.
47
+ * Handles firstName/username fallback for greetings.
48
+ *
49
+ * @param type - Template type to render
50
+ * @param variables - Variables to inject
51
+ * @returns Rendered email template
52
+ * @throws {Error} If template type not found
53
+ */
12
54
  async render(type, variables) {
13
55
  const template = this.templates.get(type);
14
56
  if (!template) {
15
57
  throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.INTERNAL_ERROR, `Template "${type}" not found. Available templates: ${Array.from(this.templates.keys()).join(', ')}`);
16
58
  }
59
+ // Merge with default variables and add greeting name
17
60
  const allVariables = {
18
61
  currentYear: new Date().getFullYear(),
19
62
  ...variables,
20
63
  greetingName: this.getGreetingName(variables),
21
64
  };
65
+ // Render subject and HTML
22
66
  const subject = this.replaceVariables(template.subject, allVariables);
23
67
  const html = this.replaceVariables(template.html, allVariables);
68
+ // Generate plain text if not provided
24
69
  const text = template.text ? this.replaceVariablesForText(template.text, allVariables) : this.htmlToText(html);
25
70
  return { subject, html, text };
26
71
  }
72
+ /**
73
+ * Register a custom template
74
+ *
75
+ * @param type - Template type identifier
76
+ * @param template - Template definition
77
+ */
27
78
  registerTemplate(type, template) {
28
79
  this.templates.set(type, template);
29
80
  }
81
+ /**
82
+ * Get all available template types
83
+ *
84
+ * @returns Array of template type identifiers
85
+ */
30
86
  getAvailableTemplates() {
31
87
  return Array.from(this.templates.keys());
32
88
  }
89
+ /**
90
+ * Check if a template exists
91
+ *
92
+ * @param type - Template type to check
93
+ * @returns True if template is registered
94
+ */
33
95
  hasTemplate(type) {
34
96
  return this.templates.has(type);
35
97
  }
98
+ /**
99
+ * Replace {{variable}} placeholders with values
100
+ *
101
+ * Escapes HTML entities in variables for security.
102
+ * Handles missing variables gracefully (replaces with empty string).
103
+ * Supports firstName/username fallback logic and simple conditionals.
104
+ *
105
+ * @param template - Template string with {{placeholders}}
106
+ * @param variables - Variables to inject
107
+ * @returns Template with variables replaced
108
+ * @private
109
+ */
36
110
  replaceVariables(template, variables) {
37
111
  let result = template;
112
+ // Handle simple conditionals like {{#if greetingName}}Hi {{greetingName}},{{else}}Hi,{{/if}}
38
113
  result = result.replace(/\{\{#if (\w+)\}\}(.*?)\{\{else\}\}(.*?)\{\{\/if\}\}/g, (_match, key, ifContent, elseContent) => {
39
114
  const value = variables[key];
40
115
  if (value && value !== '') {
@@ -44,17 +119,31 @@ class HtmlTemplateEngine {
44
119
  return elseContent;
45
120
  }
46
121
  });
122
+ // Replace regular variables
47
123
  result = result.replace(/\{\{(\w+)\}\}/g, (_match, key) => {
48
124
  const value = variables[key];
125
+ // Return empty string if variable is undefined
49
126
  if (value === undefined || value === null) {
50
127
  return '';
51
128
  }
129
+ // Convert to string and escape HTML entities
52
130
  return this.escapeHtml(String(value));
53
131
  });
54
132
  return result;
55
133
  }
134
+ /**
135
+ * Replace {{variable}} placeholders with values for text content
136
+ *
137
+ * Similar to replaceVariables but doesn't escape HTML entities for plain text.
138
+ *
139
+ * @param template - Template string with {{placeholders}}
140
+ * @param variables - Variables to inject
141
+ * @returns Template with variables replaced
142
+ * @private
143
+ */
56
144
  replaceVariablesForText(template, variables) {
57
145
  let result = template;
146
+ // Handle simple conditionals like {{#if greetingName}}Hi {{greetingName}},{{else}}Hi,{{/if}}
58
147
  result = result.replace(/\{\{#if (\w+)\}\}(.*?)\{\{else\}\}(.*?)\{\{\/if\}\}/g, (_match, key, ifContent, elseContent) => {
59
148
  const value = variables[key];
60
149
  if (value && value !== '') {
@@ -64,15 +153,25 @@ class HtmlTemplateEngine {
64
153
  return elseContent;
65
154
  }
66
155
  });
156
+ // Replace regular variables without HTML escaping
67
157
  result = result.replace(/\{\{(\w+)\}\}/g, (_match, key) => {
68
158
  const value = variables[key];
159
+ // Return empty string if variable is undefined
69
160
  if (value === undefined || value === null) {
70
161
  return '';
71
162
  }
163
+ // Convert to string without escaping HTML entities for text
72
164
  return String(value);
73
165
  });
74
166
  return result;
75
167
  }
168
+ /**
169
+ * Get greeting name with firstName/username fallback logic
170
+ *
171
+ * @param variables - Template variables
172
+ * @returns Greeting name or empty string
173
+ * @private
174
+ */
76
175
  getGreetingName(variables) {
77
176
  if (variables.firstName) {
78
177
  return variables.firstName;
@@ -82,6 +181,13 @@ class HtmlTemplateEngine {
82
181
  }
83
182
  return '';
84
183
  }
184
+ /**
185
+ * Escape HTML entities to prevent XSS
186
+ *
187
+ * @param text - Text to escape
188
+ * @returns HTML-safe text
189
+ * @private
190
+ */
85
191
  escapeHtml(text) {
86
192
  const map = {
87
193
  '&': '&',
@@ -92,18 +198,39 @@ class HtmlTemplateEngine {
92
198
  };
93
199
  return text.replace(/[&<>"']/g, (char) => map[char] || char);
94
200
  }
201
+ /**
202
+ * Convert HTML to plain text
203
+ *
204
+ * Simple conversion: strips HTML tags and decodes entities.
205
+ *
206
+ * @param html - HTML content
207
+ * @returns Plain text
208
+ * @private
209
+ */
95
210
  htmlToText(html) {
211
+ // Strip HTML tags
96
212
  let text = html.replace(/<[^>]*>/g, '');
213
+ // Decode common HTML entities
97
214
  text = text.replace(/&nbsp;/g, ' ');
98
215
  text = text.replace(/&lt;/g, '<');
99
216
  text = text.replace(/&gt;/g, '>');
100
217
  text = text.replace(/&quot;/g, '"');
101
218
  text = text.replace(/&#039;/g, "'");
102
219
  text = text.replace(/&amp;/g, '&');
220
+ // Normalize whitespace
103
221
  text = text.replace(/\s+/g, ' ').trim();
104
222
  return text;
105
223
  }
224
+ /**
225
+ * Register default templates for all email types
226
+ *
227
+ * These templates can be overridden using registerTemplate().
228
+ * @private
229
+ */
106
230
  registerDefaultTemplates() {
231
+ // ============================================================================
232
+ // Email Verification Template
233
+ // ============================================================================
107
234
  this.registerTemplate(template_interface_1.TemplateType.VERIFICATION, {
108
235
  subject: 'Email Verification - {{appName}}',
109
236
  html: `
@@ -155,6 +282,9 @@ This code expires in {{expiryMinutes}} minutes.
155
282
  If you didn't request this verification, please ignore this email.
156
283
  `,
157
284
  });
285
+ // ============================================================================
286
+ // Password Reset Template
287
+ // ============================================================================
158
288
  this.registerTemplate(template_interface_1.TemplateType.PASSWORD_RESET, {
159
289
  subject: 'Password Reset - {{appName}}',
160
290
  html: `
@@ -202,6 +332,9 @@ This link expires in {{expiryMinutes}} minutes.
202
332
  If you didn't request a password reset, your account is secure and you can ignore this email.
203
333
  `,
204
334
  });
335
+ // ============================================================================
336
+ // Welcome Email Template
337
+ // ============================================================================
205
338
  this.registerTemplate(template_interface_1.TemplateType.WELCOME, {
206
339
  subject: 'Welcome to {{appName}}!',
207
340
  html: `
@@ -247,6 +380,9 @@ If you have any questions or need assistance, reach out to our support team at {
247
380
  Happy exploring!
248
381
  `,
249
382
  });
383
+ // ============================================================================
384
+ // Account Lockout Template
385
+ // ============================================================================
250
386
  this.registerTemplate(template_interface_1.TemplateType.ACCOUNT_LOCKOUT, {
251
387
  subject: 'Account Locked - {{appName}}',
252
388
  html: `
@@ -307,6 +443,9 @@ What should I do?
307
443
  - Consider changing your password after unlock
308
444
  `,
309
445
  });
446
+ // ============================================================================
447
+ // New Device Login Template
448
+ // ============================================================================
310
449
  this.registerTemplate(template_interface_1.TemplateType.NEW_DEVICE, {
311
450
  subject: 'New Device Login - {{appName}}',
312
451
  html: `
@@ -373,6 +512,8 @@ If you don't recognize this activity, secure your account immediately:
373
512
  - Contact support at {{supportEmail}}
374
513
  `,
375
514
  });
515
+ // Password Changed Template
516
+ // ============================================================================
376
517
  this.registerTemplate(template_interface_1.TemplateType.PASSWORD_CHANGED, {
377
518
  subject: 'Password Changed - {{appName}}',
378
519
  html: `
@@ -414,6 +555,9 @@ If you made this change, no further action is required.
414
555
  If you didn't make this change, please contact support immediately at {{supportEmail}}.
415
556
  `,
416
557
  });
558
+ // ============================================================================
559
+ // Email Changed Template
560
+ // ============================================================================
417
561
  this.registerTemplate(template_interface_1.TemplateType.EMAIL_CHANGED, {
418
562
  subject: 'Email Address Changed - {{appName}}',
419
563
  html: `
@@ -455,6 +599,9 @@ If you made this change, no further action is required.
455
599
  If you didn't make this change, please contact support immediately at {{supportEmail}}.
456
600
  `,
457
601
  });
602
+ // ============================================================================
603
+ // MFA Enabled Template
604
+ // ============================================================================
458
605
  this.registerTemplate(template_interface_1.TemplateType.MFA_ENABLED, {
459
606
  subject: 'Two-Factor Authentication Enabled - {{appName}}',
460
607
  html: `
@@ -1 +1 @@
1
- {"version":3,"file":"html-template.engine.js","sourceRoot":"","sources":["../../src/templates/html-template.engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-template.engine.js","sourceRoot":"","sources":["../../src/templates/html-template.engine.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Template System Exports
3
+ *
4
+ * Provides template engines and utilities for email and SMS notifications.
5
+ */
1
6
  export * from './html-template.engine';
2
7
  export * from './sms-template.engine';
3
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAMA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
@@ -1,4 +1,9 @@
1
1
  "use strict";
2
+ /**
3
+ * Template System Exports
4
+ *
5
+ * Provides template engines and utilities for email and SMS notifications.
6
+ */
2
7
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
8
  if (k2 === undefined) k2 = k;
4
9
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,yDAAuC;AACvC,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/templates/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,yDAAuC;AACvC,wDAAsC"}
@@ -1,19 +1,170 @@
1
1
  import { SMSTemplateEngine as ISMSTemplateEngine, SMSTemplateType, SMSTemplateVariables, SMSTemplate, SMSTemplateSource } from '../interfaces/sms-template.interface';
2
2
  import { NAuthLogger } from '../utils/nauth-logger';
3
+ /**
4
+ * SMS Template Engine
5
+ *
6
+ * Simple yet powerful template engine for SMS templates using text with placeholder tokens.
7
+ * Supports {{variable}} syntax for variable injection using Handlebars-like syntax.
8
+ *
9
+ * Features:
10
+ * - Simple {{variable}} placeholder syntax
11
+ * - Built-in default templates for all SMS types
12
+ * - Custom template registration (inline and file-based)
13
+ * - Template validation (ensures required variables are present)
14
+ * - Handlebars-like conditionals support
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const engine = new SMSTemplateEngine();
19
+ * const result = await engine.render(
20
+ * SMSTemplateType.VERIFICATION,
21
+ * { appName: 'My App', code: '123456', expiryMinutes: 5 }
22
+ * );
23
+ * // result.content: "My App: Your verification code is 123456. Valid for 5 minutes."
24
+ * ```
25
+ */
3
26
  export declare class SMSTemplateEngineImpl implements ISMSTemplateEngine {
27
+ /**
28
+ * Storage for registered templates
29
+ * Maps template type to template content string
30
+ */
4
31
  private templates;
32
+ /**
33
+ * Base directory for resolving relative template file paths
34
+ */
5
35
  private readonly baseDir;
36
+ /**
37
+ * Logger instance for error reporting
38
+ */
6
39
  private readonly logger?;
40
+ /**
41
+ * Constructor
42
+ *
43
+ * Initializes the engine with default templates.
44
+ *
45
+ * @param baseDir - Base directory for resolving template file paths (default: process.cwd())
46
+ * @param logger - Optional logger instance for error reporting
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * // Use default templates
51
+ * const engine = new SMSTemplateEngineImpl();
52
+ *
53
+ * // Use custom base directory for file-based templates
54
+ * const engine = new SMSTemplateEngineImpl('./sms-templates');
55
+ * ```
56
+ */
7
57
  constructor(baseDir?: string, logger?: NAuthLogger);
58
+ /**
59
+ * Render a template with variables
60
+ *
61
+ * Replaces all {{variable}} placeholders with actual values.
62
+ * Handles missing variables gracefully (replaces with empty string).
63
+ * Supports simple conditionals like {{#if variable}}...{{/if}}.
64
+ *
65
+ * @param type - Template type to render
66
+ * @param variables - Variables to inject
67
+ * @returns Rendered SMS template with content
68
+ * @throws {NAuthException} If template type not found
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const result = await engine.render(
73
+ * SMSTemplateType.VERIFICATION,
74
+ * { appName: 'My App', code: '123456', expiryMinutes: 5 }
75
+ * );
76
+ * ```
77
+ */
8
78
  render(type: SMSTemplateType | string, variables: SMSTemplateVariables): Promise<SMSTemplate>;
79
+ /**
80
+ * Register a custom template from inline string
81
+ *
82
+ * Allows overriding default templates or adding new ones.
83
+ *
84
+ * @param type - Template type identifier
85
+ * @param template - Template definition with inline content
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * engine.registerTemplate(SMSTemplateType.VERIFICATION, {
90
+ * content: '{{appName}}: Your verification code is {{code}}. Expires in {{expiryMinutes}} min.',
91
+ * });
92
+ * ```
93
+ */
9
94
  registerTemplate(type: SMSTemplateType | string, template: SMSTemplate): void;
95
+ /**
96
+ * Register a custom template from mixed sources (strings or files)
97
+ *
98
+ * Flexible registration that supports both inline content and file paths.
99
+ *
100
+ * @param type - Template type identifier
101
+ * @param templateSource - Template source (content or file path)
102
+ *
103
+ * @throws {NAuthException} If file not found or invalid source
104
+ *
105
+ * @example
106
+ * ```typescript
107
+ * // Inline content
108
+ * await engine.registerTemplateFromSources(SMSTemplateType.VERIFICATION, {
109
+ * content: { content: '{{appName}}: Your code is {{code}}.' },
110
+ * });
111
+ *
112
+ * // File-based
113
+ * await engine.registerTemplateFromSources(SMSTemplateType.MFA, {
114
+ * content: { filePath: './sms-templates/mfa.txt.hbs' },
115
+ * });
116
+ * ```
117
+ */
10
118
  registerTemplateFromSources(type: SMSTemplateType | string, templateSource: {
11
119
  content: SMSTemplateSource;
12
120
  }): Promise<void>;
121
+ /**
122
+ * Get all available template types
123
+ *
124
+ * @returns Array of registered template type identifiers
125
+ */
13
126
  getAvailableTemplates(): string[];
127
+ /**
128
+ * Check if a template exists
129
+ *
130
+ * @param type - Template type to check
131
+ * @returns True if template is registered
132
+ */
14
133
  hasTemplate(type: SMSTemplateType | string): boolean;
134
+ /**
135
+ * Validate that a template includes required variables
136
+ *
137
+ * Checks if the template content includes all required placeholders.
138
+ *
139
+ * @param type - Template type to validate
140
+ * @param requiredVars - Array of required variable names (without {{}})
141
+ * @returns True if all required variables are present
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const isValid = engine.validateTemplate(SMSTemplateType.VERIFICATION, ['code', 'expiryMinutes']);
146
+ * ```
147
+ */
15
148
  validateTemplate(type: SMSTemplateType | string, requiredVars: string[]): boolean;
149
+ /**
150
+ * Register default templates for all SMS types
151
+ *
152
+ * Provides sensible defaults that can be overridden by custom templates.
153
+ *
154
+ * @private
155
+ */
16
156
  private registerDefaultTemplates;
157
+ /**
158
+ * Replace {{variable}} placeholders with values
159
+ *
160
+ * Handles missing variables gracefully (replaces with empty string).
161
+ * Supports simple conditionals like {{#if variable}}...{{/if}}.
162
+ *
163
+ * @param template - Template string with {{placeholders}}
164
+ * @param variables - Variables to inject
165
+ * @returns Template with variables replaced
166
+ * @private
167
+ */
17
168
  private replaceVariables;
18
169
  }
19
170
  //# sourceMappingURL=sms-template.engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sms-template.engine.d.ts","sourceRoot":"","sources":["../../src/templates/sms-template.engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AA+BpD,qBAAa,qBAAsB,YAAW,kBAAkB;IAK9D,OAAO,CAAC,SAAS,CAAkC;IAKnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAKjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;gBAmB1B,OAAO,GAAE,MAAsB,EAAE,MAAM,CAAC,EAAE,WAAW;IA0B3D,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoCnG,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAkCvE,2BAA2B,CAC/B,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,cAAc,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC;IA6ChB,qBAAqB,IAAI,MAAM,EAAE;IAUjC,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,OAAO;IAkBpD,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IA0BjF,OAAO,CAAC,wBAAwB;IA+BhC,OAAO,CAAC,gBAAgB;CA4BzB"}
1
+ {"version":3,"file":"sms-template.engine.d.ts","sourceRoot":"","sources":["../../src/templates/sms-template.engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,IAAI,kBAAkB,EACvC,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,qBAAsB,YAAW,kBAAkB;IAC9D;;;OAGG;IACH,OAAO,CAAC,SAAS,CAAkC;IAEnD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAc;IAEtC;;;;;;;;;;;;;;;;OAgBG;gBACS,OAAO,GAAE,MAAsB,EAAE,MAAM,CAAC,EAAE,WAAW;IAMjE;;;;;;;;;;;;;;;;;;;OAmBG;IACG,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBnG;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAW7E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,2BAA2B,CAC/B,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,cAAc,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC;IAwChB;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAIjC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,GAAG,OAAO;IAIpD;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO;IAmBjF;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAoBhC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;CA4BzB"}