@tinyrack/tinyauth-server 0.5.1 → 0.6.1

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 (362) hide show
  1. package/dist/entities/oauth-client.entity.d.ts +27 -0
  2. package/dist/entities/oauth-client.entity.d.ts.map +1 -1
  3. package/dist/entities/oauth-code.entity.d.ts +27 -0
  4. package/dist/entities/oauth-code.entity.d.ts.map +1 -1
  5. package/dist/entities/oauth-device-code.entity.d.ts +27 -0
  6. package/dist/entities/oauth-device-code.entity.d.ts.map +1 -1
  7. package/dist/entities/oauth-device-code.entity.js +12 -0
  8. package/dist/entities/oauth-device-code.entity.js.map +1 -1
  9. package/dist/entities/revoked-token.entity.d.ts +27 -0
  10. package/dist/entities/revoked-token.entity.d.ts.map +1 -1
  11. package/dist/entities/user-consent.entity.d.ts +27 -0
  12. package/dist/entities/user-consent.entity.d.ts.map +1 -1
  13. package/dist/entrypoints/app.d.ts +325 -16
  14. package/dist/entrypoints/app.d.ts.map +1 -1
  15. package/dist/entrypoints/app.js +33 -7
  16. package/dist/entrypoints/app.js.map +1 -1
  17. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +16 -7
  18. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
  19. package/dist/entrypoints/database/postgres/compiled-functions.js +183 -39
  20. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  21. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +16 -7
  22. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
  23. package/dist/entrypoints/database/sqlite/compiled-functions.js +183 -39
  24. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  25. package/dist/lib/config/admin.d.ts +9 -0
  26. package/dist/lib/config/admin.d.ts.map +1 -0
  27. package/dist/lib/config/admin.js +13 -0
  28. package/dist/lib/config/admin.js.map +1 -0
  29. package/dist/lib/config/auth.d.ts +85 -0
  30. package/dist/lib/config/auth.d.ts.map +1 -1
  31. package/dist/lib/config/auth.js +61 -0
  32. package/dist/lib/config/auth.js.map +1 -1
  33. package/dist/lib/config/client.d.ts +20 -0
  34. package/dist/lib/config/client.d.ts.map +1 -1
  35. package/dist/lib/config/client.js +14 -0
  36. package/dist/lib/config/client.js.map +1 -1
  37. package/dist/lib/config/index.d.ts +2 -0
  38. package/dist/lib/config/index.d.ts.map +1 -1
  39. package/dist/lib/config/index.js +1 -0
  40. package/dist/lib/config/index.js.map +1 -1
  41. package/dist/lib/config/resolved.d.ts +40 -0
  42. package/dist/lib/config/resolved.d.ts.map +1 -1
  43. package/dist/lib/config/resolved.js +2 -0
  44. package/dist/lib/config/resolved.js.map +1 -1
  45. package/dist/lib/config/server.d.ts.map +1 -1
  46. package/dist/lib/config/server.js +12 -0
  47. package/dist/lib/config/server.js.map +1 -1
  48. package/dist/lib/swagger-tags.d.ts +1 -0
  49. package/dist/lib/swagger-tags.d.ts.map +1 -1
  50. package/dist/lib/swagger-tags.js +1 -0
  51. package/dist/lib/swagger-tags.js.map +1 -1
  52. package/dist/middleware/auth.d.ts +3 -0
  53. package/dist/middleware/auth.d.ts.map +1 -1
  54. package/dist/middleware/auth.js +26 -0
  55. package/dist/middleware/auth.js.map +1 -1
  56. package/dist/middleware/session.d.ts +33 -1
  57. package/dist/middleware/session.d.ts.map +1 -1
  58. package/dist/middleware/session.js +84 -3
  59. package/dist/middleware/session.js.map +1 -1
  60. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.d.ts +6 -0
  61. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.d.ts.map +1 -0
  62. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.js +11 -0
  63. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.js.map +1 -0
  64. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.d.ts +6 -0
  65. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.d.ts.map +1 -0
  66. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.js +14 -0
  67. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.js.map +1 -0
  68. package/dist/migrations/postgres/index.d.ts.map +1 -1
  69. package/dist/migrations/postgres/index.js +4 -0
  70. package/dist/migrations/postgres/index.js.map +1 -1
  71. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.d.ts +6 -0
  72. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.d.ts.map +1 -0
  73. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.js +10 -0
  74. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.js.map +1 -0
  75. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.d.ts +6 -0
  76. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.d.ts.map +1 -0
  77. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.js +12 -0
  78. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.js.map +1 -0
  79. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  80. package/dist/migrations/sqlite/index.js +4 -0
  81. package/dist/migrations/sqlite/index.js.map +1 -1
  82. package/dist/repositories/oauth-device-code.repository.d.ts +4 -0
  83. package/dist/repositories/oauth-device-code.repository.d.ts.map +1 -1
  84. package/dist/repositories/oauth-device-code.repository.js +19 -0
  85. package/dist/repositories/oauth-device-code.repository.js.map +1 -1
  86. package/dist/repositories/user.repository.d.ts +4 -2
  87. package/dist/repositories/user.repository.d.ts.map +1 -1
  88. package/dist/repositories/user.repository.js +11 -7
  89. package/dist/repositories/user.repository.js.map +1 -1
  90. package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -1
  91. package/dist/routes/.well-known/openid-configuration/get.js +4 -0
  92. package/dist/routes/.well-known/openid-configuration/get.js.map +1 -1
  93. package/dist/routes/api/admin/index.d.ts +185 -0
  94. package/dist/routes/api/admin/index.d.ts.map +1 -0
  95. package/dist/routes/api/admin/index.js +13 -0
  96. package/dist/routes/api/admin/index.js.map +1 -0
  97. package/dist/routes/api/admin/me/get.d.ts +26 -0
  98. package/dist/routes/api/admin/me/get.d.ts.map +1 -0
  99. package/dist/routes/api/admin/me/get.js +29 -0
  100. package/dist/routes/api/admin/me/get.js.map +1 -0
  101. package/dist/routes/api/admin/users/index.d.ts +162 -0
  102. package/dist/routes/api/admin/users/index.d.ts.map +1 -0
  103. package/dist/routes/api/admin/users/index.js +166 -0
  104. package/dist/routes/api/admin/users/index.js.map +1 -0
  105. package/dist/routes/api/auth/accounts/get.d.ts +28 -0
  106. package/dist/routes/api/auth/accounts/get.d.ts.map +1 -0
  107. package/dist/routes/api/auth/accounts/get.js +47 -0
  108. package/dist/routes/api/auth/accounts/get.js.map +1 -0
  109. package/dist/routes/api/auth/accounts/remove.post.d.ts +30 -0
  110. package/dist/routes/api/auth/accounts/remove.post.d.ts.map +1 -0
  111. package/dist/routes/api/auth/accounts/remove.post.js +30 -0
  112. package/dist/routes/api/auth/accounts/remove.post.js.map +1 -0
  113. package/dist/routes/api/auth/accounts/select.post.d.ts +31 -0
  114. package/dist/routes/api/auth/accounts/select.post.d.ts.map +1 -0
  115. package/dist/routes/api/auth/accounts/select.post.js +26 -0
  116. package/dist/routes/api/auth/accounts/select.post.js.map +1 -0
  117. package/dist/routes/api/auth/email/verify/post.d.ts +1 -0
  118. package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -1
  119. package/dist/routes/api/auth/index.d.ts +86 -0
  120. package/dist/routes/api/auth/index.d.ts.map +1 -1
  121. package/dist/routes/api/auth/index.js +6 -0
  122. package/dist/routes/api/auth/index.js.map +1 -1
  123. package/dist/routes/api/auth/login/post.d.ts +1 -0
  124. package/dist/routes/api/auth/login/post.d.ts.map +1 -1
  125. package/dist/routes/api/auth/login/post.js +15 -16
  126. package/dist/routes/api/auth/login/post.js.map +1 -1
  127. package/dist/routes/api/auth/passkey/verify/post.d.ts +1 -0
  128. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -1
  129. package/dist/routes/api/auth/register/post.d.ts +1 -0
  130. package/dist/routes/api/auth/register/post.d.ts.map +1 -1
  131. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts +1 -0
  132. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -1
  133. package/dist/routes/api/auth/totp/verify/post.d.ts +1 -0
  134. package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -1
  135. package/dist/routes/api/config/get.d.ts +3 -0
  136. package/dist/routes/api/config/get.d.ts.map +1 -1
  137. package/dist/routes/api/config/get.js +7 -1
  138. package/dist/routes/api/config/get.js.map +1 -1
  139. package/dist/routes/api/config/index.d.ts +3 -0
  140. package/dist/routes/api/config/index.d.ts.map +1 -1
  141. package/dist/routes/api/consent/index.d.ts +10 -0
  142. package/dist/routes/api/consent/index.d.ts.map +1 -1
  143. package/dist/routes/api/consent/post.d.ts +10 -0
  144. package/dist/routes/api/consent/post.d.ts.map +1 -1
  145. package/dist/routes/api/consent/post.js +60 -1
  146. package/dist/routes/api/consent/post.js.map +1 -1
  147. package/dist/routes/api/index.d.ts +310 -26
  148. package/dist/routes/api/index.d.ts.map +1 -1
  149. package/dist/routes/api/index.js +2 -0
  150. package/dist/routes/api/index.js.map +1 -1
  151. package/dist/routes/api/user/index.d.ts +3 -0
  152. package/dist/routes/api/user/index.d.ts.map +1 -1
  153. package/dist/routes/api/user/passkeys/register/verify/post.d.ts +1 -0
  154. package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -1
  155. package/dist/routes/api/user/session/get.d.ts +1 -0
  156. package/dist/routes/api/user/session/get.d.ts.map +1 -1
  157. package/dist/routes/api/user/totp/confirm/post.d.ts +1 -0
  158. package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -1
  159. package/dist/routes/index.d.ts +303 -16
  160. package/dist/routes/index.d.ts.map +1 -1
  161. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts.map +1 -1
  162. package/dist/routes/oauth/.well-known/openid-configuration/get.js +1 -0
  163. package/dist/routes/oauth/.well-known/openid-configuration/get.js.map +1 -1
  164. package/dist/routes/oauth/authorize/get.d.ts +2 -0
  165. package/dist/routes/oauth/authorize/get.d.ts.map +1 -1
  166. package/dist/routes/oauth/authorize/get.js +20 -1
  167. package/dist/routes/oauth/authorize/get.js.map +1 -1
  168. package/dist/routes/oauth/client-auth.js +1 -1
  169. package/dist/routes/oauth/client-auth.js.map +1 -1
  170. package/dist/routes/oauth/cors.d.ts.map +1 -1
  171. package/dist/routes/oauth/cors.js +8 -3
  172. package/dist/routes/oauth/cors.js.map +1 -1
  173. package/dist/routes/oauth/device/get-post.d.ts +2 -1
  174. package/dist/routes/oauth/device/get-post.d.ts.map +1 -1
  175. package/dist/routes/oauth/device/get-post.js +15 -9
  176. package/dist/routes/oauth/device/get-post.js.map +1 -1
  177. package/dist/routes/oauth/device-authorization/post.d.ts.map +1 -1
  178. package/dist/routes/oauth/device-authorization/post.js +2 -0
  179. package/dist/routes/oauth/device-authorization/post.js.map +1 -1
  180. package/dist/routes/oauth/end-session/get.d.ts.map +1 -1
  181. package/dist/routes/oauth/end-session/get.js +17 -8
  182. package/dist/routes/oauth/end-session/get.js.map +1 -1
  183. package/dist/routes/oauth/index.d.ts +5 -2
  184. package/dist/routes/oauth/index.d.ts.map +1 -1
  185. package/dist/routes/oauth/revoke/post.d.ts.map +1 -1
  186. package/dist/routes/oauth/revoke/post.js +2 -0
  187. package/dist/routes/oauth/revoke/post.js.map +1 -1
  188. package/dist/routes/oauth/token/post.d.ts +1 -1
  189. package/dist/routes/oauth/token/post.d.ts.map +1 -1
  190. package/dist/routes/oauth/token/post.js +10 -6
  191. package/dist/routes/oauth/token/post.js.map +1 -1
  192. package/dist/routes/oauth/userinfo/get.d.ts.map +1 -1
  193. package/dist/routes/oauth/userinfo/get.js +12 -6
  194. package/dist/routes/oauth/userinfo/get.js.map +1 -1
  195. package/dist/schemas/error.d.ts +56 -6
  196. package/dist/schemas/error.d.ts.map +1 -1
  197. package/dist/schemas/error.js +4 -2
  198. package/dist/schemas/error.js.map +1 -1
  199. package/dist/schemas/field.d.ts +1 -4
  200. package/dist/schemas/field.d.ts.map +1 -1
  201. package/dist/schemas/field.js +3 -1
  202. package/dist/schemas/field.js.map +1 -1
  203. package/dist/schemas/response.d.ts +96 -0
  204. package/dist/schemas/response.d.ts.map +1 -1
  205. package/dist/schemas/response.js +29 -0
  206. package/dist/schemas/response.js.map +1 -1
  207. package/dist/services/account-selection.service.d.ts +39 -0
  208. package/dist/services/account-selection.service.d.ts.map +1 -0
  209. package/dist/services/account-selection.service.js +79 -0
  210. package/dist/services/account-selection.service.js.map +1 -0
  211. package/dist/services/container.d.ts +22 -0
  212. package/dist/services/container.d.ts.map +1 -1
  213. package/dist/services/jwt.service.js +3 -3
  214. package/dist/services/jwt.service.js.map +1 -1
  215. package/dist/services/oauth-authorize.service.d.ts +24 -1
  216. package/dist/services/oauth-authorize.service.d.ts.map +1 -1
  217. package/dist/services/oauth-authorize.service.js +236 -12
  218. package/dist/services/oauth-authorize.service.js.map +1 -1
  219. package/dist/services/oauth-token.service.d.ts +2 -3
  220. package/dist/services/oauth-token.service.d.ts.map +1 -1
  221. package/dist/services/oauth-token.service.js +18 -10
  222. package/dist/services/oauth-token.service.js.map +1 -1
  223. package/dist/services/user.service.d.ts +28 -1
  224. package/dist/services/user.service.d.ts.map +1 -1
  225. package/dist/services/user.service.js +104 -0
  226. package/dist/services/user.service.js.map +1 -1
  227. package/package.json +1 -1
  228. package/public/assets/2fa-BMEIiDXv.js +2 -0
  229. package/public/assets/2fa-BMEIiDXv.js.map +1 -0
  230. package/public/assets/2fa-BhCgCfEc.js +2 -0
  231. package/public/assets/2fa-BhCgCfEc.js.map +1 -0
  232. package/public/assets/2fa-Cteolf9l.js +2 -0
  233. package/public/assets/2fa-Cteolf9l.js.map +1 -0
  234. package/public/assets/2fa-E0x3Samn.js +2 -0
  235. package/public/assets/2fa-E0x3Samn.js.map +1 -0
  236. package/public/assets/CheckCircle.es-MnJIACCe.js +2 -0
  237. package/public/assets/CheckCircle.es-MnJIACCe.js.map +1 -0
  238. package/public/assets/EnvelopeSimple.es-BZ7u3LYh.js +2 -0
  239. package/public/assets/EnvelopeSimple.es-BZ7u3LYh.js.map +1 -0
  240. package/public/assets/Fingerprint.es-CW755VWD.js +2 -0
  241. package/public/assets/Fingerprint.es-CW755VWD.js.map +1 -0
  242. package/public/assets/IconBase.es-d5KP98Ac.js +2 -0
  243. package/public/assets/IconBase.es-d5KP98Ac.js.map +1 -0
  244. package/public/assets/Key.es-l5aSxw0I.js +2 -0
  245. package/public/assets/Key.es-l5aSxw0I.js.map +1 -0
  246. package/public/assets/Link.es-B-IJS4Q5.js +2 -0
  247. package/public/assets/Link.es-B-IJS4Q5.js.map +1 -0
  248. package/public/assets/Lock.es-Cb_uwQly.js +2 -0
  249. package/public/assets/Lock.es-Cb_uwQly.js.map +1 -0
  250. package/public/assets/ShieldCheck.es-CscPsYbC.js +2 -0
  251. package/public/assets/ShieldCheck.es-CscPsYbC.js.map +1 -0
  252. package/public/assets/Trash.es-BepW9BwV.js +2 -0
  253. package/public/assets/Trash.es-BepW9BwV.js.map +1 -0
  254. package/public/assets/Warning.es-BPpZIJYZ.js +2 -0
  255. package/public/assets/Warning.es-BPpZIJYZ.js.map +1 -0
  256. package/public/assets/X.es-IwdB4hWT.js +2 -0
  257. package/public/assets/X.es-IwdB4hWT.js.map +1 -0
  258. package/public/assets/admin-CXJ0z2QN.js +2 -0
  259. package/public/assets/admin-CXJ0z2QN.js.map +1 -0
  260. package/public/assets/admin-users-CTAQJl7w.js +2 -0
  261. package/public/assets/admin-users-CTAQJl7w.js.map +1 -0
  262. package/public/assets/alert-CSXqgDVi.js +2 -0
  263. package/public/assets/alert-CSXqgDVi.js.map +1 -0
  264. package/public/assets/consent-B17hGrta.js +2 -0
  265. package/public/assets/consent-B17hGrta.js.map +1 -0
  266. package/public/assets/consent-C-h_pWHQ.js +2 -0
  267. package/public/assets/consent-C-h_pWHQ.js.map +1 -0
  268. package/public/assets/email-BMEIiDXv.js +2 -0
  269. package/public/assets/email-BMEIiDXv.js.map +1 -0
  270. package/public/assets/email-DjE7mqnX.js +2 -0
  271. package/public/assets/email-DjE7mqnX.js.map +1 -0
  272. package/public/assets/error-BKXsXhdR.js +2 -0
  273. package/public/assets/error-BKXsXhdR.js.map +1 -0
  274. package/public/assets/footer-link-Ib1Hd-fr.js +2 -0
  275. package/public/assets/footer-link-Ib1Hd-fr.js.map +1 -0
  276. package/public/assets/forgot-BMEIiDXv.js +2 -0
  277. package/public/assets/forgot-BMEIiDXv.js.map +1 -0
  278. package/public/assets/forgot-C9zSfaX9.js +2 -0
  279. package/public/assets/forgot-C9zSfaX9.js.map +1 -0
  280. package/public/assets/icon-input-8iU7PNzd.js +2 -0
  281. package/public/assets/icon-input-8iU7PNzd.js.map +1 -0
  282. package/public/assets/index-BmfaaNx6.js +11 -0
  283. package/public/assets/index-BmfaaNx6.js.map +1 -0
  284. package/public/assets/index-D6-1JDnX.css +2 -0
  285. package/public/assets/login-BMEIiDXv.js +2 -0
  286. package/public/assets/login-BMEIiDXv.js.map +1 -0
  287. package/public/assets/login-DG1Yfmb8.js +2 -0
  288. package/public/assets/login-DG1Yfmb8.js.map +1 -0
  289. package/public/assets/modal-BjnpKlXn.js +2 -0
  290. package/public/assets/modal-BjnpKlXn.js.map +1 -0
  291. package/public/assets/mutationOptions-Dfvzj6n2.js +2 -0
  292. package/public/assets/mutationOptions-Dfvzj6n2.js.map +1 -0
  293. package/public/assets/page-header-BYMFSGfT.js +2 -0
  294. package/public/assets/page-header-BYMFSGfT.js.map +1 -0
  295. package/public/assets/page-layout-C475gs09.js +2 -0
  296. package/public/assets/page-layout-C475gs09.js.map +1 -0
  297. package/public/assets/passkey-BDrX3jVg.js +2 -0
  298. package/public/assets/passkey-BDrX3jVg.js.map +1 -0
  299. package/public/assets/passkey-C-h8Fvqn.js +2 -0
  300. package/public/assets/passkey-C-h8Fvqn.js.map +1 -0
  301. package/public/assets/passkey-e6uvApHa.js +2 -0
  302. package/public/assets/passkey-e6uvApHa.js.map +1 -0
  303. package/public/assets/password-86C-hCze.js +2 -0
  304. package/public/assets/password-86C-hCze.js.map +1 -0
  305. package/public/assets/password-BMEIiDXv.js +2 -0
  306. package/public/assets/password-BMEIiDXv.js.map +1 -0
  307. package/public/assets/password-reset-XZJTgJi3.js +2 -0
  308. package/public/assets/password-reset-XZJTgJi3.js.map +1 -0
  309. package/public/assets/pin-input-BM1UizHr.js +2 -0
  310. package/public/assets/pin-input-BM1UizHr.js.map +1 -0
  311. package/public/assets/profile-8buOY6GT.js +2 -0
  312. package/public/assets/profile-8buOY6GT.js.map +1 -0
  313. package/public/assets/profile-DcpL_XUt.js +2 -0
  314. package/public/assets/profile-DcpL_XUt.js.map +1 -0
  315. package/public/assets/promise-OpBtq8tG.js +2 -0
  316. package/public/assets/promise-OpBtq8tG.js.map +1 -0
  317. package/public/assets/recovery-Csf6dtvj.js +2 -0
  318. package/public/assets/recovery-Csf6dtvj.js.map +1 -0
  319. package/public/assets/register-BMEIiDXv.js +2 -0
  320. package/public/assets/register-BMEIiDXv.js.map +1 -0
  321. package/public/assets/register-X6dycne4.js +2 -0
  322. package/public/assets/register-X6dycne4.js.map +1 -0
  323. package/public/assets/reset-1nsqPlxL.js +2 -0
  324. package/public/assets/reset-1nsqPlxL.js.map +1 -0
  325. package/public/assets/reset-BMEIiDXv.js +2 -0
  326. package/public/assets/reset-BMEIiDXv.js.map +1 -0
  327. package/public/assets/routes-CAIeH5mq.js +2 -0
  328. package/public/assets/routes-CAIeH5mq.js.map +1 -0
  329. package/public/assets/select-BMEIiDXv.js +2 -0
  330. package/public/assets/select-BMEIiDXv.js.map +1 -0
  331. package/public/assets/select-CDdb3jyc.js +2 -0
  332. package/public/assets/select-CDdb3jyc.js.map +1 -0
  333. package/public/assets/standard-schema-o4V-s4uY.js +2 -0
  334. package/public/assets/standard-schema-o4V-s4uY.js.map +1 -0
  335. package/public/assets/submit-button-Xx6DwLyh.js +2 -0
  336. package/public/assets/submit-button-Xx6DwLyh.js.map +1 -0
  337. package/public/assets/terms-CUhvMN9k.js +2 -0
  338. package/public/assets/terms-CUhvMN9k.js.map +1 -0
  339. package/public/assets/terms-DcpL_XUt.js +2 -0
  340. package/public/assets/terms-DcpL_XUt.js.map +1 -0
  341. package/public/assets/terms-checkbox-list-CdrbHxiF.js +2 -0
  342. package/public/assets/terms-checkbox-list-CdrbHxiF.js.map +1 -0
  343. package/public/assets/totp-DB9WqW4V.js +2 -0
  344. package/public/assets/totp-DB9WqW4V.js.map +1 -0
  345. package/public/assets/totp-NlqqRp4a.js +2 -0
  346. package/public/assets/totp-NlqqRp4a.js.map +1 -0
  347. package/public/assets/totp-UDT2P91H.js +2 -0
  348. package/public/assets/totp-UDT2P91H.js.map +1 -0
  349. package/public/assets/use-theme-cVUDAjtt.js +2 -0
  350. package/public/assets/use-theme-cVUDAjtt.js.map +1 -0
  351. package/public/assets/use-totp-setup-9fktn_he.js +3 -0
  352. package/public/assets/use-totp-setup-9fktn_he.js.map +1 -0
  353. package/public/assets/useMutation-Iu4AJCB4.js +2 -0
  354. package/public/assets/useMutation-Iu4AJCB4.js.map +1 -0
  355. package/public/assets/users-Bi7gjreq.js +2 -0
  356. package/public/assets/users-Bi7gjreq.js.map +1 -0
  357. package/public/assets/zod-BItJDQBQ.js +66 -0
  358. package/public/assets/zod-BItJDQBQ.js.map +1 -0
  359. package/public/index.html +6 -2
  360. package/public/assets/index-5_9rzim1.css +0 -2
  361. package/public/assets/index-BTGeW26-.js +0 -75
  362. package/public/assets/index-BTGeW26-.js.map +0 -1
@@ -6,7 +6,269 @@ import { type InitializeServicesOptions } from '../services/container.ts';
6
6
  export type CreateAppOptions = TinyAuthRuntimeConfigInput;
7
7
  export type CreateAppRuntimeOptions = InitializeServicesOptions;
8
8
  export declare function createApp(options: CreateAppOptions, runtimeOptions?: CreateAppRuntimeOptions): Promise<{
9
- app: import("hono/hono-base").HonoBase<import("../middleware/logger.ts").LoggerEnv & import("../middleware/session.ts").SessionEnv & import("../middleware/services.ts").ServicesEnv, import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
9
+ app: import("hono/hono-base").HonoBase<import("../middleware/logger.ts").LoggerEnv & import("../middleware/session.ts").SessionEnv & import("../middleware/services.ts").ServicesEnv, import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
10
+ "/admin/me": {
11
+ $get: {
12
+ input: {};
13
+ output: {
14
+ user: {
15
+ managed_by: "database" | "config";
16
+ sub: string;
17
+ email: string;
18
+ role: "user" | "admin";
19
+ email_verified: boolean;
20
+ email_verification_required: boolean;
21
+ has_password: boolean;
22
+ totp_registered: boolean;
23
+ totp_recovery_codes_missing: boolean;
24
+ second_factor_required: boolean;
25
+ passkey_count: number;
26
+ };
27
+ };
28
+ outputFormat: "json";
29
+ status: 200;
30
+ };
31
+ };
32
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
33
+ "/admin/users": {
34
+ $get: {
35
+ input: {
36
+ query: {
37
+ query?: string | string[];
38
+ page?: string | string[];
39
+ page_size?: string | string[];
40
+ include_deleted?: string | string[];
41
+ managed_by?: string | string[];
42
+ role?: string | string[];
43
+ };
44
+ };
45
+ output: {
46
+ users: {
47
+ managed_by: "database" | "config";
48
+ sub: string;
49
+ email: string;
50
+ role: "user" | "admin";
51
+ email_verified: boolean;
52
+ email_verification_required: boolean;
53
+ has_password: boolean;
54
+ totp_registered: boolean;
55
+ totp_recovery_codes_missing: boolean;
56
+ second_factor_required: boolean;
57
+ passkey_count: number;
58
+ deleted_at: string | null;
59
+ }[];
60
+ pagination: {
61
+ page: number;
62
+ page_size: number;
63
+ total: number;
64
+ };
65
+ };
66
+ outputFormat: "json";
67
+ status: 200;
68
+ };
69
+ };
70
+ } & {
71
+ "/admin/users": {
72
+ $post: {
73
+ input: {
74
+ json: {
75
+ email: string;
76
+ password: string;
77
+ role?: "user" | "admin" | undefined;
78
+ email_verified?: boolean | undefined;
79
+ };
80
+ };
81
+ output: {
82
+ user: {
83
+ managed_by: "database" | "config";
84
+ sub: string;
85
+ email: string;
86
+ role: "user" | "admin";
87
+ email_verified: boolean;
88
+ email_verification_required: boolean;
89
+ has_password: boolean;
90
+ totp_registered: boolean;
91
+ totp_recovery_codes_missing: boolean;
92
+ second_factor_required: boolean;
93
+ passkey_count: number;
94
+ deleted_at: string | null;
95
+ };
96
+ };
97
+ outputFormat: "json";
98
+ status: 201;
99
+ };
100
+ };
101
+ } & {
102
+ "/admin/users/:sub": {
103
+ $get: {
104
+ input: {
105
+ param: {
106
+ sub: string;
107
+ };
108
+ };
109
+ output: {
110
+ user: {
111
+ managed_by: "database" | "config";
112
+ sub: string;
113
+ email: string;
114
+ role: "user" | "admin";
115
+ email_verified: boolean;
116
+ email_verification_required: boolean;
117
+ has_password: boolean;
118
+ totp_registered: boolean;
119
+ totp_recovery_codes_missing: boolean;
120
+ second_factor_required: boolean;
121
+ passkey_count: number;
122
+ deleted_at: string | null;
123
+ };
124
+ };
125
+ outputFormat: "json";
126
+ status: 200;
127
+ };
128
+ };
129
+ } & {
130
+ "/admin/users/:sub": {
131
+ $patch: {
132
+ input: {
133
+ json: {
134
+ email?: string | undefined;
135
+ role?: "user" | "admin" | undefined;
136
+ email_verified?: boolean | undefined;
137
+ };
138
+ } & {
139
+ param: {
140
+ sub: string;
141
+ };
142
+ };
143
+ output: {
144
+ user: {
145
+ managed_by: "database" | "config";
146
+ sub: string;
147
+ email: string;
148
+ role: "user" | "admin";
149
+ email_verified: boolean;
150
+ email_verification_required: boolean;
151
+ has_password: boolean;
152
+ totp_registered: boolean;
153
+ totp_recovery_codes_missing: boolean;
154
+ second_factor_required: boolean;
155
+ passkey_count: number;
156
+ deleted_at: string | null;
157
+ };
158
+ };
159
+ outputFormat: "json";
160
+ status: 200;
161
+ };
162
+ };
163
+ } & {
164
+ "/admin/users/:sub": {
165
+ $delete: {
166
+ input: {
167
+ param: {
168
+ sub: string;
169
+ };
170
+ };
171
+ output: {
172
+ user: {
173
+ managed_by: "database" | "config";
174
+ sub: string;
175
+ email: string;
176
+ role: "user" | "admin";
177
+ email_verified: boolean;
178
+ email_verification_required: boolean;
179
+ has_password: boolean;
180
+ totp_registered: boolean;
181
+ totp_recovery_codes_missing: boolean;
182
+ second_factor_required: boolean;
183
+ passkey_count: number;
184
+ deleted_at: string | null;
185
+ };
186
+ };
187
+ outputFormat: "json";
188
+ status: 200;
189
+ };
190
+ };
191
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
192
+ "/auth/accounts": {
193
+ $get: {
194
+ input: {
195
+ query: {
196
+ client_id?: string | string[];
197
+ };
198
+ };
199
+ output: {
200
+ active_sub: string | null;
201
+ accounts: {
202
+ sub: import("@mikro-orm/core").Opt<string>;
203
+ email: string;
204
+ role: import("@mikro-orm/core").Opt<NonNullable<"user" | "admin">>;
205
+ current: boolean;
206
+ authenticated_at: number;
207
+ last_used_at: number;
208
+ }[];
209
+ allow_add_account: boolean;
210
+ allow_remove_account: boolean;
211
+ };
212
+ outputFormat: "json";
213
+ status: 200;
214
+ };
215
+ };
216
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
217
+ "/auth/accounts/select": {
218
+ $post: {
219
+ input: {
220
+ json: {
221
+ sub: string;
222
+ };
223
+ };
224
+ output: {
225
+ code: string;
226
+ message: string;
227
+ };
228
+ outputFormat: "json";
229
+ status: 400;
230
+ } | {
231
+ input: {
232
+ json: {
233
+ sub: string;
234
+ };
235
+ };
236
+ output: {
237
+ ok: true;
238
+ active_sub: string;
239
+ };
240
+ outputFormat: "json";
241
+ status: 200;
242
+ };
243
+ };
244
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
245
+ "/auth/accounts/remove": {
246
+ $post: {
247
+ input: {
248
+ json: {
249
+ sub: string;
250
+ };
251
+ };
252
+ output: {
253
+ code: string;
254
+ message: string;
255
+ };
256
+ outputFormat: "json";
257
+ status: 400;
258
+ } | {
259
+ input: {
260
+ json: {
261
+ sub: string;
262
+ };
263
+ };
264
+ output: {
265
+ ok: true;
266
+ };
267
+ outputFormat: "json";
268
+ status: 200;
269
+ };
270
+ };
271
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
10
272
  "/auth/login": {
11
273
  $post: {
12
274
  input: {
@@ -20,6 +282,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
20
282
  managed_by: "database" | "config";
21
283
  sub: string;
22
284
  email: string;
285
+ role: "user" | "admin";
23
286
  email_verified: boolean;
24
287
  email_verification_required: boolean;
25
288
  has_password: boolean;
@@ -67,6 +330,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
67
330
  managed_by: "database" | "config";
68
331
  sub: string;
69
332
  email: string;
333
+ role: "user" | "admin";
70
334
  email_verified: boolean;
71
335
  email_verification_required: boolean;
72
336
  has_password: boolean;
@@ -128,6 +392,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
128
392
  managed_by: "database" | "config";
129
393
  sub: string;
130
394
  email: string;
395
+ role: "user" | "admin";
131
396
  email_verified: boolean;
132
397
  email_verification_required: boolean;
133
398
  has_password: boolean;
@@ -173,6 +438,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
173
438
  managed_by: "database" | "config";
174
439
  sub: string;
175
440
  email: string;
441
+ role: "user" | "admin";
176
442
  email_verified: boolean;
177
443
  email_verification_required: boolean;
178
444
  has_password: boolean;
@@ -199,6 +465,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
199
465
  managed_by: "database" | "config";
200
466
  sub: string;
201
467
  email: string;
468
+ role: "user" | "admin";
202
469
  email_verified: boolean;
203
470
  email_verification_required: boolean;
204
471
  has_password: boolean;
@@ -265,6 +532,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
265
532
  managed_by: "database" | "config";
266
533
  sub: string;
267
534
  email: string;
535
+ role: "user" | "admin";
268
536
  email_verified: boolean;
269
537
  email_verification_required: boolean;
270
538
  has_password: boolean;
@@ -315,6 +583,9 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
315
583
  email: {
316
584
  enabled: boolean;
317
585
  };
586
+ admin: {
587
+ enabled: boolean;
588
+ };
318
589
  auth: {
319
590
  password: {
320
591
  enabled: boolean;
@@ -393,6 +664,16 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
393
664
  nonce?: string | undefined;
394
665
  code_challenge?: string | undefined;
395
666
  code_challenge_method?: "S256" | "plain" | undefined;
667
+ prompt?: string | undefined;
668
+ max_age?: unknown;
669
+ display?: "page" | "popup" | "touch" | "wap" | undefined;
670
+ response_mode?: "query" | "fragment" | "form_post" | undefined;
671
+ login_hint?: string | undefined;
672
+ ui_locales?: string | undefined;
673
+ id_token_hint?: string | undefined;
674
+ acr_values?: string | undefined;
675
+ account_selected?: unknown;
676
+ account_selection_state?: string | undefined;
396
677
  };
397
678
  };
398
679
  output: {
@@ -465,6 +746,15 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
465
746
  status: 200;
466
747
  };
467
748
  };
749
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
750
+ "/docs": {
751
+ $get: {
752
+ input: {};
753
+ output: {};
754
+ outputFormat: string;
755
+ status: import("hono/utils/http-status").StatusCode;
756
+ };
757
+ };
468
758
  }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
469
759
  "/terms": {
470
760
  $get: {
@@ -517,15 +807,6 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
517
807
  status: 200;
518
808
  };
519
809
  };
520
- }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
521
- "/docs": {
522
- $get: {
523
- input: {};
524
- output: {};
525
- outputFormat: string;
526
- status: import("hono/utils/http-status").StatusCode;
527
- };
528
- };
529
810
  }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
530
811
  "/user": {
531
812
  $delete: {
@@ -555,6 +836,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
555
836
  managed_by: "database" | "config";
556
837
  sub: string;
557
838
  email: string;
839
+ role: "user" | "admin";
558
840
  email_verified: boolean;
559
841
  email_verification_required: boolean;
560
842
  has_password: boolean;
@@ -673,6 +955,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
673
955
  managed_by: "database" | "config";
674
956
  sub: string;
675
957
  email: string;
958
+ role: "user" | "admin";
676
959
  email_verified: boolean;
677
960
  email_verification_required: boolean;
678
961
  has_password: boolean;
@@ -830,6 +1113,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
830
1113
  managed_by: "database" | "config";
831
1114
  sub: string;
832
1115
  email: string;
1116
+ role: "user" | "admin";
833
1117
  email_verified: boolean;
834
1118
  email_verification_required: boolean;
835
1119
  has_password: boolean;
@@ -857,7 +1141,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
857
1141
  status: 200;
858
1142
  };
859
1143
  };
860
- }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").BlankSchema | import("hono/types").MergeSchemaPath<{
1144
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
861
1145
  "/oauth/:provider/authorize": {
862
1146
  $get: {
863
1147
  input: {
@@ -875,7 +1159,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
875
1159
  status: 302;
876
1160
  };
877
1161
  };
878
- }, "/"> | import("hono/types").MergeSchemaPath<{
1162
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
879
1163
  "/oauth/:provider/callback": {
880
1164
  $get: {
881
1165
  input: {
@@ -914,7 +1198,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
914
1198
  status: any;
915
1199
  };
916
1200
  };
917
- }, "/"> | import("hono/types").MergeSchemaPath<{
1201
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
918
1202
  "/oauth/:provider/callback": {
919
1203
  $post: {
920
1204
  input: {
@@ -953,7 +1237,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
953
1237
  status: any;
954
1238
  };
955
1239
  };
956
- }, "/"> | import("hono/types").MergeSchemaPath<{
1240
+ }, "/">, "/"> | import("hono/types").MergeSchemaPath<import("hono/types").MergeSchemaPath<{
957
1241
  "/oauth/:provider": {
958
1242
  $delete: {
959
1243
  input: {
@@ -984,6 +1268,8 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
984
1268
  prompt?: string | string[];
985
1269
  max_age?: string | string[];
986
1270
  reauthenticated?: string | string[];
1271
+ account_selected?: string | string[];
1272
+ account_selection_state?: string | string[];
987
1273
  display?: string | string[];
988
1274
  response_mode?: string | string[];
989
1275
  login_hint?: string | string[];
@@ -1033,7 +1319,8 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
1033
1319
  $post: {
1034
1320
  input: {
1035
1321
  form: {
1036
- user_code: string;
1322
+ user_code: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1323
+ decision?: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1037
1324
  };
1038
1325
  };
1039
1326
  output: {
@@ -1080,7 +1367,7 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
1080
1367
  $post: {
1081
1368
  input: {
1082
1369
  form: {
1083
- grant_type: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1370
+ grant_type?: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1084
1371
  code?: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1085
1372
  redirect_uri?: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
1086
1373
  client_id?: import("hono/types").ParsedFormValue | import("hono/types").ParsedFormValue[];
@@ -1309,6 +1596,9 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
1309
1596
  enabled: boolean;
1310
1597
  retention: string;
1311
1598
  };
1599
+ admin: {
1600
+ enabled: boolean;
1601
+ };
1312
1602
  logging: {
1313
1603
  level: "error" | "trace" | "debug" | "info" | "warn" | "fatal" | "silent";
1314
1604
  format: "json" | "pretty";
@@ -1339,6 +1629,21 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
1339
1629
  rp_id?: string | undefined;
1340
1630
  origins?: string[] | undefined;
1341
1631
  };
1632
+ account_selection: {
1633
+ enabled: boolean;
1634
+ mode: "always" | "oidc_prompt" | "disabled" | "smart";
1635
+ remember_accounts: {
1636
+ enabled: boolean;
1637
+ max_accounts: number;
1638
+ ttl: string;
1639
+ };
1640
+ allow_add_account: boolean;
1641
+ allow_remove_account: boolean;
1642
+ login_hint: {
1643
+ behavior: "prefer" | "ignore" | "require_match";
1644
+ };
1645
+ prompt_none_error: "login_required" | "account_selection_required";
1646
+ };
1342
1647
  };
1343
1648
  security: {
1344
1649
  session_secret: string;
@@ -1395,6 +1700,10 @@ export declare function createApp(options: CreateAppOptions, runtimeOptions?: Cr
1395
1700
  skip_consent: boolean;
1396
1701
  logo_uri?: string | undefined;
1397
1702
  client_secret?: string | undefined;
1703
+ account_selection?: {
1704
+ mode: "inherit" | "never" | "always" | "oidc_prompt" | "smart";
1705
+ allow_add_account?: boolean | undefined;
1706
+ } | undefined;
1398
1707
  }[];
1399
1708
  users: {
1400
1709
  sub: string;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/entrypoints/app.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,wBAAwB,CAAC;AAWhC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC1D,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEhE,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,EACzB,cAAc,GAAE,uBAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkF7C;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/entrypoints/app.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,0BAA0B,EAEhC,MAAM,wBAAwB,CAAC;AAYhC,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;AAC1D,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEhE,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,EACzB,cAAc,GAAE,uBAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyF7C;AAED,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { RequestContext } from '@mikro-orm/core';
2
2
  import { Hono } from 'hono';
3
3
  import { generateSpecs } from 'hono-openapi';
4
4
  import { TinyAuthRuntimeConfigSchema, } from "../lib/config/index.js";
5
+ import { parseDurationToMs } from "../lib/duration.js";
5
6
  import { createLogger } from "../lib/logger.js";
6
7
  import { createOpenApiDocumentation } from "../lib/openapi.js";
7
8
  import { csrfProtection } from "../middleware/csrf.js";
@@ -25,12 +26,9 @@ export async function createApp(options, runtimeOptions = {}) {
25
26
  branding: config.branding,
26
27
  server: config.server,
27
28
  });
28
- const app = new Hono()
29
- .onError((err, c) => {
29
+ const handleError = (err, c) => {
30
30
  if (err instanceof TinyAuthError) {
31
- if (err.code === 'insufficient_scope') {
32
- c.header('WWW-Authenticate', 'Bearer error="insufficient_scope", scope="openid"');
33
- }
31
+ setBearerAuthChallenge(c, err);
34
32
  if (c.req.path.startsWith('/oauth/')) {
35
33
  return c.json(toOAuthErrorJson(err), err.status);
36
34
  }
@@ -39,10 +37,17 @@ export async function createApp(options, runtimeOptions = {}) {
39
37
  logger.error({ err }, 'Unhandled error');
40
38
  const internalErr = new e.InternalServerError.Error();
41
39
  return c.json(internalErr.toJson(), internalErr.status);
42
- })
40
+ };
41
+ const app = new Hono()
42
+ .onError(handleError)
43
43
  .use('*', loggerMiddleware(logger))
44
44
  .use('*', firstPartyCors(config.server.public_origin))
45
- .use('*', sessionMiddleware(config.security.session_secret, config.server.public_origin.startsWith('https')))
45
+ .use('*', sessionMiddleware(config.security.session_secret, config.server.public_origin.startsWith('https'), {
46
+ enabled: config.auth.account_selection.enabled &&
47
+ config.auth.account_selection.remember_accounts.enabled,
48
+ maxAccounts: config.auth.account_selection.remember_accounts.max_accounts,
49
+ ttlMs: parseDurationToMs(config.auth.account_selection.remember_accounts.ttl),
50
+ }))
46
51
  .use('*', trustedProxyGuard(config.server.trust_proxy))
47
52
  .use('/api/*', csrfProtection(config.server.public_origin))
48
53
  .use('/oauth/device', csrfProtection(config.server.public_origin))
@@ -95,6 +100,23 @@ function firstPartyCors(publicOrigin) {
95
100
  return undefined;
96
101
  };
97
102
  }
103
+ function setBearerAuthChallenge(c, err) {
104
+ switch (err.code) {
105
+ case 'MISSING_AUTHORIZATION_HEADER':
106
+ c.header('WWW-Authenticate', 'Bearer');
107
+ return;
108
+ case 'INVALID_AUTHORIZATION_HEADER_FORMAT':
109
+ case 'MISSING_BEARER_TOKEN':
110
+ case 'INVALID_ACCESS_TOKEN':
111
+ c.header('WWW-Authenticate', 'Bearer error="invalid_token"');
112
+ return;
113
+ case 'insufficient_scope':
114
+ c.header('WWW-Authenticate', 'Bearer error="insufficient_scope", scope="openid"');
115
+ return;
116
+ default:
117
+ return;
118
+ }
119
+ }
98
120
  function toOAuthErrorJson(err) {
99
121
  return {
100
122
  ...err.toJson(),
@@ -129,6 +151,10 @@ function toOAuthErrorCode(err) {
129
151
  return 'authorization_pending';
130
152
  case 'slow_down':
131
153
  return 'slow_down';
154
+ case 'expired_token':
155
+ return 'expired_token';
156
+ case 'access_denied':
157
+ return 'access_denied';
132
158
  default:
133
159
  return 'invalid_request';
134
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/entrypoints/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/entrypoints/app.ts"],"names":[],"mappings":"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"}