@authup/server-core 1.0.0-beta.41 → 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 (687) 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.mjs.map +1 -1
  86. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +2 -2
  87. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  88. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +2 -2
  89. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  90. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  91. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  92. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +4 -4
  93. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  94. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  95. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +4 -4
  96. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
  97. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  98. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  99. package/dist/adapters/http/controllers/entities/client/module.mjs +10 -6
  100. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  101. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  102. package/dist/adapters/http/controllers/entities/client-permission/utils/validation.mjs.map +1 -1
  103. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  104. package/dist/adapters/http/controllers/entities/client-role/utils/validation.mjs.map +1 -1
  105. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  106. package/dist/adapters/http/controllers/entities/client-scope/utils/validator.mjs.map +1 -1
  107. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  108. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  109. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +19 -17
  110. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  111. package/dist/adapters/http/controllers/entities/permission/module.d.ts +3 -10
  112. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  113. package/dist/adapters/http/controllers/entities/permission/module.mjs +16 -49
  114. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  115. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  116. package/dist/adapters/http/controllers/entities/policy/module.d.ts +3 -7
  117. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  118. package/dist/adapters/http/controllers/entities/policy/module.mjs +16 -39
  119. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  120. package/dist/adapters/http/controllers/entities/policy/utils/attributes-validator.mjs.map +1 -1
  121. package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs.map +1 -1
  122. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  123. package/dist/adapters/http/controllers/entities/realm/module.mjs +1 -1
  124. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  125. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
  126. package/dist/adapters/http/controllers/entities/robot/module.mjs +11 -7
  127. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
  128. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
  129. package/dist/adapters/http/controllers/entities/robot-permission/utils/validation.mjs.map +1 -1
  130. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
  131. package/dist/adapters/http/controllers/entities/robot-role/utils/validation.mjs.map +1 -1
  132. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  133. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  134. package/dist/adapters/http/controllers/entities/role-attribute/utils/validation.mjs.map +1 -1
  135. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  136. package/dist/adapters/http/controllers/entities/role-permission/utils/validation.mjs.map +1 -1
  137. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  138. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  139. package/dist/adapters/http/controllers/entities/user/module.mjs +7 -3
  140. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  141. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  142. package/dist/adapters/http/controllers/entities/user-attribute/utils/validation.mjs.map +1 -1
  143. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  144. package/dist/adapters/http/controllers/entities/user-permission/utils/validation.mjs.map +1 -1
  145. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  146. package/dist/adapters/http/controllers/entities/user-role/utils/validation.mjs.map +1 -1
  147. package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
  148. package/dist/adapters/http/controllers/workflows/activate/validator.mjs.map +1 -1
  149. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  150. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
  151. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  152. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  153. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +3 -4
  154. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  155. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  156. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +3 -4
  157. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  158. package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
  159. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
  160. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
  161. package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
  162. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  163. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  164. package/dist/adapters/http/controllers/workflows/token/module.mjs +6 -6
  165. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  166. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
  167. package/dist/adapters/http/controllers/workflows/token/utils/validator.mjs.map +1 -1
  168. package/dist/adapters/http/index.mjs +4 -1
  169. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  170. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
  171. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -2
  172. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  173. package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
  174. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  175. package/dist/adapters/http/middleware/built-in/error.mjs +5 -3
  176. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  177. package/dist/adapters/http/middleware/built-in/index.d.ts +1 -0
  178. package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
  179. package/dist/adapters/http/middleware/built-in/index.mjs +4 -1
  180. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
  181. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +1 -1
  182. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
  183. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  184. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  185. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  186. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts +4 -0
  187. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts.map +1 -0
  188. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs +14 -0
  189. package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs.map +1 -0
  190. package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts +4 -0
  191. package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts.map +1 -0
  192. package/dist/adapters/http/middleware/built-in/realm-resolver/index.mjs +3 -0
  193. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts +9 -0
  194. package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -0
  195. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +26 -0
  196. package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -0
  197. package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts +5 -0
  198. package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts.map +1 -0
  199. package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
  200. package/dist/adapters/http/middleware/index.mjs +3 -1
  201. package/dist/adapters/http/request/helpers/actor.d.ts +1 -1
  202. package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
  203. package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
  204. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  205. package/dist/adapters/http/request/helpers/identity.mjs +1 -1
  206. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  207. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  208. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  209. package/dist/adapters/http/request/helpers/index.mjs +2 -1
  210. package/dist/adapters/http/request/helpers/locations.mjs.map +1 -1
  211. package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
  212. package/dist/adapters/http/request/helpers/realm-id.d.ts +5 -0
  213. package/dist/adapters/http/request/helpers/realm-id.d.ts.map +1 -0
  214. package/dist/adapters/http/request/helpers/realm-id.mjs +19 -0
  215. package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -0
  216. package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
  217. package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
  218. package/dist/adapters/http/request/index.mjs +2 -1
  219. package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
  220. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  221. package/dist/adapters/shared/ldap/factory.mjs.map +1 -1
  222. package/dist/adapters/shared/ldap/module.mjs.map +1 -1
  223. package/dist/app/builder.mjs.map +1 -1
  224. package/dist/app/factory.mjs.map +1 -1
  225. package/dist/app/modules/authentication/constants.mjs.map +1 -1
  226. package/dist/app/modules/authentication/module.mjs.map +1 -1
  227. package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
  228. package/dist/app/modules/cache/constants.mjs.map +1 -1
  229. package/dist/app/modules/cache/module.mjs.map +1 -1
  230. package/dist/app/modules/components/module.mjs.map +1 -1
  231. package/dist/app/modules/config/constants.mjs.map +1 -1
  232. package/dist/app/modules/config/module.mjs.map +1 -1
  233. package/dist/app/modules/config/normalize.mjs.map +1 -1
  234. package/dist/app/modules/config/parse.mjs.map +1 -1
  235. package/dist/app/modules/config/read/env.mjs.map +1 -1
  236. package/dist/app/modules/config/read/fs.mjs.map +1 -1
  237. package/dist/app/modules/config/read/module.mjs.map +1 -1
  238. package/dist/app/modules/constants.mjs.map +1 -1
  239. package/dist/app/modules/database/constants.mjs.map +1 -1
  240. package/dist/app/modules/database/module.mjs.map +1 -1
  241. package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
  242. package/dist/app/modules/database/repositories/client/repository.d.ts +2 -1
  243. package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
  244. package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
  245. package/dist/app/modules/database/repositories/client-permission/repository.d.ts +1 -1
  246. package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
  247. package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
  248. package/dist/app/modules/database/repositories/client-role/repository.d.ts +1 -1
  249. package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
  250. package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
  251. package/dist/app/modules/database/repositories/client-scope/repository.d.ts +1 -1
  252. package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
  253. package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
  254. package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
  255. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
  256. package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
  257. package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
  258. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
  259. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
  260. package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
  261. package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
  262. package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
  263. package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
  264. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
  265. package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
  266. package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
  267. package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
  268. package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
  269. package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
  270. package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
  271. package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
  272. package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
  273. package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
  274. package/dist/app/modules/database/repositories/robot/repository.d.ts +2 -1
  275. package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
  276. package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
  277. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +1 -1
  278. package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +1 -1
  279. package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +1 -1
  280. package/dist/app/modules/database/repositories/robot-role/repository.d.ts +2 -1
  281. package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +1 -1
  282. package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +1 -1
  283. package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
  284. package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
  285. package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
  286. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
  287. package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
  288. package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
  289. package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
  290. package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
  291. package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
  292. package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
  293. package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
  294. package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
  295. package/dist/app/modules/database/repositories/user/repository.d.ts +2 -1
  296. package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
  297. package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
  298. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
  299. package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
  300. package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
  301. package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
  302. package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
  303. package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
  304. package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
  305. package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
  306. package/dist/app/modules/database/repositories/user-role/repository.mjs.map +1 -1
  307. package/dist/app/modules/http/constants.mjs.map +1 -1
  308. package/dist/app/modules/http/module.mjs.map +1 -1
  309. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  310. package/dist/app/modules/http/modules/controller.mjs +27 -19
  311. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  312. package/dist/app/modules/http/modules/middleware.d.ts +1 -0
  313. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  314. package/dist/app/modules/http/modules/middleware.mjs +10 -0
  315. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  316. package/dist/app/modules/identity/constants.mjs.map +1 -1
  317. package/dist/app/modules/identity/module.mjs.map +1 -1
  318. package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
  319. package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
  320. package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
  321. package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
  322. package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
  323. package/dist/app/modules/identity/repositories/robot.mjs.map +1 -1
  324. package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
  325. package/dist/app/modules/ldap/constants.mjs.map +1 -1
  326. package/dist/app/modules/ldap/module.mjs.map +1 -1
  327. package/dist/app/modules/logger/constants.mjs.map +1 -1
  328. package/dist/app/modules/logger/module.mjs.map +1 -1
  329. package/dist/app/modules/mail/adapter/smtp/module.mjs.map +1 -1
  330. package/dist/app/modules/mail/adapter/smtp/smtp.mjs.map +1 -1
  331. package/dist/app/modules/mail/adapter/void.mjs.map +1 -1
  332. package/dist/app/modules/mail/constants.mjs.map +1 -1
  333. package/dist/app/modules/mail/module.mjs.map +1 -1
  334. package/dist/app/modules/oauth2/constants.mjs.map +1 -1
  335. package/dist/app/modules/oauth2/module.mjs.map +1 -1
  336. package/dist/app/modules/oauth2/repositories/authorize/code/repository.mjs.map +1 -1
  337. package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
  338. package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
  339. package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +1 -1
  340. package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
  341. package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
  342. package/dist/app/modules/provisioning/module.mjs.map +1 -1
  343. package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
  344. package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
  345. package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
  346. package/dist/app/modules/runtime/module.mjs.map +1 -1
  347. package/dist/cli/commands/healthcheck.mjs.map +1 -1
  348. package/dist/cli/commands/migration.mjs.map +1 -1
  349. package/dist/cli/commands/reset.mjs.map +1 -1
  350. package/dist/cli/commands/start.mjs.map +1 -1
  351. package/dist/cli/index.mjs.map +1 -1
  352. package/dist/cli/module.mjs.map +1 -1
  353. package/dist/components/database/unique-entries/factory.mjs.map +1 -1
  354. package/dist/components/database/unique-entries/module.mjs.map +1 -1
  355. package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
  356. package/dist/core/authentication/base.mjs.map +1 -1
  357. package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
  358. package/dist/core/authentication/credential/entities/robot/module.mjs.map +1 -1
  359. package/dist/core/authentication/credential/entities/user/module.mjs.map +1 -1
  360. package/dist/core/authentication/entities/client/module.d.ts.map +1 -1
  361. package/dist/core/authentication/entities/client/module.mjs +7 -5
  362. package/dist/core/authentication/entities/client/module.mjs.map +1 -1
  363. package/dist/core/authentication/entities/robot/module.d.ts.map +1 -1
  364. package/dist/core/authentication/entities/robot/module.mjs +5 -4
  365. package/dist/core/authentication/entities/robot/module.mjs.map +1 -1
  366. package/dist/core/authentication/entities/user/module.d.ts.map +1 -1
  367. package/dist/core/authentication/entities/user/module.mjs +5 -4
  368. package/dist/core/authentication/entities/user/module.mjs.map +1 -1
  369. package/dist/core/authentication/module.mjs.map +1 -1
  370. package/dist/core/authentication/session/module.mjs.map +1 -1
  371. package/dist/core/entities/client/service.d.ts +2 -3
  372. package/dist/core/entities/client/service.d.ts.map +1 -1
  373. package/dist/core/entities/client/service.mjs +8 -8
  374. package/dist/core/entities/client/service.mjs.map +1 -1
  375. package/dist/core/entities/client/types.d.ts +1 -2
  376. package/dist/core/entities/client/types.d.ts.map +1 -1
  377. package/dist/core/entities/client-permission/service.d.ts +2 -3
  378. package/dist/core/entities/client-permission/service.d.ts.map +1 -1
  379. package/dist/core/entities/client-permission/service.mjs +8 -7
  380. package/dist/core/entities/client-permission/service.mjs.map +1 -1
  381. package/dist/core/entities/client-permission/types.d.ts +1 -2
  382. package/dist/core/entities/client-permission/types.d.ts.map +1 -1
  383. package/dist/core/entities/client-role/service.d.ts +2 -3
  384. package/dist/core/entities/client-role/service.d.ts.map +1 -1
  385. package/dist/core/entities/client-role/service.mjs +9 -8
  386. package/dist/core/entities/client-role/service.mjs.map +1 -1
  387. package/dist/core/entities/client-role/types.d.ts +1 -2
  388. package/dist/core/entities/client-role/types.d.ts.map +1 -1
  389. package/dist/core/entities/client-scope/service.d.ts +2 -3
  390. package/dist/core/entities/client-scope/service.d.ts.map +1 -1
  391. package/dist/core/entities/client-scope/service.mjs +7 -6
  392. package/dist/core/entities/client-scope/service.mjs.map +1 -1
  393. package/dist/core/entities/client-scope/types.d.ts +1 -2
  394. package/dist/core/entities/client-scope/types.d.ts.map +1 -1
  395. package/dist/core/entities/identity-provider/types.d.ts +1 -1
  396. package/dist/core/entities/identity-provider/types.d.ts.map +1 -1
  397. package/dist/core/entities/identity-provider-role-mapping/service.d.ts +2 -3
  398. package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
  399. package/dist/core/entities/identity-provider-role-mapping/service.mjs +10 -9
  400. package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
  401. package/dist/core/entities/identity-provider-role-mapping/types.d.ts +1 -2
  402. package/dist/core/entities/identity-provider-role-mapping/types.d.ts.map +1 -1
  403. package/dist/core/entities/index.d.ts +0 -3
  404. package/dist/core/entities/index.d.ts.map +1 -1
  405. package/dist/core/entities/index.mjs +1 -2
  406. package/dist/core/entities/permission/service.d.ts +2 -3
  407. package/dist/core/entities/permission/service.d.ts.map +1 -1
  408. package/dist/core/entities/permission/service.mjs +8 -9
  409. package/dist/core/entities/permission/service.mjs.map +1 -1
  410. package/dist/core/entities/permission/types.d.ts +1 -2
  411. package/dist/core/entities/permission/types.d.ts.map +1 -1
  412. package/dist/core/entities/permission-policy/service.d.ts +2 -3
  413. package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
  414. package/dist/core/entities/permission-policy/service.mjs +7 -6
  415. package/dist/core/entities/permission-policy/service.mjs.map +1 -1
  416. package/dist/core/entities/permission-policy/types.d.ts +1 -2
  417. package/dist/core/entities/permission-policy/types.d.ts.map +1 -1
  418. package/dist/core/entities/policy/attributes-validator.mjs.map +1 -1
  419. package/dist/core/entities/policy/service.d.ts +2 -3
  420. package/dist/core/entities/policy/service.d.ts.map +1 -1
  421. package/dist/core/entities/policy/service.mjs +8 -8
  422. package/dist/core/entities/policy/service.mjs.map +1 -1
  423. package/dist/core/entities/policy/types.d.ts +1 -2
  424. package/dist/core/entities/policy/types.d.ts.map +1 -1
  425. package/dist/core/entities/realm/service.d.ts +2 -3
  426. package/dist/core/entities/realm/service.d.ts.map +1 -1
  427. package/dist/core/entities/realm/service.mjs +8 -8
  428. package/dist/core/entities/realm/service.mjs.map +1 -1
  429. package/dist/core/entities/realm/types.d.ts +1 -2
  430. package/dist/core/entities/realm/types.d.ts.map +1 -1
  431. package/dist/core/entities/robot/service.d.ts +2 -3
  432. package/dist/core/entities/robot/service.d.ts.map +1 -1
  433. package/dist/core/entities/robot/service.mjs +8 -8
  434. package/dist/core/entities/robot/service.mjs.map +1 -1
  435. package/dist/core/entities/robot/types.d.ts +1 -2
  436. package/dist/core/entities/robot/types.d.ts.map +1 -1
  437. package/dist/core/entities/robot-permission/service.d.ts +2 -3
  438. package/dist/core/entities/robot-permission/service.d.ts.map +1 -1
  439. package/dist/core/entities/robot-permission/service.mjs +8 -7
  440. package/dist/core/entities/robot-permission/service.mjs.map +1 -1
  441. package/dist/core/entities/robot-permission/types.d.ts +1 -2
  442. package/dist/core/entities/robot-permission/types.d.ts.map +1 -1
  443. package/dist/core/entities/robot-role/service.d.ts +2 -3
  444. package/dist/core/entities/robot-role/service.d.ts.map +1 -1
  445. package/dist/core/entities/robot-role/service.mjs +9 -8
  446. package/dist/core/entities/robot-role/service.mjs.map +1 -1
  447. package/dist/core/entities/robot-role/types.d.ts +1 -2
  448. package/dist/core/entities/robot-role/types.d.ts.map +1 -1
  449. package/dist/core/entities/role/service.d.ts +2 -3
  450. package/dist/core/entities/role/service.d.ts.map +1 -1
  451. package/dist/core/entities/role/service.mjs +8 -8
  452. package/dist/core/entities/role/service.mjs.map +1 -1
  453. package/dist/core/entities/role/types.d.ts +1 -2
  454. package/dist/core/entities/role/types.d.ts.map +1 -1
  455. package/dist/core/entities/role-attribute/service.d.ts +2 -3
  456. package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
  457. package/dist/core/entities/role-attribute/service.mjs +5 -5
  458. package/dist/core/entities/role-attribute/service.mjs.map +1 -1
  459. package/dist/core/entities/role-attribute/types.d.ts +1 -2
  460. package/dist/core/entities/role-attribute/types.d.ts.map +1 -1
  461. package/dist/core/entities/role-permission/service.d.ts +2 -3
  462. package/dist/core/entities/role-permission/service.d.ts.map +1 -1
  463. package/dist/core/entities/role-permission/service.mjs +8 -7
  464. package/dist/core/entities/role-permission/service.mjs.map +1 -1
  465. package/dist/core/entities/role-permission/types.d.ts +1 -2
  466. package/dist/core/entities/role-permission/types.d.ts.map +1 -1
  467. package/dist/core/entities/scope/service.d.ts +2 -3
  468. package/dist/core/entities/scope/service.d.ts.map +1 -1
  469. package/dist/core/entities/scope/service.mjs +8 -8
  470. package/dist/core/entities/scope/service.mjs.map +1 -1
  471. package/dist/core/entities/scope/types.d.ts +1 -2
  472. package/dist/core/entities/scope/types.d.ts.map +1 -1
  473. package/dist/core/entities/user/service.d.ts +2 -3
  474. package/dist/core/entities/user/service.d.ts.map +1 -1
  475. package/dist/core/entities/user/service.mjs +8 -8
  476. package/dist/core/entities/user/service.mjs.map +1 -1
  477. package/dist/core/entities/user/types.d.ts +1 -2
  478. package/dist/core/entities/user/types.d.ts.map +1 -1
  479. package/dist/core/entities/user-attribute/service.d.ts +2 -3
  480. package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
  481. package/dist/core/entities/user-attribute/service.mjs +8 -8
  482. package/dist/core/entities/user-attribute/service.mjs.map +1 -1
  483. package/dist/core/entities/user-attribute/types.d.ts +1 -2
  484. package/dist/core/entities/user-attribute/types.d.ts.map +1 -1
  485. package/dist/core/entities/user-permission/service.d.ts +2 -3
  486. package/dist/core/entities/user-permission/service.d.ts.map +1 -1
  487. package/dist/core/entities/user-permission/service.mjs +8 -7
  488. package/dist/core/entities/user-permission/service.mjs.map +1 -1
  489. package/dist/core/entities/user-permission/types.d.ts +1 -2
  490. package/dist/core/entities/user-permission/types.d.ts.map +1 -1
  491. package/dist/core/entities/user-role/service.d.ts +2 -3
  492. package/dist/core/entities/user-role/service.d.ts.map +1 -1
  493. package/dist/core/entities/user-role/service.mjs +9 -8
  494. package/dist/core/entities/user-role/service.mjs.map +1 -1
  495. package/dist/core/entities/user-role/types.d.ts +1 -2
  496. package/dist/core/entities/user-role/types.d.ts.map +1 -1
  497. package/dist/core/identity/index.d.ts +1 -0
  498. package/dist/core/identity/index.d.ts.map +1 -1
  499. package/dist/core/identity/index.mjs +4 -1
  500. package/dist/core/identity/password-recovery/check.d.ts +7 -0
  501. package/dist/core/identity/password-recovery/check.d.ts.map +1 -0
  502. package/dist/core/identity/password-recovery/check.mjs +24 -0
  503. package/dist/core/identity/password-recovery/check.mjs.map +1 -0
  504. package/dist/core/identity/password-recovery/disabled.d.ts +6 -0
  505. package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -0
  506. package/dist/core/identity/password-recovery/disabled.mjs +16 -0
  507. package/dist/core/identity/password-recovery/disabled.mjs.map +1 -0
  508. package/dist/core/identity/password-recovery/email-verification-required.d.ts +6 -0
  509. package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -0
  510. package/dist/core/identity/password-recovery/email-verification-required.mjs +16 -0
  511. package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -0
  512. package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
  513. package/dist/core/identity/password-recovery/service.mjs +10 -7
  514. package/dist/core/identity/password-recovery/service.mjs.map +1 -1
  515. package/dist/core/identity/password-recovery/token-expired.d.ts +6 -0
  516. package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -0
  517. package/dist/core/identity/password-recovery/token-expired.mjs +16 -0
  518. package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -0
  519. package/dist/core/identity/permission/checker/index.d.ts +3 -0
  520. package/dist/core/identity/permission/checker/index.d.ts.map +1 -0
  521. package/dist/core/identity/permission/checker/index.mjs +2 -0
  522. package/dist/core/identity/permission/checker/service.d.ts +10 -0
  523. package/dist/core/identity/permission/checker/service.d.ts.map +1 -0
  524. package/dist/core/identity/permission/checker/service.mjs +55 -0
  525. package/dist/core/identity/permission/checker/service.mjs.map +1 -0
  526. package/dist/core/identity/permission/checker/types.d.ts +42 -0
  527. package/dist/core/identity/permission/checker/types.d.ts.map +1 -0
  528. package/dist/core/identity/permission/identity-policy-data.d.ts +4 -0
  529. package/dist/core/identity/permission/identity-policy-data.d.ts.map +1 -0
  530. package/dist/core/identity/permission/identity-policy-data.mjs +23 -0
  531. package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -0
  532. package/dist/core/identity/permission/index.d.ts +1 -0
  533. package/dist/core/identity/permission/index.d.ts.map +1 -1
  534. package/dist/core/identity/permission/index.mjs +3 -1
  535. package/dist/core/identity/permission/module.mjs.map +1 -1
  536. package/dist/core/identity/policy/checker/index.d.ts +3 -0
  537. package/dist/core/identity/policy/checker/index.d.ts.map +1 -0
  538. package/dist/core/identity/policy/checker/index.mjs +2 -0
  539. package/dist/core/identity/policy/checker/service.d.ts +10 -0
  540. package/dist/core/identity/policy/checker/service.d.ts.map +1 -0
  541. package/dist/core/identity/policy/checker/service.mjs +46 -0
  542. package/dist/core/identity/policy/checker/service.mjs.map +1 -0
  543. package/dist/core/identity/policy/checker/types.d.ts +40 -0
  544. package/dist/core/identity/policy/checker/types.d.ts.map +1 -0
  545. package/dist/core/identity/policy/index.d.ts +2 -0
  546. package/dist/core/identity/policy/index.d.ts.map +1 -0
  547. package/dist/core/identity/policy/index.mjs +3 -0
  548. package/dist/core/identity/provider/account/module.d.ts.map +1 -1
  549. package/dist/core/identity/provider/account/module.mjs +2 -2
  550. package/dist/core/identity/provider/account/module.mjs.map +1 -1
  551. package/dist/core/identity/provider/authentication/constants.mjs.map +1 -1
  552. package/dist/core/identity/provider/authentication/factory.mjs.map +1 -1
  553. package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
  554. package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
  555. package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
  556. package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
  557. package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
  558. package/dist/core/identity/provider/authentication/protocols/ldap/collection.d.ts.map +1 -1
  559. package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs +3 -2
  560. package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs.map +1 -1
  561. package/dist/core/identity/provider/authentication/protocols/ldap/module.d.ts.map +1 -1
  562. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +7 -4
  563. package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
  564. package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
  565. package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
  566. package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
  567. package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
  568. package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
  569. package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
  570. package/dist/core/identity/registration/check.d.ts +3 -0
  571. package/dist/core/identity/registration/check.d.ts.map +1 -0
  572. package/dist/core/identity/registration/check.mjs +12 -0
  573. package/dist/core/identity/registration/check.mjs.map +1 -0
  574. package/dist/core/identity/registration/error.d.ts +6 -0
  575. package/dist/core/identity/registration/error.d.ts.map +1 -0
  576. package/dist/core/identity/registration/error.mjs +16 -0
  577. package/dist/core/identity/registration/error.mjs.map +1 -0
  578. package/dist/core/identity/registration/service.d.ts.map +1 -1
  579. package/dist/core/identity/registration/service.mjs +4 -3
  580. package/dist/core/identity/registration/service.mjs.map +1 -1
  581. package/dist/core/identity/resolver/entities/ldap/module.mjs.map +1 -1
  582. package/dist/core/identity/resolver/module.mjs.map +1 -1
  583. package/dist/core/identity/role/module.mjs.map +1 -1
  584. package/dist/core/index.mjs +5 -4
  585. package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
  586. package/dist/core/oauth2/authorization/code/verifier/module.mjs +8 -8
  587. package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
  588. package/dist/core/oauth2/authorization/code-request/validator.mjs +2 -2
  589. package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
  590. package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
  591. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +8 -8
  592. package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
  593. package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
  594. package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
  595. package/dist/core/oauth2/authorization/module.mjs +4 -4
  596. package/dist/core/oauth2/authorization/module.mjs.map +1 -1
  597. package/dist/core/oauth2/authorization/state/module.mjs +4 -4
  598. package/dist/core/oauth2/authorization/state/module.mjs.map +1 -1
  599. package/dist/core/oauth2/client/authenticator.mjs +6 -6
  600. package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
  601. package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
  602. package/dist/core/oauth2/grant-types/base.mjs.map +1 -1
  603. package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
  604. package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
  605. package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
  606. package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
  607. package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  608. package/dist/core/oauth2/helpers/{erorr.d.ts → error.d.ts} +1 -1
  609. package/dist/core/oauth2/helpers/error.d.ts.map +1 -0
  610. package/dist/core/oauth2/helpers/{erorr.mjs → error.mjs} +6 -7
  611. package/dist/core/oauth2/helpers/error.mjs.map +1 -0
  612. package/dist/core/oauth2/helpers/index.d.ts +1 -1
  613. package/dist/core/oauth2/helpers/index.mjs +1 -1
  614. package/dist/core/oauth2/openid/claims.mjs.map +1 -1
  615. package/dist/core/oauth2/response/bearer.mjs.map +1 -1
  616. package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
  617. package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
  618. package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
  619. package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
  620. package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
  621. package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
  622. package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
  623. package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
  624. package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
  625. package/dist/core/provisioning/entities/client/validator.mjs.map +1 -1
  626. package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
  627. package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
  628. package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
  629. package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +1 -1
  630. package/dist/core/provisioning/entities/robot/validator.mjs.map +1 -1
  631. package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
  632. package/dist/core/provisioning/entities/role/validator.mjs.map +1 -1
  633. package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
  634. package/dist/core/provisioning/entities/scope/validator.mjs.map +1 -1
  635. package/dist/core/provisioning/entities/user/relations-validator.mjs.map +1 -1
  636. package/dist/core/provisioning/entities/user/validator.mjs.map +1 -1
  637. package/dist/core/provisioning/strategy/normalize.mjs.map +1 -1
  638. package/dist/core/provisioning/strategy/validator.mjs.map +1 -1
  639. package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
  640. package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
  641. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +1 -1
  642. package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
  643. package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
  644. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +1 -1
  645. package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
  646. package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
  647. package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
  648. package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
  649. package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
  650. package/dist/core/provisioning/synchronizer/robot/module.mjs.map +1 -1
  651. package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
  652. package/dist/core/provisioning/synchronizer/root/module.mjs.map +1 -1
  653. package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
  654. package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
  655. package/dist/core/security/policy/engine.mjs.map +1 -1
  656. package/dist/core/security/policy/evaluator.mjs.map +1 -1
  657. package/dist/index.mjs +4 -1
  658. package/dist/path.mjs.map +1 -1
  659. package/dist/swagger.json +3125 -1269
  660. package/dist/ui/client/.vite/ssr-manifest.json +30 -35
  661. package/dist/ui/client/assets/index-BdPtpN2t.js +66 -0
  662. package/dist/ui/client/index.html +1 -1
  663. package/dist/ui/server/server.js +24261 -972
  664. package/dist/utils/error.d.ts +13 -0
  665. package/dist/utils/error.d.ts.map +1 -1
  666. package/dist/utils/error.mjs +26 -23
  667. package/dist/utils/error.mjs.map +1 -1
  668. package/dist/utils/host.mjs.map +1 -1
  669. package/dist/utils/self-id.mjs.map +1 -1
  670. package/dist/utils/url.mjs.map +1 -1
  671. package/package.json +26 -27
  672. package/dist/core/entities/actor/index.d.ts +0 -2
  673. package/dist/core/entities/actor/index.d.ts.map +0 -1
  674. package/dist/core/entities/actor/types.d.ts +0 -7
  675. package/dist/core/entities/actor/types.d.ts.map +0 -1
  676. package/dist/core/entities/service.d.ts +0 -6
  677. package/dist/core/entities/service.d.ts.map +0 -1
  678. package/dist/core/entities/service.mjs +0 -21
  679. package/dist/core/entities/service.mjs.map +0 -1
  680. package/dist/core/entities/types.d.ts +0 -22
  681. package/dist/core/entities/types.d.ts.map +0 -1
  682. package/dist/core/oauth2/helpers/erorr.d.ts.map +0 -1
  683. package/dist/core/oauth2/helpers/erorr.mjs.map +0 -1
  684. package/dist/ui/client/assets/index-DJBdH-x_.js +0 -64
  685. /package/dist/{core/entities/actor → adapters/http/middleware/built-in/realm-resolver}/types.mjs +0 -0
  686. /package/dist/core/{entities → identity/permission/checker}/types.mjs +0 -0
  687. /package/dist/core/{entities/actor/index.mjs → identity/policy/checker/types.mjs} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientPermissionRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID","optional","values"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-permission/utils/validation.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientPermissionEntity } from '../../../../../database/domains/index.ts';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientPermissionRequestValidator extends Container<\n ClientPermissionEntity\n> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'permission_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'policy_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,mCAAb,cAAsDF,UAAAA;CAGxCG,aAAa;AACnB,QAAMA,YAAAA;AAEN,OAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA;AAGJ,OAAKL,MACD,iBACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA;AAGJ,OAAKL,MACD,aACA,EAAEM,UAAU,MAAK,EACjBX,sBAAgB;AAEZ,UADcD,uBACPS,CACFE,QAAM,CACNC,SAAS,EAAEC,QAAQ,QAAO,CAAA;IACnC,CAAA"}
1
+ {"version":3,"file":"validation.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientPermissionRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID","optional","values"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-permission/utils/validation.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientPermissionEntity } from '../../../../../database/domains/index.ts';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientPermissionRequestValidator extends Container<\n ClientPermissionEntity\n> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'permission_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'policy_id',\n { optional: true },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .isUUID()\n .optional({ values: 'null' });\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,mCAAb,cAAsDF,UAAAA;CAGxCG,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;EAGJ,KAAKL,MACD,iBACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;EAGJ,KAAKL,MACD,aACA,EAAEM,UAAU,KAAK,GACjBX,sBAAgB;GAEZ,OADcD,sBACPS,EACFE,OAAM,EACNC,SAAS,EAAEC,QAAQ,OAAO,CAAA;EACnC,CAAA,CAAA;CAER;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","ClientRoleController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/client-role/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n ClientRoleCreatePayload,\n EntityCollectionResponse,\n} from '@authup/core-http-kit';\nimport type { ClientRole } from '@authup/core-kit';\nimport type { IClientRoleService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n buildActorContext,\n} from '../../../request/index.ts';\n\nexport type ClientRoleControllerContext = {\n service: IClientRoleService,\n};\n\n@DTags('client')\n@DController('/client-roles')\nexport class ClientRoleController {\n protected service: IClientRoleService;\n\n constructor(ctx: ClientRoleControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<ClientRole>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: ClientRoleCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAaW,uBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAkC;AAC1C,OAAKD,UAAUC,IAAID;;CAGvB,MACME,QACF,OAC6C;EAC7C,MAAME,QAAQN,kBAAkBK,MAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,MAAAA,EAAQC,MAAAA;AAEvD,SAAO;GACHC;GACAC;GACJ;;CAGJ,MACMC,IACF,MACA,OACmB;EACnB,MAAMH,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,MAAAA;AAE/CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;CAGX,MACMI,OACF,IACA,OACmB;EACnB,MAAMR,QAAQN,kBAAkBK,MAAAA;AAGhC,SAAOK,MAFc,KAAKR,QAAQY,OAAOC,IAAIT,MAAAA;;CAKjD,MACMU,KACF,IACA,OACmB;EACnB,MAAMV,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQe,OAAOF,IAAIT,MAAAA;AAE7CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;;;WAlDAX,wBAAAA,CAAAA;;;;;;;YAgBCA,wBAAAA,CAAAA;;;;;;;;eAaGA,wBAAAA,CAAAA;;;;;;;;kBAWGA,wBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","ClientRoleController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/client-role/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n ClientRoleCreatePayload,\n EntityCollectionResponse,\n} from '@authup/core-http-kit';\nimport type { ClientRole } from '@authup/core-kit';\nimport type { IClientRoleService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n buildActorContext,\n} from '../../../request/index.ts';\n\nexport type ClientRoleControllerContext = {\n service: IClientRoleService,\n};\n\n@DTags('client')\n@DController('/client-roles')\nexport class ClientRoleController {\n protected service: IClientRoleService;\n\n constructor(ctx: ClientRoleControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<ClientRole>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: ClientRoleCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientRole> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAoCA,IAAaW,uBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAkC;EAC1C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC6C;EAC7C,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,IACF,MACA,OACmB;EACnB,MAAMH,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,KAAAA;EAE/CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,OACF,IACA,OACmB;EACnB,MAAMR,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAOK,MAFc,KAAKR,QAAQY,OAAOC,IAAIT,KAAAA;CAGjD;CAEA,MACMU,KACF,IACA,OACmB;EACnB,MAAMV,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQe,OAAOF,IAAIT,KAAAA;EAE7CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;WApDeX,uBAAAA,CAAAA;;;;;;;YAgBCA,uBAAAA,CAAAA;;;;;;;;eAaGA,uBAAAA,CAAAA;;;;;;;;kBAWGA,uBAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientRoleRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-role/utils/validation.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientRole } from '@authup/core-kit';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientRoleRequestValidator extends Container<\n ClientRole\n> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'role_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,6BAAb,cAAgDF,UAAAA;CAGlCG,aAAa;AACnB,QAAMA,YAAAA;AAEN,OAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA;AAGJ,OAAKL,MACD,WACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA"}
1
+ {"version":3,"file":"validation.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientRoleRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-role/utils/validation.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientRole } from '@authup/core-kit';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientRoleRequestValidator extends Container<\n ClientRole\n> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'role_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,6BAAb,cAAgDF,UAAAA;CAGlCG,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;EAGJ,KAAKL,MACD,WACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;CAER;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","ClientScopeController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/client-scope/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n ClientScopeCreatePayload,\n EntityCollectionResponse,\n} from '@authup/core-http-kit';\nimport type { ClientScope } from '@authup/core-kit';\nimport type { IClientScopeService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type ClientScopeControllerContext = {\n service: IClientScopeService,\n};\n\n@DTags('client', 'scope')\n@DController('/client-scopes')\nexport class ClientScopeController {\n protected service: IClientScopeService;\n\n constructor(ctx: ClientScopeControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<ClientScope>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: ClientScopeCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkCA,IAAaW,wBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmC;AAC3C,OAAKD,UAAUC,IAAID;;CAGvB,MACME,QACF,OAC8C;EAC9C,MAAME,QAAQN,kBAAkBK,MAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,MAAAA,EAAQC,MAAAA;AAEvD,SAAO;GACHC;GACAC;GACJ;;CAGJ,MACMC,IACF,MACA,OACoB;EACpB,MAAMH,QAAQN,kBAAkBK,MAAAA;EAEhC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,MAAAA;AAE/CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;CAGX,MACMI,OACF,IACA,OACoB;EACpB,MAAMR,QAAQN,kBAAkBK,MAAAA;AAGhC,SAAOK,MAFc,KAAKR,QAAQY,OAAOC,IAAIT,MAAAA;;CAKjD,MACMU,KACF,IACA,OACoB;EACpB,MAAMV,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQe,OAAOF,IAAIT,MAAAA;AAE7CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;;;;;;;;;;YAnCCX,wBAAAA,CAAAA;;;;;;;;;;;;;;;;kBAyBMA,wBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","ClientScopeController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/client-scope/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n ClientScopeCreatePayload,\n EntityCollectionResponse,\n} from '@authup/core-http-kit';\nimport type { ClientScope } from '@authup/core-kit';\nimport type { IClientScopeService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type ClientScopeControllerContext = {\n service: IClientScopeService,\n};\n\n@DTags('client', 'scope')\n@DController('/client-scopes')\nexport class ClientScopeController {\n protected service: IClientScopeService;\n\n constructor(ctx: ClientScopeControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<ClientScope>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: ClientScopeCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<ClientScope> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAkCA,IAAaW,wBAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmC;EAC3C,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC8C;EAC9C,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,IACF,MACA,OACoB;EACpB,MAAMH,QAAQN,kBAAkBK,KAAAA;EAEhC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,KAAAA;EAE/CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,OACF,IACA,OACoB;EACpB,MAAMR,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAOK,MAFc,KAAKR,QAAQY,OAAOC,IAAIT,KAAAA;CAGjD;CAEA,MACMU,KACF,IACA,OACoB;EACpB,MAAMV,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQe,OAAOF,IAAIT,KAAAA;EAE7CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;;;;;;;;YArCgBX,uBAAAA,CAAAA;;;;;;;;;;;;;;;;kBAyBMA,uBAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientScopeRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-scope/utils/validator.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientScopeEntity } from '../../../../../database/domains/index.ts';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientScopeRequestValidator extends Container<ClientScopeEntity> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'scope_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,8BAAb,cAAiDF,UAAAA;CACnCG,aAAa;AACnB,QAAMA,YAAAA;AAEN,OAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA;AAGJ,OAAKL,MACD,YACA,EAAEC,OAAOJ,wBAAwBK,QAAO,EACxCP,sBAAgB;AAEZ,UADcD,uBACPS,CACFC,QAAM,CACNC,QAAM;IACf,CAAA"}
1
+ {"version":3,"file":"validator.mjs","names":["createValidationChain","createValidator","Container","RequestHandlerOperation","ClientScopeRequestValidator","initialize","mount","group","CREATE","chain","exists","isUUID"],"sources":["../../../../../../../src/adapters/http/controllers/entities/client-scope/utils/validator.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { createValidationChain, createValidator } from '@validup/adapter-validator';\nimport { Container } from 'validup';\nimport type { ClientScopeEntity } from '../../../../../database/domains/index.ts';\nimport { RequestHandlerOperation } from '../../../../request/index.ts';\n\nexport class ClientScopeRequestValidator extends Container<ClientScopeEntity> {\n protected initialize() {\n super.initialize();\n\n this.mount(\n 'client_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n\n this.mount(\n 'scope_id',\n { group: RequestHandlerOperation.CREATE },\n createValidator(() => {\n const chain = createValidationChain();\n return chain\n .exists()\n .isUUID();\n }),\n );\n }\n}\n"],"mappings":";;;;;AAYA,IAAaI,8BAAb,cAAiDF,UAAAA;CACnCG,aAAa;EACnB,MAAMA,WAAAA;EAEN,KAAKC,MACD,aACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;EAGJ,KAAKL,MACD,YACA,EAAEC,OAAOJ,wBAAwBK,OAAO,GACxCP,sBAAgB;GAEZ,OADcD,sBACPS,EACFC,OAAM,EACNC,OAAM;EACf,CAAA,CAAA;CAER;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","IdentityProviderRoleMappingController","service","ctx","getMany","event","actor","data","meta","getOne","id","entity","add","create","response","status","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provide-role/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n IdentityProviderRoleMappingCreatePayload,\n IdentityProviderRoleMappingUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { IdentityProviderRoleMapping } from '@authup/core-kit';\nimport type {\n IIdentityProviderRoleMappingService,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n buildActorContext,\n} from '../../../request/index.ts';\n\nexport type IdentityProviderRoleMappingControllerContext = {\n service: IIdentityProviderRoleMappingService,\n};\n\n@DTags('identity-provider')\n@DController('/identity-provider-role-mappings')\nexport class IdentityProviderRoleMappingController {\n protected service: IIdentityProviderRoleMappingService;\n\n constructor(ctx: IdentityProviderRoleMappingControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<IdentityProviderRoleMapping>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: IdentityProviderRoleMappingCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: IdentityProviderRoleMappingUpdatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(id, data, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuCA,IAAaW,wCAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmD;AAC3D,OAAKD,UAAUC,IAAID;;CAGvB,MACME,QACF,OAC8D;EAC9D,MAAME,QAAQN,kBAAkBK,MAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,MAAAA,EAAQC,MAAAA;AAEvD,SAAO;GACHC;GACAC;GACJ;;CAGJ,MACMC,OACF,IACA,OACoC;EACpC,MAAMH,QAAQN,kBAAkBK,MAAAA;AAGhC,SAAOM,MAFc,KAAKT,QAAQO,OAAOC,IAAIJ,MAAAA;;CAKjD,MACMM,IACF,MACA,OACoC;EACpC,MAAMN,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQW,OAAON,MAAMD,MAAAA;AAE/CD,QAAMS,SAASC,SAAS;AAExB,SAAOJ;;CAGX,MACMK,KACF,IACA,MACA,OACoC;EACpC,MAAMV,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQe,OAAOP,IAAIH,MAAMD,MAAAA;AAEnDD,QAAMS,SAASC,SAAS;AAExB,SAAOJ;;CAGX,MACMO,KACF,IACA,OACoC;EACpC,MAAMZ,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQiB,OAAOT,IAAIJ,MAAAA;AAE7CD,QAAMS,SAASC,SAAS;AAExB,SAAOJ;;;;WAhEAZ,wBAAAA,CAAAA;;;;;;;eAgBIA,wBAAAA,CAAAA;;;;;;;;YAWHA,wBAAAA,CAAAA;;;;;;;;gBAaIA,wBAAAA,CAAAA;;;;;;;;;;;;;kBAcEA,wBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","IdentityProviderRoleMappingController","service","ctx","getMany","event","actor","data","meta","getOne","id","entity","add","create","response","status","edit","update","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provide-role/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n IdentityProviderRoleMappingCreatePayload,\n IdentityProviderRoleMappingUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { IdentityProviderRoleMapping } from '@authup/core-kit';\nimport type {\n IIdentityProviderRoleMappingService,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n buildActorContext,\n} from '../../../request/index.ts';\n\nexport type IdentityProviderRoleMappingControllerContext = {\n service: IIdentityProviderRoleMappingService,\n};\n\n@DTags('identity-provider')\n@DController('/identity-provider-role-mappings')\nexport class IdentityProviderRoleMappingController {\n protected service: IIdentityProviderRoleMappingService;\n\n constructor(ctx: IdentityProviderRoleMappingControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<IdentityProviderRoleMapping>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(id, actor);\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: IdentityProviderRoleMappingCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: IdentityProviderRoleMappingUpdatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(id, data, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProviderRoleMapping> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuCA,IAAaW,wCAAb,MAAaA;CACCC;CAEV,YAAYC,KAAmD;EAC3D,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OAC8D;EAC9D,MAAME,QAAQN,kBAAkBK,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKN,QAAQE,QAAQN,gBAAgBO,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,OACF,IACA,OACoC;EACpC,MAAMH,QAAQN,kBAAkBK,KAAAA;EAGhC,OAAOM,MAFc,KAAKT,QAAQO,OAAOC,IAAIJ,KAAAA;CAGjD;CAEA,MACMM,IACF,MACA,OACoC;EACpC,MAAMN,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQW,OAAON,MAAMD,KAAAA;EAE/CD,MAAMS,SAASC,SAAS;EAExB,OAAOJ;CACX;CAEA,MACMK,KACF,IACA,MACA,OACoC;EACpC,MAAMV,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQe,OAAOP,IAAIH,MAAMD,KAAAA;EAEnDD,MAAMS,SAASC,SAAS;EAExB,OAAOJ;CACX;CAEA,MACMO,KACF,IACA,OACoC;EACpC,MAAMZ,QAAQN,kBAAkBK,KAAAA;EAChC,MAAMM,SAAS,MAAM,KAAKT,QAAQiB,OAAOT,IAAIJ,KAAAA;EAE7CD,MAAMS,SAASC,SAAS;EAExB,OAAOJ;CACX;AACJ;;WAlEeZ,uBAAAA,CAAAA;;;;;;;eAgBIA,uBAAAA,CAAAA;;;;;;;;YAWHA,uBAAAA,CAAAA;;;;;;;;gBAaIA,uBAAAA,CAAAA;;;;;;;;;;;;;kBAcEA,uBAAAA,CAAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAM3C,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,kBAAkB,CAAC;AAgBzF,OAAO,KAAK,EACR,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACR,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,gBAAgB,EAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uCAAuC,EAE1C,MAAM,8BAA8B,CAAC;AAUtC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAErD,SAAS,CAAC,UAAU,EAAE,2BAA2B,CAAC;IAElD,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC;IAE1D,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,oBAAoB,EAAG,uCAAuC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;gBAI1C,GAAG,EAAE,iCAAiC;IAc5C,YAAY,CACF,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IA+BhD,WAAW,CACA,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,gBAAgB,CAAC;IA0BtB,YAAY,CACD,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAKvB,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAKvB,YAAY,CACD,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IA6BvB,WAAW,CACJ,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAOvB,YAAY,CACD,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY;IAgD7B,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY;YA2ErB,KAAK;YA2FL,OAAO;YAYP,sBAAsB;YAWtB,wBAAwB;CAWzC"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAM3C,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,kBAAkB,CAAC;AAgBzF,OAAO,KAAK,EACR,wBAAwB,EACxB,6BAA6B,EAC7B,2BAA2B,EAC3B,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EACR,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,gBAAgB,EAEnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACH,uCAAuC,EAE1C,MAAM,8BAA8B,CAAC;AAWtC,OAAO,KAAK,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAEvG,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,iCAAiC,CAAC;IAErD,SAAS,CAAC,UAAU,EAAE,2BAA2B,CAAC;IAElD,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,cAAc,EAAE,+BAA+B,CAAC;IAE1D,SAAS,CAAC,mBAAmB,EAAG,uCAAuC,CAAC;IAExE,SAAS,CAAC,oBAAoB,EAAG,uCAAuC,CAAC;IAEzE,SAAS,CAAC,YAAY,EAAG,gCAAgC,CAAC;IAE1D,SAAS,CAAC,UAAU,EAAG,8BAA8B,CAAC;gBAI1C,GAAG,EAAE,iCAAiC;IAc5C,YAAY,CACF,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IA+BhD,WAAW,CACA,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,gBAAgB,CAAC;IA0BtB,YAAY,CACD,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAKvB,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,2BAA2B,EAC9B,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAKvB,YAAY,CACD,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IA6BvB,WAAW,CACJ,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,YAAY,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAOvB,YAAY,CACD,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY;IAgD7B,WAAW,CACA,GAAG,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY;YA2ErB,KAAK;YA4FL,OAAO;YAYP,sBAAsB;YAWtB,wBAAwB;CAWzC"}
@@ -5,16 +5,17 @@ import { useRequestPermissionEvaluator } from "../../../request/permission/helpe
5
5
  import { useRequestIdentityOrFail } from "../../../request/helpers/identity.mjs";
6
6
  import { getBodyRealmID } from "../../../request/helpers/body-realm-id.mjs";
7
7
  import { getRequestParamID, useRequestParamID } from "../../../request/helpers/param-id.mjs";
8
+ import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
8
9
  import "../../../request/index.mjs";
9
- import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
10
10
  import { resolveURL } from "../../../../../utils/url.mjs";
11
11
  import "../../../../../utils/index.mjs";
12
+ import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
12
13
  import "../../../middleware/index.mjs";
13
- import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, ValidatorGroup, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
14
- import { base64URLDecode, isUUID } from "@authup/kit";
14
+ import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
15
+ import { ValidatorGroup, base64URLDecode, isUUID } from "@authup/kit";
15
16
  import { BuiltInPolicyType, PolicyData } from "@authup/access";
16
- import { OAuth2Error } from "@authup/specs";
17
- import { BadRequestError, NotFoundError } from "@ebec/http";
17
+ import { BadRequestError, EntityNotFoundError } from "@authup/errors";
18
+ import { OAuth2RequestError } from "@authup/specs";
18
19
  import { getRequestHeader, getRequestIP, sendRedirect } from "routup";
19
20
  import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DPut, DTags } from "@routup/decorators";
20
21
  import { readRequestBody } from "@routup/basic/body";
@@ -73,8 +74,8 @@ var IdentityProviderController = class {
73
74
  }
74
75
  async getProvider(id, event) {
75
76
  const paramId = useRequestParamID(event, { isUUID: false });
76
- const entity = await this.repository.findOneByIdOrName(paramId, event.params.realmId);
77
- if (!entity) throw new NotFoundError();
77
+ const entity = await this.repository.findOneByIdOrName(paramId, getRequestRealmID(event));
78
+ if (!entity) throw new EntityNotFoundError();
78
79
  try {
79
80
  await useRequestPermissionEvaluator(event).evaluate({
80
81
  name: PermissionName.IDENTITY_PROVIDER_READ,
@@ -94,7 +95,7 @@ var IdentityProviderController = class {
94
95
  const permissionEvaluator = useRequestPermissionEvaluator(event);
95
96
  await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_DELETE });
96
97
  const entity = await this.repository.findOneBy({ id: paramId });
97
- if (!entity) throw new NotFoundError();
98
+ if (!entity) throw new EntityNotFoundError();
98
99
  await permissionEvaluator.evaluate({
99
100
  name: PermissionName.IDENTITY_PROVIDER_DELETE,
100
101
  input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity })
@@ -125,11 +126,11 @@ var IdentityProviderController = class {
125
126
  try {
126
127
  codeRequestDecoded = JSON.parse(base64URLDecode(query.codeRequest));
127
128
  } catch {
128
- throw OAuth2Error.requestInvalid("The code request is malformed and can not be parsed.");
129
+ throw OAuth2RequestError.malformed("The code request is malformed and can not be parsed.");
129
130
  }
130
131
  const codeRequestValidated = await this.codeRequestValidator.run(codeRequestDecoded);
131
132
  const data = await this.codeRequestVerifier.verify(codeRequestValidated);
132
- if (data.client.realm_id && entity.realm_id && entity.realm_id !== data.client.realm_id) throw OAuth2Error.requestInvalid("The provider and client realm do not match.");
133
+ if (data.client.realm_id && entity.realm_id && entity.realm_id !== data.client.realm_id) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
133
134
  codeRequest = data.data;
134
135
  }
135
136
  parameters.state = await this.saveAuthorizationState(event, codeRequest);
@@ -140,7 +141,7 @@ var IdentityProviderController = class {
140
141
  const entity = await this.resolve(id);
141
142
  if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new Error(`The provider protocol ${entity.protocol} is not valid.`);
142
143
  const data = await this.verifyAuthorizationState(event);
143
- if (entity.realm_id && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realm_id) throw OAuth2Error.requestInvalid("The provider and client realm do not match.");
144
+ if (entity.realm_id && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realm_id) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
144
145
  const { code } = useRequestQuery(event);
145
146
  const user = await createIdentityProviderOAuth2Authenticator({
146
147
  accountManager: this.accountManager,
@@ -181,7 +182,8 @@ var IdentityProviderController = class {
181
182
  let group;
182
183
  const id = getRequestParamID(event, { isUUID: false });
183
184
  const body = await readRequestBody(event);
184
- const realmId = getBodyRealmID(body);
185
+ applyRouteRealmIDToBody(event, body);
186
+ const realmId = getRequestRealmID(event) ?? getBodyRealmID(body);
185
187
  let entity;
186
188
  if (id) {
187
189
  const where = {};
@@ -189,8 +191,8 @@ var IdentityProviderController = class {
189
191
  else where.name = id;
190
192
  if (realmId) where.realm_id = realmId;
191
193
  entity = await this.repository.findOneBy(where);
192
- if (!entity && options.updateOnly) throw new NotFoundError();
193
- } else if (options.updateOnly) throw new NotFoundError();
194
+ if (!entity && options.updateOnly) throw new EntityNotFoundError();
195
+ } else if (options.updateOnly) throw new EntityNotFoundError();
194
196
  const permissionEvaluator = useRequestPermissionEvaluator(event);
195
197
  if (entity) {
196
198
  await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_UPDATE });
@@ -230,7 +232,7 @@ var IdentityProviderController = class {
230
232
  }
231
233
  async resolve(id) {
232
234
  const entity = await this.repository.findOneById(id);
233
- if (!entity) throw new NotFoundError();
235
+ if (!entity) throw new EntityNotFoundError();
234
236
  return entity;
235
237
  }
236
238
  async saveAuthorizationState(event, codeRequest) {
@@ -242,7 +244,7 @@ var IdentityProviderController = class {
242
244
  }
243
245
  async verifyAuthorizationState(event) {
244
246
  const query = useRequestQuery(event);
245
- if (typeof query.state !== "string") throw OAuth2Error.stateInvalid();
247
+ if (typeof query.state !== "string") throw OAuth2RequestError.stateInvalid();
246
248
  return this.stateManager.verify(query.state, {
247
249
  ip: getRequestIP(event, { trustProxy: true }) ?? "",
248
250
  userAgent: getRequestHeader(event, "user-agent") ?? void 0
@@ -324,7 +326,7 @@ _ts_decorate([
324
326
  ], IdentityProviderController.prototype, "authorizeIn", null);
325
327
  IdentityProviderController = _ts_decorate([
326
328
  DTags("identity"),
327
- DController("/identity-providers"),
329
+ DController(["/identity-providers", "/realms/:realmId/identity-providers"]),
328
330
  _ts_metadata("design:type", Function),
329
331
  _ts_metadata("design:paramtypes", [typeof IdentityProviderControllerContext === "undefined" ? Object : IdentityProviderControllerContext])
330
332
  ], IdentityProviderController);
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PolicyData","base64URLDecode","isUUID","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","getRequestHeader","getRequestIP","sendRedirect","IdentityProviderAttributesValidator","IdentityProviderValidator","IdentityType","PermissionName","ValidatorGroup","isOAuth2IdentityProvider","isOpenIDIdentityProvider","BadRequestError","NotFoundError","useRequestQuery","readRequestBody","OAuth2Error","URL","OAuth2AuthorizationCodeRequestValidator","createIdentityProviderOAuth2Authenticator","getBodyRealmID","getRequestParamID","useRequestIdentityOrFail","useRequestParamID","useRequestPermissionEvaluator","ForceLoggedInMiddleware","resolveURL","IdentityProviderController","options","repository","realmRepository","accountManager","codeRequestVerifier","codeRequestValidator","stateManager","codeIssuer","ctx","getProviders","event","data","meta","findMany","permissionEvaluator","preEvaluate","name","IDENTITY_PROVIDER_READ","datum","evaluate","input","ATTRIBUTES","getProvider","id","paramId","entity","findOneByIdOrName","params","realmId","editProvider","user","write","updateOnly","put","dropProvider","IDENTITY_PROVIDER_DELETE","findOneBy","entityId","remove","response","status","addProvider","authorizeOut","_id","resolve","authenticator","provider","baseURL","parameters","codeRequest","query","codeRequestDecoded","JSON","parse","requestInvalid","codeRequestValidated","run","verify","client","realm_id","state","saveAuthorizationState","buildRedirectURL","authorizeIn","Error","protocol","verifyAuthorizationState","code","clientId","client_id","authenticate","realm","authorizationCode","issue","response_type","redirect_uri","scope","type","USER","codeRequestKeys","Object","keys","url","codeRequestKey_","codeRequestKey","searchParams","set","href","group","body","where","IDENTITY_PROVIDER_UPDATE","UPDATE","IDENTITY_PROVIDER_CREATE","CREATE","validator","attributesValidator","attributes","validateJoinColumns","identity","checkUniqueness","undefined","merge","saveWithEA","create","findOneById","save","ip","trustProxy","userAgent","stateInvalid"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { base64URLDecode, isUUID } from '@authup/kit';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport {\n getRequestHeader,\n getRequestIP,\n sendRedirect,\n} from 'routup';\nimport type { IdentityProvider, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport {\n \n IdentityProviderAttributesValidator, \n IdentityProviderValidator, \n IdentityType, \n PermissionName, \n ValidatorGroup, \n isOAuth2IdentityProvider, \n isOpenIDIdentityProvider, \n} from '@authup/core-kit';\nimport { BadRequestError, NotFoundError } from '@ebec/http';\nimport type { AuthorizeParameters } from '@hapic/oauth2';\nimport { useRequestQuery } from '@routup/basic/query';\nimport { readRequestBody } from '@routup/basic/body';\nimport { OAuth2Error } from '@authup/specs';\nimport type {\n EntityCollectionResponse,\n IdentityProviderCreatePayload,\n IdentityProviderSavePayload,\n IdentityProviderUpdatePayload,\n} from '@authup/core-http-kit';\nimport { URL } from 'node:url';\nimport type {\n IIdentityProviderAccountManager,\n IIdentityProviderRepository,\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationStateManager,\n IRealmRepository,\n OAuth2AuthorizationState,\n} from '../../../../../core/index.ts';\nimport {\n OAuth2AuthorizationCodeRequestValidator,\n createIdentityProviderOAuth2Authenticator,\n} from '../../../../../core/index.ts';\nimport {\n getBodyRealmID,\n getRequestParamID,\n useRequestIdentityOrFail,\n useRequestParamID,\n useRequestPermissionEvaluator,\n} from '../../../request/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { resolveURL } from '../../../../../utils/index.ts';\nimport type { IdentityProviderControllerContext, IdentityProviderControllerOptions } from './types.ts';\n\n@DTags('identity')\n@DController('/identity-providers')\nexport class IdentityProviderController {\n protected options: IdentityProviderControllerOptions;\n\n protected repository: IIdentityProviderRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected accountManager: IIdentityProviderAccountManager;\n\n protected codeRequestVerifier : IOAuth2AuthorizationCodeRequestVerifier;\n\n protected codeRequestValidator : OAuth2AuthorizationCodeRequestValidator;\n\n protected stateManager : IOAuth2AuthorizationStateManager;\n\n protected codeIssuer : IOAuth2AuthorizationCodeIssuer;\n\n // ---------------------------------------------------------\n\n constructor(ctx: IdentityProviderControllerContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.accountManager = ctx.accountManager;\n this.codeIssuer = ctx.codeIssuer;\n this.codeRequestVerifier = ctx.codeRequestVerifier;\n this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();\n this.stateManager = ctx.stateManager;\n }\n\n // ---------------------------------------------------------\n\n @DGet('', [])\n async getProviders(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<IdentityProvider>> {\n const {\n data, \n meta, \n } = await this.repository.findMany(useRequestQuery(event));\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_READ });\n\n for (const datum of data) {\n try {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: datum }),\n });\n } catch {\n // do nothing\n }\n }\n } catch {\n // do nothing\n }\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [])\n async getProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProvider> {\n const paramId = useRequestParamID(event, { isUUID: false });\n\n const entity = await this.repository.findOneByIdOrName(\n paramId,\n event.params.realmId,\n );\n\n if (!entity) {\n throw new NotFoundError();\n }\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n } catch {\n // do nothing\n }\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async editProvider(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderUpdatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event, { updateOnly: true });\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderSavePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async dropProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n const paramId = useRequestParamID(event);\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_DELETE });\n\n const entity = await this.repository.findOneBy({ id: paramId });\n\n if (!entity) {\n throw new NotFoundError();\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_DELETE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n\n const { id: entityId } = entity;\n\n await this.repository.remove(entity);\n\n entity.id = entityId;\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async addProvider(\n @DBody() user: IdentityProviderCreatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n // ---------------------------------------------------------\n\n @DGet('/:id/authorize-out', [])\n async authorizeOut(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new BadRequestError('Only an identity-provider based on the oauth protocol supports authorize redirect.');\n }\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: { baseURL: this.options.baseURL },\n });\n\n const parameters : AuthorizeParameters = {};\n\n let codeRequest: OAuth2AuthorizationCodeRequest | undefined;\n const query = useRequestQuery(event);\n if (typeof query.codeRequest === 'string') {\n let codeRequestDecoded: OAuth2AuthorizationCodeRequest;\n\n try {\n codeRequestDecoded = JSON.parse(base64URLDecode(query.codeRequest));\n } catch {\n throw OAuth2Error.requestInvalid('The code request is malformed and can not be parsed.');\n }\n\n const codeRequestValidated = await this.codeRequestValidator.run(codeRequestDecoded);\n const data = await this.codeRequestVerifier.verify(codeRequestValidated);\n\n if (\n data.client.realm_id &&\n entity.realm_id &&\n entity.realm_id !== data.client.realm_id\n ) {\n throw OAuth2Error.requestInvalid('The provider and client realm do not match.');\n }\n\n codeRequest = data.data;\n }\n\n parameters.state = await this.saveAuthorizationState(event, codeRequest);\n\n return sendRedirect(event, authenticator.buildRedirectURL(parameters));\n }\n\n @DGet('/:id/authorize-in', [])\n async authorizeIn(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new Error(`The provider protocol ${entity.protocol} is not valid.`);\n }\n\n const data = await this.verifyAuthorizationState(event);\n if (\n entity.realm_id &&\n data.codeRequest &&\n data.codeRequest.realm_id &&\n data.codeRequest.realm_id !== entity.realm_id\n ) {\n throw OAuth2Error.requestInvalid('The provider and client realm do not match.');\n }\n\n const { code } = useRequestQuery(event);\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: {\n baseURL: this.options.baseURL,\n clientId: data.codeRequest?.client_id,\n },\n });\n\n const user = await authenticator.authenticate(code);\n\n const realm = await this.realmRepository.resolve(entity.realm_id, true);\n\n const authorizationCode = await this.codeIssuer.issue(\n {\n response_type: 'code',\n client_id: data.codeRequest?.client_id,\n redirect_uri: data.codeRequest?.redirect_uri,\n scope: data.codeRequest?.scope,\n },\n {\n type: IdentityType.USER,\n data: {\n ...user,\n realm,\n },\n },\n );\n\n if (data.codeRequest) {\n const codeRequestKeys = Object.keys(data.codeRequest);\n\n const url = new URL(resolveURL(this.options.baseURL, 'authorize'));\n for (const codeRequestKey_ of codeRequestKeys) {\n const codeRequestKey = codeRequestKey_ as keyof OAuth2AuthorizationCodeRequest;\n if (data.codeRequest[codeRequestKey]) {\n url.searchParams.set(codeRequestKey, data.codeRequest[codeRequestKey]);\n }\n }\n\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n const url = new URL(this.options.baseURL);\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n // ---------------------------------------------------------\n\n private async write(event: IRoutupEvent, options: {\n updateOnly?: boolean\n } = {}): Promise<IdentityProvider> {\n let group: string;\n const id = getRequestParamID(event, { isUUID: false });\n const body = await readRequestBody(event);\n const realmId = getBodyRealmID(body);\n\n let entity: IdentityProvider | null | undefined;\n if (id) {\n const where: Record<string, any> = {};\n if (isUUID(id)) {\n where.id = id;\n } else {\n where.name = id;\n }\n\n if (realmId) {\n where.realm_id = realmId;\n }\n\n entity = await this.repository.findOneBy(where);\n if (!entity && options.updateOnly) {\n throw new NotFoundError();\n }\n } else if (options.updateOnly) {\n throw new NotFoundError();\n }\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n if (entity) {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_UPDATE });\n\n group = ValidatorGroup.UPDATE;\n } else {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_CREATE });\n\n group = ValidatorGroup.CREATE;\n }\n\n const validator = new IdentityProviderValidator();\n const data = await validator.run(body, { group });\n\n const attributesValidator = new IdentityProviderAttributesValidator();\n const attributes = await attributesValidator.run(body);\n\n await this.repository.validateJoinColumns(data);\n\n if (entity) {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_UPDATE,\n input: new PolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...data,\n },\n }),\n });\n } else {\n if (!data.realm_id) {\n const identity = useRequestIdentityOrFail(event);\n data.realm_id = identity.realmId;\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_CREATE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data }),\n });\n }\n\n await this.repository.checkUniqueness(data, entity || undefined);\n\n if (entity) {\n entity = this.repository.merge(entity, data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 202;\n\n return entity;\n }\n\n entity = this.repository.create(data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 201;\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async resolve(id: string) {\n const entity = await this.repository.findOneById(id);\n\n if (!entity) {\n throw new NotFoundError();\n }\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async saveAuthorizationState(\n event: IRoutupEvent,\n codeRequest?: OAuth2AuthorizationCodeRequest,\n ) : Promise<string> {\n return this.stateManager.save({\n codeRequest,\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n\n private async verifyAuthorizationState(event: IRoutupEvent): Promise<OAuth2AuthorizationState> {\n const query = useRequestQuery(event);\n if (typeof query.state !== 'string') {\n throw OAuth2Error.stateInvalid();\n }\n\n return this.stateManager.verify(query.state, {\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PolicyData","ValidatorGroup","base64URLDecode","isUUID","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","getRequestHeader","getRequestIP","sendRedirect","IdentityProviderAttributesValidator","IdentityProviderValidator","IdentityType","PermissionName","isOAuth2IdentityProvider","isOpenIDIdentityProvider","BadRequestError","EntityNotFoundError","resolveURL","useRequestQuery","readRequestBody","OAuth2RequestError","URL","OAuth2AuthorizationCodeRequestValidator","createIdentityProviderOAuth2Authenticator","applyRouteRealmIDToBody","getBodyRealmID","getRequestParamID","getRequestRealmID","useRequestIdentityOrFail","useRequestParamID","useRequestPermissionEvaluator","ForceLoggedInMiddleware","IdentityProviderController","options","repository","realmRepository","accountManager","codeRequestVerifier","codeRequestValidator","stateManager","codeIssuer","ctx","getProviders","event","data","meta","findMany","permissionEvaluator","preEvaluate","name","IDENTITY_PROVIDER_READ","datum","evaluate","input","ATTRIBUTES","getProvider","id","paramId","entity","findOneByIdOrName","editProvider","user","write","updateOnly","put","dropProvider","IDENTITY_PROVIDER_DELETE","findOneBy","entityId","remove","response","status","addProvider","authorizeOut","_id","resolve","authenticator","provider","baseURL","parameters","codeRequest","query","codeRequestDecoded","JSON","parse","malformed","codeRequestValidated","run","verify","client","realm_id","state","saveAuthorizationState","buildRedirectURL","authorizeIn","Error","protocol","verifyAuthorizationState","code","clientId","client_id","authenticate","realm","authorizationCode","issue","response_type","redirect_uri","scope","type","USER","codeRequestKeys","Object","keys","url","codeRequestKey_","codeRequestKey","searchParams","set","href","group","body","realmId","where","IDENTITY_PROVIDER_UPDATE","UPDATE","IDENTITY_PROVIDER_CREATE","CREATE","validator","attributesValidator","attributes","validateJoinColumns","identity","checkUniqueness","undefined","merge","saveWithEA","create","findOneById","save","ip","trustProxy","userAgent","stateInvalid"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 { ValidatorGroup, base64URLDecode, isUUID } from '@authup/kit';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport {\n getRequestHeader,\n getRequestIP,\n sendRedirect,\n} from 'routup';\nimport type { IdentityProvider, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport {\n\n IdentityProviderAttributesValidator,\n IdentityProviderValidator,\n IdentityType,\n PermissionName,\n isOAuth2IdentityProvider,\n isOpenIDIdentityProvider,\n} from '@authup/core-kit';\nimport { BadRequestError, EntityNotFoundError } from '@authup/errors';\nimport { resolveURL } from '../../../../../utils/index.ts';\nimport type { AuthorizeParameters } from '@hapic/oauth2';\nimport { useRequestQuery } from '@routup/basic/query';\nimport { readRequestBody } from '@routup/basic/body';\nimport { OAuth2RequestError } from '@authup/specs';\nimport type {\n EntityCollectionResponse,\n IdentityProviderCreatePayload,\n IdentityProviderSavePayload,\n IdentityProviderUpdatePayload,\n} from '@authup/core-http-kit';\nimport { URL } from 'node:url';\nimport type {\n IIdentityProviderAccountManager,\n IIdentityProviderRepository,\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationStateManager,\n IRealmRepository,\n OAuth2AuthorizationState,\n} from '../../../../../core/index.ts';\nimport {\n OAuth2AuthorizationCodeRequestValidator,\n createIdentityProviderOAuth2Authenticator,\n} from '../../../../../core/index.ts';\nimport {\n applyRouteRealmIDToBody,\n getBodyRealmID,\n getRequestParamID,\n getRequestRealmID,\n useRequestIdentityOrFail,\n useRequestParamID,\n useRequestPermissionEvaluator,\n} from '../../../request/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport type { IdentityProviderControllerContext, IdentityProviderControllerOptions } from './types.ts';\n\n@DTags('identity')\n@DController(['/identity-providers', '/realms/:realmId/identity-providers'])\nexport class IdentityProviderController {\n protected options: IdentityProviderControllerOptions;\n\n protected repository: IIdentityProviderRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected accountManager: IIdentityProviderAccountManager;\n\n protected codeRequestVerifier : IOAuth2AuthorizationCodeRequestVerifier;\n\n protected codeRequestValidator : OAuth2AuthorizationCodeRequestValidator;\n\n protected stateManager : IOAuth2AuthorizationStateManager;\n\n protected codeIssuer : IOAuth2AuthorizationCodeIssuer;\n\n // ---------------------------------------------------------\n\n constructor(ctx: IdentityProviderControllerContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.accountManager = ctx.accountManager;\n this.codeIssuer = ctx.codeIssuer;\n this.codeRequestVerifier = ctx.codeRequestVerifier;\n this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();\n this.stateManager = ctx.stateManager;\n }\n\n // ---------------------------------------------------------\n\n @DGet('', [])\n async getProviders(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<IdentityProvider>> {\n const {\n data, \n meta, \n } = await this.repository.findMany(useRequestQuery(event));\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_READ });\n\n for (const datum of data) {\n try {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: datum }),\n });\n } catch {\n // do nothing\n }\n }\n } catch {\n // do nothing\n }\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [])\n async getProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProvider> {\n const paramId = useRequestParamID(event, { isUUID: false });\n\n const entity = await this.repository.findOneByIdOrName(\n paramId,\n getRequestRealmID(event),\n );\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n } catch {\n // do nothing\n }\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async editProvider(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderUpdatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event, { updateOnly: true });\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderSavePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async dropProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n const paramId = useRequestParamID(event);\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_DELETE });\n\n const entity = await this.repository.findOneBy({ id: paramId });\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_DELETE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n\n const { id: entityId } = entity;\n\n await this.repository.remove(entity);\n\n entity.id = entityId;\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async addProvider(\n @DBody() user: IdentityProviderCreatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n // ---------------------------------------------------------\n\n @DGet('/:id/authorize-out', [])\n async authorizeOut(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new BadRequestError('Only an identity-provider based on the oauth protocol supports authorize redirect.');\n }\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: { baseURL: this.options.baseURL },\n });\n\n const parameters : AuthorizeParameters = {};\n\n let codeRequest: OAuth2AuthorizationCodeRequest | undefined;\n const query = useRequestQuery(event);\n if (typeof query.codeRequest === 'string') {\n let codeRequestDecoded: OAuth2AuthorizationCodeRequest;\n\n try {\n codeRequestDecoded = JSON.parse(base64URLDecode(query.codeRequest));\n } catch {\n throw OAuth2RequestError.malformed('The code request is malformed and can not be parsed.');\n }\n\n const codeRequestValidated = await this.codeRequestValidator.run(codeRequestDecoded);\n const data = await this.codeRequestVerifier.verify(codeRequestValidated);\n\n if (\n data.client.realm_id &&\n entity.realm_id &&\n entity.realm_id !== data.client.realm_id\n ) {\n throw OAuth2RequestError.malformed('The provider and client realm do not match.');\n }\n\n codeRequest = data.data;\n }\n\n parameters.state = await this.saveAuthorizationState(event, codeRequest);\n\n return sendRedirect(event, authenticator.buildRedirectURL(parameters));\n }\n\n @DGet('/:id/authorize-in', [])\n async authorizeIn(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new Error(`The provider protocol ${entity.protocol} is not valid.`);\n }\n\n const data = await this.verifyAuthorizationState(event);\n if (\n entity.realm_id &&\n data.codeRequest &&\n data.codeRequest.realm_id &&\n data.codeRequest.realm_id !== entity.realm_id\n ) {\n throw OAuth2RequestError.malformed('The provider and client realm do not match.');\n }\n\n const { code } = useRequestQuery(event);\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: {\n baseURL: this.options.baseURL,\n clientId: data.codeRequest?.client_id,\n },\n });\n\n const user = await authenticator.authenticate(code);\n\n const realm = await this.realmRepository.resolve(entity.realm_id, true);\n\n const authorizationCode = await this.codeIssuer.issue(\n {\n response_type: 'code',\n client_id: data.codeRequest?.client_id,\n redirect_uri: data.codeRequest?.redirect_uri,\n scope: data.codeRequest?.scope,\n },\n {\n type: IdentityType.USER,\n data: {\n ...user,\n realm,\n },\n },\n );\n\n if (data.codeRequest) {\n const codeRequestKeys = Object.keys(data.codeRequest);\n\n const url = new URL(resolveURL(this.options.baseURL, 'authorize'));\n for (const codeRequestKey_ of codeRequestKeys) {\n const codeRequestKey = codeRequestKey_ as keyof OAuth2AuthorizationCodeRequest;\n if (data.codeRequest[codeRequestKey]) {\n url.searchParams.set(codeRequestKey, data.codeRequest[codeRequestKey]);\n }\n }\n\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n const url = new URL(this.options.baseURL);\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n // ---------------------------------------------------------\n\n private async write(event: IRoutupEvent, options: {\n updateOnly?: boolean\n } = {}): Promise<IdentityProvider> {\n let group: string;\n const id = getRequestParamID(event, { isUUID: false });\n const body = await readRequestBody(event);\n applyRouteRealmIDToBody(event, body);\n const realmId = getRequestRealmID(event) ?? getBodyRealmID(body);\n\n let entity: IdentityProvider | null | undefined;\n if (id) {\n const where: Record<string, any> = {};\n if (isUUID(id)) {\n where.id = id;\n } else {\n where.name = id;\n }\n\n if (realmId) {\n where.realm_id = realmId;\n }\n\n entity = await this.repository.findOneBy(where);\n if (!entity && options.updateOnly) {\n throw new EntityNotFoundError();\n }\n } else if (options.updateOnly) {\n throw new EntityNotFoundError();\n }\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n if (entity) {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_UPDATE });\n\n group = ValidatorGroup.UPDATE;\n } else {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_CREATE });\n\n group = ValidatorGroup.CREATE;\n }\n\n const validator = new IdentityProviderValidator();\n const data = await validator.run(body, { group });\n\n const attributesValidator = new IdentityProviderAttributesValidator();\n const attributes = await attributesValidator.run(body);\n\n await this.repository.validateJoinColumns(data);\n\n if (entity) {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_UPDATE,\n input: new PolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...data,\n },\n }),\n });\n } else {\n if (!data.realm_id) {\n const identity = useRequestIdentityOrFail(event);\n data.realm_id = identity.realmId;\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_CREATE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data }),\n });\n }\n\n await this.repository.checkUniqueness(data, entity || undefined);\n\n if (entity) {\n entity = this.repository.merge(entity, data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 202;\n\n return entity;\n }\n\n entity = this.repository.create(data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 201;\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async resolve(id: string) {\n const entity = await this.repository.findOneById(id);\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async saveAuthorizationState(\n event: IRoutupEvent,\n codeRequest?: OAuth2AuthorizationCodeRequest,\n ) : Promise<string> {\n return this.stateManager.save({\n codeRequest,\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n\n private async verifyAuthorizationState(event: IRoutupEvent): Promise<OAuth2AuthorizationState> {\n const query = useRequestQuery(event);\n if (typeof query.state !== 'string') {\n throw OAuth2RequestError.stateInvalid();\n }\n\n return this.stateManager.verify(query.state, {\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n}\n"],"mappings":"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"}
@@ -1,21 +1,14 @@
1
1
  import type { EntityCollectionResponse, PermissionAPICheckResponse, PermissionCreatePayload, PermissionSavePayload, PermissionUpdatePayload } from '@authup/core-http-kit';
2
2
  import type { Permission } from '@authup/core-kit';
3
- import type { IPermissionProvider } from '@authup/access';
4
3
  import type { IRoutupEvent } from 'routup';
5
- import type { IIdentityPermissionProvider, IPermissionRepository, IPermissionService, IRealmRepository } from '../../../../../core/index.ts';
4
+ import type { IPermissionCheckerService, IPermissionService } from '../../../../../core/index.ts';
6
5
  export type PermissionControllerContext = {
7
6
  service: IPermissionService;
8
- repository: IPermissionRepository;
9
- realmRepository: IRealmRepository;
10
- identityPermissionProvider: IIdentityPermissionProvider;
11
- permissionProvider: IPermissionProvider;
7
+ checkerService: IPermissionCheckerService;
12
8
  };
13
9
  export declare class PermissionController {
14
10
  protected service: IPermissionService;
15
- protected repository: IPermissionRepository;
16
- protected realmRepository: IRealmRepository;
17
- protected identityPermissionProvider: IIdentityPermissionProvider;
18
- protected permissionProvider: IPermissionProvider;
11
+ protected checkerService: IPermissionCheckerService;
19
12
  constructor(ctx: PermissionControllerContext);
20
13
  getMany(event: IRoutupEvent): Promise<EntityCollectionResponse<Permission>>;
21
14
  add(data: PermissionCreatePayload, event: IRoutupEvent): Promise<Permission>;
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/permission/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAA+B,MAAM,gBAAgB,CAAC;AAmBvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EAER,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EACnB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,MAAM,2BAA2B,GAAG;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,gBAAgB,CAAC;IAClC,0BAA0B,EAAE,2BAA2B,CAAC;IACxD,kBAAkB,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AAEF,qBAEa,oBAAoB;IAC7B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAEtC,SAAS,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAE5C,SAAS,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAE5C,SAAS,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;IAElE,SAAS,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;gBAEtC,GAAG,EAAE,2BAA2B;IAStC,OAAO,CACG,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAc1C,GAAG,CACI,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAUhB,KAAK,CACE,IAAI,EAAE,GAAG,EACN,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,0BAA0B,CAAC;IAyDhC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAYhB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAchB,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,EACxB,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAgBhB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;CAQzB"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/permission/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAanD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EACR,yBAAyB,EACzB,kBAAkB,EACrB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,MAAM,2BAA2B,GAAG;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,cAAc,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAEF,qBAEa,oBAAoB;IAC7B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAEtC,SAAS,CAAC,cAAc,EAAE,yBAAyB,CAAC;gBAExC,GAAG,EAAE,2BAA2B;IAMtC,OAAO,CACG,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAc1C,GAAG,CACI,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAWhB,KAAK,CACE,IAAI,EAAE,GAAG,EACN,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,0BAA0B,CAAC;IAqBhC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAYhB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAehB,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,EACxB,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAiBhB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;CAQzB"}
@@ -1,13 +1,9 @@
1
- import { PolicyEngine as PolicyEngine$1 } from "../../../../../core/security/policy/engine.mjs";
2
- import "../../../../../core/index.mjs";
3
- import { useRequestIdentity } from "../../../request/helpers/identity.mjs";
4
1
  import { buildActorContext } from "../../../request/helpers/actor.mjs";
2
+ import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
5
3
  import "../../../request/index.mjs";
6
4
  import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
7
5
  import "../../../middleware/index.mjs";
8
- import { isUUID } from "@authup/kit";
9
- import { BuiltInPolicyType, PermissionEvaluator, PolicyData } from "@authup/access";
10
- import { NotFoundError } from "@ebec/http";
6
+ import { serializeError } from "@authup/errors";
11
7
  import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DPut, DTags } from "@routup/decorators";
12
8
  import { useRequestQuery } from "@routup/basic/query";
13
9
  //#region src/adapters/http/controllers/entities/permission/module.ts
@@ -27,16 +23,10 @@ function _ts_param(paramIndex, decorator) {
27
23
  }
28
24
  var PermissionController = class {
29
25
  service;
30
- repository;
31
- realmRepository;
32
- identityPermissionProvider;
33
- permissionProvider;
26
+ checkerService;
34
27
  constructor(ctx) {
35
28
  this.service = ctx.service;
36
- this.repository = ctx.repository;
37
- this.realmRepository = ctx.realmRepository;
38
- this.identityPermissionProvider = ctx.identityPermissionProvider;
39
- this.permissionProvider = ctx.permissionProvider;
29
+ this.checkerService = ctx.checkerService;
40
30
  }
41
31
  async getMany(event) {
42
32
  const actor = buildActorContext(event);
@@ -47,58 +37,35 @@ var PermissionController = class {
47
37
  };
48
38
  }
49
39
  async add(data, event) {
40
+ applyRouteRealmIDToBody(event, data);
50
41
  const actor = buildActorContext(event);
51
42
  const entity = await this.service.create(data, actor);
52
43
  event.response.status = 201;
53
44
  return entity;
54
45
  }
55
46
  async check(data, event) {
56
- const { id } = event.params;
57
- let criteria;
58
- if (isUUID(id)) criteria = { id };
59
- else {
60
- const realm = await this.realmRepository.resolve(event.params.realmId);
61
- criteria = {
62
- name: id,
63
- ...realm ? { realm_id: realm.id } : {}
64
- };
65
- }
66
- const entity = await this.repository.findOneBy(criteria);
67
- if (!entity) throw new NotFoundError();
68
- if (typeof data[BuiltInPolicyType.IDENTITY] === "undefined") data[BuiltInPolicyType.IDENTITY] = useRequestIdentity(event);
69
- const ctx = {
70
- name: entity.name,
71
- input: new PolicyData(data)
72
- };
73
- const permissionEvaluator = new PermissionEvaluator({
74
- provider: this.permissionProvider,
75
- policyEngine: new PolicyEngine$1(this.identityPermissionProvider)
76
- });
77
- let output;
78
- try {
79
- if (ctx.input && ctx.input.has(BuiltInPolicyType.ATTRIBUTES)) await permissionEvaluator.evaluate(ctx);
80
- else await permissionEvaluator.preEvaluate(ctx);
81
- output = { status: "success" };
82
- } catch (e) {
83
- output = {
84
- status: "error",
85
- data: e
86
- };
87
- }
47
+ const actor = buildActorContext(event);
48
+ const result = await this.checkerService.safeCheck(event.params.id, data, actor, getRequestRealmID(event));
88
49
  event.response.status = 202;
89
- return output;
50
+ if (result.success) return { status: "success" };
51
+ return {
52
+ status: "error",
53
+ data: serializeError(result.error)
54
+ };
90
55
  }
91
56
  async get(id, event) {
92
57
  const actor = buildActorContext(event);
93
- return await this.service.getOne(id, actor, event.params.realmId);
58
+ return await this.service.getOne(id, actor, getRequestRealmID(event));
94
59
  }
95
60
  async edit(id, data, event) {
61
+ applyRouteRealmIDToBody(event, data);
96
62
  const actor = buildActorContext(event);
97
63
  const entity = await this.service.update(id, data, actor);
98
64
  event.response.status = 202;
99
65
  return entity;
100
66
  }
101
67
  async put(id, data, event) {
68
+ applyRouteRealmIDToBody(event, data);
102
69
  const actor = buildActorContext(event);
103
70
  const { entity, created } = await this.service.save(id || void 0, data, actor);
104
71
  event.response.status = created ? 201 : 202;
@@ -178,7 +145,7 @@ _ts_decorate([
178
145
  ], PermissionController.prototype, "drop", null);
179
146
  PermissionController = _ts_decorate([
180
147
  DTags("permission"),
181
- DController("/permissions"),
148
+ DController(["/permissions", "/realms/:realmId/permissions"]),
182
149
  _ts_metadata("design:type", Function),
183
150
  _ts_metadata("design:paramtypes", [typeof PermissionControllerContext === "undefined" ? Object : PermissionControllerContext])
184
151
  ], PermissionController);
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PermissionEvaluator","PolicyData","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","isUUID","NotFoundError","useRequestQuery","PolicyEngine","ForceLoggedInMiddleware","buildActorContext","useRequestIdentity","PermissionController","service","repository","realmRepository","identityPermissionProvider","permissionProvider","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","check","id","params","criteria","realm","resolve","realmId","name","realm_id","findOneBy","IDENTITY","input","permissionEvaluator","provider","policyEngine","output","has","ATTRIBUTES","evaluate","preEvaluate","e","get","getOne","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/permission/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n EntityCollectionResponse,\n PermissionAPICheckResponse,\n PermissionCreatePayload,\n PermissionSavePayload,\n PermissionUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { Permission } from '@authup/core-kit';\nimport type { IPermissionProvider, PermissionEvaluationContext } from '@authup/access';\nimport {\n BuiltInPolicyType,\n PermissionEvaluator, \n PolicyData,\n} from '@authup/access';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport { isUUID } from '@authup/kit';\nimport { NotFoundError } from '@ebec/http';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n \n IIdentityPermissionProvider, \n IPermissionRepository, \n IPermissionService, \n IRealmRepository, \n} from '../../../../../core/index.ts';\nimport { PolicyEngine } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n buildActorContext,\n useRequestIdentity,\n} from '../../../request/index.ts';\n\nexport type PermissionControllerContext = {\n service: IPermissionService,\n repository: IPermissionRepository,\n realmRepository: IRealmRepository,\n identityPermissionProvider: IIdentityPermissionProvider,\n permissionProvider: IPermissionProvider,\n};\n\n@DTags('permission')\n@DController('/permissions')\nexport class PermissionController {\n protected service: IPermissionService;\n\n protected repository: IPermissionRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected identityPermissionProvider: IIdentityPermissionProvider;\n\n protected permissionProvider: IPermissionProvider;\n\n constructor(ctx: PermissionControllerContext) {\n this.service = ctx.service;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.identityPermissionProvider = ctx.identityPermissionProvider;\n this.permissionProvider = ctx.permissionProvider;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<Permission>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: PermissionCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id/check', [ForceLoggedInMiddleware])\n async check(\n @DBody() data: any,\n @DContext() event: IRoutupEvent,\n ): Promise<PermissionAPICheckResponse> {\n const { id } = event.params;\n\n let criteria: Record<string, any>;\n if (isUUID(id)) {\n criteria = { id };\n } else {\n const realm = await this.realmRepository.resolve(event.params.realmId);\n criteria = {\n name: id,\n ...(realm ? { realm_id: realm.id } : {}),\n };\n }\n\n const entity = await this.repository.findOneBy(criteria);\n if (!entity) {\n throw new NotFoundError();\n }\n\n if (typeof data[BuiltInPolicyType.IDENTITY] === 'undefined') {\n data[BuiltInPolicyType.IDENTITY] = useRequestIdentity(event);\n }\n\n const ctx: PermissionEvaluationContext = {\n name: entity.name,\n input: new PolicyData(data),\n };\n\n const permissionEvaluator = new PermissionEvaluator({\n provider: this.permissionProvider,\n policyEngine: new PolicyEngine(this.identityPermissionProvider),\n });\n\n let output: PermissionAPICheckResponse;\n try {\n if (\n ctx.input &&\n ctx.input.has(BuiltInPolicyType.ATTRIBUTES)\n ) {\n await permissionEvaluator.evaluate(ctx);\n } else {\n await permissionEvaluator.preEvaluate(ctx);\n }\n\n output = { status: 'success' };\n } catch (e) {\n output = {\n status: 'error',\n data: e as Error,\n };\n }\n\n event.response.status = 202;\n return output;\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(\n id,\n actor,\n event.params.realmId,\n );\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: PermissionUpdatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: PermissionSavePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"module.mjs","names":["serializeError","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","useRequestQuery","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","PermissionController","service","checkerService","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","check","result","safeCheck","params","id","success","error","get","getOne","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/permission/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\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 {\n EntityCollectionResponse,\n PermissionAPICheckResponse,\n PermissionCreatePayload,\n PermissionSavePayload,\n PermissionUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { Permission } from '@authup/core-kit';\nimport { serializeError } from '@authup/errors';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n IPermissionCheckerService,\n IPermissionService,\n} from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\n\nexport type PermissionControllerContext = {\n service: IPermissionService,\n checkerService: IPermissionCheckerService,\n};\n\n@DTags('permission')\n@DController(['/permissions', '/realms/:realmId/permissions'])\nexport class PermissionController {\n protected service: IPermissionService;\n\n protected checkerService: IPermissionCheckerService;\n\n constructor(ctx: PermissionControllerContext) {\n this.service = ctx.service;\n this.checkerService = ctx.checkerService;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<Permission>> {\n const actor = buildActorContext(event);\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event), actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: PermissionCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id/check', [ForceLoggedInMiddleware])\n async check(\n @DBody() data: any,\n @DContext() event: IRoutupEvent,\n ): Promise<PermissionAPICheckResponse> {\n const actor = buildActorContext(event);\n const result = await this.checkerService.safeCheck(\n event.params.id,\n data,\n actor,\n getRequestRealmID(event),\n );\n\n event.response.status = 202;\n if (result.success) {\n return { status: 'success' };\n }\n\n return {\n status: 'error',\n data: serializeError(result.error),\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.getOne(\n id,\n actor,\n getRequestRealmID(event),\n );\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: PermissionUpdatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: PermissionSavePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<Permission> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;AAKC,SAAA,aAAA,YAAA,QAAA,KAAA,MAAA;;;;;;;;;;;;;;AA0CD,IAAae,uBAAb,MAAaA;CACCC;CAEAC;CAEV,YAAYC,KAAkC;EAC1C,KAAKF,UAAUE,IAAIF;EACnB,KAAKC,iBAAiBC,IAAID;CAC9B;CAEA,MACME,QACF,OAC6C;EAC7C,MAAME,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFE,MACAC,SACA,MAAM,KAAKP,QAAQG,QAAQT,gBAAgBU,KAAAA,GAAQC,KAAAA;EAEvD,OAAO;GACHC;GACAC;EACJ;CACJ;CAEA,MACMC,IACF,MACA,OACmB;EACnBZ,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKT,QAAQU,OAAOJ,MAAMD,KAAAA;EAE/CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,MACF,MACA,OACmC;EACnC,MAAMR,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMU,SAAS,MAAM,KAAKb,eAAec,UACrCX,MAAMY,OAAOC,IACbX,MACAD,OACAP,kBAAkBM,KAAAA,CAAAA;EAGtBA,MAAMO,SAASC,SAAS;EACxB,IAAIE,OAAOI,SACP,OAAO,EAAEN,QAAQ,UAAU;EAG/B,OAAO;GACHA,QAAQ;GACRN,MAAMtB,eAAe8B,OAAOK,KAAK;EACrC;CACJ;CAEA,MACMC,IACF,IACA,OACmB;EACnB,MAAMf,QAAQR,kBAAkBO,KAAAA;EAOhC,OAAOK,MANc,KAAKT,QAAQqB,OAC9BJ,IACAZ,OACAP,kBAAkBM,KAAAA,CAAAA;CAI1B;CAEA,MACMkB,KACF,IACA,MACA,OACmB;EACnB1B,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKT,QAAQuB,OAC9BN,IACAX,MACAD,KAAAA;EAGJD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMe,IACF,IACA,MACA,OACmB;EACnB5B,wBAAwBQ,OAAOE,IAAAA;EAC/B,MAAMD,QAAQR,kBAAkBO,KAAAA;EAChC,MAAM,EACFK,QACAgB,YACA,MAAM,KAAKzB,QAAQ0B,KACnBT,MAAMU,KAAAA,GACNrB,MACAD,KAAAA;EAGJD,MAAMO,SAASC,SAASa,UAAU,MAAM;EACxC,OAAOhB;CACX;CAEA,MACMmB,KACF,IACA,OACmB;EACnB,MAAMvB,QAAQR,kBAAkBO,KAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKT,QAAQ6B,OAAOZ,IAAIZ,KAAAA;EAE7CD,MAAMO,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;WAzHed,uBAAAA,CAAAA;;;;;;;YAgBCA,uBAAAA,CAAAA;;;;;;;;sBAcUA,uBAAAA,CAAAA;;;;;;;;eAwBPA,uBAAAA,CAAAA;;;;;;;;gBAeCA,uBAAAA,CAAAA;;;;;;;;;;;;;eAmBDA,uBAAAA,CAAAA;;;;;;;;;;;;;kBAqBGA,uBAAAA,CAAAA;;;;;;;;;cAxHR,gBAAgB,8BAAA,CAAA"}