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

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 (343) hide show
  1. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +5 -8
  2. package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
  3. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +8 -10
  4. package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
  5. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +3 -3
  6. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
  7. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +13 -12
  8. package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
  9. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +2 -2
  10. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
  11. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +6 -6
  12. package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
  13. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts +2 -2
  14. package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts.map +1 -1
  15. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +4 -4
  16. package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
  17. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +2 -2
  18. package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
  19. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +6 -6
  20. package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
  21. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -2
  22. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
  23. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +8 -7
  24. package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
  25. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +2 -2
  26. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
  27. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +5 -5
  28. package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
  29. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -2
  30. package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
  31. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts +2 -2
  32. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts.map +1 -1
  33. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +11 -10
  34. package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
  35. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts +2 -2
  36. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
  37. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +16 -13
  38. package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
  39. package/dist/adapters/http/controllers/entities/client/module.d.ts +9 -6
  40. package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
  41. package/dist/adapters/http/controllers/entities/client/module.mjs +46 -61
  42. package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
  43. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +8 -5
  44. package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
  45. package/dist/adapters/http/controllers/entities/client-permission/module.mjs +35 -48
  46. package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
  47. package/dist/adapters/http/controllers/entities/client-role/module.d.ts +7 -4
  48. package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
  49. package/dist/adapters/http/controllers/entities/client-role/module.mjs +27 -40
  50. package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
  51. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +7 -4
  52. package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
  53. package/dist/adapters/http/controllers/entities/client-scope/module.mjs +27 -40
  54. package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
  55. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +8 -6
  56. package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
  57. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +35 -48
  58. package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
  59. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +10 -9
  60. package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
  61. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +76 -100
  62. package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
  63. package/dist/adapters/http/controllers/entities/permission/module.d.ts +10 -7
  64. package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
  65. package/dist/adapters/http/controllers/entities/permission/module.mjs +50 -69
  66. package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
  67. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +7 -4
  68. package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
  69. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +27 -40
  70. package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
  71. package/dist/adapters/http/controllers/entities/policy/module.d.ts +11 -9
  72. package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
  73. package/dist/adapters/http/controllers/entities/policy/module.mjs +54 -72
  74. package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
  75. package/dist/adapters/http/controllers/entities/realm/module.d.ts +13 -8
  76. package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
  77. package/dist/adapters/http/controllers/entities/realm/module.mjs +55 -74
  78. package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
  79. package/dist/adapters/http/controllers/entities/robot/module.d.ts +9 -6
  80. package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
  81. package/dist/adapters/http/controllers/entities/robot/module.mjs +46 -63
  82. package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
  83. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +8 -5
  84. package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +1 -1
  85. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +35 -48
  86. package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
  87. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +7 -4
  88. package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +1 -1
  89. package/dist/adapters/http/controllers/entities/robot-role/module.mjs +27 -40
  90. package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
  91. package/dist/adapters/http/controllers/entities/role/module.d.ts +9 -6
  92. package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
  93. package/dist/adapters/http/controllers/entities/role/module.mjs +42 -57
  94. package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
  95. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +8 -5
  96. package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
  97. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +35 -48
  98. package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
  99. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +8 -5
  100. package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
  101. package/dist/adapters/http/controllers/entities/role-permission/module.mjs +35 -48
  102. package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
  103. package/dist/adapters/http/controllers/entities/scope/module.d.ts +9 -6
  104. package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
  105. package/dist/adapters/http/controllers/entities/scope/module.mjs +42 -57
  106. package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
  107. package/dist/adapters/http/controllers/entities/user/module.d.ts +9 -6
  108. package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
  109. package/dist/adapters/http/controllers/entities/user/module.mjs +42 -57
  110. package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
  111. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +8 -5
  112. package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
  113. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +35 -48
  114. package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
  115. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +8 -5
  116. package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
  117. package/dist/adapters/http/controllers/entities/user-permission/module.mjs +35 -48
  118. package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
  119. package/dist/adapters/http/controllers/entities/user-role/module.d.ts +7 -4
  120. package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
  121. package/dist/adapters/http/controllers/entities/user-role/module.mjs +27 -40
  122. package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
  123. package/dist/adapters/http/controllers/workflows/activate/module.d.ts +3 -2
  124. package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
  125. package/dist/adapters/http/controllers/workflows/activate/module.mjs +6 -11
  126. package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
  127. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +7 -5
  128. package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
  129. package/dist/adapters/http/controllers/workflows/authorize/module.mjs +19 -20
  130. package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
  131. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts +5 -3
  132. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
  133. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +12 -14
  134. package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
  135. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts +6 -3
  136. package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
  137. package/dist/adapters/http/controllers/workflows/jwks/module.mjs +17 -26
  138. package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
  139. package/dist/adapters/http/controllers/workflows/openid/module.d.ts.map +1 -1
  140. package/dist/adapters/http/controllers/workflows/openid/module.mjs +10 -7
  141. package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
  142. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +3 -3
  143. package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
  144. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -11
  145. package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
  146. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +3 -3
  147. package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
  148. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -11
  149. package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
  150. package/dist/adapters/http/controllers/workflows/register/module.d.ts +3 -3
  151. package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
  152. package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -11
  153. package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
  154. package/dist/adapters/http/controllers/workflows/status/module.d.ts.map +1 -1
  155. package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
  156. package/dist/adapters/http/controllers/workflows/token/module.d.ts +5 -5
  157. package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
  158. package/dist/adapters/http/controllers/workflows/token/module.mjs +20 -21
  159. package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
  160. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts +2 -2
  161. package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts.map +1 -1
  162. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs +8 -7
  163. package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
  164. package/dist/adapters/http/index.d.ts +0 -2
  165. package/dist/adapters/http/index.d.ts.map +1 -1
  166. package/dist/adapters/http/index.mjs +4 -7
  167. package/dist/adapters/http/middleware/built-in/assets.d.ts +1 -0
  168. package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
  169. package/dist/adapters/http/middleware/built-in/assets.mjs +9 -9
  170. package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
  171. package/dist/adapters/http/middleware/built-in/authorization/factory.d.ts.map +1 -1
  172. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs +5 -2
  173. package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
  174. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +4 -10
  175. package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
  176. package/dist/adapters/http/middleware/built-in/authorization/module.mjs +24 -39
  177. package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
  178. package/dist/adapters/http/middleware/built-in/cors.d.ts +1 -1
  179. package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
  180. package/dist/adapters/http/middleware/built-in/cors.mjs +18 -10
  181. package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
  182. package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
  183. package/dist/adapters/http/middleware/built-in/error.mjs +7 -18
  184. package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
  185. package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
  186. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts +2 -2
  187. package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts.map +1 -1
  188. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs +3 -3
  189. package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
  190. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts +2 -2
  191. package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts.map +1 -1
  192. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +3 -3
  193. package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
  194. package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
  195. package/dist/adapters/http/middleware/built-in/logger.mjs +21 -29
  196. package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
  197. package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
  198. package/dist/adapters/http/middleware/built-in/prometheus.mjs +2 -3
  199. package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
  200. package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
  201. package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -2
  202. package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
  203. package/dist/adapters/http/middleware/built-in/swagger.d.ts +3 -4
  204. package/dist/adapters/http/middleware/built-in/swagger.d.ts.map +1 -1
  205. package/dist/adapters/http/middleware/built-in/swagger.mjs +4 -16
  206. package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
  207. package/dist/adapters/http/middleware/index.mjs +2 -2
  208. package/dist/adapters/http/request/helpers/actor.d.ts +2 -2
  209. package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
  210. package/dist/adapters/http/request/helpers/actor.mjs +3 -3
  211. package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
  212. package/dist/adapters/http/request/helpers/body-realm-id.d.ts +1 -2
  213. package/dist/adapters/http/request/helpers/body-realm-id.d.ts.map +1 -1
  214. package/dist/adapters/http/request/helpers/body-realm-id.mjs +3 -4
  215. package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
  216. package/dist/adapters/http/request/helpers/identity.d.ts +4 -4
  217. package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
  218. package/dist/adapters/http/request/helpers/identity.mjs +6 -7
  219. package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
  220. package/dist/adapters/http/request/helpers/index.d.ts +1 -0
  221. package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
  222. package/dist/adapters/http/request/helpers/index.mjs +3 -2
  223. package/dist/adapters/http/request/helpers/locations.d.ts +4 -0
  224. package/dist/adapters/http/request/helpers/locations.d.ts.map +1 -0
  225. package/dist/adapters/http/request/helpers/locations.mjs +28 -0
  226. package/dist/adapters/http/request/helpers/locations.mjs.map +1 -0
  227. package/dist/adapters/http/request/helpers/param-id.d.ts +5 -5
  228. package/dist/adapters/http/request/helpers/param-id.d.ts.map +1 -1
  229. package/dist/adapters/http/request/helpers/param-id.mjs +8 -9
  230. package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
  231. package/dist/adapters/http/request/helpers/scopes.d.ts +3 -3
  232. package/dist/adapters/http/request/helpers/scopes.d.ts.map +1 -1
  233. package/dist/adapters/http/request/helpers/scopes.mjs +4 -5
  234. package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
  235. package/dist/adapters/http/request/helpers/token.d.ts +3 -3
  236. package/dist/adapters/http/request/helpers/token.d.ts.map +1 -1
  237. package/dist/adapters/http/request/helpers/token.mjs +4 -5
  238. package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
  239. package/dist/adapters/http/request/index.mjs +3 -2
  240. package/dist/adapters/http/request/permission/helper.d.ts +3 -3
  241. package/dist/adapters/http/request/permission/helper.d.ts.map +1 -1
  242. package/dist/adapters/http/request/permission/helper.mjs +4 -5
  243. package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
  244. package/dist/adapters/http/request/permission/module.d.ts +3 -3
  245. package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
  246. package/dist/adapters/http/request/permission/module.mjs +5 -5
  247. package/dist/adapters/http/request/permission/module.mjs.map +1 -1
  248. package/dist/app/builder.d.ts +1 -2
  249. package/dist/app/builder.d.ts.map +1 -1
  250. package/dist/app/builder.mjs +0 -5
  251. package/dist/app/builder.mjs.map +1 -1
  252. package/dist/app/factory.d.ts.map +1 -1
  253. package/dist/app/factory.mjs +1 -1
  254. package/dist/app/factory.mjs.map +1 -1
  255. package/dist/app/index.mjs +1 -2
  256. package/dist/app/modules/config/types.d.ts +2 -2
  257. package/dist/app/modules/config/types.d.ts.map +1 -1
  258. package/dist/app/modules/constants.d.ts +0 -1
  259. package/dist/app/modules/constants.d.ts.map +1 -1
  260. package/dist/app/modules/constants.mjs +0 -1
  261. package/dist/app/modules/constants.mjs.map +1 -1
  262. package/dist/app/modules/http/constants.d.ts +3 -2
  263. package/dist/app/modules/http/constants.d.ts.map +1 -1
  264. package/dist/app/modules/http/constants.mjs.map +1 -1
  265. package/dist/app/modules/http/module.d.ts +2 -2
  266. package/dist/app/modules/http/module.d.ts.map +1 -1
  267. package/dist/app/modules/http/module.mjs +10 -17
  268. package/dist/app/modules/http/module.mjs.map +1 -1
  269. package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
  270. package/dist/app/modules/http/modules/controller.mjs +32 -51
  271. package/dist/app/modules/http/modules/controller.mjs.map +1 -1
  272. package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
  273. package/dist/app/modules/http/modules/middleware.mjs +3 -6
  274. package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
  275. package/dist/app/modules/index.d.ts +0 -1
  276. package/dist/app/modules/index.d.ts.map +1 -1
  277. package/dist/app/modules/index.mjs +1 -3
  278. package/dist/app/modules/runtime/module.d.ts.map +1 -1
  279. package/dist/app/modules/runtime/module.mjs +3 -1
  280. package/dist/app/modules/runtime/module.mjs.map +1 -1
  281. package/dist/cli/commands/healthcheck.mjs +1 -1
  282. package/dist/cli/commands/index.d.ts +0 -1
  283. package/dist/cli/commands/index.d.ts.map +1 -1
  284. package/dist/cli/commands/index.mjs +1 -2
  285. package/dist/cli/commands/start.d.ts.map +1 -1
  286. package/dist/cli/commands/start.mjs +22 -1
  287. package/dist/cli/commands/start.mjs.map +1 -1
  288. package/dist/cli/module.d.ts.map +1 -1
  289. package/dist/cli/module.mjs +1 -3
  290. package/dist/cli/module.mjs.map +1 -1
  291. package/dist/core/oauth2/helpers/erorr.d.ts +1 -2
  292. package/dist/core/oauth2/helpers/erorr.d.ts.map +1 -1
  293. package/dist/core/oauth2/helpers/erorr.mjs +11 -10
  294. package/dist/core/oauth2/helpers/erorr.mjs.map +1 -1
  295. package/dist/index.mjs +4 -7
  296. package/dist/swagger.json +7139 -2355
  297. package/dist/ui/client/.vite/ssr-manifest.json +15 -90
  298. package/dist/ui/client/assets/index-DJBdH-x_.js +64 -0
  299. package/dist/ui/client/index.html +1 -1
  300. package/dist/ui/server/server.js +1120 -23992
  301. package/dist/utils/error.d.ts.map +1 -1
  302. package/dist/utils/error.mjs +7 -8
  303. package/dist/utils/error.mjs.map +1 -1
  304. package/dist/utils/index.d.ts +1 -0
  305. package/dist/utils/index.d.ts.map +1 -1
  306. package/dist/utils/index.mjs +2 -1
  307. package/dist/utils/url.d.ts +10 -0
  308. package/dist/utils/url.d.ts.map +1 -0
  309. package/dist/utils/url.mjs +17 -0
  310. package/dist/utils/url.mjs.map +1 -0
  311. package/package.json +28 -28
  312. package/dist/adapters/http/server/index.d.ts +0 -3
  313. package/dist/adapters/http/server/index.d.ts.map +0 -1
  314. package/dist/adapters/http/server/index.mjs +0 -2
  315. package/dist/adapters/http/server/module.d.ts +0 -3
  316. package/dist/adapters/http/server/module.d.ts.map +0 -1
  317. package/dist/adapters/http/server/module.mjs +0 -10
  318. package/dist/adapters/http/server/module.mjs.map +0 -1
  319. package/dist/adapters/http/server/type.d.ts +0 -8
  320. package/dist/adapters/http/server/type.d.ts.map +0 -1
  321. package/dist/adapters/http/server/type.mjs +0 -1
  322. package/dist/adapters/http/swagger/index.d.ts +0 -3
  323. package/dist/adapters/http/swagger/index.d.ts.map +0 -1
  324. package/dist/adapters/http/swagger/index.mjs +0 -2
  325. package/dist/adapters/http/swagger/module.d.ts +0 -12
  326. package/dist/adapters/http/swagger/module.d.ts.map +0 -1
  327. package/dist/adapters/http/swagger/module.mjs +0 -75
  328. package/dist/adapters/http/swagger/module.mjs.map +0 -1
  329. package/dist/adapters/http/swagger/type.d.ts +0 -4
  330. package/dist/adapters/http/swagger/type.d.ts.map +0 -1
  331. package/dist/adapters/http/swagger/type.mjs +0 -1
  332. package/dist/app/modules/swagger/index.d.ts +0 -2
  333. package/dist/app/modules/swagger/index.d.ts.map +0 -1
  334. package/dist/app/modules/swagger/index.mjs +0 -2
  335. package/dist/app/modules/swagger/module.d.ts +0 -9
  336. package/dist/app/modules/swagger/module.d.ts.map +0 -1
  337. package/dist/app/modules/swagger/module.mjs +0 -32
  338. package/dist/app/modules/swagger/module.mjs.map +0 -1
  339. package/dist/cli/commands/swagger.d.ts +0 -8
  340. package/dist/cli/commands/swagger.d.ts.map +0 -1
  341. package/dist/cli/commands/swagger.mjs +0 -29
  342. package/dist/cli/commands/swagger.mjs.map +0 -1
  343. package/dist/ui/client/assets/index-Noe7uiOY.js +0 -41
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PolicyData","base64URLDecode","isUUID","DBody","DController","DDelete","DGet","DPath","DPost","DPut","DRequest","DResponse","DTags","getRequestHeader","getRequestIP","send","sendAccepted","sendCreated","sendRedirect","useRequestParam","IdentityProviderAttributesValidator","IdentityProviderValidator","IdentityType","PermissionName","ValidatorGroup","isOAuth2IdentityProvider","isOpenIDIdentityProvider","BadRequestError","NotFoundError","useRequestQuery","OAuth2Error","URL","RoutupContainerAdapter","OAuth2AuthorizationCodeRequestValidator","createIdentityProviderOAuth2Authenticator","getRequestBodyRealmID","getRequestParamID","useRequestIdentityOrFail","useRequestParamID","useRequestPermissionEvaluator","ForceLoggedInMiddleware","IdentityProviderController","options","repository","realmRepository","accountManager","codeRequestVerifier","codeRequestValidator","stateManager","codeIssuer","ctx","getProviders","req","res","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","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","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 { base64URLDecode, isUUID } from '@authup/kit';\nimport {\n DBody, \n DController, \n DDelete, \n DGet, \n DPath, \n DPost, \n DPut, \n DRequest, \n DResponse, \n DTags,\n} from '@routup/decorators';\nimport type { Request, Response } from 'routup';\nimport {\n getRequestHeader, \n getRequestIP, \n send, \n sendAccepted, \n sendCreated, \n sendRedirect, \n useRequestParam,\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 { OAuth2Error } from '@authup/specs';\nimport { URL } from 'node:url';\nimport { RoutupContainerAdapter } from '@validup/adapter-routup';\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 getRequestBodyRealmID,\n getRequestParamID,\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')\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 @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const {\n data, \n meta, \n } = await this.repository.findMany(useRequestQuery(req));\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(req);\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 send(res, {\n data,\n meta,\n });\n }\n\n @DGet('/:id', [])\n async getProvider(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const paramId = useRequestParamID(req, { isUUID: false });\n\n const entity = await this.repository.findOneByIdOrName(\n paramId,\n useRequestParam(req, 'realmId'),\n );\n\n if (!entity) {\n throw new NotFoundError();\n }\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(req);\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 send(res, entity);\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async editProvider(\n @DPath('id') id: string,\n @DBody() user: NonNullable<IdentityProvider>,\n @DRequest() req: any,\n @DResponse() res: any,\n ) : Promise<any> {\n return this.write(req, res, { updateOnly: true });\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() user: NonNullable<IdentityProvider>,\n @DRequest() req: any,\n @DResponse() res: any,\n ) : Promise<any> {\n return this.write(req, res);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async dropProvider(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ) : Promise<any> {\n const paramId = useRequestParamID(req);\n\n const permissionEvaluator = useRequestPermissionEvaluator(req);\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 return sendAccepted(res, entity);\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async addProvider(\n @DBody() user: NonNullable<IdentityProvider>,\n @DRequest() req: any,\n @DResponse() res: any,\n ) : Promise<any> {\n return this.write(req, res);\n }\n\n // ---------------------------------------------------------\n\n @DGet('/:id/authorize-out', [])\n async authorizeOut(\n @DPath('id') _id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ) {\n const id = useRequestParamID(req);\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(req);\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(req, codeRequest);\n\n return sendRedirect(res, authenticator.buildRedirectURL(parameters));\n }\n\n @DGet('/:id/authorize-in', [])\n async authorizeIn(\n @DPath('id') _id: string,\n @DRequest() req: Request,\n @DResponse() res: Response,\n ) {\n const id = useRequestParamID(req);\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(req);\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(req);\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('/authorize', this.options.baseURL);\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(res, url.href);\n }\n\n const url = new URL(this.options.baseURL);\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(res, url.href);\n }\n\n // ---------------------------------------------------------\n\n private async write(req: Request, res: Response, options: {\n updateOnly?: boolean\n } = {}): Promise<any> {\n let group: string;\n const id = getRequestParamID(req, { isUUID: false });\n const realmId = getRequestBodyRealmID(req);\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(req);\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 RoutupContainerAdapter(new IdentityProviderValidator());\n const data = await validator.run(req, { group });\n\n const attributesValidator = new RoutupContainerAdapter(new IdentityProviderAttributesValidator());\n const attributes = await attributesValidator.run(req);\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(req);\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 return sendAccepted(res, entity);\n }\n\n entity = this.repository.create(data);\n await this.repository.saveWithEA(entity, attributes);\n\n return sendCreated(res, 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 req: Request,\n codeRequest?: OAuth2AuthorizationCodeRequest,\n ) : Promise<string> {\n return this.stateManager.save({\n codeRequest,\n ip: getRequestIP(req, { trustProxy: true }),\n userAgent: getRequestHeader(req, 'user-agent'),\n });\n }\n\n private async verifyAuthorizationState(req: Request): Promise<OAuth2AuthorizationState> {\n const query = useRequestQuery(req);\n if (typeof query.state !== 'string') {\n throw OAuth2Error.stateInvalid();\n }\n\n return this.stateManager.verify(query.state, {\n ip: getRequestIP(req, { trustProxy: true }),\n userAgent: getRequestHeader(req, 'user-agent'),\n });\n }\n}\n"],"mappings":"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"}
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,4 +1,7 @@
1
+ import type { EntityCollectionResponse, PermissionAPICheckResponse, PermissionCreatePayload, PermissionSavePayload, PermissionUpdatePayload } from '@authup/core-http-kit';
2
+ import type { Permission } from '@authup/core-kit';
1
3
  import type { IPermissionProvider } from '@authup/access';
4
+ import type { IRoutupEvent } from 'routup';
2
5
  import type { IIdentityPermissionProvider, IPermissionRepository, IPermissionService, IRealmRepository } from '../../../../../core/index.ts';
3
6
  export type PermissionControllerContext = {
4
7
  service: IPermissionService;
@@ -14,12 +17,12 @@ export declare class PermissionController {
14
17
  protected identityPermissionProvider: IIdentityPermissionProvider;
15
18
  protected permissionProvider: IPermissionProvider;
16
19
  constructor(ctx: PermissionControllerContext);
17
- getMany(req: any, res: any): Promise<any>;
18
- add(data: any, req: any, res: any): Promise<any>;
19
- check(data: any, req: any, res: any): Promise<any>;
20
- get(id: string, req: any, res: any): Promise<any>;
21
- edit(id: string, data: any, req: any, res: any): Promise<any>;
22
- put(id: string, data: any, req: any, res: any): Promise<any>;
23
- drop(id: string, req: any, res: any): Promise<any>;
20
+ getMany(event: IRoutupEvent): Promise<EntityCollectionResponse<Permission>>;
21
+ add(data: PermissionCreatePayload, event: IRoutupEvent): Promise<Permission>;
22
+ check(data: any, event: IRoutupEvent): Promise<PermissionAPICheckResponse>;
23
+ get(id: string, event: IRoutupEvent): Promise<Permission>;
24
+ edit(id: string, data: PermissionUpdatePayload, event: IRoutupEvent): Promise<Permission>;
25
+ put(id: string, data: PermissionSavePayload, event: IRoutupEvent): Promise<Permission>;
26
+ drop(id: string, event: IRoutupEvent): Promise<Permission>;
24
27
  }
25
28
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/permission/module.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,mBAAmB,EAA+B,MAAM,gBAAgB,CAAC;AA2BvF,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,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAcT,GAAG,CACI,IAAI,EAAE,GAAG,EACN,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAQT,KAAK,CACE,IAAI,EAAE,GAAG,EACN,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAwDT,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACN,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAYT,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,EACN,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAmBT,IAAI,CACO,EAAE,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;CAMlB"}
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"}
@@ -8,9 +8,8 @@ import "../../../middleware/index.mjs";
8
8
  import { isUUID } from "@authup/kit";
9
9
  import { BuiltInPolicyType, PermissionEvaluator, PolicyData } from "@authup/access";
10
10
  import { NotFoundError } from "@ebec/http";
11
- import { send, sendAccepted, sendCreated, useRequestParam } from "routup";
11
+ import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DPut, DTags } from "@routup/decorators";
12
12
  import { useRequestQuery } from "@routup/basic/query";
13
- import { DBody, DController, DDelete, DGet, DPath, DPost, DPut, DRequest, DResponse, DTags } from "@routup/decorators";
14
13
  //#region src/adapters/http/controllers/entities/permission/module.ts
15
14
  function _ts_decorate(decorators, target, key, desc) {
16
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -39,24 +38,26 @@ var PermissionController = class {
39
38
  this.identityPermissionProvider = ctx.identityPermissionProvider;
40
39
  this.permissionProvider = ctx.permissionProvider;
41
40
  }
42
- async getMany(req, res) {
43
- const actor = buildActorContext(req);
44
- const { data, meta } = await this.service.getMany(useRequestQuery(req), actor);
45
- return send(res, {
41
+ async getMany(event) {
42
+ const actor = buildActorContext(event);
43
+ const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
44
+ return {
46
45
  data,
47
46
  meta
48
- });
47
+ };
49
48
  }
50
- async add(data, req, res) {
51
- const actor = buildActorContext(req);
52
- return sendCreated(res, await this.service.create(data, actor));
49
+ async add(data, event) {
50
+ const actor = buildActorContext(event);
51
+ const entity = await this.service.create(data, actor);
52
+ event.response.status = 201;
53
+ return entity;
53
54
  }
54
- async check(data, req, res) {
55
- const id = useRequestParam(req, "id");
55
+ async check(data, event) {
56
+ const { id } = event.params;
56
57
  let criteria;
57
58
  if (isUUID(id)) criteria = { id };
58
59
  else {
59
- const realm = await this.realmRepository.resolve(useRequestParam(req, "realmId"));
60
+ const realm = await this.realmRepository.resolve(event.params.realmId);
60
61
  criteria = {
61
62
  name: id,
62
63
  ...realm ? { realm_id: realm.id } : {}
@@ -64,7 +65,7 @@ var PermissionController = class {
64
65
  }
65
66
  const entity = await this.repository.findOneBy(criteria);
66
67
  if (!entity) throw new NotFoundError();
67
- if (typeof data[BuiltInPolicyType.IDENTITY] === "undefined") data[BuiltInPolicyType.IDENTITY] = useRequestIdentity(req);
68
+ if (typeof data[BuiltInPolicyType.IDENTITY] === "undefined") data[BuiltInPolicyType.IDENTITY] = useRequestIdentity(event);
68
69
  const ctx = {
69
70
  name: entity.name,
70
71
  input: new PolicyData(data)
@@ -84,86 +85,73 @@ var PermissionController = class {
84
85
  data: e
85
86
  };
86
87
  }
87
- return sendAccepted(res, output);
88
+ event.response.status = 202;
89
+ return output;
88
90
  }
89
- async get(id, req, res) {
90
- const actor = buildActorContext(req);
91
- return send(res, await this.service.getOne(id, actor, useRequestParam(req, "realmId")));
91
+ async get(id, event) {
92
+ const actor = buildActorContext(event);
93
+ return await this.service.getOne(id, actor, event.params.realmId);
92
94
  }
93
- async edit(id, data, req, res) {
94
- const actor = buildActorContext(req);
95
- return sendAccepted(res, await this.service.update(id, data, actor));
95
+ async edit(id, data, event) {
96
+ const actor = buildActorContext(event);
97
+ const entity = await this.service.update(id, data, actor);
98
+ event.response.status = 202;
99
+ return entity;
96
100
  }
97
- async put(id, data, req, res) {
98
- const actor = buildActorContext(req);
101
+ async put(id, data, event) {
102
+ const actor = buildActorContext(event);
99
103
  const { entity, created } = await this.service.save(id || void 0, data, actor);
100
- if (created) return sendCreated(res, entity);
101
- return sendAccepted(res, entity);
104
+ event.response.status = created ? 201 : 202;
105
+ return entity;
102
106
  }
103
- async drop(id, req, res) {
104
- const actor = buildActorContext(req);
105
- return sendAccepted(res, await this.service.delete(id, actor));
107
+ async drop(id, event) {
108
+ const actor = buildActorContext(event);
109
+ const entity = await this.service.delete(id, actor);
110
+ event.response.status = 202;
111
+ return entity;
106
112
  }
107
113
  };
108
114
  _ts_decorate([
109
115
  DGet("", [ForceLoggedInMiddleware]),
110
- _ts_param(0, DRequest()),
111
- _ts_param(1, DResponse()),
116
+ _ts_param(0, DContext()),
112
117
  _ts_metadata("design:type", Function),
113
- _ts_metadata("design:paramtypes", [Object, Object]),
118
+ _ts_metadata("design:paramtypes", [typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
114
119
  _ts_metadata("design:returntype", Promise)
115
120
  ], PermissionController.prototype, "getMany", null);
116
121
  _ts_decorate([
117
122
  DPost("", [ForceLoggedInMiddleware]),
118
123
  _ts_param(0, DBody()),
119
- _ts_param(1, DRequest()),
120
- _ts_param(2, DResponse()),
124
+ _ts_param(1, DContext()),
121
125
  _ts_metadata("design:type", Function),
122
- _ts_metadata("design:paramtypes", [
123
- Object,
124
- Object,
125
- Object
126
- ]),
126
+ _ts_metadata("design:paramtypes", [typeof PermissionCreatePayload === "undefined" ? Object : PermissionCreatePayload, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
127
127
  _ts_metadata("design:returntype", Promise)
128
128
  ], PermissionController.prototype, "add", null);
129
129
  _ts_decorate([
130
130
  DPost("/:id/check", [ForceLoggedInMiddleware]),
131
131
  _ts_param(0, DBody()),
132
- _ts_param(1, DRequest()),
133
- _ts_param(2, DResponse()),
132
+ _ts_param(1, DContext()),
134
133
  _ts_metadata("design:type", Function),
135
- _ts_metadata("design:paramtypes", [
136
- Object,
137
- Object,
138
- Object
139
- ]),
134
+ _ts_metadata("design:paramtypes", [Object, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
140
135
  _ts_metadata("design:returntype", Promise)
141
136
  ], PermissionController.prototype, "check", null);
142
137
  _ts_decorate([
143
138
  DGet("/:id", [ForceLoggedInMiddleware]),
144
139
  _ts_param(0, DPath("id")),
145
- _ts_param(1, DRequest()),
146
- _ts_param(2, DResponse()),
140
+ _ts_param(1, DContext()),
147
141
  _ts_metadata("design:type", Function),
148
- _ts_metadata("design:paramtypes", [
149
- String,
150
- Object,
151
- Object
152
- ]),
142
+ _ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
153
143
  _ts_metadata("design:returntype", Promise)
154
144
  ], PermissionController.prototype, "get", null);
155
145
  _ts_decorate([
156
146
  DPost("/:id", [ForceLoggedInMiddleware]),
157
147
  _ts_param(0, DPath("id")),
158
148
  _ts_param(1, DBody()),
159
- _ts_param(2, DRequest()),
160
- _ts_param(3, DResponse()),
149
+ _ts_param(2, DContext()),
161
150
  _ts_metadata("design:type", Function),
162
151
  _ts_metadata("design:paramtypes", [
163
152
  String,
164
- Object,
165
- Object,
166
- Object
153
+ typeof PermissionUpdatePayload === "undefined" ? Object : PermissionUpdatePayload,
154
+ typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent
167
155
  ]),
168
156
  _ts_metadata("design:returntype", Promise)
169
157
  ], PermissionController.prototype, "edit", null);
@@ -171,28 +159,21 @@ _ts_decorate([
171
159
  DPut("/:id", [ForceLoggedInMiddleware]),
172
160
  _ts_param(0, DPath("id")),
173
161
  _ts_param(1, DBody()),
174
- _ts_param(2, DRequest()),
175
- _ts_param(3, DResponse()),
162
+ _ts_param(2, DContext()),
176
163
  _ts_metadata("design:type", Function),
177
164
  _ts_metadata("design:paramtypes", [
178
165
  String,
179
- Object,
180
- Object,
181
- Object
166
+ typeof PermissionSavePayload === "undefined" ? Object : PermissionSavePayload,
167
+ typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent
182
168
  ]),
183
169
  _ts_metadata("design:returntype", Promise)
184
170
  ], PermissionController.prototype, "put", null);
185
171
  _ts_decorate([
186
172
  DDelete("/:id", [ForceLoggedInMiddleware]),
187
173
  _ts_param(0, DPath("id")),
188
- _ts_param(1, DRequest()),
189
- _ts_param(2, DResponse()),
174
+ _ts_param(1, DContext()),
190
175
  _ts_metadata("design:type", Function),
191
- _ts_metadata("design:paramtypes", [
192
- String,
193
- Object,
194
- Object
195
- ]),
176
+ _ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
196
177
  _ts_metadata("design:returntype", Promise)
197
178
  ], PermissionController.prototype, "drop", null);
198
179
  PermissionController = _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["BuiltInPolicyType","PermissionEvaluator","PolicyData","DBody","DController","DDelete","DGet","DPath","DPost","DPut","DRequest","DResponse","DTags","isUUID","NotFoundError","send","sendAccepted","sendCreated","useRequestParam","useRequestQuery","PolicyEngine","ForceLoggedInMiddleware","buildActorContext","useRequestIdentity","PermissionController","service","repository","realmRepository","identityPermissionProvider","permissionProvider","ctx","getMany","req","res","actor","data","meta","add","entity","create","check","id","criteria","realm","resolve","name","realm_id","findOneBy","IDENTITY","input","permissionEvaluator","provider","policyEngine","output","has","ATTRIBUTES","evaluate","preEvaluate","status","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 { PermissionAPICheckResponse } from '@authup/core-http-kit';\nimport type { IPermissionProvider, PermissionEvaluationContext } from '@authup/access';\nimport {\n BuiltInPolicyType,\n PermissionEvaluator, \n PolicyData,\n} from '@authup/access';\nimport {\n DBody, \n DController, \n DDelete, \n DGet, \n DPath, \n DPost, \n DPut, \n DRequest, \n DResponse, \n DTags,\n} from '@routup/decorators';\nimport { isUUID } from '@authup/kit';\nimport { NotFoundError } from '@ebec/http';\nimport {\n send, \n sendAccepted, \n sendCreated, \n useRequestParam,\n} 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 @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const {\n data, \n meta, \n } = await this.service.getMany(useRequestQuery(req), actor);\n\n return send(res, {\n data,\n meta, \n });\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: any,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.create(data, actor);\n\n return sendCreated(res, entity);\n }\n\n @DPost('/:id/check', [ForceLoggedInMiddleware])\n async check(\n @DBody() data: any,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const id = useRequestParam(req, 'id');\n\n let criteria: Record<string, any>;\n if (isUUID(id)) {\n criteria = { id };\n } else {\n const realm = await this.realmRepository.resolve(useRequestParam(req, '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(req);\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 return sendAccepted(res, output);\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async get(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.getOne(\n id,\n actor,\n useRequestParam(req, 'realmId'),\n );\n\n return send(res, entity);\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: any,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n return sendAccepted(res, entity);\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: any,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const {\n entity, \n created, \n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n if (created) {\n return sendCreated(res, entity);\n }\n\n return sendAccepted(res, entity);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.delete(id, actor);\n\n return sendAccepted(res, entity);\n }\n}\n"],"mappings":"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"}
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,3 +1,6 @@
1
+ import type { IRoutupEvent } from 'routup';
2
+ import type { EntityCollectionResponse, PermissionPolicyCreatePayload } from '@authup/core-http-kit';
3
+ import type { PermissionPolicy } from '@authup/core-kit';
1
4
  import type { IPermissionPolicyService } from '../../../../../core/index.ts';
2
5
  export type PermissionPolicyControllerContext = {
3
6
  service: IPermissionPolicyService;
@@ -5,9 +8,9 @@ export type PermissionPolicyControllerContext = {
5
8
  export declare class PermissionPolicyController {
6
9
  protected service: IPermissionPolicyService;
7
10
  constructor(ctx: PermissionPolicyControllerContext);
8
- getMany(req: any, res: any): Promise<any>;
9
- add(data: any, req: any, res: any): Promise<any>;
10
- getOne(id: string, req: any, res: any): Promise<any>;
11
- drop(id: string, req: any, res: any): Promise<any>;
11
+ getMany(event: IRoutupEvent): Promise<EntityCollectionResponse<PermissionPolicy>>;
12
+ add(data: PermissionPolicyCreatePayload, event: IRoutupEvent): Promise<PermissionPolicy>;
13
+ getOne(id: string, event: IRoutupEvent): Promise<PermissionPolicy>;
14
+ drop(id: string, event: IRoutupEvent): Promise<PermissionPolicy>;
12
15
  }
13
16
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/permission-policy/module.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAI7E,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,wBAAwB,CAAC;CACrC,CAAC;AAEF,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC;gBAEhC,GAAG,EAAE,iCAAiC;IAK5C,OAAO,CACG,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAcT,GAAG,CACI,IAAI,EAAE,GAAG,EACN,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAST,MAAM,CACK,EAAE,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;IAQT,IAAI,CACO,EAAE,EAAE,MAAM,EACX,GAAG,EAAE,GAAG,EACP,GAAG,EAAE,GAAG,GACtB,OAAO,CAAC,GAAG,CAAC;CAMlB"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/permission-policy/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EACR,wBAAwB,EACxB,6BAA6B,EAChC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAI7E,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,wBAAwB,CAAC;CACrC,CAAC;AAEF,qBAEa,0BAA0B;IACnC,SAAS,CAAC,OAAO,EAAE,wBAAwB,CAAC;gBAEhC,GAAG,EAAE,iCAAiC;IAK5C,OAAO,CACG,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,gBAAgB,CAAC,CAAC;IAchD,GAAG,CACI,IAAI,EAAE,6BAA6B,EAChC,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,gBAAgB,CAAC;IAWtB,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,gBAAgB,CAAC;IAQtB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,gBAAgB,CAAC;CAQ/B"}
@@ -2,9 +2,8 @@ import { buildActorContext } from "../../../request/helpers/actor.mjs";
2
2
  import "../../../request/index.mjs";
3
3
  import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
4
4
  import "../../../middleware/index.mjs";
5
- import { send, sendAccepted, sendCreated } from "routup";
5
+ import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DTags } from "@routup/decorators";
6
6
  import { useRequestQuery } from "@routup/basic/query";
7
- import { DBody, DController, DDelete, DGet, DPath, DPost, DRequest, DResponse, DTags } from "@routup/decorators";
8
7
  //#region src/adapters/http/controllers/entities/permission-policy/module.ts
9
8
  function _ts_decorate(decorators, target, key, desc) {
10
9
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
@@ -25,72 +24,60 @@ var PermissionPolicyController = class {
25
24
  constructor(ctx) {
26
25
  this.service = ctx.service;
27
26
  }
28
- async getMany(req, res) {
29
- const actor = buildActorContext(req);
30
- const { data, meta } = await this.service.getMany(useRequestQuery(req), actor);
31
- return send(res, {
27
+ async getMany(event) {
28
+ const actor = buildActorContext(event);
29
+ const { data, meta } = await this.service.getMany(useRequestQuery(event), actor);
30
+ return {
32
31
  data,
33
32
  meta
34
- });
33
+ };
35
34
  }
36
- async add(data, req, res) {
37
- const actor = buildActorContext(req);
38
- return sendCreated(res, await this.service.create(data, actor));
35
+ async add(data, event) {
36
+ const actor = buildActorContext(event);
37
+ const entity = await this.service.create(data, actor);
38
+ event.response.status = 201;
39
+ return entity;
39
40
  }
40
- async getOne(id, req, res) {
41
- const actor = buildActorContext(req);
42
- return send(res, await this.service.getOne(id, actor));
41
+ async getOne(id, event) {
42
+ const actor = buildActorContext(event);
43
+ return await this.service.getOne(id, actor);
43
44
  }
44
- async drop(id, req, res) {
45
- const actor = buildActorContext(req);
46
- return sendAccepted(res, await this.service.delete(id, actor));
45
+ async drop(id, event) {
46
+ const actor = buildActorContext(event);
47
+ const entity = await this.service.delete(id, actor);
48
+ event.response.status = 202;
49
+ return entity;
47
50
  }
48
51
  };
49
52
  _ts_decorate([
50
53
  DGet("", [ForceLoggedInMiddleware]),
51
- _ts_param(0, DRequest()),
52
- _ts_param(1, DResponse()),
54
+ _ts_param(0, DContext()),
53
55
  _ts_metadata("design:type", Function),
54
- _ts_metadata("design:paramtypes", [Object, Object]),
56
+ _ts_metadata("design:paramtypes", [typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
55
57
  _ts_metadata("design:returntype", Promise)
56
58
  ], PermissionPolicyController.prototype, "getMany", null);
57
59
  _ts_decorate([
58
60
  DPost("", [ForceLoggedInMiddleware]),
59
61
  _ts_param(0, DBody()),
60
- _ts_param(1, DRequest()),
61
- _ts_param(2, DResponse()),
62
+ _ts_param(1, DContext()),
62
63
  _ts_metadata("design:type", Function),
63
- _ts_metadata("design:paramtypes", [
64
- Object,
65
- Object,
66
- Object
67
- ]),
64
+ _ts_metadata("design:paramtypes", [typeof PermissionPolicyCreatePayload === "undefined" ? Object : PermissionPolicyCreatePayload, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
68
65
  _ts_metadata("design:returntype", Promise)
69
66
  ], PermissionPolicyController.prototype, "add", null);
70
67
  _ts_decorate([
71
68
  DGet("/:id", [ForceLoggedInMiddleware]),
72
69
  _ts_param(0, DPath("id")),
73
- _ts_param(1, DRequest()),
74
- _ts_param(2, DResponse()),
70
+ _ts_param(1, DContext()),
75
71
  _ts_metadata("design:type", Function),
76
- _ts_metadata("design:paramtypes", [
77
- String,
78
- Object,
79
- Object
80
- ]),
72
+ _ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
81
73
  _ts_metadata("design:returntype", Promise)
82
74
  ], PermissionPolicyController.prototype, "getOne", null);
83
75
  _ts_decorate([
84
76
  DDelete("/:id", [ForceLoggedInMiddleware]),
85
77
  _ts_param(0, DPath("id")),
86
- _ts_param(1, DRequest()),
87
- _ts_param(2, DResponse()),
78
+ _ts_param(1, DContext()),
88
79
  _ts_metadata("design:type", Function),
89
- _ts_metadata("design:paramtypes", [
90
- String,
91
- Object,
92
- Object
93
- ]),
80
+ _ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
94
81
  _ts_metadata("design:returntype", Promise)
95
82
  ], PermissionPolicyController.prototype, "drop", null);
96
83
  PermissionPolicyController = _ts_decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"module.mjs","names":["DBody","DController","DDelete","DGet","DPath","DPost","DRequest","DResponse","DTags","send","sendAccepted","sendCreated","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","PermissionPolicyController","service","ctx","getMany","req","res","actor","data","meta","add","entity","create","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/permission-policy/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody, \n DController, \n DDelete, \n DGet, \n DPath, \n DPost, \n DRequest, \n DResponse, \n DTags,\n} from '@routup/decorators';\nimport { send, sendAccepted, sendCreated } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type { IPermissionPolicyService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type PermissionPolicyControllerContext = {\n service: IPermissionPolicyService,\n};\n\n@DTags('permission')\n@DController('/permission-policies')\nexport class PermissionPolicyController {\n protected service: IPermissionPolicyService;\n\n constructor(ctx: PermissionPolicyControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const {\n data, \n meta, \n } = await this.service.getMany(useRequestQuery(req), actor);\n\n return send(res, {\n data,\n meta, \n });\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: any,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n\n const entity = await this.service.create(data, actor);\n\n return sendCreated(res, entity);\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.getOne(id, actor);\n\n return send(res, entity);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DRequest() req: any,\n @DResponse() res: any,\n ): Promise<any> {\n const actor = buildActorContext(req);\n const entity = await this.service.delete(id, actor);\n\n return sendAccepted(res, entity);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA8BA,IAAae,6BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAwC;AAChD,OAAKD,UAAUC,IAAID;;CAGvB,MACME,QACF,KACA,KACY;EACZ,MAAMG,QAAQP,kBAAkBK,IAAAA;EAChC,MAAM,EACFG,MACAC,SACA,MAAM,KAAKP,QAAQE,QAAQN,gBAAgBO,IAAAA,EAAME,MAAAA;AAErD,SAAOZ,KAAKW,KAAK;GACbE;GACAC;GACJ,CAAA;;CAGJ,MACMC,IACF,MACA,KACA,KACY;EACZ,MAAMH,QAAQP,kBAAkBK,IAAAA;AAIhC,SAAOR,YAAYS,KAAKK,MAFH,KAAKT,QAAQU,OAAOJ,MAAMD,MAAAA,CAEvBI;;CAG5B,MACME,OACF,IACA,KACA,KACY;EACZ,MAAMN,QAAQP,kBAAkBK,IAAAA;AAGhC,SAAOV,KAAKW,KAAKK,MAFI,KAAKT,QAAQW,OAAOC,IAAIP,MAAAA,CAE5BI;;CAGrB,MACMI,KACF,IACA,KACA,KACY;EACZ,MAAMR,QAAQP,kBAAkBK,IAAAA;AAGhC,SAAOT,aAAaU,KAAKK,MAFJ,KAAKT,QAAQc,OAAOF,IAAIP,MAAAA,CAEpBI;;;;WAnDlBZ,wBAAAA,CAAAA;;;;;;;;YAiBCA,wBAAAA,CAAAA;;;;;;;;;;;;;eAaGA,wBAAAA,CAAAA;;;;;;;;;;;;;kBAYGA,wBAAAA,CAAAA"}
1
+ {"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","buildActorContext","PermissionPolicyController","service","ctx","getMany","event","actor","data","meta","add","entity","create","response","status","getOne","id","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/permission-policy/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\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 PermissionPolicyCreatePayload,\n} from '@authup/core-http-kit';\nimport type { PermissionPolicy } from '@authup/core-kit';\nimport type { IPermissionPolicyService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\n\nexport type PermissionPolicyControllerContext = {\n service: IPermissionPolicyService,\n};\n\n@DTags('permission')\n@DController('/permission-policies')\nexport class PermissionPolicyController {\n protected service: IPermissionPolicyService;\n\n constructor(ctx: PermissionPolicyControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<PermissionPolicy>> {\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: PermissionPolicyCreatePayload,\n @DContext() event: IRoutupEvent,\n ): Promise<PermissionPolicy> {\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', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<PermissionPolicy> {\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<PermissionPolicy> {\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,6BAAb,MAAaA;CACCC;CAEV,YAAYC,KAAwC;AAChD,OAAKD,UAAUC,IAAID;;CAGvB,MACME,QACF,OACmD;EACnD,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,OACyB;EACzB,MAAMH,QAAQN,kBAAkBK,MAAAA;EAEhC,MAAMK,SAAS,MAAM,KAAKR,QAAQS,OAAOJ,MAAMD,MAAAA;AAE/CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;CAGX,MACMI,OACF,IACA,OACyB;EACzB,MAAMR,QAAQN,kBAAkBK,MAAAA;AAGhC,SAAOK,MAFc,KAAKR,QAAQY,OAAOC,IAAIT,MAAAA;;CAKjD,MACMU,KACF,IACA,OACyB;EACzB,MAAMV,QAAQN,kBAAkBK,MAAAA;EAChC,MAAMK,SAAS,MAAM,KAAKR,QAAQe,OAAOF,IAAIT,MAAAA;AAE7CD,QAAMO,SAASC,SAAS;AAExB,SAAOH;;;;WAnDAX,wBAAAA,CAAAA;;;;;;;YAgBCA,wBAAAA,CAAAA;;;;;;;;eAcGA,wBAAAA,CAAAA;;;;;;;;kBAWGA,wBAAAA,CAAAA"}