@tinyrack/tinyauth-server 0.0.7

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 (782) hide show
  1. package/LICENSE +661 -0
  2. package/dist/emails/components/email-layout.d.ts +8 -0
  3. package/dist/emails/components/email-layout.d.ts.map +1 -0
  4. package/dist/emails/components/email-layout.js +6 -0
  5. package/dist/emails/components/email-layout.js.map +1 -0
  6. package/dist/emails/i18n/en.json +26 -0
  7. package/dist/emails/i18n/index.d.ts +3 -0
  8. package/dist/emails/i18n/index.d.ts.map +1 -0
  9. package/dist/emails/i18n/index.js +12 -0
  10. package/dist/emails/i18n/index.js.map +1 -0
  11. package/dist/emails/i18n/ja.json +26 -0
  12. package/dist/emails/i18n/ko.json +26 -0
  13. package/dist/emails/render.d.ts +12 -0
  14. package/dist/emails/render.d.ts.map +1 -0
  15. package/dist/emails/render.js +22 -0
  16. package/dist/emails/render.js.map +1 -0
  17. package/dist/emails/templates/password-reset.d.ts +10 -0
  18. package/dist/emails/templates/password-reset.d.ts.map +1 -0
  19. package/dist/emails/templates/password-reset.js +10 -0
  20. package/dist/emails/templates/password-reset.js.map +1 -0
  21. package/dist/emails/templates/verification.d.ts +10 -0
  22. package/dist/emails/templates/verification.d.ts.map +1 -0
  23. package/dist/emails/templates/verification.js +10 -0
  24. package/dist/emails/templates/verification.js.map +1 -0
  25. package/dist/entities/base.entity.d.ts +23 -0
  26. package/dist/entities/base.entity.d.ts.map +1 -0
  27. package/dist/entities/base.entity.js +17 -0
  28. package/dist/entities/base.entity.js.map +1 -0
  29. package/dist/entities/email-verification.entity.d.ts +90 -0
  30. package/dist/entities/email-verification.entity.d.ts.map +1 -0
  31. package/dist/entities/email-verification.entity.js +42 -0
  32. package/dist/entities/email-verification.entity.js.map +1 -0
  33. package/dist/entities/jwt-key.entity.d.ts +256 -0
  34. package/dist/entities/jwt-key.entity.d.ts.map +1 -0
  35. package/dist/entities/jwt-key.entity.js +125 -0
  36. package/dist/entities/jwt-key.entity.js.map +1 -0
  37. package/dist/entities/oauth-client.entity.d.ts +1541 -0
  38. package/dist/entities/oauth-client.entity.d.ts.map +1 -0
  39. package/dist/entities/oauth-client.entity.js +68 -0
  40. package/dist/entities/oauth-client.entity.js.map +1 -0
  41. package/dist/entities/oauth-code.entity.d.ts +1562 -0
  42. package/dist/entities/oauth-code.entity.d.ts.map +1 -0
  43. package/dist/entities/oauth-code.entity.js +79 -0
  44. package/dist/entities/oauth-code.entity.js.map +1 -0
  45. package/dist/entities/password-reset.entity.d.ts +90 -0
  46. package/dist/entities/password-reset.entity.d.ts.map +1 -0
  47. package/dist/entities/password-reset.entity.js +39 -0
  48. package/dist/entities/password-reset.entity.js.map +1 -0
  49. package/dist/entities/pending-oauth-registration.entity.d.ts +116 -0
  50. package/dist/entities/pending-oauth-registration.entity.d.ts.map +1 -0
  51. package/dist/entities/pending-oauth-registration.entity.js +67 -0
  52. package/dist/entities/pending-oauth-registration.entity.js.map +1 -0
  53. package/dist/entities/revoked-token.entity.d.ts +1559 -0
  54. package/dist/entities/revoked-token.entity.d.ts.map +1 -0
  55. package/dist/entities/revoked-token.entity.js +68 -0
  56. package/dist/entities/revoked-token.entity.js.map +1 -0
  57. package/dist/entities/terms-content.entity.d.ts +804 -0
  58. package/dist/entities/terms-content.entity.d.ts.map +1 -0
  59. package/dist/entities/terms-content.entity.js +46 -0
  60. package/dist/entities/terms-content.entity.js.map +1 -0
  61. package/dist/entities/terms.entity.d.ts +797 -0
  62. package/dist/entities/terms.entity.d.ts.map +1 -0
  63. package/dist/entities/terms.entity.js +42 -0
  64. package/dist/entities/terms.entity.js.map +1 -0
  65. package/dist/entities/user-consent.entity.d.ts +1555 -0
  66. package/dist/entities/user-consent.entity.d.ts.map +1 -0
  67. package/dist/entities/user-consent.entity.js +66 -0
  68. package/dist/entities/user-consent.entity.js.map +1 -0
  69. package/dist/entities/user-oauth.entity.d.ts +75 -0
  70. package/dist/entities/user-oauth.entity.d.ts.map +1 -0
  71. package/dist/entities/user-oauth.entity.js +45 -0
  72. package/dist/entities/user-oauth.entity.js.map +1 -0
  73. package/dist/entities/user-passkey.entity.d.ts +145 -0
  74. package/dist/entities/user-passkey.entity.d.ts.map +1 -0
  75. package/dist/entities/user-passkey.entity.js +64 -0
  76. package/dist/entities/user-passkey.entity.js.map +1 -0
  77. package/dist/entities/user-terms-consent.entity.d.ts +804 -0
  78. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -0
  79. package/dist/entities/user-terms-consent.entity.js +62 -0
  80. package/dist/entities/user-terms-consent.entity.js.map +1 -0
  81. package/dist/entities/user-totp-recovery-code.entity.d.ts +527 -0
  82. package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -0
  83. package/dist/entities/user-totp-recovery-code.entity.js +34 -0
  84. package/dist/entities/user-totp-recovery-code.entity.js.map +1 -0
  85. package/dist/entities/user-totp.entity.d.ts +527 -0
  86. package/dist/entities/user-totp.entity.d.ts.map +1 -0
  87. package/dist/entities/user-totp.entity.js +38 -0
  88. package/dist/entities/user-totp.entity.js.map +1 -0
  89. package/dist/entities/user.entity.d.ts +533 -0
  90. package/dist/entities/user.entity.d.ts.map +1 -0
  91. package/dist/entities/user.entity.js +70 -0
  92. package/dist/entities/user.entity.js.map +1 -0
  93. package/dist/entrypoints/app.d.ts +1300 -0
  94. package/dist/entrypoints/app.d.ts.map +1 -0
  95. package/dist/entrypoints/app.js +64 -0
  96. package/dist/entrypoints/app.js.map +1 -0
  97. package/dist/entrypoints/config/index.d.ts +2 -0
  98. package/dist/entrypoints/config/index.d.ts.map +1 -0
  99. package/dist/entrypoints/config/index.js +2 -0
  100. package/dist/entrypoints/config/index.js.map +1 -0
  101. package/dist/entrypoints/database/d1/cli.d.ts +3 -0
  102. package/dist/entrypoints/database/d1/cli.d.ts.map +1 -0
  103. package/dist/entrypoints/database/d1/cli.js +12 -0
  104. package/dist/entrypoints/database/d1/cli.js.map +1 -0
  105. package/dist/entrypoints/database/d1/compiled-functions.d.ts +666 -0
  106. package/dist/entrypoints/database/d1/compiled-functions.d.ts.map +1 -0
  107. package/dist/entrypoints/database/d1/compiled-functions.js +8365 -0
  108. package/dist/entrypoints/database/d1/compiled-functions.js.map +1 -0
  109. package/dist/entrypoints/database/d1/d1.d.ts +5 -0
  110. package/dist/entrypoints/database/d1/d1.d.ts.map +1 -0
  111. package/dist/entrypoints/database/d1/d1.js +39 -0
  112. package/dist/entrypoints/database/d1/d1.js.map +1 -0
  113. package/dist/entrypoints/database/postgres/cli.d.ts +3 -0
  114. package/dist/entrypoints/database/postgres/cli.d.ts.map +1 -0
  115. package/dist/entrypoints/database/postgres/cli.js +9 -0
  116. package/dist/entrypoints/database/postgres/cli.js.map +1 -0
  117. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +666 -0
  118. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -0
  119. package/dist/entrypoints/database/postgres/compiled-functions.js +8365 -0
  120. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -0
  121. package/dist/entrypoints/database/postgres/postgres.d.ts +9 -0
  122. package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -0
  123. package/dist/entrypoints/database/postgres/postgres.js +34 -0
  124. package/dist/entrypoints/database/postgres/postgres.js.map +1 -0
  125. package/dist/entrypoints/database/sqlite/cli.d.ts +3 -0
  126. package/dist/entrypoints/database/sqlite/cli.d.ts.map +1 -0
  127. package/dist/entrypoints/database/sqlite/cli.js +6 -0
  128. package/dist/entrypoints/database/sqlite/cli.js.map +1 -0
  129. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +666 -0
  130. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -0
  131. package/dist/entrypoints/database/sqlite/compiled-functions.js +8365 -0
  132. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -0
  133. package/dist/entrypoints/database/sqlite/sqlite.d.ts +6 -0
  134. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -0
  135. package/dist/entrypoints/database/sqlite/sqlite.js +32 -0
  136. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -0
  137. package/dist/entrypoints/frontend/cloudflare.d.ts +2 -0
  138. package/dist/entrypoints/frontend/cloudflare.d.ts.map +1 -0
  139. package/dist/entrypoints/frontend/cloudflare.js +2 -0
  140. package/dist/entrypoints/frontend/cloudflare.js.map +1 -0
  141. package/dist/entrypoints/frontend/index.d.ts +6 -0
  142. package/dist/entrypoints/frontend/index.d.ts.map +1 -0
  143. package/dist/entrypoints/frontend/index.js +3 -0
  144. package/dist/entrypoints/frontend/index.js.map +1 -0
  145. package/dist/entrypoints/frontend/proxy.d.ts +2 -0
  146. package/dist/entrypoints/frontend/proxy.d.ts.map +1 -0
  147. package/dist/entrypoints/frontend/proxy.js +2 -0
  148. package/dist/entrypoints/frontend/proxy.js.map +1 -0
  149. package/dist/entrypoints/frontend/static.d.ts +2 -0
  150. package/dist/entrypoints/frontend/static.d.ts.map +1 -0
  151. package/dist/entrypoints/frontend/static.js +2 -0
  152. package/dist/entrypoints/frontend/static.js.map +1 -0
  153. package/dist/entrypoints/identity-providers/apple.d.ts +14 -0
  154. package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -0
  155. package/dist/entrypoints/identity-providers/apple.js +23 -0
  156. package/dist/entrypoints/identity-providers/apple.js.map +1 -0
  157. package/dist/entrypoints/identity-providers/generic-oauth.d.ts +25 -0
  158. package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -0
  159. package/dist/entrypoints/identity-providers/generic-oauth.js +20 -0
  160. package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -0
  161. package/dist/entrypoints/identity-providers/github.d.ts +13 -0
  162. package/dist/entrypoints/identity-providers/github.d.ts.map +1 -0
  163. package/dist/entrypoints/identity-providers/github.js +24 -0
  164. package/dist/entrypoints/identity-providers/github.js.map +1 -0
  165. package/dist/entrypoints/identity-providers/google.d.ts +13 -0
  166. package/dist/entrypoints/identity-providers/google.d.ts.map +1 -0
  167. package/dist/entrypoints/identity-providers/google.js +24 -0
  168. package/dist/entrypoints/identity-providers/google.js.map +1 -0
  169. package/dist/entrypoints/index.d.ts +3 -0
  170. package/dist/entrypoints/index.d.ts.map +1 -0
  171. package/dist/entrypoints/index.js +3 -0
  172. package/dist/entrypoints/index.js.map +1 -0
  173. package/dist/entrypoints/mail/nodemailer.d.ts +11 -0
  174. package/dist/entrypoints/mail/nodemailer.d.ts.map +1 -0
  175. package/dist/entrypoints/mail/nodemailer.js +30 -0
  176. package/dist/entrypoints/mail/nodemailer.js.map +1 -0
  177. package/dist/entrypoints/scheduler/croner.d.ts +6 -0
  178. package/dist/entrypoints/scheduler/croner.d.ts.map +1 -0
  179. package/dist/entrypoints/scheduler/croner.js +22 -0
  180. package/dist/entrypoints/scheduler/croner.js.map +1 -0
  181. package/dist/entrypoints/services.d.ts +3 -0
  182. package/dist/entrypoints/services.d.ts.map +1 -0
  183. package/dist/entrypoints/services.js +2 -0
  184. package/dist/entrypoints/services.js.map +1 -0
  185. package/dist/lib/app-env.d.ts +17 -0
  186. package/dist/lib/app-env.d.ts.map +1 -0
  187. package/dist/lib/app-env.js +2 -0
  188. package/dist/lib/app-env.js.map +1 -0
  189. package/dist/lib/base64url.d.ts +33 -0
  190. package/dist/lib/base64url.d.ts.map +1 -0
  191. package/dist/lib/base64url.js +93 -0
  192. package/dist/lib/base64url.js.map +1 -0
  193. package/dist/lib/config/account-deletion.d.ts +11 -0
  194. package/dist/lib/config/account-deletion.d.ts.map +1 -0
  195. package/dist/lib/config/account-deletion.js +16 -0
  196. package/dist/lib/config/account-deletion.js.map +1 -0
  197. package/dist/lib/config/auth.d.ts +109 -0
  198. package/dist/lib/config/auth.d.ts.map +1 -0
  199. package/dist/lib/config/auth.js +155 -0
  200. package/dist/lib/config/auth.js.map +1 -0
  201. package/dist/lib/config/branding.d.ts +134 -0
  202. package/dist/lib/config/branding.d.ts.map +1 -0
  203. package/dist/lib/config/branding.js +83 -0
  204. package/dist/lib/config/branding.js.map +1 -0
  205. package/dist/lib/config/cleanup.d.ts +59 -0
  206. package/dist/lib/config/cleanup.d.ts.map +1 -0
  207. package/dist/lib/config/cleanup.js +119 -0
  208. package/dist/lib/config/cleanup.js.map +1 -0
  209. package/dist/lib/config/client.d.ts +30 -0
  210. package/dist/lib/config/client.d.ts.map +1 -0
  211. package/dist/lib/config/client.js +43 -0
  212. package/dist/lib/config/client.js.map +1 -0
  213. package/dist/lib/config/database.d.ts +8 -0
  214. package/dist/lib/config/database.d.ts.map +1 -0
  215. package/dist/lib/config/database.js +8 -0
  216. package/dist/lib/config/database.js.map +1 -0
  217. package/dist/lib/config/email.d.ts +17 -0
  218. package/dist/lib/config/email.d.ts.map +1 -0
  219. package/dist/lib/config/email.js +7 -0
  220. package/dist/lib/config/email.js.map +1 -0
  221. package/dist/lib/config/frontend.d.ts +12 -0
  222. package/dist/lib/config/frontend.d.ts.map +1 -0
  223. package/dist/lib/config/frontend.js +7 -0
  224. package/dist/lib/config/frontend.js.map +1 -0
  225. package/dist/lib/config/i18n.d.ts +31 -0
  226. package/dist/lib/config/i18n.d.ts.map +1 -0
  227. package/dist/lib/config/i18n.js +23 -0
  228. package/dist/lib/config/i18n.js.map +1 -0
  229. package/dist/lib/config/identity-providers.d.ts +66 -0
  230. package/dist/lib/config/identity-providers.d.ts.map +1 -0
  231. package/dist/lib/config/identity-providers.js +71 -0
  232. package/dist/lib/config/identity-providers.js.map +1 -0
  233. package/dist/lib/config/index.d.ts +41 -0
  234. package/dist/lib/config/index.d.ts.map +1 -0
  235. package/dist/lib/config/index.js +21 -0
  236. package/dist/lib/config/index.js.map +1 -0
  237. package/dist/lib/config/logging.d.ts +52 -0
  238. package/dist/lib/config/logging.d.ts.map +1 -0
  239. package/dist/lib/config/logging.js +41 -0
  240. package/dist/lib/config/logging.js.map +1 -0
  241. package/dist/lib/config/openapi.d.ts +15 -0
  242. package/dist/lib/config/openapi.d.ts.map +1 -0
  243. package/dist/lib/config/openapi.js +28 -0
  244. package/dist/lib/config/openapi.js.map +1 -0
  245. package/dist/lib/config/registration.d.ts +15 -0
  246. package/dist/lib/config/registration.d.ts.map +1 -0
  247. package/dist/lib/config/registration.js +24 -0
  248. package/dist/lib/config/registration.js.map +1 -0
  249. package/dist/lib/config/resolved.d.ts +274 -0
  250. package/dist/lib/config/resolved.d.ts.map +1 -0
  251. package/dist/lib/config/resolved.js +45 -0
  252. package/dist/lib/config/resolved.js.map +1 -0
  253. package/dist/lib/config/scheduler.d.ts +13 -0
  254. package/dist/lib/config/scheduler.d.ts.map +1 -0
  255. package/dist/lib/config/scheduler.js +14 -0
  256. package/dist/lib/config/scheduler.js.map +1 -0
  257. package/dist/lib/config/security.d.ts +11 -0
  258. package/dist/lib/config/security.d.ts.map +1 -0
  259. package/dist/lib/config/security.js +42 -0
  260. package/dist/lib/config/security.js.map +1 -0
  261. package/dist/lib/config/server.d.ts +13 -0
  262. package/dist/lib/config/server.d.ts.map +1 -0
  263. package/dist/lib/config/server.js +45 -0
  264. package/dist/lib/config/server.js.map +1 -0
  265. package/dist/lib/config/terms.d.ts +47 -0
  266. package/dist/lib/config/terms.d.ts.map +1 -0
  267. package/dist/lib/config/terms.js +71 -0
  268. package/dist/lib/config/terms.js.map +1 -0
  269. package/dist/lib/config/tokens.d.ts +32 -0
  270. package/dist/lib/config/tokens.d.ts.map +1 -0
  271. package/dist/lib/config/tokens.js +47 -0
  272. package/dist/lib/config/tokens.js.map +1 -0
  273. package/dist/lib/config/user.d.ts +22 -0
  274. package/dist/lib/config/user.d.ts.map +1 -0
  275. package/dist/lib/config/user.js +18 -0
  276. package/dist/lib/config/user.js.map +1 -0
  277. package/dist/lib/crypto.d.ts +106 -0
  278. package/dist/lib/crypto.d.ts.map +1 -0
  279. package/dist/lib/crypto.js +253 -0
  280. package/dist/lib/crypto.js.map +1 -0
  281. package/dist/lib/database/compiled-functions.d.ts +16 -0
  282. package/dist/lib/database/compiled-functions.d.ts.map +1 -0
  283. package/dist/lib/database/compiled-functions.js +66 -0
  284. package/dist/lib/database/compiled-functions.js.map +1 -0
  285. package/dist/lib/database/entities.d.ts +10 -0
  286. package/dist/lib/database/entities.d.ts.map +1 -0
  287. package/dist/lib/database/entities.js +43 -0
  288. package/dist/lib/database/entities.js.map +1 -0
  289. package/dist/lib/duration.d.ts +44 -0
  290. package/dist/lib/duration.d.ts.map +1 -0
  291. package/dist/lib/duration.js +103 -0
  292. package/dist/lib/duration.js.map +1 -0
  293. package/dist/lib/email-pattern.d.ts +16 -0
  294. package/dist/lib/email-pattern.d.ts.map +1 -0
  295. package/dist/lib/email-pattern.js +41 -0
  296. package/dist/lib/email-pattern.js.map +1 -0
  297. package/dist/lib/frontend/cloudflare.d.ts +12 -0
  298. package/dist/lib/frontend/cloudflare.d.ts.map +1 -0
  299. package/dist/lib/frontend/cloudflare.js +34 -0
  300. package/dist/lib/frontend/cloudflare.js.map +1 -0
  301. package/dist/lib/frontend/proxy.d.ts +24 -0
  302. package/dist/lib/frontend/proxy.d.ts.map +1 -0
  303. package/dist/lib/frontend/proxy.js +38 -0
  304. package/dist/lib/frontend/proxy.js.map +1 -0
  305. package/dist/lib/frontend/static.d.ts +21 -0
  306. package/dist/lib/frontend/static.d.ts.map +1 -0
  307. package/dist/lib/frontend/static.js +108 -0
  308. package/dist/lib/frontend/static.js.map +1 -0
  309. package/dist/lib/interpolate-html.d.ts +34 -0
  310. package/dist/lib/interpolate-html.d.ts.map +1 -0
  311. package/dist/lib/interpolate-html.js +63 -0
  312. package/dist/lib/interpolate-html.js.map +1 -0
  313. package/dist/lib/ip-utils.d.ts +61 -0
  314. package/dist/lib/ip-utils.d.ts.map +1 -0
  315. package/dist/lib/ip-utils.js +213 -0
  316. package/dist/lib/ip-utils.js.map +1 -0
  317. package/dist/lib/locale.d.ts +57 -0
  318. package/dist/lib/locale.d.ts.map +1 -0
  319. package/dist/lib/locale.js +25 -0
  320. package/dist/lib/locale.js.map +1 -0
  321. package/dist/lib/logger.d.ts +14 -0
  322. package/dist/lib/logger.d.ts.map +1 -0
  323. package/dist/lib/logger.js +41 -0
  324. package/dist/lib/logger.js.map +1 -0
  325. package/dist/lib/openapi.d.ts +35 -0
  326. package/dist/lib/openapi.d.ts.map +1 -0
  327. package/dist/lib/openapi.js +33 -0
  328. package/dist/lib/openapi.js.map +1 -0
  329. package/dist/lib/password-policy.d.ts +39 -0
  330. package/dist/lib/password-policy.d.ts.map +1 -0
  331. package/dist/lib/password-policy.js +51 -0
  332. package/dist/lib/password-policy.js.map +1 -0
  333. package/dist/lib/pkce.d.ts +26 -0
  334. package/dist/lib/pkce.d.ts.map +1 -0
  335. package/dist/lib/pkce.js +52 -0
  336. package/dist/lib/pkce.js.map +1 -0
  337. package/dist/lib/scopes.d.ts +10 -0
  338. package/dist/lib/scopes.d.ts.map +1 -0
  339. package/dist/lib/scopes.js +35 -0
  340. package/dist/lib/scopes.js.map +1 -0
  341. package/dist/lib/swagger-tags.d.ts +15 -0
  342. package/dist/lib/swagger-tags.d.ts.map +1 -0
  343. package/dist/lib/swagger-tags.js +15 -0
  344. package/dist/lib/swagger-tags.js.map +1 -0
  345. package/dist/middleware/auth.d.ts +64 -0
  346. package/dist/middleware/auth.d.ts.map +1 -0
  347. package/dist/middleware/auth.js +123 -0
  348. package/dist/middleware/auth.js.map +1 -0
  349. package/dist/middleware/logger.d.ts +18 -0
  350. package/dist/middleware/logger.d.ts.map +1 -0
  351. package/dist/middleware/logger.js +38 -0
  352. package/dist/middleware/logger.js.map +1 -0
  353. package/dist/middleware/mikro-orm.d.ts +3 -0
  354. package/dist/middleware/mikro-orm.d.ts.map +1 -0
  355. package/dist/middleware/mikro-orm.js +11 -0
  356. package/dist/middleware/mikro-orm.js.map +1 -0
  357. package/dist/middleware/services.d.ts +8 -0
  358. package/dist/middleware/services.d.ts.map +1 -0
  359. package/dist/middleware/services.js +8 -0
  360. package/dist/middleware/services.js.map +1 -0
  361. package/dist/middleware/session.d.ts +63 -0
  362. package/dist/middleware/session.d.ts.map +1 -0
  363. package/dist/middleware/session.js +89 -0
  364. package/dist/middleware/session.js.map +1 -0
  365. package/dist/middleware/trusted-proxy-guard.d.ts +7 -0
  366. package/dist/middleware/trusted-proxy-guard.d.ts.map +1 -0
  367. package/dist/middleware/trusted-proxy-guard.js +34 -0
  368. package/dist/middleware/trusted-proxy-guard.js.map +1 -0
  369. package/dist/repositories/email-verification.repository.d.ts +18 -0
  370. package/dist/repositories/email-verification.repository.d.ts.map +1 -0
  371. package/dist/repositories/email-verification.repository.js +47 -0
  372. package/dist/repositories/email-verification.repository.js.map +1 -0
  373. package/dist/repositories/jwt-key.repository.d.ts +49 -0
  374. package/dist/repositories/jwt-key.repository.d.ts.map +1 -0
  375. package/dist/repositories/jwt-key.repository.js +72 -0
  376. package/dist/repositories/jwt-key.repository.js.map +1 -0
  377. package/dist/repositories/oauth-client.repository.d.ts +5 -0
  378. package/dist/repositories/oauth-client.repository.d.ts.map +1 -0
  379. package/dist/repositories/oauth-client.repository.js +4 -0
  380. package/dist/repositories/oauth-client.repository.js.map +1 -0
  381. package/dist/repositories/oauth-code.repository.d.ts +19 -0
  382. package/dist/repositories/oauth-code.repository.d.ts.map +1 -0
  383. package/dist/repositories/oauth-code.repository.js +32 -0
  384. package/dist/repositories/oauth-code.repository.js.map +1 -0
  385. package/dist/repositories/password-reset.repository.d.ts +19 -0
  386. package/dist/repositories/password-reset.repository.d.ts.map +1 -0
  387. package/dist/repositories/password-reset.repository.js +53 -0
  388. package/dist/repositories/password-reset.repository.js.map +1 -0
  389. package/dist/repositories/pending-oauth-registration.repository.d.ts +38 -0
  390. package/dist/repositories/pending-oauth-registration.repository.d.ts.map +1 -0
  391. package/dist/repositories/pending-oauth-registration.repository.js +50 -0
  392. package/dist/repositories/pending-oauth-registration.repository.js.map +1 -0
  393. package/dist/repositories/revoked-token.repository.d.ts +32 -0
  394. package/dist/repositories/revoked-token.repository.d.ts.map +1 -0
  395. package/dist/repositories/revoked-token.repository.js +43 -0
  396. package/dist/repositories/revoked-token.repository.js.map +1 -0
  397. package/dist/repositories/terms-content.repository.d.ts +5 -0
  398. package/dist/repositories/terms-content.repository.d.ts.map +1 -0
  399. package/dist/repositories/terms-content.repository.js +4 -0
  400. package/dist/repositories/terms-content.repository.js.map +1 -0
  401. package/dist/repositories/terms.repository.d.ts +9 -0
  402. package/dist/repositories/terms.repository.d.ts.map +1 -0
  403. package/dist/repositories/terms.repository.js +12 -0
  404. package/dist/repositories/terms.repository.js.map +1 -0
  405. package/dist/repositories/user-consent.repository.d.ts +22 -0
  406. package/dist/repositories/user-consent.repository.d.ts.map +1 -0
  407. package/dist/repositories/user-consent.repository.js +51 -0
  408. package/dist/repositories/user-consent.repository.js.map +1 -0
  409. package/dist/repositories/user-oauth.repository.d.ts +68 -0
  410. package/dist/repositories/user-oauth.repository.d.ts.map +1 -0
  411. package/dist/repositories/user-oauth.repository.js +94 -0
  412. package/dist/repositories/user-oauth.repository.js.map +1 -0
  413. package/dist/repositories/user-passkey.repository.d.ts +187 -0
  414. package/dist/repositories/user-passkey.repository.d.ts.map +1 -0
  415. package/dist/repositories/user-passkey.repository.js +61 -0
  416. package/dist/repositories/user-passkey.repository.js.map +1 -0
  417. package/dist/repositories/user-terms-consent.repository.d.ts +38 -0
  418. package/dist/repositories/user-terms-consent.repository.d.ts.map +1 -0
  419. package/dist/repositories/user-terms-consent.repository.js +71 -0
  420. package/dist/repositories/user-terms-consent.repository.js.map +1 -0
  421. package/dist/repositories/user-totp-recovery-code.repository.d.ts +376 -0
  422. package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -0
  423. package/dist/repositories/user-totp-recovery-code.repository.js +41 -0
  424. package/dist/repositories/user-totp-recovery-code.repository.js.map +1 -0
  425. package/dist/repositories/user-totp.repository.d.ts +564 -0
  426. package/dist/repositories/user-totp.repository.d.ts.map +1 -0
  427. package/dist/repositories/user-totp.repository.js +56 -0
  428. package/dist/repositories/user-totp.repository.js.map +1 -0
  429. package/dist/repositories/user.repository.d.ts +32 -0
  430. package/dist/repositories/user.repository.d.ts.map +1 -0
  431. package/dist/repositories/user.repository.js +70 -0
  432. package/dist/repositories/user.repository.js.map +1 -0
  433. package/dist/routes/.well-known/index.d.ts +12 -0
  434. package/dist/routes/.well-known/index.d.ts.map +1 -0
  435. package/dist/routes/.well-known/index.js +4 -0
  436. package/dist/routes/.well-known/index.js.map +1 -0
  437. package/dist/routes/.well-known/openid-configuration/get.d.ts +19 -0
  438. package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -0
  439. package/dist/routes/.well-known/openid-configuration/get.js +12 -0
  440. package/dist/routes/.well-known/openid-configuration/get.js.map +1 -0
  441. package/dist/routes/api/auth/email/resend/post.d.ts +22 -0
  442. package/dist/routes/api/auth/email/resend/post.d.ts.map +1 -0
  443. package/dist/routes/api/auth/email/resend/post.js +64 -0
  444. package/dist/routes/api/auth/email/resend/post.js.map +1 -0
  445. package/dist/routes/api/auth/email/verify/post.d.ts +29 -0
  446. package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -0
  447. package/dist/routes/api/auth/email/verify/post.js +55 -0
  448. package/dist/routes/api/auth/email/verify/post.js.map +1 -0
  449. package/dist/routes/api/auth/index.d.ts +275 -0
  450. package/dist/routes/api/auth/index.d.ts.map +1 -0
  451. package/dist/routes/api/auth/index.js +25 -0
  452. package/dist/routes/api/auth/index.js.map +1 -0
  453. package/dist/routes/api/auth/login/post.d.ts +30 -0
  454. package/dist/routes/api/auth/login/post.d.ts.map +1 -0
  455. package/dist/routes/api/auth/login/post.js +76 -0
  456. package/dist/routes/api/auth/login/post.js.map +1 -0
  457. package/dist/routes/api/auth/logout/post.d.ts +14 -0
  458. package/dist/routes/api/auth/logout/post.d.ts.map +1 -0
  459. package/dist/routes/api/auth/logout/post.js +21 -0
  460. package/dist/routes/api/auth/logout/post.js.map +1 -0
  461. package/dist/routes/api/auth/passkey/options/post.d.ts +31 -0
  462. package/dist/routes/api/auth/passkey/options/post.d.ts.map +1 -0
  463. package/dist/routes/api/auth/passkey/options/post.js +43 -0
  464. package/dist/routes/api/auth/passkey/options/post.js.map +1 -0
  465. package/dist/routes/api/auth/passkey/verify/post.d.ts +41 -0
  466. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -0
  467. package/dist/routes/api/auth/passkey/verify/post.js +75 -0
  468. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -0
  469. package/dist/routes/api/auth/password/forgot/post.d.ts +22 -0
  470. package/dist/routes/api/auth/password/forgot/post.d.ts.map +1 -0
  471. package/dist/routes/api/auth/password/forgot/post.js +72 -0
  472. package/dist/routes/api/auth/password/forgot/post.js.map +1 -0
  473. package/dist/routes/api/auth/password/reset/post.d.ts +19 -0
  474. package/dist/routes/api/auth/password/reset/post.d.ts.map +1 -0
  475. package/dist/routes/api/auth/password/reset/post.js +62 -0
  476. package/dist/routes/api/auth/password/reset/post.js.map +1 -0
  477. package/dist/routes/api/auth/register/post.d.ts +39 -0
  478. package/dist/routes/api/auth/register/post.d.ts.map +1 -0
  479. package/dist/routes/api/auth/register/post.js +95 -0
  480. package/dist/routes/api/auth/register/post.js.map +1 -0
  481. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts +36 -0
  482. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -0
  483. package/dist/routes/api/auth/totp/recovery/verify/post.js +68 -0
  484. package/dist/routes/api/auth/totp/recovery/verify/post.js.map +1 -0
  485. package/dist/routes/api/auth/totp/verify/post.d.ts +29 -0
  486. package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -0
  487. package/dist/routes/api/auth/totp/verify/post.js +59 -0
  488. package/dist/routes/api/auth/totp/verify/post.js.map +1 -0
  489. package/dist/routes/api/config/get.d.ts +76 -0
  490. package/dist/routes/api/config/get.d.ts.map +1 -0
  491. package/dist/routes/api/config/get.js +70 -0
  492. package/dist/routes/api/config/get.js.map +1 -0
  493. package/dist/routes/api/config/index.d.ts +76 -0
  494. package/dist/routes/api/config/index.d.ts.map +1 -0
  495. package/dist/routes/api/config/index.js +4 -0
  496. package/dist/routes/api/config/index.js.map +1 -0
  497. package/dist/routes/api/consent/get.d.ts +37 -0
  498. package/dist/routes/api/consent/get.d.ts.map +1 -0
  499. package/dist/routes/api/consent/get.js +73 -0
  500. package/dist/routes/api/consent/get.js.map +1 -0
  501. package/dist/routes/api/consent/index.d.ts +54 -0
  502. package/dist/routes/api/consent/index.d.ts.map +1 -0
  503. package/dist/routes/api/consent/index.js +7 -0
  504. package/dist/routes/api/consent/index.js.map +1 -0
  505. package/dist/routes/api/consent/post.d.ts +33 -0
  506. package/dist/routes/api/consent/post.d.ts.map +1 -0
  507. package/dist/routes/api/consent/post.js +105 -0
  508. package/dist/routes/api/consent/post.js.map +1 -0
  509. package/dist/routes/api/docs/get.d.ts +17 -0
  510. package/dist/routes/api/docs/get.d.ts.map +1 -0
  511. package/dist/routes/api/docs/get.js +19 -0
  512. package/dist/routes/api/docs/get.js.map +1 -0
  513. package/dist/routes/api/docs/index.d.ts +12 -0
  514. package/dist/routes/api/docs/index.d.ts.map +1 -0
  515. package/dist/routes/api/docs/index.js +4 -0
  516. package/dist/routes/api/docs/index.js.map +1 -0
  517. package/dist/routes/api/health/get.d.ts +36 -0
  518. package/dist/routes/api/health/get.d.ts.map +1 -0
  519. package/dist/routes/api/health/get.js +64 -0
  520. package/dist/routes/api/health/get.js.map +1 -0
  521. package/dist/routes/api/health/index.d.ts +66 -0
  522. package/dist/routes/api/health/index.d.ts.map +1 -0
  523. package/dist/routes/api/health/index.js +9 -0
  524. package/dist/routes/api/health/index.js.map +1 -0
  525. package/dist/routes/api/health/live/get.d.ts +20 -0
  526. package/dist/routes/api/health/live/get.d.ts.map +1 -0
  527. package/dist/routes/api/health/live/get.js +28 -0
  528. package/dist/routes/api/health/live/get.js.map +1 -0
  529. package/dist/routes/api/health/ready/get.d.ts +35 -0
  530. package/dist/routes/api/health/ready/get.d.ts.map +1 -0
  531. package/dist/routes/api/health/ready/get.js +60 -0
  532. package/dist/routes/api/health/ready/get.js.map +1 -0
  533. package/dist/routes/api/index.d.ts +927 -0
  534. package/dist/routes/api/index.d.ts.map +1 -0
  535. package/dist/routes/api/index.js +19 -0
  536. package/dist/routes/api/index.js.map +1 -0
  537. package/dist/routes/api/oauth/_provider/authorize/get.d.ts +21 -0
  538. package/dist/routes/api/oauth/_provider/authorize/get.d.ts.map +1 -0
  539. package/dist/routes/api/oauth/_provider/authorize/get.js +60 -0
  540. package/dist/routes/api/oauth/_provider/authorize/get.js.map +1 -0
  541. package/dist/routes/api/oauth/_provider/callback/get.d.ts +23 -0
  542. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -0
  543. package/dist/routes/api/oauth/_provider/callback/get.js +137 -0
  544. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -0
  545. package/dist/routes/api/oauth/_provider/callback/post.d.ts +23 -0
  546. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -0
  547. package/dist/routes/api/oauth/_provider/callback/post.js +140 -0
  548. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -0
  549. package/dist/routes/api/oauth/_provider/delete.d.ts +18 -0
  550. package/dist/routes/api/oauth/_provider/delete.d.ts.map +1 -0
  551. package/dist/routes/api/oauth/_provider/delete.js +62 -0
  552. package/dist/routes/api/oauth/_provider/delete.js.map +1 -0
  553. package/dist/routes/api/oauth/index.d.ts +76 -0
  554. package/dist/routes/api/oauth/index.d.ts.map +1 -0
  555. package/dist/routes/api/oauth/index.js +11 -0
  556. package/dist/routes/api/oauth/index.js.map +1 -0
  557. package/dist/routes/api/terms/consent/post.d.ts +29 -0
  558. package/dist/routes/api/terms/consent/post.d.ts.map +1 -0
  559. package/dist/routes/api/terms/consent/post.js +111 -0
  560. package/dist/routes/api/terms/consent/post.js.map +1 -0
  561. package/dist/routes/api/terms/get.d.ts +40 -0
  562. package/dist/routes/api/terms/get.d.ts.map +1 -0
  563. package/dist/routes/api/terms/get.js +53 -0
  564. package/dist/routes/api/terms/get.js.map +1 -0
  565. package/dist/routes/api/terms/index.d.ts +55 -0
  566. package/dist/routes/api/terms/index.d.ts.map +1 -0
  567. package/dist/routes/api/terms/index.js +7 -0
  568. package/dist/routes/api/terms/index.js.map +1 -0
  569. package/dist/routes/api/user/delete.d.ts +21 -0
  570. package/dist/routes/api/user/delete.d.ts.map +1 -0
  571. package/dist/routes/api/user/delete.js +89 -0
  572. package/dist/routes/api/user/delete.js.map +1 -0
  573. package/dist/routes/api/user/index.d.ts +334 -0
  574. package/dist/routes/api/user/index.d.ts.map +1 -0
  575. package/dist/routes/api/user/index.js +35 -0
  576. package/dist/routes/api/user/index.js.map +1 -0
  577. package/dist/routes/api/user/oauth-accounts/get.d.ts +23 -0
  578. package/dist/routes/api/user/oauth-accounts/get.d.ts.map +1 -0
  579. package/dist/routes/api/user/oauth-accounts/get.js +58 -0
  580. package/dist/routes/api/user/oauth-accounts/get.js.map +1 -0
  581. package/dist/routes/api/user/passkeys/_id/delete.d.ts +18 -0
  582. package/dist/routes/api/user/passkeys/_id/delete.d.ts.map +1 -0
  583. package/dist/routes/api/user/passkeys/_id/delete.js +87 -0
  584. package/dist/routes/api/user/passkeys/_id/delete.js.map +1 -0
  585. package/dist/routes/api/user/passkeys/_id/patch.d.ts +22 -0
  586. package/dist/routes/api/user/passkeys/_id/patch.d.ts.map +1 -0
  587. package/dist/routes/api/user/passkeys/_id/patch.js +64 -0
  588. package/dist/routes/api/user/passkeys/_id/patch.js.map +1 -0
  589. package/dist/routes/api/user/passkeys/get.d.ts +21 -0
  590. package/dist/routes/api/user/passkeys/get.d.ts.map +1 -0
  591. package/dist/routes/api/user/passkeys/get.js +52 -0
  592. package/dist/routes/api/user/passkeys/get.js.map +1 -0
  593. package/dist/routes/api/user/passkeys/register/options/post.d.ts +55 -0
  594. package/dist/routes/api/user/passkeys/register/options/post.d.ts.map +1 -0
  595. package/dist/routes/api/user/passkeys/register/options/post.js +74 -0
  596. package/dist/routes/api/user/passkeys/register/options/post.js.map +1 -0
  597. package/dist/routes/api/user/passkeys/register/verify/post.d.ts +50 -0
  598. package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -0
  599. package/dist/routes/api/user/passkeys/register/verify/post.js +95 -0
  600. package/dist/routes/api/user/passkeys/register/verify/post.js.map +1 -0
  601. package/dist/routes/api/user/password/delete.d.ts +23 -0
  602. package/dist/routes/api/user/password/delete.d.ts.map +1 -0
  603. package/dist/routes/api/user/password/delete.js +78 -0
  604. package/dist/routes/api/user/password/delete.js.map +1 -0
  605. package/dist/routes/api/user/password/post.d.ts +23 -0
  606. package/dist/routes/api/user/password/post.d.ts.map +1 -0
  607. package/dist/routes/api/user/password/post.js +81 -0
  608. package/dist/routes/api/user/password/post.js.map +1 -0
  609. package/dist/routes/api/user/password/put.d.ts +24 -0
  610. package/dist/routes/api/user/password/put.d.ts.map +1 -0
  611. package/dist/routes/api/user/password/put.js +74 -0
  612. package/dist/routes/api/user/password/put.js.map +1 -0
  613. package/dist/routes/api/user/session/get.d.ts +32 -0
  614. package/dist/routes/api/user/session/get.d.ts.map +1 -0
  615. package/dist/routes/api/user/session/get.js +36 -0
  616. package/dist/routes/api/user/session/get.js.map +1 -0
  617. package/dist/routes/api/user/totp/confirm/post.d.ts +32 -0
  618. package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -0
  619. package/dist/routes/api/user/totp/confirm/post.js +73 -0
  620. package/dist/routes/api/user/totp/confirm/post.js.map +1 -0
  621. package/dist/routes/api/user/totp/delete.d.ts +23 -0
  622. package/dist/routes/api/user/totp/delete.d.ts.map +1 -0
  623. package/dist/routes/api/user/totp/delete.js +74 -0
  624. package/dist/routes/api/user/totp/delete.js.map +1 -0
  625. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts +18 -0
  626. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts.map +1 -0
  627. package/dist/routes/api/user/totp/recovery/regenerate/post.js +54 -0
  628. package/dist/routes/api/user/totp/recovery/regenerate/post.js.map +1 -0
  629. package/dist/routes/api/user/totp/setup/post.d.ts +22 -0
  630. package/dist/routes/api/user/totp/setup/post.d.ts.map +1 -0
  631. package/dist/routes/api/user/totp/setup/post.js +82 -0
  632. package/dist/routes/api/user/totp/setup/post.js.map +1 -0
  633. package/dist/routes/api/user/totp/verify/post.d.ts +23 -0
  634. package/dist/routes/api/user/totp/verify/post.d.ts.map +1 -0
  635. package/dist/routes/api/user/totp/verify/post.js +71 -0
  636. package/dist/routes/api/user/totp/verify/post.js.map +1 -0
  637. package/dist/routes/index.d.ts +1115 -0
  638. package/dist/routes/index.d.ts.map +1 -0
  639. package/dist/routes/index.js +9 -0
  640. package/dist/routes/index.js.map +1 -0
  641. package/dist/routes/oauth/.well-known/jwks/get.d.ts +24 -0
  642. package/dist/routes/oauth/.well-known/jwks/get.d.ts.map +1 -0
  643. package/dist/routes/oauth/.well-known/jwks/get.js +41 -0
  644. package/dist/routes/oauth/.well-known/jwks/get.js.map +1 -0
  645. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts +29 -0
  646. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts.map +1 -0
  647. package/dist/routes/oauth/.well-known/openid-configuration/get.js +119 -0
  648. package/dist/routes/oauth/.well-known/openid-configuration/get.js.map +1 -0
  649. package/dist/routes/oauth/authorize/get.d.ts +48 -0
  650. package/dist/routes/oauth/authorize/get.d.ts.map +1 -0
  651. package/dist/routes/oauth/authorize/get.js +102 -0
  652. package/dist/routes/oauth/authorize/get.js.map +1 -0
  653. package/dist/routes/oauth/index.d.ts +182 -0
  654. package/dist/routes/oauth/index.d.ts.map +1 -0
  655. package/dist/routes/oauth/index.js +17 -0
  656. package/dist/routes/oauth/index.js.map +1 -0
  657. package/dist/routes/oauth/introspect/post.d.ts +28 -0
  658. package/dist/routes/oauth/introspect/post.d.ts.map +1 -0
  659. package/dist/routes/oauth/introspect/post.js +69 -0
  660. package/dist/routes/oauth/introspect/post.js.map +1 -0
  661. package/dist/routes/oauth/revoke/post.d.ts +22 -0
  662. package/dist/routes/oauth/revoke/post.d.ts.map +1 -0
  663. package/dist/routes/oauth/revoke/post.js +73 -0
  664. package/dist/routes/oauth/revoke/post.js.map +1 -0
  665. package/dist/routes/oauth/token/post.d.ts +29 -0
  666. package/dist/routes/oauth/token/post.d.ts.map +1 -0
  667. package/dist/routes/oauth/token/post.js +98 -0
  668. package/dist/routes/oauth/token/post.js.map +1 -0
  669. package/dist/routes/oauth/userinfo/get.d.ts +23 -0
  670. package/dist/routes/oauth/userinfo/get.d.ts.map +1 -0
  671. package/dist/routes/oauth/userinfo/get.js +65 -0
  672. package/dist/routes/oauth/userinfo/get.js.map +1 -0
  673. package/dist/schemas/error.d.ts +2104 -0
  674. package/dist/schemas/error.d.ts.map +1 -0
  675. package/dist/schemas/error.js +164 -0
  676. package/dist/schemas/error.js.map +1 -0
  677. package/dist/schemas/field.d.ts +97 -0
  678. package/dist/schemas/field.d.ts.map +1 -0
  679. package/dist/schemas/field.js +168 -0
  680. package/dist/schemas/field.js.map +1 -0
  681. package/dist/schemas/header.d.ts +7 -0
  682. package/dist/schemas/header.d.ts.map +1 -0
  683. package/dist/schemas/header.js +11 -0
  684. package/dist/schemas/header.js.map +1 -0
  685. package/dist/schemas/oauth.d.ts +26 -0
  686. package/dist/schemas/oauth.d.ts.map +1 -0
  687. package/dist/schemas/oauth.js +51 -0
  688. package/dist/schemas/oauth.js.map +1 -0
  689. package/dist/schemas/provider.d.ts +7 -0
  690. package/dist/schemas/provider.d.ts.map +1 -0
  691. package/dist/schemas/provider.js +31 -0
  692. package/dist/schemas/provider.js.map +1 -0
  693. package/dist/schemas/response.d.ts +645 -0
  694. package/dist/schemas/response.d.ts.map +1 -0
  695. package/dist/schemas/response.js +598 -0
  696. package/dist/schemas/response.js.map +1 -0
  697. package/dist/schemas/terms.d.ts +93 -0
  698. package/dist/schemas/terms.d.ts.map +1 -0
  699. package/dist/schemas/terms.js +109 -0
  700. package/dist/schemas/terms.js.map +1 -0
  701. package/dist/seeders/config.seeder.d.ts +21 -0
  702. package/dist/seeders/config.seeder.d.ts.map +1 -0
  703. package/dist/seeders/config.seeder.js +168 -0
  704. package/dist/seeders/config.seeder.js.map +1 -0
  705. package/dist/services/cleanup.service.d.ts +166 -0
  706. package/dist/services/cleanup.service.d.ts.map +1 -0
  707. package/dist/services/cleanup.service.js +605 -0
  708. package/dist/services/cleanup.service.js.map +1 -0
  709. package/dist/services/container.d.ts +201 -0
  710. package/dist/services/container.d.ts.map +1 -0
  711. package/dist/services/container.js +75 -0
  712. package/dist/services/container.js.map +1 -0
  713. package/dist/services/email.service.d.ts +69 -0
  714. package/dist/services/email.service.d.ts.map +1 -0
  715. package/dist/services/email.service.js +164 -0
  716. package/dist/services/email.service.js.map +1 -0
  717. package/dist/services/jwt.service.d.ts +321 -0
  718. package/dist/services/jwt.service.d.ts.map +1 -0
  719. package/dist/services/jwt.service.js +524 -0
  720. package/dist/services/jwt.service.js.map +1 -0
  721. package/dist/services/mikro.service.d.ts +43 -0
  722. package/dist/services/mikro.service.d.ts.map +1 -0
  723. package/dist/services/mikro.service.js +68 -0
  724. package/dist/services/mikro.service.js.map +1 -0
  725. package/dist/services/oauth-authorize.service.d.ts +91 -0
  726. package/dist/services/oauth-authorize.service.d.ts.map +1 -0
  727. package/dist/services/oauth-authorize.service.js +237 -0
  728. package/dist/services/oauth-authorize.service.js.map +1 -0
  729. package/dist/services/oauth-client.service.d.ts +38 -0
  730. package/dist/services/oauth-client.service.d.ts.map +1 -0
  731. package/dist/services/oauth-client.service.js +80 -0
  732. package/dist/services/oauth-client.service.js.map +1 -0
  733. package/dist/services/oauth-connect.service.d.ts +182 -0
  734. package/dist/services/oauth-connect.service.d.ts.map +1 -0
  735. package/dist/services/oauth-connect.service.js +592 -0
  736. package/dist/services/oauth-connect.service.js.map +1 -0
  737. package/dist/services/oauth-token.service.d.ts +162 -0
  738. package/dist/services/oauth-token.service.d.ts.map +1 -0
  739. package/dist/services/oauth-token.service.js +374 -0
  740. package/dist/services/oauth-token.service.js.map +1 -0
  741. package/dist/services/passkey.service.d.ts +73 -0
  742. package/dist/services/passkey.service.d.ts.map +1 -0
  743. package/dist/services/passkey.service.js +199 -0
  744. package/dist/services/passkey.service.js.map +1 -0
  745. package/dist/services/password-auth.service.d.ts +24 -0
  746. package/dist/services/password-auth.service.d.ts.map +1 -0
  747. package/dist/services/password-auth.service.js +87 -0
  748. package/dist/services/password-auth.service.js.map +1 -0
  749. package/dist/services/password-reset.service.d.ts +31 -0
  750. package/dist/services/password-reset.service.d.ts.map +1 -0
  751. package/dist/services/password-reset.service.js +54 -0
  752. package/dist/services/password-reset.service.js.map +1 -0
  753. package/dist/services/scheduler.service.d.ts +15 -0
  754. package/dist/services/scheduler.service.d.ts.map +1 -0
  755. package/dist/services/scheduler.service.js +52 -0
  756. package/dist/services/scheduler.service.js.map +1 -0
  757. package/dist/services/security.service.d.ts +17 -0
  758. package/dist/services/security.service.d.ts.map +1 -0
  759. package/dist/services/security.service.js +82 -0
  760. package/dist/services/security.service.js.map +1 -0
  761. package/dist/services/terms.service.d.ts +131 -0
  762. package/dist/services/terms.service.d.ts.map +1 -0
  763. package/dist/services/terms.service.js +210 -0
  764. package/dist/services/terms.service.js.map +1 -0
  765. package/dist/services/totp.service.d.ts +86 -0
  766. package/dist/services/totp.service.d.ts.map +1 -0
  767. package/dist/services/totp.service.js +244 -0
  768. package/dist/services/totp.service.js.map +1 -0
  769. package/dist/services/user-consent.service.d.ts +34 -0
  770. package/dist/services/user-consent.service.d.ts.map +1 -0
  771. package/dist/services/user-consent.service.js +42 -0
  772. package/dist/services/user-consent.service.js.map +1 -0
  773. package/dist/services/user.service.d.ts +60 -0
  774. package/dist/services/user.service.d.ts.map +1 -0
  775. package/dist/services/user.service.js +176 -0
  776. package/dist/services/user.service.js.map +1 -0
  777. package/package.json +155 -0
  778. package/public/assets/index-CrY7bb7j.css +2 -0
  779. package/public/assets/index-jYk5DHP_.js +75 -0
  780. package/public/assets/index-jYk5DHP_.js.map +1 -0
  781. package/public/index.html +27 -0
  782. package/public/vite.svg +1 -0
@@ -0,0 +1,93 @@
1
+ import { z } from 'zod';
2
+ export declare const termsSchema: {
3
+ TermsResponse: z.ZodObject<{
4
+ terms: z.ZodArray<z.ZodObject<{
5
+ id: z.ZodString;
6
+ required: z.ZodBoolean;
7
+ consentMode: z.ZodEnum<{
8
+ explicit: "explicit";
9
+ implicit: "implicit";
10
+ }>;
11
+ version: z.ZodString;
12
+ effectiveDate: z.ZodOptional<z.ZodString>;
13
+ title: z.ZodString;
14
+ type: z.ZodEnum<{
15
+ link: "link";
16
+ text: "text";
17
+ }>;
18
+ content: z.ZodString;
19
+ userConsent: z.ZodNullable<z.ZodObject<{
20
+ agreed: z.ZodBoolean;
21
+ agreedVersion: z.ZodNullable<z.ZodString>;
22
+ agreedAt: z.ZodNullable<z.ZodString>;
23
+ consentType: z.ZodNullable<z.ZodEnum<{
24
+ explicit: "explicit";
25
+ implicit: "implicit";
26
+ }>>;
27
+ requiresUpdate: z.ZodBoolean;
28
+ }, z.core.$strip>>;
29
+ }, z.core.$strip>>;
30
+ pendingTerms: z.ZodArray<z.ZodString>;
31
+ }, z.core.$strip>;
32
+ TermsConsentRequest: z.ZodObject<{
33
+ consents: z.ZodArray<z.ZodObject<{
34
+ termsId: z.ZodString;
35
+ agreed: z.ZodBoolean;
36
+ consentType: z.ZodOptional<z.ZodEnum<{
37
+ explicit: "explicit";
38
+ implicit: "implicit";
39
+ }>>;
40
+ }, z.core.$strip>>;
41
+ registrationToken: z.ZodOptional<z.ZodString>;
42
+ }, z.core.$strip>;
43
+ TermsConsentResponse: z.ZodObject<{
44
+ ok: z.ZodLiteral<true>;
45
+ recorded: z.ZodNumber;
46
+ registered: z.ZodOptional<z.ZodBoolean>;
47
+ }, z.core.$strip>;
48
+ TermsUserConsent: z.ZodObject<{
49
+ agreed: z.ZodBoolean;
50
+ agreedVersion: z.ZodNullable<z.ZodString>;
51
+ agreedAt: z.ZodNullable<z.ZodString>;
52
+ consentType: z.ZodNullable<z.ZodEnum<{
53
+ explicit: "explicit";
54
+ implicit: "implicit";
55
+ }>>;
56
+ requiresUpdate: z.ZodBoolean;
57
+ }, z.core.$strip>;
58
+ TermItem: z.ZodObject<{
59
+ id: z.ZodString;
60
+ required: z.ZodBoolean;
61
+ consentMode: z.ZodEnum<{
62
+ explicit: "explicit";
63
+ implicit: "implicit";
64
+ }>;
65
+ version: z.ZodString;
66
+ effectiveDate: z.ZodOptional<z.ZodString>;
67
+ title: z.ZodString;
68
+ type: z.ZodEnum<{
69
+ link: "link";
70
+ text: "text";
71
+ }>;
72
+ content: z.ZodString;
73
+ userConsent: z.ZodNullable<z.ZodObject<{
74
+ agreed: z.ZodBoolean;
75
+ agreedVersion: z.ZodNullable<z.ZodString>;
76
+ agreedAt: z.ZodNullable<z.ZodString>;
77
+ consentType: z.ZodNullable<z.ZodEnum<{
78
+ explicit: "explicit";
79
+ implicit: "implicit";
80
+ }>>;
81
+ requiresUpdate: z.ZodBoolean;
82
+ }, z.core.$strip>>;
83
+ }, z.core.$strip>;
84
+ ConsentItem: z.ZodObject<{
85
+ termsId: z.ZodString;
86
+ agreed: z.ZodBoolean;
87
+ consentType: z.ZodOptional<z.ZodEnum<{
88
+ explicit: "explicit";
89
+ implicit: "implicit";
90
+ }>>;
91
+ }, z.core.$strip>;
92
+ };
93
+ //# sourceMappingURL=terms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terms.d.ts","sourceRoot":"","sources":["../../src/schemas/terms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsHxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOvB,CAAC"}
@@ -0,0 +1,109 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * User consent status for a term
4
+ */
5
+ const TermsUserConsent = z
6
+ .object({
7
+ agreed: z.boolean().describe('Whether the user agreed to this term'),
8
+ agreedVersion: z
9
+ .string()
10
+ .nullable()
11
+ .describe('Version of the term the user agreed to'),
12
+ agreedAt: z
13
+ .string()
14
+ .datetime()
15
+ .nullable()
16
+ .describe('When the user agreed to the term'),
17
+ consentType: z
18
+ .enum(['explicit', 'implicit'])
19
+ .nullable()
20
+ .describe('How consent was obtained'),
21
+ requiresUpdate: z
22
+ .boolean()
23
+ .describe('Whether the user needs to re-consent due to version change'),
24
+ })
25
+ .describe('User consent status');
26
+ /**
27
+ * Content type for terms content
28
+ */
29
+ const TermsContentType = z
30
+ .enum(['link', 'text'])
31
+ .describe('Content type: link (URL) or text (inline content)');
32
+ /**
33
+ * Term item with localized content and user consent status
34
+ */
35
+ const TermItem = z
36
+ .object({
37
+ id: z.string().describe('Unique identifier for the term'),
38
+ required: z.boolean().describe('Whether this term is mandatory'),
39
+ consentMode: z
40
+ .enum(['explicit', 'implicit'])
41
+ .describe('Consent mode: explicit (checkbox required) or implicit (auto-agree)'),
42
+ version: z.string().describe('Version of the term'),
43
+ effectiveDate: z
44
+ .string()
45
+ .optional()
46
+ .describe('When this version became effective'),
47
+ title: z.string().describe('Localized title'),
48
+ type: TermsContentType.describe('How to interpret the content'),
49
+ content: z
50
+ .string()
51
+ .describe('Content value (URL if type=link, text if type=text)'),
52
+ userConsent: TermsUserConsent.nullable().describe('User consent status (null if not logged in)'),
53
+ })
54
+ .describe('Term item with user consent');
55
+ /**
56
+ * GET /api/terms response
57
+ */
58
+ const TermsResponse = z
59
+ .object({
60
+ terms: z.array(TermItem).describe('List of terms'),
61
+ pendingTerms: z.array(z.string()).describe('Term IDs that require consent'),
62
+ })
63
+ .describe('Terms response');
64
+ /**
65
+ * Single consent item in request
66
+ */
67
+ const ConsentItem = z.object({
68
+ termsId: z.string().describe('Term ID to consent to'),
69
+ agreed: z.boolean().describe('Whether user agrees to this term'),
70
+ consentType: z
71
+ .enum(['explicit', 'implicit'])
72
+ .optional()
73
+ .describe('How consent was obtained. Defaults to term consentMode if omitted'),
74
+ });
75
+ /**
76
+ * POST /api/terms/consent request body
77
+ */
78
+ const TermsConsentRequest = z
79
+ .object({
80
+ consents: z.array(ConsentItem).min(1).describe('List of consent decisions'),
81
+ registrationToken: z
82
+ .string()
83
+ .uuid()
84
+ .optional()
85
+ .describe('Pending OAuth registration token. Required when completing registration after terms consent.'),
86
+ })
87
+ .describe('Terms consent request');
88
+ /**
89
+ * POST /api/terms/consent response
90
+ */
91
+ const TermsConsentResponse = z
92
+ .object({
93
+ ok: z.literal(true),
94
+ recorded: z.number().int().describe('Number of consents recorded'),
95
+ registered: z
96
+ .boolean()
97
+ .optional()
98
+ .describe('True if OAuth registration was completed with this consent submission'),
99
+ })
100
+ .describe('Terms consent response');
101
+ export const termsSchema = {
102
+ TermsResponse,
103
+ TermsConsentRequest,
104
+ TermsConsentResponse,
105
+ TermsUserConsent,
106
+ TermItem,
107
+ ConsentItem,
108
+ };
109
+ //# sourceMappingURL=terms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terms.js","sourceRoot":"","sources":["../../src/schemas/terms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { EntityManager } from '@mikro-orm/core';
2
+ import type { TinyAuthRuntimeConfig } from '../lib/config/index.ts';
3
+ import type { SecurityService } from '../services/security.service.ts';
4
+ /**
5
+ * ConfigSeeder
6
+ *
7
+ * Synchronizes users, OAuth clients, and terms from config.yaml to the database.
8
+ * This seeder is run on every server startup to ensure config data is in DB.
9
+ *
10
+ * Key behaviors:
11
+ * - Uses em.upsert() for atomic INSERT ON CONFLICT operations
12
+ * (cluster-safe: multiple instances can run concurrently without race conditions)
13
+ * - Bypasses entity lifecycle hooks to prevent double-hashing of passwords
14
+ * - Sets managed_by='config' to distinguish from runtime-created records
15
+ * - Cleans up records that were removed from config
16
+ */
17
+ /**
18
+ * Run config seeder with the given config
19
+ */
20
+ export declare function seedConfig(em: EntityManager, config: TinyAuthRuntimeConfig, securityService: SecurityService): Promise<void>;
21
+ //# sourceMappingURL=config.seeder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.seeder.d.ts","sourceRoot":"","sources":["../../src/seeders/config.seeder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;;GAYG;AAEH;;GAEG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,qBAAqB,EAC7B,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,168 @@
1
+ import { OAuthClientEntitySchema } from "../entities/oauth-client.entity.js";
2
+ import { TermsEntitySchema } from "../entities/terms.entity.js";
3
+ import { TermsContentEntitySchema } from "../entities/terms-content.entity.js";
4
+ import { UserEntity } from "../entities/user.entity.js";
5
+ /**
6
+ * ConfigSeeder
7
+ *
8
+ * Synchronizes users, OAuth clients, and terms from config.yaml to the database.
9
+ * This seeder is run on every server startup to ensure config data is in DB.
10
+ *
11
+ * Key behaviors:
12
+ * - Uses em.upsert() for atomic INSERT ON CONFLICT operations
13
+ * (cluster-safe: multiple instances can run concurrently without race conditions)
14
+ * - Bypasses entity lifecycle hooks to prevent double-hashing of passwords
15
+ * - Sets managed_by='config' to distinguish from runtime-created records
16
+ * - Cleans up records that were removed from config
17
+ */
18
+ /**
19
+ * Run config seeder with the given config
20
+ */
21
+ export async function seedConfig(em, config, securityService) {
22
+ await syncTerms(em, config);
23
+ await syncUsers(em, config, securityService);
24
+ await syncOAuthClients(em, config, securityService);
25
+ }
26
+ /**
27
+ * Sync terms from config.yaml to database
28
+ * Uses em.upsert() for atomic upsert operations that are cluster-safe
29
+ */
30
+ async function syncTerms(em, config) {
31
+ const now = new Date();
32
+ const configTerms = config.terms;
33
+ for (const term of configTerms) {
34
+ // Upsert term entity
35
+ await em.upsert(TermsEntitySchema, {
36
+ id: term.id,
37
+ required: term.required,
38
+ consentMode: term.consent_mode,
39
+ version: term.version,
40
+ managed_by: 'config',
41
+ created_at: now,
42
+ updated_at: now,
43
+ }, {
44
+ onConflictFields: ['id'],
45
+ onConflictAction: 'merge',
46
+ onConflictExcludeFields: ['id', 'created_at'],
47
+ });
48
+ // Delete existing content for this term (to handle language changes)
49
+ await em.nativeDelete(TermsContentEntitySchema, {
50
+ terms: term.id,
51
+ });
52
+ // Insert new content for each language
53
+ for (const lang of Object.keys(term.content)) {
54
+ const content = term.content[lang];
55
+ if (!content) {
56
+ continue;
57
+ }
58
+ const contentEntity = em.create(TermsContentEntitySchema, {
59
+ terms: term.id,
60
+ lang,
61
+ title: content.title,
62
+ type: content.type,
63
+ content: content.content,
64
+ });
65
+ em.persist(contentEntity);
66
+ }
67
+ }
68
+ await em.flush();
69
+ // Remove config-managed terms that are no longer in config
70
+ const configTermIds = configTerms.map((term) => term.id);
71
+ if (configTermIds.length > 0) {
72
+ await em.nativeDelete(TermsEntitySchema, {
73
+ managed_by: 'config',
74
+ id: { $nin: configTermIds },
75
+ });
76
+ }
77
+ else {
78
+ // If no config terms, remove all config-managed terms
79
+ await em.nativeDelete(TermsEntitySchema, { managed_by: 'config' });
80
+ }
81
+ }
82
+ /**
83
+ * Sync users from config.yaml to database
84
+ * Uses em.upsert() for atomic upsert operations that are cluster-safe
85
+ */
86
+ async function syncUsers(em, config, securityService) {
87
+ const now = new Date();
88
+ for (const configUser of config.users) {
89
+ const hashedPassword = await securityService.hashPassword(configUser.password);
90
+ // Use upsert for atomic INSERT ON CONFLICT DO UPDATE
91
+ // This is cluster-safe: concurrent instances won't cause race conditions
92
+ await em.upsert(UserEntity, {
93
+ sub: configUser.sub,
94
+ email: configUser.email,
95
+ password_hash: hashedPassword,
96
+ email_verified: true,
97
+ managed_by: 'config',
98
+ role: configUser.role ?? 'user',
99
+ created_at: now,
100
+ updated_at: now,
101
+ }, {
102
+ onConflictFields: ['sub'],
103
+ onConflictAction: 'merge',
104
+ // Exclude sub and created_at from merge (don't update primary key or creation time)
105
+ onConflictExcludeFields: ['sub', 'created_at'],
106
+ });
107
+ }
108
+ // Remove config-managed users that are no longer in config
109
+ const configUserSubs = config.users.map((user) => user.sub);
110
+ if (configUserSubs.length > 0) {
111
+ await em.nativeDelete(UserEntity, {
112
+ managed_by: 'config',
113
+ sub: { $nin: configUserSubs },
114
+ });
115
+ }
116
+ else {
117
+ // If no config users, remove all config-managed users
118
+ await em.nativeDelete(UserEntity, { managed_by: 'config' });
119
+ }
120
+ }
121
+ /**
122
+ * Sync OAuth clients from config.yaml to database
123
+ * Uses em.upsert() for atomic upsert operations that are cluster-safe
124
+ */
125
+ async function syncOAuthClients(em, config, securityService) {
126
+ const now = new Date();
127
+ for (const client of config.clients) {
128
+ // Public clients (PKCE-only) don't have client_secret
129
+ const hashedSecret = client.client_secret
130
+ ? await securityService.hashClientSecret(client.client_secret)
131
+ : null;
132
+ // Use upsert for atomic INSERT ON CONFLICT DO UPDATE
133
+ // This is cluster-safe: concurrent instances won't cause race conditions
134
+ await em.upsert(OAuthClientEntitySchema, {
135
+ id: client.id,
136
+ clientId: client.client_id,
137
+ clientSecretHash: hashedSecret,
138
+ name: client.name,
139
+ logoUri: client.logo_uri ?? null,
140
+ redirectUris: client.redirect_uris,
141
+ responseTypes: client.response_types,
142
+ grantTypes: client.grant_types,
143
+ scopes: client.scope.split(' '),
144
+ enabled: true,
145
+ managed_by: 'config',
146
+ created_at: now,
147
+ updated_at: now,
148
+ }, {
149
+ onConflictFields: ['id'],
150
+ onConflictAction: 'merge',
151
+ // Exclude id and created_at from merge (don't update primary key or creation time)
152
+ onConflictExcludeFields: ['id', 'created_at'],
153
+ });
154
+ }
155
+ // Remove config-managed clients that are no longer in config
156
+ const configClientIds = config.clients.map((client) => client.id);
157
+ if (configClientIds.length > 0) {
158
+ await em.nativeDelete(OAuthClientEntitySchema, {
159
+ managed_by: 'config',
160
+ id: { $nin: configClientIds },
161
+ });
162
+ }
163
+ else {
164
+ // If no config providers, remove all config-managed clients
165
+ await em.nativeDelete(OAuthClientEntitySchema, { managed_by: 'config' });
166
+ }
167
+ }
168
+ //# sourceMappingURL=config.seeder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.seeder.js","sourceRoot":"","sources":["../../src/seeders/config.seeder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ import type { TinyAuthRuntimeConfig } from '../lib/config/index.ts';
2
+ import type { JwtService } from './jwt.service.ts';
3
+ import type { MikroService } from './mikro.service.ts';
4
+ /**
5
+ * Result of a cleanup operation.
6
+ */
7
+ export interface CleanupResult {
8
+ /** Number of items deleted (or would be deleted in dry-run mode) */
9
+ deletedCount: number;
10
+ /** If true, the cleanup was skipped (e.g., disabled in config) */
11
+ skipped: boolean;
12
+ /** Optional message with additional details */
13
+ message?: string;
14
+ }
15
+ /**
16
+ * Options for cleanup operations.
17
+ */
18
+ export interface CleanupOptions {
19
+ /** If true, don't actually delete anything, just report what would be deleted */
20
+ dryRun: boolean;
21
+ }
22
+ /**
23
+ * Result of a single task execution
24
+ */
25
+ export interface TaskExecutionResult {
26
+ name: string;
27
+ description: string;
28
+ result: CleanupResult;
29
+ durationMs: number;
30
+ error?: Error;
31
+ }
32
+ /**
33
+ * Summary of all cleanup tasks execution
34
+ */
35
+ export interface CleanupSummary {
36
+ tasks: TaskExecutionResult[];
37
+ totalDeleted: number;
38
+ totalSkipped: number;
39
+ totalFailed: number;
40
+ totalDurationMs: number;
41
+ }
42
+ /**
43
+ * Cleanup Service
44
+ *
45
+ * Centralizes all cleanup/maintenance tasks for the application.
46
+ * Handles cleanup of:
47
+ * - Revoked tokens (expired JWT revocations)
48
+ * - OAuth authorization codes (expired/consumed)
49
+ * - Email verification tokens (expired)
50
+ * - Password reset tokens (expired)
51
+ * - Deleted users (past retention period)
52
+ * - JWT signing keys (rotation)
53
+ *
54
+ * Can be invoked via:
55
+ * - CLI command: `tinyauth cleanup`
56
+ * - In-process scheduler adapter
57
+ */
58
+ export declare class CleanupService {
59
+ private readonly config;
60
+ private readonly mikro;
61
+ private readonly jwtService;
62
+ constructor(config: TinyAuthRuntimeConfig, mikro: MikroService, jwtService: JwtService);
63
+ /**
64
+ * Remove expired revoked tokens from the database.
65
+ *
66
+ * Revoked tokens can be safely deleted after their original expiration time
67
+ * since they would be invalid anyway due to JWT expiration.
68
+ * The retention period allows keeping expired tokens for a while longer
69
+ * for debugging purposes. Default is "0" (immediate cleanup after expiry).
70
+ *
71
+ * @param options - Cleanup options (dryRun)
72
+ * @returns Cleanup result with deleted count and details
73
+ */
74
+ cleanupRevokedTokens(options: CleanupOptions): Promise<CleanupResult>;
75
+ /**
76
+ * Remove expired and consumed OAuth authorization codes.
77
+ *
78
+ * Authorization codes have a short lifetime (typically 10 minutes)
79
+ * and should be cleaned up regularly to prevent database bloat.
80
+ * Also cleans up consumed codes after the configured retention period.
81
+ *
82
+ * @param options - Cleanup options (dryRun)
83
+ * @returns Cleanup result with deleted count and details
84
+ */
85
+ cleanupOAuthCodes(options: CleanupOptions): Promise<CleanupResult>;
86
+ /**
87
+ * Remove expired email verification tokens.
88
+ *
89
+ * Expired tokens are no longer valid and can be safely deleted.
90
+ * The retention period allows keeping expired tokens for a while longer
91
+ * for debugging purposes. Default is "0" (immediate cleanup after expiry).
92
+ *
93
+ * @param options - Cleanup options (dryRun)
94
+ * @returns Cleanup result with deleted count and details
95
+ */
96
+ cleanupEmailVerifications(options: CleanupOptions): Promise<CleanupResult>;
97
+ /**
98
+ * Remove expired password reset tokens.
99
+ *
100
+ * Expired tokens are no longer valid and can be safely deleted.
101
+ * The retention period allows keeping expired tokens for a while longer
102
+ * for debugging purposes. Default is "0" (immediate cleanup after expiry).
103
+ *
104
+ * @param options - Cleanup options (dryRun)
105
+ * @returns Cleanup result with deleted count and details
106
+ */
107
+ cleanupPasswordResets(options: CleanupOptions): Promise<CleanupResult>;
108
+ /**
109
+ * Permanently delete users marked for deletion whose retention period
110
+ * has expired.
111
+ *
112
+ * This is a destructive operation that:
113
+ * 1. Deletes all user-related data (OAuth accounts, TOTP, passkeys, consents)
114
+ * 2. Removes the user record permanently
115
+ *
116
+ * The retention period is configured in account_deletion.retention
117
+ * (e.g., "30d", "90d").
118
+ *
119
+ * @param options - Cleanup options (dryRun)
120
+ * @returns Cleanup result with deleted count and details
121
+ */
122
+ cleanupDeletedUsers(options: CleanupOptions): Promise<CleanupResult>;
123
+ /**
124
+ * Remove expired pending OAuth registration records.
125
+ *
126
+ * When a new OAuth user needs to accept terms before completing
127
+ * registration, the OAuth tokens and user info are stored in the
128
+ * database. These records expire after 1 hour and can be safely
129
+ * cleaned up afterwards.
130
+ *
131
+ * @param options - Cleanup options (dryRun)
132
+ * @returns Cleanup result with deleted count and details
133
+ */
134
+ cleanupPendingOAuthRegistrations(options: CleanupOptions): Promise<CleanupResult>;
135
+ /**
136
+ * Rotate expired JWT signing keys and retire old keys.
137
+ *
138
+ * This method checks for expired active keys and performs rotation if needed.
139
+ * Also retires old keys that have passed the overlap period.
140
+ *
141
+ * Key lifecycle:
142
+ * 1. next: Generated, waiting to be activated
143
+ * 2. active: Currently used for signing tokens
144
+ * 3. previous: Recently rotated, still valid for verification
145
+ * 4. retired: No longer valid for any operation
146
+ *
147
+ * @param options - Cleanup options (dryRun)
148
+ * @returns Cleanup result with rotation details
149
+ */
150
+ rotateExpiredJwtKeys(options: CleanupOptions): Promise<CleanupResult>;
151
+ /**
152
+ * Build cleanup tasks
153
+ */
154
+ private buildCleanupTasks;
155
+ /**
156
+ * Run all cleanup tasks.
157
+ *
158
+ * @param options - Cleanup options (dryRun, verbose)
159
+ * @returns Summary of all task executions
160
+ */
161
+ runAll(options: {
162
+ dryRun: boolean;
163
+ verbose?: boolean;
164
+ }): Promise<CleanupSummary>;
165
+ }
166
+ //# sourceMappingURL=cleanup.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup.service.d.ts","sourceRoot":"","sources":["../../src/services/cleanup.service.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAOpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,MAAM,EAAE,OAAO,CAAC;CACjB;AAcD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;gBAEtC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,UAAU;IAWxB;;;;;;;;;;OAUG;IACG,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAsD3E;;;;;;;;;OASG;IACG,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DxE;;;;;;;;;OASG;IACG,yBAAyB,CAC7B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC;IAyDzB;;;;;;;;;OASG;IACG,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAuD5E;;;;;;;;;;;;;OAaG;IACG,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAiF1E;;;;;;;;;;OAUG;IACG,gCAAgC,CACpC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC;IAuDzB;;;;;;;;;;;;;;OAcG;IACG,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAiH3E;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAE;QACpB,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,CAAC;CAmD5B"}