@authup/server-core 1.0.0-beta.40 → 1.0.0-beta.42

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 (900) hide show
  1. package/dist/adapters/database/cache/module.mjs.map +1 -1
  2. package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
  3. package/dist/adapters/database/data-source/singleton.mjs.map +1 -1
  4. package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
  5. package/dist/adapters/database/domains/client/subscriber.mjs.map +1 -1
  6. package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
  7. package/dist/adapters/database/domains/client-permission/subscriber.mjs.map +1 -1
  8. package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
  9. package/dist/adapters/database/domains/client-role/subscriber.mjs.map +1 -1
  10. package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
  11. package/dist/adapters/database/domains/client-scope/subscriber.mjs.map +1 -1
  12. package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
  13. package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
  14. package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
  15. package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
  16. package/dist/adapters/database/domains/identity-provider-account/subscriber.mjs.map +1 -1
  17. package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
  18. package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
  19. package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
  20. package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
  21. package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
  22. package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
  23. package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
  24. package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
  25. package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
  26. package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
  27. package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
  28. package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
  29. package/dist/adapters/database/domains/policy/subscriber.mjs.map +1 -1
  30. package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
  31. package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
  32. package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
  33. package/dist/adapters/database/domains/realm/repository.mjs.map +1 -1
  34. package/dist/adapters/database/domains/realm/subscriber.mjs.map +1 -1
  35. package/dist/adapters/database/domains/robot/entity.mjs.map +1 -1
  36. package/dist/adapters/database/domains/robot/subscriber.mjs.map +1 -1
  37. package/dist/adapters/database/domains/robot-permission/entity.mjs.map +1 -1
  38. package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +1 -1
  39. package/dist/adapters/database/domains/robot-role/entity.mjs.map +1 -1
  40. package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +1 -1
  41. package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
  42. package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
  43. package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
  44. package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
  45. package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
  46. package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
  47. package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
  48. package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
  49. package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
  50. package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
  51. package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
  52. package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
  53. package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
  54. package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
  55. package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
  56. package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
  57. package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
  58. package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
  59. package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
  60. package/dist/adapters/database/errors/conflict.d.ts +2 -2
  61. package/dist/adapters/database/errors/conflict.d.ts.map +1 -1
  62. package/dist/adapters/database/errors/conflict.mjs +6 -3
  63. package/dist/adapters/database/errors/conflict.mjs.map +1 -1
  64. package/dist/adapters/database/event-publisher/module.mjs.map +1 -1
  65. package/dist/adapters/database/extra-attribute-repository/adapter.mjs.map +1 -1
  66. package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
  67. package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
  68. package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
  69. package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
  70. package/dist/adapters/database/logger/module.mjs.map +1 -1
  71. package/dist/adapters/database/migrations/mysql/1673449341125-Default.mjs.map +1 -1
  72. package/dist/adapters/database/migrations/mysql/1689597906910-Default.mjs.map +1 -1
  73. package/dist/adapters/database/migrations/mysql/1718790373914-Default.mjs.map +1 -1
  74. package/dist/adapters/database/migrations/mysql/1722673916392-Default.mjs.map +1 -1
  75. package/dist/adapters/database/migrations/mysql/1740991051622-Default.mjs.map +1 -1
  76. package/dist/adapters/database/migrations/mysql/1766830857009-Default.mjs.map +1 -1
  77. package/dist/adapters/database/migrations/mysql/1774800953474-Default.mjs.map +1 -1
  78. package/dist/adapters/database/migrations/postgres/1673449341125-Default.mjs.map +1 -1
  79. package/dist/adapters/database/migrations/postgres/1689597906910-Default.mjs.map +1 -1
  80. package/dist/adapters/database/migrations/postgres/1718790373914-Default.mjs.map +1 -1
  81. package/dist/adapters/database/migrations/postgres/1722673916392-Default.mjs.map +1 -1
  82. package/dist/adapters/database/migrations/postgres/1740991051622-Default.mjs.map +1 -1
  83. package/dist/adapters/database/migrations/postgres/1766830857009-Default.mjs.map +1 -1
  84. package/dist/adapters/database/migrations/postgres/1774800953474-Default.mjs.map +1 -1
  85. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +5 -8
  86. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
  87. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +8 -10
  88. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  89. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +3 -3
  90. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  91. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +15 -14
  92. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  93. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +2 -2
  94. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  95. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +8 -8
  96. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  97. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts +2 -2
  98. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts.map +1 -1
  99. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +4 -4
  100. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  101. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +2 -2
  102. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  103. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +6 -6
  104. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  105. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -2
  106. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  107. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +12 -11
  108. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  109. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +2 -2
  110. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
  111. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +5 -5
  112. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  113. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -2
  114. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  115. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts +2 -2
  116. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts.map +1 -1
  117. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +15 -14
  118. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
  119. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts +2 -2
  120. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  121. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +16 -13
  122. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  123. package/dist/adapters/http/controllers/entities/client/module.d.ts +9 -6
  124. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  125. package/dist/adapters/http/controllers/entities/client/module.mjs +54 -65
  126. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  127. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +8 -5
  128. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
  129. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +35 -48
  130. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  131. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
  132. package/dist/adapters/http/controllers/entities/client-role/module.d.ts +7 -4
  133. package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
  134. package/dist/adapters/http/controllers/entities/client-role/module.mjs +27 -40
  135. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  136. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
  137. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +7 -4
  138. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
  139. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +27 -40
  140. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  141. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
  142. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +8 -6
  143. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
  144. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +35 -48
  145. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  146. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +10 -9
  147. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  148. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +92 -114
  149. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  150. package/dist/adapters/http/controllers/entities/permission/module.d.ts +13 -17
  151. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  152. package/dist/adapters/http/controllers/entities/permission/module.mjs +60 -112
  153. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  154. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +7 -4
  155. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
  156. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +27 -40
  157. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  158. package/dist/adapters/http/controllers/entities/policy/module.d.ts +14 -16
  159. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  160. package/dist/adapters/http/controllers/entities/policy/module.mjs +65 -106
  161. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  162. package/dist/adapters/http/controllers/entities/policy/utils/attributes-validator.mjs.map +1 -1
  163. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.map +1 -1
  164. package/dist/adapters/http/controllers/entities/realm/module.d.ts +13 -8
  165. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  166. package/dist/adapters/http/controllers/entities/realm/module.mjs +55 -74
  167. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  168. package/dist/adapters/http/controllers/entities/robot/module.d.ts +9 -6
  169. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
  170. package/dist/adapters/http/controllers/entities/robot/module.mjs +54 -67
  171. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
  172. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +8 -5
  173. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +1 -1
  174. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +35 -48
  175. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
  176. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +1 -1
  177. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +7 -4
  178. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +1 -1
  179. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +27 -40
  180. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
  181. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +1 -1
  182. package/dist/adapters/http/controllers/entities/role/module.d.ts +9 -6
  183. package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
  184. package/dist/adapters/http/controllers/entities/role/module.mjs +42 -57
  185. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  186. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +8 -5
  187. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
  188. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +35 -48
  189. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  190. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
  191. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +8 -5
  192. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
  193. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +35 -48
  194. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  195. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
  196. package/dist/adapters/http/controllers/entities/scope/module.d.ts +9 -6
  197. package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
  198. package/dist/adapters/http/controllers/entities/scope/module.mjs +42 -57
  199. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  200. package/dist/adapters/http/controllers/entities/user/module.d.ts +9 -6
  201. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  202. package/dist/adapters/http/controllers/entities/user/module.mjs +48 -59
  203. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  204. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +8 -5
  205. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
  206. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +35 -48
  207. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  208. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
  209. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +8 -5
  210. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
  211. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +35 -48
  212. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  213. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
  214. package/dist/adapters/http/controllers/entities/user-role/module.d.ts +7 -4
  215. package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
  216. package/dist/adapters/http/controllers/entities/user-role/module.mjs +27 -40
  217. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  218. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
  219. package/dist/adapters/http/controllers/workflows/activate/module.d.ts +3 -2
  220. package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
  221. package/dist/adapters/http/controllers/workflows/activate/module.mjs +6 -11
  222. package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
  223. package/dist/adapters/http/controllers/workflows/activate/validator.mjs.map +1 -1
  224. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +7 -5
  225. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  226. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +21 -22
  227. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  228. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts +5 -3
  229. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  230. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +15 -18
  231. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  232. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts +6 -3
  233. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  234. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +20 -30
  235. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  236. package/dist/adapters/http/controllers/workflows/openid/module.d.ts.map +1 -1
  237. package/dist/adapters/http/controllers/workflows/openid/module.mjs +10 -7
  238. package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
  239. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +3 -3
  240. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
  241. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -11
  242. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
  243. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +3 -3
  244. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
  245. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -11
  246. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
  247. package/dist/adapters/http/controllers/workflows/register/module.d.ts +3 -3
  248. package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
  249. package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -11
  250. package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
  251. package/dist/adapters/http/controllers/workflows/status/module.d.ts.map +1 -1
  252. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  253. package/dist/adapters/http/controllers/workflows/token/module.d.ts +5 -5
  254. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  255. package/dist/adapters/http/controllers/workflows/token/module.mjs +26 -27
  256. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  257. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts +2 -2
  258. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts.map +1 -1
  259. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs +8 -7
  260. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
  261. package/dist/adapters/http/controllers/workflows/token/utils/validator.mjs.map +1 -1
  262. package/dist/adapters/http/index.d.ts +0 -2
  263. package/dist/adapters/http/index.d.ts.map +1 -1
  264. package/dist/adapters/http/index.mjs +7 -7
  265. package/dist/adapters/http/middleware/built-in/assets.d.ts +1 -0
  266. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  267. package/dist/adapters/http/middleware/built-in/assets.mjs +9 -9
  268. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  269. package/dist/adapters/http/middleware/built-in/authorization/factory.d.ts.map +1 -1
  270. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs +5 -2
  271. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
  272. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +4 -10
  273. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  274. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +25 -40
  275. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  276. package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
  277. package/dist/adapters/http/middleware/built-in/cors.d.ts +1 -1
  278. package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
  279. package/dist/adapters/http/middleware/built-in/cors.mjs +18 -10
  280. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  281. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  282. package/dist/adapters/http/middleware/built-in/error.mjs +9 -18
  283. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  284. package/dist/adapters/http/middleware/built-in/index.d.ts +1 -0
  285. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  286. package/dist/adapters/http/middleware/built-in/index.mjs +5 -2
  287. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts +2 -2
  288. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts.map +1 -1
  289. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs +3 -3
  290. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
  291. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts +2 -2
  292. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts.map +1 -1
  293. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +4 -4
  294. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
  295. package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
  296. package/dist/adapters/http/middleware/built-in/logger.mjs +21 -29
  297. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  298. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  299. package/dist/adapters/http/middleware/built-in/prometheus.mjs +2 -3
  300. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  301. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  302. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -2
  303. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  304. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts +4 -0
  305. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts.map +1 -0
  306. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs +14 -0
  307. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs.map +1 -0
  308. package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts +4 -0
  309. package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts.map +1 -0
  310. package/dist/adapters/http/middleware/built-in/realm-resolver/index.mjs +3 -0
  311. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts +9 -0
  312. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -0
  313. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +26 -0
  314. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -0
  315. package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts +5 -0
  316. package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts.map +1 -0
  317. package/dist/adapters/http/middleware/built-in/swagger.d.ts +3 -4
  318. package/dist/adapters/http/middleware/built-in/swagger.d.ts.map +1 -1
  319. package/dist/adapters/http/middleware/built-in/swagger.mjs +4 -16
  320. package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
  321. package/dist/adapters/http/middleware/index.mjs +4 -2
  322. package/dist/adapters/http/request/helpers/actor.d.ts +3 -3
  323. package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
  324. package/dist/adapters/http/request/helpers/actor.mjs +3 -3
  325. package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
  326. package/dist/adapters/http/request/helpers/body-realm-id.d.ts +1 -2
  327. package/dist/adapters/http/request/helpers/body-realm-id.d.ts.map +1 -1
  328. package/dist/adapters/http/request/helpers/body-realm-id.mjs +3 -4
  329. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  330. package/dist/adapters/http/request/helpers/identity.d.ts +4 -4
  331. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  332. package/dist/adapters/http/request/helpers/identity.mjs +7 -8
  333. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  334. package/dist/adapters/http/request/helpers/index.d.ts +2 -0
  335. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  336. package/dist/adapters/http/request/helpers/index.mjs +4 -2
  337. package/dist/adapters/http/request/helpers/locations.d.ts +4 -0
  338. package/dist/adapters/http/request/helpers/locations.d.ts.map +1 -0
  339. package/dist/adapters/http/request/helpers/locations.mjs +28 -0
  340. package/dist/adapters/http/request/helpers/locations.mjs.map +1 -0
  341. package/dist/adapters/http/request/helpers/param-id.d.ts +5 -5
  342. package/dist/adapters/http/request/helpers/param-id.d.ts.map +1 -1
  343. package/dist/adapters/http/request/helpers/param-id.mjs +8 -9
  344. package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
  345. package/dist/adapters/http/request/helpers/realm-id.d.ts +5 -0
  346. package/dist/adapters/http/request/helpers/realm-id.d.ts.map +1 -0
  347. package/dist/adapters/http/request/helpers/realm-id.mjs +19 -0
  348. package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -0
  349. package/dist/adapters/http/request/helpers/scopes.d.ts +3 -3
  350. package/dist/adapters/http/request/helpers/scopes.d.ts.map +1 -1
  351. package/dist/adapters/http/request/helpers/scopes.mjs +4 -5
  352. package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
  353. package/dist/adapters/http/request/helpers/token.d.ts +3 -3
  354. package/dist/adapters/http/request/helpers/token.d.ts.map +1 -1
  355. package/dist/adapters/http/request/helpers/token.mjs +4 -5
  356. package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
  357. package/dist/adapters/http/request/index.mjs +4 -2
  358. package/dist/adapters/http/request/permission/helper.d.ts +3 -3
  359. package/dist/adapters/http/request/permission/helper.d.ts.map +1 -1
  360. package/dist/adapters/http/request/permission/helper.mjs +4 -5
  361. package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
  362. package/dist/adapters/http/request/permission/module.d.ts +3 -3
  363. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  364. package/dist/adapters/http/request/permission/module.mjs +5 -5
  365. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  366. package/dist/adapters/shared/ldap/factory.mjs.map +1 -1
  367. package/dist/adapters/shared/ldap/module.mjs.map +1 -1
  368. package/dist/app/builder.d.ts +1 -2
  369. package/dist/app/builder.d.ts.map +1 -1
  370. package/dist/app/builder.mjs +0 -5
  371. package/dist/app/builder.mjs.map +1 -1
  372. package/dist/app/factory.d.ts.map +1 -1
  373. package/dist/app/factory.mjs +1 -1
  374. package/dist/app/factory.mjs.map +1 -1
  375. package/dist/app/index.mjs +1 -2
  376. package/dist/app/modules/authentication/constants.mjs.map +1 -1
  377. package/dist/app/modules/authentication/module.mjs.map +1 -1
  378. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  379. package/dist/app/modules/cache/constants.mjs.map +1 -1
  380. package/dist/app/modules/cache/module.mjs.map +1 -1
  381. package/dist/app/modules/components/module.mjs.map +1 -1
  382. package/dist/app/modules/config/constants.mjs.map +1 -1
  383. package/dist/app/modules/config/module.mjs.map +1 -1
  384. package/dist/app/modules/config/normalize.mjs.map +1 -1
  385. package/dist/app/modules/config/parse.mjs.map +1 -1
  386. package/dist/app/modules/config/read/env.mjs.map +1 -1
  387. package/dist/app/modules/config/read/fs.mjs.map +1 -1
  388. package/dist/app/modules/config/read/module.mjs.map +1 -1
  389. package/dist/app/modules/config/types.d.ts +2 -2
  390. package/dist/app/modules/config/types.d.ts.map +1 -1
  391. package/dist/app/modules/constants.d.ts +0 -1
  392. package/dist/app/modules/constants.d.ts.map +1 -1
  393. package/dist/app/modules/constants.mjs +0 -1
  394. package/dist/app/modules/constants.mjs.map +1 -1
  395. package/dist/app/modules/database/constants.mjs.map +1 -1
  396. package/dist/app/modules/database/module.mjs.map +1 -1
  397. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  398. package/dist/app/modules/database/repositories/client/repository.d.ts +2 -1
  399. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  400. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  401. package/dist/app/modules/database/repositories/client-permission/repository.d.ts +1 -1
  402. package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
  403. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  404. package/dist/app/modules/database/repositories/client-role/repository.d.ts +1 -1
  405. package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
  406. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  407. package/dist/app/modules/database/repositories/client-scope/repository.d.ts +1 -1
  408. package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
  409. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  410. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  411. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
  412. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  413. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  414. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
  415. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
  416. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  417. package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
  418. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  419. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  420. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
  421. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
  422. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  423. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  424. package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
  425. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  426. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  427. package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
  428. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  429. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  430. package/dist/app/modules/database/repositories/robot/repository.d.ts +2 -1
  431. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
  432. package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
  433. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +1 -1
  434. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +1 -1
  435. package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +1 -1
  436. package/dist/app/modules/database/repositories/robot-role/repository.d.ts +2 -1
  437. package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +1 -1
  438. package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +1 -1
  439. package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
  440. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  441. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  442. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
  443. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  444. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  445. package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
  446. package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
  447. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  448. package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
  449. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  450. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  451. package/dist/app/modules/database/repositories/user/repository.d.ts +2 -1
  452. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  453. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  454. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
  455. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  456. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  457. package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
  458. package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
  459. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  460. package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
  461. package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
  462. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  463. package/dist/app/modules/http/constants.d.ts +3 -2
  464. package/dist/app/modules/http/constants.d.ts.map +1 -1
  465. package/dist/app/modules/http/constants.mjs.map +1 -1
  466. package/dist/app/modules/http/module.d.ts +2 -2
  467. package/dist/app/modules/http/module.d.ts.map +1 -1
  468. package/dist/app/modules/http/module.mjs +10 -17
  469. package/dist/app/modules/http/module.mjs.map +1 -1
  470. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  471. package/dist/app/modules/http/modules/controller.mjs +59 -70
  472. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  473. package/dist/app/modules/http/modules/middleware.d.ts +1 -0
  474. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  475. package/dist/app/modules/http/modules/middleware.mjs +13 -6
  476. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  477. package/dist/app/modules/identity/constants.mjs.map +1 -1
  478. package/dist/app/modules/identity/module.mjs.map +1 -1
  479. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  480. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
  481. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
  482. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
  483. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
  484. package/dist/app/modules/identity/repositories/robot.mjs.map +1 -1
  485. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  486. package/dist/app/modules/index.d.ts +0 -1
  487. package/dist/app/modules/index.d.ts.map +1 -1
  488. package/dist/app/modules/index.mjs +1 -3
  489. package/dist/app/modules/ldap/constants.mjs.map +1 -1
  490. package/dist/app/modules/ldap/module.mjs.map +1 -1
  491. package/dist/app/modules/logger/constants.mjs.map +1 -1
  492. package/dist/app/modules/logger/module.mjs.map +1 -1
  493. package/dist/app/modules/mail/adapter/smtp/module.mjs.map +1 -1
  494. package/dist/app/modules/mail/adapter/smtp/smtp.mjs.map +1 -1
  495. package/dist/app/modules/mail/adapter/void.mjs.map +1 -1
  496. package/dist/app/modules/mail/constants.mjs.map +1 -1
  497. package/dist/app/modules/mail/module.mjs.map +1 -1
  498. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  499. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  500. package/dist/app/modules/oauth2/repositories/authorize/code/repository.mjs.map +1 -1
  501. package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
  502. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  503. package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +1 -1
  504. package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
  505. package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
  506. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  507. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  508. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  509. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  510. package/dist/app/modules/runtime/module.d.ts.map +1 -1
  511. package/dist/app/modules/runtime/module.mjs +3 -1
  512. package/dist/app/modules/runtime/module.mjs.map +1 -1
  513. package/dist/cli/commands/healthcheck.mjs +1 -1
  514. package/dist/cli/commands/healthcheck.mjs.map +1 -1
  515. package/dist/cli/commands/index.d.ts +0 -1
  516. package/dist/cli/commands/index.d.ts.map +1 -1
  517. package/dist/cli/commands/index.mjs +1 -2
  518. package/dist/cli/commands/migration.mjs.map +1 -1
  519. package/dist/cli/commands/reset.mjs.map +1 -1
  520. package/dist/cli/commands/start.d.ts.map +1 -1
  521. package/dist/cli/commands/start.mjs +22 -1
  522. package/dist/cli/commands/start.mjs.map +1 -1
  523. package/dist/cli/index.mjs.map +1 -1
  524. package/dist/cli/module.d.ts.map +1 -1
  525. package/dist/cli/module.mjs +1 -3
  526. package/dist/cli/module.mjs.map +1 -1
  527. package/dist/components/database/unique-entries/factory.mjs.map +1 -1
  528. package/dist/components/database/unique-entries/module.mjs.map +1 -1
  529. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  530. package/dist/core/authentication/base.mjs.map +1 -1
  531. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  532. package/dist/core/authentication/credential/entities/robot/module.mjs.map +1 -1
  533. package/dist/core/authentication/credential/entities/user/module.mjs.map +1 -1
  534. package/dist/core/authentication/entities/client/module.d.ts.map +1 -1
  535. package/dist/core/authentication/entities/client/module.mjs +7 -5
  536. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  537. package/dist/core/authentication/entities/robot/module.d.ts.map +1 -1
  538. package/dist/core/authentication/entities/robot/module.mjs +5 -4
  539. package/dist/core/authentication/entities/robot/module.mjs.map +1 -1
  540. package/dist/core/authentication/entities/user/module.d.ts.map +1 -1
  541. package/dist/core/authentication/entities/user/module.mjs +5 -4
  542. package/dist/core/authentication/entities/user/module.mjs.map +1 -1
  543. package/dist/core/authentication/module.mjs.map +1 -1
  544. package/dist/core/authentication/session/module.mjs.map +1 -1
  545. package/dist/core/entities/client/service.d.ts +2 -3
  546. package/dist/core/entities/client/service.d.ts.map +1 -1
  547. package/dist/core/entities/client/service.mjs +8 -8
  548. package/dist/core/entities/client/service.mjs.map +1 -1
  549. package/dist/core/entities/client/types.d.ts +1 -2
  550. package/dist/core/entities/client/types.d.ts.map +1 -1
  551. package/dist/core/entities/client-permission/service.d.ts +2 -3
  552. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  553. package/dist/core/entities/client-permission/service.mjs +8 -7
  554. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  555. package/dist/core/entities/client-permission/types.d.ts +1 -2
  556. package/dist/core/entities/client-permission/types.d.ts.map +1 -1
  557. package/dist/core/entities/client-role/service.d.ts +2 -3
  558. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  559. package/dist/core/entities/client-role/service.mjs +9 -8
  560. package/dist/core/entities/client-role/service.mjs.map +1 -1
  561. package/dist/core/entities/client-role/types.d.ts +1 -2
  562. package/dist/core/entities/client-role/types.d.ts.map +1 -1
  563. package/dist/core/entities/client-scope/service.d.ts +2 -3
  564. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  565. package/dist/core/entities/client-scope/service.mjs +7 -6
  566. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  567. package/dist/core/entities/client-scope/types.d.ts +1 -2
  568. package/dist/core/entities/client-scope/types.d.ts.map +1 -1
  569. package/dist/core/entities/identity-provider/types.d.ts +1 -1
  570. package/dist/core/entities/identity-provider/types.d.ts.map +1 -1
  571. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +2 -3
  572. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  573. package/dist/core/entities/identity-provider-role-mapping/service.mjs +10 -9
  574. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  575. package/dist/core/entities/identity-provider-role-mapping/types.d.ts +1 -2
  576. package/dist/core/entities/identity-provider-role-mapping/types.d.ts.map +1 -1
  577. package/dist/core/entities/index.d.ts +0 -3
  578. package/dist/core/entities/index.d.ts.map +1 -1
  579. package/dist/core/entities/index.mjs +1 -2
  580. package/dist/core/entities/permission/service.d.ts +2 -3
  581. package/dist/core/entities/permission/service.d.ts.map +1 -1
  582. package/dist/core/entities/permission/service.mjs +8 -9
  583. package/dist/core/entities/permission/service.mjs.map +1 -1
  584. package/dist/core/entities/permission/types.d.ts +1 -2
  585. package/dist/core/entities/permission/types.d.ts.map +1 -1
  586. package/dist/core/entities/permission-policy/service.d.ts +2 -3
  587. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  588. package/dist/core/entities/permission-policy/service.mjs +7 -6
  589. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  590. package/dist/core/entities/permission-policy/types.d.ts +1 -2
  591. package/dist/core/entities/permission-policy/types.d.ts.map +1 -1
  592. package/dist/core/entities/policy/attributes-validator.mjs.map +1 -1
  593. package/dist/core/entities/policy/service.d.ts +2 -3
  594. package/dist/core/entities/policy/service.d.ts.map +1 -1
  595. package/dist/core/entities/policy/service.mjs +8 -8
  596. package/dist/core/entities/policy/service.mjs.map +1 -1
  597. package/dist/core/entities/policy/types.d.ts +1 -2
  598. package/dist/core/entities/policy/types.d.ts.map +1 -1
  599. package/dist/core/entities/realm/service.d.ts +2 -3
  600. package/dist/core/entities/realm/service.d.ts.map +1 -1
  601. package/dist/core/entities/realm/service.mjs +8 -8
  602. package/dist/core/entities/realm/service.mjs.map +1 -1
  603. package/dist/core/entities/realm/types.d.ts +1 -2
  604. package/dist/core/entities/realm/types.d.ts.map +1 -1
  605. package/dist/core/entities/robot/service.d.ts +2 -3
  606. package/dist/core/entities/robot/service.d.ts.map +1 -1
  607. package/dist/core/entities/robot/service.mjs +8 -8
  608. package/dist/core/entities/robot/service.mjs.map +1 -1
  609. package/dist/core/entities/robot/types.d.ts +1 -2
  610. package/dist/core/entities/robot/types.d.ts.map +1 -1
  611. package/dist/core/entities/robot-permission/service.d.ts +2 -3
  612. package/dist/core/entities/robot-permission/service.d.ts.map +1 -1
  613. package/dist/core/entities/robot-permission/service.mjs +8 -7
  614. package/dist/core/entities/robot-permission/service.mjs.map +1 -1
  615. package/dist/core/entities/robot-permission/types.d.ts +1 -2
  616. package/dist/core/entities/robot-permission/types.d.ts.map +1 -1
  617. package/dist/core/entities/robot-role/service.d.ts +2 -3
  618. package/dist/core/entities/robot-role/service.d.ts.map +1 -1
  619. package/dist/core/entities/robot-role/service.mjs +9 -8
  620. package/dist/core/entities/robot-role/service.mjs.map +1 -1
  621. package/dist/core/entities/robot-role/types.d.ts +1 -2
  622. package/dist/core/entities/robot-role/types.d.ts.map +1 -1
  623. package/dist/core/entities/role/service.d.ts +2 -3
  624. package/dist/core/entities/role/service.d.ts.map +1 -1
  625. package/dist/core/entities/role/service.mjs +8 -8
  626. package/dist/core/entities/role/service.mjs.map +1 -1
  627. package/dist/core/entities/role/types.d.ts +1 -2
  628. package/dist/core/entities/role/types.d.ts.map +1 -1
  629. package/dist/core/entities/role-attribute/service.d.ts +2 -3
  630. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  631. package/dist/core/entities/role-attribute/service.mjs +5 -5
  632. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  633. package/dist/core/entities/role-attribute/types.d.ts +1 -2
  634. package/dist/core/entities/role-attribute/types.d.ts.map +1 -1
  635. package/dist/core/entities/role-permission/service.d.ts +2 -3
  636. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  637. package/dist/core/entities/role-permission/service.mjs +8 -7
  638. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  639. package/dist/core/entities/role-permission/types.d.ts +1 -2
  640. package/dist/core/entities/role-permission/types.d.ts.map +1 -1
  641. package/dist/core/entities/scope/service.d.ts +2 -3
  642. package/dist/core/entities/scope/service.d.ts.map +1 -1
  643. package/dist/core/entities/scope/service.mjs +8 -8
  644. package/dist/core/entities/scope/service.mjs.map +1 -1
  645. package/dist/core/entities/scope/types.d.ts +1 -2
  646. package/dist/core/entities/scope/types.d.ts.map +1 -1
  647. package/dist/core/entities/user/service.d.ts +2 -3
  648. package/dist/core/entities/user/service.d.ts.map +1 -1
  649. package/dist/core/entities/user/service.mjs +8 -8
  650. package/dist/core/entities/user/service.mjs.map +1 -1
  651. package/dist/core/entities/user/types.d.ts +1 -2
  652. package/dist/core/entities/user/types.d.ts.map +1 -1
  653. package/dist/core/entities/user-attribute/service.d.ts +2 -3
  654. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  655. package/dist/core/entities/user-attribute/service.mjs +8 -8
  656. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  657. package/dist/core/entities/user-attribute/types.d.ts +1 -2
  658. package/dist/core/entities/user-attribute/types.d.ts.map +1 -1
  659. package/dist/core/entities/user-permission/service.d.ts +2 -3
  660. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  661. package/dist/core/entities/user-permission/service.mjs +8 -7
  662. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  663. package/dist/core/entities/user-permission/types.d.ts +1 -2
  664. package/dist/core/entities/user-permission/types.d.ts.map +1 -1
  665. package/dist/core/entities/user-role/service.d.ts +2 -3
  666. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  667. package/dist/core/entities/user-role/service.mjs +9 -8
  668. package/dist/core/entities/user-role/service.mjs.map +1 -1
  669. package/dist/core/entities/user-role/types.d.ts +1 -2
  670. package/dist/core/entities/user-role/types.d.ts.map +1 -1
  671. package/dist/core/identity/index.d.ts +1 -0
  672. package/dist/core/identity/index.d.ts.map +1 -1
  673. package/dist/core/identity/index.mjs +4 -1
  674. package/dist/core/identity/password-recovery/check.d.ts +7 -0
  675. package/dist/core/identity/password-recovery/check.d.ts.map +1 -0
  676. package/dist/core/identity/password-recovery/check.mjs +24 -0
  677. package/dist/core/identity/password-recovery/check.mjs.map +1 -0
  678. package/dist/core/identity/password-recovery/disabled.d.ts +6 -0
  679. package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -0
  680. package/dist/core/identity/password-recovery/disabled.mjs +16 -0
  681. package/dist/core/identity/password-recovery/disabled.mjs.map +1 -0
  682. package/dist/core/identity/password-recovery/email-verification-required.d.ts +6 -0
  683. package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -0
  684. package/dist/core/identity/password-recovery/email-verification-required.mjs +16 -0
  685. package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -0
  686. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  687. package/dist/core/identity/password-recovery/service.mjs +10 -7
  688. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  689. package/dist/core/identity/password-recovery/token-expired.d.ts +6 -0
  690. package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -0
  691. package/dist/core/identity/password-recovery/token-expired.mjs +16 -0
  692. package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -0
  693. package/dist/core/identity/permission/checker/index.d.ts +3 -0
  694. package/dist/core/identity/permission/checker/index.d.ts.map +1 -0
  695. package/dist/core/identity/permission/checker/index.mjs +2 -0
  696. package/dist/core/identity/permission/checker/service.d.ts +10 -0
  697. package/dist/core/identity/permission/checker/service.d.ts.map +1 -0
  698. package/dist/core/identity/permission/checker/service.mjs +55 -0
  699. package/dist/core/identity/permission/checker/service.mjs.map +1 -0
  700. package/dist/core/identity/permission/checker/types.d.ts +42 -0
  701. package/dist/core/identity/permission/checker/types.d.ts.map +1 -0
  702. package/dist/core/identity/permission/identity-policy-data.d.ts +4 -0
  703. package/dist/core/identity/permission/identity-policy-data.d.ts.map +1 -0
  704. package/dist/core/identity/permission/identity-policy-data.mjs +23 -0
  705. package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -0
  706. package/dist/core/identity/permission/index.d.ts +1 -0
  707. package/dist/core/identity/permission/index.d.ts.map +1 -1
  708. package/dist/core/identity/permission/index.mjs +3 -1
  709. package/dist/core/identity/permission/module.mjs.map +1 -1
  710. package/dist/core/identity/policy/checker/index.d.ts +3 -0
  711. package/dist/core/identity/policy/checker/index.d.ts.map +1 -0
  712. package/dist/core/identity/policy/checker/index.mjs +2 -0
  713. package/dist/core/identity/policy/checker/service.d.ts +10 -0
  714. package/dist/core/identity/policy/checker/service.d.ts.map +1 -0
  715. package/dist/core/identity/policy/checker/service.mjs +46 -0
  716. package/dist/core/identity/policy/checker/service.mjs.map +1 -0
  717. package/dist/core/identity/policy/checker/types.d.ts +40 -0
  718. package/dist/core/identity/policy/checker/types.d.ts.map +1 -0
  719. package/dist/core/identity/policy/index.d.ts +2 -0
  720. package/dist/core/identity/policy/index.d.ts.map +1 -0
  721. package/dist/core/identity/policy/index.mjs +3 -0
  722. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  723. package/dist/core/identity/provider/account/module.mjs +2 -2
  724. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  725. package/dist/core/identity/provider/authentication/constants.mjs.map +1 -1
  726. package/dist/core/identity/provider/authentication/factory.mjs.map +1 -1
  727. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  728. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  729. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  730. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  731. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  732. package/dist/core/identity/provider/authentication/protocols/ldap/collection.d.ts.map +1 -1
  733. package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs +3 -2
  734. package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs.map +1 -1
  735. package/dist/core/identity/provider/authentication/protocols/ldap/module.d.ts.map +1 -1
  736. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +7 -4
  737. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
  738. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  739. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  740. package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
  741. package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
  742. package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
  743. package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
  744. package/dist/core/identity/registration/check.d.ts +3 -0
  745. package/dist/core/identity/registration/check.d.ts.map +1 -0
  746. package/dist/core/identity/registration/check.mjs +12 -0
  747. package/dist/core/identity/registration/check.mjs.map +1 -0
  748. package/dist/core/identity/registration/error.d.ts +6 -0
  749. package/dist/core/identity/registration/error.d.ts.map +1 -0
  750. package/dist/core/identity/registration/error.mjs +16 -0
  751. package/dist/core/identity/registration/error.mjs.map +1 -0
  752. package/dist/core/identity/registration/service.d.ts.map +1 -1
  753. package/dist/core/identity/registration/service.mjs +4 -3
  754. package/dist/core/identity/registration/service.mjs.map +1 -1
  755. package/dist/core/identity/resolver/entities/ldap/module.mjs.map +1 -1
  756. package/dist/core/identity/resolver/module.mjs.map +1 -1
  757. package/dist/core/identity/role/module.mjs.map +1 -1
  758. package/dist/core/index.mjs +5 -4
  759. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  760. package/dist/core/oauth2/authorization/code/verifier/module.mjs +8 -8
  761. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  762. package/dist/core/oauth2/authorization/code-request/validator.mjs +2 -2
  763. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  764. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  765. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +8 -8
  766. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  767. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  768. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  769. package/dist/core/oauth2/authorization/module.mjs +4 -4
  770. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  771. package/dist/core/oauth2/authorization/state/module.mjs +4 -4
  772. package/dist/core/oauth2/authorization/state/module.mjs.map +1 -1
  773. package/dist/core/oauth2/client/authenticator.mjs +6 -6
  774. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  775. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  776. package/dist/core/oauth2/grant-types/base.mjs.map +1 -1
  777. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  778. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  779. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  780. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  781. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  782. package/dist/core/oauth2/helpers/error.d.ts +8 -0
  783. package/dist/core/oauth2/helpers/error.d.ts.map +1 -0
  784. package/dist/core/oauth2/helpers/error.mjs +26 -0
  785. package/dist/core/oauth2/helpers/error.mjs.map +1 -0
  786. package/dist/core/oauth2/helpers/index.d.ts +1 -1
  787. package/dist/core/oauth2/helpers/index.mjs +1 -1
  788. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  789. package/dist/core/oauth2/response/bearer.mjs.map +1 -1
  790. package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
  791. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  792. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  793. package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
  794. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  795. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  796. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  797. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  798. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  799. package/dist/core/provisioning/entities/client/validator.mjs.map +1 -1
  800. package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
  801. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  802. package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
  803. package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +1 -1
  804. package/dist/core/provisioning/entities/robot/validator.mjs.map +1 -1
  805. package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
  806. package/dist/core/provisioning/entities/role/validator.mjs.map +1 -1
  807. package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
  808. package/dist/core/provisioning/entities/scope/validator.mjs.map +1 -1
  809. package/dist/core/provisioning/entities/user/relations-validator.mjs.map +1 -1
  810. package/dist/core/provisioning/entities/user/validator.mjs.map +1 -1
  811. package/dist/core/provisioning/strategy/normalize.mjs.map +1 -1
  812. package/dist/core/provisioning/strategy/validator.mjs.map +1 -1
  813. package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
  814. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  815. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +1 -1
  816. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
  817. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  818. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +1 -1
  819. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
  820. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
  821. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  822. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  823. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  824. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +1 -1
  825. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  826. package/dist/core/provisioning/synchronizer/root/module.mjs.map +1 -1
  827. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  828. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  829. package/dist/core/security/policy/engine.mjs.map +1 -1
  830. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  831. package/dist/index.mjs +7 -7
  832. package/dist/path.mjs.map +1 -1
  833. package/dist/swagger.json +9413 -2773
  834. package/dist/ui/client/.vite/ssr-manifest.json +33 -113
  835. package/dist/ui/client/assets/index-BdPtpN2t.js +66 -0
  836. package/dist/ui/client/index.html +1 -1
  837. package/dist/ui/server/server.js +1483 -1066
  838. package/dist/utils/error.d.ts +13 -0
  839. package/dist/utils/error.d.ts.map +1 -1
  840. package/dist/utils/error.mjs +26 -24
  841. package/dist/utils/error.mjs.map +1 -1
  842. package/dist/utils/host.mjs.map +1 -1
  843. package/dist/utils/index.d.ts +1 -0
  844. package/dist/utils/index.d.ts.map +1 -1
  845. package/dist/utils/index.mjs +2 -1
  846. package/dist/utils/self-id.mjs.map +1 -1
  847. package/dist/utils/url.d.ts +10 -0
  848. package/dist/utils/url.d.ts.map +1 -0
  849. package/dist/utils/url.mjs +17 -0
  850. package/dist/utils/url.mjs.map +1 -0
  851. package/package.json +32 -33
  852. package/dist/adapters/http/server/index.d.ts +0 -3
  853. package/dist/adapters/http/server/index.d.ts.map +0 -1
  854. package/dist/adapters/http/server/index.mjs +0 -2
  855. package/dist/adapters/http/server/module.d.ts +0 -3
  856. package/dist/adapters/http/server/module.d.ts.map +0 -1
  857. package/dist/adapters/http/server/module.mjs +0 -10
  858. package/dist/adapters/http/server/module.mjs.map +0 -1
  859. package/dist/adapters/http/server/type.d.ts +0 -8
  860. package/dist/adapters/http/server/type.d.ts.map +0 -1
  861. package/dist/adapters/http/swagger/index.d.ts +0 -3
  862. package/dist/adapters/http/swagger/index.d.ts.map +0 -1
  863. package/dist/adapters/http/swagger/index.mjs +0 -2
  864. package/dist/adapters/http/swagger/module.d.ts +0 -12
  865. package/dist/adapters/http/swagger/module.d.ts.map +0 -1
  866. package/dist/adapters/http/swagger/module.mjs +0 -75
  867. package/dist/adapters/http/swagger/module.mjs.map +0 -1
  868. package/dist/adapters/http/swagger/type.d.ts +0 -4
  869. package/dist/adapters/http/swagger/type.d.ts.map +0 -1
  870. package/dist/adapters/http/swagger/type.mjs +0 -1
  871. package/dist/app/modules/swagger/index.d.ts +0 -2
  872. package/dist/app/modules/swagger/index.d.ts.map +0 -1
  873. package/dist/app/modules/swagger/index.mjs +0 -2
  874. package/dist/app/modules/swagger/module.d.ts +0 -9
  875. package/dist/app/modules/swagger/module.d.ts.map +0 -1
  876. package/dist/app/modules/swagger/module.mjs +0 -32
  877. package/dist/app/modules/swagger/module.mjs.map +0 -1
  878. package/dist/cli/commands/swagger.d.ts +0 -8
  879. package/dist/cli/commands/swagger.d.ts.map +0 -1
  880. package/dist/cli/commands/swagger.mjs +0 -29
  881. package/dist/cli/commands/swagger.mjs.map +0 -1
  882. package/dist/core/entities/actor/index.d.ts +0 -2
  883. package/dist/core/entities/actor/index.d.ts.map +0 -1
  884. package/dist/core/entities/actor/index.mjs +0 -1
  885. package/dist/core/entities/actor/types.d.ts +0 -7
  886. package/dist/core/entities/actor/types.d.ts.map +0 -1
  887. package/dist/core/entities/service.d.ts +0 -6
  888. package/dist/core/entities/service.d.ts.map +0 -1
  889. package/dist/core/entities/service.mjs +0 -21
  890. package/dist/core/entities/service.mjs.map +0 -1
  891. package/dist/core/entities/types.d.ts +0 -22
  892. package/dist/core/entities/types.d.ts.map +0 -1
  893. package/dist/core/oauth2/helpers/erorr.d.ts +0 -9
  894. package/dist/core/oauth2/helpers/erorr.d.ts.map +0 -1
  895. package/dist/core/oauth2/helpers/erorr.mjs +0 -26
  896. package/dist/core/oauth2/helpers/erorr.mjs.map +0 -1
  897. package/dist/ui/client/assets/index-Noe7uiOY.js +0 -41
  898. /package/dist/{core/entities/actor → adapters/http/middleware/built-in/realm-resolver}/types.mjs +0 -0
  899. /package/dist/core/{entities → identity/permission/checker}/types.mjs +0 -0
  900. /package/dist/{adapters/http/server/type.mjs → core/identity/policy/checker/types.mjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-role/service.ts"],"names":[],"mappings":"AASA,OAAO,EAAkB,iBAAiB,EAAkB,MAAM,kBAAkB,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,0BAA0B,EAAE,2BAA2B,CAAC;CAC3D,CAAC;AAEF,qBAAa,eAAgB,SAAQ,qBAAsB,YAAW,gBAAgB;IAClF,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,SAAS,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;IAElE,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAE3B,GAAG,EAAE,sBAAsB;IAOjC,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAY9C,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;IAiBd,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;IAmDd,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;CAmBvB"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-role/service.ts"],"names":[],"mappings":"AAUA,OAAO,EAAkB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAG,MAAM,oBAAoB,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,EAAE,mBAAmB,CAAC;IAChC,0BAA0B,EAAE,2BAA2B,CAAC;CAC3D,CAAC;AAEF,qBAAa,eAAgB,SAAQ,qBAAsB,YAAW,gBAAgB;IAClF,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC;IAE1C,SAAS,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;IAElE,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC;gBAE3B,GAAG,EAAE,sBAAsB;IAOjC,OAAO,CACT,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IAY9C,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;IAiBd,MAAM,CACR,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;IAmDd,MAAM,CACR,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,YAAY,GACpB,OAAO,CAAC,QAAQ,CAAC;CAmBvB"}
@@ -1,7 +1,8 @@
1
- import { AbstractEntityService } from "../service.mjs";
2
- import { PermissionName, UserRoleValidator, ValidatorGroup } from "@authup/core-kit";
3
- import { BuiltInPolicyType, PolicyData } from "@authup/access";
4
- import { ConflictError, ForbiddenError, NotFoundError } from "@ebec/http";
1
+ import { PermissionName, UserRoleValidator } from "@authup/core-kit";
2
+ import { AbstractEntityService } from "@authup/server-kit";
3
+ import { ValidatorGroup } from "@authup/kit";
4
+ import { BuiltInPolicyType, PermissionError, PolicyData } from "@authup/access";
5
+ import { EntityConflictError, EntityNotFoundError } from "@authup/errors";
5
6
  //#region src/core/entities/user-role/service.ts
6
7
  var UserRoleService = class extends AbstractEntityService {
7
8
  repository;
@@ -28,7 +29,7 @@ var UserRoleService = class extends AbstractEntityService {
28
29
  PermissionName.USER_ROLE_UPDATE
29
30
  ] });
30
31
  const entity = await this.repository.findOneBy({ id });
31
- if (!entity) throw new NotFoundError();
32
+ if (!entity) throw new EntityNotFoundError();
32
33
  return entity;
33
34
  }
34
35
  async create(data, actor) {
@@ -38,7 +39,7 @@ var UserRoleService = class extends AbstractEntityService {
38
39
  if (await this.repository.findOneBy({
39
40
  role_id: validated.role_id,
40
41
  user_id: validated.user_id
41
- })) throw new ConflictError("The user-role assignment already exists.");
42
+ })) throw new EntityConflictError({ entity: "user-role" });
42
43
  if (validated.role) validated.role_realm_id = validated.role.realm_id;
43
44
  if (validated.user) validated.user_realm_id = validated.user.realm_id;
44
45
  if (validated.role && actor.identity) {
@@ -49,7 +50,7 @@ var UserRoleService = class extends AbstractEntityService {
49
50
  type: "role",
50
51
  id: validated.role_id,
51
52
  clientId: validated.role.client_id
52
- })) throw new ForbiddenError("You don't own the required permissions.");
53
+ })) throw new PermissionError({ message: "You don't own the required permissions." });
53
54
  }
54
55
  await actor.permissionEvaluator.evaluate({
55
56
  name: PermissionName.USER_ROLE_CREATE,
@@ -62,7 +63,7 @@ var UserRoleService = class extends AbstractEntityService {
62
63
  async delete(id, actor) {
63
64
  await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_ROLE_DELETE });
64
65
  const entity = await this.repository.findOneBy({ id });
65
- if (!entity) throw new NotFoundError();
66
+ if (!entity) throw new EntityNotFoundError();
66
67
  await actor.permissionEvaluator.evaluate({
67
68
  name: PermissionName.USER_ROLE_DELETE,
68
69
  input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity })
@@ -1 +1 @@
1
- {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","PolicyData","ConflictError","ForbiddenError","NotFoundError","PermissionName","UserRoleValidator","ValidatorGroup","AbstractEntityService","UserRoleService","repository","identityPermissionProvider","validator","ctx","getMany","query","actor","permissionEvaluator","preEvaluateOneOf","name","USER_ROLE_READ","USER_ROLE_CREATE","USER_ROLE_UPDATE","findMany","getOne","id","entity","findOneBy","create","data","preEvaluate","validated","run","group","CREATE","validateJoinColumns","existing","role_id","user_id","role","role_realm_id","realm_id","user","user_realm_id","identity","hasPermissions","isSuperset","type","clientId","client_id","evaluate","input","ATTRIBUTES","save","delete","USER_ROLE_DELETE","entityId","remove"],"sources":["../../../../src/core/entities/user-role/service.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BuiltInPolicyType, PolicyData } from '@authup/access';\nimport { ConflictError, ForbiddenError, NotFoundError } from '@ebec/http';\nimport { PermissionName, UserRoleValidator, ValidatorGroup } from '@authup/core-kit';\nimport type { UserRole } from '@authup/core-kit';\nimport type { ActorContext } from '../actor/types.ts';\nimport { AbstractEntityService } from '../service.ts';\nimport type { EntityRepositoryFindManyResult } from '../types.ts';\nimport type { IIdentityPermissionProvider } from '../../identity/permission/types.ts';\nimport type { IUserRoleRepository, IUserRoleService } from './types.ts';\n\nexport type UserRoleServiceContext = {\n repository: IUserRoleRepository;\n identityPermissionProvider: IIdentityPermissionProvider;\n};\n\nexport class UserRoleService extends AbstractEntityService implements IUserRoleService {\n protected repository: IUserRoleRepository;\n\n protected identityPermissionProvider: IIdentityPermissionProvider;\n\n protected validator: UserRoleValidator;\n\n constructor(ctx: UserRoleServiceContext) {\n super();\n this.repository = ctx.repository;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n this.validator = new UserRoleValidator();\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n ): Promise<EntityRepositoryFindManyResult<UserRole>> {\n await actor.permissionEvaluator.preEvaluateOneOf({\n name: [\n PermissionName.USER_ROLE_READ,\n PermissionName.USER_ROLE_CREATE,\n PermissionName.USER_ROLE_UPDATE,\n ],\n });\n\n return this.repository.findMany(query);\n }\n\n async getOne(\n id: string,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluateOneOf({\n name: [\n PermissionName.USER_ROLE_READ,\n PermissionName.USER_ROLE_CREATE,\n PermissionName.USER_ROLE_UPDATE,\n ],\n });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new NotFoundError();\n }\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_ROLE_CREATE });\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.CREATE });\n\n await this.repository.validateJoinColumns(validated);\n\n const existing = await this.repository.findOneBy({\n role_id: validated.role_id,\n user_id: validated.user_id,\n });\n if (existing) {\n throw new ConflictError('The user-role assignment already exists.');\n }\n\n if (validated.role) {\n validated.role_realm_id = validated.role.realm_id;\n }\n\n if (validated.user) {\n validated.user_realm_id = validated.user.realm_id;\n }\n\n if (validated.role && actor.identity) {\n const hasPermissions = await this.identityPermissionProvider.isSuperset(\n {\n type: actor.identity.type,\n id: actor.identity.data.id,\n },\n {\n type: 'role',\n id: validated.role_id,\n clientId: validated.role.client_id,\n },\n );\n if (!hasPermissions) {\n throw new ForbiddenError('You don\\'t own the required permissions.');\n }\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_ROLE_CREATE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: validated }),\n });\n\n let entity = this.repository.create(validated);\n entity = await this.repository.save(entity);\n\n return entity;\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_ROLE_DELETE });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new NotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_ROLE_DELETE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n return entity;\n }\n}\n"],"mappings":";;;;;AAsBA,IAAaS,kBAAb,cAAqCD,sBAAAA;CACvBE;CAEAC;CAEAC;CAEV,YAAYC,KAA6B;AACrC,SAAK;AACL,OAAKH,aAAaG,IAAIH;AACtB,OAAKC,6BAA6BE,IAAIF;AACtC,OAAKC,YAAY,IAAIN,mBAAAA;;CAGzB,MAAMQ,QACFC,OACAC,OACiD;AACjD,QAAMA,MAAMC,oBAAoBC,iBAAiB,EAC7CC,MAAM;GACFd,eAAee;GACff,eAAegB;GACfhB,eAAeiB;GAClB,EACL,CAAA;AAEA,SAAO,KAAKZ,WAAWa,SAASR,MAAAA;;CAGpC,MAAMS,OACFC,IACAT,OACiB;AACjB,QAAMA,MAAMC,oBAAoBC,iBAAiB,EAC7CC,MAAM;GACFd,eAAee;GACff,eAAegB;GACfhB,eAAeiB;GAClB,EACL,CAAA;EAEA,MAAMI,SAAS,MAAM,KAAKhB,WAAWiB,UAAU,EAAEF,IAAG,CAAA;AACpD,MAAI,CAACC,OACD,OAAM,IAAItB,eAAAA;AAGd,SAAOsB;;CAGX,MAAME,OACFC,MACAb,OACiB;AACjB,QAAMA,MAAMC,oBAAoBa,YAAY,EAAEX,MAAMd,eAAegB,kBAAiB,CAAA;EAEpF,MAAMU,YAAY,MAAM,KAAKnB,UAAUoB,IAAIH,MAAM,EAAEI,OAAO1B,eAAe2B,QAAO,CAAA;AAEhF,QAAM,KAAKxB,WAAWyB,oBAAoBJ,UAAAA;AAM1C,MAAIK,MAJmB,KAAK1B,WAAWiB,UAAU;GAC7CU,SAASN,UAAUM;GACnBC,SAASP,UAAUO;GACvB,CAAA,CAEI,OAAM,IAAIpC,cAAc,2CAAA;AAG5B,MAAI6B,UAAUQ,KACVR,WAAUS,gBAAgBT,UAAUQ,KAAKE;AAG7C,MAAIV,UAAUW,KACVX,WAAUY,gBAAgBZ,UAAUW,KAAKD;AAG7C,MAAIV,UAAUQ,QAAQvB,MAAM4B;OAYpB,CAACC,MAXwB,KAAKlC,2BAA2BmC,WACzD;IACIC,MAAM/B,MAAM4B,SAASG;IACrBtB,IAAIT,MAAM4B,SAASf,KAAKJ;IAC5B,EACA;IACIsB,MAAM;IACNtB,IAAIM,UAAUM;IACdW,UAAUjB,UAAUQ,KAAKU;IAC7B,CAAA,CAGA,OAAM,IAAI9C,eAAe,0CAAA;;AAIjC,QAAMa,MAAMC,oBAAoBiC,SAAS;GACrC/B,MAAMd,eAAegB;GACrB8B,OAAO,IAAIlD,WAAW,GAAGD,kBAAkBoD,aAAarB,WAAU,CAAA;GACtE,CAAA;EAEA,IAAIL,SAAS,KAAKhB,WAAWkB,OAAOG,UAAAA;AACpCL,WAAS,MAAM,KAAKhB,WAAW2C,KAAK3B,OAAAA;AAEpC,SAAOA;;CAGX,MAAM4B,OACF7B,IACAT,OACiB;AACjB,QAAMA,MAAMC,oBAAoBa,YAAY,EAAEX,MAAMd,eAAekD,kBAAiB,CAAA;EAEpF,MAAM7B,SAAS,MAAM,KAAKhB,WAAWiB,UAAU,EAAEF,IAAG,CAAA;AACpD,MAAI,CAACC,OACD,OAAM,IAAItB,eAAAA;AAGd,QAAMY,MAAMC,oBAAoBiC,SAAS;GACrC/B,MAAMd,eAAekD;GACrBJ,OAAO,IAAIlD,WAAW,GAAGD,kBAAkBoD,aAAa1B,QAAO,CAAA;GACnE,CAAA;EAEA,MAAM,EAAED,IAAI+B,aAAa9B;AACzB,QAAM,KAAKhB,WAAW+C,OAAO/B,OAAAA;AAC7BA,SAAOD,KAAK+B;AAEZ,SAAO9B"}
1
+ {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","PermissionError","PolicyData","EntityConflictError","EntityNotFoundError","ValidatorGroup","PermissionName","UserRoleValidator","AbstractEntityService","UserRoleService","repository","identityPermissionProvider","validator","ctx","getMany","query","actor","permissionEvaluator","preEvaluateOneOf","name","USER_ROLE_READ","USER_ROLE_CREATE","USER_ROLE_UPDATE","findMany","getOne","id","entity","findOneBy","create","data","preEvaluate","validated","run","group","CREATE","validateJoinColumns","existing","role_id","user_id","role","role_realm_id","realm_id","user","user_realm_id","identity","hasPermissions","isSuperset","type","clientId","client_id","message","evaluate","input","ATTRIBUTES","save","delete","USER_ROLE_DELETE","entityId","remove"],"sources":["../../../../src/core/entities/user-role/service.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BuiltInPolicyType, PermissionError, PolicyData } from '@authup/access';\nimport { EntityConflictError, EntityNotFoundError } from '@authup/errors';\nimport { ValidatorGroup } from '@authup/kit';\nimport { PermissionName, UserRoleValidator } from '@authup/core-kit';\nimport type { UserRole } from '@authup/core-kit';\nimport type { ActorContext, EntityRepositoryFindManyResult } from '@authup/server-kit';\nimport { AbstractEntityService } from '@authup/server-kit';\nimport type { IIdentityPermissionProvider } from '../../identity/permission/types.ts';\nimport type { IUserRoleRepository, IUserRoleService } from './types.ts';\n\nexport type UserRoleServiceContext = {\n repository: IUserRoleRepository;\n identityPermissionProvider: IIdentityPermissionProvider;\n};\n\nexport class UserRoleService extends AbstractEntityService implements IUserRoleService {\n protected repository: IUserRoleRepository;\n\n protected identityPermissionProvider: IIdentityPermissionProvider;\n\n protected validator: UserRoleValidator;\n\n constructor(ctx: UserRoleServiceContext) {\n super();\n this.repository = ctx.repository;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n this.validator = new UserRoleValidator();\n }\n\n async getMany(\n query: Record<string, any>,\n actor: ActorContext,\n ): Promise<EntityRepositoryFindManyResult<UserRole>> {\n await actor.permissionEvaluator.preEvaluateOneOf({\n name: [\n PermissionName.USER_ROLE_READ,\n PermissionName.USER_ROLE_CREATE,\n PermissionName.USER_ROLE_UPDATE,\n ],\n });\n\n return this.repository.findMany(query);\n }\n\n async getOne(\n id: string,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluateOneOf({\n name: [\n PermissionName.USER_ROLE_READ,\n PermissionName.USER_ROLE_CREATE,\n PermissionName.USER_ROLE_UPDATE,\n ],\n });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n return entity;\n }\n\n async create(\n data: Record<string, any>,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_ROLE_CREATE });\n\n const validated = await this.validator.run(data, { group: ValidatorGroup.CREATE });\n\n await this.repository.validateJoinColumns(validated);\n\n const existing = await this.repository.findOneBy({\n role_id: validated.role_id,\n user_id: validated.user_id,\n });\n if (existing) {\n throw new EntityConflictError({ entity: 'user-role' });\n }\n\n if (validated.role) {\n validated.role_realm_id = validated.role.realm_id;\n }\n\n if (validated.user) {\n validated.user_realm_id = validated.user.realm_id;\n }\n\n if (validated.role && actor.identity) {\n const hasPermissions = await this.identityPermissionProvider.isSuperset(\n {\n type: actor.identity.type,\n id: actor.identity.data.id,\n },\n {\n type: 'role',\n id: validated.role_id,\n clientId: validated.role.client_id,\n },\n );\n if (!hasPermissions) {\n throw new PermissionError({ message: 'You don\\'t own the required permissions.' });\n }\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_ROLE_CREATE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: validated }),\n });\n\n let entity = this.repository.create(validated);\n entity = await this.repository.save(entity);\n\n return entity;\n }\n\n async delete(\n id: string,\n actor: ActorContext,\n ): Promise<UserRole> {\n await actor.permissionEvaluator.preEvaluate({ name: PermissionName.USER_ROLE_DELETE });\n\n const entity = await this.repository.findOneBy({ id });\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await actor.permissionEvaluator.evaluate({\n name: PermissionName.USER_ROLE_DELETE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n\n const { id: entityId } = entity;\n await this.repository.remove(entity);\n entity.id = entityId;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;AAsBA,IAAaS,kBAAb,cAAqCD,sBAAAA;CACvBE;CAEAC;CAEAC;CAEV,YAAYC,KAA6B;EACrC,MAAK;EACL,KAAKH,aAAaG,IAAIH;EACtB,KAAKC,6BAA6BE,IAAIF;EACtC,KAAKC,YAAY,IAAIL,kBAAAA;CACzB;CAEA,MAAMO,QACFC,OACAC,OACiD;EACjD,MAAMA,MAAMC,oBAAoBC,iBAAiB,EAC7CC,MAAM;GACFb,eAAec;GACfd,eAAee;GACff,eAAegB;IAEvB,CAAA;EAEA,OAAO,KAAKZ,WAAWa,SAASR,KAAAA;CACpC;CAEA,MAAMS,OACFC,IACAT,OACiB;EACjB,MAAMA,MAAMC,oBAAoBC,iBAAiB,EAC7CC,MAAM;GACFb,eAAec;GACfd,eAAee;GACff,eAAegB;IAEvB,CAAA;EAEA,MAAMI,SAAS,MAAM,KAAKhB,WAAWiB,UAAU,EAAEF,GAAG,CAAA;EACpD,IAAI,CAACC,QACD,MAAM,IAAItB,oBAAAA;EAGd,OAAOsB;CACX;CAEA,MAAME,OACFC,MACAb,OACiB;EACjB,MAAMA,MAAMC,oBAAoBa,YAAY,EAAEX,MAAMb,eAAee,iBAAiB,CAAA;EAEpF,MAAMU,YAAY,MAAM,KAAKnB,UAAUoB,IAAIH,MAAM,EAAEI,OAAO5B,eAAe6B,OAAO,CAAA;EAEhF,MAAM,KAAKxB,WAAWyB,oBAAoBJ,SAAAA;EAM1C,IAAIK,MAJmB,KAAK1B,WAAWiB,UAAU;GAC7CU,SAASN,UAAUM;GACnBC,SAASP,UAAUO;EACvB,CAAA,GAEI,MAAM,IAAInC,oBAAoB,EAAEuB,QAAQ,YAAY,CAAA;EAGxD,IAAIK,UAAUQ,MACVR,UAAUS,gBAAgBT,UAAUQ,KAAKE;EAG7C,IAAIV,UAAUW,MACVX,UAAUY,gBAAgBZ,UAAUW,KAAKD;EAG7C,IAAIV,UAAUQ,QAAQvB,MAAM4B;OAYpB,CAACC,MAXwB,KAAKlC,2BAA2BmC,WACzD;IACIC,MAAM/B,MAAM4B,SAASG;IACrBtB,IAAIT,MAAM4B,SAASf,KAAKJ;GAC5B,GACA;IACIsB,MAAM;IACNtB,IAAIM,UAAUM;IACdW,UAAUjB,UAAUQ,KAAKU;GAC7B,CAAA,GAGA,MAAM,IAAIhD,gBAAgB,EAAEiD,SAAS,0CAA2C,CAAA;EAAA;EAIxF,MAAMlC,MAAMC,oBAAoBkC,SAAS;GACrChC,MAAMb,eAAee;GACrB+B,OAAO,IAAIlD,WAAW,GAAGF,kBAAkBqD,aAAatB,UAAU,CAAA;EACtE,CAAA;EAEA,IAAIL,SAAS,KAAKhB,WAAWkB,OAAOG,SAAAA;EACpCL,SAAS,MAAM,KAAKhB,WAAW4C,KAAK5B,MAAAA;EAEpC,OAAOA;CACX;CAEA,MAAM6B,OACF9B,IACAT,OACiB;EACjB,MAAMA,MAAMC,oBAAoBa,YAAY,EAAEX,MAAMb,eAAekD,iBAAiB,CAAA;EAEpF,MAAM9B,SAAS,MAAM,KAAKhB,WAAWiB,UAAU,EAAEF,GAAG,CAAA;EACpD,IAAI,CAACC,QACD,MAAM,IAAItB,oBAAAA;EAGd,MAAMY,MAAMC,oBAAoBkC,SAAS;GACrChC,MAAMb,eAAekD;GACrBJ,OAAO,IAAIlD,WAAW,GAAGF,kBAAkBqD,aAAa3B,OAAO,CAAA;EACnE,CAAA;EAEA,MAAM,EAAED,IAAIgC,aAAa/B;EACzB,MAAM,KAAKhB,WAAWgD,OAAOhC,MAAAA;EAC7BA,OAAOD,KAAKgC;EAEZ,OAAO/B;CACX;AACJ"}
@@ -1,6 +1,5 @@
1
1
  import type { UserRole } from '@authup/core-kit';
2
- import type { ActorContext } from '../actor/types.ts';
3
- import type { EntityRepositoryFindManyResult, IEntityRepository } from '../types.ts';
2
+ import type { ActorContext, EntityRepositoryFindManyResult, IEntityRepository } from '@authup/server-kit';
4
3
  export interface IUserRoleRepository extends IEntityRepository<UserRole> {
5
4
  }
6
5
  export interface IUserRoleService {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-role/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB,CAAC,QAAQ,CAAC;CACvE;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/entities/user-role/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,8BAA8B,EAAE,iBAAiB,EAAG,MAAM,oBAAoB,CAAC;AAE3G,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB,CAAC,QAAQ,CAAC;CACvE;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5G,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9D"}
@@ -1,6 +1,7 @@
1
1
  export * from './entities/index.ts';
2
2
  export * from './password-recovery/index.ts';
3
3
  export * from './permission/index.ts';
4
+ export * from './policy/index.ts';
4
5
  export * from './provider/index.ts';
5
6
  export * from './registration/index.ts';
6
7
  export * from './resolver/index.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/identity/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/identity/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import { PasswordRecoveryService } from "./password-recovery/service.mjs";
2
2
  import "./password-recovery/index.mjs";
3
+ import { PermissionCheckerService } from "./permission/checker/service.mjs";
3
4
  import { IdentityPermissionProvider } from "./permission/module.mjs";
4
5
  import "./permission/index.mjs";
6
+ import { PolicyCheckerService } from "./policy/checker/service.mjs";
7
+ import "./policy/index.mjs";
5
8
  import { IdentityProviderMapperOperation } from "./provider/mapper/constants.mjs";
6
9
  import { IdentityProviderAccountBaseMapper } from "./provider/mapper/base.mjs";
7
10
  import { IdentityProviderAttributeMapper } from "./provider/mapper/attributes/module.mjs";
@@ -25,4 +28,4 @@ import "./registration/index.mjs";
25
28
  import { IdentityResolver } from "./resolver/module.mjs";
26
29
  import "./resolver/index.mjs";
27
30
  import { IdentityRoleProvider } from "./role/module.mjs";
28
- export { IDENTITY_PROVIDER_LDAP_COLLECTION_AUTHENTICATOR_TOKEN, IdentityPermissionProvider, IdentityProviderAccountBaseMapper, IdentityProviderAccountManager, IdentityProviderAttributeMapper, IdentityProviderFacebookAuthenticator, IdentityProviderGithubAuthenticator, IdentityProviderGoogleAuthenticator, IdentityProviderInstagramAuthenticator, IdentityProviderLdapAuthenticator, IdentityProviderLdapCollectionAuthenticator, IdentityProviderMapperOperation, IdentityProviderOAuth2Authenticator, IdentityProviderOpenIDAuthenticator, IdentityProviderPaypalAuthenticator, IdentityProviderPermissionMapper, IdentityProviderRoleMapper, IdentityResolver, IdentityRoleProvider, PasswordRecoveryService, RegistrationService, createIdentityProviderOAuth2Authenticator };
31
+ export { IDENTITY_PROVIDER_LDAP_COLLECTION_AUTHENTICATOR_TOKEN, IdentityPermissionProvider, IdentityProviderAccountBaseMapper, IdentityProviderAccountManager, IdentityProviderAttributeMapper, IdentityProviderFacebookAuthenticator, IdentityProviderGithubAuthenticator, IdentityProviderGoogleAuthenticator, IdentityProviderInstagramAuthenticator, IdentityProviderLdapAuthenticator, IdentityProviderLdapCollectionAuthenticator, IdentityProviderMapperOperation, IdentityProviderOAuth2Authenticator, IdentityProviderOpenIDAuthenticator, IdentityProviderPaypalAuthenticator, IdentityProviderPermissionMapper, IdentityProviderRoleMapper, IdentityResolver, IdentityRoleProvider, PasswordRecoveryService, PermissionCheckerService, PolicyCheckerService, RegistrationService, createIdentityProviderOAuth2Authenticator };
@@ -0,0 +1,7 @@
1
+ import { type PasswordRecoveryDisabledError } from './disabled.ts';
2
+ import { type EmailVerificationRequiredError } from './email-verification-required.ts';
3
+ import { type ResetTokenExpiredError } from './token-expired.ts';
4
+ export declare function isPasswordRecoveryDisabledError(input: unknown): input is PasswordRecoveryDisabledError;
5
+ export declare function isEmailVerificationRequiredError(input: unknown): input is EmailVerificationRequiredError;
6
+ export declare function isResetTokenExpiredError(input: unknown): input is ResetTokenExpiredError;
7
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/check.ts"],"names":[],"mappings":"AAQA,OAAO,EAA6C,KAAK,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAA8C,KAAK,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AACnI,OAAO,EAAsC,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAErG,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,6BAA6B,CAItG;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,8BAA8B,CAIxG;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB,CAIxF"}
@@ -0,0 +1,24 @@
1
+ import { PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE } from "./disabled.mjs";
2
+ import { EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE } from "./email-verification-required.mjs";
3
+ import { RESET_TOKEN_EXPIRED_ERROR_INSTANCE } from "./token-expired.mjs";
4
+ import { ErrorCode, hasInstanceof, isAuthupError } from "@authup/errors";
5
+ //#region src/core/identity/password-recovery/check.ts
6
+ function isPasswordRecoveryDisabledError(input) {
7
+ if (hasInstanceof(input, PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE)) return true;
8
+ if (!isAuthupError(input)) return false;
9
+ return input.code === ErrorCode.PASSWORD_RECOVERY_DISABLED;
10
+ }
11
+ function isEmailVerificationRequiredError(input) {
12
+ if (hasInstanceof(input, EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE)) return true;
13
+ if (!isAuthupError(input)) return false;
14
+ return input.code === ErrorCode.EMAIL_VERIFICATION_REQUIRED;
15
+ }
16
+ function isResetTokenExpiredError(input) {
17
+ if (hasInstanceof(input, RESET_TOKEN_EXPIRED_ERROR_INSTANCE)) return true;
18
+ if (!isAuthupError(input)) return false;
19
+ return input.code === ErrorCode.RESET_TOKEN_EXPIRED;
20
+ }
21
+ //#endregion
22
+ export { isEmailVerificationRequiredError, isPasswordRecoveryDisabledError, isResetTokenExpiredError };
23
+
24
+ //# sourceMappingURL=check.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.mjs","names":["ErrorCode","hasInstanceof","isAuthupError","PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE","EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE","RESET_TOKEN_EXPIRED_ERROR_INSTANCE","isPasswordRecoveryDisabledError","input","code","PASSWORD_RECOVERY_DISABLED","isEmailVerificationRequiredError","EMAIL_VERIFICATION_REQUIRED","isResetTokenExpiredError","RESET_TOKEN_EXPIRED"],"sources":["../../../../src/core/identity/password-recovery/check.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { ErrorCode, hasInstanceof, isAuthupError } from '@authup/errors';\nimport { PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE, type PasswordRecoveryDisabledError } from './disabled.ts';\nimport { EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE, type EmailVerificationRequiredError } from './email-verification-required.ts';\nimport { RESET_TOKEN_EXPIRED_ERROR_INSTANCE, type ResetTokenExpiredError } from './token-expired.ts';\n\nexport function isPasswordRecoveryDisabledError(input: unknown): input is PasswordRecoveryDisabledError {\n if (hasInstanceof(input, PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE)) return true;\n if (!isAuthupError(input)) return false;\n return input.code === ErrorCode.PASSWORD_RECOVERY_DISABLED;\n}\n\nexport function isEmailVerificationRequiredError(input: unknown): input is EmailVerificationRequiredError {\n if (hasInstanceof(input, EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE)) return true;\n if (!isAuthupError(input)) return false;\n return input.code === ErrorCode.EMAIL_VERIFICATION_REQUIRED;\n}\n\nexport function isResetTokenExpiredError(input: unknown): input is ResetTokenExpiredError {\n if (hasInstanceof(input, RESET_TOKEN_EXPIRED_ERROR_INSTANCE)) return true;\n if (!isAuthupError(input)) return false;\n return input.code === ErrorCode.RESET_TOKEN_EXPIRED;\n}\n"],"mappings":";;;;;AAYA,SAAgBM,gCAAgCC,OAAc;CAC1D,IAAIN,cAAcM,OAAOJ,yCAAAA,GAA4C,OAAO;CAC5E,IAAI,CAACD,cAAcK,KAAAA,GAAQ,OAAO;CAClC,OAAOA,MAAMC,SAASR,UAAUS;AACpC;AAEA,SAAgBC,iCAAiCH,OAAc;CAC3D,IAAIN,cAAcM,OAAOH,0CAAAA,GAA6C,OAAO;CAC7E,IAAI,CAACF,cAAcK,KAAAA,GAAQ,OAAO;CAClC,OAAOA,MAAMC,SAASR,UAAUW;AACpC;AAEA,SAAgBC,yBAAyBL,OAAc;CACnD,IAAIN,cAAcM,OAAOF,kCAAAA,GAAqC,OAAO;CACrE,IAAI,CAACH,cAAcK,KAAAA,GAAQ,OAAO;CAClC,OAAOA,MAAMC,SAASR,UAAUa;AACpC"}
@@ -0,0 +1,6 @@
1
+ import { BadRequestError } from '@authup/errors';
2
+ export declare const PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE: unique symbol;
3
+ export declare class PasswordRecoveryDisabledError extends BadRequestError {
4
+ constructor();
5
+ }
6
+ //# sourceMappingURL=disabled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disabled.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/disabled.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAA6B,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,yCAAyC,eAAkE,CAAC;AAEzH,qBAAa,6BAA8B,SAAQ,eAAe;;CAQjE"}
@@ -0,0 +1,16 @@
1
+ import { BadRequestError, ErrorCode, markInstanceof } from "@authup/errors";
2
+ //#region src/core/identity/password-recovery/disabled.ts
3
+ const PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE = Symbol.for("@authup/server-core/PasswordRecoveryDisabledError");
4
+ var PasswordRecoveryDisabledError = class extends BadRequestError {
5
+ constructor() {
6
+ super({
7
+ code: ErrorCode.PASSWORD_RECOVERY_DISABLED,
8
+ message: "Password recovery is not enabled."
9
+ });
10
+ markInstanceof(this, PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE);
11
+ }
12
+ };
13
+ //#endregion
14
+ export { PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE, PasswordRecoveryDisabledError };
15
+
16
+ //# sourceMappingURL=disabled.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disabled.mjs","names":["BadRequestError","ErrorCode","markInstanceof","PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE","Symbol","for","PasswordRecoveryDisabledError","code","PASSWORD_RECOVERY_DISABLED","message"],"sources":["../../../../src/core/identity/password-recovery/disabled.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BadRequestError, ErrorCode, markInstanceof } from '@authup/errors';\n\nexport const PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE = Symbol.for('@authup/server-core/PasswordRecoveryDisabledError');\n\nexport class PasswordRecoveryDisabledError extends BadRequestError {\n constructor() {\n super({\n code: ErrorCode.PASSWORD_RECOVERY_DISABLED,\n message: 'Password recovery is not enabled.',\n });\n markInstanceof(this, PASSWORD_RECOVERY_DISABLED_ERROR_INSTANCE);\n }\n}\n"],"mappings":";;AASA,MAAaG,4CAA4CC,OAAOC,IAAI,mDAAA;AAEpE,IAAaC,gCAAb,cAAmDN,gBAAAA;CAC/C,cAAc;EACV,MAAM;GACFO,MAAMN,UAAUO;GAChBC,SAAS;EACb,CAAA;EACAP,eAAe,MAAMC,yCAAAA;CACzB;AACJ"}
@@ -0,0 +1,6 @@
1
+ import { BadRequestError } from '@authup/errors';
2
+ export declare const EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE: unique symbol;
3
+ export declare class EmailVerificationRequiredError extends BadRequestError {
4
+ constructor(message?: string);
5
+ }
6
+ //# sourceMappingURL=email-verification-required.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-verification-required.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/email-verification-required.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAA6B,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,0CAA0C,eAAmE,CAAC;AAE3H,qBAAa,8BAA+B,SAAQ,eAAe;gBACnD,OAAO,GAAE,MAA0C;CAOlE"}
@@ -0,0 +1,16 @@
1
+ import { BadRequestError, ErrorCode, markInstanceof } from "@authup/errors";
2
+ //#region src/core/identity/password-recovery/email-verification-required.ts
3
+ const EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE = Symbol.for("@authup/server-core/EmailVerificationRequiredError");
4
+ var EmailVerificationRequiredError = class extends BadRequestError {
5
+ constructor(message = "Email verification is required.") {
6
+ super({
7
+ code: ErrorCode.EMAIL_VERIFICATION_REQUIRED,
8
+ message
9
+ });
10
+ markInstanceof(this, EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE);
11
+ }
12
+ };
13
+ //#endregion
14
+ export { EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE, EmailVerificationRequiredError };
15
+
16
+ //# sourceMappingURL=email-verification-required.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-verification-required.mjs","names":["BadRequestError","ErrorCode","markInstanceof","EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE","Symbol","for","EmailVerificationRequiredError","message","code","EMAIL_VERIFICATION_REQUIRED"],"sources":["../../../../src/core/identity/password-recovery/email-verification-required.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BadRequestError, ErrorCode, markInstanceof } from '@authup/errors';\n\nexport const EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE = Symbol.for('@authup/server-core/EmailVerificationRequiredError');\n\nexport class EmailVerificationRequiredError extends BadRequestError {\n constructor(message: string = 'Email verification is required.') {\n super({\n code: ErrorCode.EMAIL_VERIFICATION_REQUIRED,\n message,\n });\n markInstanceof(this, EMAIL_VERIFICATION_REQUIRED_ERROR_INSTANCE);\n }\n}\n"],"mappings":";;AASA,MAAaG,6CAA6CC,OAAOC,IAAI,oDAAA;AAErE,IAAaC,iCAAb,cAAoDN,gBAAAA;CAChD,YAAYO,UAAkB,mCAAmC;EAC7D,MAAM;GACFC,MAAMP,UAAUQ;GAChBF;EACJ,CAAA;EACAL,eAAe,MAAMC,0CAAAA;CACzB;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/service.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEjF,qBAAa,uBAAwB,YAAW,wBAAwB;IACpE,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC;IAEtC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;gBAEtB,GAAG,EAAE,8BAA8B;IAOzC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsDxE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;YA0C9D,0BAA0B;YA8C1B,yBAAyB;CA2E1C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/service.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACR,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEjF,qBAAa,uBAAwB,YAAW,wBAAwB;IACpE,SAAS,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAElD,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC;IAEtC,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC;gBAEtB,GAAG,EAAE,8BAA8B;IAOzC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsDxE,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC;YA0C9D,0BAA0B;YA8C1B,yBAAyB;CA2E1C"}
@@ -1,5 +1,8 @@
1
1
  import { UserCredentialsService } from "../../authentication/credential/entities/user/module.mjs";
2
- import { BadRequestError, NotFoundError } from "@ebec/http";
2
+ import { PasswordRecoveryDisabledError } from "./disabled.mjs";
3
+ import { EmailVerificationRequiredError } from "./email-verification-required.mjs";
4
+ import { ResetTokenExpiredError } from "./token-expired.mjs";
5
+ import { BadRequestError, EntityNotFoundError } from "@authup/errors";
3
6
  import { Container } from "validup";
4
7
  import { createValidationChain, createValidator } from "@validup/adapter-validator";
5
8
  import { randomBytes } from "node:crypto";
@@ -16,8 +19,8 @@ var PasswordRecoveryService = class {
16
19
  this.mailClient = ctx.mailClient;
17
20
  }
18
21
  async forgotPassword(data) {
19
- if (!this.options.passwordRecoveryEnabled) throw new BadRequestError("Password recovery is not enabled.");
20
- if (!this.options.emailVerificationEnabled) throw new BadRequestError("Email verification is not enabled, but required to reset a password.");
22
+ if (!this.options.passwordRecoveryEnabled) throw new PasswordRecoveryDisabledError();
23
+ if (!this.options.emailVerificationEnabled) throw new EmailVerificationRequiredError("Email verification is not enabled, but required to reset a password.");
21
24
  const validated = await this.runForgotPasswordValidator(data);
22
25
  const realm = await this.realmRepository.resolve(validated.realm_id, true);
23
26
  const where = {
@@ -26,7 +29,7 @@ var PasswordRecoveryService = class {
26
29
  realm_id: realm.id
27
30
  };
28
31
  const entity = await this.repository.findOneByWithEmail(where);
29
- if (!entity) throw new NotFoundError();
32
+ if (!entity) throw new EntityNotFoundError();
30
33
  const merged = this.repository.merge(entity, {
31
34
  reset_expires: new Date(Date.now() + 1e3 * 60 * 30).toISOString(),
32
35
  reset_hash: randomBytes(32).toString("hex")
@@ -52,7 +55,7 @@ var PasswordRecoveryService = class {
52
55
  return { reset_expires: merged.reset_expires };
53
56
  }
54
57
  async resetPassword(data) {
55
- if (!this.options.passwordRecoveryEnabled) throw new BadRequestError("Password recovery is not enabled.");
58
+ if (!this.options.passwordRecoveryEnabled) throw new PasswordRecoveryDisabledError();
56
59
  const validated = await this.runResetPasswordValidator(data);
57
60
  await this.repository.validateJoinColumns(validated);
58
61
  const realm = await this.realmRepository.resolve(validated.realm_id, true);
@@ -63,8 +66,8 @@ var PasswordRecoveryService = class {
63
66
  realm_id: realm.id
64
67
  };
65
68
  const entity = await this.repository.findOneBy(where);
66
- if (!entity) throw new NotFoundError();
67
- if (!entity.reset_expires || new Date(entity.reset_expires) < /* @__PURE__ */ new Date()) throw new BadRequestError("Reset token has expired.");
69
+ if (!entity) throw new EntityNotFoundError();
70
+ if (!entity.reset_expires || new Date(entity.reset_expires) < /* @__PURE__ */ new Date()) throw new ResetTokenExpiredError();
68
71
  const hashedPassword = await new UserCredentialsService().protect(validated.password);
69
72
  const merged = this.repository.merge(entity, {
70
73
  reset_at: (/* @__PURE__ */ new Date()).toISOString(),
@@ -1 +1 @@
1
- {"version":3,"file":"service.mjs","names":["BadRequestError","NotFoundError","createValidationChain","createValidator","randomBytes","Container","UserCredentialsService","PasswordRecoveryService","options","repository","realmRepository","mailClient","ctx","forgotPassword","data","passwordRecoveryEnabled","emailVerificationEnabled","validated","runForgotPasswordValidator","realm","resolve","realm_id","where","name","email","id","entity","findOneByWithEmail","merged","merge","reset_expires","Date","now","toISOString","reset_hash","toString","save","send","to","subject","html","resetPassword","runResetPasswordValidator","validateJoinColumns","token","findOneBy","credentialsService","hashedPassword","protect","password","reset_at","validator","oneOfContainer","oneOf","mount","chain","exists","notEmpty","trim","toLowerCase","isEmail","matches","withMessage","isString","optional","isUUID","values","run","isLength","min","max"],"sources":["../../../../src/core/identity/password-recovery/service.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BadRequestError, NotFoundError } from '@ebec/http';\nimport { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { randomBytes } from 'node:crypto';\nimport { Container } from 'validup';\nimport { UserCredentialsService } from '../../authentication/credential/entities/user/module.ts';\nimport type {\n IPasswordRecoveryService,\n PasswordForgotResult,\n PasswordRecoveryServiceContext,\n PasswordRecoveryServiceOptions,\n PasswordResetResult,\n} from './types.ts';\nimport type { IMailClient } from '../../mail/types.ts';\nimport type { IRealmRepository, IUserRepository } from '../../entities/index.ts';\n\nexport class PasswordRecoveryService implements IPasswordRecoveryService {\n protected options: PasswordRecoveryServiceOptions;\n\n protected repository: IUserRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected mailClient: IMailClient;\n\n constructor(ctx: PasswordRecoveryServiceContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.mailClient = ctx.mailClient;\n }\n\n async forgotPassword(data: Record<string, any>): Promise<PasswordForgotResult> {\n if (!this.options.passwordRecoveryEnabled) {\n throw new BadRequestError('Password recovery is not enabled.');\n }\n\n if (!this.options.emailVerificationEnabled) {\n throw new BadRequestError('Email verification is not enabled, but required to reset a password.');\n }\n\n const validated = await this.runForgotPasswordValidator(data);\n\n const realm = await this.realmRepository.resolve(validated.realm_id, true);\n\n const where: Record<string, any> = {\n ...(validated.name ? { name: validated.name } : {}),\n ...(validated.email ? { email: validated.email } : {}),\n realm_id: realm.id,\n };\n\n const entity = await this.repository.findOneByWithEmail(where);\n\n if (!entity) {\n throw new NotFoundError();\n }\n\n const merged = this.repository.merge(entity, {\n reset_expires: new Date(Date.now() + (1000 * 60 * 30)).toISOString(),\n reset_hash: randomBytes(32).toString('hex'),\n });\n\n await this.repository.save(merged);\n\n try {\n await this.mailClient.send({\n to: entity.email,\n subject: 'Forgot Password - Reset code',\n html: `\n <p>Please use the code below to reset your account password.</p>\n <p>${merged.reset_hash}</p>\n `,\n });\n } catch {\n this.repository.merge(merged, {\n reset_hash: null,\n reset_expires: null,\n });\n await this.repository.save(merged);\n\n throw new BadRequestError('Password recovery failed. Could not send reset email.');\n }\n\n return { reset_expires: merged.reset_expires! };\n }\n\n async resetPassword(data: Record<string, any>): Promise<PasswordResetResult> {\n if (!this.options.passwordRecoveryEnabled) {\n throw new BadRequestError('Password recovery is not enabled.');\n }\n\n const validated = await this.runResetPasswordValidator(data);\n\n await this.repository.validateJoinColumns(validated);\n\n const realm = await this.realmRepository.resolve(validated.realm_id, true);\n\n const where: Record<string, any> = {\n ...(validated.name ? { name: validated.name } : {}),\n ...(validated.email ? { email: validated.email } : {}),\n reset_hash: validated.token,\n realm_id: realm.id,\n };\n\n const entity = await this.repository.findOneBy(where);\n if (!entity) {\n throw new NotFoundError();\n }\n\n if (!entity.reset_expires || new Date(entity.reset_expires) < new Date()) {\n throw new BadRequestError('Reset token has expired.');\n }\n\n const credentialsService = new UserCredentialsService();\n const hashedPassword = await credentialsService.protect(validated.password);\n\n const merged = this.repository.merge(entity, {\n reset_at: new Date().toISOString(),\n reset_hash: null,\n reset_expires: null,\n password: hashedPassword,\n });\n\n await this.repository.save(merged);\n\n return { reset_at: merged.reset_at! };\n }\n\n private async runForgotPasswordValidator(data: Record<string, any>) {\n const validator = new Container<any>({});\n\n const oneOfContainer = new Container({ oneOf: true });\n\n oneOfContainer.mount('email', createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .trim()\n .toLowerCase()\n .isEmail()\n .matches(/^[^A-Z]+$/)\n .withMessage('Email must be lowercase.');\n }));\n\n oneOfContainer.mount(\n 'name',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isString()\n .trim()\n .toLowerCase();\n }),\n );\n\n validator.mount(oneOfContainer);\n\n validator.mount(\n 'realm_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain.exists()\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n\n return validator.run(data);\n }\n\n private async runResetPasswordValidator(data: Record<string, any>) {\n const validator = new Container<any>({});\n\n const oneOfContainer = new Container({ oneOf: true });\n oneOfContainer.mount(\n 'email',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .trim()\n .toLowerCase()\n .isEmail()\n .matches(/^[^A-Z]+$/)\n .withMessage('Email must be lowercase.');\n }),\n );\n oneOfContainer.mount(\n 'name',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isString()\n .trim()\n .toLowerCase();\n }),\n );\n\n validator.mount(oneOfContainer);\n\n validator.mount(\n 'realm_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n\n validator.mount(\n 'token',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isLength({\n min: 3,\n max: 256, \n });\n }),\n );\n\n validator.mount(\n 'password',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isLength({\n min: 5,\n max: 512, \n });\n }),\n );\n\n return validator.run(data);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"service.mjs","names":["BadRequestError","EntityNotFoundError","PasswordRecoveryDisabledError","EmailVerificationRequiredError","ResetTokenExpiredError","createValidationChain","createValidator","randomBytes","Container","UserCredentialsService","PasswordRecoveryService","options","repository","realmRepository","mailClient","ctx","forgotPassword","data","passwordRecoveryEnabled","emailVerificationEnabled","validated","runForgotPasswordValidator","realm","resolve","realm_id","where","name","email","id","entity","findOneByWithEmail","merged","merge","reset_expires","Date","now","toISOString","reset_hash","toString","save","send","to","subject","html","resetPassword","runResetPasswordValidator","validateJoinColumns","token","findOneBy","credentialsService","hashedPassword","protect","password","reset_at","validator","oneOfContainer","oneOf","mount","chain","exists","notEmpty","trim","toLowerCase","isEmail","matches","withMessage","isString","optional","isUUID","values","run","isLength","min","max"],"sources":["../../../../src/core/identity/password-recovery/service.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BadRequestError, EntityNotFoundError } from '@authup/errors';\nimport { PasswordRecoveryDisabledError } from './disabled.ts';\nimport { EmailVerificationRequiredError } from './email-verification-required.ts';\nimport { ResetTokenExpiredError } from './token-expired.ts';\nimport { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { randomBytes } from 'node:crypto';\nimport { Container } from 'validup';\nimport { UserCredentialsService } from '../../authentication/credential/entities/user/module.ts';\nimport type {\n IPasswordRecoveryService,\n PasswordForgotResult,\n PasswordRecoveryServiceContext,\n PasswordRecoveryServiceOptions,\n PasswordResetResult,\n} from './types.ts';\nimport type { IMailClient } from '../../mail/types.ts';\nimport type { IRealmRepository, IUserRepository } from '../../entities/index.ts';\n\nexport class PasswordRecoveryService implements IPasswordRecoveryService {\n protected options: PasswordRecoveryServiceOptions;\n\n protected repository: IUserRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected mailClient: IMailClient;\n\n constructor(ctx: PasswordRecoveryServiceContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.mailClient = ctx.mailClient;\n }\n\n async forgotPassword(data: Record<string, any>): Promise<PasswordForgotResult> {\n if (!this.options.passwordRecoveryEnabled) {\n throw new PasswordRecoveryDisabledError();\n }\n\n if (!this.options.emailVerificationEnabled) {\n throw new EmailVerificationRequiredError('Email verification is not enabled, but required to reset a password.');\n }\n\n const validated = await this.runForgotPasswordValidator(data);\n\n const realm = await this.realmRepository.resolve(validated.realm_id, true);\n\n const where: Record<string, any> = {\n ...(validated.name ? { name: validated.name } : {}),\n ...(validated.email ? { email: validated.email } : {}),\n realm_id: realm.id,\n };\n\n const entity = await this.repository.findOneByWithEmail(where);\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n const merged = this.repository.merge(entity, {\n reset_expires: new Date(Date.now() + (1000 * 60 * 30)).toISOString(),\n reset_hash: randomBytes(32).toString('hex'),\n });\n\n await this.repository.save(merged);\n\n try {\n await this.mailClient.send({\n to: entity.email,\n subject: 'Forgot Password - Reset code',\n html: `\n <p>Please use the code below to reset your account password.</p>\n <p>${merged.reset_hash}</p>\n `,\n });\n } catch {\n this.repository.merge(merged, {\n reset_hash: null,\n reset_expires: null,\n });\n await this.repository.save(merged);\n\n throw new BadRequestError('Password recovery failed. Could not send reset email.');\n }\n\n return { reset_expires: merged.reset_expires! };\n }\n\n async resetPassword(data: Record<string, any>): Promise<PasswordResetResult> {\n if (!this.options.passwordRecoveryEnabled) {\n throw new PasswordRecoveryDisabledError();\n }\n\n const validated = await this.runResetPasswordValidator(data);\n\n await this.repository.validateJoinColumns(validated);\n\n const realm = await this.realmRepository.resolve(validated.realm_id, true);\n\n const where: Record<string, any> = {\n ...(validated.name ? { name: validated.name } : {}),\n ...(validated.email ? { email: validated.email } : {}),\n reset_hash: validated.token,\n realm_id: realm.id,\n };\n\n const entity = await this.repository.findOneBy(where);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n if (!entity.reset_expires || new Date(entity.reset_expires) < new Date()) {\n throw new ResetTokenExpiredError();\n }\n\n const credentialsService = new UserCredentialsService();\n const hashedPassword = await credentialsService.protect(validated.password);\n\n const merged = this.repository.merge(entity, {\n reset_at: new Date().toISOString(),\n reset_hash: null,\n reset_expires: null,\n password: hashedPassword,\n });\n\n await this.repository.save(merged);\n\n return { reset_at: merged.reset_at! };\n }\n\n private async runForgotPasswordValidator(data: Record<string, any>) {\n const validator = new Container<any>({});\n\n const oneOfContainer = new Container({ oneOf: true });\n\n oneOfContainer.mount('email', createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .trim()\n .toLowerCase()\n .isEmail()\n .matches(/^[^A-Z]+$/)\n .withMessage('Email must be lowercase.');\n }));\n\n oneOfContainer.mount(\n 'name',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isString()\n .trim()\n .toLowerCase();\n }),\n );\n\n validator.mount(oneOfContainer);\n\n validator.mount(\n 'realm_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain.exists()\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n\n return validator.run(data);\n }\n\n private async runResetPasswordValidator(data: Record<string, any>) {\n const validator = new Container<any>({});\n\n const oneOfContainer = new Container({ oneOf: true });\n oneOfContainer.mount(\n 'email',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .trim()\n .toLowerCase()\n .isEmail()\n .matches(/^[^A-Z]+$/)\n .withMessage('Email must be lowercase.');\n }),\n );\n oneOfContainer.mount(\n 'name',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isString()\n .trim()\n .toLowerCase();\n }),\n );\n\n validator.mount(oneOfContainer);\n\n validator.mount(\n 'realm_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n\n validator.mount(\n 'token',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isLength({\n min: 3,\n max: 256, \n });\n }),\n );\n\n validator.mount(\n 'password',\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .notEmpty()\n .isLength({\n min: 5,\n max: 512, \n });\n }),\n );\n\n return validator.run(data);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BadRequestError } from '@authup/errors';
2
+ export declare const RESET_TOKEN_EXPIRED_ERROR_INSTANCE: unique symbol;
3
+ export declare class ResetTokenExpiredError extends BadRequestError {
4
+ constructor();
5
+ }
6
+ //# sourceMappingURL=token-expired.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-expired.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/password-recovery/token-expired.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAA6B,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,kCAAkC,eAA2D,CAAC;AAE3G,qBAAa,sBAAuB,SAAQ,eAAe;;CAQ1D"}
@@ -0,0 +1,16 @@
1
+ import { BadRequestError, ErrorCode, markInstanceof } from "@authup/errors";
2
+ //#region src/core/identity/password-recovery/token-expired.ts
3
+ const RESET_TOKEN_EXPIRED_ERROR_INSTANCE = Symbol.for("@authup/server-core/ResetTokenExpiredError");
4
+ var ResetTokenExpiredError = class extends BadRequestError {
5
+ constructor() {
6
+ super({
7
+ code: ErrorCode.RESET_TOKEN_EXPIRED,
8
+ message: "Reset token has expired."
9
+ });
10
+ markInstanceof(this, RESET_TOKEN_EXPIRED_ERROR_INSTANCE);
11
+ }
12
+ };
13
+ //#endregion
14
+ export { RESET_TOKEN_EXPIRED_ERROR_INSTANCE, ResetTokenExpiredError };
15
+
16
+ //# sourceMappingURL=token-expired.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-expired.mjs","names":["BadRequestError","ErrorCode","markInstanceof","RESET_TOKEN_EXPIRED_ERROR_INSTANCE","Symbol","for","ResetTokenExpiredError","code","RESET_TOKEN_EXPIRED","message"],"sources":["../../../../src/core/identity/password-recovery/token-expired.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BadRequestError, ErrorCode, markInstanceof } from '@authup/errors';\n\nexport const RESET_TOKEN_EXPIRED_ERROR_INSTANCE = Symbol.for('@authup/server-core/ResetTokenExpiredError');\n\nexport class ResetTokenExpiredError extends BadRequestError {\n constructor() {\n super({\n code: ErrorCode.RESET_TOKEN_EXPIRED,\n message: 'Reset token has expired.',\n });\n markInstanceof(this, RESET_TOKEN_EXPIRED_ERROR_INSTANCE);\n }\n}\n"],"mappings":";;AASA,MAAaG,qCAAqCC,OAAOC,IAAI,4CAAA;AAE7D,IAAaC,yBAAb,cAA4CN,gBAAAA;CACxC,cAAc;EACV,MAAM;GACFO,MAAMN,UAAUO;GAChBC,SAAS;EACb,CAAA;EACAP,eAAe,MAAMC,kCAAAA;CACzB;AACJ"}
@@ -0,0 +1,3 @@
1
+ export * from './service.ts';
2
+ export * from './types.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/identity/permission/checker/index.ts"],"names":[],"mappings":"AAOA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { PermissionCheckerService } from "./service.mjs";
2
+ export { PermissionCheckerService };
@@ -0,0 +1,10 @@
1
+ import type { Result } from '@authup/kit';
2
+ import type { ActorContext } from '@authup/server-kit';
3
+ import type { IPermissionCheckerService, PermissionCheckerServiceContext } from './types.ts';
4
+ export declare class PermissionCheckerService implements IPermissionCheckerService {
5
+ protected ctx: PermissionCheckerServiceContext;
6
+ constructor(ctx: PermissionCheckerServiceContext);
7
+ check(idOrName: string, data: Record<string, any>, actor: ActorContext, realm?: string): Promise<void>;
8
+ safeCheck(idOrName: string, data: Record<string, any>, actor: ActorContext, realm?: string): Promise<Result<null>>;
9
+ }
10
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../../../src/core/identity/permission/checker/service.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EACR,yBAAyB,EACzB,+BAA+B,EAClC,MAAM,YAAY,CAAC;AAEpB,qBAAa,wBAAyB,YAAW,yBAAyB;IACtE,SAAS,CAAC,GAAG,EAAE,+BAA+B,CAAC;gBAEnC,GAAG,EAAE,+BAA+B;IAI1C,KAAK,CACP,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IA0CV,SAAS,CACX,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAQ3B"}
@@ -0,0 +1,55 @@
1
+ import { PolicyEngine as PolicyEngine$1 } from "../../../security/policy/engine.mjs";
2
+ import { toIdentityPolicyData } from "../identity-policy-data.mjs";
3
+ import { isUUID } from "@authup/kit";
4
+ import { BuiltInPolicyType, PermissionEvaluator, PolicyData } from "@authup/access";
5
+ import { EntityNotFoundError, normalizeError } from "@authup/errors";
6
+ //#region src/core/identity/permission/checker/service.ts
7
+ var PermissionCheckerService = class {
8
+ ctx;
9
+ constructor(ctx) {
10
+ this.ctx = ctx;
11
+ }
12
+ async check(idOrName, data, actor, realm) {
13
+ let criteria;
14
+ if (isUUID(idOrName)) criteria = { id: idOrName };
15
+ else {
16
+ const realmEntity = await this.ctx.realmRepository.resolve(realm);
17
+ criteria = {
18
+ name: idOrName,
19
+ ...realmEntity ? { realm_id: realmEntity.id } : {}
20
+ };
21
+ }
22
+ const entity = await this.ctx.repository.findOneBy(criteria);
23
+ if (!entity) throw new EntityNotFoundError();
24
+ const input = { ...data };
25
+ if (typeof input[BuiltInPolicyType.IDENTITY] === "undefined") input[BuiltInPolicyType.IDENTITY] = toIdentityPolicyData(actor.identity);
26
+ const evaluationContext = {
27
+ name: entity.name,
28
+ input: new PolicyData(input)
29
+ };
30
+ const evaluator = new PermissionEvaluator({
31
+ provider: this.ctx.permissionProvider,
32
+ policyEngine: new PolicyEngine$1(this.ctx.identityPermissionProvider)
33
+ });
34
+ if (evaluationContext.input && evaluationContext.input.has(BuiltInPolicyType.ATTRIBUTES)) await evaluator.evaluate(evaluationContext);
35
+ else await evaluator.preEvaluate(evaluationContext);
36
+ }
37
+ async safeCheck(idOrName, data, actor, realm) {
38
+ try {
39
+ await this.check(idOrName, data, actor, realm);
40
+ return {
41
+ success: true,
42
+ data: null
43
+ };
44
+ } catch (e) {
45
+ return {
46
+ success: false,
47
+ error: normalizeError(e)
48
+ };
49
+ }
50
+ }
51
+ };
52
+ //#endregion
53
+ export { PermissionCheckerService };
54
+
55
+ //# sourceMappingURL=service.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.mjs","names":["BuiltInPolicyType","PermissionEvaluator","PolicyData","isUUID","EntityNotFoundError","normalizeError","PolicyEngine","toIdentityPolicyData","PermissionCheckerService","ctx","check","idOrName","data","actor","realm","criteria","id","realmEntity","realmRepository","resolve","name","realm_id","entity","repository","findOneBy","input","IDENTITY","identity","evaluationContext","evaluator","provider","permissionProvider","policyEngine","identityPermissionProvider","has","ATTRIBUTES","evaluate","preEvaluate","safeCheck","success","e","error"],"sources":["../../../../../src/core/identity/permission/checker/service.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { PermissionEvaluationContext } from '@authup/access';\nimport { BuiltInPolicyType, PermissionEvaluator, PolicyData } from '@authup/access';\nimport type { Result } from '@authup/kit';\nimport { isUUID } from '@authup/kit';\nimport { EntityNotFoundError, normalizeError } from '@authup/errors';\nimport type { ActorContext } from '@authup/server-kit';\nimport { PolicyEngine } from '../../../security/policy/engine.ts';\nimport { toIdentityPolicyData } from '../identity-policy-data.ts';\nimport type {\n IPermissionCheckerService,\n PermissionCheckerServiceContext,\n} from './types.ts';\n\nexport class PermissionCheckerService implements IPermissionCheckerService {\n protected ctx: PermissionCheckerServiceContext;\n\n constructor(ctx: PermissionCheckerServiceContext) {\n this.ctx = ctx;\n }\n\n async check(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n realm?: string,\n ): Promise<void> {\n let criteria: Record<string, any>;\n if (isUUID(idOrName)) {\n criteria = { id: idOrName };\n } else {\n const realmEntity = await this.ctx.realmRepository.resolve(realm);\n criteria = {\n name: idOrName,\n ...(realmEntity ? { realm_id: realmEntity.id } : {}),\n };\n }\n\n const entity = await this.ctx.repository.findOneBy(criteria);\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n const input = { ...data };\n if (typeof input[BuiltInPolicyType.IDENTITY] === 'undefined') {\n input[BuiltInPolicyType.IDENTITY] = toIdentityPolicyData(actor.identity);\n }\n\n const evaluationContext: PermissionEvaluationContext = {\n name: entity.name,\n input: new PolicyData(input),\n };\n\n const evaluator = new PermissionEvaluator({\n provider: this.ctx.permissionProvider,\n policyEngine: new PolicyEngine(this.ctx.identityPermissionProvider),\n });\n\n if (\n evaluationContext.input &&\n evaluationContext.input.has(BuiltInPolicyType.ATTRIBUTES)\n ) {\n await evaluator.evaluate(evaluationContext);\n } else {\n await evaluator.preEvaluate(evaluationContext);\n }\n }\n\n async safeCheck(\n idOrName: string,\n data: Record<string, any>,\n actor: ActorContext,\n realm?: string,\n ): Promise<Result<null>> {\n try {\n await this.check(idOrName, data, actor, realm);\n return { success: true, data: null };\n } catch (e) {\n return { success: false, error: normalizeError(e) };\n }\n }\n}\n"],"mappings":";;;;;;AAoBA,IAAaQ,2BAAb,MAAaA;CACCC;CAEV,YAAYA,KAAsC;EAC9C,KAAKA,MAAMA;CACf;CAEA,MAAMC,MACFC,UACAC,MACAC,OACAC,OACa;EACb,IAAIC;EACJ,IAAIZ,OAAOQ,QAAAA,GACPI,WAAW,EAAEC,IAAIL,SAAS;OACvB;GACH,MAAMM,cAAc,MAAM,KAAKR,IAAIS,gBAAgBC,QAAQL,KAAAA;GAC3DC,WAAW;IACPK,MAAMT;IACN,GAAIM,cAAc,EAAEI,UAAUJ,YAAYD,GAAG,IAAI,CAAC;GACtD;EACJ;EAEA,MAAMM,SAAS,MAAM,KAAKb,IAAIc,WAAWC,UAAUT,QAAAA;EACnD,IAAI,CAACO,QACD,MAAM,IAAIlB,oBAAAA;EAGd,MAAMqB,QAAQ,EAAE,GAAGb,KAAK;EACxB,IAAI,OAAOa,MAAMzB,kBAAkB0B,cAAc,aAC7CD,MAAMzB,kBAAkB0B,YAAYnB,qBAAqBM,MAAMc,QAAQ;EAG3E,MAAMC,oBAAiD;GACnDR,MAAME,OAAOF;GACbK,OAAO,IAAIvB,WAAWuB,KAAAA;EAC1B;EAEA,MAAMI,YAAY,IAAI5B,oBAAoB;GACtC6B,UAAU,KAAKrB,IAAIsB;GACnBC,cAAc,IAAI1B,eAAa,KAAKG,IAAIwB,0BAA0B;EACtE,CAAA;EAEA,IACIL,kBAAkBH,SAClBG,kBAAkBH,MAAMS,IAAIlC,kBAAkBmC,UAAU,GAExD,MAAMN,UAAUO,SAASR,iBAAAA;OAEzB,MAAMC,UAAUQ,YAAYT,iBAAAA;CAEpC;CAEA,MAAMU,UACF3B,UACAC,MACAC,OACAC,OACqB;EACrB,IAAI;GACA,MAAM,KAAKJ,MAAMC,UAAUC,MAAMC,OAAOC,KAAAA;GACxC,OAAO;IAAEyB,SAAS;IAAM3B,MAAM;GAAK;EACvC,SAAS4B,GAAG;GACR,OAAO;IAAED,SAAS;IAAOE,OAAOpC,eAAemC,CAAAA;GAAG;EACtD;CACJ;AACJ"}
@@ -0,0 +1,42 @@
1
+ import type { IPermissionProvider } from '@authup/access';
2
+ import type { Result } from '@authup/kit';
3
+ import type { ActorContext } from '@authup/server-kit';
4
+ import type { IPermissionRepository, IRealmRepository } from '../../../entities/index.ts';
5
+ import type { IIdentityPermissionProvider } from '../types.ts';
6
+ export type PermissionCheckerServiceContext = {
7
+ repository: IPermissionRepository;
8
+ realmRepository: IRealmRepository;
9
+ permissionProvider: IPermissionProvider;
10
+ identityPermissionProvider: IIdentityPermissionProvider;
11
+ };
12
+ export interface IPermissionCheckerService {
13
+ /**
14
+ * Resolve a permission by id (UUID) or name and evaluate it against
15
+ * the supplied data and actor. Throws on any failure — entity not
16
+ * found, evaluator denial, validator error.
17
+ *
18
+ * If `data[identity]` is omitted, the actor's identity (flattened to
19
+ * `IdentityPolicyData`) is injected. If `data[attributes]` is present,
20
+ * the evaluator runs a full `evaluate`; otherwise it runs a
21
+ * `preEvaluate` (data-less gate check).
22
+ *
23
+ * @param idOrName Permission UUID or name. Names are resolved within
24
+ * the supplied realm (or the resolved fallback realm).
25
+ * @param data Caller-supplied evaluation input. Mutated copy is used
26
+ * internally.
27
+ * @param actor The caller context. `actor.identity` becomes the
28
+ * default identity input when `data[identity]` is unset.
29
+ * @param realm Optional realm id used to disambiguate name lookups.
30
+ * @throws {EntityNotFoundError} When no permission matches.
31
+ * @throws {Error} Whatever the evaluator throws on denial.
32
+ */
33
+ check(idOrName: string, data: Record<string, any>, actor: ActorContext, realm?: string): Promise<void>;
34
+ /**
35
+ * Same as `check`, but never throws — collapses any failure into a
36
+ * `Result<null>` with `success: false` and the originating error.
37
+ * Use this at boundaries that want to embed denial in a response body
38
+ * rather than propagate it.
39
+ */
40
+ safeCheck(idOrName: string, data: Record<string, any>, actor: ActorContext, realm?: string): Promise<Result<null>>;
41
+ }
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/core/identity/permission/checker/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EACR,qBAAqB,EACrB,gBAAgB,EACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,+BAA+B,GAAG;IAC1C,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,kBAAkB,EAAE,mBAAmB,CAAC;IACxC,0BAA0B,EAAE,2BAA2B,CAAC;CAC3D,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CACD,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;OAKG;IACH,SAAS,CACL,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,KAAK,EAAE,YAAY,EACnB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC5B"}
@@ -0,0 +1,4 @@
1
+ import type { IdentityPolicyData } from '@authup/access';
2
+ import type { Identity } from '@authup/core-kit';
3
+ export declare function toIdentityPolicyData(identity: Identity | undefined): IdentityPolicyData | undefined;
4
+ //# sourceMappingURL=identity-policy-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-policy-data.d.ts","sourceRoot":"","sources":["../../../../src/core/identity/permission/identity-policy-data.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,GAAG,SAAS,CA4BnG"}