@authup/server-core 1.0.0-beta.40 → 1.0.0-beta.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database/cache/module.mjs.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/data-source/singleton.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/client-scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-scope/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-account/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-permission-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-role-mapping/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/policy/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/policy-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/realm/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/role-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/role-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/scope/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/scope/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/user/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-attribute/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-permission/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-permission/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/user-role/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user-role/subscriber.mjs.map +1 -1
- package/dist/adapters/database/errors/conflict.d.ts +2 -2
- package/dist/adapters/database/errors/conflict.d.ts.map +1 -1
- package/dist/adapters/database/errors/conflict.mjs +6 -3
- package/dist/adapters/database/errors/conflict.mjs.map +1 -1
- package/dist/adapters/database/event-publisher/module.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
- package/dist/adapters/database/helpers/is-supported.mjs.map +1 -1
- package/dist/adapters/database/logger/module.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1673449341125-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1689597906910-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1718790373914-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1722673916392-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1740991051622-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1766830857009-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/mysql/1774800953474-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1673449341125-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1689597906910-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1718790373914-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1722673916392-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1740991051622-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1766830857009-Default.mjs.map +1 -1
- package/dist/adapters/database/migrations/postgres/1774800953474-Default.mjs.map +1 -1
- 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 +15 -14
- 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 +8 -8
- 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 +12 -11
- 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 +15 -14
- 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 +54 -65
- 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-permission/utils/validation.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-role/utils/validation.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/client-scope/utils/validator.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 +92 -114
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.d.ts +13 -17
- package/dist/adapters/http/controllers/entities/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/permission/module.mjs +60 -112
- 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 +14 -16
- package/dist/adapters/http/controllers/entities/policy/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.mjs +65 -106
- package/dist/adapters/http/controllers/entities/policy/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/utils/attributes-validator.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/policy/utils/validation.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 +54 -67
- 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-permission/utils/validation.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/robot-role/utils/validation.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-attribute/utils/validation.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/role-permission/utils/validation.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 +48 -59
- 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-attribute/utils/validation.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-permission/utils/validation.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/entities/user-role/utils/validation.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/activate/validator.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 +21 -22
- 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 +15 -18
- 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 +20 -30
- 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 +26 -27
- 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/controllers/workflows/token/utils/validator.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 +7 -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 +25 -40
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.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 +9 -18
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +5 -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 +4 -4
- 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/realm-resolver/factory.d.ts +4 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs +14 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/factory.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts +4 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/index.mjs +3 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts +9 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +26 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts +5 -0
- package/dist/adapters/http/middleware/built-in/realm-resolver/types.d.ts.map +1 -0
- 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 +4 -2
- package/dist/adapters/http/request/helpers/actor.d.ts +3 -3
- 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 +7 -8
- package/dist/adapters/http/request/helpers/identity.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +2 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +4 -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/realm-id.d.ts +5 -0
- package/dist/adapters/http/request/helpers/realm-id.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/realm-id.mjs +19 -0
- package/dist/adapters/http/request/helpers/realm-id.mjs.map +1 -0
- 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 +4 -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/adapters/shared/ldap/factory.mjs.map +1 -1
- package/dist/adapters/shared/ldap/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/authentication/constants.mjs.map +1 -1
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/cache/constants.mjs.map +1 -1
- package/dist/app/modules/cache/module.mjs.map +1 -1
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/parse.mjs.map +1 -1
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/read/fs.mjs.map +1 -1
- package/dist/app/modules/config/read/module.mjs.map +1 -1
- 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/database/constants.mjs.map +1 -1
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/bindings.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client-scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider-role-mapping/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/permission-policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission-provider/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.d.ts +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot-role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/robot-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot-role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/role-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-permission/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-role/repository.d.ts +2 -1
- package/dist/app/modules/database/repositories/user-role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-role/repository.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 +59 -70
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +1 -0
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +13 -6
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/constants.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/account/module.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/attribute.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/permission.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/provider/mapper/role.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/robot.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/user.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/ldap/constants.mjs.map +1 -1
- package/dist/app/modules/ldap/module.mjs.map +1 -1
- package/dist/app/modules/logger/constants.mjs.map +1 -1
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/smtp/module.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/smtp/smtp.mjs.map +1 -1
- package/dist/app/modules/mail/adapter/void.mjs.map +1 -1
- package/dist/app/modules/mail/constants.mjs.map +1 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/code/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- 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/healthcheck.mjs.map +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/migration.mjs.map +1 -1
- package/dist/cli/commands/reset.mjs.map +1 -1
- 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/index.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/components/database/unique-entries/factory.mjs.map +1 -1
- package/dist/components/database/unique-entries/module.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/base.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/robot/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/user/module.mjs.map +1 -1
- package/dist/core/authentication/entities/client/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/client/module.mjs +7 -5
- package/dist/core/authentication/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/entities/robot/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/robot/module.mjs +5 -4
- package/dist/core/authentication/entities/robot/module.mjs.map +1 -1
- package/dist/core/authentication/entities/user/module.d.ts.map +1 -1
- package/dist/core/authentication/entities/user/module.mjs +5 -4
- package/dist/core/authentication/entities/user/module.mjs.map +1 -1
- package/dist/core/authentication/module.mjs.map +1 -1
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts +2 -3
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +8 -8
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/types.d.ts +1 -2
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.d.ts +2 -3
- package/dist/core/entities/client-permission/service.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +8 -7
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/client-permission/types.d.ts +1 -2
- package/dist/core/entities/client-permission/types.d.ts.map +1 -1
- package/dist/core/entities/client-role/service.d.ts +2 -3
- package/dist/core/entities/client-role/service.d.ts.map +1 -1
- package/dist/core/entities/client-role/service.mjs +9 -8
- package/dist/core/entities/client-role/service.mjs.map +1 -1
- package/dist/core/entities/client-role/types.d.ts +1 -2
- package/dist/core/entities/client-role/types.d.ts.map +1 -1
- package/dist/core/entities/client-scope/service.d.ts +2 -3
- package/dist/core/entities/client-scope/service.d.ts.map +1 -1
- package/dist/core/entities/client-scope/service.mjs +7 -6
- package/dist/core/entities/client-scope/service.mjs.map +1 -1
- package/dist/core/entities/client-scope/types.d.ts +1 -2
- package/dist/core/entities/client-scope/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider/types.d.ts +1 -1
- package/dist/core/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/service.d.ts +2 -3
- package/dist/core/entities/identity-provider-role-mapping/service.d.ts.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/service.mjs +10 -9
- package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
- package/dist/core/entities/identity-provider-role-mapping/types.d.ts +1 -2
- package/dist/core/entities/identity-provider-role-mapping/types.d.ts.map +1 -1
- package/dist/core/entities/index.d.ts +0 -3
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +1 -2
- package/dist/core/entities/permission/service.d.ts +2 -3
- package/dist/core/entities/permission/service.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +8 -9
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/permission/types.d.ts +1 -2
- package/dist/core/entities/permission/types.d.ts.map +1 -1
- package/dist/core/entities/permission-policy/service.d.ts +2 -3
- package/dist/core/entities/permission-policy/service.d.ts.map +1 -1
- package/dist/core/entities/permission-policy/service.mjs +7 -6
- package/dist/core/entities/permission-policy/service.mjs.map +1 -1
- package/dist/core/entities/permission-policy/types.d.ts +1 -2
- package/dist/core/entities/permission-policy/types.d.ts.map +1 -1
- package/dist/core/entities/policy/attributes-validator.mjs.map +1 -1
- package/dist/core/entities/policy/service.d.ts +2 -3
- package/dist/core/entities/policy/service.d.ts.map +1 -1
- package/dist/core/entities/policy/service.mjs +8 -8
- package/dist/core/entities/policy/service.mjs.map +1 -1
- package/dist/core/entities/policy/types.d.ts +1 -2
- package/dist/core/entities/policy/types.d.ts.map +1 -1
- package/dist/core/entities/realm/service.d.ts +2 -3
- package/dist/core/entities/realm/service.d.ts.map +1 -1
- package/dist/core/entities/realm/service.mjs +8 -8
- package/dist/core/entities/realm/service.mjs.map +1 -1
- package/dist/core/entities/realm/types.d.ts +1 -2
- package/dist/core/entities/realm/types.d.ts.map +1 -1
- package/dist/core/entities/robot/service.d.ts +2 -3
- package/dist/core/entities/robot/service.d.ts.map +1 -1
- package/dist/core/entities/robot/service.mjs +8 -8
- package/dist/core/entities/robot/service.mjs.map +1 -1
- package/dist/core/entities/robot/types.d.ts +1 -2
- package/dist/core/entities/robot/types.d.ts.map +1 -1
- package/dist/core/entities/robot-permission/service.d.ts +2 -3
- package/dist/core/entities/robot-permission/service.d.ts.map +1 -1
- package/dist/core/entities/robot-permission/service.mjs +8 -7
- package/dist/core/entities/robot-permission/service.mjs.map +1 -1
- package/dist/core/entities/robot-permission/types.d.ts +1 -2
- package/dist/core/entities/robot-permission/types.d.ts.map +1 -1
- package/dist/core/entities/robot-role/service.d.ts +2 -3
- package/dist/core/entities/robot-role/service.d.ts.map +1 -1
- package/dist/core/entities/robot-role/service.mjs +9 -8
- package/dist/core/entities/robot-role/service.mjs.map +1 -1
- package/dist/core/entities/robot-role/types.d.ts +1 -2
- package/dist/core/entities/robot-role/types.d.ts.map +1 -1
- package/dist/core/entities/role/service.d.ts +2 -3
- package/dist/core/entities/role/service.d.ts.map +1 -1
- package/dist/core/entities/role/service.mjs +8 -8
- package/dist/core/entities/role/service.mjs.map +1 -1
- package/dist/core/entities/role/types.d.ts +1 -2
- package/dist/core/entities/role/types.d.ts.map +1 -1
- package/dist/core/entities/role-attribute/service.d.ts +2 -3
- package/dist/core/entities/role-attribute/service.d.ts.map +1 -1
- package/dist/core/entities/role-attribute/service.mjs +5 -5
- package/dist/core/entities/role-attribute/service.mjs.map +1 -1
- package/dist/core/entities/role-attribute/types.d.ts +1 -2
- package/dist/core/entities/role-attribute/types.d.ts.map +1 -1
- package/dist/core/entities/role-permission/service.d.ts +2 -3
- package/dist/core/entities/role-permission/service.d.ts.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +8 -7
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/types.d.ts +1 -2
- package/dist/core/entities/role-permission/types.d.ts.map +1 -1
- package/dist/core/entities/scope/service.d.ts +2 -3
- package/dist/core/entities/scope/service.d.ts.map +1 -1
- package/dist/core/entities/scope/service.mjs +8 -8
- package/dist/core/entities/scope/service.mjs.map +1 -1
- package/dist/core/entities/scope/types.d.ts +1 -2
- package/dist/core/entities/scope/types.d.ts.map +1 -1
- package/dist/core/entities/user/service.d.ts +2 -3
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +8 -8
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user/types.d.ts +1 -2
- package/dist/core/entities/user/types.d.ts.map +1 -1
- package/dist/core/entities/user-attribute/service.d.ts +2 -3
- package/dist/core/entities/user-attribute/service.d.ts.map +1 -1
- package/dist/core/entities/user-attribute/service.mjs +8 -8
- package/dist/core/entities/user-attribute/service.mjs.map +1 -1
- package/dist/core/entities/user-attribute/types.d.ts +1 -2
- package/dist/core/entities/user-attribute/types.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.d.ts +2 -3
- package/dist/core/entities/user-permission/service.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +8 -7
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/entities/user-permission/types.d.ts +1 -2
- package/dist/core/entities/user-permission/types.d.ts.map +1 -1
- package/dist/core/entities/user-role/service.d.ts +2 -3
- package/dist/core/entities/user-role/service.d.ts.map +1 -1
- package/dist/core/entities/user-role/service.mjs +9 -8
- package/dist/core/entities/user-role/service.mjs.map +1 -1
- package/dist/core/entities/user-role/types.d.ts +1 -2
- package/dist/core/entities/user-role/types.d.ts.map +1 -1
- package/dist/core/identity/index.d.ts +1 -0
- package/dist/core/identity/index.d.ts.map +1 -1
- package/dist/core/identity/index.mjs +4 -1
- package/dist/core/identity/password-recovery/check.d.ts +7 -0
- package/dist/core/identity/password-recovery/check.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/check.mjs +24 -0
- package/dist/core/identity/password-recovery/check.mjs.map +1 -0
- package/dist/core/identity/password-recovery/disabled.d.ts +6 -0
- package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/disabled.mjs +16 -0
- package/dist/core/identity/password-recovery/disabled.mjs.map +1 -0
- package/dist/core/identity/password-recovery/email-verification-required.d.ts +6 -0
- package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/email-verification-required.mjs +16 -0
- package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -0
- package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +10 -7
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.d.ts +6 -0
- package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -0
- package/dist/core/identity/password-recovery/token-expired.mjs +16 -0
- package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -0
- package/dist/core/identity/permission/checker/index.d.ts +3 -0
- package/dist/core/identity/permission/checker/index.d.ts.map +1 -0
- package/dist/core/identity/permission/checker/index.mjs +2 -0
- package/dist/core/identity/permission/checker/service.d.ts +10 -0
- package/dist/core/identity/permission/checker/service.d.ts.map +1 -0
- package/dist/core/identity/permission/checker/service.mjs +55 -0
- package/dist/core/identity/permission/checker/service.mjs.map +1 -0
- package/dist/core/identity/permission/checker/types.d.ts +42 -0
- package/dist/core/identity/permission/checker/types.d.ts.map +1 -0
- package/dist/core/identity/permission/identity-policy-data.d.ts +4 -0
- package/dist/core/identity/permission/identity-policy-data.d.ts.map +1 -0
- package/dist/core/identity/permission/identity-policy-data.mjs +23 -0
- package/dist/core/identity/permission/identity-policy-data.mjs.map +1 -0
- package/dist/core/identity/permission/index.d.ts +1 -0
- package/dist/core/identity/permission/index.d.ts.map +1 -1
- package/dist/core/identity/permission/index.mjs +3 -1
- package/dist/core/identity/permission/module.mjs.map +1 -1
- package/dist/core/identity/policy/checker/index.d.ts +3 -0
- package/dist/core/identity/policy/checker/index.d.ts.map +1 -0
- package/dist/core/identity/policy/checker/index.mjs +2 -0
- package/dist/core/identity/policy/checker/service.d.ts +10 -0
- package/dist/core/identity/policy/checker/service.d.ts.map +1 -0
- package/dist/core/identity/policy/checker/service.mjs +46 -0
- package/dist/core/identity/policy/checker/service.mjs.map +1 -0
- package/dist/core/identity/policy/checker/types.d.ts +40 -0
- package/dist/core/identity/policy/checker/types.d.ts.map +1 -0
- package/dist/core/identity/policy/index.d.ts +2 -0
- package/dist/core/identity/policy/index.d.ts.map +1 -0
- package/dist/core/identity/policy/index.mjs +3 -0
- package/dist/core/identity/provider/account/module.d.ts.map +1 -1
- package/dist/core/identity/provider/account/module.mjs +2 -2
- package/dist/core/identity/provider/account/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/constants.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/factory.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs +3 -2
- package/dist/core/identity/provider/authentication/protocols/ldap/collection.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs +7 -4
- package/dist/core/identity/provider/authentication/protocols/ldap/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/attributes/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/base.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/permission/module.mjs.map +1 -1
- package/dist/core/identity/provider/mapper/role/module.mjs.map +1 -1
- package/dist/core/identity/registration/check.d.ts +3 -0
- package/dist/core/identity/registration/check.d.ts.map +1 -0
- package/dist/core/identity/registration/check.mjs +12 -0
- package/dist/core/identity/registration/check.mjs.map +1 -0
- package/dist/core/identity/registration/error.d.ts +6 -0
- package/dist/core/identity/registration/error.d.ts.map +1 -0
- package/dist/core/identity/registration/error.mjs +16 -0
- package/dist/core/identity/registration/error.mjs.map +1 -0
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +4 -3
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/identity/resolver/entities/ldap/module.mjs.map +1 -1
- package/dist/core/identity/resolver/module.mjs.map +1 -1
- package/dist/core/identity/role/module.mjs.map +1 -1
- package/dist/core/index.mjs +5 -4
- package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.mjs +8 -8
- package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.mjs +2 -2
- package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +8 -8
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
- package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +4 -4
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/state/module.mjs +4 -4
- package/dist/core/oauth2/authorization/state/module.mjs.map +1 -1
- package/dist/core/oauth2/client/authenticator.mjs +6 -6
- package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/base.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/core/oauth2/helpers/error.d.ts +8 -0
- package/dist/core/oauth2/helpers/error.d.ts.map +1 -0
- package/dist/core/oauth2/helpers/error.mjs +26 -0
- package/dist/core/oauth2/helpers/error.mjs.map +1 -0
- package/dist/core/oauth2/helpers/index.d.ts +1 -1
- package/dist/core/oauth2/helpers/index.mjs +1 -1
- package/dist/core/oauth2/openid/claims.mjs.map +1 -1
- package/dist/core/oauth2/response/bearer.mjs.map +1 -1
- package/dist/core/oauth2/scope/resolver.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/base.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
- package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
- package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/client/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/robot/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/robot/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/role/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/scope/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/user/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/user/validator.mjs.map +1 -1
- package/dist/core/provisioning/strategy/normalize.mjs.map +1 -1
- package/dist/core/provisioning/strategy/validator.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/entity-resolver.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/junction-synchronizer.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/policy/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/robot/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/root/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
- package/dist/core/security/policy/engine.mjs.map +1 -1
- package/dist/core/security/policy/evaluator.mjs.map +1 -1
- package/dist/index.mjs +7 -7
- package/dist/path.mjs.map +1 -1
- package/dist/swagger.json +9413 -2773
- package/dist/ui/client/.vite/ssr-manifest.json +33 -113
- package/dist/ui/client/assets/index-BdPtpN2t.js +66 -0
- package/dist/ui/client/index.html +1 -1
- package/dist/ui/server/server.js +1483 -1066
- package/dist/utils/error.d.ts +13 -0
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +26 -24
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/host.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/self-id.mjs.map +1 -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 +32 -33
- 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/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/core/entities/actor/index.d.ts +0 -2
- package/dist/core/entities/actor/index.d.ts.map +0 -1
- package/dist/core/entities/actor/index.mjs +0 -1
- package/dist/core/entities/actor/types.d.ts +0 -7
- package/dist/core/entities/actor/types.d.ts.map +0 -1
- package/dist/core/entities/service.d.ts +0 -6
- package/dist/core/entities/service.d.ts.map +0 -1
- package/dist/core/entities/service.mjs +0 -21
- package/dist/core/entities/service.mjs.map +0 -1
- package/dist/core/entities/types.d.ts +0 -22
- package/dist/core/entities/types.d.ts.map +0 -1
- package/dist/core/oauth2/helpers/erorr.d.ts +0 -9
- package/dist/core/oauth2/helpers/erorr.d.ts.map +0 -1
- package/dist/core/oauth2/helpers/erorr.mjs +0 -26
- package/dist/core/oauth2/helpers/erorr.mjs.map +0 -1
- package/dist/ui/client/assets/index-Noe7uiOY.js +0 -41
- /package/dist/{core/entities/actor → adapters/http/middleware/built-in/realm-resolver}/types.mjs +0 -0
- /package/dist/core/{entities → identity/permission/checker}/types.mjs +0 -0
- /package/dist/{adapters/http/server/type.mjs → core/identity/policy/checker/types.mjs} +0 -0
|
@@ -3,20 +3,23 @@ import { createIdentityProviderOAuth2Authenticator } from "../../../../../core/i
|
|
|
3
3
|
import "../../../../../core/index.mjs";
|
|
4
4
|
import { useRequestPermissionEvaluator } from "../../../request/permission/helper.mjs";
|
|
5
5
|
import { useRequestIdentityOrFail } from "../../../request/helpers/identity.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { getBodyRealmID } from "../../../request/helpers/body-realm-id.mjs";
|
|
7
7
|
import { getRequestParamID, useRequestParamID } from "../../../request/helpers/param-id.mjs";
|
|
8
|
+
import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
|
|
8
9
|
import "../../../request/index.mjs";
|
|
10
|
+
import { resolveURL } from "../../../../../utils/url.mjs";
|
|
11
|
+
import "../../../../../utils/index.mjs";
|
|
9
12
|
import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
|
|
10
13
|
import "../../../middleware/index.mjs";
|
|
11
|
-
import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName,
|
|
12
|
-
import { base64URLDecode, isUUID } from "@authup/kit";
|
|
14
|
+
import { IdentityProviderAttributesValidator, IdentityProviderValidator, IdentityType, PermissionName, isOAuth2IdentityProvider, isOpenIDIdentityProvider } from "@authup/core-kit";
|
|
15
|
+
import { ValidatorGroup, base64URLDecode, isUUID } from "@authup/kit";
|
|
13
16
|
import { BuiltInPolicyType, PolicyData } from "@authup/access";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { getRequestHeader, getRequestIP,
|
|
17
|
-
import {
|
|
17
|
+
import { BadRequestError, EntityNotFoundError } from "@authup/errors";
|
|
18
|
+
import { OAuth2RequestError } from "@authup/specs";
|
|
19
|
+
import { getRequestHeader, getRequestIP, sendRedirect } from "routup";
|
|
20
|
+
import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DPut, DTags } from "@routup/decorators";
|
|
21
|
+
import { readRequestBody } from "@routup/basic/body";
|
|
18
22
|
import { useRequestQuery } from "@routup/basic/query";
|
|
19
|
-
import { DBody, DController, DDelete, DGet, DPath, DPost, DPut, DRequest, DResponse, DTags } from "@routup/decorators";
|
|
20
23
|
import { URL } from "node:url";
|
|
21
24
|
//#region src/adapters/http/controllers/entities/identity-provider/module.ts
|
|
22
25
|
function _ts_decorate(decorators, target, key, desc) {
|
|
@@ -52,10 +55,10 @@ var IdentityProviderController = class {
|
|
|
52
55
|
this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();
|
|
53
56
|
this.stateManager = ctx.stateManager;
|
|
54
57
|
}
|
|
55
|
-
async getProviders(
|
|
56
|
-
const { data, meta } = await this.repository.findMany(useRequestQuery(
|
|
58
|
+
async getProviders(event) {
|
|
59
|
+
const { data, meta } = await this.repository.findMany(useRequestQuery(event));
|
|
57
60
|
try {
|
|
58
|
-
const permissionEvaluator = useRequestPermissionEvaluator(
|
|
61
|
+
const permissionEvaluator = useRequestPermissionEvaluator(event);
|
|
59
62
|
await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_READ });
|
|
60
63
|
for (const datum of data) try {
|
|
61
64
|
await permissionEvaluator.evaluate({
|
|
@@ -64,35 +67,35 @@ var IdentityProviderController = class {
|
|
|
64
67
|
});
|
|
65
68
|
} catch {}
|
|
66
69
|
} catch {}
|
|
67
|
-
return
|
|
70
|
+
return {
|
|
68
71
|
data,
|
|
69
72
|
meta
|
|
70
|
-
}
|
|
73
|
+
};
|
|
71
74
|
}
|
|
72
|
-
async getProvider(id,
|
|
73
|
-
const paramId = useRequestParamID(
|
|
74
|
-
const entity = await this.repository.findOneByIdOrName(paramId,
|
|
75
|
-
if (!entity) throw new
|
|
75
|
+
async getProvider(id, event) {
|
|
76
|
+
const paramId = useRequestParamID(event, { isUUID: false });
|
|
77
|
+
const entity = await this.repository.findOneByIdOrName(paramId, getRequestRealmID(event));
|
|
78
|
+
if (!entity) throw new EntityNotFoundError();
|
|
76
79
|
try {
|
|
77
|
-
await useRequestPermissionEvaluator(
|
|
80
|
+
await useRequestPermissionEvaluator(event).evaluate({
|
|
78
81
|
name: PermissionName.IDENTITY_PROVIDER_READ,
|
|
79
82
|
input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity })
|
|
80
83
|
});
|
|
81
84
|
} catch {}
|
|
82
|
-
return
|
|
85
|
+
return entity;
|
|
83
86
|
}
|
|
84
|
-
async editProvider(id, user,
|
|
85
|
-
return this.write(
|
|
87
|
+
async editProvider(id, user, event) {
|
|
88
|
+
return this.write(event, { updateOnly: true });
|
|
86
89
|
}
|
|
87
|
-
async put(id, user,
|
|
88
|
-
return this.write(
|
|
90
|
+
async put(id, user, event) {
|
|
91
|
+
return this.write(event);
|
|
89
92
|
}
|
|
90
|
-
async dropProvider(id,
|
|
91
|
-
const paramId = useRequestParamID(
|
|
92
|
-
const permissionEvaluator = useRequestPermissionEvaluator(
|
|
93
|
+
async dropProvider(id, event) {
|
|
94
|
+
const paramId = useRequestParamID(event);
|
|
95
|
+
const permissionEvaluator = useRequestPermissionEvaluator(event);
|
|
93
96
|
await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_DELETE });
|
|
94
97
|
const entity = await this.repository.findOneBy({ id: paramId });
|
|
95
|
-
if (!entity) throw new
|
|
98
|
+
if (!entity) throw new EntityNotFoundError();
|
|
96
99
|
await permissionEvaluator.evaluate({
|
|
97
100
|
name: PermissionName.IDENTITY_PROVIDER_DELETE,
|
|
98
101
|
input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity })
|
|
@@ -100,13 +103,14 @@ var IdentityProviderController = class {
|
|
|
100
103
|
const { id: entityId } = entity;
|
|
101
104
|
await this.repository.remove(entity);
|
|
102
105
|
entity.id = entityId;
|
|
103
|
-
|
|
106
|
+
event.response.status = 202;
|
|
107
|
+
return entity;
|
|
104
108
|
}
|
|
105
|
-
async addProvider(user,
|
|
106
|
-
return this.write(
|
|
109
|
+
async addProvider(user, event) {
|
|
110
|
+
return this.write(event);
|
|
107
111
|
}
|
|
108
|
-
async authorizeOut(_id,
|
|
109
|
-
const id = useRequestParamID(
|
|
112
|
+
async authorizeOut(_id, event) {
|
|
113
|
+
const id = useRequestParamID(event);
|
|
110
114
|
const entity = await this.resolve(id);
|
|
111
115
|
if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new BadRequestError("Only an identity-provider based on the oauth protocol supports authorize redirect.");
|
|
112
116
|
const authenticator = createIdentityProviderOAuth2Authenticator({
|
|
@@ -116,29 +120,29 @@ var IdentityProviderController = class {
|
|
|
116
120
|
});
|
|
117
121
|
const parameters = {};
|
|
118
122
|
let codeRequest;
|
|
119
|
-
const query = useRequestQuery(
|
|
123
|
+
const query = useRequestQuery(event);
|
|
120
124
|
if (typeof query.codeRequest === "string") {
|
|
121
125
|
let codeRequestDecoded;
|
|
122
126
|
try {
|
|
123
127
|
codeRequestDecoded = JSON.parse(base64URLDecode(query.codeRequest));
|
|
124
128
|
} catch {
|
|
125
|
-
throw
|
|
129
|
+
throw OAuth2RequestError.malformed("The code request is malformed and can not be parsed.");
|
|
126
130
|
}
|
|
127
131
|
const codeRequestValidated = await this.codeRequestValidator.run(codeRequestDecoded);
|
|
128
132
|
const data = await this.codeRequestVerifier.verify(codeRequestValidated);
|
|
129
|
-
if (data.client.realm_id && entity.realm_id && entity.realm_id !== data.client.realm_id) throw
|
|
133
|
+
if (data.client.realm_id && entity.realm_id && entity.realm_id !== data.client.realm_id) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
|
|
130
134
|
codeRequest = data.data;
|
|
131
135
|
}
|
|
132
|
-
parameters.state = await this.saveAuthorizationState(
|
|
133
|
-
return sendRedirect(
|
|
136
|
+
parameters.state = await this.saveAuthorizationState(event, codeRequest);
|
|
137
|
+
return sendRedirect(event, authenticator.buildRedirectURL(parameters));
|
|
134
138
|
}
|
|
135
|
-
async authorizeIn(_id,
|
|
136
|
-
const id = useRequestParamID(
|
|
139
|
+
async authorizeIn(_id, event) {
|
|
140
|
+
const id = useRequestParamID(event);
|
|
137
141
|
const entity = await this.resolve(id);
|
|
138
142
|
if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) throw new Error(`The provider protocol ${entity.protocol} is not valid.`);
|
|
139
|
-
const data = await this.verifyAuthorizationState(
|
|
140
|
-
if (entity.realm_id && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realm_id) throw
|
|
141
|
-
const { code } = useRequestQuery(
|
|
143
|
+
const data = await this.verifyAuthorizationState(event);
|
|
144
|
+
if (entity.realm_id && data.codeRequest && data.codeRequest.realm_id && data.codeRequest.realm_id !== entity.realm_id) throw OAuth2RequestError.malformed("The provider and client realm do not match.");
|
|
145
|
+
const { code } = useRequestQuery(event);
|
|
142
146
|
const user = await createIdentityProviderOAuth2Authenticator({
|
|
143
147
|
accountManager: this.accountManager,
|
|
144
148
|
provider: entity,
|
|
@@ -162,22 +166,24 @@ var IdentityProviderController = class {
|
|
|
162
166
|
});
|
|
163
167
|
if (data.codeRequest) {
|
|
164
168
|
const codeRequestKeys = Object.keys(data.codeRequest);
|
|
165
|
-
const url = new URL(
|
|
169
|
+
const url = new URL(resolveURL(this.options.baseURL, "authorize"));
|
|
166
170
|
for (const codeRequestKey_ of codeRequestKeys) {
|
|
167
171
|
const codeRequestKey = codeRequestKey_;
|
|
168
172
|
if (data.codeRequest[codeRequestKey]) url.searchParams.set(codeRequestKey, data.codeRequest[codeRequestKey]);
|
|
169
173
|
}
|
|
170
174
|
url.searchParams.set("code", authorizationCode.id);
|
|
171
|
-
return sendRedirect(
|
|
175
|
+
return sendRedirect(event, url.href);
|
|
172
176
|
}
|
|
173
177
|
const url = new URL(this.options.baseURL);
|
|
174
178
|
url.searchParams.set("code", authorizationCode.id);
|
|
175
|
-
return sendRedirect(
|
|
179
|
+
return sendRedirect(event, url.href);
|
|
176
180
|
}
|
|
177
|
-
async write(
|
|
181
|
+
async write(event, options = {}) {
|
|
178
182
|
let group;
|
|
179
|
-
const id = getRequestParamID(
|
|
180
|
-
const
|
|
183
|
+
const id = getRequestParamID(event, { isUUID: false });
|
|
184
|
+
const body = await readRequestBody(event);
|
|
185
|
+
applyRouteRealmIDToBody(event, body);
|
|
186
|
+
const realmId = getRequestRealmID(event) ?? getBodyRealmID(body);
|
|
181
187
|
let entity;
|
|
182
188
|
if (id) {
|
|
183
189
|
const where = {};
|
|
@@ -185,9 +191,9 @@ var IdentityProviderController = class {
|
|
|
185
191
|
else where.name = id;
|
|
186
192
|
if (realmId) where.realm_id = realmId;
|
|
187
193
|
entity = await this.repository.findOneBy(where);
|
|
188
|
-
if (!entity && options.updateOnly) throw new
|
|
189
|
-
} else if (options.updateOnly) throw new
|
|
190
|
-
const permissionEvaluator = useRequestPermissionEvaluator(
|
|
194
|
+
if (!entity && options.updateOnly) throw new EntityNotFoundError();
|
|
195
|
+
} else if (options.updateOnly) throw new EntityNotFoundError();
|
|
196
|
+
const permissionEvaluator = useRequestPermissionEvaluator(event);
|
|
191
197
|
if (entity) {
|
|
192
198
|
await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_UPDATE });
|
|
193
199
|
group = ValidatorGroup.UPDATE;
|
|
@@ -195,8 +201,8 @@ var IdentityProviderController = class {
|
|
|
195
201
|
await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_CREATE });
|
|
196
202
|
group = ValidatorGroup.CREATE;
|
|
197
203
|
}
|
|
198
|
-
const data = await new
|
|
199
|
-
const attributes = await new
|
|
204
|
+
const data = await new IdentityProviderValidator().run(body, { group });
|
|
205
|
+
const attributes = await new IdentityProviderAttributesValidator().run(body);
|
|
200
206
|
await this.repository.validateJoinColumns(data);
|
|
201
207
|
if (entity) await permissionEvaluator.evaluate({
|
|
202
208
|
name: PermissionName.IDENTITY_PROVIDER_UPDATE,
|
|
@@ -206,7 +212,7 @@ var IdentityProviderController = class {
|
|
|
206
212
|
} })
|
|
207
213
|
});
|
|
208
214
|
else {
|
|
209
|
-
if (!data.realm_id) data.realm_id = useRequestIdentityOrFail(
|
|
215
|
+
if (!data.realm_id) data.realm_id = useRequestIdentityOrFail(event).realmId;
|
|
210
216
|
await permissionEvaluator.evaluate({
|
|
211
217
|
name: PermissionName.IDENTITY_PROVIDER_CREATE,
|
|
212
218
|
input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data })
|
|
@@ -216,66 +222,60 @@ var IdentityProviderController = class {
|
|
|
216
222
|
if (entity) {
|
|
217
223
|
entity = this.repository.merge(entity, data);
|
|
218
224
|
await this.repository.saveWithEA(entity, attributes);
|
|
219
|
-
|
|
225
|
+
event.response.status = 202;
|
|
226
|
+
return entity;
|
|
220
227
|
}
|
|
221
228
|
entity = this.repository.create(data);
|
|
222
229
|
await this.repository.saveWithEA(entity, attributes);
|
|
223
|
-
|
|
230
|
+
event.response.status = 201;
|
|
231
|
+
return entity;
|
|
224
232
|
}
|
|
225
233
|
async resolve(id) {
|
|
226
234
|
const entity = await this.repository.findOneById(id);
|
|
227
|
-
if (!entity) throw new
|
|
235
|
+
if (!entity) throw new EntityNotFoundError();
|
|
228
236
|
return entity;
|
|
229
237
|
}
|
|
230
|
-
async saveAuthorizationState(
|
|
238
|
+
async saveAuthorizationState(event, codeRequest) {
|
|
231
239
|
return this.stateManager.save({
|
|
232
240
|
codeRequest,
|
|
233
|
-
ip: getRequestIP(
|
|
234
|
-
userAgent: getRequestHeader(
|
|
241
|
+
ip: getRequestIP(event, { trustProxy: true }) ?? "",
|
|
242
|
+
userAgent: getRequestHeader(event, "user-agent") ?? void 0
|
|
235
243
|
});
|
|
236
244
|
}
|
|
237
|
-
async verifyAuthorizationState(
|
|
238
|
-
const query = useRequestQuery(
|
|
239
|
-
if (typeof query.state !== "string") throw
|
|
245
|
+
async verifyAuthorizationState(event) {
|
|
246
|
+
const query = useRequestQuery(event);
|
|
247
|
+
if (typeof query.state !== "string") throw OAuth2RequestError.stateInvalid();
|
|
240
248
|
return this.stateManager.verify(query.state, {
|
|
241
|
-
ip: getRequestIP(
|
|
242
|
-
userAgent: getRequestHeader(
|
|
249
|
+
ip: getRequestIP(event, { trustProxy: true }) ?? "",
|
|
250
|
+
userAgent: getRequestHeader(event, "user-agent") ?? void 0
|
|
243
251
|
});
|
|
244
252
|
}
|
|
245
253
|
};
|
|
246
254
|
_ts_decorate([
|
|
247
255
|
DGet("", []),
|
|
248
|
-
_ts_param(0,
|
|
249
|
-
_ts_param(1, DResponse()),
|
|
256
|
+
_ts_param(0, DContext()),
|
|
250
257
|
_ts_metadata("design:type", Function),
|
|
251
|
-
_ts_metadata("design:paramtypes", [Object
|
|
258
|
+
_ts_metadata("design:paramtypes", [typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
252
259
|
_ts_metadata("design:returntype", Promise)
|
|
253
260
|
], IdentityProviderController.prototype, "getProviders", null);
|
|
254
261
|
_ts_decorate([
|
|
255
262
|
DGet("/:id", []),
|
|
256
263
|
_ts_param(0, DPath("id")),
|
|
257
|
-
_ts_param(1,
|
|
258
|
-
_ts_param(2, DResponse()),
|
|
264
|
+
_ts_param(1, DContext()),
|
|
259
265
|
_ts_metadata("design:type", Function),
|
|
260
|
-
_ts_metadata("design:paramtypes", [
|
|
261
|
-
String,
|
|
262
|
-
Object,
|
|
263
|
-
Object
|
|
264
|
-
]),
|
|
266
|
+
_ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
265
267
|
_ts_metadata("design:returntype", Promise)
|
|
266
268
|
], IdentityProviderController.prototype, "getProvider", null);
|
|
267
269
|
_ts_decorate([
|
|
268
270
|
DPost("/:id", [ForceLoggedInMiddleware]),
|
|
269
271
|
_ts_param(0, DPath("id")),
|
|
270
272
|
_ts_param(1, DBody()),
|
|
271
|
-
_ts_param(2,
|
|
272
|
-
_ts_param(3, DResponse()),
|
|
273
|
+
_ts_param(2, DContext()),
|
|
273
274
|
_ts_metadata("design:type", Function),
|
|
274
275
|
_ts_metadata("design:paramtypes", [
|
|
275
276
|
String,
|
|
276
|
-
typeof
|
|
277
|
-
Object
|
|
278
|
-
Object
|
|
277
|
+
typeof IdentityProviderUpdatePayload === "undefined" ? Object : IdentityProviderUpdatePayload,
|
|
278
|
+
typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent
|
|
279
279
|
]),
|
|
280
280
|
_ts_metadata("design:returntype", Promise)
|
|
281
281
|
], IdentityProviderController.prototype, "editProvider", null);
|
|
@@ -283,72 +283,50 @@ _ts_decorate([
|
|
|
283
283
|
DPut("/:id", [ForceLoggedInMiddleware]),
|
|
284
284
|
_ts_param(0, DPath("id")),
|
|
285
285
|
_ts_param(1, DBody()),
|
|
286
|
-
_ts_param(2,
|
|
287
|
-
_ts_param(3, DResponse()),
|
|
286
|
+
_ts_param(2, DContext()),
|
|
288
287
|
_ts_metadata("design:type", Function),
|
|
289
288
|
_ts_metadata("design:paramtypes", [
|
|
290
289
|
String,
|
|
291
|
-
typeof
|
|
292
|
-
Object
|
|
293
|
-
Object
|
|
290
|
+
typeof IdentityProviderSavePayload === "undefined" ? Object : IdentityProviderSavePayload,
|
|
291
|
+
typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent
|
|
294
292
|
]),
|
|
295
293
|
_ts_metadata("design:returntype", Promise)
|
|
296
294
|
], IdentityProviderController.prototype, "put", null);
|
|
297
295
|
_ts_decorate([
|
|
298
296
|
DDelete("/:id", [ForceLoggedInMiddleware]),
|
|
299
297
|
_ts_param(0, DPath("id")),
|
|
300
|
-
_ts_param(1,
|
|
301
|
-
_ts_param(2, DResponse()),
|
|
298
|
+
_ts_param(1, DContext()),
|
|
302
299
|
_ts_metadata("design:type", Function),
|
|
303
|
-
_ts_metadata("design:paramtypes", [
|
|
304
|
-
String,
|
|
305
|
-
Object,
|
|
306
|
-
Object
|
|
307
|
-
]),
|
|
300
|
+
_ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
308
301
|
_ts_metadata("design:returntype", Promise)
|
|
309
302
|
], IdentityProviderController.prototype, "dropProvider", null);
|
|
310
303
|
_ts_decorate([
|
|
311
304
|
DPost("", [ForceLoggedInMiddleware]),
|
|
312
305
|
_ts_param(0, DBody()),
|
|
313
|
-
_ts_param(1,
|
|
314
|
-
_ts_param(2, DResponse()),
|
|
306
|
+
_ts_param(1, DContext()),
|
|
315
307
|
_ts_metadata("design:type", Function),
|
|
316
|
-
_ts_metadata("design:paramtypes", [
|
|
317
|
-
typeof NonNullable === "undefined" ? Object : NonNullable,
|
|
318
|
-
Object,
|
|
319
|
-
Object
|
|
320
|
-
]),
|
|
308
|
+
_ts_metadata("design:paramtypes", [typeof IdentityProviderCreatePayload === "undefined" ? Object : IdentityProviderCreatePayload, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
321
309
|
_ts_metadata("design:returntype", Promise)
|
|
322
310
|
], IdentityProviderController.prototype, "addProvider", null);
|
|
323
311
|
_ts_decorate([
|
|
324
312
|
DGet("/:id/authorize-out", []),
|
|
325
313
|
_ts_param(0, DPath("id")),
|
|
326
|
-
_ts_param(1,
|
|
327
|
-
_ts_param(2, DResponse()),
|
|
314
|
+
_ts_param(1, DContext()),
|
|
328
315
|
_ts_metadata("design:type", Function),
|
|
329
|
-
_ts_metadata("design:paramtypes", [
|
|
330
|
-
String,
|
|
331
|
-
Object,
|
|
332
|
-
Object
|
|
333
|
-
]),
|
|
316
|
+
_ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
334
317
|
_ts_metadata("design:returntype", Promise)
|
|
335
318
|
], IdentityProviderController.prototype, "authorizeOut", null);
|
|
336
319
|
_ts_decorate([
|
|
337
320
|
DGet("/:id/authorize-in", []),
|
|
338
321
|
_ts_param(0, DPath("id")),
|
|
339
|
-
_ts_param(1,
|
|
340
|
-
_ts_param(2, DResponse()),
|
|
322
|
+
_ts_param(1, DContext()),
|
|
341
323
|
_ts_metadata("design:type", Function),
|
|
342
|
-
_ts_metadata("design:paramtypes", [
|
|
343
|
-
String,
|
|
344
|
-
typeof Request === "undefined" ? Object : Request,
|
|
345
|
-
typeof Response === "undefined" ? Object : Response
|
|
346
|
-
]),
|
|
324
|
+
_ts_metadata("design:paramtypes", [String, typeof IRoutupEvent === "undefined" ? Object : IRoutupEvent]),
|
|
347
325
|
_ts_metadata("design:returntype", Promise)
|
|
348
326
|
], IdentityProviderController.prototype, "authorizeIn", null);
|
|
349
327
|
IdentityProviderController = _ts_decorate([
|
|
350
328
|
DTags("identity"),
|
|
351
|
-
DController("/identity-providers"),
|
|
329
|
+
DController(["/identity-providers", "/realms/:realmId/identity-providers"]),
|
|
352
330
|
_ts_metadata("design:type", Function),
|
|
353
331
|
_ts_metadata("design:paramtypes", [typeof IdentityProviderControllerContext === "undefined" ? Object : IdentityProviderControllerContext])
|
|
354
332
|
], IdentityProviderController);
|
|
@@ -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","ValidatorGroup","base64URLDecode","isUUID","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","getRequestHeader","getRequestIP","sendRedirect","IdentityProviderAttributesValidator","IdentityProviderValidator","IdentityType","PermissionName","isOAuth2IdentityProvider","isOpenIDIdentityProvider","BadRequestError","EntityNotFoundError","resolveURL","useRequestQuery","readRequestBody","OAuth2RequestError","URL","OAuth2AuthorizationCodeRequestValidator","createIdentityProviderOAuth2Authenticator","applyRouteRealmIDToBody","getBodyRealmID","getRequestParamID","getRequestRealmID","useRequestIdentityOrFail","useRequestParamID","useRequestPermissionEvaluator","ForceLoggedInMiddleware","IdentityProviderController","options","repository","realmRepository","accountManager","codeRequestVerifier","codeRequestValidator","stateManager","codeIssuer","ctx","getProviders","event","data","meta","findMany","permissionEvaluator","preEvaluate","name","IDENTITY_PROVIDER_READ","datum","evaluate","input","ATTRIBUTES","getProvider","id","paramId","entity","findOneByIdOrName","editProvider","user","write","updateOnly","put","dropProvider","IDENTITY_PROVIDER_DELETE","findOneBy","entityId","remove","response","status","addProvider","authorizeOut","_id","resolve","authenticator","provider","baseURL","parameters","codeRequest","query","codeRequestDecoded","JSON","parse","malformed","codeRequestValidated","run","verify","client","realm_id","state","saveAuthorizationState","buildRedirectURL","authorizeIn","Error","protocol","verifyAuthorizationState","code","clientId","client_id","authenticate","realm","authorizationCode","issue","response_type","redirect_uri","scope","type","USER","codeRequestKeys","Object","keys","url","codeRequestKey_","codeRequestKey","searchParams","set","href","group","body","realmId","where","IDENTITY_PROVIDER_UPDATE","UPDATE","IDENTITY_PROVIDER_CREATE","CREATE","validator","attributesValidator","attributes","validateJoinColumns","identity","checkUniqueness","undefined","merge","saveWithEA","create","findOneById","save","ip","trustProxy","userAgent","stateInvalid"],"sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { BuiltInPolicyType, PolicyData } from '@authup/access';\nimport { ValidatorGroup, base64URLDecode, isUUID } from '@authup/kit';\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { IRoutupEvent } from 'routup';\nimport {\n getRequestHeader,\n getRequestIP,\n sendRedirect,\n} from 'routup';\nimport type { IdentityProvider, OAuth2AuthorizationCodeRequest } from '@authup/core-kit';\nimport {\n\n IdentityProviderAttributesValidator,\n IdentityProviderValidator,\n IdentityType,\n PermissionName,\n isOAuth2IdentityProvider,\n isOpenIDIdentityProvider,\n} from '@authup/core-kit';\nimport { BadRequestError, EntityNotFoundError } from '@authup/errors';\nimport { resolveURL } from '../../../../../utils/index.ts';\nimport type { AuthorizeParameters } from '@hapic/oauth2';\nimport { useRequestQuery } from '@routup/basic/query';\nimport { readRequestBody } from '@routup/basic/body';\nimport { OAuth2RequestError } from '@authup/specs';\nimport type {\n EntityCollectionResponse,\n IdentityProviderCreatePayload,\n IdentityProviderSavePayload,\n IdentityProviderUpdatePayload,\n} from '@authup/core-http-kit';\nimport { URL } from 'node:url';\nimport type {\n IIdentityProviderAccountManager,\n IIdentityProviderRepository,\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationStateManager,\n IRealmRepository,\n OAuth2AuthorizationState,\n} from '../../../../../core/index.ts';\nimport {\n OAuth2AuthorizationCodeRequestValidator,\n createIdentityProviderOAuth2Authenticator,\n} from '../../../../../core/index.ts';\nimport {\n applyRouteRealmIDToBody,\n getBodyRealmID,\n getRequestParamID,\n getRequestRealmID,\n useRequestIdentityOrFail,\n useRequestParamID,\n useRequestPermissionEvaluator,\n} from '../../../request/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport type { IdentityProviderControllerContext, IdentityProviderControllerOptions } from './types.ts';\n\n@DTags('identity')\n@DController(['/identity-providers', '/realms/:realmId/identity-providers'])\nexport class IdentityProviderController {\n protected options: IdentityProviderControllerOptions;\n\n protected repository: IIdentityProviderRepository;\n\n protected realmRepository: IRealmRepository;\n\n protected accountManager: IIdentityProviderAccountManager;\n\n protected codeRequestVerifier : IOAuth2AuthorizationCodeRequestVerifier;\n\n protected codeRequestValidator : OAuth2AuthorizationCodeRequestValidator;\n\n protected stateManager : IOAuth2AuthorizationStateManager;\n\n protected codeIssuer : IOAuth2AuthorizationCodeIssuer;\n\n // ---------------------------------------------------------\n\n constructor(ctx: IdentityProviderControllerContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.accountManager = ctx.accountManager;\n this.codeIssuer = ctx.codeIssuer;\n this.codeRequestVerifier = ctx.codeRequestVerifier;\n this.codeRequestValidator = new OAuth2AuthorizationCodeRequestValidator();\n this.stateManager = ctx.stateManager;\n }\n\n // ---------------------------------------------------------\n\n @DGet('', [])\n async getProviders(\n @DContext() event: IRoutupEvent,\n ): Promise<EntityCollectionResponse<IdentityProvider>> {\n const {\n data, \n meta, \n } = await this.repository.findMany(useRequestQuery(event));\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_READ });\n\n for (const datum of data) {\n try {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: datum }),\n });\n } catch {\n // do nothing\n }\n }\n } catch {\n // do nothing\n }\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [])\n async getProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ): Promise<IdentityProvider> {\n const paramId = useRequestParamID(event, { isUUID: false });\n\n const entity = await this.repository.findOneByIdOrName(\n paramId,\n getRequestRealmID(event),\n );\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n try {\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_READ,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n } catch {\n // do nothing\n }\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async editProvider(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderUpdatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event, { updateOnly: true });\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() user: IdentityProviderSavePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async dropProvider(\n @DPath('id') id: string,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n const paramId = useRequestParamID(event);\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_DELETE });\n\n const entity = await this.repository.findOneBy({ id: paramId });\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_DELETE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity }),\n });\n\n const { id: entityId } = entity;\n\n await this.repository.remove(entity);\n\n entity.id = entityId;\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async addProvider(\n @DBody() user: IdentityProviderCreatePayload,\n @DContext() event: IRoutupEvent,\n ) : Promise<IdentityProvider> {\n return this.write(event);\n }\n\n // ---------------------------------------------------------\n\n @DGet('/:id/authorize-out', [])\n async authorizeOut(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new BadRequestError('Only an identity-provider based on the oauth protocol supports authorize redirect.');\n }\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: { baseURL: this.options.baseURL },\n });\n\n const parameters : AuthorizeParameters = {};\n\n let codeRequest: OAuth2AuthorizationCodeRequest | undefined;\n const query = useRequestQuery(event);\n if (typeof query.codeRequest === 'string') {\n let codeRequestDecoded: OAuth2AuthorizationCodeRequest;\n\n try {\n codeRequestDecoded = JSON.parse(base64URLDecode(query.codeRequest));\n } catch {\n throw OAuth2RequestError.malformed('The code request is malformed and can not be parsed.');\n }\n\n const codeRequestValidated = await this.codeRequestValidator.run(codeRequestDecoded);\n const data = await this.codeRequestVerifier.verify(codeRequestValidated);\n\n if (\n data.client.realm_id &&\n entity.realm_id &&\n entity.realm_id !== data.client.realm_id\n ) {\n throw OAuth2RequestError.malformed('The provider and client realm do not match.');\n }\n\n codeRequest = data.data;\n }\n\n parameters.state = await this.saveAuthorizationState(event, codeRequest);\n\n return sendRedirect(event, authenticator.buildRedirectURL(parameters));\n }\n\n @DGet('/:id/authorize-in', [])\n async authorizeIn(\n @DPath('id') _id: string,\n @DContext() event: IRoutupEvent,\n ) {\n const id = useRequestParamID(event);\n\n const entity = await this.resolve(id);\n\n if (!isOAuth2IdentityProvider(entity) && !isOpenIDIdentityProvider(entity)) {\n throw new Error(`The provider protocol ${entity.protocol} is not valid.`);\n }\n\n const data = await this.verifyAuthorizationState(event);\n if (\n entity.realm_id &&\n data.codeRequest &&\n data.codeRequest.realm_id &&\n data.codeRequest.realm_id !== entity.realm_id\n ) {\n throw OAuth2RequestError.malformed('The provider and client realm do not match.');\n }\n\n const { code } = useRequestQuery(event);\n\n const authenticator = createIdentityProviderOAuth2Authenticator({\n accountManager: this.accountManager,\n provider: entity,\n options: {\n baseURL: this.options.baseURL,\n clientId: data.codeRequest?.client_id,\n },\n });\n\n const user = await authenticator.authenticate(code);\n\n const realm = await this.realmRepository.resolve(entity.realm_id, true);\n\n const authorizationCode = await this.codeIssuer.issue(\n {\n response_type: 'code',\n client_id: data.codeRequest?.client_id,\n redirect_uri: data.codeRequest?.redirect_uri,\n scope: data.codeRequest?.scope,\n },\n {\n type: IdentityType.USER,\n data: {\n ...user,\n realm,\n },\n },\n );\n\n if (data.codeRequest) {\n const codeRequestKeys = Object.keys(data.codeRequest);\n\n const url = new URL(resolveURL(this.options.baseURL, 'authorize'));\n for (const codeRequestKey_ of codeRequestKeys) {\n const codeRequestKey = codeRequestKey_ as keyof OAuth2AuthorizationCodeRequest;\n if (data.codeRequest[codeRequestKey]) {\n url.searchParams.set(codeRequestKey, data.codeRequest[codeRequestKey]);\n }\n }\n\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n const url = new URL(this.options.baseURL);\n url.searchParams.set('code', authorizationCode.id);\n\n return sendRedirect(event, url.href);\n }\n\n // ---------------------------------------------------------\n\n private async write(event: IRoutupEvent, options: {\n updateOnly?: boolean\n } = {}): Promise<IdentityProvider> {\n let group: string;\n const id = getRequestParamID(event, { isUUID: false });\n const body = await readRequestBody(event);\n applyRouteRealmIDToBody(event, body);\n const realmId = getRequestRealmID(event) ?? getBodyRealmID(body);\n\n let entity: IdentityProvider | null | undefined;\n if (id) {\n const where: Record<string, any> = {};\n if (isUUID(id)) {\n where.id = id;\n } else {\n where.name = id;\n }\n\n if (realmId) {\n where.realm_id = realmId;\n }\n\n entity = await this.repository.findOneBy(where);\n if (!entity && options.updateOnly) {\n throw new EntityNotFoundError();\n }\n } else if (options.updateOnly) {\n throw new EntityNotFoundError();\n }\n\n const permissionEvaluator = useRequestPermissionEvaluator(event);\n if (entity) {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_UPDATE });\n\n group = ValidatorGroup.UPDATE;\n } else {\n await permissionEvaluator.preEvaluate({ name: PermissionName.IDENTITY_PROVIDER_CREATE });\n\n group = ValidatorGroup.CREATE;\n }\n\n const validator = new IdentityProviderValidator();\n const data = await validator.run(body, { group });\n\n const attributesValidator = new IdentityProviderAttributesValidator();\n const attributes = await attributesValidator.run(body);\n\n await this.repository.validateJoinColumns(data);\n\n if (entity) {\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_UPDATE,\n input: new PolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...data,\n },\n }),\n });\n } else {\n if (!data.realm_id) {\n const identity = useRequestIdentityOrFail(event);\n data.realm_id = identity.realmId;\n }\n\n await permissionEvaluator.evaluate({\n name: PermissionName.IDENTITY_PROVIDER_CREATE,\n input: new PolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data }),\n });\n }\n\n await this.repository.checkUniqueness(data, entity || undefined);\n\n if (entity) {\n entity = this.repository.merge(entity, data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 202;\n\n return entity;\n }\n\n entity = this.repository.create(data);\n await this.repository.saveWithEA(entity, attributes);\n\n event.response.status = 201;\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async resolve(id: string) {\n const entity = await this.repository.findOneById(id);\n\n if (!entity) {\n throw new EntityNotFoundError();\n }\n\n return entity;\n }\n\n // ---------------------------------------------------------\n\n private async saveAuthorizationState(\n event: IRoutupEvent,\n codeRequest?: OAuth2AuthorizationCodeRequest,\n ) : Promise<string> {\n return this.stateManager.save({\n codeRequest,\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n\n private async verifyAuthorizationState(event: IRoutupEvent): Promise<OAuth2AuthorizationState> {\n const query = useRequestQuery(event);\n if (typeof query.state !== 'string') {\n throw OAuth2RequestError.stateInvalid();\n }\n\n return this.stateManager.verify(query.state, {\n ip: getRequestIP(event, { trustProxy: true }) ?? '',\n userAgent: getRequestHeader(event, 'user-agent') ?? undefined,\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,25 +1,21 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
1
|
+
import type { EntityCollectionResponse, PermissionAPICheckResponse, PermissionCreatePayload, PermissionSavePayload, PermissionUpdatePayload } from '@authup/core-http-kit';
|
|
2
|
+
import type { Permission } from '@authup/core-kit';
|
|
3
|
+
import type { IRoutupEvent } from 'routup';
|
|
4
|
+
import type { IPermissionCheckerService, IPermissionService } from '../../../../../core/index.ts';
|
|
3
5
|
export type PermissionControllerContext = {
|
|
4
6
|
service: IPermissionService;
|
|
5
|
-
|
|
6
|
-
realmRepository: IRealmRepository;
|
|
7
|
-
identityPermissionProvider: IIdentityPermissionProvider;
|
|
8
|
-
permissionProvider: IPermissionProvider;
|
|
7
|
+
checkerService: IPermissionCheckerService;
|
|
9
8
|
};
|
|
10
9
|
export declare class PermissionController {
|
|
11
10
|
protected service: IPermissionService;
|
|
12
|
-
protected
|
|
13
|
-
protected realmRepository: IRealmRepository;
|
|
14
|
-
protected identityPermissionProvider: IIdentityPermissionProvider;
|
|
15
|
-
protected permissionProvider: IPermissionProvider;
|
|
11
|
+
protected checkerService: IPermissionCheckerService;
|
|
16
12
|
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,
|
|
13
|
+
getMany(event: IRoutupEvent): Promise<EntityCollectionResponse<Permission>>;
|
|
14
|
+
add(data: PermissionCreatePayload, event: IRoutupEvent): Promise<Permission>;
|
|
15
|
+
check(data: any, event: IRoutupEvent): Promise<PermissionAPICheckResponse>;
|
|
16
|
+
get(id: string, event: IRoutupEvent): Promise<Permission>;
|
|
17
|
+
edit(id: string, data: PermissionUpdatePayload, event: IRoutupEvent): Promise<Permission>;
|
|
18
|
+
put(id: string, data: PermissionSavePayload, event: IRoutupEvent): Promise<Permission>;
|
|
19
|
+
drop(id: string, event: IRoutupEvent): Promise<Permission>;
|
|
24
20
|
}
|
|
25
21
|
//# 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;AAanD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,OAAO,KAAK,EACR,yBAAyB,EACzB,kBAAkB,EACrB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,MAAM,2BAA2B,GAAG;IACtC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,cAAc,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAEF,qBAEa,oBAAoB;IAC7B,SAAS,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAEtC,SAAS,CAAC,cAAc,EAAE,yBAAyB,CAAC;gBAExC,GAAG,EAAE,2BAA2B;IAMtC,OAAO,CACG,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAc1C,GAAG,CACI,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAWhB,KAAK,CACE,IAAI,EAAE,GAAG,EACN,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,0BAA0B,CAAC;IAqBhC,GAAG,CACQ,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAYhB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,uBAAuB,EAC1B,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAehB,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,EACxB,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;IAiBhB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAChC,OAAO,CAAC,UAAU,CAAC;CAQzB"}
|