@nauth-toolkit/core 0.1.14 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (623) hide show
  1. package/dist/adapters/database-columns.d.ts +70 -0
  2. package/dist/adapters/database-columns.d.ts.map +1 -1
  3. package/dist/adapters/database-columns.js +76 -2
  4. package/dist/adapters/database-columns.js.map +1 -1
  5. package/dist/adapters/express.adapter.d.ts +66 -0
  6. package/dist/adapters/express.adapter.d.ts.map +1 -1
  7. package/dist/adapters/express.adapter.js +80 -0
  8. package/dist/adapters/express.adapter.js.map +1 -1
  9. package/dist/adapters/fastify.adapter.d.ts +42 -0
  10. package/dist/adapters/fastify.adapter.d.ts.map +1 -1
  11. package/dist/adapters/fastify.adapter.js +86 -0
  12. package/dist/adapters/fastify.adapter.js.map +1 -1
  13. package/dist/adapters/index.d.ts +5 -0
  14. package/dist/adapters/index.d.ts.map +1 -1
  15. package/dist/adapters/index.js +9 -0
  16. package/dist/adapters/index.js.map +1 -1
  17. package/dist/adapters/storage.factory.d.ts +107 -0
  18. package/dist/adapters/storage.factory.d.ts.map +1 -1
  19. package/dist/adapters/storage.factory.js +114 -0
  20. package/dist/adapters/storage.factory.js.map +1 -1
  21. package/dist/adapters.d.ts +8 -0
  22. package/dist/adapters.d.ts.map +1 -1
  23. package/dist/adapters.js +8 -0
  24. package/dist/adapters.js.map +1 -1
  25. package/dist/bootstrap.d.ts +82 -0
  26. package/dist/bootstrap.d.ts.map +1 -1
  27. package/dist/bootstrap.js +106 -0
  28. package/dist/bootstrap.js.map +1 -1
  29. package/dist/dto/admin-set-password.dto.d.ts +90 -0
  30. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  31. package/dist/dto/admin-set-password.dto.js +91 -0
  32. package/dist/dto/admin-set-password.dto.js.map +1 -1
  33. package/dist/dto/auth-challenge.dto.d.ts +170 -0
  34. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  35. package/dist/dto/auth-challenge.dto.js +170 -0
  36. package/dist/dto/auth-challenge.dto.js.map +1 -1
  37. package/dist/dto/auth-response.dto.d.ts +196 -0
  38. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-response.dto.js +149 -0
  40. package/dist/dto/auth-response.dto.js.map +1 -1
  41. package/dist/dto/challenge-response.dto.d.ts +155 -0
  42. package/dist/dto/challenge-response.dto.d.ts.map +1 -1
  43. package/dist/dto/challenge-response.dto.js +8 -0
  44. package/dist/dto/challenge-response.dto.js.map +1 -1
  45. package/dist/dto/change-password-request.dto.d.ts +35 -0
  46. package/dist/dto/change-password-request.dto.d.ts.map +1 -1
  47. package/dist/dto/change-password-request.dto.js +35 -0
  48. package/dist/dto/change-password-request.dto.js.map +1 -1
  49. package/dist/dto/change-password-response.dto.d.ts +25 -0
  50. package/dist/dto/change-password-response.dto.d.ts.map +1 -1
  51. package/dist/dto/change-password-response.dto.js +25 -0
  52. package/dist/dto/change-password-response.dto.js.map +1 -1
  53. package/dist/dto/change-password.dto.d.ts +45 -0
  54. package/dist/dto/change-password.dto.d.ts.map +1 -1
  55. package/dist/dto/change-password.dto.js +45 -0
  56. package/dist/dto/change-password.dto.js.map +1 -1
  57. package/dist/dto/confirm-forgot-password.dto.d.ts +59 -0
  58. package/dist/dto/confirm-forgot-password.dto.d.ts.map +1 -1
  59. package/dist/dto/confirm-forgot-password.dto.js +59 -0
  60. package/dist/dto/confirm-forgot-password.dto.js.map +1 -1
  61. package/dist/dto/error-response.dto.d.ts +103 -0
  62. package/dist/dto/error-response.dto.d.ts.map +1 -1
  63. package/dist/dto/error-response.dto.js +103 -0
  64. package/dist/dto/error-response.dto.js.map +1 -1
  65. package/dist/dto/forgot-password.dto.d.ts +58 -0
  66. package/dist/dto/forgot-password.dto.d.ts.map +1 -1
  67. package/dist/dto/forgot-password.dto.js +58 -0
  68. package/dist/dto/forgot-password.dto.js.map +1 -1
  69. package/dist/dto/get-available-methods.dto.d.ts +37 -0
  70. package/dist/dto/get-available-methods.dto.d.ts.map +1 -1
  71. package/dist/dto/get-available-methods.dto.js +37 -0
  72. package/dist/dto/get-available-methods.dto.js.map +1 -1
  73. package/dist/dto/get-challenge-data-response.dto.d.ts +24 -0
  74. package/dist/dto/get-challenge-data-response.dto.d.ts.map +1 -1
  75. package/dist/dto/get-challenge-data-response.dto.js +24 -0
  76. package/dist/dto/get-challenge-data-response.dto.js.map +1 -1
  77. package/dist/dto/get-challenge-data.dto.d.ts +46 -0
  78. package/dist/dto/get-challenge-data.dto.d.ts.map +1 -1
  79. package/dist/dto/get-challenge-data.dto.js +46 -0
  80. package/dist/dto/get-challenge-data.dto.js.map +1 -1
  81. package/dist/dto/get-client-info.dto.d.ts +74 -0
  82. package/dist/dto/get-client-info.dto.d.ts.map +1 -1
  83. package/dist/dto/get-client-info.dto.js +74 -0
  84. package/dist/dto/get-client-info.dto.js.map +1 -1
  85. package/dist/dto/get-device-token-response.dto.d.ts +21 -0
  86. package/dist/dto/get-device-token-response.dto.d.ts.map +1 -1
  87. package/dist/dto/get-device-token-response.dto.js +21 -0
  88. package/dist/dto/get-device-token-response.dto.js.map +1 -1
  89. package/dist/dto/get-events-by-type.dto.d.ts +50 -0
  90. package/dist/dto/get-events-by-type.dto.d.ts.map +1 -1
  91. package/dist/dto/get-events-by-type.dto.js +50 -0
  92. package/dist/dto/get-events-by-type.dto.js.map +1 -1
  93. package/dist/dto/get-ip-address-response.dto.d.ts +20 -0
  94. package/dist/dto/get-ip-address-response.dto.d.ts.map +1 -1
  95. package/dist/dto/get-ip-address-response.dto.js +20 -0
  96. package/dist/dto/get-ip-address-response.dto.js.map +1 -1
  97. package/dist/dto/get-mfa-status.dto.d.ts +59 -0
  98. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  99. package/dist/dto/get-mfa-status.dto.js +59 -0
  100. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  101. package/dist/dto/get-risk-assessment-history.dto.d.ts +28 -0
  102. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  103. package/dist/dto/get-risk-assessment-history.dto.js +28 -0
  104. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  105. package/dist/dto/get-session-id-response.dto.d.ts +21 -0
  106. package/dist/dto/get-session-id-response.dto.d.ts.map +1 -1
  107. package/dist/dto/get-session-id-response.dto.js +21 -0
  108. package/dist/dto/get-session-id-response.dto.js.map +1 -1
  109. package/dist/dto/get-setup-data-response.dto.d.ts +27 -0
  110. package/dist/dto/get-setup-data-response.dto.d.ts.map +1 -1
  111. package/dist/dto/get-setup-data-response.dto.js +27 -0
  112. package/dist/dto/get-setup-data-response.dto.js.map +1 -1
  113. package/dist/dto/get-setup-data.dto.d.ts +51 -0
  114. package/dist/dto/get-setup-data.dto.d.ts.map +1 -1
  115. package/dist/dto/get-setup-data.dto.js +51 -0
  116. package/dist/dto/get-setup-data.dto.js.map +1 -1
  117. package/dist/dto/get-suspicious-activity.dto.d.ts +31 -0
  118. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  119. package/dist/dto/get-suspicious-activity.dto.js +31 -0
  120. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  121. package/dist/dto/get-user-agent-response.dto.d.ts +19 -0
  122. package/dist/dto/get-user-agent-response.dto.d.ts.map +1 -1
  123. package/dist/dto/get-user-agent-response.dto.js +19 -0
  124. package/dist/dto/get-user-agent-response.dto.js.map +1 -1
  125. package/dist/dto/get-user-auth-history.dto.d.ts +64 -0
  126. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  127. package/dist/dto/get-user-auth-history.dto.js +64 -0
  128. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  129. package/dist/dto/get-user-by-email.dto.d.ts +42 -0
  130. package/dist/dto/get-user-by-email.dto.d.ts.map +1 -1
  131. package/dist/dto/get-user-by-email.dto.js +42 -0
  132. package/dist/dto/get-user-by-email.dto.js.map +1 -1
  133. package/dist/dto/get-user-by-id.dto.d.ts +32 -0
  134. package/dist/dto/get-user-by-id.dto.d.ts.map +1 -1
  135. package/dist/dto/get-user-by-id.dto.js +32 -0
  136. package/dist/dto/get-user-by-id.dto.js.map +1 -1
  137. package/dist/dto/get-user-devices.dto.d.ts +34 -0
  138. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  139. package/dist/dto/get-user-devices.dto.js +34 -0
  140. package/dist/dto/get-user-devices.dto.js.map +1 -1
  141. package/dist/dto/get-user-response.dto.d.ts +14 -0
  142. package/dist/dto/get-user-response.dto.d.ts.map +1 -1
  143. package/dist/dto/get-user-response.dto.js +15 -0
  144. package/dist/dto/get-user-response.dto.js.map +1 -1
  145. package/dist/dto/has-provider.dto.d.ts +33 -0
  146. package/dist/dto/has-provider.dto.d.ts.map +1 -1
  147. package/dist/dto/has-provider.dto.js +33 -0
  148. package/dist/dto/has-provider.dto.js.map +1 -1
  149. package/dist/dto/index.js +5 -0
  150. package/dist/dto/index.js.map +1 -1
  151. package/dist/dto/is-trusted-device-response.dto.d.ts +28 -0
  152. package/dist/dto/is-trusted-device-response.dto.d.ts.map +1 -1
  153. package/dist/dto/is-trusted-device-response.dto.js +28 -0
  154. package/dist/dto/is-trusted-device-response.dto.js.map +1 -1
  155. package/dist/dto/list-providers-response.dto.d.ts +19 -0
  156. package/dist/dto/list-providers-response.dto.d.ts.map +1 -1
  157. package/dist/dto/list-providers-response.dto.js +19 -0
  158. package/dist/dto/list-providers-response.dto.js.map +1 -1
  159. package/dist/dto/login.dto.d.ts +48 -0
  160. package/dist/dto/login.dto.d.ts.map +1 -1
  161. package/dist/dto/login.dto.js +50 -1
  162. package/dist/dto/login.dto.js.map +1 -1
  163. package/dist/dto/logout-all-response.dto.d.ts +20 -0
  164. package/dist/dto/logout-all-response.dto.d.ts.map +1 -1
  165. package/dist/dto/logout-all-response.dto.js +20 -0
  166. package/dist/dto/logout-all-response.dto.js.map +1 -1
  167. package/dist/dto/logout-all.dto.d.ts +42 -0
  168. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  169. package/dist/dto/logout-all.dto.js +42 -0
  170. package/dist/dto/logout-all.dto.js.map +1 -1
  171. package/dist/dto/logout-response.dto.d.ts +21 -0
  172. package/dist/dto/logout-response.dto.d.ts.map +1 -1
  173. package/dist/dto/logout-response.dto.js +21 -0
  174. package/dist/dto/logout-response.dto.js.map +1 -1
  175. package/dist/dto/logout.dto.d.ts +45 -0
  176. package/dist/dto/logout.dto.d.ts.map +1 -1
  177. package/dist/dto/logout.dto.js +45 -0
  178. package/dist/dto/logout.dto.js.map +1 -1
  179. package/dist/dto/refresh-token.dto.d.ts +28 -0
  180. package/dist/dto/refresh-token.dto.d.ts.map +1 -1
  181. package/dist/dto/refresh-token.dto.js +28 -0
  182. package/dist/dto/refresh-token.dto.js.map +1 -1
  183. package/dist/dto/remove-devices.dto.d.ts +51 -0
  184. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  185. package/dist/dto/remove-devices.dto.js +51 -0
  186. package/dist/dto/remove-devices.dto.js.map +1 -1
  187. package/dist/dto/resend-code-response.dto.d.ts +28 -0
  188. package/dist/dto/resend-code-response.dto.d.ts.map +1 -1
  189. package/dist/dto/resend-code-response.dto.js +28 -0
  190. package/dist/dto/resend-code-response.dto.js.map +1 -1
  191. package/dist/dto/resend-code.dto.d.ts +37 -0
  192. package/dist/dto/resend-code.dto.d.ts.map +1 -1
  193. package/dist/dto/resend-code.dto.js +37 -0
  194. package/dist/dto/resend-code.dto.js.map +1 -1
  195. package/dist/dto/reset-password.dto.d.ts +74 -0
  196. package/dist/dto/reset-password.dto.d.ts.map +1 -1
  197. package/dist/dto/reset-password.dto.js +76 -1
  198. package/dist/dto/reset-password.dto.js.map +1 -1
  199. package/dist/dto/respond-challenge.dto.d.ts +147 -0
  200. package/dist/dto/respond-challenge.dto.d.ts.map +1 -1
  201. package/dist/dto/respond-challenge.dto.js +162 -0
  202. package/dist/dto/respond-challenge.dto.js.map +1 -1
  203. package/dist/dto/set-mfa-exemption.dto.d.ts +65 -0
  204. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  205. package/dist/dto/set-mfa-exemption.dto.js +65 -0
  206. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  207. package/dist/dto/set-must-change-password-response.dto.d.ts +23 -0
  208. package/dist/dto/set-must-change-password-response.dto.d.ts.map +1 -1
  209. package/dist/dto/set-must-change-password-response.dto.js +23 -0
  210. package/dist/dto/set-must-change-password-response.dto.js.map +1 -1
  211. package/dist/dto/set-must-change-password.dto.d.ts +32 -0
  212. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  213. package/dist/dto/set-must-change-password.dto.js +32 -0
  214. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  215. package/dist/dto/set-preferred-method.dto.d.ts +48 -0
  216. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  217. package/dist/dto/set-preferred-method.dto.js +48 -0
  218. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  219. package/dist/dto/setup-mfa.dto.d.ts +62 -0
  220. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  221. package/dist/dto/setup-mfa.dto.js +62 -0
  222. package/dist/dto/setup-mfa.dto.js.map +1 -1
  223. package/dist/dto/signup.dto.d.ts +92 -0
  224. package/dist/dto/signup.dto.d.ts.map +1 -1
  225. package/dist/dto/signup.dto.js +93 -0
  226. package/dist/dto/signup.dto.js.map +1 -1
  227. package/dist/dto/social-auth.dto.d.ts +234 -0
  228. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  229. package/dist/dto/social-auth.dto.js +234 -0
  230. package/dist/dto/social-auth.dto.js.map +1 -1
  231. package/dist/dto/trust-device-response.dto.d.ts +26 -0
  232. package/dist/dto/trust-device-response.dto.d.ts.map +1 -1
  233. package/dist/dto/trust-device-response.dto.js +26 -0
  234. package/dist/dto/trust-device-response.dto.js.map +1 -1
  235. package/dist/dto/trust-device.dto.d.ts +9 -0
  236. package/dist/dto/trust-device.dto.d.ts.map +1 -1
  237. package/dist/dto/trust-device.dto.js +9 -0
  238. package/dist/dto/trust-device.dto.js.map +1 -1
  239. package/dist/dto/update-user-attributes-request.dto.d.ts +36 -0
  240. package/dist/dto/update-user-attributes-request.dto.d.ts.map +1 -1
  241. package/dist/dto/update-user-attributes-request.dto.js +36 -0
  242. package/dist/dto/update-user-attributes-request.dto.js.map +1 -1
  243. package/dist/dto/user-response.dto.d.ts +81 -0
  244. package/dist/dto/user-response.dto.d.ts.map +1 -1
  245. package/dist/dto/user-response.dto.js +84 -2
  246. package/dist/dto/user-response.dto.js.map +1 -1
  247. package/dist/dto/user-update.dto.d.ts +132 -0
  248. package/dist/dto/user-update.dto.d.ts.map +1 -1
  249. package/dist/dto/user-update.dto.js +133 -0
  250. package/dist/dto/user-update.dto.js.map +1 -1
  251. package/dist/dto/verify-email.dto.d.ts +171 -0
  252. package/dist/dto/verify-email.dto.d.ts.map +1 -1
  253. package/dist/dto/verify-email.dto.js +173 -1
  254. package/dist/dto/verify-email.dto.js.map +1 -1
  255. package/dist/dto/verify-mfa-code.dto.d.ts +65 -0
  256. package/dist/dto/verify-mfa-code.dto.d.ts.map +1 -1
  257. package/dist/dto/verify-mfa-code.dto.js +65 -0
  258. package/dist/dto/verify-mfa-code.dto.js.map +1 -1
  259. package/dist/dto/verify-phone-by-sub.dto.d.ts +49 -0
  260. package/dist/dto/verify-phone-by-sub.dto.d.ts.map +1 -1
  261. package/dist/dto/verify-phone-by-sub.dto.js +49 -0
  262. package/dist/dto/verify-phone-by-sub.dto.js.map +1 -1
  263. package/dist/dto/verify-phone.dto.d.ts +139 -0
  264. package/dist/dto/verify-phone.dto.d.ts.map +1 -1
  265. package/dist/dto/verify-phone.dto.js +142 -1
  266. package/dist/dto/verify-phone.dto.js.map +1 -1
  267. package/dist/dto.d.ts +10 -0
  268. package/dist/dto.d.ts.map +1 -1
  269. package/dist/dto.js +10 -0
  270. package/dist/dto.js.map +1 -1
  271. package/dist/entities/auth-audit.entity.d.ts +159 -0
  272. package/dist/entities/auth-audit.entity.d.ts.map +1 -1
  273. package/dist/entities/auth-audit.entity.js +166 -0
  274. package/dist/entities/auth-audit.entity.js.map +1 -1
  275. package/dist/entities/challenge-session.entity.d.ts +87 -0
  276. package/dist/entities/challenge-session.entity.d.ts.map +1 -1
  277. package/dist/entities/challenge-session.entity.js +87 -0
  278. package/dist/entities/challenge-session.entity.js.map +1 -1
  279. package/dist/entities/index.d.ts +18 -0
  280. package/dist/entities/index.d.ts.map +1 -1
  281. package/dist/entities/index.js +18 -0
  282. package/dist/entities/index.js.map +1 -1
  283. package/dist/entities/login-attempt.entity.d.ts +43 -0
  284. package/dist/entities/login-attempt.entity.d.ts.map +1 -1
  285. package/dist/entities/login-attempt.entity.js +43 -0
  286. package/dist/entities/login-attempt.entity.js.map +1 -1
  287. package/dist/entities/mfa-device.entity.d.ts +112 -0
  288. package/dist/entities/mfa-device.entity.d.ts.map +1 -1
  289. package/dist/entities/mfa-device.entity.js +112 -0
  290. package/dist/entities/mfa-device.entity.js.map +1 -1
  291. package/dist/entities/rate-limit.entity.d.ts +31 -0
  292. package/dist/entities/rate-limit.entity.d.ts.map +1 -1
  293. package/dist/entities/rate-limit.entity.js +31 -0
  294. package/dist/entities/rate-limit.entity.js.map +1 -1
  295. package/dist/entities/session.entity.d.ts +121 -0
  296. package/dist/entities/session.entity.d.ts.map +1 -1
  297. package/dist/entities/session.entity.js +121 -0
  298. package/dist/entities/session.entity.js.map +1 -1
  299. package/dist/entities/social-account.entity.d.ts +75 -0
  300. package/dist/entities/social-account.entity.d.ts.map +1 -1
  301. package/dist/entities/social-account.entity.js +75 -0
  302. package/dist/entities/social-account.entity.js.map +1 -1
  303. package/dist/entities/storage-lock.entity.d.ts +28 -0
  304. package/dist/entities/storage-lock.entity.d.ts.map +1 -1
  305. package/dist/entities/storage-lock.entity.js +28 -0
  306. package/dist/entities/storage-lock.entity.js.map +1 -1
  307. package/dist/entities/trusted-device.entity.d.ts +83 -0
  308. package/dist/entities/trusted-device.entity.d.ts.map +1 -1
  309. package/dist/entities/trusted-device.entity.js +83 -0
  310. package/dist/entities/trusted-device.entity.js.map +1 -1
  311. package/dist/entities/user.entity.d.ts +166 -0
  312. package/dist/entities/user.entity.d.ts.map +1 -1
  313. package/dist/entities/user.entity.js +166 -0
  314. package/dist/entities/user.entity.js.map +1 -1
  315. package/dist/entities/verification-token.entity.d.ts +102 -0
  316. package/dist/entities/verification-token.entity.d.ts.map +1 -1
  317. package/dist/entities/verification-token.entity.js +102 -0
  318. package/dist/entities/verification-token.entity.js.map +1 -1
  319. package/dist/entities.d.ts +8 -0
  320. package/dist/entities.d.ts.map +1 -1
  321. package/dist/entities.js +8 -0
  322. package/dist/entities.js.map +1 -1
  323. package/dist/enums/auth-audit-event-type.enum.d.ts +211 -0
  324. package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
  325. package/dist/enums/auth-audit-event-type.enum.js +244 -0
  326. package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
  327. package/dist/enums/error-codes.enum.d.ts +296 -0
  328. package/dist/enums/error-codes.enum.d.ts.map +1 -1
  329. package/dist/enums/error-codes.enum.js +332 -0
  330. package/dist/enums/error-codes.enum.js.map +1 -1
  331. package/dist/enums/mfa-method.enum.d.ts +74 -0
  332. package/dist/enums/mfa-method.enum.d.ts.map +1 -1
  333. package/dist/enums/mfa-method.enum.js +64 -0
  334. package/dist/enums/mfa-method.enum.js.map +1 -1
  335. package/dist/enums/risk-factor.enum.d.ts +91 -0
  336. package/dist/enums/risk-factor.enum.d.ts.map +1 -1
  337. package/dist/enums/risk-factor.enum.js +97 -0
  338. package/dist/enums/risk-factor.enum.js.map +1 -1
  339. package/dist/exceptions/nauth.exception.d.ts +149 -0
  340. package/dist/exceptions/nauth.exception.d.ts.map +1 -1
  341. package/dist/exceptions/nauth.exception.js +159 -0
  342. package/dist/exceptions/nauth.exception.js.map +1 -1
  343. package/dist/handlers/auth.handler.d.ts +32 -0
  344. package/dist/handlers/auth.handler.d.ts.map +1 -1
  345. package/dist/handlers/auth.handler.js +47 -1
  346. package/dist/handlers/auth.handler.js.map +1 -1
  347. package/dist/handlers/client-info.handler.d.ts +25 -0
  348. package/dist/handlers/client-info.handler.d.ts.map +1 -1
  349. package/dist/handlers/client-info.handler.js +36 -2
  350. package/dist/handlers/client-info.handler.js.map +1 -1
  351. package/dist/handlers/csrf.handler.d.ts +32 -0
  352. package/dist/handlers/csrf.handler.d.ts.map +1 -1
  353. package/dist/handlers/csrf.handler.js +49 -1
  354. package/dist/handlers/csrf.handler.js.map +1 -1
  355. package/dist/handlers/token-delivery.handler.d.ts +16 -0
  356. package/dist/handlers/token-delivery.handler.d.ts.map +1 -1
  357. package/dist/handlers/token-delivery.handler.js +22 -1
  358. package/dist/handlers/token-delivery.handler.js.map +1 -1
  359. package/dist/index.d.ts +34 -0
  360. package/dist/index.d.ts.map +1 -1
  361. package/dist/index.js +67 -0
  362. package/dist/index.js.map +1 -1
  363. package/dist/interfaces/client-info.interface.d.ts +58 -0
  364. package/dist/interfaces/client-info.interface.d.ts.map +1 -1
  365. package/dist/interfaces/config.interface.d.ts +1780 -0
  366. package/dist/interfaces/config.interface.d.ts.map +1 -1
  367. package/dist/interfaces/config.interface.js +16 -0
  368. package/dist/interfaces/config.interface.js.map +1 -1
  369. package/dist/interfaces/entities.interface.d.ts +48 -0
  370. package/dist/interfaces/entities.interface.d.ts.map +1 -1
  371. package/dist/interfaces/entities.interface.js +8 -0
  372. package/dist/interfaces/entities.interface.js.map +1 -1
  373. package/dist/interfaces/index.js +5 -0
  374. package/dist/interfaces/index.js.map +1 -1
  375. package/dist/interfaces/logger.interface.d.ts +213 -0
  376. package/dist/interfaces/logger.interface.d.ts.map +1 -1
  377. package/dist/interfaces/logger.interface.js +35 -0
  378. package/dist/interfaces/logger.interface.js.map +1 -1
  379. package/dist/interfaces/mfa-provider.interface.d.ts +134 -0
  380. package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
  381. package/dist/interfaces/oauth.interface.d.ts +110 -0
  382. package/dist/interfaces/oauth.interface.d.ts.map +1 -1
  383. package/dist/interfaces/provider.interface.d.ts +83 -0
  384. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  385. package/dist/interfaces/sms-template.interface.d.ts +246 -0
  386. package/dist/interfaces/sms-template.interface.d.ts.map +1 -1
  387. package/dist/interfaces/sms-template.interface.js +26 -0
  388. package/dist/interfaces/sms-template.interface.js.map +1 -1
  389. package/dist/interfaces/social-auth-provider.interface.d.ts +115 -0
  390. package/dist/interfaces/social-auth-provider.interface.d.ts.map +1 -1
  391. package/dist/interfaces/storage-adapter.interface.d.ts +37 -0
  392. package/dist/interfaces/storage-adapter.interface.d.ts.map +1 -1
  393. package/dist/interfaces/template.interface.d.ts +351 -0
  394. package/dist/interfaces/template.interface.d.ts.map +1 -1
  395. package/dist/interfaces/template.interface.js +13 -0
  396. package/dist/interfaces/template.interface.js.map +1 -1
  397. package/dist/interfaces/token-verifier.interface.d.ts +101 -0
  398. package/dist/interfaces/token-verifier.interface.d.ts.map +1 -1
  399. package/dist/interfaces.d.ts +8 -0
  400. package/dist/interfaces.d.ts.map +1 -1
  401. package/dist/interfaces.js +8 -0
  402. package/dist/interfaces.js.map +1 -1
  403. package/dist/internal.d.ts +120 -0
  404. package/dist/internal.d.ts.map +1 -1
  405. package/dist/internal.js +138 -0
  406. package/dist/internal.js.map +1 -1
  407. package/dist/platform/interfaces.d.ts +187 -0
  408. package/dist/platform/interfaces.d.ts.map +1 -1
  409. package/dist/platform/interfaces.js +11 -0
  410. package/dist/platform/interfaces.js.map +1 -1
  411. package/dist/schemas/auth-config.schema.d.ts +62 -0
  412. package/dist/schemas/auth-config.schema.d.ts.map +1 -1
  413. package/dist/schemas/auth-config.schema.js +189 -9
  414. package/dist/schemas/auth-config.schema.js.map +1 -1
  415. package/dist/services/adaptive-mfa-decision.service.d.ts +144 -0
  416. package/dist/services/adaptive-mfa-decision.service.d.ts.map +1 -1
  417. package/dist/services/adaptive-mfa-decision.service.js +151 -5
  418. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  419. package/dist/services/auth-audit.service.d.ts +195 -0
  420. package/dist/services/auth-audit.service.d.ts.map +1 -1
  421. package/dist/services/auth-audit.service.js +228 -1
  422. package/dist/services/auth-audit.service.js.map +1 -1
  423. package/dist/services/auth-challenge-helper.service.d.ts +144 -1
  424. package/dist/services/auth-challenge-helper.service.d.ts.map +1 -1
  425. package/dist/services/auth-challenge-helper.service.js +295 -16
  426. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  427. package/dist/services/auth-flow-context-builder.service.d.ts +120 -1
  428. package/dist/services/auth-flow-context-builder.service.d.ts.map +1 -1
  429. package/dist/services/auth-flow-context-builder.service.js +184 -5
  430. package/dist/services/auth-flow-context-builder.service.js.map +1 -1
  431. package/dist/services/auth-flow-rules.d.ts +136 -0
  432. package/dist/services/auth-flow-rules.d.ts.map +1 -1
  433. package/dist/services/auth-flow-rules.js +137 -0
  434. package/dist/services/auth-flow-rules.js.map +1 -1
  435. package/dist/services/auth-flow-state-definitions.d.ts +40 -0
  436. package/dist/services/auth-flow-state-definitions.d.ts.map +1 -1
  437. package/dist/services/auth-flow-state-definitions.js +98 -0
  438. package/dist/services/auth-flow-state-definitions.js.map +1 -1
  439. package/dist/services/auth-flow-state-machine.service.d.ts +91 -0
  440. package/dist/services/auth-flow-state-machine.service.d.ts.map +1 -1
  441. package/dist/services/auth-flow-state-machine.service.js +102 -0
  442. package/dist/services/auth-flow-state-machine.service.js.map +1 -1
  443. package/dist/services/auth-flow-state-machine.types.d.ts +221 -0
  444. package/dist/services/auth-flow-state-machine.types.d.ts.map +1 -1
  445. package/dist/services/auth-flow-state-machine.types.js +47 -0
  446. package/dist/services/auth-flow-state-machine.types.js.map +1 -1
  447. package/dist/services/auth.service.d.ts +397 -1
  448. package/dist/services/auth.service.d.ts.map +1 -1
  449. package/dist/services/auth.service.js +943 -27
  450. package/dist/services/auth.service.js.map +1 -1
  451. package/dist/services/challenge.service.d.ts +255 -1
  452. package/dist/services/challenge.service.d.ts.map +1 -1
  453. package/dist/services/challenge.service.js +327 -3
  454. package/dist/services/challenge.service.js.map +1 -1
  455. package/dist/services/client-info.service.d.ts +143 -0
  456. package/dist/services/client-info.service.d.ts.map +1 -1
  457. package/dist/services/client-info.service.js +161 -0
  458. package/dist/services/client-info.service.js.map +1 -1
  459. package/dist/services/csrf.service.d.ts +15 -0
  460. package/dist/services/csrf.service.d.ts.map +1 -1
  461. package/dist/services/csrf.service.js +16 -0
  462. package/dist/services/csrf.service.js.map +1 -1
  463. package/dist/services/email-verification.service.d.ts +52 -0
  464. package/dist/services/email-verification.service.d.ts.map +1 -1
  465. package/dist/services/email-verification.service.js +152 -12
  466. package/dist/services/email-verification.service.js.map +1 -1
  467. package/dist/services/geo-location.service.d.ts +105 -0
  468. package/dist/services/geo-location.service.d.ts.map +1 -1
  469. package/dist/services/geo-location.service.js +188 -2
  470. package/dist/services/geo-location.service.js.map +1 -1
  471. package/dist/services/jwt.service.d.ts +257 -0
  472. package/dist/services/jwt.service.d.ts.map +1 -1
  473. package/dist/services/jwt.service.js +284 -1
  474. package/dist/services/jwt.service.js.map +1 -1
  475. package/dist/services/mfa-base.service.d.ts +179 -1
  476. package/dist/services/mfa-base.service.d.ts.map +1 -1
  477. package/dist/services/mfa-base.service.js +256 -2
  478. package/dist/services/mfa-base.service.js.map +1 -1
  479. package/dist/services/mfa.service.d.ts +304 -0
  480. package/dist/services/mfa.service.d.ts.map +1 -1
  481. package/dist/services/mfa.service.js +380 -0
  482. package/dist/services/mfa.service.js.map +1 -1
  483. package/dist/services/password-reset.service.d.ts +46 -0
  484. package/dist/services/password-reset.service.d.ts.map +1 -1
  485. package/dist/services/password-reset.service.js +79 -0
  486. package/dist/services/password-reset.service.js.map +1 -1
  487. package/dist/services/password.service.d.ts +139 -0
  488. package/dist/services/password.service.d.ts.map +1 -1
  489. package/dist/services/password.service.js +167 -9
  490. package/dist/services/password.service.js.map +1 -1
  491. package/dist/services/phone-verification.service.d.ts +75 -0
  492. package/dist/services/phone-verification.service.d.ts.map +1 -1
  493. package/dist/services/phone-verification.service.js +188 -6
  494. package/dist/services/phone-verification.service.js.map +1 -1
  495. package/dist/services/risk-detection.service.d.ts +198 -0
  496. package/dist/services/risk-detection.service.d.ts.map +1 -1
  497. package/dist/services/risk-detection.service.js +358 -11
  498. package/dist/services/risk-detection.service.js.map +1 -1
  499. package/dist/services/risk-scoring.service.d.ts +84 -0
  500. package/dist/services/risk-scoring.service.d.ts.map +1 -1
  501. package/dist/services/risk-scoring.service.js +87 -0
  502. package/dist/services/risk-scoring.service.js.map +1 -1
  503. package/dist/services/session.service.d.ts +204 -0
  504. package/dist/services/session.service.d.ts.map +1 -1
  505. package/dist/services/session.service.js +289 -4
  506. package/dist/services/session.service.js.map +1 -1
  507. package/dist/services/social-auth-base.service.d.ts +123 -1
  508. package/dist/services/social-auth-base.service.d.ts.map +1 -1
  509. package/dist/services/social-auth-base.service.js +155 -2
  510. package/dist/services/social-auth-base.service.js.map +1 -1
  511. package/dist/services/social-auth.service.d.ts +191 -0
  512. package/dist/services/social-auth.service.d.ts.map +1 -1
  513. package/dist/services/social-auth.service.js +215 -2
  514. package/dist/services/social-auth.service.js.map +1 -1
  515. package/dist/services/social-provider-registry.service.d.ts +86 -0
  516. package/dist/services/social-provider-registry.service.d.ts.map +1 -1
  517. package/dist/services/social-provider-registry.service.js +86 -0
  518. package/dist/services/social-provider-registry.service.js.map +1 -1
  519. package/dist/services/trusted-device.service.d.ts +105 -0
  520. package/dist/services/trusted-device.service.d.ts.map +1 -1
  521. package/dist/services/trusted-device.service.js +133 -4
  522. package/dist/services/trusted-device.service.js.map +1 -1
  523. package/dist/storage/account-lockout-storage.service.d.ts +35 -0
  524. package/dist/storage/account-lockout-storage.service.d.ts.map +1 -1
  525. package/dist/storage/account-lockout-storage.service.js +35 -0
  526. package/dist/storage/account-lockout-storage.service.js.map +1 -1
  527. package/dist/storage/memory-storage.adapter.d.ts +148 -0
  528. package/dist/storage/memory-storage.adapter.d.ts.map +1 -1
  529. package/dist/storage/memory-storage.adapter.js +201 -6
  530. package/dist/storage/memory-storage.adapter.js.map +1 -1
  531. package/dist/storage/rate-limit-storage.service.d.ts +3 -0
  532. package/dist/storage/rate-limit-storage.service.d.ts.map +1 -1
  533. package/dist/storage/rate-limit-storage.service.js +4 -0
  534. package/dist/storage/rate-limit-storage.service.js.map +1 -1
  535. package/dist/storage.d.ts +8 -0
  536. package/dist/storage.d.ts.map +1 -1
  537. package/dist/storage.js +8 -0
  538. package/dist/storage.js.map +1 -1
  539. package/dist/templates/html-template.engine.d.ts +110 -0
  540. package/dist/templates/html-template.engine.d.ts.map +1 -1
  541. package/dist/templates/html-template.engine.js +147 -0
  542. package/dist/templates/html-template.engine.js.map +1 -1
  543. package/dist/templates/index.d.ts +5 -0
  544. package/dist/templates/index.d.ts.map +1 -1
  545. package/dist/templates/index.js +5 -0
  546. package/dist/templates/index.js.map +1 -1
  547. package/dist/templates/sms-template.engine.d.ts +151 -0
  548. package/dist/templates/sms-template.engine.d.ts.map +1 -1
  549. package/dist/templates/sms-template.engine.js +171 -0
  550. package/dist/templates/sms-template.engine.js.map +1 -1
  551. package/dist/templates.d.ts +8 -0
  552. package/dist/templates.d.ts.map +1 -1
  553. package/dist/templates.js +8 -0
  554. package/dist/templates.js.map +1 -1
  555. package/dist/utils/common-passwords.d.ts +42 -0
  556. package/dist/utils/common-passwords.d.ts.map +1 -1
  557. package/dist/utils/common-passwords.js +88 -0
  558. package/dist/utils/common-passwords.js.map +1 -1
  559. package/dist/utils/context-storage.d.ts +129 -0
  560. package/dist/utils/context-storage.d.ts.map +1 -1
  561. package/dist/utils/context-storage.js +129 -0
  562. package/dist/utils/context-storage.js.map +1 -1
  563. package/dist/utils/cookie-names.util.d.ts +35 -0
  564. package/dist/utils/cookie-names.util.d.ts.map +1 -1
  565. package/dist/utils/cookie-names.util.js +37 -0
  566. package/dist/utils/cookie-names.util.js.map +1 -1
  567. package/dist/utils/cookies.util.d.ts +19 -0
  568. package/dist/utils/cookies.util.d.ts.map +1 -1
  569. package/dist/utils/cookies.util.js +30 -3
  570. package/dist/utils/cookies.util.js.map +1 -1
  571. package/dist/utils/index.d.ts +3 -0
  572. package/dist/utils/index.d.ts.map +1 -1
  573. package/dist/utils/index.js +4 -0
  574. package/dist/utils/index.js.map +1 -1
  575. package/dist/utils/ip-extractor.d.ts +88 -0
  576. package/dist/utils/ip-extractor.d.ts.map +1 -1
  577. package/dist/utils/ip-extractor.js +109 -16
  578. package/dist/utils/ip-extractor.js.map +1 -1
  579. package/dist/utils/nauth-logger.d.ts +70 -0
  580. package/dist/utils/nauth-logger.d.ts.map +1 -1
  581. package/dist/utils/nauth-logger.js +82 -4
  582. package/dist/utils/nauth-logger.js.map +1 -1
  583. package/dist/utils/pii-redactor.d.ts +70 -0
  584. package/dist/utils/pii-redactor.d.ts.map +1 -1
  585. package/dist/utils/pii-redactor.js +102 -0
  586. package/dist/utils/pii-redactor.js.map +1 -1
  587. package/dist/utils/setup/get-repositories.d.ts +16 -0
  588. package/dist/utils/setup/get-repositories.d.ts.map +1 -1
  589. package/dist/utils/setup/get-repositories.js +21 -0
  590. package/dist/utils/setup/get-repositories.js.map +1 -1
  591. package/dist/utils/setup/init-services.d.ts +40 -1
  592. package/dist/utils/setup/init-services.d.ts.map +1 -1
  593. package/dist/utils/setup/init-services.js +98 -0
  594. package/dist/utils/setup/init-services.js.map +1 -1
  595. package/dist/utils/setup/init-social.d.ts +27 -0
  596. package/dist/utils/setup/init-social.d.ts.map +1 -1
  597. package/dist/utils/setup/init-social.js +49 -0
  598. package/dist/utils/setup/init-social.js.map +1 -1
  599. package/dist/utils/setup/init-storage.d.ts +22 -0
  600. package/dist/utils/setup/init-storage.d.ts.map +1 -1
  601. package/dist/utils/setup/init-storage.js +36 -0
  602. package/dist/utils/setup/init-storage.js.map +1 -1
  603. package/dist/utils/setup/register-mfa.d.ts +22 -0
  604. package/dist/utils/setup/register-mfa.d.ts.map +1 -1
  605. package/dist/utils/setup/register-mfa.js +41 -0
  606. package/dist/utils/setup/register-mfa.js.map +1 -1
  607. package/dist/utils/setup/run-nauth-migrations.d.ts +7 -0
  608. package/dist/utils/setup/run-nauth-migrations.d.ts.map +1 -1
  609. package/dist/utils/setup/run-nauth-migrations.js +8 -0
  610. package/dist/utils/setup/run-nauth-migrations.js.map +1 -1
  611. package/dist/utils/token-delivery-policy.d.ts +17 -0
  612. package/dist/utils/token-delivery-policy.d.ts.map +1 -1
  613. package/dist/utils/token-delivery-policy.js +17 -0
  614. package/dist/utils/token-delivery-policy.js.map +1 -1
  615. package/dist/utils.d.ts +8 -0
  616. package/dist/utils.d.ts.map +1 -1
  617. package/dist/utils.js +8 -0
  618. package/dist/utils.js.map +1 -1
  619. package/dist/validators/template.validator.d.ts +80 -0
  620. package/dist/validators/template.validator.d.ts.map +1 -1
  621. package/dist/validators/template.validator.js +94 -0
  622. package/dist/validators/template.validator.js.map +1 -1
  623. package/package.json +7 -2
@@ -1,10 +1,80 @@
1
1
  import { ColumnOptions } from 'typeorm';
2
+ /**
3
+ * Database-Agnostic Column Decorators
4
+ *
5
+ * Provides column decorators that automatically adapt to different database types.
6
+ * Uses the database adapter to determine appropriate column types.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * @Entity()
11
+ * export class User {
12
+ * @UuidColumn()
13
+ * id!: string;
14
+ *
15
+ * @JsonColumn()
16
+ * metadata?: Record<string, any>;
17
+ *
18
+ * @ArrayColumn()
19
+ * tags?: string[];
20
+ * }
21
+ * ```
22
+ */
23
+ /**
24
+ * Create UUID column with database-appropriate type
25
+ *
26
+ * @param options - Additional column options
27
+ * @returns Column decorator
28
+ */
2
29
  export declare function UuidColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
30
+ /**
31
+ * Create JSON column with database-appropriate type
32
+ *
33
+ * @param options - Additional column options
34
+ * @returns Column decorator
35
+ */
3
36
  export declare function JsonColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
37
+ /**
38
+ * Create array column with database-appropriate type
39
+ *
40
+ * @param options - Additional column options
41
+ * @returns Column decorator
42
+ */
4
43
  export declare function ArrayColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
44
+ /**
45
+ * Create timestamp column with database-appropriate type
46
+ *
47
+ * @param options - Additional column options
48
+ * @returns Column decorator
49
+ */
5
50
  export declare function TimestampColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
51
+ /**
52
+ * Create boolean column with database-appropriate type
53
+ *
54
+ * @param options - Additional column options
55
+ * @returns Column decorator
56
+ */
6
57
  export declare function BooleanColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
58
+ /**
59
+ * Create integer column with database-appropriate type
60
+ *
61
+ * @param options - Additional column options
62
+ * @returns Column decorator
63
+ */
7
64
  export declare function IntegerColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
65
+ /**
66
+ * Create varchar column with database-appropriate type
67
+ *
68
+ * @param length - Maximum length
69
+ * @param options - Additional column options
70
+ * @returns Column decorator
71
+ */
8
72
  export declare function VarcharColumn(length: number, options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
73
+ /**
74
+ * Create text column with database-appropriate type
75
+ *
76
+ * @param options - Additional column options
77
+ * @returns Column decorator
78
+ */
9
79
  export declare function TextColumn(options?: Partial<ColumnOptions>): (target: Record<string, unknown>, propertyKey: string) => void;
10
80
  //# sourceMappingURL=database-columns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-columns.d.ts","sourceRoot":"","sources":["../../src/adapters/database-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,SAAS,CAAC;AA8BhD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAYtE;AAQD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAQD,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACzC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAQD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC7C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAQD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAQD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AASD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3D,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAStE;AAQD,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE"}
1
+ {"version":3,"file":"database-columns.d.ts","sourceRoot":"","sources":["../../src/adapters/database-columns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,aAAa,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAYtE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACzC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC7C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3C,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAC3D,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAStE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IACxC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,MAAM,UAQtE"}
@@ -9,33 +9,82 @@ exports.IntegerColumn = IntegerColumn;
9
9
  exports.VarcharColumn = VarcharColumn;
10
10
  exports.TextColumn = TextColumn;
11
11
  const typeorm_1 = require("typeorm");
12
+ /**
13
+ * Database-Agnostic Column Decorators
14
+ *
15
+ * Provides column decorators that automatically adapt to different database types.
16
+ * Uses the database adapter to determine appropriate column types.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * @Entity()
21
+ * export class User {
22
+ * @UuidColumn()
23
+ * id!: string;
24
+ *
25
+ * @JsonColumn()
26
+ * metadata?: Record<string, any>;
27
+ *
28
+ * @ArrayColumn()
29
+ * tags?: string[];
30
+ * }
31
+ * ```
32
+ */
33
+ /**
34
+ * Create UUID column with database-appropriate type
35
+ *
36
+ * @param options - Additional column options
37
+ * @returns Column decorator
38
+ */
12
39
  function UuidColumn(options) {
13
40
  return function (target, propertyKey) {
41
+ // This would be replaced with actual adapter-based logic
42
+ // For now, use PostgreSQL default
14
43
  const columnOptions = {
15
44
  type: 'uuid',
16
45
  ...options,
17
46
  };
47
+ // In a real implementation, this would use the injected adapter
48
+ // to determine the correct column type
18
49
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
19
50
  };
20
51
  }
52
+ /**
53
+ * Create JSON column with database-appropriate type
54
+ *
55
+ * @param options - Additional column options
56
+ * @returns Column decorator
57
+ */
21
58
  function JsonColumn(options) {
22
59
  return function (target, propertyKey) {
23
60
  const columnOptions = {
24
- type: 'jsonb',
61
+ type: 'jsonb', // PostgreSQL default
25
62
  ...options,
26
63
  };
27
64
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
28
65
  };
29
66
  }
67
+ /**
68
+ * Create array column with database-appropriate type
69
+ *
70
+ * @param options - Additional column options
71
+ * @returns Column decorator
72
+ */
30
73
  function ArrayColumn(options) {
31
74
  return function (target, propertyKey) {
32
75
  const columnOptions = {
33
- type: 'simple-array',
76
+ type: 'simple-array', // TypeORM handles this
34
77
  ...options,
35
78
  };
36
79
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
37
80
  };
38
81
  }
82
+ /**
83
+ * Create timestamp column with database-appropriate type
84
+ *
85
+ * @param options - Additional column options
86
+ * @returns Column decorator
87
+ */
39
88
  function TimestampColumn(options) {
40
89
  return function (target, propertyKey) {
41
90
  const columnOptions = {
@@ -45,6 +94,12 @@ function TimestampColumn(options) {
45
94
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
46
95
  };
47
96
  }
97
+ /**
98
+ * Create boolean column with database-appropriate type
99
+ *
100
+ * @param options - Additional column options
101
+ * @returns Column decorator
102
+ */
48
103
  function BooleanColumn(options) {
49
104
  return function (target, propertyKey) {
50
105
  const columnOptions = {
@@ -54,6 +109,12 @@ function BooleanColumn(options) {
54
109
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
55
110
  };
56
111
  }
112
+ /**
113
+ * Create integer column with database-appropriate type
114
+ *
115
+ * @param options - Additional column options
116
+ * @returns Column decorator
117
+ */
57
118
  function IntegerColumn(options) {
58
119
  return function (target, propertyKey) {
59
120
  const columnOptions = {
@@ -63,6 +124,13 @@ function IntegerColumn(options) {
63
124
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
64
125
  };
65
126
  }
127
+ /**
128
+ * Create varchar column with database-appropriate type
129
+ *
130
+ * @param length - Maximum length
131
+ * @param options - Additional column options
132
+ * @returns Column decorator
133
+ */
66
134
  function VarcharColumn(length, options) {
67
135
  return function (target, propertyKey) {
68
136
  const columnOptions = {
@@ -73,6 +141,12 @@ function VarcharColumn(length, options) {
73
141
  return (0, typeorm_1.Column)(columnOptions)(target, propertyKey);
74
142
  };
75
143
  }
144
+ /**
145
+ * Create text column with database-appropriate type
146
+ *
147
+ * @param options - Additional column options
148
+ * @returns Column decorator
149
+ */
76
150
  function TextColumn(options) {
77
151
  return function (target, propertyKey) {
78
152
  const columnOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"database-columns.js","sourceRoot":"","sources":["../../src/adapters/database-columns.ts"],"names":[],"mappings":";;AA8BA,gCAaC;AAQD,gCASC;AAQD,kCASC;AAQD,0CASC;AAQD,sCASC;AAQD,sCASC;AASD,sCAUC;AAQD,gCASC;AApKD,qCAAgD;AA8BhD,SAAgB,UAAU,CAAC,OAAgC;IACzD,OAAO,UAAU,MAA+B,EAAE,WAAmB;QAGnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,MAAM;YACZ,GAAG,OAAO;SACX,CAAC;QAIF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,UAAU,CAAC,OAAgC;IACzD,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,OAAO;YACb,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,WAAW,CAAC,OAAgC;IAC1D,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,cAAc;YACpB,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,eAAe,CAAC,OAAgC;IAC9D,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,WAAW;YACjB,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,aAAa,CAAC,OAAgC;IAC5D,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,SAAS;YACf,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,aAAa,CAAC,OAAgC;IAC5D,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AASD,SAAgB,aAAa,CAAC,MAAc,EAAE,OAAgC;IAC5E,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,SAAS;YACf,MAAM;YACN,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,UAAU,CAAC,OAAgC;IACzD,OAAO,UAAU,MAA+B,EAAE,WAAmB;QACnE,MAAM,aAAa,GAAkB;YACnC,IAAI,EAAE,MAAM;YACZ,GAAG,OAAO;SACX,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"database-columns.js","sourceRoot":"","sources":["../../src/adapters/database-columns.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,58 @@
1
+ /**
2
+ * Express Framework Adapter
3
+ *
4
+ * Adapts NAuth to work with Express.js (4.x and 5.x compatible).
5
+ *
6
+ * **Context Management:**
7
+ * - First middleware (clientInfo) initializes AsyncLocalStorage context
8
+ * - Context automatically propagates through Express middleware chain
9
+ * - Route handlers have automatic context access (no wrapper needed)
10
+ *
11
+ * **Express 5.x Compatibility:**
12
+ * - Uses req.hostname instead of deprecated req.host
13
+ * - Handles async middleware errors automatically
14
+ * - Compatible with new path matching behavior
15
+ */
1
16
  import { NAuthAdapter, NAuthRequestAttributes, NAuthMiddlewareHandler, NAuthResponseInterceptorHandler, NAuthRouteHandler, MiddlewareOptions } from '../platform/interfaces';
17
+ /**
18
+ * Express Adapter Implementation
19
+ *
20
+ * Provides NAuth integration for Express.js applications.
21
+ */
2
22
  export declare class ExpressAdapter implements NAuthAdapter {
3
23
  readonly name = "ExpressAdapter";
24
+ /**
25
+ * Register a middleware handler
26
+ *
27
+ * Wraps the generic NAuth handler into Express middleware format.
28
+ * Handles context initialization for the first middleware.
29
+ */
4
30
  registerMiddleware(name: string, handler: NAuthMiddlewareHandler, options?: MiddlewareOptions): ExpressMiddleware;
31
+ /**
32
+ * Execute handler with proper async flow control
33
+ */
5
34
  private executeHandler;
35
+ /**
36
+ * Register a response interceptor
37
+ *
38
+ * Uses res.json monkey-patching to intercept JSON responses.
39
+ * This is the standard pattern for Express response interception.
40
+ */
6
41
  registerResponseInterceptor(handler: NAuthResponseInterceptorHandler): ExpressMiddleware;
42
+ /**
43
+ * Wrap a route handler
44
+ *
45
+ * For Express, this provides:
46
+ * - NAuthRequest/NAuthResponse wrappers
47
+ * - Automatic error handling
48
+ * - Context is automatically available (no restoration needed)
49
+ */
7
50
  wrapRouteHandler<T>(handler: NAuthRouteHandler<T>): ExpressMiddleware;
8
51
  }
52
+ /**
53
+ * Express Request type (minimal interface for our needs)
54
+ * Compatible with Express 4.x and 5.x
55
+ */
9
56
  interface ExpressRequest {
10
57
  method: string;
11
58
  path: string;
@@ -21,8 +68,13 @@ interface ExpressRequest {
21
68
  remoteAddress?: string;
22
69
  };
23
70
  get?(name: string): string | undefined;
71
+ /** NAuth attribute storage - isolated from raw request */
24
72
  _nauthAttributes?: NAuthRequestAttributes;
25
73
  }
74
+ /**
75
+ * Express Response type (minimal interface for our needs)
76
+ * Compatible with Express 4.x and 5.x
77
+ */
26
78
  interface ExpressResponse {
27
79
  status(code: number): this;
28
80
  setHeader(name: string, value: string | string[]): void;
@@ -34,8 +86,22 @@ interface ExpressResponse {
34
86
  redirect(url: string): void;
35
87
  headersSent: boolean;
36
88
  }
89
+ /**
90
+ * Express NextFunction type
91
+ */
37
92
  type ExpressNextFunction = (err?: unknown) => void;
93
+ /**
94
+ * Express middleware signature
95
+ */
38
96
  type ExpressMiddleware = (req: ExpressRequest, res: ExpressResponse, next: ExpressNextFunction) => void | Promise<void>;
97
+ /**
98
+ * Express middleware type for use with app.use()
99
+ *
100
+ * Consumer apps should cast nauth.middleware.* to this type:
101
+ * ```typescript
102
+ * app.use(nauth.middleware.clientInfo as ExpressMiddlewareType);
103
+ * ```
104
+ */
39
105
  export type ExpressMiddlewareType = (req: unknown, res: unknown, next: (err?: unknown) => void) => void | Promise<void>;
40
106
  export {};
41
107
  //# sourceMappingURL=express.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"express.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/express.adapter.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,YAAY,EAIZ,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAYhC,qBAAa,cAAe,YAAW,YAAY;IACjD,SAAgB,IAAI,oBAAoB;IAQjC,kBAAkB,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,iBAAiB;YA+BN,cAAc;IA2BrB,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,iBAAiB;IA2CxF,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB;CAsB7E;AA0JD,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAGvC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C;AAMD,UAAU,eAAe;IACvB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7E,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACnE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB;AAKD,KAAK,mBAAmB,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAKnD,KAAK,iBAAiB,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAcxH,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"express.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/express.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,42 @@
1
1
  "use strict";
2
+ /**
3
+ * Express Framework Adapter
4
+ *
5
+ * Adapts NAuth to work with Express.js (4.x and 5.x compatible).
6
+ *
7
+ * **Context Management:**
8
+ * - First middleware (clientInfo) initializes AsyncLocalStorage context
9
+ * - Context automatically propagates through Express middleware chain
10
+ * - Route handlers have automatic context access (no wrapper needed)
11
+ *
12
+ * **Express 5.x Compatibility:**
13
+ * - Uses req.hostname instead of deprecated req.host
14
+ * - Handles async middleware errors automatically
15
+ * - Compatible with new path matching behavior
16
+ */
2
17
  Object.defineProperty(exports, "__esModule", { value: true });
3
18
  exports.ExpressAdapter = void 0;
4
19
  const context_storage_1 = require("../utils/context-storage");
20
+ // ============================================================================
21
+ // Express Adapter
22
+ // ============================================================================
23
+ /**
24
+ * Express Adapter Implementation
25
+ *
26
+ * Provides NAuth integration for Express.js applications.
27
+ */
5
28
  class ExpressAdapter {
6
29
  name = 'ExpressAdapter';
30
+ /**
31
+ * Register a middleware handler
32
+ *
33
+ * Wraps the generic NAuth handler into Express middleware format.
34
+ * Handles context initialization for the first middleware.
35
+ */
7
36
  registerMiddleware(name, handler, options) {
8
37
  const initializesContext = options?.initializesContext || name === 'clientInfo';
9
38
  return async (req, res, next) => {
39
+ // Ensure we have attribute storage
10
40
  if (!req._nauthAttributes) {
11
41
  req._nauthAttributes = {};
12
42
  }
@@ -14,11 +44,13 @@ class ExpressAdapter {
14
44
  const nauthRes = new ExpressResponseWrapper(res);
15
45
  try {
16
46
  if (initializesContext) {
47
+ // First middleware - initialize context
17
48
  await context_storage_1.ContextStorage.run(async () => {
18
49
  await this.executeHandler(handler, nauthReq, nauthRes, next);
19
50
  });
20
51
  }
21
52
  else {
53
+ // Subsequent middleware - context should exist from first middleware
22
54
  await this.executeHandler(handler, nauthReq, nauthRes, next);
23
55
  }
24
56
  }
@@ -27,6 +59,9 @@ class ExpressAdapter {
27
59
  }
28
60
  };
29
61
  }
62
+ /**
63
+ * Execute handler with proper async flow control
64
+ */
30
65
  async executeHandler(handler, req, res, next) {
31
66
  let nextCalled = false;
32
67
  const nextError = undefined;
@@ -34,35 +69,57 @@ class ExpressAdapter {
34
69
  nextCalled = true;
35
70
  };
36
71
  await handler(req, res, wrappedNext);
72
+ // Only call Express next if handler called next and no response sent
37
73
  if (nextCalled && !res.isSent()) {
38
74
  next(nextError);
39
75
  }
40
76
  }
77
+ /**
78
+ * Register a response interceptor
79
+ *
80
+ * Uses res.json monkey-patching to intercept JSON responses.
81
+ * This is the standard pattern for Express response interception.
82
+ */
41
83
  registerResponseInterceptor(handler) {
42
84
  return (req, res, next) => {
85
+ // Ensure we have attribute storage
43
86
  if (!req._nauthAttributes) {
44
87
  req._nauthAttributes = {};
45
88
  }
46
89
  const originalJson = res.json.bind(res);
90
+ // Monkey-patch res.json
47
91
  res.json = function (body) {
48
92
  const nauthReq = new ExpressRequestWrapper(req);
49
93
  const nauthRes = new ExpressResponseWrapper(res);
94
+ // Execute interceptor synchronously wrapped in promise handling
50
95
  Promise.resolve(handler(nauthReq, nauthRes, body))
51
96
  .then((modifiedBody) => {
97
+ // Restore original json to prevent recursion
52
98
  res.json = originalJson;
53
99
  return originalJson(modifiedBody);
54
100
  })
55
101
  .catch((_error) => {
102
+ // On error, send original body (error handled gracefully)
56
103
  res.json = originalJson;
57
104
  return originalJson(body);
58
105
  });
106
+ // Return res for chaining (Express 5 style)
59
107
  return res;
60
108
  };
61
109
  next();
62
110
  };
63
111
  }
112
+ /**
113
+ * Wrap a route handler
114
+ *
115
+ * For Express, this provides:
116
+ * - NAuthRequest/NAuthResponse wrappers
117
+ * - Automatic error handling
118
+ * - Context is automatically available (no restoration needed)
119
+ */
64
120
  wrapRouteHandler(handler) {
65
121
  return async (req, res, next) => {
122
+ // Ensure we have attribute storage
66
123
  if (!req._nauthAttributes) {
67
124
  req._nauthAttributes = {};
68
125
  }
@@ -70,6 +127,7 @@ class ExpressAdapter {
70
127
  const nauthRes = new ExpressResponseWrapper(res);
71
128
  try {
72
129
  const result = await handler(nauthReq, nauthRes);
130
+ // If handler returned a value and response not sent, send it as JSON
73
131
  if (result !== undefined && !res.headersSent) {
74
132
  res.json(result);
75
133
  }
@@ -81,6 +139,12 @@ class ExpressAdapter {
81
139
  }
82
140
  }
83
141
  exports.ExpressAdapter = ExpressAdapter;
142
+ // ============================================================================
143
+ // Express Request Wrapper
144
+ // ============================================================================
145
+ /**
146
+ * Wraps Express request into NAuthRequest interface
147
+ */
84
148
  class ExpressRequestWrapper {
85
149
  req;
86
150
  constructor(req) {
@@ -93,6 +157,7 @@ class ExpressRequestWrapper {
93
157
  return this.req.method.toUpperCase();
94
158
  }
95
159
  get path() {
160
+ // Express provides path without query string
96
161
  return this.req.path || this.req.url.split('?')[0];
97
162
  }
98
163
  get url() {
@@ -111,21 +176,32 @@ class ExpressRequestWrapper {
111
176
  return this.req.headers;
112
177
  }
113
178
  get cookies() {
179
+ // Express with cookie-parser middleware
114
180
  return this.req.cookies || {};
115
181
  }
116
182
  get ip() {
183
+ // Express 4.x and 5.x compatible
184
+ // Trust proxy must be configured for X-Forwarded-For
117
185
  return this.req.ip || this.req.socket?.remoteAddress || '0.0.0.0';
118
186
  }
119
187
  get attributes() {
188
+ // Return isolated storage, not raw request
120
189
  return this.req._nauthAttributes || {};
121
190
  }
122
191
  getHeader(name) {
192
+ // Express provides req.get() for case-insensitive header lookup
123
193
  const val = this.req.get ? this.req.get(name) : this.req.headers[name.toLowerCase()];
124
194
  if (Array.isArray(val))
125
195
  return val[0];
126
196
  return val;
127
197
  }
128
198
  }
199
+ // ============================================================================
200
+ // Express Response Wrapper
201
+ // ============================================================================
202
+ /**
203
+ * Wraps Express response into NAuthResponse interface
204
+ */
129
205
  class ExpressResponseWrapper {
130
206
  res;
131
207
  constructor(res) {
@@ -143,6 +219,7 @@ class ExpressResponseWrapper {
143
219
  return this;
144
220
  }
145
221
  setCookie(name, value, options) {
222
+ // Express provides res.cookie()
146
223
  if (typeof this.res.cookie === 'function') {
147
224
  this.res.cookie(name, value, this.convertCookieOptions(options));
148
225
  }
@@ -171,6 +248,9 @@ class ExpressResponseWrapper {
171
248
  isSent() {
172
249
  return this.res.headersSent;
173
250
  }
251
+ /**
252
+ * Convert NAuth cookie options to Express cookie options
253
+ */
174
254
  convertCookieOptions(options) {
175
255
  if (!options)
176
256
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"express.adapter.js","sourceRoot":"","sources":["../../src/adapters/express.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.adapter.js","sourceRoot":"","sources":["../../src/adapters/express.adapter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,52 @@
1
+ /**
2
+ * Fastify Framework Adapter
3
+ *
4
+ * Adapts NAuth to work with Fastify with proper AsyncLocalStorage support.
5
+ *
6
+ * **Context Management:**
7
+ * - First hook (clientInfo) initializes AsyncLocalStorage context
8
+ * - Context is stored on request object for subsequent hooks
9
+ * - Each hook restores context using ContextStorage.enterStore()
10
+ * - Route handlers MUST use wrapRouteHandler() for context access
11
+ *
12
+ * **Why Context Restoration is Needed:**
13
+ * Unlike Express where middleware runs in a continuous call stack,
14
+ * Fastify hooks run independently. Each hook invocation loses the
15
+ * AsyncLocalStorage context, so we store it on the request and restore it.
16
+ */
1
17
  import { NAuthAdapter, NAuthMiddlewareHandler, NAuthResponseInterceptorHandler, NAuthRouteHandler, MiddlewareOptions } from '../platform/interfaces';
18
+ /**
19
+ * Fastify Adapter Implementation
20
+ *
21
+ * Provides NAuth integration for Fastify applications.
22
+ */
2
23
  export declare class FastifyAdapter implements NAuthAdapter {
3
24
  readonly name = "FastifyAdapter";
25
+ /**
26
+ * Register a middleware handler as Fastify hook
27
+ *
28
+ * Handles context initialization for first hook and restoration for subsequent hooks.
29
+ */
4
30
  registerMiddleware(name: string, handler: NAuthMiddlewareHandler, options?: MiddlewareOptions): FastifyHook;
31
+ /**
32
+ * Execute handler with proper async flow control
33
+ */
5
34
  private executeHandler;
35
+ /**
36
+ * Register a response interceptor using Fastify onSend hook
37
+ *
38
+ * The onSend hook receives the serialized payload before sending.
39
+ */
6
40
  registerResponseInterceptor(handler: NAuthResponseInterceptorHandler): FastifyOnSendHook;
41
+ /**
42
+ * Wrap a route handler to ensure context is available
43
+ *
44
+ * For Fastify, this is REQUIRED for route handlers to access ContextStorage.
45
+ */
7
46
  wrapRouteHandler<T>(handler: NAuthRouteHandler<T>): FastifyRouteHandler;
47
+ /**
48
+ * Ensure attribute storage exists on request
49
+ */
8
50
  private ensureAttributes;
9
51
  }
10
52
  interface FastifyRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"fastify.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/fastify.adapter.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,YAAY,EAKZ,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAgBhC,qBAAa,cAAe,YAAW,YAAY;IACjD,SAAgB,IAAI,oBAAoB;IAOjC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,WAAW;YAqCpG,cAAc;IAiBrB,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,iBAAiB;IAoDxF,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB;IAwB9E,OAAO,CAAC,gBAAgB;CAKzB;AA6JD,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;CACZ;AAWD,UAAU,YAAY;IACpB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;CACf;AAOD,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACnF,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9G,KAAK,mBAAmB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"fastify.adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/fastify.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,YAAY,EAKZ,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAWhC;;;;GAIG;AACH,qBAAa,cAAe,YAAW,YAAY;IACjD,SAAgB,IAAI,oBAAoB;IAExC;;;;OAIG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,WAAW;IAkClH;;OAEG;YACW,cAAc;IAY5B;;;;OAIG;IACI,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,GAAG,iBAAiB;IA+C/F;;;;OAIG;IACI,gBAAgB,CAAC,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,mBAAmB;IAqB9E;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB;AA6JD,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACvD,EAAE,EAAE,MAAM,CAAC;CACZ;AAWD,UAAU,YAAY;IACpB,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,IAAI,EAAE,OAAO,CAAC;CACf;AAOD,KAAK,WAAW,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AACnF,KAAK,iBAAiB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9G,KAAK,mBAAmB,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC"}