@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.
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +5 -8
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +8 -10
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +3 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +13 -12
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +6 -6
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs +4 -4
- package/dist/adapters/http/adapters/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +6 -6
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +8 -7
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs +5 -5
- package/dist/adapters/http/adapters/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +11 -10
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts +2 -2
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +16 -13
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.d.ts +9 -6
- package/dist/adapters/http/controllers/entities/client/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client/module.mjs +46 -61
- package/dist/adapters/http/controllers/entities/client/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/client-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.d.ts +7 -4
- package/dist/adapters/http/controllers/entities/client-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.mjs +27 -40
- package/dist/adapters/http/controllers/entities/client-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.d.ts +7 -4
- package/dist/adapters/http/controllers/entities/client-scope/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs +27 -40
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts +8 -6
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +10 -9
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +76 -100
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.d.ts +10 -7
- package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.mjs +50 -69
- package/dist/adapters/http/controllers/entities/permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts +7 -4
- package/dist/adapters/http/controllers/entities/permission-policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +27 -40
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.d.ts +11 -9
- package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.mjs +54 -72
- package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts +13 -8
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +55 -74
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot/module.d.ts +9 -6
- package/dist/adapters/http/controllers/entities/robot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/robot/module.mjs +46 -63
- package/dist/adapters/http/controllers/entities/robot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/robot-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/robot-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-role/module.d.ts +7 -4
- package/dist/adapters/http/controllers/entities/robot-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/robot-role/module.mjs +27 -40
- package/dist/adapters/http/controllers/entities/robot-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role/module.d.ts +9 -6
- package/dist/adapters/http/controllers/entities/role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role/module.mjs +42 -57
- package/dist/adapters/http/controllers/entities/role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/role-attribute/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/role-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.d.ts +9 -6
- package/dist/adapters/http/controllers/entities/scope/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.mjs +42 -57
- package/dist/adapters/http/controllers/entities/scope/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.d.ts +9 -6
- package/dist/adapters/http/controllers/entities/user/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user/module.mjs +42 -57
- package/dist/adapters/http/controllers/entities/user/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/user-attribute/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.d.ts +8 -5
- package/dist/adapters/http/controllers/entities/user-permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs +35 -48
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.d.ts +7 -4
- package/dist/adapters/http/controllers/entities/user-role/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.mjs +27 -40
- package/dist/adapters/http/controllers/entities/user-role/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts +3 -2
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.mjs +6 -11
- package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +7 -5
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +19 -20
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts +5 -3
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +12 -14
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.d.ts +6 -3
- package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs +17 -26
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/openid/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/openid/module.mjs +10 -7
- package/dist/adapters/http/controllers/workflows/openid/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +3 -3
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -11
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +3 -3
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -11
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.d.ts +3 -3
- package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -11
- package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +5 -5
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +20 -21
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts +2 -2
- package/dist/adapters/http/controllers/workflows/token/utils/extract.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs +8 -7
- package/dist/adapters/http/controllers/workflows/token/utils/extract.mjs.map +1 -1
- package/dist/adapters/http/index.d.ts +0 -2
- package/dist/adapters/http/index.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +4 -7
- package/dist/adapters/http/middleware/built-in/assets.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs +9 -9
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/factory.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/factory.mjs +5 -2
- package/dist/adapters/http/middleware/built-in/authorization/factory.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +4 -10
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +24 -39
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.d.ts +1 -1
- package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.mjs +18 -10
- package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs +7 -18
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/loggedin/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/loggedin/module.mjs +3 -3
- package/dist/adapters/http/middleware/built-in/loggedin/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/loggedin/user.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/loggedin/user.mjs +3 -3
- package/dist/adapters/http/middleware/built-in/loggedin/user.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs +21 -29
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +2 -3
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/swagger.d.ts +3 -4
- package/dist/adapters/http/middleware/built-in/swagger.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/swagger.mjs +4 -16
- package/dist/adapters/http/middleware/built-in/swagger.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +2 -2
- package/dist/adapters/http/request/helpers/actor.d.ts +2 -2
- package/dist/adapters/http/request/helpers/actor.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/actor.mjs +3 -3
- package/dist/adapters/http/request/helpers/actor.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/body-realm-id.d.ts +1 -2
- package/dist/adapters/http/request/helpers/body-realm-id.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/body-realm-id.mjs +3 -4
- package/dist/adapters/http/request/helpers/body-realm-id.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/identity.d.ts +4 -4
- package/dist/adapters/http/request/helpers/identity.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/identity.mjs +6 -7
- package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +3 -2
- package/dist/adapters/http/request/helpers/locations.d.ts +4 -0
- package/dist/adapters/http/request/helpers/locations.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/locations.mjs +28 -0
- package/dist/adapters/http/request/helpers/locations.mjs.map +1 -0
- package/dist/adapters/http/request/helpers/param-id.d.ts +5 -5
- package/dist/adapters/http/request/helpers/param-id.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/param-id.mjs +8 -9
- package/dist/adapters/http/request/helpers/param-id.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/scopes.d.ts +3 -3
- package/dist/adapters/http/request/helpers/scopes.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/scopes.mjs +4 -5
- package/dist/adapters/http/request/helpers/scopes.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/token.d.ts +3 -3
- package/dist/adapters/http/request/helpers/token.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/token.mjs +4 -5
- package/dist/adapters/http/request/helpers/token.mjs.map +1 -1
- package/dist/adapters/http/request/index.mjs +3 -2
- package/dist/adapters/http/request/permission/helper.d.ts +3 -3
- package/dist/adapters/http/request/permission/helper.d.ts.map +1 -1
- package/dist/adapters/http/request/permission/helper.mjs +4 -5
- package/dist/adapters/http/request/permission/helper.mjs.map +1 -1
- package/dist/adapters/http/request/permission/module.d.ts +3 -3
- package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/request/permission/module.mjs +5 -5
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/app/builder.d.ts +1 -2
- package/dist/app/builder.d.ts.map +1 -1
- package/dist/app/builder.mjs +0 -5
- package/dist/app/builder.mjs.map +1 -1
- package/dist/app/factory.d.ts.map +1 -1
- package/dist/app/factory.mjs +1 -1
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/index.mjs +1 -2
- package/dist/app/modules/config/types.d.ts +2 -2
- package/dist/app/modules/config/types.d.ts.map +1 -1
- package/dist/app/modules/constants.d.ts +0 -1
- package/dist/app/modules/constants.d.ts.map +1 -1
- package/dist/app/modules/constants.mjs +0 -1
- package/dist/app/modules/constants.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +3 -2
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts +2 -2
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +10 -17
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +32 -51
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +3 -6
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/index.d.ts +0 -1
- package/dist/app/modules/index.d.ts.map +1 -1
- package/dist/app/modules/index.mjs +1 -3
- package/dist/app/modules/runtime/module.d.ts.map +1 -1
- package/dist/app/modules/runtime/module.mjs +3 -1
- package/dist/app/modules/runtime/module.mjs.map +1 -1
- package/dist/cli/commands/healthcheck.mjs +1 -1
- package/dist/cli/commands/index.d.ts +0 -1
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.mjs +1 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.mjs +22 -1
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/module.d.ts.map +1 -1
- package/dist/cli/module.mjs +1 -3
- package/dist/cli/module.mjs.map +1 -1
- package/dist/core/oauth2/helpers/erorr.d.ts +1 -2
- package/dist/core/oauth2/helpers/erorr.d.ts.map +1 -1
- package/dist/core/oauth2/helpers/erorr.mjs +11 -10
- package/dist/core/oauth2/helpers/erorr.mjs.map +1 -1
- package/dist/index.mjs +4 -7
- package/dist/swagger.json +7139 -2355
- package/dist/ui/client/.vite/ssr-manifest.json +15 -90
- package/dist/ui/client/assets/index-DJBdH-x_.js +64 -0
- package/dist/ui/client/index.html +1 -1
- package/dist/ui/server/server.js +1120 -23992
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +7 -8
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.mjs +2 -1
- package/dist/utils/url.d.ts +10 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.mjs +17 -0
- package/dist/utils/url.mjs.map +1 -0
- package/package.json +28 -28
- package/dist/adapters/http/server/index.d.ts +0 -3
- package/dist/adapters/http/server/index.d.ts.map +0 -1
- package/dist/adapters/http/server/index.mjs +0 -2
- package/dist/adapters/http/server/module.d.ts +0 -3
- package/dist/adapters/http/server/module.d.ts.map +0 -1
- package/dist/adapters/http/server/module.mjs +0 -10
- package/dist/adapters/http/server/module.mjs.map +0 -1
- package/dist/adapters/http/server/type.d.ts +0 -8
- package/dist/adapters/http/server/type.d.ts.map +0 -1
- package/dist/adapters/http/server/type.mjs +0 -1
- package/dist/adapters/http/swagger/index.d.ts +0 -3
- package/dist/adapters/http/swagger/index.d.ts.map +0 -1
- package/dist/adapters/http/swagger/index.mjs +0 -2
- package/dist/adapters/http/swagger/module.d.ts +0 -12
- package/dist/adapters/http/swagger/module.d.ts.map +0 -1
- package/dist/adapters/http/swagger/module.mjs +0 -75
- package/dist/adapters/http/swagger/module.mjs.map +0 -1
- package/dist/adapters/http/swagger/type.d.ts +0 -4
- package/dist/adapters/http/swagger/type.d.ts.map +0 -1
- package/dist/adapters/http/swagger/type.mjs +0 -1
- package/dist/app/modules/swagger/index.d.ts +0 -2
- package/dist/app/modules/swagger/index.d.ts.map +0 -1
- package/dist/app/modules/swagger/index.mjs +0 -2
- package/dist/app/modules/swagger/module.d.ts +0 -9
- package/dist/app/modules/swagger/module.d.ts.map +0 -1
- package/dist/app/modules/swagger/module.mjs +0 -32
- package/dist/app/modules/swagger/module.mjs.map +0 -1
- package/dist/cli/commands/swagger.d.ts +0 -8
- package/dist/cli/commands/swagger.d.ts.map +0 -1
- package/dist/cli/commands/swagger.mjs +0 -29
- package/dist/cli/commands/swagger.mjs.map +0 -1
- 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(
|
|
18
|
-
add(data:
|
|
19
|
-
check(data: any,
|
|
20
|
-
get(id: string,
|
|
21
|
-
edit(id: string, data:
|
|
22
|
-
put(id: string, data:
|
|
23
|
-
drop(id: string,
|
|
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":"
|
|
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 {
|
|
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(
|
|
43
|
-
const actor = buildActorContext(
|
|
44
|
-
const { data, meta } = await this.service.getMany(useRequestQuery(
|
|
45
|
-
return
|
|
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,
|
|
51
|
-
const actor = buildActorContext(
|
|
52
|
-
|
|
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,
|
|
55
|
-
const 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(
|
|
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(
|
|
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
|
-
|
|
88
|
+
event.response.status = 202;
|
|
89
|
+
return output;
|
|
88
90
|
}
|
|
89
|
-
async get(id,
|
|
90
|
-
const actor = buildActorContext(
|
|
91
|
-
return
|
|
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,
|
|
94
|
-
const actor = buildActorContext(
|
|
95
|
-
|
|
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,
|
|
98
|
-
const actor = buildActorContext(
|
|
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
|
-
|
|
101
|
-
return
|
|
104
|
+
event.response.status = created ? 201 : 202;
|
|
105
|
+
return entity;
|
|
102
106
|
}
|
|
103
|
-
async drop(id,
|
|
104
|
-
const actor = buildActorContext(
|
|
105
|
-
|
|
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,
|
|
111
|
-
_ts_param(1, DResponse()),
|
|
116
|
+
_ts_param(0, DContext()),
|
|
112
117
|
_ts_metadata("design:type", Function),
|
|
113
|
-
_ts_metadata("design:paramtypes", [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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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","
|
|
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(
|
|
9
|
-
add(data:
|
|
10
|
-
getOne(id: string,
|
|
11
|
-
drop(id: string,
|
|
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":"
|
|
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 {
|
|
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(
|
|
29
|
-
const actor = buildActorContext(
|
|
30
|
-
const { data, meta } = await this.service.getMany(useRequestQuery(
|
|
31
|
-
return
|
|
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,
|
|
37
|
-
const actor = buildActorContext(
|
|
38
|
-
|
|
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,
|
|
41
|
-
const actor = buildActorContext(
|
|
42
|
-
return
|
|
41
|
+
async getOne(id, event) {
|
|
42
|
+
const actor = buildActorContext(event);
|
|
43
|
+
return await this.service.getOne(id, actor);
|
|
43
44
|
}
|
|
44
|
-
async drop(id,
|
|
45
|
-
const actor = buildActorContext(
|
|
46
|
-
|
|
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,
|
|
52
|
-
_ts_param(1, DResponse()),
|
|
54
|
+
_ts_param(0, DContext()),
|
|
53
55
|
_ts_metadata("design:type", Function),
|
|
54
|
-
_ts_metadata("design:paramtypes", [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,
|
|
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,
|
|
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,
|
|
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","
|
|
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"}
|