@authup/server-core 1.0.0-beta.63 → 1.0.0-beta.64
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 +1 -0
- package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +33 -4
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +1 -2
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +7 -14
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts +2 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs +2 -2
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.d.ts +8 -0
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +19 -0
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.d.ts +1 -0
- package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs +6 -0
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs +4 -2
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
- package/dist/adapters/database/index.mjs +3 -3
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs +105 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs +104 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts +6 -2
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +9 -5
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/constants.d.ts +18 -0
- package/dist/adapters/http/constants.d.ts.map +1 -0
- package/dist/adapters/http/constants.mjs +23 -0
- package/dist/adapters/http/constants.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +3 -3
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +6 -0
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +2 -0
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts +33 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.mjs +74 -0
- package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/account/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.d.ts +25 -16
- package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.mjs +40 -17
- package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/types.d.ts +33 -0
- package/dist/adapters/http/controllers/workflows/account/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/admin/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts +30 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs +88 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts +14 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts +16 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs +32 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +16 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +40 -22
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +5 -0
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts +3 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts +83 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs +230 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts +58 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +5 -1
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts +32 -3
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +48 -24
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -10
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +45 -2
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +102 -24
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/cookie/index.d.ts +2 -0
- package/dist/adapters/http/cookie/index.d.ts.map +1 -0
- package/dist/adapters/http/cookie/index.mjs +5 -0
- package/dist/adapters/http/cookie/session.d.ts +35 -0
- package/dist/adapters/http/cookie/session.d.ts.map +1 -0
- package/dist/adapters/http/cookie/session.mjs +62 -0
- package/dist/adapters/http/cookie/session.mjs.map +1 -0
- package/dist/adapters/http/index.d.ts +2 -0
- package/dist/adapters/http/index.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +20 -16
- package/dist/adapters/http/internal-client/index.d.ts +3 -0
- package/dist/adapters/http/internal-client/index.d.ts.map +1 -0
- package/dist/adapters/http/internal-client/index.mjs +5 -0
- package/dist/adapters/http/internal-client/module.d.ts +21 -0
- package/dist/adapters/http/internal-client/module.d.ts.map +1 -0
- package/dist/adapters/http/{ui/auth-console/http-client.mjs → internal-client/module.mjs} +16 -15
- package/dist/adapters/http/internal-client/module.mjs.map +1 -0
- package/dist/adapters/http/internal-client/types.d.ts +13 -0
- package/dist/adapters/http/internal-client/types.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/index.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts +45 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs +61 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +26 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +67 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +21 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/basic.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.d.ts +8 -2
- package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.mjs +20 -3
- package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +1 -4
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +3 -4
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts +17 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs +27 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/logger.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts +6 -5
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +3 -2
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +15 -0
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +3 -4
- package/dist/adapters/http/request/constants.d.ts +1 -1
- package/dist/adapters/http/request/constants.d.ts.map +1 -1
- package/dist/adapters/http/request/constants.mjs +1 -5
- package/dist/adapters/http/request/constants.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -2
- package/dist/adapters/http/request/helpers/locale.d.ts +2 -1
- package/dist/adapters/http/request/helpers/locale.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/same-origin.d.ts +38 -0
- package/dist/adapters/http/request/helpers/same-origin.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs +68 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs.map +1 -0
- package/dist/adapters/http/request/index.mjs +2 -2
- package/dist/adapters/http/request/permission/module.mjs +1 -1
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/adapters/http/request/types.d.ts +1 -2
- package/dist/adapters/http/request/types.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.mjs +4 -1
- package/dist/adapters/shared/ldap/module.mjs.map +1 -1
- package/dist/app/builder.d.ts +4 -4
- package/dist/app/builder.d.ts.map +1 -1
- package/dist/app/builder.mjs +7 -4
- package/dist/app/builder.mjs.map +1 -1
- package/dist/app/factory.d.ts +10 -0
- package/dist/app/factory.d.ts.map +1 -1
- package/dist/app/factory.mjs +26 -2
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/index.mjs +17 -19
- package/dist/app/modules/authentication/module.d.ts.map +1 -1
- package/dist/app/modules/authentication/module.mjs +15 -2
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/authentication/repositories/session.d.ts +4 -1
- package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs +20 -3
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/components/index.d.ts +1 -0
- package/dist/app/modules/components/index.d.ts.map +1 -1
- package/dist/app/modules/components/module.d.ts +3 -1
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +26 -7
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/components/types.d.ts +11 -0
- package/dist/app/modules/components/types.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.d.ts +10 -0
- package/dist/app/modules/config/app-origins.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.mjs +21 -0
- package/dist/app/modules/config/app-origins.mjs.map +1 -0
- package/dist/app/modules/config/constants.d.ts +23 -50
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +34 -51
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/index.d.ts +2 -3
- package/dist/app/modules/config/index.d.ts.map +1 -1
- package/dist/app/modules/config/index.mjs +4 -8
- package/dist/app/modules/config/module.d.ts +2 -2
- package/dist/app/modules/config/module.d.ts.map +1 -1
- package/dist/app/modules/config/module.mjs +1 -1
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/read.d.ts +29 -0
- package/dist/app/modules/config/read.d.ts.map +1 -0
- package/dist/app/modules/config/read.mjs +65 -0
- package/dist/app/modules/config/read.mjs.map +1 -0
- package/dist/app/modules/config/types.d.ts +30 -405
- 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 +3 -87
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/index.d.ts +1 -0
- package/dist/app/modules/database/index.d.ts.map +1 -1
- package/dist/app/modules/database/index.mjs +2 -1
- package/dist/app/modules/database/migration.d.ts +33 -0
- package/dist/app/modules/database/migration.d.ts.map +1 -0
- package/dist/app/modules/database/migration.mjs +52 -0
- package/dist/app/modules/database/migration.mjs.map +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +12 -6
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts +6 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.d.ts +29 -2
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.mjs +42 -24
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.d.ts +24 -1
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +38 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +4 -2
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/key/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts +7 -2
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +3 -1
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs +3 -2
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts +30 -9
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +31 -33
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +4 -3
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +65 -36
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +13 -22
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +20 -36
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +4 -4
- package/dist/app/modules/identity/repositories/client.mjs +4 -2
- package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/user.mjs +4 -2
- package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
- package/dist/app/modules/index.mjs +21 -23
- package/dist/app/modules/logger/module.mjs +1 -1
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/mail/module.d.ts.map +1 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/constants.d.ts +2 -1
- package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs +1 -0
- 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 +9 -4
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/client/repository.mjs +4 -2
- package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +3 -2
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts +19 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs +47 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/constants.mjs +1 -0
- package/dist/app/modules/oauth2/repositories/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.mjs +3 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +2 -2
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +5 -3
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +5 -6
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/composite/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 +2 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/runtime/module.d.ts.map +1 -1
- package/dist/app/modules/runtime/module.mjs +2 -1
- package/dist/app/modules/runtime/module.mjs.map +1 -1
- package/dist/app/types.d.ts +16 -0
- package/dist/app/types.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +40 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.mjs +65 -0
- package/dist/cli/commands/config.mjs.map +1 -0
- package/dist/cli/commands/healthcheck.d.ts +3 -2
- package/dist/cli/commands/healthcheck.d.ts.map +1 -1
- package/dist/cli/commands/healthcheck.mjs +6 -3
- package/dist/cli/commands/healthcheck.mjs.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.mjs +3 -1
- package/dist/cli/commands/migration.d.ts +3 -10
- package/dist/cli/commands/migration.d.ts.map +1 -1
- package/dist/cli/commands/migration.mjs +17 -9
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/cli/commands/shutdown.d.ts +16 -0
- package/dist/cli/commands/shutdown.d.ts.map +1 -0
- package/dist/cli/commands/shutdown.mjs +41 -0
- package/dist/cli/commands/shutdown.mjs.map +1 -0
- package/dist/cli/commands/start.d.ts +3 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.mjs +3 -21
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/module.d.ts +0 -2
- package/dist/cli/module.d.ts.map +1 -1
- package/dist/cli/module.mjs +4 -3
- package/dist/cli/module.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts +2 -2
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +10 -7
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/index.mjs +2 -1
- package/dist/core/authentication/session/constants.d.ts +10 -0
- package/dist/core/authentication/session/constants.d.ts.map +1 -0
- package/dist/core/authentication/session/constants.mjs +16 -0
- package/dist/core/authentication/session/constants.mjs.map +1 -0
- package/dist/core/authentication/session/index.d.ts +1 -0
- package/dist/core/authentication/session/index.d.ts.map +1 -1
- package/dist/core/authentication/session/index.mjs +2 -1
- package/dist/core/authentication/session/module.d.ts +2 -1
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +7 -1
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +70 -1
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs.map +1 -1
- package/dist/core/entities/client/schema.d.ts.map +1 -1
- package/dist/core/entities/client/schema.mjs +1 -2
- package/dist/core/entities/client/schema.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +15 -1
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/system-clients.d.ts +0 -5
- package/dist/core/entities/client/system-clients.d.ts.map +1 -1
- package/dist/core/entities/client/system-clients.mjs +0 -6
- package/dist/core/entities/client/system-clients.mjs.map +1 -1
- package/dist/core/entities/client/types.d.ts +12 -0
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +1 -1
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/event/constants.d.ts +1 -6
- package/dist/core/entities/event/constants.d.ts.map +1 -1
- package/dist/core/entities/event/constants.mjs +1 -5
- package/dist/core/entities/event/constants.mjs.map +1 -1
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
- package/dist/core/entities/event/entity-event-handler.mjs +3 -2
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
- package/dist/core/entities/event/service.d.ts.map +1 -1
- package/dist/core/entities/event/service.mjs +3 -3
- package/dist/core/entities/event/service.mjs.map +1 -1
- package/dist/core/entities/event/types.d.ts +15 -1
- package/dist/core/entities/event/types.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +1 -2
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +1 -1
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/session/service.d.ts +13 -1
- package/dist/core/entities/session/service.d.ts.map +1 -1
- package/dist/core/entities/session/service.mjs +19 -16
- package/dist/core/entities/session/service.mjs.map +1 -1
- package/dist/core/entities/user/schema.d.ts.map +1 -1
- package/dist/core/entities/user/schema.mjs +1 -0
- package/dist/core/entities/user/schema.mjs.map +1 -1
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +21 -1
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user/types.d.ts +12 -0
- package/dist/core/entities/user/types.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +1 -1
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/identity/permission/junction-grant.mjs +1 -1
- package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
- package/dist/core/identity/provider/account/module.mjs +1 -1
- package/dist/core/identity/provider/account/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs.map +1 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +2 -1
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/index.mjs +11 -3
- package/dist/core/oauth2/authorization/helpers.d.ts +14 -0
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +9 -1
- 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.mjs +1 -1
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/backchannel-logout/constants.d.ts +16 -0
- package/dist/core/oauth2/backchannel-logout/constants.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs +20 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts +4 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.mjs +6 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts +26 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs +78 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts +29 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.d.ts +19 -0
- package/dist/core/oauth2/console-login/constants.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.mjs +24 -0
- package/dist/core/oauth2/console-login/constants.mjs.map +1 -0
- package/dist/core/oauth2/console-login/index.d.ts +3 -0
- package/dist/core/oauth2/console-login/index.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/index.mjs +5 -0
- package/dist/core/oauth2/console-login/types.d.ts +53 -0
- package/dist/core/oauth2/console-login/types.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/service.mjs +1 -1
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/federated-login/module.mjs +3 -3
- package/dist/core/oauth2/federated-login/module.mjs.map +1 -1
- package/dist/core/oauth2/index.d.ts +4 -0
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +13 -3
- package/dist/core/oauth2/introspection/index.d.ts +3 -0
- package/dist/core/oauth2/introspection/index.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/index.mjs +5 -0
- package/dist/core/oauth2/introspection/module.d.ts +14 -0
- package/dist/core/oauth2/introspection/module.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/module.mjs +49 -0
- package/dist/core/oauth2/introspection/module.mjs.map +1 -0
- package/dist/core/oauth2/introspection/types.d.ts +45 -0
- package/dist/core/oauth2/introspection/types.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/types.mjs +4 -0
- package/dist/core/oauth2/openid/claims.d.ts +20 -2
- package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
- package/dist/core/oauth2/openid/claims.mjs +18 -4
- package/dist/core/oauth2/openid/claims.mjs.map +1 -1
- package/dist/core/oauth2/session-credential/constants.d.ts +30 -0
- package/dist/core/oauth2/session-credential/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/constants.mjs +34 -0
- package/dist/core/oauth2/session-credential/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-credential/index.d.ts +3 -0
- package/dist/core/oauth2/session-credential/index.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/index.mjs +6 -0
- package/dist/core/oauth2/session-credential/module.d.ts +31 -0
- package/dist/core/oauth2/session-credential/module.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/module.mjs +43 -0
- package/dist/core/oauth2/session-credential/module.mjs.map +1 -0
- package/dist/core/oauth2/session-token/constants.d.ts +10 -0
- package/dist/core/oauth2/session-token/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/constants.mjs +16 -0
- package/dist/core/oauth2/session-token/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-token/index.d.ts +1 -0
- package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
- package/dist/core/oauth2/session-token/index.mjs +2 -1
- package/dist/core/oauth2/session-token/types.d.ts +13 -2
- package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
- package/dist/core/provisioning/merge/module.mjs +5 -3
- package/dist/core/provisioning/merge/module.mjs.map +1 -1
- package/dist/core/query/module.mjs +1 -1
- package/dist/core/query/module.mjs.map +1 -1
- package/dist/core/security/policy/evaluator.mjs +1 -1
- package/dist/core/security/policy/evaluator.mjs.map +1 -1
- package/dist/index.mjs +62 -59
- package/dist/path.mjs +1 -1
- package/dist/swagger.json +466 -104
- package/dist/utils/error.d.ts +6 -0
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +6 -2
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/index.mjs +2 -2
- package/package.json +31 -25
- package/dist/adapters/http/middleware/built-in/assets.d.ts +0 -11
- package/dist/adapters/http/middleware/built-in/assets.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs +0 -91
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/theme.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.mjs +0 -27
- package/dist/adapters/http/middleware/built-in/theme.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/types.d.ts +0 -14
- package/dist/adapters/http/middleware/built-in/types.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +0 -25
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.d.ts +0 -14
- package/dist/adapters/http/request/helpers/redirect.d.ts.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.mjs +0 -36
- package/dist/adapters/http/request/helpers/redirect.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/index.d.ts +0 -4
- package/dist/adapters/http/ui/account-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/index.mjs +0 -6
- package/dist/adapters/http/ui/account-console/module.d.ts +0 -28
- package/dist/adapters/http/ui/account-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/module.mjs +0 -80
- package/dist/adapters/http/ui/account-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.d.ts +0 -30
- package/dist/adapters/http/ui/account-console/ref.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.mjs +0 -50
- package/dist/adapters/http/ui/account-console/ref.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/types.d.ts +0 -11
- package/dist/adapters/http/ui/account-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.d.ts +0 -22
- package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.d.ts +0 -6
- package/dist/adapters/http/ui/auth-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.mjs +0 -8
- package/dist/adapters/http/ui/auth-console/module.d.ts +0 -4
- package/dist/adapters/http/ui/auth-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/module.mjs +0 -73
- package/dist/adapters/http/ui/auth-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.d.ts +0 -21
- package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.mjs +0 -53
- package/dist/adapters/http/ui/auth-console/resolve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.d.ts +0 -9
- package/dist/adapters/http/ui/auth-console/serve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.mjs +0 -35
- package/dist/adapters/http/ui/auth-console/serve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/types.d.ts +0 -26
- package/dist/adapters/http/ui/auth-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.mjs +0 -5
- package/dist/adapters/http/ui/console-packages/module.d.ts +0 -33
- package/dist/adapters/http/ui/console-packages/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/module.mjs +0 -70
- package/dist/adapters/http/ui/console-packages/module.mjs.map +0 -1
- package/dist/adapters/http/ui/console-packages/types.d.ts +0 -12
- package/dist/adapters/http/ui/console-packages/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.d.ts +0 -6
- package/dist/adapters/http/ui/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.mjs +0 -25
- package/dist/adapters/http/ui/shared/html.d.ts +0 -76
- package/dist/adapters/http/ui/shared/html.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/html.mjs +0 -104
- package/dist/adapters/http/ui/shared/html.mjs.map +0 -1
- package/dist/adapters/http/ui/shared/index.d.ts +0 -2
- package/dist/adapters/http/ui/shared/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/index.mjs +0 -5
- package/dist/adapters/http/ui/theme/apply.d.ts +0 -12
- package/dist/adapters/http/ui/theme/apply.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/apply.mjs +0 -29
- package/dist/adapters/http/ui/theme/apply.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/assets.d.ts +0 -20
- package/dist/adapters/http/ui/theme/assets.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/assets.mjs +0 -86
- package/dist/adapters/http/ui/theme/assets.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/constants.d.ts +0 -16
- package/dist/adapters/http/ui/theme/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/constants.mjs +0 -20
- package/dist/adapters/http/ui/theme/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.d.ts +0 -120
- package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.mjs +0 -136
- package/dist/adapters/http/ui/theme/contract/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.d.ts +0 -12
- package/dist/adapters/http/ui/theme/contract/head.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.mjs +0 -61
- package/dist/adapters/http/ui/theme/contract/head.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.d.ts +0 -6
- package/dist/adapters/http/ui/theme/contract/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.mjs +0 -8
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts +0 -25
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/manifest.mjs +0 -77
- package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/types.d.ts +0 -26
- package/dist/adapters/http/ui/theme/contract/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.d.ts +0 -11
- package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.mjs +0 -22
- package/dist/adapters/http/ui/theme/contract/utils.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/index.d.ts +0 -7
- package/dist/adapters/http/ui/theme/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/index.mjs +0 -13
- package/dist/adapters/http/ui/theme/module.d.ts +0 -79
- package/dist/adapters/http/ui/theme/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/module.mjs +0 -206
- package/dist/adapters/http/ui/theme/module.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/types.d.ts +0 -42
- package/dist/adapters/http/ui/theme/types.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.d.ts +0 -9
- package/dist/app/modules/config/helpers.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.mjs +0 -22
- package/dist/app/modules/config/helpers.mjs.map +0 -1
- package/dist/app/modules/config/normalize.d.ts +0 -3
- package/dist/app/modules/config/normalize.d.ts.map +0 -1
- package/dist/app/modules/config/normalize.mjs +0 -117
- package/dist/app/modules/config/normalize.mjs.map +0 -1
- package/dist/app/modules/config/origins.d.ts +0 -25
- package/dist/app/modules/config/origins.d.ts.map +0 -1
- package/dist/app/modules/config/origins.mjs +0 -46
- package/dist/app/modules/config/origins.mjs.map +0 -1
- package/dist/app/modules/config/read/env.d.ts +0 -3
- package/dist/app/modules/config/read/env.d.ts.map +0 -1
- package/dist/app/modules/config/read/env.mjs +0 -139
- package/dist/app/modules/config/read/env.mjs.map +0 -1
- package/dist/app/modules/config/read/fs.d.ts +0 -3
- package/dist/app/modules/config/read/fs.d.ts.map +0 -1
- package/dist/app/modules/config/read/fs.mjs +0 -60
- package/dist/app/modules/config/read/fs.mjs.map +0 -1
- package/dist/app/modules/config/read/index.d.ts +0 -5
- package/dist/app/modules/config/read/index.d.ts.map +0 -1
- package/dist/app/modules/config/read/index.mjs +0 -7
- package/dist/app/modules/config/read/module.d.ts +0 -4
- package/dist/app/modules/config/read/module.d.ts.map +0 -1
- package/dist/app/modules/config/read/module.mjs +0 -29
- package/dist/app/modules/config/read/module.mjs.map +0 -1
- package/dist/app/modules/config/read/types.d.ts +0 -9
- package/dist/app/modules/config/read/types.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.d.ts +0 -28
- package/dist/app/modules/config/trust-proxy.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.mjs +0 -64
- package/dist/app/modules/config/trust-proxy.mjs.map +0 -1
- package/dist/cli/config.d.ts +0 -18
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.mjs +0 -34
- package/dist/cli/config.mjs.map +0 -1
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/utils/host.d.ts +0 -2
- package/dist/utils/host.d.ts.map +0 -1
- package/dist/utils/host.mjs +0 -12
- package/dist/utils/host.mjs.map +0 -1
- /package/dist/adapters/http/{middleware/built-in → controllers/workflows/account}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → controllers/workflows/admin}/index.d.ts +0 -0
- /package/dist/adapters/http/{ui/account-console → controllers/workflows/admin}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/auth-console → controllers/workflows/console-login}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → internal-client}/types.mjs +0 -0
- /package/dist/{adapters/http/ui/theme/contract → app/modules/components}/types.mjs +0 -0
- /package/dist/cli/{types.d.ts → commands/types.d.ts} +0 -0
- /package/dist/{adapters/http/ui/theme → cli/commands}/types.mjs +0 -0
- /package/dist/{app/modules/config/read → core/oauth2/backchannel-logout}/types.mjs +0 -0
- /package/dist/{cli → core/oauth2/console-login}/types.mjs +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.mjs","names":["decorators","ClientEntity","ClientPermissionEntity","ClientRoleEntity","ClientScopeEntity","IdentityProviderRepository","IdentityProviderRoleMappingEntity","KeyEntity","PermissionEntity","PermissionPolicyEntity","PolicyRepository","RealmEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserAuthenticatorEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderAccountRepositoryAdapter","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","TrustAnchorRepositoryAdapter","UserAttributeRepositoryAdapter","UserAuthenticatorRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","ConsentController","EventController","IdentityProviderAccountController","IdentityProviderController","IdentityProviderRoleMappingController","KeyController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","SessionController","SessionTokenController","TrustAnchorController","UserAttributeController","UserAuthenticatorController","UserController","UserPermissionController","UserRoleController","useRequestEventContext","AccountController","ActivateController","AuthenticatorChallengeController","AuthorizeController","JwkController","LogoutController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","UserInfoController","ClientCertificateValidator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","ConsentService","CredentialsAuthenticator","IdentityProviderAccountService","IdentityProviderRoleMappingService","KeyProvisioner","KeyService","LoginThrottleService","OAuth2AccessPolicyEvaluator","OAuth2ClientAuthenticator","OAuth2EndSessionService","OAuth2FederatedLoginService","OAuth2MfaLoginService","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmCipher","RealmService","RegistrationService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","SessionService","SessionTokenService","SystemClientProvisioner","TrustAnchorService","UserAttributeService","UserAuthenticator","UserAuthenticatorService","UserPermissionService","UserRoleService","UserService","AuthenticationInjectionKey","OAuth2InjectionToken","LazyWildcardRealmProvisioner","IdentityInjectionKey","UserIdentityRepository","ConfigInjectionKey","getAppOrigins","CacheInjectionKey","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","MetricsInjectionKey","HTTPControllerModule","mount","router","container","eventController","createEventController","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","keyController","createKeyController","trustAnchorController","createTrustAnchorController","sessionController","createSessionController","sessionTokenController","createSessionTokenController","consentController","createConsentController","identityProviderAccountController","createIdentityProviderAccountController","userController","createUserController","userAttributeController","createUserAttributeController","userAuthenticatorController","createUserAuthenticatorController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createLogoutController","createAuthenticatorChallengeController","createUserInfoController","createAccountController","createStatusController","createIdentityProvider","config","resolve","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","sessionManager","SessionManager","eventService","EventService","metrics","options","baseURL","publicUrl","features","buildUIFeatures","promptLoginMaxAge","mfaFreshnessMaxAge","mfaChallengeProvider","resolveUserAuthenticatorService","accessPolicyEvaluator","resolveAccessPolicyEvaluator","consentService","createConsentService","logger","dataSource","DataSource","codeVerifier","AuthorizationCodeVerifier","accessTokenIssuer","AccessTokenIssuer","refreshTokenIssuer","RefreshTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","keyStore","KeyStore","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","tokenRepository","TokenRepository","sessionTokenRepository","SessionTokenRepository","identityResolver","Resolver","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","userAuthenticator","oauth2ClientAuthenticator","certificateValidator","trustAnchorRepository","loginThrottleService","repository","EventRepository","enabled","loginAttemptThrottleEnabled","threshold","loginAttemptThreshold","windowSeconds","loginAttemptWindow","userAuthenticatorService","mfaLoginService","resolveMfaLoginService","tokenRefreshGracePeriod","certificateSource","realmRepository","service","createRegistrationService","createPasswordRecoveryService","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","passwordMinLength","clientRepository","ClientRepository","endSessionService","hintGracePeriod","endSessionHintGracePeriod","trustedOrigins","registration","registrationEnabled","passwordRecovery","emailVerification","accountConsole","accountConsoleEnabled","accountManager","ProviderAccountManager","linkStore","ProviderAccountLinkStore","stateManager","AuthorizationStateManager","loginService","pendingLoginStore","FederatedLoginStore","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","requestContext","SessionRepository","ConsentRepository","userRepository","userPermissionRepository","userRoleRepository","policyProvider","issuer","webauthn","url","URL","hostname","rpId","rpName","origin","undefined","cache","cipher","mfaEnabled","required","mfaRequired","ticketIssuer","MfaTokenIssuer","createUserService","getRepository","systemClientProvisioner","scopeRepository","clientScopeRepository","appOrigins","keyProvisioner","realmProvisioners","keyRepository","mtlsBaseURL","mtlsPublicUrl","clientCertificatesEnabled"],"sources":["../../../../../src/app/modules/http/modules/controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { App } from 'routup';\nimport { decorators } from '@routup/decorators';\nimport type {\n Client,\n ClientPermission,\n ClientRole,\n ClientScope,\n Permission,\n PermissionPolicy,\n Realm,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\n UserAuthenticator as UserAuthenticatorModel,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n IdentityProviderRepository,\n IdentityProviderRoleMappingEntity,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PolicyRepository,\n RealmEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\n UserAuthenticatorEntity,\n UserEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../../adapters/database/domains/index.ts';\nimport {\n ClientPermissionRepositoryAdapter,\n ClientRepositoryAdapter,\n ClientRoleRepositoryAdapter,\n ClientScopeRepositoryAdapter,\n DatabaseInjectionKey,\n IdentityProviderAccountRepositoryAdapter,\n IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n TrustAnchorRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserAuthenticatorRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController,\n ConsentController,\n EventController,\n IdentityProviderAccountController,\n IdentityProviderController,\n IdentityProviderRoleMappingController,\n KeyController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n SessionController,\n SessionTokenController,\n TrustAnchorController,\n UserAttributeController,\n UserAuthenticatorController,\n UserController,\n UserPermissionController,\n UserRoleController,\n useRequestEventContext,\n} from '../../../../adapters/http/index.ts';\nimport {\n AccountController,\n ActivateController,\n AuthenticatorChallengeController,\n AuthorizeController,\n JwkController,\n LogoutController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n UserInfoController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientCertificateValidator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n ConsentService,\n CredentialsAuthenticator,\n IdentityProviderAccountService,\n IdentityProviderRoleMappingService,\n KeyProvisioner,\n KeyService,\n LoginThrottleService,\n OAuth2AccessPolicyEvaluator,\n OAuth2ClientAuthenticator,\n OAuth2EndSessionService,\n OAuth2FederatedLoginService,\n OAuth2MfaLoginService,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmCipher,\n RealmService,\n RegistrationService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n SessionService,\n SessionTokenService,\n SystemClientProvisioner,\n TrustAnchorService,\n UserAttributeService,\n UserAuthenticator,\n UserAuthenticatorService,\n UserPermissionService,\n UserRoleService,\n UserService,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { LazyWildcardRealmProvisioner } from '../../provisioning/lazy-wildcard.ts';\nimport { IdentityInjectionKey, UserIdentityRepository } from '../../identity/index.ts';\nimport type { StatusResponseFeatures } from '@authup/core-http-kit';\nimport type { Config } from '../../config/index.ts';\nimport { ConfigInjectionKey, getAppOrigins } from '../../config/index.ts';\nimport { CacheInjectionKey } from '../../cache/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\nimport { MetricsInjectionKey } from '../../metrics/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: App, container: IContainer): Promise<void> {\n const eventController = this.createEventController(container);\n const realmController = this.createRealmController(container);\n const roleController = this.createRoleController(container);\n const permissionController = await this.createPermissionController(container);\n const permissionPolicyController = this.createPermissionPolicyController(container);\n const clientController = this.createClientController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const keyController = this.createKeyController(container);\n const trustAnchorController = this.createTrustAnchorController(container);\n const sessionController = this.createSessionController(container);\n const sessionTokenController = this.createSessionTokenController(container);\n const consentController = this.createConsentController(container);\n const identityProviderAccountController = this.createIdentityProviderAccountController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(container);\n const userAuthenticatorController = this.createUserAuthenticatorController(container);\n const userPermissionController = this.createUserPermissionController(container);\n const userRoleController = this.createUserRoleController(container);\n const policyController = this.createPolicyController(container);\n const identityProviderRoleController = this.createIdentityProviderRoleController(container);\n\n router.use(decorators({\n controllers: [\n this.createAuthorize(container),\n this.createToken(container),\n this.createJwkController(container),\n this.createOpenIDController(container),\n this.createActivateController(container),\n this.createPasswordForgotController(container),\n this.createPasswordResetController(container),\n this.createRegisterController(container),\n this.createLogoutController(container),\n this.createAuthenticatorChallengeController(container),\n this.createUserInfoController(container),\n this.createAccountController(container),\n\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n consentController,\n eventController,\n identityProviderAccountController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n keyController,\n trustAnchorController,\n permissionController,\n permissionPolicyController,\n policyController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n sessionController,\n sessionTokenController,\n userController,\n userAttributeController,\n userAuthenticatorController,\n userPermissionController,\n userRoleController,\n ],\n }));\n }\n\n // ----------------------------------------------------\n\n createAuthorize(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n const metrics = container.resolve(MetricsInjectionKey);\n\n return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n promptLoginMaxAge: config.promptLoginMaxAge,\n mfaFreshnessMaxAge: config.mfaFreshnessMaxAge,\n },\n\n codeIssuer,\n codeRequestVerifier,\n\n sessionManager,\n\n eventService,\n metrics,\n\n mfaChallengeProvider: this.resolveUserAuthenticatorService(container),\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n\n consentService: this.createConsentService(container),\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n createToken(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);\n\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);\n const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);\n const keyStore = container.resolve(OAuth2InjectionToken.KeyStore);\n\n const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);\n const sessionTokenRepository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator({\n identityResolver,\n certificateValidator: new ClientCertificateValidator({ trustAnchorRepository: new TrustAnchorRepositoryAdapter(dataSource) }),\n });\n\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n const metrics = container.resolve(MetricsInjectionKey);\n\n const loginThrottleService = new LoginThrottleService({\n repository: container.resolve(DatabaseInjectionKey.EventRepository),\n options: {\n enabled: config.loginAttemptThrottleEnabled,\n threshold: config.loginAttemptThreshold,\n windowSeconds: config.loginAttemptWindow,\n },\n });\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n openIdTokenIssuer,\n keyStore,\n\n tokenVerifier,\n tokenRevoker,\n tokenRepository,\n sessionTokenRepository,\n\n eventService,\n metrics,\n loginThrottleService,\n userAuthenticatorService: this.resolveUserAuthenticatorService(container),\n mfaLoginService: this.resolveMfaLoginService(container),\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n\n tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,\n logger,\n\n identityResolver,\n identityPermissionProvider,\n\n userAuthenticator,\n\n oauth2ClientAuthenticator,\n certificateSource: config.certificateSource,\n\n realmRepository: new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity)),\n\n sessionManager,\n });\n }\n\n createOpenIDController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new OpenIDController({ baseURL: config.publicUrl });\n }\n\n createActivateController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new ActivateController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createPasswordForgotController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordForgotController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordResetController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordResetController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordRecoveryService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new PasswordRecoveryService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n options: {\n passwordRecoveryEnabled: config.passwordRecoveryEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createRegisterController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new RegisterController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n service: this.createRegistrationService(container),\n });\n }\n\n createLogoutController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const clientRepository = container.resolve(OAuth2InjectionToken.ClientRepository);\n const realmRepository = new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity));\n\n const endSessionService = new OAuth2EndSessionService({\n tokenVerifier,\n sessionManager,\n clientRepository,\n realmRepository,\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n hintGracePeriod: config.endSessionHintGracePeriod,\n });\n\n return new LogoutController({\n options: { baseURL: config.publicUrl },\n endSessionService,\n });\n }\n\n createStatusController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new StatusController({ options: { features: this.buildUIFeatures(config) } });\n }\n\n createAccountController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new AccountController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n trustedOrigins: getAppOrigins(config),\n },\n });\n }\n\n buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\n accountConsole: config.accountConsoleEnabled,\n };\n }\n\n createRegistrationService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new RegistrationService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n options: {\n registrationEnabled: config.registrationEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createIdentityProvider(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const accountManager = container.resolve(IdentityInjectionKey.ProviderAccountManager);\n const linkStore = container.resolve(IdentityInjectionKey.ProviderAccountLinkStore);\n\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const stateManager = container.resolve(OAuth2InjectionToken.AuthorizationStateManager);\n\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const repository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository,\n });\n\n const logger = container.resolve(LoggerInjectionKey);\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n\n const loginService = new OAuth2FederatedLoginService({\n options: { baseURL: config.publicUrl },\n\n accountManager,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n codeRequestVerifier,\n\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n pendingLoginStore: container.resolve(OAuth2InjectionToken.FederatedLoginStore),\n accessTokenIssuer: container.resolve(OAuth2InjectionToken.AccessTokenIssuer),\n refreshTokenIssuer: container.resolve(OAuth2InjectionToken.RefreshTokenIssuer),\n\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n eventService,\n metrics: container.resolve(MetricsInjectionKey),\n logger,\n });\n\n return new IdentityProviderController({\n options: { baseURL: config.publicUrl },\n\n repository,\n accountManager,\n linkStore,\n\n codeRequestVerifier,\n stateManager,\n loginService,\n\n eventService,\n logger,\n });\n }\n\n createClientController(container: IContainer) {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new ClientService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n return new ClientController({\n service,\n repository,\n });\n }\n\n private createPermissionRepository(container: IContainer): PermissionRepositoryAdapter {\n return new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n private createRoleRepository(container: IContainer): RoleRepositoryAdapter {\n return new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n async createPermissionController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository,\n });\n\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const roleRepository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n const rolePermissionRepository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const policyRepository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n\n const permissionPolicyRepository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n\n const service = new PermissionService({\n repository,\n realmRepository: realmRepositoryAdapter,\n roleRepository,\n rolePermissionRepository,\n policyRepository,\n permissionPolicyRepository,\n });\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const checkerService = new PermissionCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n permissionProvider,\n identityPermissionProvider,\n });\n\n return new PermissionController({\n service,\n checkerService,\n });\n }\n\n createRoleController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new RoleService({\n repository,\n realmRepository,\n });\n return new RoleController({ service });\n }\n\n createClientPermissionController(container: IContainer) {\n const repository = new ClientPermissionRepositoryAdapter(\n container.resolve<Repository<ClientPermission>>(ClientPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new ClientPermissionController({ service });\n }\n\n createClientRoleController(container: IContainer) {\n const repository = new ClientRoleRepositoryAdapter(\n container.resolve<Repository<ClientRole>>(ClientRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientRoleService({ repository, identityPermissionProvider });\n return new ClientRoleController({ service });\n }\n\n createClientScopeController(container: IContainer) {\n const repository = new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n );\n const service = new ClientScopeService({ repository });\n return new ClientScopeController({ service });\n }\n\n createRoleAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new RoleAttributeRepositoryAdapter(\n container.resolve<Repository<RoleAttribute>>(RoleAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(RoleEntity).columns.map((c) => c.propertyName),\n );\n const service = new RoleAttributeService({ repository, reservedNames });\n return new RoleAttributeController({ service });\n }\n\n createRolePermissionController(container: IContainer) {\n const repository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RolePermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RolePermissionController({ service });\n }\n\n createPermissionPolicyController(container: IContainer) {\n const repository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n const service = new PermissionPolicyService({ repository });\n return new PermissionPolicyController({ service });\n }\n\n createScopeController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new ScopeService({\n repository,\n realmRepository,\n });\n return new ScopeController({ service });\n }\n\n createKeyController(container: IContainer) {\n // the DI singleton carries the optional KEK cipher — never construct\n // a fresh adapter here.\n const service = new KeyService({\n repository: container.resolve(OAuth2InjectionToken.KeyStore),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new KeyController({ service });\n }\n\n createTrustAnchorController(container: IContainer) {\n const repository = new TrustAnchorRepositoryAdapter(\n container.resolve(DatabaseInjectionKey.DataSource),\n );\n const service = new TrustAnchorService({\n repository,\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new TrustAnchorController({ service });\n }\n\n createSessionTokenController(container: IContainer) {\n const repository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);\n const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);\n const service = new SessionTokenService({ repository, tokenRepository });\n return new SessionTokenController({ service });\n }\n\n createSessionController(container: IContainer) {\n const repository = container.resolve(AuthenticationInjectionKey.SessionRepository);\n const service = new SessionService({ repository });\n return new SessionController({ service });\n }\n\n protected createConsentService(container: IContainer) : ConsentService {\n const repository = container.resolve(OAuth2InjectionToken.ConsentRepository);\n return new ConsentService({ repository });\n }\n\n createConsentController(container: IContainer) {\n return new ConsentController({ service: this.createConsentService(container) });\n }\n\n createIdentityProviderAccountController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const service = new IdentityProviderAccountService({\n repository: new IdentityProviderAccountRepositoryAdapter(dataSource),\n userRepository: new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n }),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new IdentityProviderAccountController({ service });\n }\n\n private accessPolicyEvaluator? : OAuth2AccessPolicyEvaluator;\n\n protected resolveAccessPolicyEvaluator(container: IContainer) : OAuth2AccessPolicyEvaluator {\n if (this.accessPolicyEvaluator) {\n return this.accessPolicyEvaluator;\n }\n\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n this.accessPolicyEvaluator = new OAuth2AccessPolicyEvaluator({\n policyProvider: new PolicyRepository(dataSource),\n identityPermissionProvider: container.resolve(IdentityInjectionKey.PermissionProvider),\n logger: container.resolve(LoggerInjectionKey),\n });\n\n return this.accessPolicyEvaluator;\n }\n\n private userAuthenticatorService? : UserAuthenticatorService;\n\n protected resolveUserAuthenticatorService(container: IContainer) : UserAuthenticatorService {\n if (this.userAuthenticatorService) {\n return this.userAuthenticatorService;\n }\n\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const repository = new UserAuthenticatorRepositoryAdapter(\n container.resolve<Repository<UserAuthenticatorModel>>(UserAuthenticatorEntity),\n );\n const userRepository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n\n let issuer : string | undefined;\n let webauthn : {\n rpId: string, \n rpName: string, \n origin: string \n } | undefined;\n try {\n const url = new URL(config.publicUrl);\n issuer = url.hostname;\n webauthn = {\n rpId: url.hostname,\n rpName: issuer,\n origin: url.origin,\n };\n } catch {\n issuer = undefined;\n webauthn = undefined;\n }\n\n this.userAuthenticatorService = new UserAuthenticatorService({\n repository,\n userRepository,\n cache: container.resolve(CacheInjectionKey),\n cipher: new RealmCipher({ keyStore: container.resolve(OAuth2InjectionToken.KeyStore) }),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n mailClient: container.resolve(MailInjectionKey),\n mailTemplateRenderer: container.resolve(MailTemplateRendererInjectionKey),\n options: {\n enabled: config.mfaEnabled,\n required: config.mfaRequired,\n issuer,\n webauthn,\n },\n });\n\n return this.userAuthenticatorService;\n }\n\n createUserAuthenticatorController(container: IContainer) {\n return new UserAuthenticatorController({ service: this.resolveUserAuthenticatorService(container) });\n }\n\n private mfaLoginService? : OAuth2MfaLoginService;\n\n protected resolveMfaLoginService(container: IContainer) : OAuth2MfaLoginService {\n if (this.mfaLoginService) {\n return this.mfaLoginService;\n }\n\n this.mfaLoginService = new OAuth2MfaLoginService({\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n ticketIssuer: container.resolve(OAuth2InjectionToken.MfaTokenIssuer),\n accessTokenIssuer: container.resolve(OAuth2InjectionToken.AccessTokenIssuer),\n refreshTokenIssuer: container.resolve(OAuth2InjectionToken.RefreshTokenIssuer),\n tokenRepository: container.resolve(OAuth2InjectionToken.TokenRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n metrics: container.resolve(MetricsInjectionKey),\n });\n\n return this.mfaLoginService;\n }\n\n createAuthenticatorChallengeController(container: IContainer) {\n return new AuthenticatorChallengeController({\n service: this.resolveUserAuthenticatorService(container),\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n mfaLoginService: this.resolveMfaLoginService(container),\n });\n }\n\n createEventController(container: IContainer) {\n const service = container.resolve(DatabaseInjectionKey.EventService);\n return new EventController({ service });\n }\n\n createUserService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n return new UserService({\n repository,\n realmRepository: realmRepositoryAdapter,\n passwordMinLength: config.passwordMinLength,\n });\n }\n\n createUserController(container: IContainer) {\n return new UserController({ service: this.createUserService(container) });\n }\n\n createUserInfoController(container: IContainer) {\n return new UserInfoController({ service: this.createUserService(container) });\n }\n\n createUserAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new UserAttributeRepositoryAdapter(\n container.resolve<Repository<UserAttribute>>(UserAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(UserEntity).columns.map((c) => c.propertyName),\n );\n const service = new UserAttributeService({ repository, reservedNames });\n return new UserAttributeController({ service });\n }\n\n createUserPermissionController(container: IContainer) {\n const repository = new UserPermissionRepositoryAdapter(\n container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new UserPermissionController({ service });\n }\n\n createUserRoleController(container: IContainer) {\n const repository = new UserRoleRepositoryAdapter(\n container.resolve<Repository<UserRole>>(UserRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserRoleService({ repository, identityPermissionProvider });\n return new UserRoleController({ service });\n }\n\n createPolicyController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new PolicyService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const checkerService = new PolicyCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n identityPermissionProvider,\n });\n\n return new PolicyController({\n service,\n checkerService,\n });\n }\n\n createIdentityProviderRoleController(container: IContainer) {\n const repository = new IdentityProviderRoleMappingRepositoryAdapter(\n container.resolve<Repository<any>>(IdentityProviderRoleMappingEntity),\n );\n const roleRepository = this.createRoleRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new IdentityProviderRoleMappingService({\n repository,\n roleRepository,\n identityPermissionProvider,\n });\n return new IdentityProviderRoleMappingController({ service });\n }\n\n createJwkController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = dataSource.getRepository(KeyEntity);\n return new JwkController({ repository });\n }\n\n createRealmController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RealmRepositoryAdapter(realmRepository);\n\n const clientRepository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const logger = container.resolve(LoggerInjectionKey);\n const systemClientProvisioner = new SystemClientProvisioner({\n clientRepository,\n scopeRepository: new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository,\n }),\n clientScopeRepository: new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n ),\n appOrigins: getAppOrigins(config),\n logger,\n });\n const keyProvisioner = new KeyProvisioner({\n keyStore: container.resolve(OAuth2InjectionToken.KeyStore),\n logger,\n });\n\n const service = new RealmService({\n repository,\n realmProvisioners: [\n systemClientProvisioner,\n keyProvisioner,\n new LazyWildcardRealmProvisioner(container),\n ],\n logger,\n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: {\n baseURL: config.publicUrl,\n mtlsBaseURL: config.mtlsPublicUrl,\n clientCertificatesEnabled: config.certificateSource !== 'disabled',\n },\n service,\n keyRepository,\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.mjs","names":["decorators","ClientEntity","ClientPermissionEntity","ClientRoleEntity","ClientScopeEntity","IdentityProviderRepository","IdentityProviderRoleMappingEntity","KeyEntity","PermissionEntity","PermissionPolicyEntity","PolicyRepository","RealmEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserAuthenticatorEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderAccountRepositoryAdapter","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","TrustAnchorRepositoryAdapter","UserAttributeRepositoryAdapter","UserAuthenticatorRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","ConsentController","EventController","IdentityProviderAccountController","IdentityProviderController","IdentityProviderRoleMappingController","KeyController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","SessionController","SessionTokenController","TrustAnchorController","UserAttributeController","UserAuthenticatorController","UserController","UserPermissionController","UserRoleController","useRequestEventContext","AccountController","ActivateController","AdminController","AuthenticatorChallengeController","AuthorizeController","JwkController","LogoutController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","UserInfoController","ClientCertificateValidator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","ConsentService","CredentialsAuthenticator","IdentityProviderAccountService","IdentityProviderRoleMappingService","KeyProvisioner","KeyService","LoginThrottleService","OAuth2AccessPolicyEvaluator","OAuth2ClientAuthenticator","OAuth2EndSessionService","OAuth2FederatedLoginService","OAuth2MfaLoginService","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmCipher","RealmService","RegistrationService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","SessionService","SessionTokenService","SystemClientProvisioner","TrustAnchorService","UserAttributeService","UserAuthenticator","UserAuthenticatorService","UserPermissionService","UserRoleService","UserService","AuthenticationInjectionKey","OAuth2InjectionToken","LazyWildcardRealmProvisioner","IdentityInjectionKey","UserIdentityRepository","ConfigInjectionKey","getAppOrigins","CacheInjectionKey","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","MetricsInjectionKey","HTTPControllerModule","mount","router","container","eventController","createEventController","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","keyController","createKeyController","trustAnchorController","createTrustAnchorController","sessionController","createSessionController","sessionTokenController","createSessionTokenController","consentController","createConsentController","identityProviderAccountController","createIdentityProviderAccountController","userController","createUserController","userAttributeController","createUserAttributeController","userAuthenticatorController","createUserAuthenticatorController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createLogoutController","createAuthenticatorChallengeController","createUserInfoController","createAccountController","createAdminController","createStatusController","createIdentityProvider","config","resolve","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","sessionManager","SessionManager","eventService","EventService","metrics","options","baseURL","publicUrl","authConsoleUrl","authConsole","url","features","buildUIFeatures","promptLoginMaxAge","mfaFreshnessMaxAge","mfaChallengeProvider","resolveUserAuthenticatorService","accessPolicyEvaluator","resolveAccessPolicyEvaluator","consentService","createConsentService","logger","dataSource","DataSource","codeVerifier","AuthorizationCodeVerifier","accessTokenIssuer","AccessTokenIssuer","refreshTokenIssuer","RefreshTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","keyStore","KeyStore","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","tokenRepository","TokenRepository","sessionTokenRepository","SessionTokenRepository","identityResolver","Resolver","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","userAuthenticator","oauth2ClientAuthenticator","certificateValidator","trustAnchorRepository","loginThrottleService","repository","EventRepository","enabled","loginAttemptThrottleEnabled","threshold","loginAttemptThreshold","windowSeconds","loginAttemptWindow","userAuthenticatorService","mfaLoginService","resolveMfaLoginService","tokenRefreshGracePeriod","certificateSource","realmRepository","service","createRegistrationService","createPasswordRecoveryService","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","passwordMinLength","clientRepository","ClientRepository","endSessionService","hintGracePeriod","endSessionHintGracePeriod","consoleUrl","adminConsole","loginStore","ConsoleLoginStore","sessionRepository","SessionRepository","accountConsole","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","linkStore","ProviderAccountLinkStore","stateManager","AuthorizationStateManager","loginService","pendingLoginStore","FederatedLoginStore","accountConsoleUrl","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","requestContext","ConsentRepository","userRepository","userPermissionRepository","userRoleRepository","policyProvider","issuer","webauthn","URL","hostname","rpId","rpName","origin","undefined","cache","cipher","mfaEnabled","required","mfaRequired","ticketIssuer","MfaTokenIssuer","createUserService","getRepository","systemClientProvisioner","scopeRepository","clientScopeRepository","appOrigins","keyProvisioner","realmProvisioners","keyRepository","mtlsBaseURL","mtlsPublicUrl","clientCertificatesEnabled"],"sources":["../../../../../src/app/modules/http/modules/controller.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IApp } from 'routup';\nimport { decorators } from '@routup/decorators';\nimport type {\n Client,\n ClientPermission,\n ClientRole,\n ClientScope,\n Permission,\n PermissionPolicy,\n Realm,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\n UserAuthenticator as UserAuthenticatorModel,\n UserPermission,\n UserRole,\n} from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport {\n ClientEntity,\n ClientPermissionEntity,\n ClientRoleEntity,\n ClientScopeEntity,\n IdentityProviderRepository,\n IdentityProviderRoleMappingEntity,\n KeyEntity,\n PermissionEntity,\n PermissionPolicyEntity,\n PolicyRepository,\n RealmEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\n UserAuthenticatorEntity,\n UserEntity,\n UserPermissionEntity,\n UserRepository,\n UserRoleEntity,\n} from '../../../../adapters/database/domains/index.ts';\nimport {\n ClientPermissionRepositoryAdapter,\n ClientRepositoryAdapter,\n ClientRoleRepositoryAdapter,\n ClientScopeRepositoryAdapter,\n DatabaseInjectionKey,\n IdentityProviderAccountRepositoryAdapter,\n IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n TrustAnchorRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserAuthenticatorRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController,\n ConsentController,\n EventController,\n IdentityProviderAccountController,\n IdentityProviderController,\n IdentityProviderRoleMappingController,\n KeyController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n SessionController,\n SessionTokenController,\n TrustAnchorController,\n UserAttributeController,\n UserAuthenticatorController,\n UserController,\n UserPermissionController,\n UserRoleController,\n useRequestEventContext,\n} from '../../../../adapters/http/index.ts';\nimport {\n AccountController,\n ActivateController,\n AdminController,\n AuthenticatorChallengeController,\n AuthorizeController,\n JwkController,\n LogoutController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n UserInfoController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientCertificateValidator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n ConsentService,\n CredentialsAuthenticator,\n IdentityProviderAccountService,\n IdentityProviderRoleMappingService,\n KeyProvisioner,\n KeyService,\n LoginThrottleService,\n OAuth2AccessPolicyEvaluator,\n OAuth2ClientAuthenticator,\n OAuth2EndSessionService,\n OAuth2FederatedLoginService,\n OAuth2MfaLoginService,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmCipher,\n RealmService,\n RegistrationService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n SessionService,\n SessionTokenService,\n SystemClientProvisioner,\n TrustAnchorService,\n UserAttributeService,\n UserAuthenticator,\n UserAuthenticatorService,\n UserPermissionService,\n UserRoleService,\n UserService,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { LazyWildcardRealmProvisioner } from '../../provisioning/lazy-wildcard.ts';\nimport { IdentityInjectionKey, UserIdentityRepository } from '../../identity/index.ts';\nimport type { StatusResponseFeatures } from '@authup/core-http-kit';\nimport type { Config } from '../../config/index.ts';\nimport { ConfigInjectionKey, getAppOrigins } from '../../config/index.ts';\nimport { CacheInjectionKey } from '../../cache/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\nimport { MetricsInjectionKey } from '../../metrics/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: IApp, container: IContainer): Promise<void> {\n const eventController = this.createEventController(container);\n const realmController = this.createRealmController(container);\n const roleController = this.createRoleController(container);\n const permissionController = await this.createPermissionController(container);\n const permissionPolicyController = this.createPermissionPolicyController(container);\n const clientController = this.createClientController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const keyController = this.createKeyController(container);\n const trustAnchorController = this.createTrustAnchorController(container);\n const sessionController = this.createSessionController(container);\n const sessionTokenController = this.createSessionTokenController(container);\n const consentController = this.createConsentController(container);\n const identityProviderAccountController = this.createIdentityProviderAccountController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(container);\n const userAuthenticatorController = this.createUserAuthenticatorController(container);\n const userPermissionController = this.createUserPermissionController(container);\n const userRoleController = this.createUserRoleController(container);\n const policyController = this.createPolicyController(container);\n const identityProviderRoleController = this.createIdentityProviderRoleController(container);\n\n router.use(decorators({\n controllers: [\n this.createAuthorize(container),\n this.createToken(container),\n this.createJwkController(container),\n this.createOpenIDController(container),\n this.createActivateController(container),\n this.createPasswordForgotController(container),\n this.createPasswordResetController(container),\n this.createRegisterController(container),\n this.createLogoutController(container),\n this.createAuthenticatorChallengeController(container),\n this.createUserInfoController(container),\n this.createAccountController(container),\n this.createAdminController(container),\n\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n consentController,\n eventController,\n identityProviderAccountController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n keyController,\n trustAnchorController,\n permissionController,\n permissionPolicyController,\n policyController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n sessionController,\n sessionTokenController,\n userController,\n userAttributeController,\n userAuthenticatorController,\n userPermissionController,\n userRoleController,\n ],\n }));\n }\n\n // ----------------------------------------------------\n\n createAuthorize(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n const metrics = container.resolve(MetricsInjectionKey);\n\n return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n authConsoleUrl: config.authConsole.url,\n features: this.buildUIFeatures(config),\n promptLoginMaxAge: config.promptLoginMaxAge,\n mfaFreshnessMaxAge: config.mfaFreshnessMaxAge,\n },\n\n codeIssuer,\n codeRequestVerifier,\n\n sessionManager,\n\n eventService,\n metrics,\n\n mfaChallengeProvider: this.resolveUserAuthenticatorService(container),\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n\n consentService: this.createConsentService(container),\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n createToken(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n\n const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);\n\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);\n const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);\n const keyStore = container.resolve(OAuth2InjectionToken.KeyStore);\n\n const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);\n const sessionTokenRepository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator({\n identityResolver,\n certificateValidator: new ClientCertificateValidator({ trustAnchorRepository: new TrustAnchorRepositoryAdapter(dataSource) }),\n });\n\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n const metrics = container.resolve(MetricsInjectionKey);\n\n const loginThrottleService = new LoginThrottleService({\n repository: container.resolve(DatabaseInjectionKey.EventRepository),\n options: {\n enabled: config.loginAttemptThrottleEnabled,\n threshold: config.loginAttemptThreshold,\n windowSeconds: config.loginAttemptWindow,\n },\n });\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n openIdTokenIssuer,\n keyStore,\n\n tokenVerifier,\n tokenRevoker,\n tokenRepository,\n sessionTokenRepository,\n\n eventService,\n metrics,\n loginThrottleService,\n userAuthenticatorService: this.resolveUserAuthenticatorService(container),\n mfaLoginService: this.resolveMfaLoginService(container),\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n\n tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,\n logger,\n\n identityResolver,\n identityPermissionProvider,\n\n userAuthenticator,\n\n oauth2ClientAuthenticator,\n certificateSource: config.certificateSource,\n\n realmRepository: new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity)),\n\n sessionManager,\n });\n }\n\n createOpenIDController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new OpenIDController({ baseURL: config.publicUrl });\n }\n\n createActivateController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new ActivateController({\n options: { authConsoleUrl: config.authConsole.url },\n service: this.createRegistrationService(container),\n });\n }\n\n createPasswordForgotController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordForgotController({\n options: { authConsoleUrl: config.authConsole.url },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordResetController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new PasswordResetController({\n options: { authConsoleUrl: config.authConsole.url },\n service: this.createPasswordRecoveryService(container),\n });\n }\n\n createPasswordRecoveryService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new PasswordRecoveryService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n options: {\n passwordRecoveryEnabled: config.passwordRecoveryEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createRegisterController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new RegisterController({\n options: { authConsoleUrl: config.authConsole.url },\n service: this.createRegistrationService(container),\n });\n }\n\n createLogoutController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const clientRepository = container.resolve(OAuth2InjectionToken.ClientRepository);\n const realmRepository = new RealmRepositoryAdapter(container.resolve<Repository<Realm>>(RealmEntity));\n\n const endSessionService = new OAuth2EndSessionService({\n tokenVerifier,\n sessionManager,\n clientRepository,\n realmRepository,\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n hintGracePeriod: config.endSessionHintGracePeriod,\n });\n\n return new LogoutController({\n options: { authConsoleUrl: config.authConsole.url },\n endSessionService,\n });\n }\n\n createStatusController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new StatusController({ options: { features: this.buildUIFeatures(config) } });\n }\n\n createAdminController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new AdminController({\n options: {\n baseURL: config.publicUrl,\n consoleUrl: config.adminConsole.url,\n enabled: config.adminConsole.enabled,\n },\n loginStore: container.resolve(OAuth2InjectionToken.ConsoleLoginStore),\n sessionRepository: container.resolve(AuthenticationInjectionKey.SessionRepository),\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n tokenVerifier: container.resolve(OAuth2InjectionToken.TokenVerifier),\n tokenRevoker: container.resolve(OAuth2InjectionToken.TokenRevoker),\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n createAccountController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new AccountController({\n options: {\n baseURL: config.publicUrl,\n consoleUrl: config.accountConsole.url,\n enabled: config.accountConsole.enabled,\n },\n loginStore: container.resolve(OAuth2InjectionToken.ConsoleLoginStore),\n sessionRepository: container.resolve(AuthenticationInjectionKey.SessionRepository),\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n tokenVerifier: container.resolve(OAuth2InjectionToken.TokenVerifier),\n tokenRevoker: container.resolve(OAuth2InjectionToken.TokenRevoker),\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n\n buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\n accountConsole: config.accountConsole.enabled,\n adminConsole: config.adminConsole.enabled,\n };\n }\n\n createRegistrationService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const mailClient = container.resolve(MailInjectionKey);\n const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);\n\n return new RegistrationService({\n mailClient,\n mailTemplateRenderer,\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n options: {\n registrationEnabled: config.registrationEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\n passwordMinLength: config.passwordMinLength,\n },\n });\n }\n\n createIdentityProvider(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const accountManager = container.resolve(IdentityInjectionKey.ProviderAccountManager);\n const linkStore = container.resolve(IdentityInjectionKey.ProviderAccountLinkStore);\n\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const stateManager = container.resolve(OAuth2InjectionToken.AuthorizationStateManager);\n\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n\n const repository = new IdentityProviderRepositoryAdapter({\n repository: new IdentityProviderRepository(dataSource),\n realmRepository,\n });\n\n const logger = container.resolve(LoggerInjectionKey);\n const eventService = container.resolve(DatabaseInjectionKey.EventService);\n\n const loginService = new OAuth2FederatedLoginService({\n options: { baseURL: config.publicUrl },\n\n accountManager,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n codeRequestVerifier,\n\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n pendingLoginStore: container.resolve(OAuth2InjectionToken.FederatedLoginStore),\n accessTokenIssuer: container.resolve(OAuth2InjectionToken.AccessTokenIssuer),\n refreshTokenIssuer: container.resolve(OAuth2InjectionToken.RefreshTokenIssuer),\n\n accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),\n eventService,\n metrics: container.resolve(MetricsInjectionKey),\n logger,\n });\n\n return new IdentityProviderController({\n options: {\n baseURL: config.publicUrl,\n accountConsoleUrl: config.accountConsole.url,\n },\n\n repository,\n accountManager,\n linkStore,\n\n codeRequestVerifier,\n stateManager,\n loginService,\n\n eventService,\n logger,\n });\n }\n\n createClientController(container: IContainer) {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new ClientService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n return new ClientController({\n service,\n repository,\n });\n }\n\n private createPermissionRepository(container: IContainer): PermissionRepositoryAdapter {\n return new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n private createRoleRepository(container: IContainer): RoleRepositoryAdapter {\n return new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n }\n\n async createPermissionController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PermissionRepositoryAdapter({\n repository: container.resolve<Repository<Permission>>(PermissionEntity),\n realmRepository,\n });\n\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const roleRepository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository,\n });\n const rolePermissionRepository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const policyRepository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n\n const permissionPolicyRepository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n\n const service = new PermissionService({\n repository,\n realmRepository: realmRepositoryAdapter,\n roleRepository,\n rolePermissionRepository,\n policyRepository,\n permissionPolicyRepository,\n });\n\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const checkerService = new PermissionCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n permissionProvider,\n identityPermissionProvider,\n });\n\n return new PermissionController({\n service,\n checkerService,\n });\n }\n\n createRoleController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new RoleRepositoryAdapter({\n repository: container.resolve<Repository<Role>>(RoleEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new RoleService({\n repository,\n realmRepository,\n });\n return new RoleController({ service });\n }\n\n createClientPermissionController(container: IContainer) {\n const repository = new ClientPermissionRepositoryAdapter(\n container.resolve<Repository<ClientPermission>>(ClientPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new ClientPermissionController({ service });\n }\n\n createClientRoleController(container: IContainer) {\n const repository = new ClientRoleRepositoryAdapter(\n container.resolve<Repository<ClientRole>>(ClientRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new ClientRoleService({ repository, identityPermissionProvider });\n return new ClientRoleController({ service });\n }\n\n createClientScopeController(container: IContainer) {\n const repository = new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n );\n const service = new ClientScopeService({ repository });\n return new ClientScopeController({ service });\n }\n\n createRoleAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new RoleAttributeRepositoryAdapter(\n container.resolve<Repository<RoleAttribute>>(RoleAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(RoleEntity).columns.map((c) => c.propertyName),\n );\n const service = new RoleAttributeService({ repository, reservedNames });\n return new RoleAttributeController({ service });\n }\n\n createRolePermissionController(container: IContainer) {\n const repository = new RolePermissionRepositoryAdapter(\n container.resolve<Repository<RolePermission>>(RolePermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RolePermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RolePermissionController({ service });\n }\n\n createPermissionPolicyController(container: IContainer) {\n const repository = new PermissionPolicyRepositoryAdapter(\n container.resolve<Repository<PermissionPolicy>>(PermissionPolicyEntity),\n );\n const service = new PermissionPolicyService({ repository });\n return new PermissionPolicyController({ service });\n }\n\n createScopeController(container: IContainer) {\n const realmRepository = new RealmRepositoryAdapter(\n container.resolve<Repository<Realm>>(RealmEntity),\n );\n const repository = new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n const service = new ScopeService({\n repository,\n realmRepository,\n });\n return new ScopeController({ service });\n }\n\n createKeyController(container: IContainer) {\n // the DI singleton carries the optional KEK cipher — never construct\n // a fresh adapter here.\n const service = new KeyService({\n repository: container.resolve(OAuth2InjectionToken.KeyStore),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new KeyController({ service });\n }\n\n createTrustAnchorController(container: IContainer) {\n const repository = new TrustAnchorRepositoryAdapter(\n container.resolve(DatabaseInjectionKey.DataSource),\n );\n const service = new TrustAnchorService({\n repository,\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new TrustAnchorController({ service });\n }\n\n createSessionTokenController(container: IContainer) {\n const repository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);\n const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);\n const service = new SessionTokenService({ repository, tokenRepository });\n return new SessionTokenController({ service });\n }\n\n createSessionController(container: IContainer) {\n const repository = container.resolve(AuthenticationInjectionKey.SessionRepository);\n const service = new SessionService({\n repository,\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n });\n const config = container.resolve(ConfigInjectionKey);\n\n return new SessionController({\n service,\n // Only `GET /sessions/@me/introspect` and the cookie-clearing half\n // of the `@me` delete use these (plan 088). Optional, so a minimal\n // graph still constructs the entity routes.\n baseURL: config.publicUrl,\n identityResolver: container.resolve(IdentityInjectionKey.Resolver),\n identityPermissionProvider: container.resolve(IdentityInjectionKey.PermissionProvider),\n sessionRepository: repository,\n });\n }\n\n protected createConsentService(container: IContainer) : ConsentService {\n const repository = container.resolve(OAuth2InjectionToken.ConsentRepository);\n return new ConsentService({ repository });\n }\n\n createConsentController(container: IContainer) {\n return new ConsentController({ service: this.createConsentService(container) });\n }\n\n createIdentityProviderAccountController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const service = new IdentityProviderAccountService({\n repository: new IdentityProviderAccountRepositoryAdapter(dataSource),\n userRepository: new UserIdentityRepository({\n repository: new UserRepository(dataSource),\n userPermissionRepository: container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n userRoleRepository: container.resolve<Repository<UserRole>>(UserRoleEntity),\n }),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n });\n return new IdentityProviderAccountController({ service });\n }\n\n private accessPolicyEvaluator? : OAuth2AccessPolicyEvaluator;\n\n protected resolveAccessPolicyEvaluator(container: IContainer) : OAuth2AccessPolicyEvaluator {\n if (this.accessPolicyEvaluator) {\n return this.accessPolicyEvaluator;\n }\n\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n this.accessPolicyEvaluator = new OAuth2AccessPolicyEvaluator({\n policyProvider: new PolicyRepository(dataSource),\n identityPermissionProvider: container.resolve(IdentityInjectionKey.PermissionProvider),\n logger: container.resolve(LoggerInjectionKey),\n });\n\n return this.accessPolicyEvaluator;\n }\n\n private userAuthenticatorService? : UserAuthenticatorService;\n\n protected resolveUserAuthenticatorService(container: IContainer) : UserAuthenticatorService {\n if (this.userAuthenticatorService) {\n return this.userAuthenticatorService;\n }\n\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const repository = new UserAuthenticatorRepositoryAdapter(\n container.resolve<Repository<UserAuthenticatorModel>>(UserAuthenticatorEntity),\n );\n const userRepository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository: container.resolve<Repository<Realm>>(RealmEntity),\n });\n\n let issuer : string | undefined;\n let webauthn : {\n rpId: string,\n rpName: string,\n origin: string\n } | undefined;\n try {\n const url = new URL(config.publicUrl);\n issuer = url.hostname;\n webauthn = {\n rpId: url.hostname,\n rpName: issuer,\n origin: url.origin,\n };\n } catch {\n issuer = undefined;\n webauthn = undefined;\n }\n\n this.userAuthenticatorService = new UserAuthenticatorService({\n repository,\n userRepository,\n cache: container.resolve(CacheInjectionKey),\n cipher: new RealmCipher({ keyStore: container.resolve(OAuth2InjectionToken.KeyStore) }),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n requestContext: useRequestEventContext,\n mailClient: container.resolve(MailInjectionKey),\n mailTemplateRenderer: container.resolve(MailTemplateRendererInjectionKey),\n options: {\n enabled: config.mfaEnabled,\n required: config.mfaRequired,\n issuer,\n webauthn,\n },\n });\n\n return this.userAuthenticatorService;\n }\n\n createUserAuthenticatorController(container: IContainer) {\n return new UserAuthenticatorController({ service: this.resolveUserAuthenticatorService(container) });\n }\n\n private mfaLoginService? : OAuth2MfaLoginService;\n\n protected resolveMfaLoginService(container: IContainer) : OAuth2MfaLoginService {\n if (this.mfaLoginService) {\n return this.mfaLoginService;\n }\n\n this.mfaLoginService = new OAuth2MfaLoginService({\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n ticketIssuer: container.resolve(OAuth2InjectionToken.MfaTokenIssuer),\n accessTokenIssuer: container.resolve(OAuth2InjectionToken.AccessTokenIssuer),\n refreshTokenIssuer: container.resolve(OAuth2InjectionToken.RefreshTokenIssuer),\n tokenRepository: container.resolve(OAuth2InjectionToken.TokenRepository),\n eventService: container.resolve(DatabaseInjectionKey.EventService),\n metrics: container.resolve(MetricsInjectionKey),\n });\n\n return this.mfaLoginService;\n }\n\n createAuthenticatorChallengeController(container: IContainer) {\n return new AuthenticatorChallengeController({\n service: this.resolveUserAuthenticatorService(container),\n sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),\n mfaLoginService: this.resolveMfaLoginService(container),\n });\n }\n\n createEventController(container: IContainer) {\n const service = container.resolve(DatabaseInjectionKey.EventService);\n return new EventController({ service });\n }\n\n createUserService(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new UserRepositoryAdapter({\n repository: new UserRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n return new UserService({\n repository,\n realmRepository: realmRepositoryAdapter,\n passwordMinLength: config.passwordMinLength,\n });\n }\n\n createUserController(container: IContainer) {\n return new UserController({ service: this.createUserService(container) });\n }\n\n createUserInfoController(container: IContainer) {\n return new UserInfoController({ service: this.createUserService(container) });\n }\n\n createUserAttributeController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = new UserAttributeRepositoryAdapter(\n container.resolve<Repository<UserAttribute>>(UserAttributeEntity),\n );\n const reservedNames = new Set(\n dataSource.getMetadata(UserEntity).columns.map((c) => c.propertyName),\n );\n const service = new UserAttributeService({ repository, reservedNames });\n return new UserAttributeController({ service });\n }\n\n createUserPermissionController(container: IContainer) {\n const repository = new UserPermissionRepositoryAdapter(\n container.resolve<Repository<UserPermission>>(UserPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new UserPermissionController({ service });\n }\n\n createUserRoleController(container: IContainer) {\n const repository = new UserRoleRepositoryAdapter(\n container.resolve<Repository<UserRole>>(UserRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new UserRoleService({ repository, identityPermissionProvider });\n return new UserRoleController({ service });\n }\n\n createPolicyController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new PolicyRepositoryAdapter({\n repository: new PolicyRepository(dataSource),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new PolicyService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const checkerService = new PolicyCheckerService({\n repository,\n realmRepository: realmRepositoryAdapter,\n identityPermissionProvider,\n });\n\n return new PolicyController({\n service,\n checkerService,\n });\n }\n\n createIdentityProviderRoleController(container: IContainer) {\n const repository = new IdentityProviderRoleMappingRepositoryAdapter(\n container.resolve<Repository<any>>(IdentityProviderRoleMappingEntity),\n );\n const roleRepository = this.createRoleRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new IdentityProviderRoleMappingService({\n repository,\n roleRepository,\n identityPermissionProvider,\n });\n return new IdentityProviderRoleMappingController({ service });\n }\n\n createJwkController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const repository = dataSource.getRepository(KeyEntity);\n return new JwkController({ repository });\n }\n\n createRealmController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RealmRepositoryAdapter(realmRepository);\n\n const clientRepository = new ClientRepositoryAdapter({\n repository: container.resolve<Repository<Client>>(ClientEntity),\n realmRepository,\n });\n const logger = container.resolve(LoggerInjectionKey);\n const systemClientProvisioner = new SystemClientProvisioner({\n clientRepository,\n scopeRepository: new ScopeRepositoryAdapter({\n repository: container.resolve<Repository<Scope>>(ScopeEntity),\n realmRepository,\n }),\n clientScopeRepository: new ClientScopeRepositoryAdapter(\n container.resolve<Repository<ClientScope>>(ClientScopeEntity),\n ),\n appOrigins: getAppOrigins(config),\n logger,\n });\n const keyProvisioner = new KeyProvisioner({\n keyStore: container.resolve(OAuth2InjectionToken.KeyStore),\n logger,\n });\n\n const service = new RealmService({\n repository,\n realmProvisioners: [\n systemClientProvisioner,\n keyProvisioner,\n new LazyWildcardRealmProvisioner(container),\n ],\n logger,\n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: {\n baseURL: config.publicUrl,\n mtlsBaseURL: config.mtlsPublicUrl,\n clientCertificatesEnabled: config.certificateSource !== 'disabled',\n },\n service,\n keyRepository,\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,27 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IApp } from 'routup';
|
|
2
2
|
import type { IContainer } from 'eldin';
|
|
3
|
-
import type { ViteDevServer } from 'vite';
|
|
4
3
|
export declare class HTTPMiddlewareModule {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
mountUIHttpClient(router: App, container: IContainer): Promise<void>;
|
|
18
|
-
mountBasic(router: App): Promise<void>;
|
|
19
|
-
mountPrometheus(router: App, container: IContainer): Promise<void>;
|
|
20
|
-
mountRateLimit(router: App, container: IContainer): Promise<void>;
|
|
21
|
-
mountSwagger(router: App, container: IContainer): Promise<void>;
|
|
22
|
-
mountRealmResolver(router: App, container: IContainer): Promise<void>;
|
|
23
|
-
mountAuthorization(router: App, container: IContainer): Promise<void>;
|
|
24
|
-
mountRequestEventContext(router: App): Promise<void>;
|
|
4
|
+
mountBefore(router: IApp, container: IContainer): Promise<void>;
|
|
5
|
+
mountAfter(router: IApp, container: IContainer): Promise<void>;
|
|
6
|
+
mountCors(router: IApp, container: IContainer): Promise<void>;
|
|
7
|
+
mountLogger(router: IApp, container: IContainer): Promise<void>;
|
|
8
|
+
mountInternalHttpClient(router: IApp, container: IContainer): Promise<void>;
|
|
9
|
+
mountBasic(router: IApp): Promise<void>;
|
|
10
|
+
mountPrometheus(router: IApp, container: IContainer): Promise<void>;
|
|
11
|
+
mountRateLimit(router: IApp, container: IContainer): Promise<void>;
|
|
12
|
+
mountSwagger(router: IApp, container: IContainer): Promise<void>;
|
|
13
|
+
mountRealmResolver(router: IApp, container: IContainer): Promise<void>;
|
|
14
|
+
mountAuthorization(router: IApp, container: IContainer): Promise<void>;
|
|
15
|
+
mountRequestEventContext(router: IApp): Promise<void>;
|
|
25
16
|
private transformBoolToEmptyObject;
|
|
26
17
|
private isEnabled;
|
|
27
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/http/modules/middleware.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/http/modules/middleware.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AA8BxC,qBAAa,oBAAoB;IACvB,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/D,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAY7D,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/D,uBAAuB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3E,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnE,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAchE,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtE,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtE,wBAAwB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,OAAO,CAAC,0BAA0B;IAUlC,OAAO,CAAC,SAAS;CAGpB"}
|
|
@@ -5,21 +5,24 @@ import { AuthenticationInjectionKey } from "../../authentication/constants.mjs";
|
|
|
5
5
|
import { RealmEntity } from "../../../../adapters/database/domains/realm/entity.mjs";
|
|
6
6
|
import "../../../../adapters/database/domains/index.mjs";
|
|
7
7
|
import { ConfigInjectionKey } from "../../config/constants.mjs";
|
|
8
|
-
import { createRequestEventContextMiddleware } from "../../../../adapters/http/request/event-context.mjs";
|
|
9
8
|
import "../../config/index.mjs";
|
|
10
|
-
import "../../
|
|
9
|
+
import { LoggerInjectionKey } from "../../logger/constants.mjs";
|
|
10
|
+
import "../../logger/index.mjs";
|
|
11
|
+
import { OAuth2InjectionToken } from "../../oauth2/constants.mjs";
|
|
12
|
+
import { DIST_PATH } from "../../../../path.mjs";
|
|
11
13
|
import { RealmRepositoryAdapter } from "../../database/repositories/realm/repository.mjs";
|
|
12
14
|
import { PermissionDatabaseProvider } from "../../database/repositories/permission-provider/module.mjs";
|
|
13
15
|
import "../../database/repositories/index.mjs";
|
|
16
|
+
import { IdentityInjectionKey } from "../../identity/constants.mjs";
|
|
14
17
|
import { DatabaseInjectionKey } from "../../database/constants.mjs";
|
|
15
|
-
import {
|
|
16
|
-
import "../../logger/index.mjs";
|
|
18
|
+
import { createRequestEventContextMiddleware } from "../../../../adapters/http/request/event-context.mjs";
|
|
17
19
|
import "../../database/index.mjs";
|
|
20
|
+
import "../../identity/index.mjs";
|
|
21
|
+
import "../../oauth2/index.mjs";
|
|
22
|
+
import "../../authentication/index.mjs";
|
|
18
23
|
import { HTTPInjectionKey } from "../constants.mjs";
|
|
19
|
-
import { DIST_PATH } from "../../../../path.mjs";
|
|
20
24
|
import { createAuthorizationMiddleware } from "../../../../adapters/http/middleware/built-in/authorization/factory.mjs";
|
|
21
25
|
import { createRealmResolverMiddleware } from "../../../../adapters/http/middleware/built-in/realm-resolver/factory.mjs";
|
|
22
|
-
import { registerAssetsMiddleware } from "../../../../adapters/http/middleware/built-in/assets.mjs";
|
|
23
26
|
import { registerBasicMiddleware } from "../../../../adapters/http/middleware/built-in/basic.mjs";
|
|
24
27
|
import { registerCorsMiddleware } from "../../../../adapters/http/middleware/built-in/cors.mjs";
|
|
25
28
|
import { registerErrorMiddleware } from "../../../../adapters/http/middleware/built-in/error.mjs";
|
|
@@ -27,22 +30,16 @@ import { createLoggerMiddleware } from "../../../../adapters/http/middleware/bui
|
|
|
27
30
|
import { registerPrometheusMiddleware } from "../../../../adapters/http/middleware/built-in/prometheus.mjs";
|
|
28
31
|
import { registerRateLimitMiddleware } from "../../../../adapters/http/middleware/built-in/rate-limit.mjs";
|
|
29
32
|
import { createSwaggerMiddleware } from "../../../../adapters/http/middleware/built-in/swagger.mjs";
|
|
30
|
-
import {
|
|
33
|
+
import { registerInternalHttpClientMiddleware } from "../../../../adapters/http/middleware/built-in/internal-http-client.mjs";
|
|
31
34
|
import "../../../../adapters/http/index.mjs";
|
|
32
|
-
import { OAuth2InjectionToken } from "../../oauth2/constants.mjs";
|
|
33
|
-
import { IdentityInjectionKey } from "../../identity/constants.mjs";
|
|
34
|
-
import "../../identity/index.mjs";
|
|
35
|
-
import "../../oauth2/index.mjs";
|
|
36
35
|
import path from "node:path";
|
|
37
36
|
//#region src/app/modules/http/modules/middleware.ts
|
|
38
37
|
var HTTPMiddlewareModule = class {
|
|
39
|
-
viteServer;
|
|
40
38
|
async mountBefore(router, container) {
|
|
41
39
|
await this.mountPrometheus(router, container);
|
|
42
40
|
await this.mountLogger(router, container);
|
|
43
41
|
await this.mountCors(router, container);
|
|
44
|
-
await this.
|
|
45
|
-
await this.mountUIHttpClient(router, container);
|
|
42
|
+
await this.mountInternalHttpClient(router, container);
|
|
46
43
|
await this.mountBasic(router);
|
|
47
44
|
await this.mountRateLimit(router, container);
|
|
48
45
|
await this.mountSwagger(router, container);
|
|
@@ -57,7 +54,7 @@ var HTTPMiddlewareModule = class {
|
|
|
57
54
|
const config = container.resolve(ConfigInjectionKey);
|
|
58
55
|
if (!this.isEnabled(config.middlewareCors)) return;
|
|
59
56
|
const options = this.transformBoolToEmptyObject(config.middlewareCors) ?? {};
|
|
60
|
-
registerCorsMiddleware(router, options);
|
|
57
|
+
registerCorsMiddleware(router, options, { baseURL: config.publicUrl });
|
|
61
58
|
}
|
|
62
59
|
async mountLogger(router, container) {
|
|
63
60
|
const config = container.resolve(ConfigInjectionKey);
|
|
@@ -67,26 +64,9 @@ var HTTPMiddlewareModule = class {
|
|
|
67
64
|
});
|
|
68
65
|
router.use(middleware);
|
|
69
66
|
}
|
|
70
|
-
async
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
themeDirectoryPath: config.themeDirectoryPath,
|
|
74
|
-
themeFragmentsEnabled: config.themeFragmentsEnabled,
|
|
75
|
-
logger: container.resolve(LoggerInjectionKey)
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Release what the mounted middlewares own beyond the http listener. Only
|
|
80
|
-
* the JIT vite dev server qualifies: it keeps a file watcher and an HMR
|
|
81
|
-
* websocket alive, which would survive every setup/teardown cycle.
|
|
82
|
-
*/ async teardown() {
|
|
83
|
-
if (!this.viteServer) return;
|
|
84
|
-
await this.viteServer.close();
|
|
85
|
-
this.viteServer = void 0;
|
|
86
|
-
}
|
|
87
|
-
async mountUIHttpClient(router, container) {
|
|
88
|
-
if (!container.has(HTTPInjectionKey.UIHttpClient)) return;
|
|
89
|
-
registerUIHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.UIHttpClient));
|
|
67
|
+
async mountInternalHttpClient(router, container) {
|
|
68
|
+
if (!container.has(HTTPInjectionKey.InternalHttpClient)) return;
|
|
69
|
+
registerInternalHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.InternalHttpClient));
|
|
90
70
|
}
|
|
91
71
|
async mountBasic(router) {
|
|
92
72
|
registerBasicMiddleware(router);
|
|
@@ -120,6 +100,7 @@ var HTTPMiddlewareModule = class {
|
|
|
120
100
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
121
101
|
const identityResolver = container.resolve(IdentityInjectionKey.Resolver);
|
|
122
102
|
const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
|
|
103
|
+
const sessionRepository = container.resolve(AuthenticationInjectionKey.SessionRepository);
|
|
123
104
|
const oauth2TokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);
|
|
124
105
|
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
125
106
|
const permissionProvider = new PermissionDatabaseProvider(dataSource);
|
|
@@ -129,10 +110,13 @@ var HTTPMiddlewareModule = class {
|
|
|
129
110
|
permissionProvider,
|
|
130
111
|
oauth2TokenVerifier,
|
|
131
112
|
sessionManager,
|
|
113
|
+
sessionRepository,
|
|
114
|
+
logger: container.resolve(LoggerInjectionKey),
|
|
132
115
|
options: {
|
|
133
116
|
clientAuthBasic: config.clientAuthBasic,
|
|
134
117
|
userAuthBasic: config.userAuthBasic,
|
|
135
|
-
certificateSource: config.certificateSource
|
|
118
|
+
certificateSource: config.certificateSource,
|
|
119
|
+
baseURL: config.publicUrl
|
|
136
120
|
}
|
|
137
121
|
});
|
|
138
122
|
router.use(middleware);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.mjs","names":["path","createAuthorizationMiddleware","createLoggerMiddleware","createRealmResolverMiddleware","createRequestEventContextMiddleware","createSwaggerMiddleware","registerAssetsMiddleware","registerBasicMiddleware","registerCorsMiddleware","registerErrorMiddleware","registerPrometheusMiddleware","registerRateLimitMiddleware","registerUIHttpClientMiddleware","HTTPInjectionKey","DIST_PATH","AuthenticationInjectionKey","ConfigInjectionKey","LoggerInjectionKey","IdentityInjectionKey","OAuth2InjectionToken","RealmEntity","RealmRepositoryAdapter","DatabaseInjectionKey","PermissionDatabaseProvider","HTTPMiddlewareModule","viteServer","mountBefore","router","container","mountPrometheus","mountLogger","mountCors","mountAssets","mountUIHttpClient","mountBasic","mountRateLimit","mountSwagger","mountAuthorization","mountRequestEventContext","mountRealmResolver","mountAfter","logger","resolve","config","isEnabled","middlewareCors","options","transformBoolToEmptyObject","middleware","env","use","themeDirectoryPath","themeFragmentsEnabled","teardown","close","undefined","has","UIHttpClient","middlewarePrometheus","middlewareRateLimit","middlewareSwagger","documentPath","join","baseURL","publicUrl","realmRepository","dataSource","DataSource","identityResolver","Resolver","sessionManager","SessionManager","oauth2TokenVerifier","TokenVerifier","identityPermissionProvider","PermissionProvider","permissionProvider","clientAuthBasic","userAuthBasic","certificateSource","input"],"sources":["../../../../../src/app/modules/http/modules/middleware.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { App } from 'routup';\nimport path from 'node:path';\nimport type { IContainer } from 'eldin';\nimport type { ViteDevServer } from 'vite';\nimport type { Repository } from 'typeorm';\nimport type { Realm } from '@authup/core-kit';\nimport {\n createAuthorizationMiddleware,\n createLoggerMiddleware,\n createRealmResolverMiddleware,\n createRequestEventContextMiddleware,\n createSwaggerMiddleware,\n registerAssetsMiddleware,\n registerBasicMiddleware,\n registerCorsMiddleware,\n registerErrorMiddleware,\n registerPrometheusMiddleware,\n registerRateLimitMiddleware,\n registerUIHttpClientMiddleware,\n} from '../../../../adapters/http/index.ts';\nimport { HTTPInjectionKey } from '../constants.ts';\nimport { DIST_PATH } from '../../../../path.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { ConfigInjectionKey } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { RealmEntity } from '../../../../adapters/database/domains/index.ts';\nimport { RealmRepositoryAdapter } from '../../database/repositories/index.ts';\nimport {\n DatabaseInjectionKey,\n PermissionDatabaseProvider,\n} from '../../database/index.ts';\n\nexport class HTTPMiddlewareModule {\n protected viteServer : ViteDevServer | undefined;\n\n async mountBefore(router: App, container: IContainer): Promise<void> {\n // @routup/prometheus must be installed before any other plugin or\n // route so that its onion middleware can observe the full request\n // lifecycle (the v3 README is explicit on this).\n await this.mountPrometheus(router, container);\n await this.mountLogger(router, container);\n await this.mountCors(router, container);\n await this.mountAssets(router, container);\n await this.mountUIHttpClient(router, container);\n await this.mountBasic(router);\n await this.mountRateLimit(router, container);\n\n await this.mountSwagger(router, container);\n await this.mountAuthorization(router, container);\n await this.mountRequestEventContext(router);\n await this.mountRealmResolver(router, container);\n }\n\n\n async mountAfter(router: App, container: IContainer): Promise<void> {\n registerErrorMiddleware(router, { logger: container.resolve(LoggerInjectionKey) });\n }\n\n // ----------------------------------------------------\n async mountCors(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareCors)) {\n return;\n }\n\n const options = this.transformBoolToEmptyObject(config.middlewareCors) ?? {};\n\n registerCorsMiddleware(router, options);\n }\n\n async mountLogger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const middleware = createLoggerMiddleware({\n env: config.env,\n logger: container.resolve(LoggerInjectionKey),\n });\n\n router.use(middleware);\n }\n\n async mountAssets(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n // Config is resolved HERE, in the app-module layer, and the value is\n // passed down: adapters/http/ui/** must not read config itself.\n this.viteServer = await registerAssetsMiddleware(router, {\n themeDirectoryPath: config.themeDirectoryPath,\n themeFragmentsEnabled: config.themeFragmentsEnabled,\n logger: container.resolve(LoggerInjectionKey),\n });\n }\n\n /**\n * Release what the mounted middlewares own beyond the http listener. Only\n * the JIT vite dev server qualifies: it keeps a file watcher and an HMR\n * websocket alive, which would survive every setup/teardown cycle.\n */\n async teardown(): Promise<void> {\n if (!this.viteServer) {\n return;\n }\n\n await this.viteServer.close();\n this.viteServer = undefined;\n }\n\n async mountUIHttpClient(router: App, container: IContainer): Promise<void> {\n if (!container.has(HTTPInjectionKey.UIHttpClient)) {\n return;\n }\n\n registerUIHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.UIHttpClient));\n }\n\n async mountBasic(router: App): Promise<void> {\n registerBasicMiddleware(router);\n }\n\n async mountPrometheus(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewarePrometheus)) {\n return;\n }\n\n registerPrometheusMiddleware(router, this.transformBoolToEmptyObject(config.middlewarePrometheus));\n }\n\n async mountRateLimit(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareRateLimit)) {\n return;\n }\n\n registerRateLimitMiddleware(router, this.transformBoolToEmptyObject(config.middlewareRateLimit));\n }\n\n async mountSwagger(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n if (!this.isEnabled(config.middlewareSwagger)) {\n return;\n }\n\n const middleware = createSwaggerMiddleware({\n documentPath: path.join(DIST_PATH, 'swagger.json'),\n baseURL: config.publicUrl,\n });\n\n router.use('/docs', middleware);\n }\n\n async mountRealmResolver(router: App, container: IContainer): Promise<void> {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const middleware = createRealmResolverMiddleware({ realmRepository: new RealmRepositoryAdapter(realmRepository) });\n\n // Mounted at /realms/:realmId/:nested so the middleware only fires on\n // nested-resource URLs (e.g. /realms/master/users/...). Bare\n // /realms/:id routes belong to RealmController (CRUD, openid-config,\n // jwks) and would otherwise 404 on PUT upserts where the realm\n // doesn't exist yet.\n router.use('/realms/:realmId/:nested', middleware);\n }\n\n async mountAuthorization(router: App, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const oauth2TokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const middleware = createAuthorizationMiddleware({\n identityResolver,\n identityPermissionProvider,\n permissionProvider,\n oauth2TokenVerifier,\n sessionManager,\n options: {\n clientAuthBasic: config.clientAuthBasic,\n userAuthBasic: config.userAuthBasic,\n certificateSource: config.certificateSource,\n },\n });\n\n router.use(middleware);\n }\n\n async mountRequestEventContext(router: App): Promise<void> {\n // mounted immediately AFTER the authorization middleware — the\n // identity must already be resolved for actor attribution.\n router.use(createRequestEventContextMiddleware());\n }\n\n // ----------------------------------------------------\n\n private transformBoolToEmptyObject<T extends Record<string, any>>(\n input?: T | boolean,\n ) : T | undefined {\n if (typeof input === 'boolean') {\n return {} as T;\n }\n\n return input || {} as T;\n }\n\n private isEnabled<T>(input: T | boolean) {\n return typeof input !== 'boolean' || input === true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"middleware.mjs","names":["path","createAuthorizationMiddleware","createLoggerMiddleware","createRealmResolverMiddleware","createRequestEventContextMiddleware","createSwaggerMiddleware","registerBasicMiddleware","registerCorsMiddleware","registerErrorMiddleware","registerInternalHttpClientMiddleware","registerPrometheusMiddleware","registerRateLimitMiddleware","HTTPInjectionKey","DIST_PATH","AuthenticationInjectionKey","ConfigInjectionKey","LoggerInjectionKey","IdentityInjectionKey","OAuth2InjectionToken","RealmEntity","RealmRepositoryAdapter","DatabaseInjectionKey","PermissionDatabaseProvider","HTTPMiddlewareModule","mountBefore","router","container","mountPrometheus","mountLogger","mountCors","mountInternalHttpClient","mountBasic","mountRateLimit","mountSwagger","mountAuthorization","mountRequestEventContext","mountRealmResolver","mountAfter","logger","resolve","config","isEnabled","middlewareCors","options","transformBoolToEmptyObject","baseURL","publicUrl","middleware","env","use","has","InternalHttpClient","middlewarePrometheus","middlewareRateLimit","middlewareSwagger","documentPath","join","realmRepository","dataSource","DataSource","identityResolver","Resolver","sessionManager","SessionManager","sessionRepository","SessionRepository","oauth2TokenVerifier","TokenVerifier","identityPermissionProvider","PermissionProvider","permissionProvider","clientAuthBasic","userAuthBasic","certificateSource","input"],"sources":["../../../../../src/app/modules/http/modules/middleware.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { IApp } from 'routup';\nimport path from 'node:path';\nimport type { IContainer } from 'eldin';\nimport type { Repository } from 'typeorm';\nimport type { Realm } from '@authup/core-kit';\nimport {\n createAuthorizationMiddleware,\n createLoggerMiddleware,\n createRealmResolverMiddleware,\n createRequestEventContextMiddleware,\n createSwaggerMiddleware,\n registerBasicMiddleware,\n registerCorsMiddleware,\n registerErrorMiddleware,\n registerInternalHttpClientMiddleware,\n registerPrometheusMiddleware,\n registerRateLimitMiddleware,\n} from '../../../../adapters/http/index.ts';\nimport { HTTPInjectionKey } from '../constants.ts';\nimport { DIST_PATH } from '../../../../path.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { ConfigInjectionKey } from '../../config/index.ts';\nimport { LoggerInjectionKey } from '../../logger/index.ts';\nimport { IdentityInjectionKey } from '../../identity/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { RealmEntity } from '../../../../adapters/database/domains/index.ts';\nimport { RealmRepositoryAdapter } from '../../database/repositories/index.ts';\nimport {\n DatabaseInjectionKey,\n PermissionDatabaseProvider,\n} from '../../database/index.ts';\n\nexport class HTTPMiddlewareModule {\n async mountBefore(router: IApp, container: IContainer): Promise<void> {\n // @routup/prometheus must be installed before any other plugin or\n // route so that its onion middleware can observe the full request\n // lifecycle (the v3 README is explicit on this).\n await this.mountPrometheus(router, container);\n await this.mountLogger(router, container);\n await this.mountCors(router, container);\n await this.mountInternalHttpClient(router, container);\n await this.mountBasic(router);\n await this.mountRateLimit(router, container);\n\n await this.mountSwagger(router, container);\n await this.mountAuthorization(router, container);\n await this.mountRequestEventContext(router);\n await this.mountRealmResolver(router, container);\n }\n\n\n async mountAfter(router: IApp, container: IContainer): Promise<void> {\n registerErrorMiddleware(router, { logger: container.resolve(LoggerInjectionKey) });\n }\n\n // ----------------------------------------------------\n async mountCors(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareCors)) {\n return;\n }\n\n const options = this.transformBoolToEmptyObject(config.middlewareCors) ?? {};\n\n registerCorsMiddleware(router, options, { baseURL: config.publicUrl });\n }\n\n async mountLogger(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const middleware = createLoggerMiddleware({\n env: config.env,\n logger: container.resolve(LoggerInjectionKey),\n });\n\n router.use(middleware);\n }\n\n async mountInternalHttpClient(router: IApp, container: IContainer): Promise<void> {\n if (!container.has(HTTPInjectionKey.InternalHttpClient)) {\n return;\n }\n\n registerInternalHttpClientMiddleware(router, () => container.resolve(HTTPInjectionKey.InternalHttpClient));\n }\n\n async mountBasic(router: IApp): Promise<void> {\n registerBasicMiddleware(router);\n }\n\n async mountPrometheus(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewarePrometheus)) {\n return;\n }\n\n registerPrometheusMiddleware(router, this.transformBoolToEmptyObject(config.middlewarePrometheus));\n }\n\n async mountRateLimit(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n\n if (!this.isEnabled(config.middlewareRateLimit)) {\n return;\n }\n\n registerRateLimitMiddleware(router, this.transformBoolToEmptyObject(config.middlewareRateLimit));\n }\n\n async mountSwagger(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n if (!this.isEnabled(config.middlewareSwagger)) {\n return;\n }\n\n const middleware = createSwaggerMiddleware({\n documentPath: path.join(DIST_PATH, 'swagger.json'),\n baseURL: config.publicUrl,\n });\n\n router.use('/docs', middleware);\n }\n\n async mountRealmResolver(router: IApp, container: IContainer): Promise<void> {\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const middleware = createRealmResolverMiddleware({ realmRepository: new RealmRepositoryAdapter(realmRepository) });\n\n // Mounted at /realms/:realmId/:nested so the middleware only fires on\n // nested-resource URLs (e.g. /realms/master/users/...). Bare\n // /realms/:id routes belong to RealmController (CRUD, openid-config,\n // jwks) and would otherwise 404 on PUT upserts where the realm\n // doesn't exist yet.\n router.use('/realms/:realmId/:nested', middleware);\n }\n\n async mountAuthorization(router: IApp, container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);\n const sessionRepository = container.resolve(AuthenticationInjectionKey.SessionRepository);\n const oauth2TokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n\n const permissionProvider = new PermissionDatabaseProvider(dataSource);\n\n const middleware = createAuthorizationMiddleware({\n identityResolver,\n identityPermissionProvider,\n permissionProvider,\n oauth2TokenVerifier,\n sessionManager,\n sessionRepository,\n logger: container.resolve(LoggerInjectionKey),\n options: {\n clientAuthBasic: config.clientAuthBasic,\n userAuthBasic: config.userAuthBasic,\n certificateSource: config.certificateSource,\n baseURL: config.publicUrl,\n },\n });\n\n router.use(middleware);\n }\n\n async mountRequestEventContext(router: IApp): Promise<void> {\n // mounted immediately AFTER the authorization middleware — the\n // identity must already be resolved for actor attribution.\n router.use(createRequestEventContextMiddleware());\n }\n\n // ----------------------------------------------------\n\n private transformBoolToEmptyObject<T extends Record<string, any>>(\n input?: T | boolean,\n ) : T | undefined {\n if (typeof input === 'boolean') {\n return {} as T;\n }\n\n return input || {} as T;\n }\n\n private isEnabled<T>(input: T | boolean) {\n return typeof input !== 'boolean' || input === true;\n }\n}\n"],"mappings":"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"}
|