@nauth-toolkit/core 0.1.14 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/dist/adapters/database-columns.d.ts +70 -0
  2. package/dist/adapters/database-columns.d.ts.map +1 -1
  3. package/dist/adapters/database-columns.js +76 -2
  4. package/dist/adapters/database-columns.js.map +1 -1
  5. package/dist/adapters/express.adapter.d.ts +66 -0
  6. package/dist/adapters/express.adapter.d.ts.map +1 -1
  7. package/dist/adapters/express.adapter.js +80 -0
  8. package/dist/adapters/express.adapter.js.map +1 -1
  9. package/dist/adapters/fastify.adapter.d.ts +42 -0
  10. package/dist/adapters/fastify.adapter.d.ts.map +1 -1
  11. package/dist/adapters/fastify.adapter.js +86 -0
  12. package/dist/adapters/fastify.adapter.js.map +1 -1
  13. package/dist/adapters/index.d.ts +5 -0
  14. package/dist/adapters/index.d.ts.map +1 -1
  15. package/dist/adapters/index.js +9 -0
  16. package/dist/adapters/index.js.map +1 -1
  17. package/dist/adapters/storage.factory.d.ts +107 -0
  18. package/dist/adapters/storage.factory.d.ts.map +1 -1
  19. package/dist/adapters/storage.factory.js +114 -0
  20. package/dist/adapters/storage.factory.js.map +1 -1
  21. package/dist/adapters.d.ts +8 -0
  22. package/dist/adapters.d.ts.map +1 -1
  23. package/dist/adapters.js +8 -0
  24. package/dist/adapters.js.map +1 -1
  25. package/dist/bootstrap.d.ts +82 -0
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +106 -0
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/dto/admin-set-password.dto.d.ts +90 -0
  30. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  31. package/dist/dto/admin-set-password.dto.js +91 -0
  32. package/dist/dto/admin-set-password.dto.js.map +1 -1
  33. package/dist/dto/auth-challenge.dto.d.ts +170 -0
  34. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  35. package/dist/dto/auth-challenge.dto.js +170 -0
  36. package/dist/dto/auth-challenge.dto.js.map +1 -1
  37. package/dist/dto/auth-response.dto.d.ts +196 -0
  38. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-response.dto.js +149 -0
  40. package/dist/dto/auth-response.dto.js.map +1 -1
  41. package/dist/dto/challenge-response.dto.d.ts +155 -0
  42. package/dist/dto/challenge-response.dto.d.ts.map +1 -1
  43. package/dist/dto/challenge-response.dto.js +8 -0
  44. package/dist/dto/challenge-response.dto.js.map +1 -1
  45. package/dist/dto/change-password-request.dto.d.ts +35 -0
  46. package/dist/dto/change-password-request.dto.d.ts.map +1 -1
  47. package/dist/dto/change-password-request.dto.js +35 -0
  48. package/dist/dto/change-password-request.dto.js.map +1 -1
  49. package/dist/dto/change-password-response.dto.d.ts +25 -0
  50. package/dist/dto/change-password-response.dto.d.ts.map +1 -1
  51. package/dist/dto/change-password-response.dto.js +25 -0
  52. package/dist/dto/change-password-response.dto.js.map +1 -1
  53. package/dist/dto/change-password.dto.d.ts +45 -0
  54. package/dist/dto/change-password.dto.d.ts.map +1 -1
  55. package/dist/dto/change-password.dto.js +45 -0
  56. package/dist/dto/change-password.dto.js.map +1 -1
  57. package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
  58. package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
  59. package/dist/dto/confirm-forgot-password.dto.js +59 -0
  60. package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
  61. package/dist/dto/error-response.dto.d.ts +103 -0
  62. package/dist/dto/error-response.dto.d.ts.map +1 -1
  63. package/dist/dto/error-response.dto.js +103 -0
  64. package/dist/dto/error-response.dto.js.map +1 -1
  65. package/dist/dto/forgot-password.dto.d.ts +58 -0
  66. package/dist/dto/forgot-password.dto.d.ts.map +1 -1
  67. package/dist/dto/forgot-password.dto.js +58 -0
  68. package/dist/dto/forgot-password.dto.js.map +1 -1
  69. package/dist/dto/get-available-methods.dto.d.ts +37 -0
  70. package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
  71. package/dist/dto/get-available-methods.dto.js +37 -0
  72. package/dist/dto/get-available-methods.dto.js.map +1 -1
  73. package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
  74. package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
  75. package/dist/dto/get-challenge-data-response.dto.js +24 -0
  76. package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
  77. package/dist/dto/get-challenge-data.dto.d.ts +46 -0
  78. package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
  79. package/dist/dto/get-challenge-data.dto.js +46 -0
  80. package/dist/dto/get-challenge-data.dto.js.map +1 -1
  81. package/dist/dto/get-client-info.dto.d.ts +74 -0
  82. package/dist/dto/get-client-info.dto.d.ts.map +1 -1
  83. package/dist/dto/get-client-info.dto.js +74 -0
  84. package/dist/dto/get-client-info.dto.js.map +1 -1
  85. package/dist/dto/get-device-token-response.dto.d.ts +21 -0
  86. package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
  87. package/dist/dto/get-device-token-response.dto.js +21 -0
  88. package/dist/dto/get-device-token-response.dto.js.map +1 -1
  89. package/dist/dto/get-events-by-type.dto.d.ts +50 -0
  90. package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
  91. package/dist/dto/get-events-by-type.dto.js +50 -0
  92. package/dist/dto/get-events-by-type.dto.js.map +1 -1
  93. package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
  94. package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
  95. package/dist/dto/get-ip-address-response.dto.js +20 -0
  96. package/dist/dto/get-ip-address-response.dto.js.map +1 -1
  97. package/dist/dto/get-mfa-status.dto.d.ts +59 -0
  98. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  99. package/dist/dto/get-mfa-status.dto.js +59 -0
  100. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  101. package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
  102. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  103. package/dist/dto/get-risk-assessment-history.dto.js +28 -0
  104. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  105. package/dist/dto/get-session-id-response.dto.d.ts +21 -0
  106. package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
  107. package/dist/dto/get-session-id-response.dto.js +21 -0
  108. package/dist/dto/get-session-id-response.dto.js.map +1 -1
  109. package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
  110. package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
  111. package/dist/dto/get-setup-data-response.dto.js +27 -0
  112. package/dist/dto/get-setup-data-response.dto.js.map +1 -1
  113. package/dist/dto/get-setup-data.dto.d.ts +51 -0
  114. package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
  115. package/dist/dto/get-setup-data.dto.js +51 -0
  116. package/dist/dto/get-setup-data.dto.js.map +1 -1
  117. package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
  118. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  119. package/dist/dto/get-suspicious-activity.dto.js +31 -0
  120. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  121. package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
  122. package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
  123. package/dist/dto/get-user-agent-response.dto.js +19 -0
  124. package/dist/dto/get-user-agent-response.dto.js.map +1 -1
  125. package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
  126. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  127. package/dist/dto/get-user-auth-history.dto.js +64 -0
  128. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  129. package/dist/dto/get-user-by-email.dto.d.ts +42 -0
  130. package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
  131. package/dist/dto/get-user-by-email.dto.js +42 -0
  132. package/dist/dto/get-user-by-email.dto.js.map +1 -1
  133. package/dist/dto/get-user-by-id.dto.d.ts +32 -0
  134. package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
  135. package/dist/dto/get-user-by-id.dto.js +32 -0
  136. package/dist/dto/get-user-by-id.dto.js.map +1 -1
  137. package/dist/dto/get-user-devices.dto.d.ts +34 -0
  138. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  139. package/dist/dto/get-user-devices.dto.js +34 -0
  140. package/dist/dto/get-user-devices.dto.js.map +1 -1
  141. package/dist/dto/get-user-response.dto.d.ts +14 -0
  142. package/dist/dto/get-user-response.dto.d.ts.map +1 -1
  143. package/dist/dto/get-user-response.dto.js +15 -0
  144. package/dist/dto/get-user-response.dto.js.map +1 -1
  145. package/dist/dto/has-provider.dto.d.ts +33 -0
  146. package/dist/dto/has-provider.dto.d.ts.map +1 -1
  147. package/dist/dto/has-provider.dto.js +33 -0
  148. package/dist/dto/has-provider.dto.js.map +1 -1
  149. package/dist/dto/index.js +5 -0
  150. package/dist/dto/index.js.map +1 -1
  151. package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
  152. package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
  153. package/dist/dto/is-trusted-device-response.dto.js +28 -0
  154. package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
  155. package/dist/dto/list-providers-response.dto.d.ts +19 -0
  156. package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
  157. package/dist/dto/list-providers-response.dto.js +19 -0
  158. package/dist/dto/list-providers-response.dto.js.map +1 -1
  159. package/dist/dto/login.dto.d.ts +48 -0
  160. package/dist/dto/login.dto.d.ts.map +1 -1
  161. package/dist/dto/login.dto.js +50 -1
  162. package/dist/dto/login.dto.js.map +1 -1
  163. package/dist/dto/logout-all-response.dto.d.ts +20 -0
  164. package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
  165. package/dist/dto/logout-all-response.dto.js +20 -0
  166. package/dist/dto/logout-all-response.dto.js.map +1 -1
  167. package/dist/dto/logout-all.dto.d.ts +42 -0
  168. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  169. package/dist/dto/logout-all.dto.js +42 -0
  170. package/dist/dto/logout-all.dto.js.map +1 -1
  171. package/dist/dto/logout-response.dto.d.ts +21 -0
  172. package/dist/dto/logout-response.dto.d.ts.map +1 -1
  173. package/dist/dto/logout-response.dto.js +21 -0
  174. package/dist/dto/logout-response.dto.js.map +1 -1
  175. package/dist/dto/logout.dto.d.ts +45 -0
  176. package/dist/dto/logout.dto.d.ts.map +1 -1
  177. package/dist/dto/logout.dto.js +45 -0
  178. package/dist/dto/logout.dto.js.map +1 -1
  179. package/dist/dto/refresh-token.dto.d.ts +28 -0
  180. package/dist/dto/refresh-token.dto.d.ts.map +1 -1
  181. package/dist/dto/refresh-token.dto.js +28 -0
  182. package/dist/dto/refresh-token.dto.js.map +1 -1
  183. package/dist/dto/remove-devices.dto.d.ts +51 -0
  184. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  185. package/dist/dto/remove-devices.dto.js +51 -0
  186. package/dist/dto/remove-devices.dto.js.map +1 -1
  187. package/dist/dto/resend-code-response.dto.d.ts +28 -0
  188. package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
  189. package/dist/dto/resend-code-response.dto.js +28 -0
  190. package/dist/dto/resend-code-response.dto.js.map +1 -1
  191. package/dist/dto/resend-code.dto.d.ts +37 -0
  192. package/dist/dto/resend-code.dto.d.ts.map +1 -1
  193. package/dist/dto/resend-code.dto.js +37 -0
  194. package/dist/dto/resend-code.dto.js.map +1 -1
  195. package/dist/dto/reset-password.dto.d.ts +74 -0
  196. package/dist/dto/reset-password.dto.d.ts.map +1 -1
  197. package/dist/dto/reset-password.dto.js +76 -1
  198. package/dist/dto/reset-password.dto.js.map +1 -1
  199. package/dist/dto/respond-challenge.dto.d.ts +147 -0
  200. package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
  201. package/dist/dto/respond-challenge.dto.js +162 -0
  202. package/dist/dto/respond-challenge.dto.js.map +1 -1
  203. package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
  204. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  205. package/dist/dto/set-mfa-exemption.dto.js +65 -0
  206. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  207. package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
  208. package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
  209. package/dist/dto/set-must-change-password-response.dto.js +23 -0
  210. package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
  211. package/dist/dto/set-must-change-password.dto.d.ts +32 -0
  212. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  213. package/dist/dto/set-must-change-password.dto.js +32 -0
  214. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  215. package/dist/dto/set-preferred-method.dto.d.ts +48 -0
  216. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  217. package/dist/dto/set-preferred-method.dto.js +48 -0
  218. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  219. package/dist/dto/setup-mfa.dto.d.ts +62 -0
  220. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  221. package/dist/dto/setup-mfa.dto.js +62 -0
  222. package/dist/dto/setup-mfa.dto.js.map +1 -1
  223. package/dist/dto/signup.dto.d.ts +92 -0
  224. package/dist/dto/signup.dto.d.ts.map +1 -1
  225. package/dist/dto/signup.dto.js +93 -0
  226. package/dist/dto/signup.dto.js.map +1 -1
  227. package/dist/dto/social-auth.dto.d.ts +234 -0
  228. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  229. package/dist/dto/social-auth.dto.js +234 -0
  230. package/dist/dto/social-auth.dto.js.map +1 -1
  231. package/dist/dto/trust-device-response.dto.d.ts +26 -0
  232. package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
  233. package/dist/dto/trust-device-response.dto.js +26 -0
  234. package/dist/dto/trust-device-response.dto.js.map +1 -1
  235. package/dist/dto/trust-device.dto.d.ts +9 -0
  236. package/dist/dto/trust-device.dto.d.ts.map +1 -1
  237. package/dist/dto/trust-device.dto.js +9 -0
  238. package/dist/dto/trust-device.dto.js.map +1 -1
  239. package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
  240. package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
  241. package/dist/dto/update-user-attributes-request.dto.js +36 -0
  242. package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
  243. package/dist/dto/user-response.dto.d.ts +81 -0
  244. package/dist/dto/user-response.dto.d.ts.map +1 -1
  245. package/dist/dto/user-response.dto.js +84 -2
  246. package/dist/dto/user-response.dto.js.map +1 -1
  247. package/dist/dto/user-update.dto.d.ts +132 -0
  248. package/dist/dto/user-update.dto.d.ts.map +1 -1
  249. package/dist/dto/user-update.dto.js +133 -0
  250. package/dist/dto/user-update.dto.js.map +1 -1
  251. package/dist/dto/verify-email.dto.d.ts +171 -0
  252. package/dist/dto/verify-email.dto.d.ts.map +1 -1
  253. package/dist/dto/verify-email.dto.js +173 -1
  254. package/dist/dto/verify-email.dto.js.map +1 -1
  255. package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
  256. package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
  257. package/dist/dto/verify-mfa-code.dto.js +65 -0
  258. package/dist/dto/verify-mfa-code.dto.js.map +1 -1
  259. package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
  260. package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
  261. package/dist/dto/verify-phone-by-sub.dto.js +49 -0
  262. package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
  263. package/dist/dto/verify-phone.dto.d.ts +139 -0
  264. package/dist/dto/verify-phone.dto.d.ts.map +1 -1
  265. package/dist/dto/verify-phone.dto.js +142 -1
  266. package/dist/dto/verify-phone.dto.js.map +1 -1
  267. package/dist/dto.d.ts +10 -0
  268. package/dist/dto.d.ts.map +1 -1
  269. package/dist/dto.js +10 -0
  270. package/dist/dto.js.map +1 -1
  271. package/dist/entities/auth-audit.entity.d.ts +159 -0
  272. package/dist/entities/auth-audit.entity.d.ts.map +1 -1
  273. package/dist/entities/auth-audit.entity.js +166 -0
  274. package/dist/entities/auth-audit.entity.js.map +1 -1
  275. package/dist/entities/challenge-session.entity.d.ts +87 -0
  276. package/dist/entities/challenge-session.entity.d.ts.map +1 -1
  277. package/dist/entities/challenge-session.entity.js +87 -0
  278. package/dist/entities/challenge-session.entity.js.map +1 -1
  279. package/dist/entities/index.d.ts +18 -0
  280. package/dist/entities/index.d.ts.map +1 -1
  281. package/dist/entities/index.js +18 -0
  282. package/dist/entities/index.js.map +1 -1
  283. package/dist/entities/login-attempt.entity.d.ts +43 -0
  284. package/dist/entities/login-attempt.entity.d.ts.map +1 -1
  285. package/dist/entities/login-attempt.entity.js +43 -0
  286. package/dist/entities/login-attempt.entity.js.map +1 -1
  287. package/dist/entities/mfa-device.entity.d.ts +112 -0
  288. package/dist/entities/mfa-device.entity.d.ts.map +1 -1
  289. package/dist/entities/mfa-device.entity.js +112 -0
  290. package/dist/entities/mfa-device.entity.js.map +1 -1
  291. package/dist/entities/rate-limit.entity.d.ts +31 -0
  292. package/dist/entities/rate-limit.entity.d.ts.map +1 -1
  293. package/dist/entities/rate-limit.entity.js +31 -0
  294. package/dist/entities/rate-limit.entity.js.map +1 -1
  295. package/dist/entities/session.entity.d.ts +121 -0
  296. package/dist/entities/session.entity.d.ts.map +1 -1
  297. package/dist/entities/session.entity.js +121 -0
  298. package/dist/entities/session.entity.js.map +1 -1
  299. package/dist/entities/social-account.entity.d.ts +75 -0
  300. package/dist/entities/social-account.entity.d.ts.map +1 -1
  301. package/dist/entities/social-account.entity.js +75 -0
  302. package/dist/entities/social-account.entity.js.map +1 -1
  303. package/dist/entities/storage-lock.entity.d.ts +28 -0
  304. package/dist/entities/storage-lock.entity.d.ts.map +1 -1
  305. package/dist/entities/storage-lock.entity.js +28 -0
  306. package/dist/entities/storage-lock.entity.js.map +1 -1
  307. package/dist/entities/trusted-device.entity.d.ts +83 -0
  308. package/dist/entities/trusted-device.entity.d.ts.map +1 -1
  309. package/dist/entities/trusted-device.entity.js +83 -0
  310. package/dist/entities/trusted-device.entity.js.map +1 -1
  311. package/dist/entities/user.entity.d.ts +166 -0
  312. package/dist/entities/user.entity.d.ts.map +1 -1
  313. package/dist/entities/user.entity.js +166 -0
  314. package/dist/entities/user.entity.js.map +1 -1
  315. package/dist/entities/verification-token.entity.d.ts +102 -0
  316. package/dist/entities/verification-token.entity.d.ts.map +1 -1
  317. package/dist/entities/verification-token.entity.js +102 -0
  318. package/dist/entities/verification-token.entity.js.map +1 -1
  319. package/dist/entities.d.ts +8 -0
  320. package/dist/entities.d.ts.map +1 -1
  321. package/dist/entities.js +8 -0
  322. package/dist/entities.js.map +1 -1
  323. package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
  324. package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
  325. package/dist/enums/auth-audit-event-type.enum.js +244 -0
  326. package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
  327. package/dist/enums/error-codes.enum.d.ts +296 -0
  328. package/dist/enums/error-codes.enum.d.ts.map +1 -1
  329. package/dist/enums/error-codes.enum.js +332 -0
  330. package/dist/enums/error-codes.enum.js.map +1 -1
  331. package/dist/enums/mfa-method.enum.d.ts +74 -0
  332. package/dist/enums/mfa-method.enum.d.ts.map +1 -1
  333. package/dist/enums/mfa-method.enum.js +64 -0
  334. package/dist/enums/mfa-method.enum.js.map +1 -1
  335. package/dist/enums/risk-factor.enum.d.ts +91 -0
  336. package/dist/enums/risk-factor.enum.d.ts.map +1 -1
  337. package/dist/enums/risk-factor.enum.js +97 -0
  338. package/dist/enums/risk-factor.enum.js.map +1 -1
  339. package/dist/exceptions/nauth.exception.d.ts +149 -0
  340. package/dist/exceptions/nauth.exception.d.ts.map +1 -1
  341. package/dist/exceptions/nauth.exception.js +159 -0
  342. package/dist/exceptions/nauth.exception.js.map +1 -1
  343. package/dist/handlers/auth.handler.d.ts +32 -0
  344. package/dist/handlers/auth.handler.d.ts.map +1 -1
  345. package/dist/handlers/auth.handler.js +47 -1
  346. package/dist/handlers/auth.handler.js.map +1 -1
  347. package/dist/handlers/client-info.handler.d.ts +25 -0
  348. package/dist/handlers/client-info.handler.d.ts.map +1 -1
  349. package/dist/handlers/client-info.handler.js +36 -2
  350. package/dist/handlers/client-info.handler.js.map +1 -1
  351. package/dist/handlers/csrf.handler.d.ts +32 -0
  352. package/dist/handlers/csrf.handler.d.ts.map +1 -1
  353. package/dist/handlers/csrf.handler.js +49 -1
  354. package/dist/handlers/csrf.handler.js.map +1 -1
  355. package/dist/handlers/token-delivery.handler.d.ts +16 -0
  356. package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
  357. package/dist/handlers/token-delivery.handler.js +22 -1
  358. package/dist/handlers/token-delivery.handler.js.map +1 -1
  359. package/dist/index.d.ts +34 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +67 -0
  362. package/dist/index.js.map +1 -1
  363. package/dist/interfaces/client-info.interface.d.ts +58 -0
  364. package/dist/interfaces/client-info.interface.d.ts.map +1 -1
  365. package/dist/interfaces/config.interface.d.ts +1774 -0
  366. package/dist/interfaces/config.interface.d.ts.map +1 -1
  367. package/dist/interfaces/config.interface.js +16 -0
  368. package/dist/interfaces/config.interface.js.map +1 -1
  369. package/dist/interfaces/entities.interface.d.ts +48 -0
  370. package/dist/interfaces/entities.interface.d.ts.map +1 -1
  371. package/dist/interfaces/entities.interface.js +8 -0
  372. package/dist/interfaces/entities.interface.js.map +1 -1
  373. package/dist/interfaces/index.js +5 -0
  374. package/dist/interfaces/index.js.map +1 -1
  375. package/dist/interfaces/logger.interface.d.ts +213 -0
  376. package/dist/interfaces/logger.interface.d.ts.map +1 -1
  377. package/dist/interfaces/logger.interface.js +35 -0
  378. package/dist/interfaces/logger.interface.js.map +1 -1
  379. package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
  380. package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
  381. package/dist/interfaces/oauth.interface.d.ts +110 -0
  382. package/dist/interfaces/oauth.interface.d.ts.map +1 -1
  383. package/dist/interfaces/provider.interface.d.ts +83 -0
  384. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  385. package/dist/interfaces/sms-template.interface.d.ts +246 -0
  386. package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
  387. package/dist/interfaces/sms-template.interface.js +26 -0
  388. package/dist/interfaces/sms-template.interface.js.map +1 -1
  389. package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
  390. package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
  391. package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
  392. package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
  393. package/dist/interfaces/template.interface.d.ts +351 -0
  394. package/dist/interfaces/template.interface.d.ts.map +1 -1
  395. package/dist/interfaces/template.interface.js +13 -0
  396. package/dist/interfaces/template.interface.js.map +1 -1
  397. package/dist/interfaces/token-verifier.interface.d.ts +101 -0
  398. package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
  399. package/dist/interfaces.d.ts +8 -0
  400. package/dist/interfaces.d.ts.map +1 -1
  401. package/dist/interfaces.js +8 -0
  402. package/dist/interfaces.js.map +1 -1
  403. package/dist/internal.d.ts +120 -0
  404. package/dist/internal.d.ts.map +1 -1
  405. package/dist/internal.js +138 -0
  406. package/dist/internal.js.map +1 -1
  407. package/dist/platform/interfaces.d.ts +187 -0
  408. package/dist/platform/interfaces.d.ts.map +1 -1
  409. package/dist/platform/interfaces.js +11 -0
  410. package/dist/platform/interfaces.js.map +1 -1
  411. package/dist/schemas/auth-config.schema.d.ts +48 -0
  412. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  413. package/dist/schemas/auth-config.schema.js +188 -9
  414. package/dist/schemas/auth-config.schema.js.map +1 -1
  415. package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
  416. package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
  417. package/dist/services/adaptive-mfa-decision.service.js +151 -5
  418. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  419. package/dist/services/auth-audit.service.d.ts +195 -0
  420. package/dist/services/auth-audit.service.d.ts.map +1 -1
  421. package/dist/services/auth-audit.service.js +228 -1
  422. package/dist/services/auth-audit.service.js.map +1 -1
  423. package/dist/services/auth-challenge-helper.service.d.ts +144 -1
  424. package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
  425. package/dist/services/auth-challenge-helper.service.js +295 -16
  426. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  427. package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
  428. package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
  429. package/dist/services/auth-flow-context-builder.service.js +184 -5
  430. package/dist/services/auth-flow-context-builder.service.js.map +1 -1
  431. package/dist/services/auth-flow-rules.d.ts +136 -0
  432. package/dist/services/auth-flow-rules.d.ts.map +1 -1
  433. package/dist/services/auth-flow-rules.js +137 -0
  434. package/dist/services/auth-flow-rules.js.map +1 -1
  435. package/dist/services/auth-flow-state-definitions.d.ts +40 -0
  436. package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
  437. package/dist/services/auth-flow-state-definitions.js +98 -0
  438. package/dist/services/auth-flow-state-definitions.js.map +1 -1
  439. package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
  440. package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
  441. package/dist/services/auth-flow-state-machine.service.js +102 -0
  442. package/dist/services/auth-flow-state-machine.service.js.map +1 -1
  443. package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
  444. package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
  445. package/dist/services/auth-flow-state-machine.types.js +47 -0
  446. package/dist/services/auth-flow-state-machine.types.js.map +1 -1
  447. package/dist/services/auth.service.d.ts +397 -1
  448. package/dist/services/auth.service.d.ts.map +1 -1
  449. package/dist/services/auth.service.js +943 -27
  450. package/dist/services/auth.service.js.map +1 -1
  451. package/dist/services/challenge.service.d.ts +255 -1
  452. package/dist/services/challenge.service.d.ts.map +1 -1
  453. package/dist/services/challenge.service.js +327 -3
  454. package/dist/services/challenge.service.js.map +1 -1
  455. package/dist/services/client-info.service.d.ts +143 -0
  456. package/dist/services/client-info.service.d.ts.map +1 -1
  457. package/dist/services/client-info.service.js +161 -0
  458. package/dist/services/client-info.service.js.map +1 -1
  459. package/dist/services/csrf.service.d.ts +15 -0
  460. package/dist/services/csrf.service.d.ts.map +1 -1
  461. package/dist/services/csrf.service.js +16 -0
  462. package/dist/services/csrf.service.js.map +1 -1
  463. package/dist/services/email-verification.service.d.ts +52 -0
  464. package/dist/services/email-verification.service.d.ts.map +1 -1
  465. package/dist/services/email-verification.service.js +149 -10
  466. package/dist/services/email-verification.service.js.map +1 -1
  467. package/dist/services/geo-location.service.d.ts +105 -0
  468. package/dist/services/geo-location.service.d.ts.map +1 -1
  469. package/dist/services/geo-location.service.js +188 -2
  470. package/dist/services/geo-location.service.js.map +1 -1
  471. package/dist/services/jwt.service.d.ts +257 -0
  472. package/dist/services/jwt.service.d.ts.map +1 -1
  473. package/dist/services/jwt.service.js +284 -1
  474. package/dist/services/jwt.service.js.map +1 -1
  475. package/dist/services/mfa-base.service.d.ts +179 -1
  476. package/dist/services/mfa-base.service.d.ts.map +1 -1
  477. package/dist/services/mfa-base.service.js +256 -2
  478. package/dist/services/mfa-base.service.js.map +1 -1
  479. package/dist/services/mfa.service.d.ts +304 -0
  480. package/dist/services/mfa.service.d.ts.map +1 -1
  481. package/dist/services/mfa.service.js +380 -0
  482. package/dist/services/mfa.service.js.map +1 -1
  483. package/dist/services/password-reset.service.d.ts +46 -0
  484. package/dist/services/password-reset.service.d.ts.map +1 -1
  485. package/dist/services/password-reset.service.js +79 -0
  486. package/dist/services/password-reset.service.js.map +1 -1
  487. package/dist/services/password.service.d.ts +139 -0
  488. package/dist/services/password.service.d.ts.map +1 -1
  489. package/dist/services/password.service.js +167 -9
  490. package/dist/services/password.service.js.map +1 -1
  491. package/dist/services/phone-verification.service.d.ts +75 -0
  492. package/dist/services/phone-verification.service.d.ts.map +1 -1
  493. package/dist/services/phone-verification.service.js +188 -6
  494. package/dist/services/phone-verification.service.js.map +1 -1
  495. package/dist/services/risk-detection.service.d.ts +198 -0
  496. package/dist/services/risk-detection.service.d.ts.map +1 -1
  497. package/dist/services/risk-detection.service.js +358 -11
  498. package/dist/services/risk-detection.service.js.map +1 -1
  499. package/dist/services/risk-scoring.service.d.ts +84 -0
  500. package/dist/services/risk-scoring.service.d.ts.map +1 -1
  501. package/dist/services/risk-scoring.service.js +87 -0
  502. package/dist/services/risk-scoring.service.js.map +1 -1
  503. package/dist/services/session.service.d.ts +204 -0
  504. package/dist/services/session.service.d.ts.map +1 -1
  505. package/dist/services/session.service.js +289 -4
  506. package/dist/services/session.service.js.map +1 -1
  507. package/dist/services/social-auth-base.service.d.ts +123 -1
  508. package/dist/services/social-auth-base.service.d.ts.map +1 -1
  509. package/dist/services/social-auth-base.service.js +155 -2
  510. package/dist/services/social-auth-base.service.js.map +1 -1
  511. package/dist/services/social-auth.service.d.ts +191 -0
  512. package/dist/services/social-auth.service.d.ts.map +1 -1
  513. package/dist/services/social-auth.service.js +215 -2
  514. package/dist/services/social-auth.service.js.map +1 -1
  515. package/dist/services/social-provider-registry.service.d.ts +86 -0
  516. package/dist/services/social-provider-registry.service.d.ts.map +1 -1
  517. package/dist/services/social-provider-registry.service.js +86 -0
  518. package/dist/services/social-provider-registry.service.js.map +1 -1
  519. package/dist/services/trusted-device.service.d.ts +105 -0
  520. package/dist/services/trusted-device.service.d.ts.map +1 -1
  521. package/dist/services/trusted-device.service.js +133 -4
  522. package/dist/services/trusted-device.service.js.map +1 -1
  523. package/dist/storage/account-lockout-storage.service.d.ts +35 -0
  524. package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
  525. package/dist/storage/account-lockout-storage.service.js +35 -0
  526. package/dist/storage/account-lockout-storage.service.js.map +1 -1
  527. package/dist/storage/memory-storage.adapter.d.ts +148 -0
  528. package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
  529. package/dist/storage/memory-storage.adapter.js +201 -6
  530. package/dist/storage/memory-storage.adapter.js.map +1 -1
  531. package/dist/storage/rate-limit-storage.service.d.ts +3 -0
  532. package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
  533. package/dist/storage/rate-limit-storage.service.js +4 -0
  534. package/dist/storage/rate-limit-storage.service.js.map +1 -1
  535. package/dist/storage.d.ts +8 -0
  536. package/dist/storage.d.ts.map +1 -1
  537. package/dist/storage.js +8 -0
  538. package/dist/storage.js.map +1 -1
  539. package/dist/templates/html-template.engine.d.ts +110 -0
  540. package/dist/templates/html-template.engine.d.ts.map +1 -1
  541. package/dist/templates/html-template.engine.js +147 -0
  542. package/dist/templates/html-template.engine.js.map +1 -1
  543. package/dist/templates/index.d.ts +5 -0
  544. package/dist/templates/index.d.ts.map +1 -1
  545. package/dist/templates/index.js +5 -0
  546. package/dist/templates/index.js.map +1 -1
  547. package/dist/templates/sms-template.engine.d.ts +151 -0
  548. package/dist/templates/sms-template.engine.d.ts.map +1 -1
  549. package/dist/templates/sms-template.engine.js +171 -0
  550. package/dist/templates/sms-template.engine.js.map +1 -1
  551. package/dist/templates.d.ts +8 -0
  552. package/dist/templates.d.ts.map +1 -1
  553. package/dist/templates.js +8 -0
  554. package/dist/templates.js.map +1 -1
  555. package/dist/utils/common-passwords.d.ts +42 -0
  556. package/dist/utils/common-passwords.d.ts.map +1 -1
  557. package/dist/utils/common-passwords.js +88 -0
  558. package/dist/utils/common-passwords.js.map +1 -1
  559. package/dist/utils/context-storage.d.ts +129 -0
  560. package/dist/utils/context-storage.d.ts.map +1 -1
  561. package/dist/utils/context-storage.js +129 -0
  562. package/dist/utils/context-storage.js.map +1 -1
  563. package/dist/utils/cookie-names.util.d.ts +35 -0
  564. package/dist/utils/cookie-names.util.d.ts.map +1 -1
  565. package/dist/utils/cookie-names.util.js +37 -0
  566. package/dist/utils/cookie-names.util.js.map +1 -1
  567. package/dist/utils/cookies.util.d.ts +19 -0
  568. package/dist/utils/cookies.util.d.ts.map +1 -1
  569. package/dist/utils/cookies.util.js +30 -3
  570. package/dist/utils/cookies.util.js.map +1 -1
  571. package/dist/utils/index.d.ts +3 -0
  572. package/dist/utils/index.d.ts.map +1 -1
  573. package/dist/utils/index.js +4 -0
  574. package/dist/utils/index.js.map +1 -1
  575. package/dist/utils/ip-extractor.d.ts +88 -0
  576. package/dist/utils/ip-extractor.d.ts.map +1 -1
  577. package/dist/utils/ip-extractor.js +109 -16
  578. package/dist/utils/ip-extractor.js.map +1 -1
  579. package/dist/utils/nauth-logger.d.ts +70 -0
  580. package/dist/utils/nauth-logger.d.ts.map +1 -1
  581. package/dist/utils/nauth-logger.js +82 -4
  582. package/dist/utils/nauth-logger.js.map +1 -1
  583. package/dist/utils/pii-redactor.d.ts +70 -0
  584. package/dist/utils/pii-redactor.d.ts.map +1 -1
  585. package/dist/utils/pii-redactor.js +102 -0
  586. package/dist/utils/pii-redactor.js.map +1 -1
  587. package/dist/utils/setup/get-repositories.d.ts +16 -0
  588. package/dist/utils/setup/get-repositories.d.ts.map +1 -1
  589. package/dist/utils/setup/get-repositories.js +21 -0
  590. package/dist/utils/setup/get-repositories.js.map +1 -1
  591. package/dist/utils/setup/init-services.d.ts +40 -1
  592. package/dist/utils/setup/init-services.d.ts.map +1 -1
  593. package/dist/utils/setup/init-services.js +98 -0
  594. package/dist/utils/setup/init-services.js.map +1 -1
  595. package/dist/utils/setup/init-social.d.ts +27 -0
  596. package/dist/utils/setup/init-social.d.ts.map +1 -1
  597. package/dist/utils/setup/init-social.js +49 -0
  598. package/dist/utils/setup/init-social.js.map +1 -1
  599. package/dist/utils/setup/init-storage.d.ts +22 -0
  600. package/dist/utils/setup/init-storage.d.ts.map +1 -1
  601. package/dist/utils/setup/init-storage.js +36 -0
  602. package/dist/utils/setup/init-storage.js.map +1 -1
  603. package/dist/utils/setup/register-mfa.d.ts +22 -0
  604. package/dist/utils/setup/register-mfa.d.ts.map +1 -1
  605. package/dist/utils/setup/register-mfa.js +41 -0
  606. package/dist/utils/setup/register-mfa.js.map +1 -1
  607. package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
  608. package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
  609. package/dist/utils/setup/run-nauth-migrations.js +8 -0
  610. package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
  611. package/dist/utils/token-delivery-policy.d.ts +17 -0
  612. package/dist/utils/token-delivery-policy.d.ts.map +1 -1
  613. package/dist/utils/token-delivery-policy.js +17 -0
  614. package/dist/utils/token-delivery-policy.js.map +1 -1
  615. package/dist/utils.d.ts +8 -0
  616. package/dist/utils.d.ts.map +1 -1
  617. package/dist/utils.js +8 -0
  618. package/dist/utils.js.map +1 -1
  619. package/dist/validators/template.validator.d.ts +80 -0
  620. package/dist/validators/template.validator.d.ts.map +1 -1
  621. package/dist/validators/template.validator.js +94 -0
  622. package/dist/validators/template.validator.js.map +1 -1
  623. package/package.json +7 -2
@@ -1,11 +1,145 @@
1
1
  import { IUser } from './entities.interface';
2
+ /**
3
+ * MFA Provider Service Interface
4
+ *
5
+ * Defines the contract that all MFA provider services must implement.
6
+ * Each MFA method (TOTP, SMS, Passkey) is a separate provider that extends
7
+ * the base class and implements this interface.
8
+ *
9
+ * Provider-specific types (e.g., SetupTOTPResponseDTO) are defined in each
10
+ * provider package, not in core, to maintain proper separation of concerns.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * @Injectable()
15
+ * export class TOTPMFAProviderService extends BaseMFAProviderService implements IMFAProviderService {
16
+ * readonly methodName = 'totp';
17
+ *
18
+ * async setup(user: IUser): Promise<unknown> {
19
+ * // TOTP-specific setup logic
20
+ * }
21
+ *
22
+ * async verify(user: IUser, code: string, deviceId?: number): Promise<boolean> {
23
+ * // TOTP verification logic
24
+ * }
25
+ * }
26
+ * ```
27
+ */
2
28
  export interface IMFAProviderService {
29
+ /**
30
+ * Unique method name for this MFA provider
31
+ * Examples: 'totp', 'sms', 'passkey'
32
+ */
3
33
  readonly methodName: string;
34
+ /**
35
+ * Check if this MFA method is allowed by configuration
36
+ *
37
+ * @returns True if method is allowed
38
+ */
4
39
  isMethodAllowed(): boolean;
40
+ /**
41
+ * Setup MFA device for user
42
+ *
43
+ * Initiates the setup process for this MFA method.
44
+ * Provider-specific setup data is returned.
45
+ *
46
+ * @param user - User setting up MFA
47
+ * @returns Provider-specific setup data (e.g., QR code for TOTP, options for Passkey)
48
+ * @throws {NAuthException} If method is not allowed or setup fails
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // TOTP provider returns { secret, qrCode, manualEntryKey }
53
+ * const setupData = await totpProvider.setup(user);
54
+ *
55
+ * // Passkey provider returns WebAuthn registration options
56
+ * const options = await passkeyProvider.setup(user);
57
+ * ```
58
+ */
5
59
  setup(user: IUser, setupData?: unknown): Promise<unknown>;
60
+ /**
61
+ * Verify and complete MFA setup
62
+ *
63
+ * Validates the verification code/credential and creates the MFA device.
64
+ *
65
+ * @param user - User completing setup
66
+ * @param verificationData - Provider-specific verification data (code, credential, etc.)
67
+ * @param deviceName - Optional device name
68
+ * @returns Created MFA device ID
69
+ * @throws {NAuthException} If verification fails
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * // TOTP: verificationData = { secret, code }
74
+ * const deviceId = await totpProvider.verifySetup(user, { secret: '...', code: '123456' });
75
+ *
76
+ * // SMS: verificationData = { phoneNumber, code }
77
+ * const deviceId = await smsProvider.verifySetup(user, { phoneNumber: '+1234567890', code: '123456' });
78
+ *
79
+ * // Passkey: verificationData = { credential, challenge }
80
+ * const deviceId = await passkeyProvider.verifySetup(user, { credential: {...}, challenge: '...' });
81
+ * ```
82
+ */
6
83
  verifySetup(user: IUser, verificationData: unknown, deviceName?: string): Promise<number>;
84
+ /**
85
+ * Verify MFA code/credential during authentication
86
+ *
87
+ * Validates the MFA code or credential for an existing device.
88
+ *
89
+ * @param user - User being authenticated
90
+ * @param code - MFA code or credential (provider-specific)
91
+ * @param deviceId - Optional device ID to verify against (if not provided, finds active device)
92
+ * @returns True if verification succeeds
93
+ * @throws {NAuthException} If device not found or verification fails
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // TOTP: code = '123456'
98
+ * const isValid = await totpProvider.verify(user, '123456');
99
+ *
100
+ * // SMS: code = '123456'
101
+ * const isValid = await smsProvider.verify(user, '123456');
102
+ *
103
+ * // Passkey: code = { credential: {...}, challenge: '...' }
104
+ * const isValid = await passkeyProvider.verify(user, { credential: {...}, challenge: '...' });
105
+ * ```
106
+ */
7
107
  verify(user: IUser, code: unknown, deviceId?: number): Promise<boolean>;
108
+ /**
109
+ * Send verification code/challenge for authentication
110
+ *
111
+ * Used during login to send SMS code or generate passkey challenge.
112
+ * Not applicable for TOTP (user generates code locally).
113
+ *
114
+ * @param user - User requesting verification
115
+ * @returns Provider-specific challenge data (e.g., masked phone for SMS, WebAuthn options for Passkey)
116
+ * @throws {NAuthException} If no device registered or send fails
117
+ *
118
+ * @example
119
+ * ```typescript
120
+ * // SMS: returns masked phone number
121
+ * const maskedPhone = await smsProvider.sendChallenge(user); // '***-***-1234'
122
+ *
123
+ * // Passkey: returns WebAuthn authentication options
124
+ * const options = await passkeyProvider.sendChallenge(user); // { challenge: '...', ... }
125
+ * ```
126
+ */
8
127
  sendChallenge?(user: IUser): Promise<unknown>;
128
+ /**
129
+ * Generate backup codes for user
130
+ *
131
+ * Creates single-use recovery codes that can be used when MFA devices are unavailable.
132
+ * Provided by BaseMFAProviderService for all providers.
133
+ *
134
+ * @param user - User to generate codes for
135
+ * @returns Generated backup codes (plain text - shown only once)
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const codes = await provider.generateBackupCodes?.(user);
140
+ * // Returns: ['ABC12345', 'DEF67890', ...]
141
+ * ```
142
+ */
9
143
  generateBackupCodes?(user: IUser): Promise<string[]>;
10
144
  }
11
145
  export type MFAProviderWithChallenge = IMFAProviderService & Required<Pick<IMFAProviderService, 'sendChallenge'>>;
@@ -1 +1 @@
1
- {"version":3,"file":"mfa-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/mfa-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA4B7C,MAAM,WAAW,mBAAmB;IAKlC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAO5B,eAAe,IAAI,OAAO,CAAC;IAqB3B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAyB1D,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAyB1F,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAqBxE,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAiB9C,mBAAmB,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtD;AAGD,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mfa-provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/mfa-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1F;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAExE;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C;;;;;;;;;;;;;;OAcG;IACH,mBAAmB,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACtD;AAGD,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC"}
@@ -1,24 +1,134 @@
1
+ /**
2
+ * OAuth User Profile Interface
3
+ * Standardized user profile data from OAuth providers
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * const profile: OAuthUserProfile = {
8
+ * id: 'google_123',
9
+ * email: 'user@gmail.com',
10
+ * firstName: 'John',
11
+ * lastName: 'Doe',
12
+ * picture: 'https://...',
13
+ * verified: true
14
+ * };
15
+ * ```
16
+ */
1
17
  export interface OAuthUserProfile {
18
+ /**
19
+ * Provider's unique identifier for the user
20
+ * Examples: Google sub, Apple user ID, Facebook ID
21
+ */
2
22
  id: string;
23
+ /**
24
+ * User's email address
25
+ * May be null if not provided by provider
26
+ */
3
27
  email?: string | null;
28
+ /**
29
+ * User's first name
30
+ * May be null if not provided by provider
31
+ */
4
32
  firstName?: string | null;
33
+ /**
34
+ * User's last name
35
+ * May be null if not provided by provider
36
+ */
5
37
  lastName?: string | null;
38
+ /**
39
+ * User's profile picture URL
40
+ * May be null if not provided by provider
41
+ */
6
42
  picture?: string | null;
43
+ /**
44
+ * Whether the email is verified by the provider
45
+ * @default false
46
+ */
7
47
  verified?: boolean;
48
+ /**
49
+ * Additional provider-specific data
50
+ * Contains raw response from OAuth provider
51
+ */
8
52
  raw?: Record<string, unknown>;
9
53
  }
54
+ /**
55
+ * OAuth Client Interface
56
+ * Defines the contract for OAuth provider clients
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * class GoogleOAuthClient implements OAuthClient {
61
+ * async getUserProfile(accessToken: string): Promise<OAuthUserProfile> {
62
+ * // Implementation for Google
63
+ * }
64
+ * }
65
+ * ```
66
+ */
10
67
  export interface OAuthClient {
68
+ /**
69
+ * Get user profile from OAuth provider using access token
70
+ *
71
+ * @param accessToken - OAuth access token
72
+ * @returns User profile data
73
+ * @throws {Error} When API call fails or token is invalid
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const profile = await oauthClient.getUserProfile(accessToken);
78
+ * console.log(profile.email); // user@example.com
79
+ * ```
80
+ */
11
81
  getUserProfile(accessToken: string): Promise<OAuthUserProfile>;
82
+ /**
83
+ * Exchange authorization code for access token
84
+ *
85
+ * @param code - Authorization code from OAuth callback
86
+ * @param redirectUri - Redirect URI used in OAuth flow
87
+ * @returns Access token and optional refresh token
88
+ * @throws {Error} When token exchange fails
89
+ *
90
+ * @example
91
+ * ```typescript
92
+ * const tokens = await oauthClient.exchangeCodeForToken(code, redirectUri);
93
+ * console.log(tokens.accessToken); // access_token_here
94
+ * ```
95
+ */
12
96
  exchangeCodeForToken(code: string, redirectUri: string): Promise<{
13
97
  accessToken: string;
14
98
  refreshToken?: string;
15
99
  expiresIn?: number;
16
100
  }>;
17
101
  }
102
+ /**
103
+ * OAuth Configuration Interface
104
+ * Configuration for OAuth clients
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * const config: OAuthConfig = {
109
+ * clientId: 'google_client_id',
110
+ * clientSecret: 'google_client_secret',
111
+ * redirectUri: 'https://myapp.com/auth/google/callback'
112
+ * };
113
+ * ```
114
+ */
18
115
  export interface OAuthConfig {
116
+ /**
117
+ * OAuth client ID
118
+ */
19
119
  clientId: string;
120
+ /**
121
+ * OAuth client secret
122
+ */
20
123
  clientSecret: string;
124
+ /**
125
+ * OAuth redirect URI
126
+ */
21
127
  redirectUri: string;
128
+ /**
129
+ * OAuth scopes
130
+ * @default ['openid', 'email', 'profile']
131
+ */
22
132
  scopes?: string[];
23
133
  }
24
134
  //# sourceMappingURL=oauth.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/oauth.interface.ts"],"names":[],"mappings":"AAgBA,MAAM,WAAW,gBAAgB;IAK/B,EAAE,EAAE,MAAM,CAAC;IAMX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAM1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAMnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAeD,MAAM,WAAW,WAAW;IAc1B,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAgB/D,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAeD,MAAM,WAAW,WAAW;IAI1B,QAAQ,EAAE,MAAM,CAAC;IAKjB,YAAY,EAAE,MAAM,CAAC;IAKrB,WAAW,EAAE,MAAM,CAAC;IAMpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
1
+ {"version":3,"file":"oauth.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/oauth.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE/D;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
@@ -1,14 +1,97 @@
1
+ /**
2
+ * Email provider interface for sending emails
3
+ */
1
4
  export interface EmailProvider {
5
+ /**
6
+ * Send email verification code/link
7
+ * @param to - Recipient email address
8
+ * @param code - Verification code (e.g., "123456")
9
+ * @param link - Optional verification link (only sent if provided by consumer app)
10
+ */
2
11
  sendVerificationEmail(to: string, code: string, link?: string): Promise<void>;
12
+ /**
13
+ * Send password reset email
14
+ */
3
15
  sendPasswordResetEmail(to: string, token: string, link: string): Promise<void>;
16
+ /**
17
+ * Send welcome email
18
+ */
4
19
  sendWelcomeEmail(to: string, name: string): Promise<void>;
20
+ /**
21
+ * Send account lockout notification
22
+ */
5
23
  sendLockoutEmail?(to: string, reason: string, duration: number): Promise<void>;
24
+ /**
25
+ * Send new device login notification
26
+ */
6
27
  sendNewDeviceEmail?(to: string, deviceInfo: any, location?: any): Promise<void>;
7
28
  }
29
+ /**
30
+ * SMS provider interface for sending text messages
31
+ */
8
32
  export interface SMSProvider {
33
+ /**
34
+ * Send OTP code via SMS
35
+ *
36
+ * @param phone - Recipient phone number in E.164 format
37
+ * @param code - OTP code to send
38
+ * @param templateType - Optional template type (verification, mfa, passwordReset)
39
+ * @param variables - Optional template variables (expiryMinutes, appName, etc.)
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * await provider.sendOTP('+1234567890', '123456');
44
+ * // With template support:
45
+ * await provider.sendOTP('+1234567890', '123456', 'verification', { expiryMinutes: 5 });
46
+ * ```
47
+ */
9
48
  sendOTP(phone: string, code: string, templateType?: string, variables?: Record<string, unknown>): Promise<void>;
49
+ /**
50
+ * Send verification code
51
+ *
52
+ * Alias for sendOTP(). Sends the same SMS message.
53
+ *
54
+ * @param phone - Recipient phone number in E.164 format
55
+ * @param code - Verification code to send
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * await provider.sendVerificationCode('+1234567890', '123456');
60
+ * ```
61
+ */
10
62
  sendVerificationCode?(phone: string, code: string): Promise<void>;
63
+ /**
64
+ * Set template engine for SMS message customization
65
+ *
66
+ * Optional method to enable template-based SMS messages.
67
+ * If not set, provider will use hard-coded default messages.
68
+ *
69
+ * @param engine - SMS template engine instance
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * const engine = new SMSTemplateEngine();
74
+ * provider.setTemplateEngine(engine);
75
+ * ```
76
+ */
11
77
  setTemplateEngine?(engine: import('./sms-template.interface').SMSTemplateEngine): void;
78
+ /**
79
+ * Set global variables for SMS templates
80
+ *
81
+ * Optional method to set global variables (appName, companyName, etc.)
82
+ * that will be available to all SMS templates.
83
+ *
84
+ * @param variables - Global template variables
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * provider.setGlobalVariables({
89
+ * appName: 'My App',
90
+ * companyName: 'My Company Inc.',
91
+ * supportPhone: '+1-800-123-4567',
92
+ * });
93
+ * ```
94
+ */
12
95
  setGlobalVariables?(variables: import('./sms-template.interface').SMSTemplateVariables): void;
13
96
  }
14
97
  //# sourceMappingURL=provider.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/provider.interface.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAO5B,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK9E,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK/E,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK1D,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAK/E,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AAKD,MAAM,WAAW,WAAW;IAgB1B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAehH,oBAAoB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAgBlE,iBAAiB,CAAC,CAAC,MAAM,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAmBvF,kBAAkB,CAAC,CAAC,SAAS,EAAE,OAAO,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/F"}
1
+ {"version":3,"file":"provider.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/provider.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9E;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;OAEG;IACH,kBAAkB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhH;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,CAAC,MAAM,EAAE,OAAO,0BAA0B,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEvF;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,CAAC,SAAS,EAAE,OAAO,0BAA0B,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/F"}
@@ -1,8 +1,40 @@
1
+ /**
2
+ * SMS Template System Interfaces
3
+ *
4
+ * Provides flexible template system for SMS notifications with support for:
5
+ * - Text templates with placeholder tokens ({{variable}})
6
+ * - Built-in and custom variables
7
+ * - Multiple template types (verification, MFA, password reset)
8
+ * - Handlebars syntax for template rendering
9
+ */
10
+ /**
11
+ * SMS Template Type
12
+ *
13
+ * Enum of available SMS template types
14
+ */
1
15
  export declare enum SMSTemplateType {
16
+ /**
17
+ * Phone verification code template
18
+ * Required variables: {{code}}, {{expiryMinutes}}
19
+ */
2
20
  VERIFICATION = "verification",
21
+ /**
22
+ * MFA code template
23
+ * Required variables: {{code}}, {{expiryMinutes}}
24
+ */
3
25
  MFA = "mfa",
26
+ /**
27
+ * Password reset code template
28
+ * Required variables: {{code}}, {{expiryMinutes}}
29
+ */
4
30
  PASSWORD_RESET = "passwordReset"
5
31
  }
32
+ /**
33
+ * SMS Template Variables
34
+ *
35
+ * Variables that can be used in SMS templates.
36
+ * All variables are optional as not all templates use all variables.
37
+ */
6
38
  export interface SMSTemplateVariables {
7
39
  appName?: string;
8
40
  userName?: string;
@@ -16,27 +48,241 @@ export interface SMSTemplateVariables {
16
48
  supportPhone?: string;
17
49
  [key: string]: string | number | boolean | undefined;
18
50
  }
51
+ /**
52
+ * SMS Template
53
+ *
54
+ * Defines the structure of an SMS template (text only, no HTML/subject).
55
+ * Content supports placeholder variables using Handlebars syntax.
56
+ */
19
57
  export interface SMSTemplate {
58
+ /**
59
+ * SMS message content (supports {{variables}})
60
+ * Plain text only - SMS does not support HTML formatting
61
+ */
20
62
  content: string;
21
63
  }
64
+ /**
65
+ * Template Source
66
+ *
67
+ * Defines how SMS template content can be provided - as a string or file path
68
+ */
22
69
  export interface SMSTemplateSource {
70
+ /**
71
+ * Template content as string
72
+ * Mutually exclusive with filePath
73
+ */
23
74
  content?: string;
75
+ /**
76
+ * Path to template file
77
+ * Mutually exclusive with content
78
+ */
24
79
  filePath?: string;
25
80
  }
81
+ /**
82
+ * Custom SMS Template Definition
83
+ *
84
+ * Allows specifying SMS templates as file paths or inline content.
85
+ * All templates support Handlebars syntax for dynamic content.
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const customTemplate: CustomSMSTemplateDefinition = {
90
+ * contentPath: './sms-templates/verification.txt.hbs',
91
+ * // OR
92
+ * content: '{{appName}}: Your code is {{code}}. Expires in {{expiryMinutes}} min.',
93
+ * };
94
+ * ```
95
+ */
26
96
  export interface CustomSMSTemplateDefinition {
97
+ /**
98
+ * Path to SMS template file
99
+ * Mutually exclusive with `content`
100
+ */
27
101
  contentPath?: string;
102
+ /**
103
+ * SMS template content as string
104
+ * Mutually exclusive with `contentPath`
105
+ */
28
106
  content?: string;
29
107
  }
108
+ /**
109
+ * SMS Template Engine Interface
110
+ *
111
+ * Contract for template engines that can render SMS templates with variables.
112
+ * Implementations can support Handlebars or other template formats.
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * const engine = new SMSTemplateEngine();
117
+ * const result = await engine.render(
118
+ * SMSTemplateType.VERIFICATION,
119
+ * { appName: 'My App', code: '123456', expiryMinutes: 5 }
120
+ * );
121
+ * // result.content: "My App: Your verification code is 123456. Valid for 5 minutes."
122
+ * ```
123
+ */
30
124
  export interface SMSTemplateEngine {
125
+ /**
126
+ * Render a template with the provided variables
127
+ *
128
+ * @param type - Type of template to render
129
+ * @param variables - Variables to inject into the template
130
+ * @returns Rendered SMS template with content
131
+ *
132
+ * @throws {Error} If template type is not found
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const result = await engine.render(
137
+ * SMSTemplateType.VERIFICATION,
138
+ * {
139
+ * appName: 'My App',
140
+ * code: '123456',
141
+ * expiryMinutes: 5
142
+ * }
143
+ * );
144
+ * ```
145
+ */
31
146
  render(type: SMSTemplateType | string, variables: SMSTemplateVariables): Promise<SMSTemplate>;
147
+ /**
148
+ * Register a custom template from inline string
149
+ *
150
+ * Allows overriding default templates or adding new ones.
151
+ *
152
+ * @param type - Template type identifier
153
+ * @param template - Template definition with inline content
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * engine.registerTemplate(SMSTemplateType.VERIFICATION, {
158
+ * content: '{{appName}}: Your code is {{code}}. Expires in {{expiryMinutes}} min.',
159
+ * });
160
+ * ```
161
+ */
32
162
  registerTemplate(type: SMSTemplateType | string, template: SMSTemplate): void;
163
+ /**
164
+ * Register a custom template from mixed sources (strings or files)
165
+ *
166
+ * Flexible registration that supports both inline content and file paths.
167
+ *
168
+ * @param type - Template type identifier
169
+ * @param templateSource - Template source (content or file path)
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * engine.registerTemplateFromSources(SMSTemplateType.VERIFICATION, {
174
+ * content: { content: '{{appName}}: Your code is {{code}}.' },
175
+ * });
176
+ * // OR
177
+ * engine.registerTemplateFromSources(SMSTemplateType.MFA, {
178
+ * content: { filePath: './sms-templates/mfa.txt.hbs' },
179
+ * });
180
+ * ```
181
+ */
33
182
  registerTemplateFromSources(type: SMSTemplateType | string, templateSource: {
34
183
  content: SMSTemplateSource;
35
184
  }): Promise<void>;
36
185
  }
186
+ /**
187
+ * SMS Template Configuration
188
+ *
189
+ * Configuration options for the SMS template system.
190
+ * Used in AuthModule.forRoot() configuration.
191
+ *
192
+ * Custom templates are validated at startup to ensure they include
193
+ * all required parameters for their template type.
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * AuthModule.forRoot({
198
+ * sms: {
199
+ * templates: {
200
+ * // Global variables (optional, available to all templates)
201
+ * globalVariables: {
202
+ * appName: 'My Application',
203
+ * companyName: 'My Company Inc.',
204
+ * supportPhone: '+1-800-123-4567',
205
+ * },
206
+ * // Custom templates (override defaults)
207
+ * customTemplates: {
208
+ * verification: {
209
+ * content: '{{appName}}: Your verification code is {{code}}. Valid for {{expiryMinutes}} minutes.',
210
+ * // Must include: {{code}}, {{expiryMinutes}}
211
+ * },
212
+ * mfa: {
213
+ * contentPath: './sms-templates/mfa.txt.hbs',
214
+ * // Must include: {{code}}, {{expiryMinutes}}
215
+ * },
216
+ * },
217
+ * },
218
+ * },
219
+ * });
220
+ * ```
221
+ */
37
222
  export interface SMSTemplateConfig {
223
+ /**
224
+ * Template engine instance
225
+ *
226
+ * @default SMSTemplateEngine with default templates
227
+ */
38
228
  engine?: SMSTemplateEngine;
229
+ /**
230
+ * Global variables available to all templates
231
+ *
232
+ * These are merged with template-specific variables at render time.
233
+ * Template-specific variables take precedence over globals.
234
+ *
235
+ * Common global variables:
236
+ * - appName: Your application name
237
+ * - companyName: Your company name
238
+ * - supportPhone: Support contact phone number
239
+ *
240
+ * Optional user-specific variables (injected at runtime):
241
+ * - firstName, lastName, userName: User information
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * globalVariables: {
246
+ * appName: process.env.APP_NAME || 'My App',
247
+ * companyName: 'My Company Inc.',
248
+ * supportPhone: '+1-800-123-4567',
249
+ * }
250
+ * ```
251
+ */
39
252
  globalVariables?: SMSTemplateVariables;
253
+ /**
254
+ * Custom template definitions
255
+ *
256
+ * Override default templates or add new ones.
257
+ * Templates are validated at startup to ensure required parameters are present.
258
+ *
259
+ * Key is the template type, value is the template definition.
260
+ * Templates can be provided as file paths or inline content.
261
+ *
262
+ * All templates support Handlebars syntax:
263
+ * - {{variable}}: Insert variable
264
+ * - {{#if variable}}...{{/if}}: Conditional
265
+ * - {{#each items}}...{{/each}}: Loop
266
+ *
267
+ * Required parameters by template type:
268
+ * - verification: {{code}}, {{expiryMinutes}}
269
+ * - mfa: {{code}}, {{expiryMinutes}}
270
+ * - passwordReset: {{code}}, {{expiryMinutes}}
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * customTemplates: {
275
+ * // File-based template
276
+ * verification: {
277
+ * contentPath: './sms-templates/verification.txt.hbs',
278
+ * },
279
+ * // Inline template
280
+ * mfa: {
281
+ * content: '{{appName}}: Your MFA code is {{code}}. Valid for {{expiryMinutes}} minutes.',
282
+ * },
283
+ * }
284
+ * ```
285
+ */
40
286
  customTemplates?: Record<string, CustomSMSTemplateDefinition>;
41
287
  }
42
288
  //# sourceMappingURL=sms-template.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sms-template.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sms-template.interface.ts"],"names":[],"mappings":"AAeA,oBAAY,eAAe;IAKzB,YAAY,iBAAiB;IAM7B,GAAG,QAAQ;IAMX,cAAc,kBAAkB;CACjC;AAQD,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAQD,MAAM,WAAW,WAAW;IAK1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,MAAM,WAAW,iBAAiB;IAKhC,OAAO,CAAC,EAAE,MAAM,CAAC;IAMjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAiBD,MAAM,WAAW,2BAA2B;IAK1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAkBD,MAAM,WAAW,iBAAiB;IAsBhC,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAiB9F,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAqB9E,2BAA2B,CACzB,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,cAAc,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAsCD,MAAM,WAAW,iBAAiB;IAMhC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAyB3B,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAmCvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"sms-template.interface.d.ts","sourceRoot":"","sources":["../../src/interfaces/sms-template.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,oBAAY,eAAe;IACzB;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;OAGG;IACH,GAAG,QAAQ;IAEX;;;OAGG;IACH,cAAc,kBAAkB;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IAEnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE9F;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAE9E;;;;;;;;;;;;;;;;;;OAkBG;IACH,2BAA2B,CACzB,IAAI,EAAE,eAAe,GAAG,MAAM,EAC9B,cAAc,EAAE;QAAE,OAAO,EAAE,iBAAiB,CAAA;KAAE,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;IAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC,CAAC;CAC/D"}