@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,9 +1,12 @@
|
|
|
1
1
|
import { AuthorizationMiddleware } from "./module.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { defineCoreHandler } from "routup";
|
|
3
3
|
//#region src/adapters/http/middleware/built-in/authorization/factory.ts
|
|
4
4
|
function createAuthorizationMiddleware(ctx) {
|
|
5
5
|
const middleware = new AuthorizationMiddleware(ctx);
|
|
6
|
-
return
|
|
6
|
+
return defineCoreHandler(async (event) => {
|
|
7
|
+
await middleware.run(event);
|
|
8
|
+
return event.next();
|
|
9
|
+
});
|
|
7
10
|
}
|
|
8
11
|
//#endregion
|
|
9
12
|
export { createAuthorizationMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.mjs","names":["
|
|
1
|
+
{"version":3,"file":"factory.mjs","names":["defineCoreHandler","AuthorizationMiddleware","createAuthorizationMiddleware","ctx","middleware","event","run","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/factory.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-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 { defineCoreHandler } from 'routup';\nimport type { Handler } from 'routup';\nimport { AuthorizationMiddleware } from './module.ts';\nimport type { HTTPAuthorizationMiddlewareContext } from './types.ts';\n\nexport function createAuthorizationMiddleware(ctx: HTTPAuthorizationMiddlewareContext) : Handler {\n const middleware = new AuthorizationMiddleware(ctx);\n\n return defineCoreHandler(async (event) => {\n await middleware.run(event);\n return event.next();\n });\n}\n"],"mappings":";;;AAYA,SAAgBE,8BAA8BC,KAAuC;CACjF,MAAMC,aAAa,IAAIH,wBAAwBE,IAAAA;AAE/C,QAAOH,kBAAkB,OAAOK,UAAAA;AAC5B,QAAMD,WAAWE,IAAID,MAAAA;AACrB,SAAOA,MAAME,MAAI;GACrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { IPermissionEvaluator } from '@authup/access';
|
|
2
2
|
import type { Client, Robot, User } from '@authup/core-kit';
|
|
3
|
-
import type {
|
|
3
|
+
import type { IRoutupEvent } from 'routup';
|
|
4
4
|
import { type BasicAuthorizationHeader, type BearerAuthorizationHeader } from 'hapic';
|
|
5
5
|
import type { ICredentialsAuthenticator, IIdentityResolver, IOAuth2TokenVerifier, ISessionManager } from '../../../../../core/index.ts';
|
|
6
6
|
import type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';
|
|
@@ -14,17 +14,11 @@ export declare class AuthorizationMiddleware {
|
|
|
14
14
|
protected robotAuthenticator: ICredentialsAuthenticator<Robot>;
|
|
15
15
|
protected userAuthenticator: ICredentialsAuthenticator<User>;
|
|
16
16
|
constructor(ctx: HTTPAuthorizationMiddlewareContext);
|
|
17
|
-
run(
|
|
17
|
+
run(event: IRoutupEvent): Promise<void>;
|
|
18
18
|
/**
|
|
19
|
-
*
|
|
20
19
|
* @throws JWTError
|
|
21
|
-
*
|
|
22
|
-
* @param request
|
|
23
|
-
* @param header
|
|
24
|
-
*
|
|
25
|
-
* @protected
|
|
26
20
|
*/
|
|
27
|
-
protected verifyBearerAuthorizationHeader(
|
|
28
|
-
protected verifyBasicAuthorizationHeader(
|
|
21
|
+
protected verifyBearerAuthorizationHeader(event: IRoutupEvent, header: BearerAuthorizationHeader): Promise<void>;
|
|
22
|
+
protected verifyBasicAuthorizationHeader(event: IRoutupEvent, header: BasicAuthorizationHeader): Promise<void>;
|
|
29
23
|
}
|
|
30
24
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAEH,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAEjC,MAAM,OAAO,CAAC;AAOf,OAAO,KAAK,EACR,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EAClB,MAAM,8BAA8B,CAAC;AAQtC,OAAO,KAAK,EAAE,kCAAkC,EAAE,kCAAkC,EAAE,MAAM,YAAY,CAAC;AAEzG,qBAAa,uBAAuB;IAChC,SAAS,CAAC,OAAO,EAAE,kCAAkC,CAAC;IAItD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAEpD,SAAS,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;IAIpD,SAAS,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;IAE9C,SAAS,CAAC,cAAc,EAAG,eAAe,CAAC;IAI3C,SAAS,CAAC,mBAAmB,EAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAElE,SAAS,CAAC,kBAAkB,EAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAEhE,SAAS,CAAC,iBAAiB,EAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;gBAIlD,GAAG,EAAE,kCAAkC;IAsB7C,GAAG,CAAC,KAAK,EAAE,YAAY;IA2B7B;;OAEG;cACa,+BAA+B,CAC3C,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,yBAAyB;cAwDrB,8BAA8B,CAC1C,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,wBAAwB;CA+CvC"}
|
|
@@ -39,44 +39,29 @@ var AuthorizationMiddleware = class {
|
|
|
39
39
|
clientId: null
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
|
-
async run(
|
|
43
|
-
setRequestPermissionEvaluator(
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (header.type === AuthorizationHeaderType.BASIC) {
|
|
57
|
-
await this.verifyBasicAuthorizationHeader(request, header);
|
|
58
|
-
next();
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
next(HTTPError.unsupportedHeaderType(header.type));
|
|
62
|
-
} catch (e) {
|
|
63
|
-
next(e);
|
|
42
|
+
async run(event) {
|
|
43
|
+
setRequestPermissionEvaluator(event, new RequestPermissionEvaluator(event, this.permissionEvaluator));
|
|
44
|
+
const headerValue = event.headers.get("authorization");
|
|
45
|
+
if (!headerValue) return;
|
|
46
|
+
const header = parseAuthorizationHeader(headerValue);
|
|
47
|
+
if (header.type === AuthorizationHeaderType.BEARER) {
|
|
48
|
+
await this.verifyBearerAuthorizationHeader(event, header);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (header.type === AuthorizationHeaderType.BASIC) {
|
|
52
|
+
await this.verifyBasicAuthorizationHeader(event, header);
|
|
53
|
+
return;
|
|
64
54
|
}
|
|
55
|
+
throw HTTPError.unsupportedHeaderType(header.type);
|
|
65
56
|
}
|
|
66
57
|
/**
|
|
67
|
-
*
|
|
68
58
|
* @throws JWTError
|
|
69
|
-
|
|
70
|
-
* @param request
|
|
71
|
-
* @param header
|
|
72
|
-
*
|
|
73
|
-
* @protected
|
|
74
|
-
*/ async verifyBearerAuthorizationHeader(request, header) {
|
|
59
|
+
*/ async verifyBearerAuthorizationHeader(event, header) {
|
|
75
60
|
const payload = await this.oauth2TokenVerifier.verify(header.token);
|
|
76
61
|
if (payload.kind !== OAuth2TokenKind.ACCESS) throw JWTError.payloadPropertyInvalid("kind");
|
|
77
62
|
if (!payload.realm_id) throw JWTError.payloadPropertyInvalid("realm_id");
|
|
78
|
-
setRequestToken(
|
|
79
|
-
if (payload.scope) setRequestScopes(
|
|
63
|
+
setRequestToken(event, header.token);
|
|
64
|
+
if (payload.scope) setRequestScopes(event, deserializeOAuth2Scope(payload.scope));
|
|
80
65
|
if (!payload.session_id) throw JWTError.payloadPropertyInvalid("session_id");
|
|
81
66
|
const session = await this.sessionManager.findOneById(payload.session_id);
|
|
82
67
|
if (!session) throw JWTError.expired();
|
|
@@ -89,14 +74,14 @@ var AuthorizationMiddleware = class {
|
|
|
89
74
|
if (!payload.sub_kind) throw JWTError.payloadPropertyInvalid("sub_kind");
|
|
90
75
|
if (!payload.sub) throw JWTError.payloadPropertyInvalid("sub");
|
|
91
76
|
const identity = await this.identityResolver.resolve(payload.sub_kind, payload.sub);
|
|
92
|
-
if (identity) setRequestIdentity(
|
|
77
|
+
if (identity) setRequestIdentity(event, identity);
|
|
93
78
|
}
|
|
94
|
-
async verifyBasicAuthorizationHeader(
|
|
79
|
+
async verifyBasicAuthorizationHeader(event, header) {
|
|
95
80
|
if (this.options.clientAuthBasic) {
|
|
96
81
|
const authenticator = await this.clientAuthenticator.safeAuthenticate(header.username, header.password);
|
|
97
82
|
if (authenticator.success) {
|
|
98
|
-
setRequestScopes(
|
|
99
|
-
setRequestIdentity(
|
|
83
|
+
setRequestScopes(event, [ScopeName.GLOBAL]);
|
|
84
|
+
setRequestIdentity(event, {
|
|
100
85
|
type: IdentityType.CLIENT,
|
|
101
86
|
data: authenticator.data
|
|
102
87
|
});
|
|
@@ -105,8 +90,8 @@ var AuthorizationMiddleware = class {
|
|
|
105
90
|
if (this.options.userAuthBasic) {
|
|
106
91
|
const authenticated = await this.userAuthenticator.safeAuthenticate(header.username, header.password);
|
|
107
92
|
if (authenticated.success) {
|
|
108
|
-
setRequestScopes(
|
|
109
|
-
setRequestIdentity(
|
|
93
|
+
setRequestScopes(event, [ScopeName.GLOBAL]);
|
|
94
|
+
setRequestIdentity(event, {
|
|
110
95
|
type: IdentityType.USER,
|
|
111
96
|
data: authenticated.data
|
|
112
97
|
});
|
|
@@ -116,8 +101,8 @@ var AuthorizationMiddleware = class {
|
|
|
116
101
|
if (this.options.robotAuthBasic) {
|
|
117
102
|
const authenticated = await this.robotAuthenticator.safeAuthenticate(header.username, header.password);
|
|
118
103
|
if (authenticated.success) {
|
|
119
|
-
setRequestScopes(
|
|
120
|
-
setRequestIdentity(
|
|
104
|
+
setRequestScopes(event, [ScopeName.GLOBAL]);
|
|
105
|
+
setRequestIdentity(event, {
|
|
121
106
|
type: IdentityType.ROBOT,
|
|
122
107
|
data: authenticated.data
|
|
123
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","HTTPError","JWTError","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","RequestPermissionEvaluator","setRequestIdentity","setRequestPermissionEvaluator","setRequestScopes","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","robotAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","request","response","next","requestAccessContext","authorization","headerValue","headers","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedHeaderType","e","payload","verify","token","kind","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated","USER","robotAuthBasic","ROBOT"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, Robot, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { HTTPError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { Next, Request, Response } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n RobotAuthenticator,\n UserAuthenticator, \n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator, \n IIdentityResolver,\n IOAuth2TokenVerifier, \n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestPermissionEvaluator,\n setRequestIdentity,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected robotAuthenticator : ICredentialsAuthenticator<Robot>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(request: Request, response: Response, next: Next) {\n const requestAccessContext = new RequestPermissionEvaluator(\n request,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(request, requestAccessContext);\n\n const { authorization: headerValue } = request.headers;\n\n try {\n if (typeof headerValue !== 'string') {\n next();\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(request, header);\n next();\n return;\n } if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(request, header);\n next();\n return;\n }\n\n next(HTTPError.unsupportedHeaderType(header.type));\n } catch (e) {\n next(e as Error);\n }\n }\n\n /**\n *\n * @throws JWTError\n *\n * @param request\n * @param header\n *\n * @protected\n */\n protected async verifyBearerAuthorizationHeader(\n request: Request,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(request, header.token);\n\n if (payload.scope) {\n setRequestScopes(request, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(request, identity);\n }\n }\n\n protected async verifyBasicAuthorizationHeader(\n request: Request,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n\n return;\n }\n }\n\n if (this.options.robotAuthBasic) {\n const authenticated = await this.robotAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticated.success) {\n setRequestScopes(request, [ScopeName.GLOBAL]);\n setRequestIdentity(request, {\n type: IdentityType.ROBOT,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["PermissionEvaluator","IdentityType","ScopeName","HTTPError","JWTError","OAuth2TokenKind","deserializeOAuth2Scope","AuthorizationHeaderType","parseAuthorizationHeader","ClientAuthenticator","PolicyEngine","RobotAuthenticator","UserAuthenticator","RequestPermissionEvaluator","setRequestIdentity","setRequestPermissionEvaluator","setRequestScopes","setRequestToken","AuthorizationMiddleware","options","oauth2TokenVerifier","permissionEvaluator","identityResolver","sessionManager","clientAuthenticator","robotAuthenticator","userAuthenticator","ctx","provider","permissionProvider","policyEngine","identityPermissionProvider","realmId","clientId","run","event","requestAccessContext","headerValue","headers","get","header","type","BEARER","verifyBearerAuthorizationHeader","BASIC","verifyBasicAuthorizationHeader","unsupportedHeaderType","payload","verify","token","kind","ACCESS","payloadPropertyInvalid","realm_id","scope","session_id","session","findOneById","expired","ping","sub_kind","sub","identity","resolve","clientAuthBasic","authenticator","safeAuthenticate","username","password","success","GLOBAL","CLIENT","data","userAuthBasic","authenticated","USER","robotAuthBasic","ROBOT"],"sources":["../../../../../../src/adapters/http/middleware/built-in/authorization/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IPermissionEvaluator } from '@authup/access';\nimport { PermissionEvaluator } from '@authup/access';\nimport type { Client, Robot, User } from '@authup/core-kit';\nimport {\n IdentityType,\n ScopeName,\n} from '@authup/core-kit';\nimport { HTTPError } from '@authup/errors';\nimport { JWTError, OAuth2TokenKind, deserializeOAuth2Scope } from '@authup/specs';\nimport type { IRoutupEvent } from 'routup';\nimport {\n AuthorizationHeaderType,\n type BasicAuthorizationHeader,\n type BearerAuthorizationHeader,\n parseAuthorizationHeader,\n} from 'hapic';\nimport {\n ClientAuthenticator,\n PolicyEngine,\n RobotAuthenticator,\n UserAuthenticator, \n} from '../../../../../core/index.ts';\nimport type {\n ICredentialsAuthenticator, \n IIdentityResolver,\n IOAuth2TokenVerifier, \n ISessionManager,\n} from '../../../../../core/index.ts';\nimport {\n RequestPermissionEvaluator,\n setRequestIdentity,\n setRequestPermissionEvaluator,\n setRequestScopes,\n setRequestToken,\n} from '../../../request/index.ts';\nimport type { HTTPAuthorizationMiddlewareContext, HTTPAuthorizationMiddlewareOptions } from './types.ts';\n\nexport class AuthorizationMiddleware {\n protected options: HTTPAuthorizationMiddlewareOptions;\n\n // --------------------------------------\n\n protected oauth2TokenVerifier: IOAuth2TokenVerifier;\n\n protected permissionEvaluator: IPermissionEvaluator;\n\n // --------------------------------------\n\n protected identityResolver: IIdentityResolver;\n\n protected sessionManager : ISessionManager;\n\n // --------------------------------------\n\n protected clientAuthenticator : ICredentialsAuthenticator<Client>;\n\n protected robotAuthenticator : ICredentialsAuthenticator<Robot>;\n\n protected userAuthenticator : ICredentialsAuthenticator<User>;\n\n // --------------------------------------\n\n constructor(ctx: HTTPAuthorizationMiddlewareContext) {\n this.options = ctx.options || {};\n\n this.identityResolver = ctx.identityResolver;\n this.sessionManager = ctx.sessionManager;\n\n this.clientAuthenticator = new ClientAuthenticator(ctx.identityResolver);\n this.robotAuthenticator = new RobotAuthenticator(ctx.identityResolver);\n this.userAuthenticator = new UserAuthenticator(ctx.identityResolver);\n\n this.oauth2TokenVerifier = ctx.oauth2TokenVerifier;\n\n this.permissionEvaluator = new PermissionEvaluator({\n provider: ctx.permissionProvider,\n policyEngine: new PolicyEngine(ctx.identityPermissionProvider),\n realmId: null,\n clientId: null,\n });\n }\n\n // --------------------------------------\n\n async run(event: IRoutupEvent) {\n const requestAccessContext = new RequestPermissionEvaluator(\n event,\n this.permissionEvaluator,\n );\n setRequestPermissionEvaluator(event, requestAccessContext);\n\n const headerValue = event.headers.get('authorization');\n if (!headerValue) {\n return;\n }\n\n const header = parseAuthorizationHeader(headerValue);\n\n if (header.type === AuthorizationHeaderType.BEARER) {\n await this.verifyBearerAuthorizationHeader(event, header);\n return;\n }\n\n if (header.type === AuthorizationHeaderType.BASIC) {\n await this.verifyBasicAuthorizationHeader(event, header);\n return;\n }\n\n throw HTTPError.unsupportedHeaderType(header.type);\n }\n\n /**\n * @throws JWTError\n */\n protected async verifyBearerAuthorizationHeader(\n event: IRoutupEvent,\n header: BearerAuthorizationHeader,\n ) {\n const payload = await this.oauth2TokenVerifier.verify(header.token);\n if (payload.kind !== OAuth2TokenKind.ACCESS) {\n throw JWTError.payloadPropertyInvalid('kind');\n }\n\n if (!payload.realm_id) {\n throw JWTError.payloadPropertyInvalid('realm_id');\n }\n\n setRequestToken(event, header.token);\n\n if (payload.scope) {\n setRequestScopes(event, deserializeOAuth2Scope(payload.scope));\n }\n\n // -------------------------------------------------------\n\n if (!payload.session_id) {\n throw JWTError.payloadPropertyInvalid('session_id');\n }\n\n const session = await this.sessionManager.findOneById(payload.session_id);\n if (!session) {\n throw JWTError.expired();\n }\n\n try {\n await this.sessionManager.verify(session);\n } catch {\n throw JWTError.expired();\n }\n\n await this.sessionManager.ping(session);\n\n // -------------------------------------------------------\n\n if (!payload.sub_kind) {\n throw JWTError.payloadPropertyInvalid('sub_kind');\n }\n\n if (!payload.sub) {\n throw JWTError.payloadPropertyInvalid('sub');\n }\n\n const identity = await this.identityResolver.resolve(\n payload.sub_kind,\n payload.sub,\n );\n\n if (identity) {\n setRequestIdentity(event, identity);\n }\n }\n\n protected async verifyBasicAuthorizationHeader(\n event: IRoutupEvent,\n header: BasicAuthorizationHeader,\n ) {\n if (this.options.clientAuthBasic) {\n const authenticator = await this.clientAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticator.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.CLIENT,\n data: authenticator.data,\n });\n }\n }\n\n if (this.options.userAuthBasic) {\n const authenticated = await this.userAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.USER,\n data: authenticated.data,\n });\n\n return;\n }\n }\n\n if (this.options.robotAuthBasic) {\n const authenticated = await this.robotAuthenticator.safeAuthenticate(\n header.username,\n header.password,\n );\n if (authenticated.success) {\n setRequestScopes(event, [ScopeName.GLOBAL]);\n setRequestIdentity(event, {\n type: IdentityType.ROBOT,\n data: authenticated.data,\n });\n }\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CorsOptions } from 'cors';
|
|
1
|
+
import type { Options as CorsOptions } from '@routup/cors';
|
|
2
2
|
import type { Router } from 'routup';
|
|
3
3
|
export declare function registerCorsMiddleware(router: Router, input?: CorsOptions): void;
|
|
4
4
|
//# sourceMappingURL=cors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cors.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,WAAW,QAoBzE"}
|
|
@@ -1,15 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { coreHandler } from "routup";
|
|
3
|
-
import cors from "cors";
|
|
1
|
+
import { cors } from "@routup/cors";
|
|
4
2
|
//#region src/adapters/http/middleware/built-in/cors.ts
|
|
5
3
|
function registerCorsMiddleware(router, input) {
|
|
6
|
-
|
|
7
|
-
origin
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
router.use(cors({
|
|
5
|
+
origin: true,
|
|
6
|
+
credentials: true,
|
|
7
|
+
exposeHeaders: [
|
|
8
|
+
"ratelimit-limit",
|
|
9
|
+
"ratelimit-remaining",
|
|
10
|
+
"ratelimit-reset",
|
|
11
|
+
"retry-after",
|
|
12
|
+
"etag",
|
|
13
|
+
"content-disposition",
|
|
14
|
+
"content-range",
|
|
15
|
+
"accept-ranges",
|
|
16
|
+
"location",
|
|
17
|
+
"www-authenticate"
|
|
18
|
+
],
|
|
19
|
+
...input ?? {}
|
|
20
|
+
}));
|
|
13
21
|
}
|
|
14
22
|
//#endregion
|
|
15
23
|
export { registerCorsMiddleware };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.mjs","names":["cors","
|
|
1
|
+
{"version":3,"file":"cors.mjs","names":["cors","registerCorsMiddleware","router","input","use","origin","credentials","exposeHeaders"],"sources":["../../../../../src/adapters/http/middleware/built-in/cors.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { Options as CorsOptions } from '@routup/cors';\nimport { cors } from '@routup/cors';\nimport type { Router } from 'routup';\n\nexport function registerCorsMiddleware(router: Router, input?: CorsOptions) {\n router.use(cors({\n origin: true,\n credentials: true,\n // `credentials: true` is incompatible with the `*` wildcard for\n // exposeHeaders, so enumerate the response headers JS clients need.\n exposeHeaders: [\n 'ratelimit-limit',\n 'ratelimit-remaining',\n 'ratelimit-reset',\n 'retry-after',\n 'etag',\n 'content-disposition',\n 'content-range',\n 'accept-ranges',\n 'location',\n 'www-authenticate',\n ],\n ...(input ?? {}),\n }));\n}\n"],"mappings":";;AAWA,SAAgBC,uBAAuBC,QAAgBC,OAAmB;AACtED,QAAOE,IAAIJ,KAAK;EACZK,QAAQ;EACRC,aAAa;EAGbC,eAAe;GACX;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACH;EACD,GAAIJ,SAAS,EAAE;EACnB,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAerD"}
|
|
@@ -1,29 +1,18 @@
|
|
|
1
1
|
import { sanitizeError } from "../../../../utils/error.mjs";
|
|
2
2
|
import "../../../../utils/index.mjs";
|
|
3
3
|
import { useLogger } from "@authup/server-kit";
|
|
4
|
-
import {
|
|
5
|
-
import { errorHandler, send } from "routup";
|
|
4
|
+
import { defineErrorHandler } from "routup";
|
|
6
5
|
//#region src/adapters/http/middleware/built-in/error.ts
|
|
7
6
|
function registerErrorMiddleware(router) {
|
|
8
|
-
router.use(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const payload = {
|
|
13
|
-
statusCode: next.statusCode,
|
|
14
|
-
code: `${next.code}`,
|
|
15
|
-
message: next.message,
|
|
16
|
-
issues: next.issues
|
|
17
|
-
};
|
|
18
|
-
if (next.statusCode >= 500 && next.statusCode < 600) {
|
|
7
|
+
router.use(defineErrorHandler((error, event) => {
|
|
8
|
+
const next = sanitizeError(error.cause ?? error);
|
|
9
|
+
const payload = next.toJSON();
|
|
10
|
+
if (next.status >= 500 && next.status < 600) {
|
|
19
11
|
useLogger().error(next);
|
|
20
12
|
payload.message = "An internal server error occurred.";
|
|
21
|
-
} else if (isObject(next.data)) {
|
|
22
|
-
const keys = Object.keys(next.data);
|
|
23
|
-
for (const key of keys) payload[key] = next.data[key];
|
|
24
13
|
}
|
|
25
|
-
response.
|
|
26
|
-
return
|
|
14
|
+
event.response.status = next.status;
|
|
15
|
+
return payload;
|
|
27
16
|
}));
|
|
28
17
|
}
|
|
29
18
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.mjs","names":["
|
|
1
|
+
{"version":3,"file":"error.mjs","names":["defineErrorHandler","useLogger","sanitizeError","registerErrorMiddleware","router","use","error","event","next","cause","payload","toJSON","isServerError","status","message","response"],"sources":["../../../../../src/adapters/http/middleware/built-in/error.ts"],"sourcesContent":["/*\n * Copyright (c) 2021-2023.\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 { Router } from 'routup';\nimport { defineErrorHandler } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport type { AuthupError } from '@authup/errors';\nimport { sanitizeError } from '../../../../utils/index.ts';\n\nexport function registerErrorMiddleware(router: Router) {\n router.use(defineErrorHandler((error, event) => {\n const next : AuthupError = sanitizeError(error.cause ?? error);\n\n const payload = next.toJSON();\n\n const isServerError = next.status >= 500 && next.status < 600;\n if (isServerError) {\n useLogger().error(next);\n payload.message = 'An internal server error occurred.';\n }\n\n event.response.status = next.status;\n return payload;\n }));\n}\n"],"mappings":";;;;;AAaA,SAAgBG,wBAAwBC,QAAc;AAClDA,QAAOC,IAAIL,oBAAoBM,OAAOC,UAAAA;EAClC,MAAMC,OAAqBN,cAAcI,MAAMG,SAASH,MAAAA;EAExD,MAAMI,UAAUF,KAAKG,QAAM;AAG3B,MADsBH,KAAKK,UAAU,OAAOL,KAAKK,SAAS,KACvC;AACfZ,cAAAA,CAAYK,MAAME,KAAAA;AAClBE,WAAQI,UAAU;;AAGtBP,QAAMQ,SAASF,SAASL,KAAKK;AAC7B,SAAOH;GACX,CAAA"}
|
|
@@ -4,7 +4,7 @@ import "./authorization/index.mjs";
|
|
|
4
4
|
import { ForceLoggedInMiddleware } from "./loggedin/module.mjs";
|
|
5
5
|
import { ForceUserLoggedInMiddleware } from "./loggedin/user.mjs";
|
|
6
6
|
import "./loggedin/index.mjs";
|
|
7
|
-
import { registerAssetsMiddleware } from "./assets.mjs";
|
|
7
|
+
import { VITE_SERVER_STORE_KEY, registerAssetsMiddleware } from "./assets.mjs";
|
|
8
8
|
import { registerBasicMiddleware } from "./basic.mjs";
|
|
9
9
|
import { registerCorsMiddleware } from "./cors.mjs";
|
|
10
10
|
import { registerErrorMiddleware } from "./error.mjs";
|
|
@@ -12,4 +12,4 @@ import { createLoggerMiddleware } from "./logger.mjs";
|
|
|
12
12
|
import { registerPrometheusMiddleware } from "./prometheus.mjs";
|
|
13
13
|
import { registerRateLimitMiddleware } from "./rate-limit.mjs";
|
|
14
14
|
import { createSwaggerMiddleware } from "./swagger.mjs";
|
|
15
|
-
export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, createAuthorizationMiddleware, createLoggerMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware };
|
|
15
|
+
export { AuthorizationMiddleware, ForceLoggedInMiddleware, ForceUserLoggedInMiddleware, VITE_SERVER_STORE_KEY, createAuthorizationMiddleware, createLoggerMiddleware, createSwaggerMiddleware, registerAssetsMiddleware, registerBasicMiddleware, registerCorsMiddleware, registerErrorMiddleware, registerPrometheusMiddleware, registerRateLimitMiddleware };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HandlerInterface } from '@routup/decorators';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IRoutupEvent } from 'routup';
|
|
3
3
|
export declare class ForceLoggedInMiddleware implements HandlerInterface {
|
|
4
|
-
run(
|
|
4
|
+
run(event: IRoutupEvent): Promise<Response | undefined>;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,qBAAa,uBAAwB,YAAW,gBAAgB;IACrD,GAAG,CAAC,KAAK,EAAE,YAAY;CAIjC"}
|
|
@@ -2,9 +2,9 @@ import { useRequestIdentityOrFail } from "../../../request/helpers/identity.mjs"
|
|
|
2
2
|
import "../../../request/index.mjs";
|
|
3
3
|
//#region src/adapters/http/middleware/built-in/loggedin/module.ts
|
|
4
4
|
var ForceLoggedInMiddleware = class {
|
|
5
|
-
run(
|
|
6
|
-
useRequestIdentityOrFail(
|
|
7
|
-
next();
|
|
5
|
+
run(event) {
|
|
6
|
+
useRequestIdentityOrFail(event);
|
|
7
|
+
return event.next();
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
10
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["useRequestIdentityOrFail","ForceLoggedInMiddleware","run","
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["useRequestIdentityOrFail","ForceLoggedInMiddleware","run","event","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { HandlerInterface } from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestIdentityOrFail } from '../../../request/index.ts';\n\nexport class ForceLoggedInMiddleware implements HandlerInterface {\n public run(event: IRoutupEvent) {\n useRequestIdentityOrFail(event);\n return event.next();\n }\n}\n"],"mappings":";;;AAWA,IAAaC,0BAAb,MAAaA;CACFC,IAAIC,OAAqB;AAC5BH,2BAAyBG,MAAAA;AACzB,SAAOA,MAAMC,MAAI"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { HandlerInterface } from '@routup/decorators';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IRoutupEvent } from 'routup';
|
|
3
3
|
export declare class ForceUserLoggedInMiddleware implements HandlerInterface {
|
|
4
|
-
run(
|
|
4
|
+
run(event: IRoutupEvent): Promise<Response | undefined>;
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG3C,qBAAa,2BAA4B,YAAW,gBAAgB;IACzD,GAAG,CAAC,KAAK,EAAE,YAAY;CASjC"}
|
|
@@ -3,10 +3,10 @@ import "../../../request/index.mjs";
|
|
|
3
3
|
import { UnauthorizedError } from "@ebec/http";
|
|
4
4
|
//#region src/adapters/http/middleware/built-in/loggedin/user.ts
|
|
5
5
|
var ForceUserLoggedInMiddleware = class {
|
|
6
|
-
run(
|
|
7
|
-
const identity = useRequestIdentity(
|
|
6
|
+
run(event) {
|
|
7
|
+
const identity = useRequestIdentity(event);
|
|
8
8
|
if (!identity || identity.type !== "user") throw new UnauthorizedError();
|
|
9
|
-
next();
|
|
9
|
+
return event.next();
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
12
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.mjs","names":["UnauthorizedError","useRequestIdentity","ForceUserLoggedInMiddleware","run","
|
|
1
|
+
{"version":3,"file":"user.mjs","names":["UnauthorizedError","useRequestIdentity","ForceUserLoggedInMiddleware","run","event","identity","type","next"],"sources":["../../../../../../src/adapters/http/middleware/built-in/loggedin/user.ts"],"sourcesContent":["/*\n * Copyright (c) 2022-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 { UnauthorizedError } from '@ebec/http';\nimport type { HandlerInterface } from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport { useRequestIdentity } from '../../../request/index.ts';\n\nexport class ForceUserLoggedInMiddleware implements HandlerInterface {\n public run(event: IRoutupEvent) {\n const identity = useRequestIdentity(event);\n\n if (!identity || identity.type !== 'user') {\n throw new UnauthorizedError();\n }\n\n return event.next();\n }\n}\n"],"mappings":";;;;AAYA,IAAaE,8BAAb,MAAaA;CACFC,IAAIC,OAAqB;EAC5B,MAAMC,WAAWJ,mBAAmBG,MAAAA;AAEpC,MAAI,CAACC,YAAYA,SAASC,SAAS,OAC/B,OAAM,IAAIN,mBAAAA;AAGd,SAAOI,MAAMG,MAAI"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAKtC,KAAK,uBAAuB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;CACd,CAAC;AAEF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAI,OAAO,CA6BjF"}
|
|
@@ -1,36 +1,28 @@
|
|
|
1
|
-
import { useRequestIdentity } from "../../request/helpers/identity.mjs";
|
|
2
|
-
import "../../request/index.mjs";
|
|
3
1
|
import { useLogger } from "@authup/server-kit";
|
|
4
2
|
import { EnvironmentName } from "@authup/kit";
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
3
|
+
import { getRequestIP } from "routup";
|
|
4
|
+
import { logger } from "@routup/logger";
|
|
7
5
|
//#region src/adapters/http/middleware/built-in/logger.ts
|
|
8
6
|
function createLoggerMiddleware(options) {
|
|
9
|
-
return
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const path = useRequestPath(req);
|
|
29
|
-
if (path.length === 0 || path === "/") return true;
|
|
30
|
-
if (options.env === EnvironmentName.PRODUCTION) return res.statusCode < 400;
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
})(request, response, next);
|
|
7
|
+
return logger({
|
|
8
|
+
format: (tokens, event, response) => [
|
|
9
|
+
getRequestIP(event) || "-",
|
|
10
|
+
"-",
|
|
11
|
+
tokens.method(event, response) ?? "-",
|
|
12
|
+
tokens.url(event, response) ?? "-",
|
|
13
|
+
tokens.status(event, response) ?? "-",
|
|
14
|
+
"-",
|
|
15
|
+
tokens["response-time"](event, response) ?? "-"
|
|
16
|
+
].join(" "),
|
|
17
|
+
write(line) {
|
|
18
|
+
if (options.env !== EnvironmentName.TEST) useLogger().http(line);
|
|
19
|
+
},
|
|
20
|
+
skip(event, response) {
|
|
21
|
+
const path = event.path || "";
|
|
22
|
+
if (path.length === 0 || path === "/") return true;
|
|
23
|
+
if (options.env === EnvironmentName.PRODUCTION) return (response?.status ?? 0) < 400;
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
34
26
|
});
|
|
35
27
|
}
|
|
36
28
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.mjs","names":["
|
|
1
|
+
{"version":3,"file":"logger.mjs","names":["logger","getRequestIP","useLogger","EnvironmentName","createLoggerMiddleware","options","format","tokens","event","response","method","url","status","join","write","line","env","TEST","http","skip","path","length","PRODUCTION"],"sources":["../../../../../src/adapters/http/middleware/built-in/logger.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { logger } from '@routup/logger';\nimport type { Handler } from 'routup';\nimport { getRequestIP } from 'routup';\nimport { useLogger } from '@authup/server-kit';\nimport { EnvironmentName } from '@authup/kit';\n\ntype LoggerMiddlewareOptions = {\n env: string\n};\n\nexport function createLoggerMiddleware(options: LoggerMiddlewareOptions) : Handler {\n return logger({\n format: (tokens, event, response) => [\n getRequestIP(event) || '-',\n '-',\n tokens.method(event, response) ?? '-',\n tokens.url(event, response) ?? '-',\n tokens.status(event, response) ?? '-',\n '-',\n tokens['response-time'](event, response) ?? '-',\n ].join(' '),\n write(line) {\n if (options.env !== EnvironmentName.TEST) {\n useLogger().http(line);\n }\n },\n skip(event, response): boolean {\n const path = event.path || '';\n if (path.length === 0 || path === '/') {\n return true;\n }\n\n if (options.env === EnvironmentName.PRODUCTION) {\n return (response?.status ?? 0) < 400;\n }\n\n return false;\n },\n });\n}\n"],"mappings":";;;;;AAiBA,SAAgBI,uBAAuBC,SAAgC;AACnE,QAAOL,OAAO;EACVM,SAASC,QAAQC,OAAOC,aAAa;GACjCR,aAAaO,MAAAA,IAAU;GACvB;GACAD,OAAOG,OAAOF,OAAOC,SAAAA,IAAa;GAClCF,OAAOI,IAAIH,OAAOC,SAAAA,IAAa;GAC/BF,OAAOK,OAAOJ,OAAOC,SAAAA,IAAa;GAClC;GACAF,OAAO,iBAAiBC,OAAOC,SAAAA,IAAa;GAC/C,CAACI,KAAK,IAAA;EACPC,MAAMC,MAAI;AACN,OAAIV,QAAQW,QAAQb,gBAAgBc,KAChCf,YAAAA,CAAYgB,KAAKH,KAAAA;;EAGzBI,KAAKX,OAAOC,UAAQ;GAChB,MAAMW,OAAOZ,MAAMY,QAAQ;AAC3B,OAAIA,KAAKC,WAAW,KAAKD,SAAS,IAC9B,QAAO;AAGX,OAAIf,QAAQW,QAAQb,gBAAgBmB,WAChC,SAAQb,UAAUG,UAAU,KAAK;AAGrC,UAAO;;EAEf,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prometheus.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"prometheus.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAuBhF"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { useRequestPath } from "routup";
|
|
2
1
|
import { prometheus } from "@routup/prometheus";
|
|
3
2
|
//#region src/adapters/http/middleware/built-in/prometheus.ts
|
|
4
3
|
function registerPrometheusMiddleware(router, input) {
|
|
5
|
-
let options = { skip(
|
|
6
|
-
let path =
|
|
4
|
+
let options = { skip(event) {
|
|
5
|
+
let { path } = event;
|
|
7
6
|
if (!path.startsWith("/")) path = `/${path}`;
|
|
8
7
|
return path.startsWith("/authorize") || path.startsWith("/token") || path.startsWith("/metrics") || path === "/";
|
|
9
8
|
} };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prometheus.mjs","names":["prometheus","
|
|
1
|
+
{"version":3,"file":"prometheus.mjs","names":["prometheus","registerPrometheusMiddleware","router","input","options","skip","event","path","startsWith","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/prometheus.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { OptionsInput } from '@routup/prometheus';\nimport { prometheus } from '@routup/prometheus';\nimport type { Router } from 'routup';\n\nexport function registerPrometheusMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n skip(event) {\n let { path } = event;\n if (!path.startsWith('/')) {\n path = `/${path}`;\n }\n\n return path.startsWith('/authorize') ||\n path.startsWith('/token') ||\n path.startsWith('/metrics') ||\n path === '/';\n },\n };\n\n if (input) {\n options = {\n ...options,\n ...input,\n };\n }\n\n router.use(prometheus(options));\n}\n"],"mappings":";;AAWA,SAAgBC,6BAA6BC,QAAgBC,OAAoB;CAC7E,IAAIC,UAAyB,EACzBC,KAAKC,OAAK;EACN,IAAI,EAAEC,SAASD;AACf,MAAI,CAACC,KAAKC,WAAW,IAAA,CACjBD,QAAO,IAAIA;AAGf,SAAOA,KAAKC,WAAW,aAAA,IACnBD,KAAKC,WAAW,SAAA,IAChBD,KAAKC,WAAW,WAAA,IAChBD,SAAS;IAErB;AAEA,KAAIJ,MACAC,WAAU;EACN,GAAGA;EACH,GAAGD;EACP;AAGJD,QAAOO,IAAIT,WAAWI,QAAAA,CAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,QAyB/E"}
|
|
@@ -5,8 +5,8 @@ import { rateLimit } from "@routup/rate-limit";
|
|
|
5
5
|
//#region src/adapters/http/middleware/built-in/rate-limit.ts
|
|
6
6
|
function registerRateLimitMiddleware(router, input) {
|
|
7
7
|
let options = {
|
|
8
|
-
max(
|
|
9
|
-
const identity = useRequestIdentity(
|
|
8
|
+
max(event) {
|
|
9
|
+
const identity = useRequestIdentity(event);
|
|
10
10
|
if (!identity) return 1200;
|
|
11
11
|
switch (identity.type) {
|
|
12
12
|
case "robot":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","
|
|
1
|
+
{"version":3,"file":"rate-limit.mjs","names":["rateLimit","merge","useRequestIdentity","registerRateLimitMiddleware","router","input","options","max","event","identity","type","windowMs","use"],"sources":["../../../../../src/adapters/http/middleware/built-in/rate-limit.ts"],"sourcesContent":["/*\n * Copyright (c) 2023.\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 { OptionsInput } from '@routup/rate-limit';\nimport { rateLimit } from '@routup/rate-limit';\nimport type { Router } from 'routup';\nimport { merge } from 'smob';\nimport { useRequestIdentity } from '../../request/index.ts';\n\nexport function registerRateLimitMiddleware(router: Router, input?: OptionsInput) {\n let options : OptionsInput = {\n max(event) {\n const identity = useRequestIdentity(event);\n if (!identity) {\n return 60 * 20; // 20 req. p. sec\n }\n\n switch (identity.type) {\n case 'robot':\n case 'client': {\n return 60 * 5_000; // 1000 req p. sec\n }\n case 'user':\n default: {\n return 60 * 100; // 100 req p. sec\n }\n }\n },\n windowMs: 60 * 1000, // 60 sec\n };\n\n options = merge(input || {}, options);\n\n router.use(rateLimit(options));\n}\n"],"mappings":";;;;;AAaA,SAAgBG,4BAA4BC,QAAgBC,OAAoB;CAC5E,IAAIC,UAAyB;EACzBC,IAAIC,OAAK;GACL,MAAMC,WAAWP,mBAAmBM,MAAAA;AACpC,OAAI,CAACC,SACD,QAAO;AAGX,WAAQA,SAASC,MAAjB;IACI,KAAK;IACL,KAAK,SACD,QAAO,KAAK;IAGhB,QACI,QAAO;;;EAInBC,UAAU,KAAK;EACnB;AAEAL,WAAUL,MAAMI,SAAS,EAAC,EAAGC,QAAAA;AAE7BF,QAAOQ,IAAIZ,UAAUM,QAAAA,CAAAA"}
|