@authup/server-core 1.0.0-beta.52 → 1.0.0-beta.53
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/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +18 -8
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +5 -2
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +28 -4
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/client-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/consent/entity.d.ts +20 -0
- package/dist/adapters/database/domains/consent/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/entity.mjs +110 -0
- package/dist/adapters/database/domains/consent/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/consent/index.d.ts +3 -0
- package/dist/adapters/database/domains/consent/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/index.mjs +6 -0
- package/dist/adapters/database/domains/consent/subscriber.d.ts +6 -0
- package/dist/adapters/database/domains/consent/subscriber.d.ts.map +1 -0
- package/dist/adapters/database/domains/consent/subscriber.mjs +45 -0
- package/dist/adapters/database/domains/consent/subscriber.mjs.map +1 -0
- package/dist/adapters/database/domains/constants.d.ts +1 -0
- package/dist/adapters/database/domains/constants.d.ts.map +1 -1
- package/dist/adapters/database/domains/constants.mjs +1 -0
- package/dist/adapters/database/domains/constants.mjs.map +1 -1
- package/dist/adapters/database/domains/event/entity.d.ts +22 -0
- package/dist/adapters/database/domains/event/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/event/entity.mjs +174 -0
- package/dist/adapters/database/domains/event/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/event/index.d.ts +2 -0
- package/dist/adapters/database/domains/event/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/event/index.mjs +5 -0
- package/dist/adapters/database/domains/identity-provider-account/entity.mjs +2 -2
- package/dist/adapters/database/domains/index.d.ts +4 -0
- package/dist/adapters/database/domains/index.d.ts.map +1 -1
- package/dist/adapters/database/domains/index.mjs +24 -15
- package/dist/adapters/database/domains/key/entity.d.ts +7 -3
- package/dist/adapters/database/domains/key/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/key/entity.mjs +35 -10
- package/dist/adapters/database/domains/key/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/permission-policy/entity.mjs +2 -2
- package/dist/adapters/database/domains/policy/repository.d.ts.map +1 -1
- package/dist/adapters/database/domains/policy/repository.mjs +3 -3
- package/dist/adapters/database/domains/policy/repository.mjs.map +1 -1
- package/dist/adapters/database/domains/robot-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/role/repository.mjs +1 -1
- package/dist/adapters/database/domains/role-permission/entity.mjs +2 -2
- package/dist/adapters/database/domains/session/entity.d.ts +3 -1
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +12 -0
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/trust-anchor/entity.d.ts +13 -0
- package/dist/adapters/database/domains/trust-anchor/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/entity.mjs +55 -0
- package/dist/adapters/database/domains/trust-anchor/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/index.d.ts +2 -0
- package/dist/adapters/database/domains/trust-anchor/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/trust-anchor/index.mjs +5 -0
- package/dist/adapters/database/domains/user-authenticator/entity.d.ts +20 -0
- package/dist/adapters/database/domains/user-authenticator/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/entity.mjs +98 -0
- package/dist/adapters/database/domains/user-authenticator/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/index.d.ts +2 -0
- package/dist/adapters/database/domains/user-authenticator/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/user-authenticator/index.mjs +5 -0
- package/dist/adapters/database/domains/user-permission/entity.mjs +1 -1
- package/dist/adapters/database/errors/driver.d.ts +14 -0
- package/dist/adapters/database/errors/driver.d.ts.map +1 -0
- package/dist/adapters/database/errors/driver.mjs +32 -0
- package/dist/adapters/database/errors/driver.mjs.map +1 -0
- package/dist/adapters/database/errors/index.d.ts +1 -0
- package/dist/adapters/database/errors/index.d.ts.map +1 -1
- package/dist/adapters/database/errors/index.mjs +2 -1
- package/dist/adapters/database/index.mjs +17 -11
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts +50 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs +320 -0
- package/dist/adapters/database/migrations/mysql/1783769340000-Default.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts +50 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs +310 -0
- package/dist/adapters/database/migrations/postgres/1783769340000-Default.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts +1 -1
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +4 -3
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts +4 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +27 -2
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts +9 -1
- package/dist/adapters/http/adapters/oauth2/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +4 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +23 -3
- 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 +4 -3
- 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 +13 -6
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts +38 -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 +119 -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 -0
- 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 +16 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +14 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts +5 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.d.ts.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs +18 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/certificate.mjs.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/index.mjs +2 -1
- package/dist/adapters/http/controllers/entities/consent/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/consent/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/consent/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/consent/module.d.ts +15 -0
- package/dist/adapters/http/controllers/entities/consent/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/consent/module.mjs +82 -0
- package/dist/adapters/http/controllers/entities/consent/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/event/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/event/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/event/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/event/module.d.ts +14 -0
- package/dist/adapters/http/controllers/entities/event/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/event/module.mjs +68 -0
- package/dist/adapters/http/controllers/entities/event/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts +4 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +38 -10
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +3 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.d.ts +5 -0
- package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.mjs +11 -1
- package/dist/adapters/http/controllers/entities/key/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/key/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/key/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/key/module.d.ts +17 -0
- package/dist/adapters/http/controllers/entities/key/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/key/module.mjs +122 -0
- package/dist/adapters/http/controllers/entities/key/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/policy/utils/validation.mjs +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +16 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts +17 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs +120 -0
- package/dist/adapters/http/controllers/entities/trust-anchor/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts +21 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs +154 -0
- package/dist/adapters/http/controllers/entities/user-authenticator/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/index.mjs +7 -1
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts +46 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs +132 -0
- package/dist/adapters/http/controllers/workflows/authenticator-challenge/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +34 -6
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +17 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs +28 -14
- package/dist/adapters/http/controllers/workflows/jwks/handlers/read.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs +28 -14
- package/dist/adapters/http/controllers/workflows/jwks/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +2 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +28 -8
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/types.d.ts +11 -4
- package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +13 -3
- package/dist/adapters/http/middleware/built-in/assets.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +13 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +52 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +2 -0
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts +12 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +75 -6
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +2 -2
- package/dist/adapters/http/request/client-certificate.d.ts +5 -0
- package/dist/adapters/http/request/client-certificate.d.ts.map +1 -0
- package/dist/adapters/http/request/client-certificate.mjs +88 -0
- package/dist/adapters/http/request/client-certificate.mjs.map +1 -0
- package/dist/adapters/http/request/constants.d.ts +1 -0
- package/dist/adapters/http/request/constants.d.ts.map +1 -1
- package/dist/adapters/http/request/constants.mjs +6 -1
- package/dist/adapters/http/request/constants.mjs.map +1 -1
- package/dist/adapters/http/request/event-context.d.ts +19 -0
- package/dist/adapters/http/request/event-context.d.ts.map +1 -0
- package/dist/adapters/http/request/event-context.mjs +37 -0
- package/dist/adapters/http/request/event-context.mjs.map +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -1
- package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts +16 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs +15 -0
- package/dist/adapters/http/request/helpers/mfa-login-ticket.mjs.map +1 -0
- package/dist/adapters/http/request/index.d.ts +3 -0
- package/dist/adapters/http/request/index.d.ts.map +1 -1
- package/dist/adapters/http/request/index.mjs +5 -2
- package/dist/adapters/http/request/types.d.ts +3 -0
- package/dist/adapters/http/request/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/render.mjs +2 -2
- package/dist/app/index.mjs +11 -5
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +22 -2
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.d.ts +14 -0
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +14 -0
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/normalize.d.ts.map +1 -1
- package/dist/app/modules/config/normalize.mjs +30 -2
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/read/env.d.ts.map +1 -1
- package/dist/app/modules/config/read/env.mjs +57 -0
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/types.d.ts +101 -0
- package/dist/app/modules/config/types.d.ts.map +1 -1
- package/dist/app/modules/config/validator.d.ts.map +1 -1
- package/dist/app/modules/config/validator.mjs +16 -0
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/constants.d.ts +3 -0
- package/dist/app/modules/database/constants.d.ts.map +1 -1
- package/dist/app/modules/database/constants.mjs +3 -1
- package/dist/app/modules/database/constants.mjs.map +1 -1
- package/dist/app/modules/database/index.mjs +7 -3
- package/dist/app/modules/database/module.d.ts +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +32 -1
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +8 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/event/index.mjs +5 -0
- package/dist/app/modules/database/repositories/event/repository.d.ts +15 -0
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/event/repository.mjs +113 -0
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/helpers.d.ts +4 -2
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +7 -3
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/index.d.ts +4 -0
- package/dist/app/modules/database/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/index.mjs +9 -1
- package/dist/app/modules/database/repositories/key/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/key/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/key/index.mjs +5 -0
- package/dist/app/modules/database/repositories/key/repository.d.ts +50 -0
- package/dist/app/modules/database/repositories/key/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/key/repository.mjs +273 -0
- package/dist/app/modules/database/repositories/key/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/permission-provider/module.mjs +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/trust-anchor/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/trust-anchor/index.mjs +5 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts +24 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +113 -0
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.d.ts +2 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/index.mjs +5 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts +19 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.d.ts.map +1 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs +92 -0
- package/dist/app/modules/database/repositories/user-authenticator/repository.mjs.map +1 -0
- package/dist/app/modules/http/module.d.ts +8 -0
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +19 -1
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +16 -3
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +186 -15
- 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 +10 -4
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +2 -2
- package/dist/app/modules/index.d.ts +1 -0
- package/dist/app/modules/index.d.ts.map +1 -1
- package/dist/app/modules/index.mjs +13 -6
- package/dist/app/modules/mail/module.d.ts.map +1 -1
- package/dist/app/modules/mail/module.mjs +2 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/metrics/constants.d.ts +4 -0
- package/dist/app/modules/metrics/constants.d.ts.map +1 -0
- package/dist/app/modules/metrics/constants.mjs +10 -0
- package/dist/app/modules/metrics/constants.mjs.map +1 -0
- package/dist/app/modules/metrics/index.d.ts +3 -0
- package/dist/app/modules/metrics/index.d.ts.map +1 -0
- package/dist/app/modules/metrics/index.mjs +6 -0
- package/dist/app/modules/metrics/prom.d.ts +15 -0
- package/dist/app/modules/metrics/prom.d.ts.map +1 -0
- package/dist/app/modules/metrics/prom.mjs +42 -0
- package/dist/app/modules/metrics/prom.mjs.map +1 -0
- package/dist/app/modules/oauth2/constants.d.ts +9 -2
- package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs +7 -1
- package/dist/app/modules/oauth2/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/module.d.ts.map +1 -1
- package/dist/app/modules/oauth2/module.mjs +23 -4
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/consent/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/consent/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts +20 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +116 -0
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts +1 -1
- package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.mjs +3 -3
- package/dist/app/modules/oauth2/repositories/token/repository.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs +8 -0
- package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +16 -5
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs +22 -7
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs +12 -2
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- package/dist/components/event-cleaner/index.d.ts +2 -0
- package/dist/components/event-cleaner/index.d.ts.map +1 -0
- package/dist/components/event-cleaner/index.mjs +5 -0
- package/dist/components/event-cleaner/module.d.ts +5 -0
- package/dist/components/event-cleaner/module.d.ts.map +1 -0
- package/dist/components/event-cleaner/module.mjs +30 -0
- package/dist/components/event-cleaner/module.mjs.map +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.mjs +3 -1
- package/dist/components/oauth2-cleaner/module.d.ts +2 -1
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +9 -4
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.d.ts +1 -1
- package/dist/core/authentication/credential/entities/client/module.d.ts.map +1 -1
- package/dist/core/authentication/credential/entities/client/module.mjs +2 -1
- package/dist/core/authentication/credential/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/entities/client/module.mjs +2 -2
- package/dist/core/authentication/entities/client/module.mjs.map +1 -1
- package/dist/core/authentication/index.d.ts +1 -0
- package/dist/core/authentication/index.d.ts.map +1 -1
- package/dist/core/authentication/index.mjs +3 -1
- package/dist/core/authentication/login-throttle/index.d.ts +3 -0
- package/dist/core/authentication/login-throttle/index.d.ts.map +1 -0
- package/dist/core/authentication/login-throttle/index.mjs +5 -0
- package/dist/core/authentication/login-throttle/service.d.ts +13 -0
- package/dist/core/authentication/login-throttle/service.d.ts.map +1 -0
- package/dist/core/authentication/login-throttle/service.mjs +33 -0
- package/dist/core/authentication/login-throttle/service.mjs.map +1 -0
- package/dist/core/authentication/login-throttle/types.d.ts +34 -0
- package/dist/core/authentication/login-throttle/types.d.ts.map +1 -0
- package/dist/core/authentication/session/module.d.ts +1 -0
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +4 -0
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +6 -0
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs.map +1 -1
- package/dist/core/client-certificate/index.d.ts +3 -0
- package/dist/core/client-certificate/index.d.ts.map +1 -0
- package/dist/core/client-certificate/index.mjs +5 -0
- package/dist/core/client-certificate/module.d.ts +18 -0
- package/dist/core/client-certificate/module.d.ts.map +1 -0
- package/dist/core/client-certificate/module.mjs +195 -0
- package/dist/core/client-certificate/module.mjs.map +1 -0
- package/dist/core/client-certificate/types.d.ts +22 -0
- package/dist/core/client-certificate/types.d.ts.map +1 -0
- package/dist/core/client-certificate/types.mjs +4 -0
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +15 -7
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/web-client.d.ts.map +1 -1
- package/dist/core/entities/client/web-client.mjs +3 -2
- package/dist/core/entities/client/web-client.mjs.map +1 -1
- package/dist/core/entities/consent/index.d.ts +3 -0
- package/dist/core/entities/consent/index.d.ts.map +1 -0
- package/dist/core/entities/consent/index.mjs +6 -0
- package/dist/core/entities/consent/service.d.ts +19 -0
- package/dist/core/entities/consent/service.d.ts.map +1 -0
- package/dist/core/entities/consent/service.mjs +122 -0
- package/dist/core/entities/consent/service.mjs.map +1 -0
- package/dist/core/entities/consent/types.d.ts +97 -0
- package/dist/core/entities/consent/types.d.ts.map +1 -0
- package/dist/core/entities/consent/types.mjs +25 -0
- package/dist/core/entities/consent/types.mjs.map +1 -0
- package/dist/core/entities/event/constants.d.ts +7 -0
- package/dist/core/entities/event/constants.d.ts.map +1 -0
- package/dist/core/entities/event/constants.mjs +13 -0
- package/dist/core/entities/event/constants.mjs.map +1 -0
- package/dist/core/entities/event/diff.d.ts +20 -0
- package/dist/core/entities/event/diff.d.ts.map +1 -0
- package/dist/core/entities/event/diff.mjs +45 -0
- package/dist/core/entities/event/diff.mjs.map +1 -0
- package/dist/core/entities/event/entity-event-handler.d.ts +19 -0
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -0
- package/dist/core/entities/event/entity-event-handler.mjs +100 -0
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -0
- package/dist/core/entities/event/index.d.ts +7 -0
- package/dist/core/entities/event/index.d.ts.map +1 -0
- package/dist/core/entities/event/index.mjs +9 -0
- package/dist/core/entities/event/sanitize.d.ts +2 -0
- package/dist/core/entities/event/sanitize.d.ts.map +1 -0
- package/dist/core/entities/event/sanitize.mjs +83 -0
- package/dist/core/entities/event/sanitize.mjs.map +1 -0
- package/dist/core/entities/event/service.d.ts +22 -0
- package/dist/core/entities/event/service.d.ts.map +1 -0
- package/dist/core/entities/event/service.mjs +169 -0
- package/dist/core/entities/event/service.mjs.map +1 -0
- package/dist/core/entities/event/types.d.ts +124 -0
- package/dist/core/entities/event/types.d.ts.map +1 -0
- package/dist/core/entities/event/types.mjs +4 -0
- package/dist/core/entities/identity-provider-role-mapping/service.mjs +2 -2
- package/dist/core/entities/identity-provider-role-mapping/service.mjs.map +1 -1
- package/dist/core/entities/index.d.ts +5 -0
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +20 -1
- package/dist/core/entities/key/index.d.ts +3 -0
- package/dist/core/entities/key/index.d.ts.map +1 -0
- package/dist/core/entities/key/index.mjs +5 -0
- package/dist/core/entities/key/service.d.ts +55 -0
- package/dist/core/entities/key/service.d.ts.map +1 -0
- package/dist/core/entities/key/service.mjs +301 -0
- package/dist/core/entities/key/service.mjs.map +1 -0
- package/dist/core/entities/key/types.d.ts +33 -0
- package/dist/core/entities/key/types.d.ts.map +1 -0
- package/dist/core/entities/key/types.mjs +4 -0
- package/dist/core/entities/permission/service.mjs +3 -3
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/policy/service.mjs +4 -4
- package/dist/core/entities/policy/service.mjs.map +1 -1
- package/dist/core/entities/realm/service.d.ts +3 -0
- package/dist/core/entities/realm/service.d.ts.map +1 -1
- package/dist/core/entities/realm/service.mjs +6 -3
- package/dist/core/entities/realm/service.mjs.map +1 -1
- package/dist/core/entities/role/service.mjs +2 -2
- package/dist/core/entities/role/service.mjs.map +1 -1
- package/dist/core/entities/role-attribute/service.mjs +3 -3
- package/dist/core/entities/role-attribute/service.mjs.map +1 -1
- package/dist/core/entities/session/service.mjs +5 -2
- package/dist/core/entities/session/service.mjs.map +1 -1
- package/dist/core/entities/trust-anchor/index.d.ts +3 -0
- package/dist/core/entities/trust-anchor/index.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/index.mjs +5 -0
- package/dist/core/entities/trust-anchor/service.d.ts +33 -0
- package/dist/core/entities/trust-anchor/service.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/service.mjs +175 -0
- package/dist/core/entities/trust-anchor/service.mjs.map +1 -0
- package/dist/core/entities/trust-anchor/types.d.ts +14 -0
- package/dist/core/entities/trust-anchor/types.d.ts.map +1 -0
- package/dist/core/entities/trust-anchor/types.mjs +4 -0
- package/dist/core/entities/user/service.mjs +2 -2
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user-attribute/service.mjs +4 -4
- package/dist/core/entities/user-attribute/service.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/constants.d.ts +26 -0
- package/dist/core/entities/user-authenticator/constants.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/constants.mjs +32 -0
- package/dist/core/entities/user-authenticator/constants.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/helpers.d.ts +10 -0
- package/dist/core/entities/user-authenticator/helpers.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/helpers.mjs +35 -0
- package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/index.d.ts +6 -0
- package/dist/core/entities/user-authenticator/index.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/index.mjs +9 -0
- package/dist/core/entities/user-authenticator/service.d.ts +89 -0
- package/dist/core/entities/user-authenticator/service.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/service.mjs +709 -0
- package/dist/core/entities/user-authenticator/service.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/types.d.ts +221 -0
- package/dist/core/entities/user-authenticator/types.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/types.mjs +15 -0
- package/dist/core/entities/user-authenticator/types.mjs.map +1 -0
- package/dist/core/entities/user-authenticator/webauthn.d.ts +28 -0
- package/dist/core/entities/user-authenticator/webauthn.d.ts.map +1 -0
- package/dist/core/entities/user-authenticator/webauthn.mjs +88 -0
- package/dist/core/entities/user-authenticator/webauthn.mjs.map +1 -0
- package/dist/core/identity/index.mjs +2 -1
- package/dist/core/identity/password-recovery/disabled.d.ts +2 -2
- package/dist/core/identity/password-recovery/disabled.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/disabled.mjs +2 -2
- package/dist/core/identity/password-recovery/disabled.mjs.map +1 -1
- package/dist/core/identity/password-recovery/email-verification-required.d.ts +2 -2
- package/dist/core/identity/password-recovery/email-verification-required.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/email-verification-required.mjs +2 -2
- package/dist/core/identity/password-recovery/email-verification-required.mjs.map +1 -1
- package/dist/core/identity/password-recovery/service.d.ts +2 -1
- package/dist/core/identity/password-recovery/service.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +26 -4
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.d.ts +2 -2
- package/dist/core/identity/password-recovery/token-expired.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/token-expired.mjs +2 -2
- package/dist/core/identity/password-recovery/token-expired.mjs.map +1 -1
- package/dist/core/identity/password-recovery/types.d.ts +2 -1
- package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
- 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 +2 -1
- package/dist/core/identity/policy/checker/service.mjs +1 -1
- package/dist/core/identity/policy/checker/service.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +2 -2
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/registration/error.d.ts +2 -2
- package/dist/core/identity/registration/error.d.ts.map +1 -1
- package/dist/core/identity/registration/error.mjs +2 -2
- package/dist/core/identity/registration/error.mjs.map +1 -1
- package/dist/core/identity/registration/service.d.ts +2 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +26 -4
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/identity/registration/types.d.ts +2 -1
- package/dist/core/identity/registration/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.mjs +39 -8
- package/dist/core/key/certificate-error.d.ts +10 -0
- package/dist/core/key/certificate-error.d.ts.map +1 -0
- package/dist/core/key/certificate-error.mjs +19 -0
- package/dist/core/key/certificate-error.mjs.map +1 -0
- package/dist/core/key/certificate.d.ts +15 -0
- package/dist/core/key/certificate.d.ts.map +1 -0
- package/dist/core/key/certificate.mjs +72 -0
- package/dist/core/key/certificate.mjs.map +1 -0
- package/dist/core/key/check.d.ts +3 -0
- package/dist/core/key/check.d.ts.map +1 -0
- package/dist/core/key/check.mjs +13 -0
- package/dist/core/key/check.mjs.map +1 -0
- package/dist/core/key/constants.d.ts +10 -0
- package/dist/core/key/constants.d.ts.map +1 -0
- package/dist/core/key/constants.mjs +15 -0
- package/dist/core/key/constants.mjs.map +1 -0
- package/dist/core/key/error.d.ts +14 -0
- package/dist/core/key/error.d.ts.map +1 -0
- package/dist/core/key/error.mjs +23 -0
- package/dist/core/key/error.mjs.map +1 -0
- package/dist/core/key/index.d.ts +10 -0
- package/dist/core/key/index.d.ts.map +1 -0
- package/dist/core/key/index.mjs +12 -0
- package/dist/core/key/provisioner.d.ts +22 -0
- package/dist/core/key/provisioner.d.ts.map +1 -0
- package/dist/core/key/provisioner.mjs +30 -0
- package/dist/core/key/provisioner.mjs.map +1 -0
- package/dist/core/key/realm-cipher.d.ts +20 -0
- package/dist/core/key/realm-cipher.d.ts.map +1 -0
- package/dist/core/key/realm-cipher.mjs +60 -0
- package/dist/core/key/realm-cipher.mjs.map +1 -0
- package/dist/core/key/types.d.ts +59 -0
- package/dist/core/key/types.d.ts.map +1 -0
- package/dist/core/key/types.mjs +4 -0
- package/dist/core/key/wrap.d.ts +5 -0
- package/dist/core/key/wrap.d.ts.map +1 -0
- package/dist/core/key/wrap.mjs +21 -0
- package/dist/core/key/wrap.mjs.map +1 -0
- package/dist/core/mail/template/registry.d.ts.map +1 -1
- package/dist/core/mail/template/registry.mjs +3 -1
- package/dist/core/mail/template/registry.mjs.map +1 -1
- package/dist/core/mail/template/templates/mfa-email-otp.d.ts +3 -0
- package/dist/core/mail/template/templates/mfa-email-otp.d.ts.map +1 -0
- package/dist/core/mail/template/templates/mfa-email-otp.mjs +34 -0
- package/dist/core/mail/template/templates/mfa-email-otp.mjs.map +1 -0
- package/dist/core/mail/template/types.d.ts +6 -1
- package/dist/core/mail/template/types.d.ts.map +1 -1
- package/dist/core/mail/template/types.mjs +1 -0
- package/dist/core/mail/template/types.mjs.map +1 -1
- package/dist/core/metrics/index.d.ts +3 -0
- package/dist/core/metrics/index.d.ts.map +1 -0
- package/dist/core/metrics/index.mjs +5 -0
- package/dist/core/metrics/noop.d.ts +8 -0
- package/dist/core/metrics/noop.d.ts.map +1 -0
- package/dist/core/metrics/noop.mjs +14 -0
- package/dist/core/metrics/noop.mjs.map +1 -0
- package/dist/core/metrics/types.d.ts +19 -0
- package/dist/core/metrics/types.d.ts.map +1 -0
- package/dist/core/metrics/types.mjs +4 -0
- package/dist/core/oauth2/access-policy/index.d.ts +3 -0
- package/dist/core/oauth2/access-policy/index.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/index.mjs +5 -0
- package/dist/core/oauth2/access-policy/module.d.ts +12 -0
- package/dist/core/oauth2/access-policy/module.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/module.mjs +32 -0
- package/dist/core/oauth2/access-policy/module.mjs.map +1 -0
- package/dist/core/oauth2/access-policy/types.d.ts +19 -0
- package/dist/core/oauth2/access-policy/types.d.ts.map +1 -0
- package/dist/core/oauth2/access-policy/types.mjs +4 -0
- package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/module.mjs +2 -0
- package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts +6 -1
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.mjs +1 -0
- package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +3 -3
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/helpers.d.ts +10 -1
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +28 -2
- package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
- package/dist/core/oauth2/authorization/index.mjs +2 -2
- package/dist/core/oauth2/authorization/module.d.ts +9 -0
- package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +80 -3
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/types.d.ts +36 -0
- package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
- package/dist/core/oauth2/client/authenticator.d.ts +16 -7
- package/dist/core/oauth2/client/authenticator.d.ts.map +1 -1
- package/dist/core/oauth2/client/authenticator.mjs +49 -12
- package/dist/core/oauth2/client/authenticator.mjs.map +1 -1
- package/dist/core/oauth2/end-session/service.d.ts +2 -1
- package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
- package/dist/core/oauth2/end-session/service.mjs +13 -0
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/end-session/types.d.ts +2 -1
- package/dist/core/oauth2/end-session/types.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.d.ts +2 -2
- package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs +12 -8
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/client-credentials.mjs +5 -3
- package/dist/core/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/identity.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/identity.mjs +10 -3
- package/dist/core/oauth2/grant-types/identity.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/password.d.ts +9 -0
- package/dist/core/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/password.mjs +32 -4
- package/dist/core/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.d.ts +4 -0
- package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs +17 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/robot-credentials.mjs +3 -2
- package/dist/core/oauth2/grant-types/robot-credentials.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/types.d.ts +10 -3
- package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/core/oauth2/index.d.ts +2 -1
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +7 -2
- package/dist/core/oauth2/mfa-login/index.d.ts +3 -0
- package/dist/core/oauth2/mfa-login/index.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/index.mjs +5 -0
- package/dist/core/oauth2/mfa-login/module.d.ts +19 -0
- package/dist/core/oauth2/mfa-login/module.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/module.mjs +109 -0
- package/dist/core/oauth2/mfa-login/module.mjs.map +1 -0
- package/dist/core/oauth2/mfa-login/types.d.ts +64 -0
- package/dist/core/oauth2/mfa-login/types.d.ts.map +1 -0
- package/dist/core/oauth2/mfa-login/types.mjs +4 -0
- package/dist/core/oauth2/token/index.mjs +2 -1
- package/dist/core/oauth2/token/issuer/index.d.ts +1 -0
- package/dist/core/oauth2/token/issuer/index.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/index.mjs +3 -1
- package/dist/core/oauth2/token/issuer/mfa/index.d.ts +2 -0
- package/dist/core/oauth2/token/issuer/mfa/index.d.ts.map +1 -0
- package/dist/core/oauth2/token/issuer/mfa/index.mjs +5 -0
- package/dist/core/oauth2/token/issuer/mfa/module.d.ts +18 -0
- package/dist/core/oauth2/token/issuer/mfa/module.d.ts.map +1 -0
- package/dist/core/oauth2/token/issuer/mfa/module.mjs +36 -0
- package/dist/core/oauth2/token/issuer/mfa/module.mjs.map +1 -0
- package/dist/core/oauth2/token/repository/types.d.ts +10 -0
- package/dist/core/oauth2/token/repository/types.d.ts.map +1 -1
- package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/revoker/module.mjs +1 -0
- package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
- package/dist/core/oauth2/token/signer/module.d.ts +3 -3
- package/dist/core/oauth2/token/signer/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/signer/module.mjs +5 -6
- package/dist/core/oauth2/token/signer/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/module.d.ts +3 -3
- package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs +8 -5
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/index.mjs +52 -30
- package/dist/swagger.json +5431 -2952
- package/dist/ui/client/.vite/ssr-manifest.json +3888 -864
- package/dist/ui/client/assets/index-BmWsoQro.css +2 -0
- package/dist/ui/client/assets/{index-CP9HCHoS.js → index-CT0Nq5pA.js} +18 -17
- package/dist/ui/client/index.html +2 -2
- package/dist/ui/server/server.js +19470 -18436
- package/package.json +22 -16
- package/dist/app/modules/oauth2/repositories/key/index.d.ts.map +0 -1
- package/dist/app/modules/oauth2/repositories/key/index.mjs +0 -5
- package/dist/app/modules/oauth2/repositories/key/repository.d.ts +0 -14
- package/dist/app/modules/oauth2/repositories/key/repository.d.ts.map +0 -1
- package/dist/app/modules/oauth2/repositories/key/repository.mjs +0 -51
- package/dist/app/modules/oauth2/repositories/key/repository.mjs.map +0 -1
- package/dist/core/oauth2/key/index.d.ts +0 -2
- package/dist/core/oauth2/key/index.d.ts.map +0 -1
- package/dist/core/oauth2/key/types.d.ts +0 -16
- package/dist/core/oauth2/key/types.d.ts.map +0 -1
- package/dist/ui/client/assets/index-VM4JXBXw.css +0 -2
- /package/dist/{core/oauth2/key → adapters/http/request}/types.mjs +0 -0
- /package/dist/app/modules/{oauth2/repositories/key → database/repositories/event}/index.d.ts +0 -0
- /package/dist/core/{oauth2/key/index.mjs → authentication/login-throttle/types.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["BuiltInPolicyType","definePolicyData","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","ATTRIBUTES","REALM_MATCH","realm_id","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","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","codeRequestValue","searchParams","set","String","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, definePolicyData } 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 { IAppEvent } 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: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: datum, [BuiltInPolicyType.REALM_MATCH]: datum.realm_id ?? null }),\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: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, [BuiltInPolicyType.REALM_MATCH]: entity.realm_id ?? null }),\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: IAppEvent,\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: IAppEvent,\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: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, [BuiltInPolicyType.REALM_MATCH]: entity.realm_id ?? null }),\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: IAppEvent,\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: IAppEvent,\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: IAppEvent,\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 const codeRequestValue = data.codeRequest[codeRequestKey];\n // Preserve meaningful falsy values (e.g. max_age=0, which OIDC\n // treats as prompt=login) — only skip absent ones.\n if (typeof codeRequestValue !== 'undefined' && codeRequestValue !== null) {\n url.searchParams.set(codeRequestKey, String(codeRequestValue));\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: IAppEvent, 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 data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...data,\n },\n [BuiltInPolicyType.REALM_MATCH]: data.realm_id ?? entity.realm_id ?? null,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data, [BuiltInPolicyType.REALM_MATCH]: data.realm_id ?? null }),\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: IAppEvent,\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: IAppEvent): 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
|
+
{"version":3,"file":"module.mjs","names":["BuiltInPolicyType","definePolicyData","ValidatorGroup","base64URLDecode","isUUID","DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","getRequestHeader","getRequestIP","sendRedirect","IdentityProviderAttributesValidator","IdentityProviderValidator","IdentityType","PermissionName","SessionAuthMethod","isOAuth2IdentityProvider","isOpenIDIdentityProvider","BadRequestError","EntityNotFoundError","resolveURL","useRequestQuery","readRequestBody","OAuth2ErrorCode","OAuth2RequestError","URL","OAuth2AuthorizationCodeRequestValidator","createIdentityProviderOAuth2Authenticator","toIdentityPolicyData","applyRouteRealmIDToBody","getBodyRealmID","getRequestParamID","getRequestRealmID","useRequestIdentityOrFail","useRequestParamID","useRequestPermissionEvaluator","ForceLoggedInMiddleware","IdentityProviderController","options","repository","realmRepository","clientRepository","accountManager","codeRequestVerifier","codeRequestValidator","stateManager","codeIssuer","accessPolicyEvaluator","ctx","getProviders","event","data","meta","findMany","permissionEvaluator","preEvaluate","name","IDENTITY_PROVIDER_READ","datum","evaluate","ATTRIBUTES","REALM_MATCH","realm_id","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","state","saveAuthorizationState","buildRedirectURL","authorizeIn","Error","protocol","verifyAuthorizationState","code","clientId","client_id","authenticate","realm","access_policy_id","allowed","subject","type","USER","url","buildHostedAuthorizeURL","searchParams","set","ACCESS_DENIED","href","authorizationCode","issue","response_type","redirect_uri","scope","authMethod","EXTERNAL","group","body","realmId","where","IDENTITY_PROVIDER_UPDATE","UPDATE","IDENTITY_PROVIDER_CREATE","CREATE","validator","attributesValidator","attributes","validateJoinColumns","identity","checkUniqueness","undefined","merge","saveWithEA","create","codeRequestKeys","Object","keys","codeRequestKey_","codeRequestKey","codeRequestValue","String","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, definePolicyData } 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 { IAppEvent } 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 SessionAuthMethod,\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 { OAuth2ErrorCode, 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 IOAuth2AccessPolicyEvaluator,\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2ClientRepository,\n IRealmRepository,\n OAuth2AuthorizationState,\n} from '../../../../../core/index.ts';\nimport {\n OAuth2AuthorizationCodeRequestValidator,\n createIdentityProviderOAuth2Authenticator,\n toIdentityPolicyData,\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 clientRepository: IOAuth2ClientRepository;\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 protected accessPolicyEvaluator? : IOAuth2AccessPolicyEvaluator;\n\n // ---------------------------------------------------------\n\n constructor(ctx: IdentityProviderControllerContext) {\n this.options = ctx.options;\n this.repository = ctx.repository;\n this.realmRepository = ctx.realmRepository;\n this.clientRepository = ctx.clientRepository;\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 this.accessPolicyEvaluator = ctx.accessPolicyEvaluator;\n }\n\n // ---------------------------------------------------------\n\n @DGet('', [])\n async getProviders(\n @DContext() event: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: datum, [BuiltInPolicyType.REALM_MATCH]: datum.realm_id ?? null }),\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: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, [BuiltInPolicyType.REALM_MATCH]: entity.realm_id ?? null }),\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: IAppEvent,\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: IAppEvent,\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: IAppEvent,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: entity, [BuiltInPolicyType.REALM_MATCH]: entity.realm_id ?? null }),\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: IAppEvent,\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: IAppEvent,\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: IAppEvent,\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 // Application access policy (plan 052), federated leg: the callback\n // never redirects to the RP directly — a denial bounces back to the\n // hosted authorize page with error=access_denied, so no\n // redirectUriVerified threading through the state blob is needed.\n // A policy id with no wired evaluator denies (fail closed); a\n // since-deleted client is skipped (the /token backstop still covers it).\n if (data.codeRequest?.client_id) {\n const client = await this.clientRepository.findOneByIdOrName(\n data.codeRequest.client_id,\n data.codeRequest.realm_id,\n );\n\n if (client?.access_policy_id) {\n let allowed = false;\n\n const subject = toIdentityPolicyData({\n type: IdentityType.USER,\n data: {\n ...user,\n realm,\n },\n });\n if (this.accessPolicyEvaluator && subject) {\n allowed = await this.accessPolicyEvaluator.evaluate(\n client.access_policy_id,\n subject,\n );\n }\n\n if (!allowed) {\n const url = this.buildHostedAuthorizeURL(data.codeRequest);\n url.searchParams.set('error', OAuth2ErrorCode.ACCESS_DENIED);\n\n return sendRedirect(event, url.href);\n }\n }\n }\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 { authMethod: SessionAuthMethod.EXTERNAL },\n );\n\n if (data.codeRequest) {\n const url = this.buildHostedAuthorizeURL(data.codeRequest);\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: IAppEvent, 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 data: definePolicyData({\n [BuiltInPolicyType.ATTRIBUTES]: {\n ...entity,\n ...data,\n },\n [BuiltInPolicyType.REALM_MATCH]: data.realm_id ?? entity.realm_id ?? null,\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 data: definePolicyData({ [BuiltInPolicyType.ATTRIBUTES]: data, [BuiltInPolicyType.REALM_MATCH]: data.realm_id ?? null }),\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 buildHostedAuthorizeURL(codeRequest: OAuth2AuthorizationCodeRequest): URL {\n const url = new URL(resolveURL(this.options.baseURL, 'authorize'));\n\n const codeRequestKeys = Object.keys(codeRequest);\n for (const codeRequestKey_ of codeRequestKeys) {\n const codeRequestKey = codeRequestKey_ as keyof OAuth2AuthorizationCodeRequest;\n const codeRequestValue = codeRequest[codeRequestKey];\n // Preserve meaningful falsy values (e.g. max_age=0, which OIDC\n // treats as prompt=login) — only skip absent ones.\n if (typeof codeRequestValue !== 'undefined' && codeRequestValue !== null) {\n url.searchParams.set(codeRequestKey, String(codeRequestValue));\n }\n }\n\n return url;\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: IAppEvent,\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: IAppEvent): 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,4 +1,4 @@
|
|
|
1
|
-
import type { IIdentityProviderAccountManager, IIdentityProviderRepository, IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationStateManager, IRealmRepository } from '../../../../../core/index.ts';
|
|
1
|
+
import type { IIdentityProviderAccountManager, IIdentityProviderRepository, IOAuth2AccessPolicyEvaluator, IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationStateManager, IOAuth2ClientRepository, IRealmRepository } from '../../../../../core/index.ts';
|
|
2
2
|
export type IdentityProviderControllerOptions = {
|
|
3
3
|
baseURL: string;
|
|
4
4
|
};
|
|
@@ -6,9 +6,11 @@ export type IdentityProviderControllerContext = {
|
|
|
6
6
|
options: IdentityProviderControllerOptions;
|
|
7
7
|
repository: IIdentityProviderRepository;
|
|
8
8
|
realmRepository: IRealmRepository;
|
|
9
|
+
clientRepository: IOAuth2ClientRepository;
|
|
9
10
|
accountManager: IIdentityProviderAccountManager;
|
|
10
11
|
codeIssuer: IOAuth2AuthorizationCodeIssuer;
|
|
11
12
|
codeRequestVerifier: IOAuth2AuthorizationCodeRequestVerifier;
|
|
12
13
|
stateManager: IOAuth2AuthorizationStateManager;
|
|
14
|
+
accessPolicyEvaluator?: IOAuth2AccessPolicyEvaluator;
|
|
13
15
|
};
|
|
14
16
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,gBAAgB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,iCAAiC,CAAC;IAE3C,UAAU,EAAE,2BAA2B,CAAC;IACxC,eAAe,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/identity-provider/types.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,+BAA+B,EAC/B,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,uCAAuC,EACvC,gCAAgC,EAChC,uBAAuB,EACvB,gBAAgB,EACnB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC5C,OAAO,EAAE,iCAAiC,CAAC;IAE3C,UAAU,EAAE,2BAA2B,CAAC;IACxC,eAAe,EAAE,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,uBAAuB,CAAC;IAE1C,cAAc,EAAE,+BAA+B,CAAC;IAChD,UAAU,EAAE,8BAA8B,CAAC;IAC3C,mBAAmB,EAAE,uCAAuC,CAAC;IAC7D,YAAY,EAAE,gCAAgC,CAAC;IAE/C,qBAAqB,CAAC,EAAE,4BAA4B,CAAC;CACxD,CAAC"}
|
|
@@ -2,8 +2,11 @@ export * from './client/index.ts';
|
|
|
2
2
|
export * from './client-permission/index.ts';
|
|
3
3
|
export * from './client-role/index.ts';
|
|
4
4
|
export * from './client-scope/index.ts';
|
|
5
|
+
export * from './consent/index.ts';
|
|
6
|
+
export * from './event/index.ts';
|
|
5
7
|
export * from './identity-provider/index.ts';
|
|
6
8
|
export * from './identity-provide-role/index.ts';
|
|
9
|
+
export * from './key/index.ts';
|
|
7
10
|
export * from './permission/index.ts';
|
|
8
11
|
export * from './permission-policy/index.ts';
|
|
9
12
|
export * from './realm/index.ts';
|
|
@@ -16,8 +19,10 @@ export * from './role-permission/index.ts';
|
|
|
16
19
|
export * from './policy/index.ts';
|
|
17
20
|
export * from './scope/index.ts';
|
|
18
21
|
export * from './session/index.ts';
|
|
22
|
+
export * from './trust-anchor/index.ts';
|
|
19
23
|
export * from './user/index.ts';
|
|
20
24
|
export * from './user-attribute/index.ts';
|
|
25
|
+
export * from './user-authenticator/index.ts';
|
|
21
26
|
export * from './user-permission/index.ts';
|
|
22
27
|
export * from './user-role/index.ts';
|
|
23
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/controllers/entities/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/adapters/http/controllers/entities/index.ts"],"names":[],"mappings":"AAOA,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
|
|
@@ -12,10 +12,16 @@ import "./client-role/index.mjs";
|
|
|
12
12
|
import { ClientScopeController } from "./client-scope/module.mjs";
|
|
13
13
|
import { ClientScopeRequestValidator } from "./client-scope/utils/validator.mjs";
|
|
14
14
|
import "./client-scope/index.mjs";
|
|
15
|
+
import { ConsentController } from "./consent/module.mjs";
|
|
16
|
+
import "./consent/index.mjs";
|
|
17
|
+
import { EventController } from "./event/module.mjs";
|
|
18
|
+
import "./event/index.mjs";
|
|
15
19
|
import { IdentityProviderController } from "./identity-provider/module.mjs";
|
|
16
20
|
import "./identity-provider/index.mjs";
|
|
17
21
|
import { IdentityProviderRoleMappingController } from "./identity-provide-role/module.mjs";
|
|
18
22
|
import "./identity-provide-role/index.mjs";
|
|
23
|
+
import { KeyController } from "./key/module.mjs";
|
|
24
|
+
import "./key/index.mjs";
|
|
19
25
|
import { PermissionController } from "./permission/module.mjs";
|
|
20
26
|
import "./permission/index.mjs";
|
|
21
27
|
import { PermissionPolicyController } from "./permission-policy/module.mjs";
|
|
@@ -46,15 +52,19 @@ import { ScopeController } from "./scope/module.mjs";
|
|
|
46
52
|
import "./scope/index.mjs";
|
|
47
53
|
import { SessionController } from "./session/module.mjs";
|
|
48
54
|
import "./session/index.mjs";
|
|
55
|
+
import { TrustAnchorController } from "./trust-anchor/module.mjs";
|
|
56
|
+
import "./trust-anchor/index.mjs";
|
|
49
57
|
import { UserController } from "./user/module.mjs";
|
|
50
58
|
import "./user/index.mjs";
|
|
51
59
|
import { UserAttributeController } from "./user-attribute/module.mjs";
|
|
52
60
|
import { UserAttributeRequestValidator } from "./user-attribute/utils/validation.mjs";
|
|
53
61
|
import "./user-attribute/index.mjs";
|
|
62
|
+
import { UserAuthenticatorController } from "./user-authenticator/module.mjs";
|
|
63
|
+
import "./user-authenticator/index.mjs";
|
|
54
64
|
import { UserPermissionController } from "./user-permission/module.mjs";
|
|
55
65
|
import { UserPermissionRequestValidator } from "./user-permission/utils/validation.mjs";
|
|
56
66
|
import "./user-permission/index.mjs";
|
|
57
67
|
import { UserRoleController } from "./user-role/module.mjs";
|
|
58
68
|
import { UserRoleRequestValidator } from "./user-role/utils/validation.mjs";
|
|
59
69
|
import "./user-role/index.mjs";
|
|
60
|
-
export { ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, IdentityProviderController, IdentityProviderRoleMappingController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RobotController, RobotPermissionController, RobotPermissionRequestValidator, RobotRoleController, RobotRoleRequestValidator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, UserAttributeController, UserAttributeRequestValidator, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator };
|
|
70
|
+
export { ClientController, ClientPermissionController, ClientPermissionRequestValidator, ClientRoleController, ClientRoleRequestValidator, ClientScopeController, ClientScopeRequestValidator, ConsentController, EventController, IdentityProviderController, IdentityProviderRoleMappingController, KeyController, PermissionController, PermissionPolicyController, PolicyAttributesValidator, PolicyController, PolicyValidator, RealmController, RobotController, RobotPermissionController, RobotPermissionRequestValidator, RobotRoleController, RobotRoleRequestValidator, RoleAttributeController, RoleAttributeRequestValidator, RoleController, RolePermissionController, RolePermissionRequestValidator, ScopeController, SessionController, TrustAnchorController, UserAttributeController, UserAttributeRequestValidator, UserAuthenticatorController, UserController, UserPermissionController, UserPermissionRequestValidator, UserRoleController, UserRoleRequestValidator };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/key/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IAppEvent } from 'routup';
|
|
2
|
+
import type { EntityCollectionResponse, KeyCreatePayload, KeyUpdatePayload } from '@authup/core-http-kit';
|
|
3
|
+
import type { Key } from '@authup/core-kit';
|
|
4
|
+
import type { IKeyService } from '../../../../../core/index.ts';
|
|
5
|
+
export type KeyControllerContext = {
|
|
6
|
+
service: IKeyService;
|
|
7
|
+
};
|
|
8
|
+
export declare class KeyController {
|
|
9
|
+
protected service: IKeyService;
|
|
10
|
+
constructor(ctx: KeyControllerContext);
|
|
11
|
+
getMany(event: IAppEvent): Promise<EntityCollectionResponse<Key>>;
|
|
12
|
+
getOne(id: string, event: IAppEvent): Promise<Key>;
|
|
13
|
+
add(data: KeyCreatePayload, event: IAppEvent): Promise<Key>;
|
|
14
|
+
edit(id: string, data: KeyUpdatePayload, event: IAppEvent): Promise<Key>;
|
|
15
|
+
drop(id: string, event: IAppEvent): Promise<Key>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/key/module.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EACR,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAQhE,MAAM,MAAM,oBAAoB,GAAG;IAC/B,OAAO,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,qBAEa,aAAa;IACtB,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;gBAEnB,GAAG,EAAE,oBAAoB;IAK/B,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;IAqBnC,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,GAAG,CAAC;IAOT,GAAG,CACI,IAAI,EAAE,gBAAgB,EACnB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,GAAG,CAAC;IAWT,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACnB,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,GAAG,CAAC;IAOT,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,GAAG,CAAC;CAYlB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import "node:path";
|
|
2
|
+
import "node:url";
|
|
3
|
+
import.meta.url;
|
|
4
|
+
import { buildActorContext } from "../../../request/helpers/actor.mjs";
|
|
5
|
+
import { applyRouteRealmIDToBody, getRequestRealmID } from "../../../request/helpers/realm-id.mjs";
|
|
6
|
+
import "../../../request/index.mjs";
|
|
7
|
+
import { ForceLoggedInMiddleware } from "../../../middleware/built-in/loggedin/module.mjs";
|
|
8
|
+
import "../../../middleware/index.mjs";
|
|
9
|
+
import { useRequestQuery } from "@routup/basic/query";
|
|
10
|
+
import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DTags } from "@routup/decorators";
|
|
11
|
+
//#region src/adapters/http/controllers/entities/key/module.ts
|
|
12
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
13
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
14
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
+
}
|
|
18
|
+
function _ts_metadata(k, v) {
|
|
19
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
20
|
+
}
|
|
21
|
+
function _ts_param(paramIndex, decorator) {
|
|
22
|
+
return function(target, key) {
|
|
23
|
+
decorator(target, key, paramIndex);
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
var KeyController = class {
|
|
27
|
+
service;
|
|
28
|
+
constructor(ctx) {
|
|
29
|
+
this.service = ctx.service;
|
|
30
|
+
}
|
|
31
|
+
async getMany(event) {
|
|
32
|
+
const actor = buildActorContext(event);
|
|
33
|
+
const query = useRequestQuery(event);
|
|
34
|
+
const realmId = getRequestRealmID(event);
|
|
35
|
+
if (realmId) query.filter = {
|
|
36
|
+
...query.filter && typeof query.filter === "object" ? query.filter : {},
|
|
37
|
+
realm_id: realmId
|
|
38
|
+
};
|
|
39
|
+
const { data, meta } = await this.service.getMany(query, actor);
|
|
40
|
+
return {
|
|
41
|
+
data,
|
|
42
|
+
meta
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
async getOne(id, event) {
|
|
46
|
+
const actor = buildActorContext(event);
|
|
47
|
+
return this.service.getOne(id, actor, getRequestRealmID(event));
|
|
48
|
+
}
|
|
49
|
+
async add(data, event) {
|
|
50
|
+
applyRouteRealmIDToBody(event, data);
|
|
51
|
+
const actor = buildActorContext(event);
|
|
52
|
+
const entity = await this.service.create(data, actor);
|
|
53
|
+
event.response.status = 201;
|
|
54
|
+
return entity;
|
|
55
|
+
}
|
|
56
|
+
async edit(id, data, event) {
|
|
57
|
+
const actor = buildActorContext(event);
|
|
58
|
+
return this.service.update(id, data, actor, getRequestRealmID(event));
|
|
59
|
+
}
|
|
60
|
+
async drop(id, event) {
|
|
61
|
+
const actor = buildActorContext(event);
|
|
62
|
+
const query = useRequestQuery(event);
|
|
63
|
+
const force = query.force === "true" || query.force === "1";
|
|
64
|
+
const entity = await this.service.delete(id, actor, { force });
|
|
65
|
+
event.response.status = 202;
|
|
66
|
+
return entity;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
_ts_decorate([
|
|
70
|
+
DGet("", [ForceLoggedInMiddleware]),
|
|
71
|
+
_ts_param(0, DContext()),
|
|
72
|
+
_ts_metadata("design:type", Function),
|
|
73
|
+
_ts_metadata("design:paramtypes", [typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
74
|
+
_ts_metadata("design:returntype", Promise)
|
|
75
|
+
], KeyController.prototype, "getMany", null);
|
|
76
|
+
_ts_decorate([
|
|
77
|
+
DGet("/:id", [ForceLoggedInMiddleware]),
|
|
78
|
+
_ts_param(0, DPath("id")),
|
|
79
|
+
_ts_param(1, DContext()),
|
|
80
|
+
_ts_metadata("design:type", Function),
|
|
81
|
+
_ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
82
|
+
_ts_metadata("design:returntype", Promise)
|
|
83
|
+
], KeyController.prototype, "getOne", null);
|
|
84
|
+
_ts_decorate([
|
|
85
|
+
DPost("", [ForceLoggedInMiddleware]),
|
|
86
|
+
_ts_param(0, DBody()),
|
|
87
|
+
_ts_param(1, DContext()),
|
|
88
|
+
_ts_metadata("design:type", Function),
|
|
89
|
+
_ts_metadata("design:paramtypes", [typeof KeyCreatePayload === "undefined" ? Object : KeyCreatePayload, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
90
|
+
_ts_metadata("design:returntype", Promise)
|
|
91
|
+
], KeyController.prototype, "add", null);
|
|
92
|
+
_ts_decorate([
|
|
93
|
+
DPost("/:id", [ForceLoggedInMiddleware]),
|
|
94
|
+
_ts_param(0, DPath("id")),
|
|
95
|
+
_ts_param(1, DBody()),
|
|
96
|
+
_ts_param(2, DContext()),
|
|
97
|
+
_ts_metadata("design:type", Function),
|
|
98
|
+
_ts_metadata("design:paramtypes", [
|
|
99
|
+
String,
|
|
100
|
+
typeof KeyUpdatePayload === "undefined" ? Object : KeyUpdatePayload,
|
|
101
|
+
typeof IAppEvent === "undefined" ? Object : IAppEvent
|
|
102
|
+
]),
|
|
103
|
+
_ts_metadata("design:returntype", Promise)
|
|
104
|
+
], KeyController.prototype, "edit", null);
|
|
105
|
+
_ts_decorate([
|
|
106
|
+
DDelete("/:id", [ForceLoggedInMiddleware]),
|
|
107
|
+
_ts_param(0, DPath("id")),
|
|
108
|
+
_ts_param(1, DContext()),
|
|
109
|
+
_ts_metadata("design:type", Function),
|
|
110
|
+
_ts_metadata("design:paramtypes", [String, typeof IAppEvent === "undefined" ? Object : IAppEvent]),
|
|
111
|
+
_ts_metadata("design:returntype", Promise)
|
|
112
|
+
], KeyController.prototype, "drop", null);
|
|
113
|
+
KeyController = _ts_decorate([
|
|
114
|
+
DTags("key"),
|
|
115
|
+
DController(["/keys", "/realms/:realmId/keys"]),
|
|
116
|
+
_ts_metadata("design:type", Function),
|
|
117
|
+
_ts_metadata("design:paramtypes", [typeof KeyControllerContext === "undefined" ? Object : KeyControllerContext])
|
|
118
|
+
], KeyController);
|
|
119
|
+
//#endregion
|
|
120
|
+
export { KeyController };
|
|
121
|
+
|
|
122
|
+
//# sourceMappingURL=module.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DTags","useRequestQuery","ForceLoggedInMiddleware","applyRouteRealmIDToBody","buildActorContext","getRequestRealmID","KeyController","service","ctx","getMany","event","actor","query","realmId","filter","realm_id","data","meta","getOne","id","add","entity","create","response","status","edit","update","drop","force","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/key/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2026.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DTags,\n} from '@routup/decorators';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type {\n EntityCollectionResponse,\n KeyCreatePayload,\n KeyUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { Key } from '@authup/core-kit';\nimport type { IKeyService } from '../../../../../core/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport {\n applyRouteRealmIDToBody,\n buildActorContext,\n getRequestRealmID,\n} from '../../../request/index.ts';\n\nexport type KeyControllerContext = {\n service: IKeyService,\n};\n\n@DTags('key')\n@DController(['/keys', '/realms/:realmId/keys'])\nexport class KeyController {\n protected service: IKeyService;\n\n constructor(ctx: KeyControllerContext) {\n this.service = ctx.service;\n }\n\n @DGet('', [ForceLoggedInMiddleware])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<Key>> {\n const actor = buildActorContext(event);\n\n const query = useRequestQuery(event);\n const realmId = getRequestRealmID(event);\n if (realmId) {\n query.filter = {\n ...(query.filter && typeof query.filter === 'object' ? query.filter : {}),\n realm_id: realmId,\n };\n }\n\n const { data, meta } = await this.service.getMany(query, actor);\n\n return {\n data,\n meta,\n };\n }\n\n @DGet('/:id', [ForceLoggedInMiddleware])\n async getOne(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<Key> {\n const actor = buildActorContext(event);\n\n return this.service.getOne(id, actor, getRequestRealmID(event));\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: KeyCreatePayload,\n @DContext() event: IAppEvent,\n ): Promise<Key> {\n applyRouteRealmIDToBody(event, data);\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: KeyUpdatePayload,\n @DContext() event: IAppEvent,\n ): Promise<Key> {\n const actor = buildActorContext(event);\n\n return this.service.update(id, data, actor, getRequestRealmID(event));\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ): Promise<Key> {\n const actor = buildActorContext(event);\n\n const query = useRequestQuery(event);\n const force = query.force === 'true' || query.force === '1';\n\n const entity = await this.service.delete(id, actor, { force });\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAaa,gBAAb,MAAaA;CACCC;CAEV,YAAYC,KAA2B;EACnC,KAAKD,UAAUC,IAAID;CACvB;CAEA,MACME,QACF,OACsC;EACtC,MAAME,QAAQP,kBAAkBM,KAAAA;EAEhC,MAAME,QAAQX,gBAAgBS,KAAAA;EAC9B,MAAMG,UAAUR,kBAAkBK,KAAAA;EAClC,IAAIG,SACAD,MAAME,SAAS;GACX,GAAIF,MAAME,UAAU,OAAOF,MAAME,WAAW,WAAWF,MAAME,SAAS,CAAC;GACvEC,UAAUF;EACd;EAGJ,MAAM,EAAEG,MAAMC,SAAS,MAAM,KAAKV,QAAQE,QAAQG,OAAOD,KAAAA;EAEzD,OAAO;GACHK;GACAC;EACJ;CACJ;CAEA,MACMC,OACF,IACA,OACY;EACZ,MAAMP,QAAQP,kBAAkBM,KAAAA;EAEhC,OAAO,KAAKH,QAAQW,OAAOC,IAAIR,OAAON,kBAAkBK,KAAAA,CAAAA;CAC5D;CAEA,MACMU,IACF,MACA,OACY;EACZjB,wBAAwBO,OAAOM,IAAAA;EAC/B,MAAML,QAAQP,kBAAkBM,KAAAA;EAChC,MAAMW,SAAS,MAAM,KAAKd,QAAQe,OAAON,MAAML,KAAAA;EAE/CD,MAAMa,SAASC,SAAS;EAExB,OAAOH;CACX;CAEA,MACMI,KACF,IACA,MACA,OACY;EACZ,MAAMd,QAAQP,kBAAkBM,KAAAA;EAEhC,OAAO,KAAKH,QAAQmB,OAAOP,IAAIH,MAAML,OAAON,kBAAkBK,KAAAA,CAAAA;CAClE;CAEA,MACMiB,KACF,IACA,OACY;EACZ,MAAMhB,QAAQP,kBAAkBM,KAAAA;EAEhC,MAAME,QAAQX,gBAAgBS,KAAAA;EAC9B,MAAMkB,QAAQhB,MAAMgB,UAAU,UAAUhB,MAAMgB,UAAU;EAExD,MAAMP,SAAS,MAAM,KAAKd,QAAQsB,OAAOV,IAAIR,OAAO,EAAEiB,MAAM,CAAA;EAE5DlB,MAAMa,SAASC,SAAS;EAExB,OAAOH;CACX;AACJ;;WA1EenB,uBAAAA,CAAAA;;;;;;;eAuBIA,uBAAAA,CAAAA;;;;;;;;YAUHA,uBAAAA,CAAAA;;;;;;;;gBAcIA,uBAAAA,CAAAA;;;;;;;;;;;;;kBAWEA,uBAAAA,CAAAA;;;;;;;;;cAlER,SAAS,uBAAA,CAAA"}
|
|
@@ -6,10 +6,10 @@ import "../../../../request/index.mjs";
|
|
|
6
6
|
import { PolicyAttributesValidator } from "./attributes-validator.mjs";
|
|
7
7
|
import { isPolicyNameValid } from "@authup/core-kit";
|
|
8
8
|
import { BuiltInPolicyType } from "@authup/access";
|
|
9
|
+
import { isObject } from "smob";
|
|
9
10
|
import { Container } from "validup";
|
|
10
11
|
import { createValidator } from "@validup/zod";
|
|
11
12
|
import { z } from "zod";
|
|
12
|
-
import { isObject } from "smob";
|
|
13
13
|
//#region src/adapters/http/controllers/entities/policy/utils/validation.ts
|
|
14
14
|
var PolicyValidator = class extends Container {
|
|
15
15
|
initialize() {
|
|
@@ -7,6 +7,8 @@ import type { IRealmService } from '../../../../../core/index.ts';
|
|
|
7
7
|
import type { KeyEntity } from '../../../../database/domains/index.ts';
|
|
8
8
|
export type RealmControllerOptions = {
|
|
9
9
|
baseURL: string;
|
|
10
|
+
mtlsBaseURL?: string | null;
|
|
11
|
+
clientCertificatesEnabled?: boolean;
|
|
10
12
|
};
|
|
11
13
|
export type RealmControllerContext = {
|
|
12
14
|
options: RealmControllerOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/realm/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EACR,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAMvE,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/realm/module.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EACR,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAMvE,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,sBAAsB,CAAC;IAChC,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;CACxC,CAAC;AAEF,qBAEa,eAAe;IACxB,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAE1C,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IAEjC,SAAS,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;gBAEnC,GAAG,EAAE,sBAAsB;IAOjC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAarC,GAAG,CACI,IAAI,EAAE,kBAAkB,EACrB,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,KAAK,CAAC;IAUZ,GAAG,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAK5C,sBAAsB,CACX,EAAE,EAAE,MAAM,GACxB,OAAO,CAAC,sBAAsB,CAAC;IA0F5B,QAAQ,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAMxE,OAAO,CACI,EAAE,EAAE,MAAM,EACP,KAAK,EAAE,MAAM,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAMtB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,kBAAkB,EACrB,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,KAAK,CAAC;IAcZ,GAAG,CACQ,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,EACnB,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,KAAK,CAAC;IAgBZ,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC5B,OAAO,CAAC,KAAK,CAAC;CAQrB"}
|
|
@@ -9,7 +9,7 @@ import "../../../../../utils/index.mjs";
|
|
|
9
9
|
import "../../../middleware/index.mjs";
|
|
10
10
|
import { getJwkRouteHandler, getJwksRouteHandler } from "../../workflows/jwks/handlers/read.mjs";
|
|
11
11
|
import "../../workflows/index.mjs";
|
|
12
|
-
import { OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType } from "@authup/specs";
|
|
12
|
+
import { OAuth2AuthenticationContextClass, OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType } from "@authup/specs";
|
|
13
13
|
import { useRequestQuery } from "@routup/basic/query";
|
|
14
14
|
import { DBody, DContext, DController, DDelete, DGet, DPath, DPost, DPut, DTags } from "@routup/decorators";
|
|
15
15
|
//#region src/adapters/http/controllers/entities/realm/module.ts
|
|
@@ -55,6 +55,7 @@ var RealmController = class {
|
|
|
55
55
|
async getOpenIdConfiguration(id) {
|
|
56
56
|
const entity = await this.service.getOne(id);
|
|
57
57
|
const { baseURL } = this.options;
|
|
58
|
+
const { mtlsBaseURL, clientCertificatesEnabled = false } = this.options;
|
|
58
59
|
return {
|
|
59
60
|
issuer: resolveURL(baseURL, `realms/${entity.name}`).replace(/\/+$/, ""),
|
|
60
61
|
authorization_endpoint: resolveURL(baseURL, "authorize"),
|
|
@@ -67,6 +68,7 @@ var RealmController = class {
|
|
|
67
68
|
OAuth2AuthorizationPrompt.CONSENT,
|
|
68
69
|
OAuth2AuthorizationPrompt.SELECT_ACCOUNT
|
|
69
70
|
],
|
|
71
|
+
acr_values_supported: [OAuth2AuthenticationContextClass.PASSWORD, OAuth2AuthenticationContextClass.MFA],
|
|
70
72
|
subject_types_supported: ["public"],
|
|
71
73
|
id_token_signing_alg_values_supported: [
|
|
72
74
|
"HS256",
|
|
@@ -78,6 +80,19 @@ var RealmController = class {
|
|
|
78
80
|
"none"
|
|
79
81
|
],
|
|
80
82
|
token_endpoint: resolveURL(baseURL, "token"),
|
|
83
|
+
token_endpoint_auth_methods_supported: [
|
|
84
|
+
"none",
|
|
85
|
+
"client_secret_basic",
|
|
86
|
+
"client_secret_post",
|
|
87
|
+
...clientCertificatesEnabled ? ["tls_client_auth"] : []
|
|
88
|
+
],
|
|
89
|
+
...clientCertificatesEnabled ? { tls_client_certificate_bound_access_tokens: true } : {},
|
|
90
|
+
...mtlsBaseURL ? { mtls_endpoint_aliases: {
|
|
91
|
+
token_endpoint: resolveURL(mtlsBaseURL, "token"),
|
|
92
|
+
introspection_endpoint: resolveURL(mtlsBaseURL, "token/introspect"),
|
|
93
|
+
revocation_endpoint: resolveURL(mtlsBaseURL, "token/revoke"),
|
|
94
|
+
userinfo_endpoint: resolveURL(mtlsBaseURL, "users/@me")
|
|
95
|
+
} } : {},
|
|
81
96
|
introspection_endpoint: resolveURL(baseURL, "token/introspect"),
|
|
82
97
|
revocation_endpoint: resolveURL(baseURL, "token/revoke"),
|
|
83
98
|
service_documentation: "https://authup.org/",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","OAuth2AuthorizationPrompt","OAuth2AuthorizationResponseType","useRequestQuery","getJwkRouteHandler","getJwksRouteHandler","ForceLoggedInMiddleware","buildActorContext","resolveURL","RealmController","options","service","keyRepository","ctx","getMany","event","data","meta","add","actor","entity","create","response","status","get","id","getOne","getOpenIdConfiguration","baseURL","issuer","name","replace","authorization_endpoint","end_session_endpoint","jwks_uri","response_types_supported","CODE","prompt_values_supported","NONE","LOGIN","CONSENT","SELECT_ACCOUNT","subject_types_supported","id_token_signing_alg_values_supported","token_endpoint","introspection_endpoint","revocation_endpoint","service_documentation","userinfo_endpoint","getCerts","getCert","keyId","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/realm/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { OAuth2JsonWebKey, OpenIDProviderMetadata } from '@authup/specs';\nimport { OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType } from '@authup/specs';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type { Repository } from 'typeorm';\nimport type {\n EntityCollectionResponse,\n RealmCreatePayload,\n RealmSavePayload,\n RealmUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { Realm } from '@authup/core-kit';\nimport type { IRealmService } from '../../../../../core/index.ts';\nimport type { KeyEntity } from '../../../../database/domains/index.ts';\nimport { getJwkRouteHandler, getJwksRouteHandler } from '../../workflows/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\nimport { resolveURL } from '../../../../../utils/index.ts';\n\nexport type RealmControllerOptions = {\n baseURL: string\n};\n\nexport type RealmControllerContext = {\n options: RealmControllerOptions,\n service: IRealmService,\n keyRepository: Repository<KeyEntity>,\n};\n\n@DTags('realm')\n@DController('/realms')\nexport class RealmController {\n protected options: RealmControllerOptions;\n\n protected service: IRealmService;\n\n protected keyRepository: Repository<KeyEntity>;\n\n constructor(ctx: RealmControllerContext) {\n this.options = ctx.options;\n this.service = ctx.service;\n this.keyRepository = ctx.keyRepository;\n }\n\n @DGet('', [])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<Realm>> {\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event));\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: RealmCreatePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [])\n async get(@DPath('id') id: string): Promise<Realm> {\n return this.service.getOne(id);\n }\n\n @DGet('/:id/.well-known/openid-configuration', [])\n async getOpenIdConfiguration(\n @DPath('id') id: string,\n ): Promise<OpenIDProviderMetadata> {\n const entity = await this.service.getOne(id);\n\n const { baseURL } = this.options;\n\n return {\n issuer: resolveURL(baseURL, `realms/${entity.name}`).replace(/\\/+$/, ''),\n\n authorization_endpoint: resolveURL(baseURL, 'authorize'),\n\n end_session_endpoint: resolveURL(baseURL, 'logout'),\n\n jwks_uri: resolveURL(baseURL, `realms/${entity.name}/jwks`),\n\n // OAuth 2.1 posture: the authorization endpoint issues codes\n // only — implicit/hybrid response types were dropped (plan 042).\n response_types_supported: [\n OAuth2AuthorizationResponseType.CODE,\n ],\n\n // `none` (silent authentication) is handled by the hosted SSR\n // authorize page (the kit `Authorize.vue`): it either completes a\n // built_in client's auto-consent silently or redirects the OIDC\n // error (login_required / consent_required / interaction_required)\n // to a verified redirect_uri — zero UI. The server GET cannot do\n // this server-side (auth is header-only; a top-level navigation\n // carries no bearer), so the SSR page owns it (plan 042 item 10).\n prompt_values_supported: [\n OAuth2AuthorizationPrompt.NONE,\n OAuth2AuthorizationPrompt.LOGIN,\n OAuth2AuthorizationPrompt.CONSENT,\n OAuth2AuthorizationPrompt.SELECT_ACCOUNT,\n ],\n\n subject_types_supported: [\n 'public',\n ],\n\n id_token_signing_alg_values_supported: [\n 'HS256',\n 'HS384',\n 'HS512',\n 'RS256',\n 'RS384',\n 'RS512',\n 'none',\n ],\n\n token_endpoint: resolveURL(baseURL, 'token'),\n\n introspection_endpoint: resolveURL(baseURL, 'token/introspect'),\n\n revocation_endpoint: resolveURL(baseURL, 'token/revoke'),\n\n // -----------------------------------------------------------\n\n service_documentation: 'https://authup.org/',\n\n userinfo_endpoint: resolveURL(baseURL, 'users/@me'),\n };\n }\n\n @DGet('/:id/jwks', [])\n async getCerts(@DPath('id') id: string): Promise<{ keys: OAuth2JsonWebKey[] }> {\n const entity = await this.service.getOne(id);\n return getJwksRouteHandler(this.keyRepository, entity.id);\n }\n\n @DGet('/:id/jwks/:keyId', [])\n async getCert(\n @DPath('id') id: string,\n @DPath('keyId') keyId: string,\n ): Promise<OAuth2JsonWebKey> {\n const entity = await this.service.getOne(id);\n return getJwkRouteHandler(this.keyRepository, keyId, entity.id);\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: RealmUpdatePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: RealmSavePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["DBody","DContext","DController","DDelete","DGet","DPath","DPost","DPut","DTags","OAuth2AuthenticationContextClass","OAuth2AuthorizationPrompt","OAuth2AuthorizationResponseType","useRequestQuery","getJwkRouteHandler","getJwksRouteHandler","ForceLoggedInMiddleware","buildActorContext","resolveURL","RealmController","options","service","keyRepository","ctx","getMany","event","data","meta","add","actor","entity","create","response","status","get","id","getOne","getOpenIdConfiguration","baseURL","mtlsBaseURL","clientCertificatesEnabled","issuer","name","replace","authorization_endpoint","end_session_endpoint","jwks_uri","response_types_supported","CODE","prompt_values_supported","NONE","LOGIN","CONSENT","SELECT_ACCOUNT","acr_values_supported","PASSWORD","MFA","subject_types_supported","id_token_signing_alg_values_supported","token_endpoint","token_endpoint_auth_methods_supported","tls_client_certificate_bound_access_tokens","mtls_endpoint_aliases","introspection_endpoint","revocation_endpoint","userinfo_endpoint","service_documentation","getCerts","getCert","keyId","edit","update","put","created","save","undefined","drop","delete"],"sources":["../../../../../../src/adapters/http/controllers/entities/realm/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2022.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport {\n DBody,\n DContext,\n DController,\n DDelete,\n DGet,\n DPath,\n DPost,\n DPut,\n DTags,\n} from '@routup/decorators';\nimport type { OAuth2JsonWebKey, OpenIDProviderMetadata } from '@authup/specs';\nimport { OAuth2AuthenticationContextClass, OAuth2AuthorizationPrompt, OAuth2AuthorizationResponseType } from '@authup/specs';\nimport type { IAppEvent } from 'routup';\nimport { useRequestQuery } from '@routup/basic/query';\nimport type { Repository } from 'typeorm';\nimport type {\n EntityCollectionResponse,\n RealmCreatePayload,\n RealmSavePayload,\n RealmUpdatePayload,\n} from '@authup/core-http-kit';\nimport type { Realm } from '@authup/core-kit';\nimport type { IRealmService } from '../../../../../core/index.ts';\nimport type { KeyEntity } from '../../../../database/domains/index.ts';\nimport { getJwkRouteHandler, getJwksRouteHandler } from '../../workflows/index.ts';\nimport { ForceLoggedInMiddleware } from '../../../middleware/index.ts';\nimport { buildActorContext } from '../../../request/index.ts';\nimport { resolveURL } from '../../../../../utils/index.ts';\n\nexport type RealmControllerOptions = {\n baseURL: string,\n mtlsBaseURL?: string | null,\n clientCertificatesEnabled?: boolean,\n};\n\nexport type RealmControllerContext = {\n options: RealmControllerOptions,\n service: IRealmService,\n keyRepository: Repository<KeyEntity>,\n};\n\n@DTags('realm')\n@DController('/realms')\nexport class RealmController {\n protected options: RealmControllerOptions;\n\n protected service: IRealmService;\n\n protected keyRepository: Repository<KeyEntity>;\n\n constructor(ctx: RealmControllerContext) {\n this.options = ctx.options;\n this.service = ctx.service;\n this.keyRepository = ctx.keyRepository;\n }\n\n @DGet('', [])\n async getMany(\n @DContext() event: IAppEvent,\n ): Promise<EntityCollectionResponse<Realm>> {\n const {\n data,\n meta,\n } = await this.service.getMany(useRequestQuery(event));\n\n return {\n data,\n meta,\n };\n }\n\n @DPost('', [ForceLoggedInMiddleware])\n async add(\n @DBody() data: RealmCreatePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.create(data, actor);\n\n event.response.status = 201;\n\n return entity;\n }\n\n @DGet('/:id', [])\n async get(@DPath('id') id: string): Promise<Realm> {\n return this.service.getOne(id);\n }\n\n @DGet('/:id/.well-known/openid-configuration', [])\n async getOpenIdConfiguration(\n @DPath('id') id: string,\n ): Promise<OpenIDProviderMetadata> {\n const entity = await this.service.getOne(id);\n\n const { baseURL } = this.options;\n const { mtlsBaseURL, clientCertificatesEnabled = false } = this.options;\n\n return {\n issuer: resolveURL(baseURL, `realms/${entity.name}`).replace(/\\/+$/, ''),\n\n authorization_endpoint: resolveURL(baseURL, 'authorize'),\n\n end_session_endpoint: resolveURL(baseURL, 'logout'),\n\n jwks_uri: resolveURL(baseURL, `realms/${entity.name}/jwks`),\n\n // OAuth 2.1 posture: the authorization endpoint issues codes\n // only — implicit/hybrid response types were dropped (plan 042).\n response_types_supported: [\n OAuth2AuthorizationResponseType.CODE,\n ],\n\n // `none` (silent authentication) is handled by the hosted SSR\n // authorize page (the kit `Authorize.vue`): it either completes a\n // built_in client's auto-consent silently or redirects the OIDC\n // error (login_required / consent_required / interaction_required)\n // to a verified redirect_uri — zero UI. The server GET cannot do\n // this server-side (auth is header-only; a top-level navigation\n // carries no bearer), so the SSR page owns it (plan 042 item 10).\n prompt_values_supported: [\n OAuth2AuthorizationPrompt.NONE,\n OAuth2AuthorizationPrompt.LOGIN,\n OAuth2AuthorizationPrompt.CONSENT,\n OAuth2AuthorizationPrompt.SELECT_ACCOUNT,\n ],\n\n // two coarse levels only (urn-style — OIDC reserves the bare\n // \"0\"); `urn:authup:mfa` in `acr_values` acts as a step-up\n // trigger (plan 050).\n acr_values_supported: [\n OAuth2AuthenticationContextClass.PASSWORD,\n OAuth2AuthenticationContextClass.MFA,\n ],\n\n subject_types_supported: [\n 'public',\n ],\n\n id_token_signing_alg_values_supported: [\n 'HS256',\n 'HS384',\n 'HS512',\n 'RS256',\n 'RS384',\n 'RS512',\n 'none',\n ],\n\n token_endpoint: resolveURL(baseURL, 'token'),\n\n token_endpoint_auth_methods_supported: [\n 'none',\n 'client_secret_basic',\n 'client_secret_post',\n ...(clientCertificatesEnabled ? ['tls_client_auth'] : []),\n ],\n\n ...(clientCertificatesEnabled ? { tls_client_certificate_bound_access_tokens: true } : {}),\n\n ...(mtlsBaseURL ? {\n mtls_endpoint_aliases: {\n token_endpoint: resolveURL(mtlsBaseURL, 'token'),\n introspection_endpoint: resolveURL(mtlsBaseURL, 'token/introspect'),\n revocation_endpoint: resolveURL(mtlsBaseURL, 'token/revoke'),\n userinfo_endpoint: resolveURL(mtlsBaseURL, 'users/@me'),\n },\n } : {}),\n\n introspection_endpoint: resolveURL(baseURL, 'token/introspect'),\n\n revocation_endpoint: resolveURL(baseURL, 'token/revoke'),\n\n // -----------------------------------------------------------\n\n service_documentation: 'https://authup.org/',\n\n userinfo_endpoint: resolveURL(baseURL, 'users/@me'),\n };\n }\n\n @DGet('/:id/jwks', [])\n async getCerts(@DPath('id') id: string): Promise<{ keys: OAuth2JsonWebKey[] }> {\n const entity = await this.service.getOne(id);\n return getJwksRouteHandler(this.keyRepository, entity.id);\n }\n\n @DGet('/:id/jwks/:keyId', [])\n async getCert(\n @DPath('id') id: string,\n @DPath('keyId') keyId: string,\n ): Promise<OAuth2JsonWebKey> {\n const entity = await this.service.getOne(id);\n return getJwkRouteHandler(this.keyRepository, keyId, entity.id);\n }\n\n @DPost('/:id', [ForceLoggedInMiddleware])\n async edit(\n @DPath('id') id: string,\n @DBody() data: RealmUpdatePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.update(\n id,\n data,\n actor,\n );\n\n event.response.status = 202;\n\n return entity;\n }\n\n @DPut('/:id', [ForceLoggedInMiddleware])\n async put(\n @DPath('id') id: string,\n @DBody() data: RealmSavePayload,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const {\n entity,\n created,\n } = await this.service.save(\n id || undefined,\n data,\n actor,\n );\n\n event.response.status = created ? 201 : 202;\n return entity;\n }\n\n @DDelete('/:id', [ForceLoggedInMiddleware])\n async drop(\n @DPath('id') id: string,\n @DContext() event: IAppEvent,\n ) : Promise<Realm> {\n const actor = buildActorContext(event);\n const entity = await this.service.delete(id, actor);\n\n event.response.status = 202;\n\n return entity;\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EntityCollectionResponse, TrustAnchorCreatePayload, TrustAnchorUpdatePayload } from '@authup/core-http-kit';
|
|
2
|
+
import type { TrustAnchor } from '@authup/core-kit';
|
|
3
|
+
import type { IAppEvent } from 'routup';
|
|
4
|
+
import type { ITrustAnchorService } from '../../../../../core/index.ts';
|
|
5
|
+
export type TrustAnchorControllerContext = {
|
|
6
|
+
service: ITrustAnchorService;
|
|
7
|
+
};
|
|
8
|
+
export declare class TrustAnchorController {
|
|
9
|
+
protected service: ITrustAnchorService;
|
|
10
|
+
constructor(ctx: TrustAnchorControllerContext);
|
|
11
|
+
getMany(event: IAppEvent): Promise<EntityCollectionResponse<TrustAnchor>>;
|
|
12
|
+
getOne(id: string, event: IAppEvent): Promise<TrustAnchor>;
|
|
13
|
+
add(data: TrustAnchorCreatePayload, event: IAppEvent): Promise<TrustAnchor>;
|
|
14
|
+
edit(id: string, data: TrustAnchorUpdatePayload, event: IAppEvent): Promise<TrustAnchor>;
|
|
15
|
+
drop(id: string, event: IAppEvent): Promise<TrustAnchor>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../../../src/adapters/http/controllers/entities/trust-anchor/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACR,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAYpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAQxE,MAAM,MAAM,4BAA4B,GAAG;IACvC,OAAO,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,qBAEa,qBAAqB;IAC9B,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;gBAE3B,GAAG,EAAE,4BAA4B;IAKvC,OAAO,CACG,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAqB3C,MAAM,CACK,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAOjB,GAAG,CACI,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAWjB,IAAI,CACO,EAAE,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,EAC3B,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;IAOjB,IAAI,CACO,EAAE,EAAE,MAAM,EACX,KAAK,EAAE,SAAS,GAC7B,OAAO,CAAC,WAAW,CAAC;CAQ1B"}
|