@authup/server-core 1.0.0-beta.57 → 1.0.0-beta.59
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/logger/module.mjs +2 -4
- package/dist/adapters/database/logger/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/index.mjs +2 -1
- package/dist/adapters/http/controllers/workflows/account/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/account/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/account/module.d.ts +24 -0
- package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/account/module.mjs +63 -0
- package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/activate/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +2 -2
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +2 -2
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/userinfo/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/userinfo/module.mjs +5 -1
- package/dist/adapters/http/controllers/workflows/userinfo/module.mjs.map +1 -1
- package/dist/adapters/http/index.mjs +3 -1
- package/dist/adapters/http/middleware/built-in/assets.d.ts +8 -1
- package/dist/adapters/http/middleware/built-in/assets.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs +48 -4
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +2 -0
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/theme.d.ts +15 -0
- package/dist/adapters/http/middleware/built-in/theme.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/theme.mjs +27 -0
- package/dist/adapters/http/middleware/built-in/theme.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/types.d.ts +14 -0
- package/dist/adapters/http/middleware/built-in/types.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +1 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +2 -1
- package/dist/adapters/http/request/client-certificate.mjs +1 -1
- package/dist/adapters/http/request/client-certificate.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/locations.mjs +1 -3
- package/dist/adapters/http/request/helpers/locations.mjs.map +1 -1
- package/dist/adapters/http/ui/account-console/index.d.ts +4 -0
- package/dist/adapters/http/ui/account-console/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/account-console/index.mjs +6 -0
- package/dist/adapters/http/ui/account-console/module.d.ts +28 -0
- package/dist/adapters/http/ui/account-console/module.d.ts.map +1 -0
- package/dist/adapters/http/ui/account-console/module.mjs +80 -0
- package/dist/adapters/http/ui/account-console/module.mjs.map +1 -0
- package/dist/adapters/http/ui/account-console/ref.d.ts +30 -0
- package/dist/adapters/http/ui/account-console/ref.d.ts.map +1 -0
- package/dist/adapters/http/ui/account-console/ref.mjs +50 -0
- package/dist/adapters/http/ui/account-console/ref.mjs.map +1 -0
- package/dist/adapters/http/ui/account-console/types.d.ts +11 -0
- package/dist/adapters/http/ui/account-console/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/account-console/types.mjs +4 -0
- package/dist/adapters/http/ui/{internal-http-client.d.ts → auth-console/http-client.d.ts} +1 -1
- package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +1 -0
- package/dist/adapters/http/ui/{internal-http-client.mjs → auth-console/http-client.mjs} +2 -2
- package/dist/adapters/http/ui/auth-console/http-client.mjs.map +1 -0
- package/dist/adapters/http/ui/auth-console/index.d.ts +6 -0
- package/dist/adapters/http/ui/auth-console/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/auth-console/index.mjs +8 -0
- package/dist/adapters/http/ui/auth-console/module.d.ts +4 -0
- package/dist/adapters/http/ui/auth-console/module.d.ts.map +1 -0
- package/dist/adapters/http/ui/auth-console/module.mjs +73 -0
- package/dist/adapters/http/ui/auth-console/module.mjs.map +1 -0
- package/dist/adapters/http/ui/auth-console/resolve.d.ts +21 -0
- package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +1 -0
- package/dist/adapters/http/ui/auth-console/resolve.mjs +53 -0
- package/dist/adapters/http/ui/auth-console/resolve.mjs.map +1 -0
- package/dist/adapters/http/ui/{serve.d.ts → auth-console/serve.d.ts} +1 -8
- package/dist/adapters/http/ui/auth-console/serve.d.ts.map +1 -0
- package/dist/adapters/http/ui/{serve.mjs → auth-console/serve.mjs} +5 -5
- package/dist/adapters/http/ui/auth-console/serve.mjs.map +1 -0
- package/dist/adapters/http/ui/auth-console/types.d.ts +26 -0
- package/dist/adapters/http/ui/auth-console/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/auth-console/types.mjs +4 -0
- package/dist/adapters/http/ui/console-packages/index.d.ts +3 -0
- package/dist/adapters/http/ui/console-packages/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/console-packages/index.mjs +5 -0
- package/dist/adapters/http/ui/console-packages/module.d.ts +33 -0
- package/dist/adapters/http/ui/console-packages/module.d.ts.map +1 -0
- package/dist/adapters/http/ui/console-packages/module.mjs +70 -0
- package/dist/adapters/http/ui/console-packages/module.mjs.map +1 -0
- package/dist/adapters/http/ui/console-packages/types.d.ts +12 -0
- package/dist/adapters/http/ui/console-packages/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/console-packages/types.mjs +4 -0
- package/dist/adapters/http/ui/index.d.ts +5 -5
- package/dist/adapters/http/ui/index.d.ts.map +1 -1
- package/dist/adapters/http/ui/index.mjs +22 -5
- package/dist/adapters/http/ui/shared/html.d.ts +76 -0
- package/dist/adapters/http/ui/shared/html.d.ts.map +1 -0
- package/dist/adapters/http/ui/shared/html.mjs +103 -0
- package/dist/adapters/http/ui/shared/html.mjs.map +1 -0
- package/dist/adapters/http/ui/shared/index.d.ts +2 -0
- package/dist/adapters/http/ui/shared/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/shared/index.mjs +5 -0
- package/dist/adapters/http/ui/theme/apply.d.ts +12 -0
- package/dist/adapters/http/ui/theme/apply.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/apply.mjs +29 -0
- package/dist/adapters/http/ui/theme/apply.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/assets.d.ts +20 -0
- package/dist/adapters/http/ui/theme/assets.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/assets.mjs +86 -0
- package/dist/adapters/http/ui/theme/assets.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/constants.d.ts +16 -0
- package/dist/adapters/http/ui/theme/constants.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/constants.mjs +20 -0
- package/dist/adapters/http/ui/theme/constants.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/contract/constants.d.ts +120 -0
- package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/constants.mjs +136 -0
- package/dist/adapters/http/ui/theme/contract/constants.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/contract/head.d.ts +12 -0
- package/dist/adapters/http/ui/theme/contract/head.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/head.mjs +61 -0
- package/dist/adapters/http/ui/theme/contract/head.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/contract/index.d.ts +6 -0
- package/dist/adapters/http/ui/theme/contract/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/index.mjs +8 -0
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts +25 -0
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/manifest.mjs +77 -0
- package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/contract/types.d.ts +26 -0
- package/dist/adapters/http/ui/theme/contract/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/types.mjs +4 -0
- package/dist/adapters/http/ui/theme/contract/utils.d.ts +11 -0
- package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/contract/utils.mjs +22 -0
- package/dist/adapters/http/ui/theme/contract/utils.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/index.d.ts +7 -0
- package/dist/adapters/http/ui/theme/index.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/index.mjs +13 -0
- package/dist/adapters/http/ui/theme/module.d.ts +79 -0
- package/dist/adapters/http/ui/theme/module.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/module.mjs +206 -0
- package/dist/adapters/http/ui/theme/module.mjs.map +1 -0
- package/dist/adapters/http/ui/theme/types.d.ts +42 -0
- package/dist/adapters/http/ui/theme/types.d.ts.map +1 -0
- package/dist/adapters/http/ui/theme/types.mjs +4 -0
- package/dist/app/index.mjs +3 -1
- package/dist/app/modules/authentication/module.mjs +6 -3
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/config/constants.d.ts +5 -0
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +5 -0
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/helpers.mjs +3 -2
- package/dist/app/modules/config/helpers.mjs.map +1 -1
- package/dist/app/modules/config/normalize.d.ts.map +1 -1
- package/dist/app/modules/config/normalize.mjs +8 -0
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/origins.d.ts.map +1 -1
- package/dist/app/modules/config/origins.mjs +2 -0
- package/dist/app/modules/config/origins.mjs.map +1 -1
- package/dist/app/modules/config/read/env.d.ts.map +1 -1
- package/dist/app/modules/config/read/env.mjs +10 -0
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/read/module.mjs +8 -3
- package/dist/app/modules/config/read/module.mjs.map +1 -1
- package/dist/app/modules/config/types.d.ts +63 -3
- 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 +5 -0
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/module.mjs +2 -1
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +7 -1
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +2 -1
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +214 -128
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +9 -1
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +28 -8
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +6 -3
- package/dist/app/modules/identity/module.mjs.map +1 -1
- package/dist/app/modules/index.mjs +3 -1
- package/dist/app/modules/oauth2/module.mjs +37 -17
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs +1 -1
- package/dist/app/modules/oauth2/repositories/authorize/state/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs +1 -1
- package/dist/app/modules/oauth2/repositories/token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/constants.d.ts +12 -0
- package/dist/app/modules/provisioning/constants.d.ts.map +1 -0
- package/dist/app/modules/provisioning/constants.mjs +16 -0
- package/dist/app/modules/provisioning/constants.mjs.map +1 -0
- package/dist/app/modules/provisioning/index.d.ts +2 -0
- package/dist/app/modules/provisioning/index.d.ts.map +1 -1
- package/dist/app/modules/provisioning/index.mjs +3 -1
- package/dist/app/modules/provisioning/lazy-wildcard.d.ts +15 -0
- package/dist/app/modules/provisioning/lazy-wildcard.d.ts.map +1 -0
- package/dist/app/modules/provisioning/lazy-wildcard.mjs +23 -0
- package/dist/app/modules/provisioning/lazy-wildcard.mjs.map +1 -0
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +30 -11
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.d.ts +0 -19
- package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs +7 -77
- package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs +11 -2
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- package/dist/core/authentication/session/module.mjs +2 -4
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/entities/client/index.d.ts +1 -1
- package/dist/core/entities/client/index.d.ts.map +1 -1
- package/dist/core/entities/client/index.mjs +2 -2
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +1 -1
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/system-clients.d.ts +95 -0
- package/dist/core/entities/client/system-clients.d.ts.map +1 -0
- package/dist/core/entities/client/system-clients.mjs +158 -0
- package/dist/core/entities/client/system-clients.mjs.map +1 -0
- package/dist/core/entities/client/types.d.ts +17 -4
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +12 -9
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/index.mjs +2 -2
- package/dist/core/entities/key/service.mjs +4 -2
- package/dist/core/entities/key/service.mjs.map +1 -1
- package/dist/core/entities/permission/service.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +1 -1
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/policy/service.d.ts.map +1 -1
- package/dist/core/entities/policy/service.mjs +3 -2
- package/dist/core/entities/policy/service.mjs.map +1 -1
- package/dist/core/entities/realm/service.d.ts +8 -6
- package/dist/core/entities/realm/service.d.ts.map +1 -1
- package/dist/core/entities/realm/service.mjs +6 -9
- package/dist/core/entities/realm/service.mjs.map +1 -1
- package/dist/core/entities/role/service.d.ts.map +1 -1
- package/dist/core/entities/role/service.mjs +1 -1
- package/dist/core/entities/role/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +12 -9
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/scope/service.d.ts.map +1 -1
- package/dist/core/entities/scope/service.mjs +1 -1
- package/dist/core/entities/scope/service.mjs.map +1 -1
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +1 -1
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/helpers.mjs +1 -1
- package/dist/core/entities/user-authenticator/helpers.mjs.map +1 -1
- package/dist/core/entities/user-authenticator/service.mjs +7 -7
- package/dist/core/entities/user-authenticator/service.mjs.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +12 -9
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +1 -1
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/index.mjs +6 -2
- package/dist/core/key/types.d.ts +2 -1
- package/dist/core/key/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +2 -2
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/end-session/service.d.ts.map +1 -1
- package/dist/core/oauth2/end-session/service.mjs +2 -2
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/provisioning/constants.d.ts +8 -0
- package/dist/core/provisioning/constants.d.ts.map +1 -0
- package/dist/core/provisioning/constants.mjs +14 -0
- package/dist/core/provisioning/constants.mjs.map +1 -0
- package/dist/core/provisioning/entities/index.mjs +2 -1
- package/dist/core/provisioning/entities/realm/index.d.ts +1 -0
- package/dist/core/provisioning/entities/realm/index.d.ts.map +1 -1
- package/dist/core/provisioning/entities/realm/index.mjs +2 -1
- package/dist/core/provisioning/entities/realm/validator.d.ts +11 -0
- package/dist/core/provisioning/entities/realm/validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/realm/validator.mjs +14 -0
- package/dist/core/provisioning/entities/realm/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts +19 -0
- package/dist/core/provisioning/entities/realm/wildcard-validator.d.ts.map +1 -0
- package/dist/core/provisioning/entities/realm/wildcard-validator.mjs +65 -0
- package/dist/core/provisioning/entities/realm/wildcard-validator.mjs.map +1 -0
- package/dist/core/provisioning/index.d.ts +3 -0
- package/dist/core/provisioning/index.d.ts.map +1 -1
- package/dist/core/provisioning/index.mjs +7 -1
- package/dist/core/provisioning/merge/index.d.ts +3 -0
- package/dist/core/provisioning/merge/index.d.ts.map +1 -0
- package/dist/core/provisioning/merge/index.mjs +5 -0
- package/dist/core/provisioning/merge/module.d.ts +18 -0
- package/dist/core/provisioning/merge/module.d.ts.map +1 -0
- package/dist/core/provisioning/merge/module.mjs +82 -0
- package/dist/core/provisioning/merge/module.mjs.map +1 -0
- package/dist/core/provisioning/merge/types.d.ts +34 -0
- package/dist/core/provisioning/merge/types.d.ts.map +1 -0
- package/dist/core/provisioning/merge/types.mjs +4 -0
- package/dist/core/provisioning/synchronizer/client/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/client/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/permission/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/permission/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/realm/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/realm/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/role/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/role/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/scope/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/scope/module.mjs.map +1 -1
- package/dist/core/provisioning/synchronizer/user/module.mjs +0 -1
- package/dist/core/provisioning/synchronizer/user/module.mjs.map +1 -1
- package/dist/core/provisioning/types.d.ts +10 -0
- package/dist/core/provisioning/types.d.ts.map +1 -1
- package/dist/core/provisioning/wildcard/index.d.ts +3 -0
- package/dist/core/provisioning/wildcard/index.d.ts.map +1 -0
- package/dist/core/provisioning/wildcard/index.mjs +5 -0
- package/dist/core/provisioning/wildcard/module.d.ts +53 -0
- package/dist/core/provisioning/wildcard/module.d.ts.map +1 -0
- package/dist/core/provisioning/wildcard/module.mjs +91 -0
- package/dist/core/provisioning/wildcard/module.mjs.map +1 -0
- package/dist/core/provisioning/wildcard/types.d.ts +19 -0
- package/dist/core/provisioning/wildcard/types.d.ts.map +1 -0
- package/dist/core/provisioning/wildcard/types.mjs +4 -0
- package/dist/index.mjs +5 -1
- package/dist/path.d.ts +0 -2
- package/dist/path.d.ts.map +1 -1
- package/dist/path.mjs +1 -3
- package/dist/path.mjs.map +1 -1
- package/dist/swagger.json +485 -17
- package/package.json +26 -63
- package/dist/adapters/http/ui/base-path.d.ts +0 -9
- package/dist/adapters/http/ui/base-path.d.ts.map +0 -1
- package/dist/adapters/http/ui/base-path.mjs +0 -18
- package/dist/adapters/http/ui/base-path.mjs.map +0 -1
- package/dist/adapters/http/ui/internal-http-client.d.ts.map +0 -1
- package/dist/adapters/http/ui/internal-http-client.mjs.map +0 -1
- package/dist/adapters/http/ui/render.d.ts +0 -4
- package/dist/adapters/http/ui/render.d.ts.map +0 -1
- package/dist/adapters/http/ui/render.mjs +0 -63
- package/dist/adapters/http/ui/render.mjs.map +0 -1
- package/dist/adapters/http/ui/serve.d.ts.map +0 -1
- package/dist/adapters/http/ui/serve.mjs.map +0 -1
- package/dist/adapters/http/ui/types.d.ts +0 -20
- package/dist/adapters/http/ui/types.d.ts.map +0 -1
- package/dist/core/entities/client/web-client.d.ts +0 -72
- package/dist/core/entities/client/web-client.d.ts.map +0 -1
- package/dist/core/entities/client/web-client.mjs +0 -123
- package/dist/core/entities/client/web-client.mjs.map +0 -1
- package/dist/ui/client/.vite/ssr-manifest.json +0 -54812
- package/dist/ui/client/assets/asap-latin-400-normal-Dc37g3Il.woff +0 -0
- package/dist/ui/client/assets/asap-latin-400-normal-DnZ1MOsG.woff2 +0 -0
- package/dist/ui/client/assets/asap-latin-700-normal-Dqcopq14.woff +0 -0
- package/dist/ui/client/assets/asap-latin-700-normal-l2Y8pi-F.woff2 +0 -0
- package/dist/ui/client/assets/asap-latin-ext-400-normal-C-fcRdtE.woff +0 -0
- package/dist/ui/client/assets/asap-latin-ext-400-normal-DwYtpHbV.woff2 +0 -0
- package/dist/ui/client/assets/asap-latin-ext-700-normal-D00OESsZ.woff +0 -0
- package/dist/ui/client/assets/asap-latin-ext-700-normal-y8bo5aW5.woff2 +0 -0
- package/dist/ui/client/assets/asap-vietnamese-400-normal-DGyJlJLT.woff2 +0 -0
- package/dist/ui/client/assets/asap-vietnamese-400-normal-lfLaoF2x.woff +0 -0
- package/dist/ui/client/assets/asap-vietnamese-700-normal-B-e19ug5.woff +0 -0
- package/dist/ui/client/assets/asap-vietnamese-700-normal-D-SxY94i.woff2 +0 -0
- package/dist/ui/client/assets/index-Bk6-OZy9.css +0 -2
- package/dist/ui/client/assets/index-DO6_7NTJ.js +0 -106
- package/dist/ui/client/assets/nunito-cyrillic-300-normal-BPQV259B.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-300-normal-g5qSsvc0.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-600-normal-BUjmtIuu.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-600-normal-DJGQ2h05.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-BDHtqmCR.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-300-normal-ChMQLIrm.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-CWPPjBOD.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-600-normal-vnfu4DTE.woff +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2 +0 -0
- package/dist/ui/client/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-300-normal-C3ZIKvzv.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-300-normal-COoPE5VN.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-400-normal-DKg4f3fz.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-400-normal-r8SDr6Up.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-600-normal-Br8yIETf.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-600-normal-Cd0eNu1l.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-700-normal-Dort48En.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-700-normal-OcDqTBcA.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-300-normal-D1SyVuPt.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-300-normal-DfqbmdMl.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-600-normal-BKUpuB78.woff +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-600-normal-Dd9Zuxh1.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2 +0 -0
- package/dist/ui/client/assets/nunito-latin-ext-700-normal-D4woHhbd.woff +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-300-normal-DATld5Vw.woff +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-300-normal-mLneKULB.woff2 +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2 +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-400-normal-DtOtW02z.woff +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-600-normal-BY8O6Cug.woff2 +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-600-normal-DO1RqFw5.woff +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff +0 -0
- package/dist/ui/client/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2 +0 -0
- package/dist/ui/client/index.html +0 -22
- package/dist/ui/server/assets/multipart-parser-BCMy8Xwv.js +0 -181
- package/dist/ui/server/assets/multipart-parser-BVY8pIV2.js +0 -176
- package/dist/ui/server/server.js +0 -158420
- /package/dist/adapters/http/{ui → middleware/built-in}/types.mjs +0 -0
|
@@ -9,7 +9,8 @@ import "../config/index.mjs";
|
|
|
9
9
|
import { LoggerInjectionKey } from "../logger/constants.mjs";
|
|
10
10
|
import "../logger/index.mjs";
|
|
11
11
|
import { HTTPInjectionKey } from "./constants.mjs";
|
|
12
|
-
import { createInternalUIHttpClient } from "../../../adapters/http/ui/
|
|
12
|
+
import { createInternalUIHttpClient } from "../../../adapters/http/ui/auth-console/http-client.mjs";
|
|
13
|
+
import { bindConsolePackages } from "../../../adapters/http/ui/console-packages/module.mjs";
|
|
13
14
|
import "../../../adapters/http/ui/index.mjs";
|
|
14
15
|
import { MetricsInjectionKey } from "../metrics/constants.mjs";
|
|
15
16
|
import { PromAuthFlowMetrics } from "../metrics/prom.mjs";
|
|
@@ -52,6 +53,10 @@ var HTTPModule = class {
|
|
|
52
53
|
} catch (e) {
|
|
53
54
|
throw new AuthupError(`Invalid trustProxy (TRUST_PROXY) configuration: ${e instanceof Error ? e.message : String(e)}`);
|
|
54
55
|
}
|
|
56
|
+
await bindConsolePackages({
|
|
57
|
+
authConsolePath: config.authConsolePath,
|
|
58
|
+
accountConsolePath: config.accountConsolePath
|
|
59
|
+
});
|
|
55
60
|
this.registerUIHttpClient(container);
|
|
56
61
|
this.registerMetrics(container);
|
|
57
62
|
await this.middleware.mountBefore(router, container);
|
|
@@ -106,6 +111,7 @@ var HTTPModule = class {
|
|
|
106
111
|
this.uiHttpClientRegistered = false;
|
|
107
112
|
}
|
|
108
113
|
container.unregister(MetricsInjectionKey);
|
|
114
|
+
await this.middleware.teardown();
|
|
109
115
|
if (!this.instance) return;
|
|
110
116
|
container.unregister(HTTPInjectionKey.Server);
|
|
111
117
|
await this.instance.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["Client","AuthupError","App","serve","ConfigInjectionKey","createInternalUIHttpClient","NoopAuthFlowMetrics","ModuleName","HTTPInjectionKey","MetricsInjectionKey","PromAuthFlowMetrics","HTTPControllerModule","HTTPMiddlewareModule","LoggerInjectionKey","HTTPModule","name","dependencies","instance","middleware","controller","uiHttpClientRegistered","HTTP","CONFIG","LOGGER","AUTHENTICATION","IDENTITY","OAUTH2","setup","container","config","resolve","logger","debug","router","options","trustProxy","e","Error","message","String","registerUIHttpClient","registerMetrics","mountBefore","mount","mountAfter","server","port","hostname","host","silent","gracefulShutdown","ready","url","register","Server","useValue","has","UIHttpClient","useFactory","c","undefined","publicURL","publicUrl","internalURL","baseURL","lifetime","enabled","middlewarePrometheus","teardown","unregister","close"],"sources":["../../../../src/app/modules/http/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Client } from '@authup/core-http-kit';\nimport { AuthupError } from '@authup/errors';\nimport { App } from 'routup';\nimport { serve } from 'routup/node';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport type { IModule } from 'orkos';\nimport { createInternalUIHttpClient } from '../../../adapters/http/ui/index.ts';\nimport { NoopAuthFlowMetrics } from '../../../core/index.ts';\nimport { ModuleName } from '../constants.ts';\nimport type { HTTPServer } from './constants.ts';\nimport { HTTPInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\nimport { MetricsInjectionKey, PromAuthFlowMetrics } from '../metrics/index.ts';\nimport { HTTPControllerModule, HTTPMiddlewareModule } from './modules/index.ts';\nimport { LoggerInjectionKey } from '../logger/index.ts';\n\nexport class HTTPModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n protected instance : HTTPServer | undefined;\n\n protected middleware : HTTPMiddlewareModule;\n\n protected controller : HTTPControllerModule;\n\n protected uiHttpClientRegistered : boolean;\n\n constructor() {\n this.name = ModuleName.HTTP;\n this.dependencies = [ModuleName.CONFIG, ModuleName.LOGGER, ModuleName.AUTHENTICATION, ModuleName.IDENTITY, ModuleName.OAUTH2];\n this.controller = new HTTPControllerModule();\n this.middleware = new HTTPMiddlewareModule();\n this.uiHttpClientRegistered = false;\n }\n\n // ----------------------------------------------------\n\n async setup(container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n logger.debug('Starting http server...');\n\n // Every request helper deriving proxy-dependent request facts\n // (getRequestIP, hostname, protocol) resolves the trust contract from\n // the app options — call sites must NOT pass their own `trustProxy`.\n let router : App;\n try {\n router = new App({ options: { trustProxy: config.trustProxy } });\n } catch (e) {\n // proxy-addr compiles the allowlist form inside the App\n // constructor; its error (\"invalid IP address: …\") does not name\n // the offending config key — attribute it.\n throw new AuthupError(\n `Invalid trustProxy (TRUST_PROXY) configuration: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n\n this.registerUIHttpClient(container);\n this.registerMetrics(container);\n\n await this.middleware.mountBefore(router, container);\n await this.controller.mount(router, container);\n await this.middleware.mountAfter(router, container);\n\n const server = serve(router, {\n port: config.port,\n hostname: config.host,\n silent: true,\n // Shutdown is driven by the orkos teardown chain (see cli/commands/start.ts);\n // srvx's plugin would only close the HTTP server, leaving DB / cache / etc. open.\n gracefulShutdown: false,\n });\n\n await server.ready();\n\n this.instance = server;\n\n if (server.url) {\n logger.debug(`Listening on ${server.url}`);\n }\n\n container.register(HTTPInjectionKey.Server, { useValue: server });\n\n logger.debug('Started http server.');\n }\n\n // ----------------------------------------------------\n\n /**\n * Default HTTP client for the SSR'd UI pages: dispatches against the\n * server's own listen address instead of round-tripping through the\n * reverse proxy at `publicUrl` (see `createInternalUIHttpClient`).\n * Skipped when the token is already bound (test injection wins).\n * Transient lifetime is mandatory — client-web-kit's authentication\n * hook writes per-user Authorization state onto the client.\n */\n protected registerUIHttpClient(container: IContainer): void {\n if (container.has(HTTPInjectionKey.UIHttpClient)) {\n return;\n }\n\n container.register(HTTPInjectionKey.UIHttpClient, {\n useFactory: (c) => {\n const config = c.resolve(ConfigInjectionKey);\n\n // The server token is registered after listen; a resolve can\n // only happen on a request, so it is present by then. The\n // guards keep an edge case on the previous (public URL)\n // dispatch behavior instead of failing the render.\n const server = c.has(HTTPInjectionKey.Server) ?\n c.resolve(HTTPInjectionKey.Server) :\n undefined;\n\n if (server && server.url) {\n return createInternalUIHttpClient({\n publicURL: config.publicUrl,\n internalURL: server.url,\n });\n }\n\n return new Client({ baseURL: config.publicUrl });\n },\n }, { lifetime: 'transient' });\n\n this.uiHttpClientRegistered = true;\n }\n\n /**\n * Auth-flow metric counters for the emit points (plan 058 Part 2).\n * Registered before the controllers are built — the factories resolve the\n * token. Prometheus-backed iff the prometheus middleware is enabled\n * (mirrors HTTPMiddlewareModule.isEnabled: boolean|object, false = off),\n * otherwise a noop so emit sites never need a guard beyond `?.`.\n */\n protected registerMetrics(container: IContainer): void {\n const config = container.resolve(ConfigInjectionKey);\n\n const enabled = typeof config.middlewarePrometheus !== 'boolean' ||\n config.middlewarePrometheus === true;\n\n container.register(MetricsInjectionKey, {\n useValue: enabled ?\n new PromAuthFlowMetrics() :\n new NoopAuthFlowMetrics(),\n });\n }\n\n // ----------------------------------------------------\n\n async teardown(container: IContainer): Promise<void> {\n if (this.uiHttpClientRegistered) {\n container.unregister(HTTPInjectionKey.UIHttpClient);\n this.uiHttpClientRegistered = false;\n }\n\n container.unregister(MetricsInjectionKey);\n\n if (!this.instance) return;\n\n container.unregister(HTTPInjectionKey.Server);\n\n await this.instance.close();\n this.instance = undefined;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["Client","AuthupError","App","serve","ConfigInjectionKey","bindConsolePackages","createInternalUIHttpClient","NoopAuthFlowMetrics","ModuleName","HTTPInjectionKey","MetricsInjectionKey","PromAuthFlowMetrics","HTTPControllerModule","HTTPMiddlewareModule","LoggerInjectionKey","HTTPModule","name","dependencies","instance","middleware","controller","uiHttpClientRegistered","HTTP","CONFIG","LOGGER","AUTHENTICATION","IDENTITY","OAUTH2","setup","container","config","resolve","logger","debug","router","options","trustProxy","e","Error","message","String","authConsolePath","accountConsolePath","registerUIHttpClient","registerMetrics","mountBefore","mount","mountAfter","server","port","hostname","host","silent","gracefulShutdown","ready","url","register","Server","useValue","has","UIHttpClient","useFactory","c","undefined","publicURL","publicUrl","internalURL","baseURL","lifetime","enabled","middlewarePrometheus","teardown","unregister","close"],"sources":["../../../../src/app/modules/http/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport { Client } from '@authup/core-http-kit';\nimport { AuthupError } from '@authup/errors';\nimport { App } from 'routup';\nimport { serve } from 'routup/node';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport type { IModule } from 'orkos';\nimport { bindConsolePackages, createInternalUIHttpClient } from '../../../adapters/http/ui/index.ts';\nimport { NoopAuthFlowMetrics } from '../../../core/index.ts';\nimport { ModuleName } from '../constants.ts';\nimport type { HTTPServer } from './constants.ts';\nimport { HTTPInjectionKey } from './constants.ts';\nimport type { IContainer } from 'eldin';\nimport { MetricsInjectionKey, PromAuthFlowMetrics } from '../metrics/index.ts';\nimport { HTTPControllerModule, HTTPMiddlewareModule } from './modules/index.ts';\nimport { LoggerInjectionKey } from '../logger/index.ts';\n\nexport class HTTPModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n protected instance : HTTPServer | undefined;\n\n protected middleware : HTTPMiddlewareModule;\n\n protected controller : HTTPControllerModule;\n\n protected uiHttpClientRegistered : boolean;\n\n constructor() {\n this.name = ModuleName.HTTP;\n this.dependencies = [ModuleName.CONFIG, ModuleName.LOGGER, ModuleName.AUTHENTICATION, ModuleName.IDENTITY, ModuleName.OAUTH2];\n this.controller = new HTTPControllerModule();\n this.middleware = new HTTPMiddlewareModule();\n this.uiHttpClientRegistered = false;\n }\n\n // ----------------------------------------------------\n\n async setup(container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\n\n logger.debug('Starting http server...');\n\n // Every request helper deriving proxy-dependent request facts\n // (getRequestIP, hostname, protocol) resolves the trust contract from\n // the app options — call sites must NOT pass their own `trustProxy`.\n let router : App;\n try {\n router = new App({ options: { trustProxy: config.trustProxy } });\n } catch (e) {\n // proxy-addr compiles the allowlist form inside the App\n // constructor; its error (\"invalid IP address: …\") does not name\n // the offending config key — attribute it.\n throw new AuthupError(\n `Invalid trustProxy (TRUST_PROXY) configuration: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n\n // Before any route is mounted: a substituted console package that\n // no longer fulfills its contract must stop the boot, not surface\n // as a confusing per-request failure on /authorize.\n await bindConsolePackages({\n authConsolePath: config.authConsolePath,\n accountConsolePath: config.accountConsolePath,\n });\n\n this.registerUIHttpClient(container);\n this.registerMetrics(container);\n\n await this.middleware.mountBefore(router, container);\n await this.controller.mount(router, container);\n await this.middleware.mountAfter(router, container);\n\n const server = serve(router, {\n port: config.port,\n hostname: config.host,\n silent: true,\n // Shutdown is driven by the orkos teardown chain (see cli/commands/start.ts);\n // srvx's plugin would only close the HTTP server, leaving DB / cache / etc. open.\n gracefulShutdown: false,\n });\n\n await server.ready();\n\n this.instance = server;\n\n if (server.url) {\n logger.debug(`Listening on ${server.url}`);\n }\n\n container.register(HTTPInjectionKey.Server, { useValue: server });\n\n logger.debug('Started http server.');\n }\n\n // ----------------------------------------------------\n\n /**\n * Default HTTP client for the SSR'd UI pages: dispatches against the\n * server's own listen address instead of round-tripping through the\n * reverse proxy at `publicUrl` (see `createInternalUIHttpClient`).\n * Skipped when the token is already bound (test injection wins).\n * Transient lifetime is mandatory — client-web-kit's authentication\n * hook writes per-user Authorization state onto the client.\n */\n protected registerUIHttpClient(container: IContainer): void {\n if (container.has(HTTPInjectionKey.UIHttpClient)) {\n return;\n }\n\n container.register(HTTPInjectionKey.UIHttpClient, {\n useFactory: (c) => {\n const config = c.resolve(ConfigInjectionKey);\n\n // The server token is registered after listen; a resolve can\n // only happen on a request, so it is present by then. The\n // guards keep an edge case on the previous (public URL)\n // dispatch behavior instead of failing the render.\n const server = c.has(HTTPInjectionKey.Server) ?\n c.resolve(HTTPInjectionKey.Server) :\n undefined;\n\n if (server && server.url) {\n return createInternalUIHttpClient({\n publicURL: config.publicUrl,\n internalURL: server.url,\n });\n }\n\n return new Client({ baseURL: config.publicUrl });\n },\n }, { lifetime: 'transient' });\n\n this.uiHttpClientRegistered = true;\n }\n\n /**\n * Auth-flow metric counters for the emit points (plan 058 Part 2).\n * Registered before the controllers are built — the factories resolve the\n * token. Prometheus-backed iff the prometheus middleware is enabled\n * (mirrors HTTPMiddlewareModule.isEnabled: boolean|object, false = off),\n * otherwise a noop so emit sites never need a guard beyond `?.`.\n */\n protected registerMetrics(container: IContainer): void {\n const config = container.resolve(ConfigInjectionKey);\n\n const enabled = typeof config.middlewarePrometheus !== 'boolean' ||\n config.middlewarePrometheus === true;\n\n container.register(MetricsInjectionKey, {\n useValue: enabled ?\n new PromAuthFlowMetrics() :\n new NoopAuthFlowMetrics(),\n });\n }\n\n // ----------------------------------------------------\n\n async teardown(container: IContainer): Promise<void> {\n if (this.uiHttpClientRegistered) {\n container.unregister(HTTPInjectionKey.UIHttpClient);\n this.uiHttpClientRegistered = false;\n }\n\n container.unregister(MetricsInjectionKey);\n\n await this.middleware.teardown();\n\n if (!this.instance) return;\n\n container.unregister(HTTPInjectionKey.Server);\n\n await this.instance.close();\n this.instance = undefined;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { App } from 'routup';
|
|
2
2
|
import { ClientController, ClientPermissionController, ClientRoleController, ClientScopeController, ConsentController, EventController, IdentityProviderController, IdentityProviderRoleMappingController, KeyController, PermissionController, PermissionPolicyController, PolicyController, RealmController, RoleAttributeController, RoleController, RolePermissionController, ScopeController, SessionController, TrustAnchorController, UserAttributeController, UserAuthenticatorController, UserController, UserPermissionController, UserRoleController } from '../../../../adapters/http/index.ts';
|
|
3
|
-
import { ActivateController, AuthenticatorChallengeController, AuthorizeController, JwkController, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, RegisterController, StatusController, TokenController, UserInfoController } from '../../../../adapters/http/controllers/index.ts';
|
|
3
|
+
import { AccountController, ActivateController, AuthenticatorChallengeController, AuthorizeController, JwkController, LogoutController, OpenIDController, PasswordForgotController, PasswordResetController, RegisterController, StatusController, TokenController, UserInfoController } from '../../../../adapters/http/controllers/index.ts';
|
|
4
4
|
import type { IContainer } from 'eldin';
|
|
5
5
|
import { ConsentService, OAuth2AccessPolicyEvaluator, OAuth2MfaLoginService, PasswordRecoveryService, RegistrationService, UserAuthenticatorService, UserService } from '../../../../core/index.ts';
|
|
6
6
|
import type { StatusResponseFeatures } from '@authup/core-http-kit';
|
|
@@ -17,6 +17,7 @@ export declare class HTTPControllerModule {
|
|
|
17
17
|
createRegisterController(container: IContainer): RegisterController;
|
|
18
18
|
createLogoutController(container: IContainer): LogoutController;
|
|
19
19
|
createStatusController(container: IContainer): StatusController;
|
|
20
|
+
createAccountController(container: IContainer): AccountController;
|
|
20
21
|
buildUIFeatures(config: Config): StatusResponseFeatures;
|
|
21
22
|
createRegistrationService(container: IContainer): RegistrationService;
|
|
22
23
|
createIdentityProvider(container: IContainer): IdentityProviderController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/http/modules/controller.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAmElC,OAAO,EACH,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,qCAAqC,EACrC,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,EACf,uBAAuB,EACvB,cAAc,EACd,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACH,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EACrB,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAMH,cAAc,EAMd,2BAA2B,EAG3B,qBAAqB,EACrB,uBAAuB,EAQvB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/http/modules/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import { LoginThrottleService } from "../../../../core/authentication/login-thro
|
|
|
29
29
|
import { CredentialsAuthenticator } from "../../../../core/authentication/module.mjs";
|
|
30
30
|
import { ClientCertificateValidator } from "../../../../core/client-certificate/module.mjs";
|
|
31
31
|
import { ClientService } from "../../../../core/entities/client/service.mjs";
|
|
32
|
-
import {
|
|
32
|
+
import { SystemClientProvisioner } from "../../../../core/entities/client/system-clients.mjs";
|
|
33
33
|
import { ClientPermissionService } from "../../../../core/entities/client-permission/service.mjs";
|
|
34
34
|
import { ClientRoleService } from "../../../../core/entities/client-role/service.mjs";
|
|
35
35
|
import { ClientScopeService } from "../../../../core/entities/client-scope/service.mjs";
|
|
@@ -107,6 +107,7 @@ import { IdentityProviderRoleMappingController } from "../../../../adapters/http
|
|
|
107
107
|
import { KeyController } from "../../../../adapters/http/controllers/entities/key/module.mjs";
|
|
108
108
|
import { PermissionController } from "../../../../adapters/http/controllers/entities/permission/module.mjs";
|
|
109
109
|
import { PermissionPolicyController } from "../../../../adapters/http/controllers/entities/permission-policy/module.mjs";
|
|
110
|
+
import { AccountController } from "../../../../adapters/http/controllers/workflows/account/module.mjs";
|
|
110
111
|
import { ActivateController } from "../../../../adapters/http/controllers/workflows/activate/module.mjs";
|
|
111
112
|
import { AuthenticatorChallengeController } from "../../../../adapters/http/controllers/workflows/authenticator-challenge/module.mjs";
|
|
112
113
|
import { AuthorizeController } from "../../../../adapters/http/controllers/workflows/authorize/module.mjs";
|
|
@@ -138,6 +139,7 @@ import { OAuth2InjectionToken } from "../../oauth2/constants.mjs";
|
|
|
138
139
|
import { IdentityInjectionKey } from "../../identity/constants.mjs";
|
|
139
140
|
import "../../identity/index.mjs";
|
|
140
141
|
import "../../oauth2/index.mjs";
|
|
142
|
+
import { LazyWildcardRealmProvisioner } from "../../provisioning/lazy-wildcard.mjs";
|
|
141
143
|
import { MailInjectionKey, MailTemplateRendererInjectionKey } from "../../mail/constants.mjs";
|
|
142
144
|
import "../../mail/index.mjs";
|
|
143
145
|
import { decorators } from "@routup/decorators";
|
|
@@ -179,6 +181,7 @@ var HTTPControllerModule = class {
|
|
|
179
181
|
this.createLogoutController(container),
|
|
180
182
|
this.createAuthenticatorChallengeController(container),
|
|
181
183
|
this.createUserInfoController(container),
|
|
184
|
+
this.createAccountController(container),
|
|
182
185
|
this.createStatusController(container),
|
|
183
186
|
clientController,
|
|
184
187
|
clientPermissionController,
|
|
@@ -253,6 +256,16 @@ var HTTPControllerModule = class {
|
|
|
253
256
|
identityResolver,
|
|
254
257
|
certificateValidator: new ClientCertificateValidator({ trustAnchorRepository: new TrustAnchorRepositoryAdapter(dataSource) })
|
|
255
258
|
});
|
|
259
|
+
const eventService = container.resolve(DatabaseInjectionKey.EventService);
|
|
260
|
+
const metrics = container.resolve(MetricsInjectionKey);
|
|
261
|
+
const loginThrottleService = new LoginThrottleService({
|
|
262
|
+
repository: container.resolve(DatabaseInjectionKey.EventRepository),
|
|
263
|
+
options: {
|
|
264
|
+
enabled: config.loginAttemptThrottleEnabled,
|
|
265
|
+
threshold: config.loginAttemptThreshold,
|
|
266
|
+
windowSeconds: config.loginAttemptWindow
|
|
267
|
+
}
|
|
268
|
+
});
|
|
256
269
|
return new TokenController({
|
|
257
270
|
codeVerifier,
|
|
258
271
|
accessTokenIssuer,
|
|
@@ -263,16 +276,9 @@ var HTTPControllerModule = class {
|
|
|
263
276
|
tokenRevoker,
|
|
264
277
|
tokenRepository,
|
|
265
278
|
sessionTokenRepository,
|
|
266
|
-
eventService
|
|
267
|
-
metrics
|
|
268
|
-
loginThrottleService
|
|
269
|
-
repository: container.resolve(DatabaseInjectionKey.EventRepository),
|
|
270
|
-
options: {
|
|
271
|
-
enabled: config.loginAttemptThrottleEnabled,
|
|
272
|
-
threshold: config.loginAttemptThreshold,
|
|
273
|
-
windowSeconds: config.loginAttemptWindow
|
|
274
|
-
}
|
|
275
|
-
}),
|
|
279
|
+
eventService,
|
|
280
|
+
metrics,
|
|
281
|
+
loginThrottleService,
|
|
276
282
|
userAuthenticatorService: this.resolveUserAuthenticatorService(container),
|
|
277
283
|
mfaLoginService: this.resolveMfaLoginService(container),
|
|
278
284
|
accessPolicyEvaluator: this.resolveAccessPolicyEvaluator(container),
|
|
@@ -288,7 +294,8 @@ var HTTPControllerModule = class {
|
|
|
288
294
|
});
|
|
289
295
|
}
|
|
290
296
|
createOpenIDController(container) {
|
|
291
|
-
|
|
297
|
+
const config = container.resolve(ConfigInjectionKey);
|
|
298
|
+
return new OpenIDController({ baseURL: config.publicUrl });
|
|
292
299
|
}
|
|
293
300
|
createActivateController(container) {
|
|
294
301
|
const config = container.resolve(ConfigInjectionKey);
|
|
@@ -328,9 +335,11 @@ var HTTPControllerModule = class {
|
|
|
328
335
|
repository: new UserRepository(dataSource),
|
|
329
336
|
realmRepository
|
|
330
337
|
});
|
|
338
|
+
const mailClient = container.resolve(MailInjectionKey);
|
|
339
|
+
const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);
|
|
331
340
|
return new PasswordRecoveryService({
|
|
332
|
-
mailClient
|
|
333
|
-
mailTemplateRenderer
|
|
341
|
+
mailClient,
|
|
342
|
+
mailTemplateRenderer,
|
|
334
343
|
repository,
|
|
335
344
|
realmRepository: new RealmRepositoryAdapter(realmRepository),
|
|
336
345
|
eventService: container.resolve(DatabaseInjectionKey.EventService),
|
|
@@ -354,11 +363,15 @@ var HTTPControllerModule = class {
|
|
|
354
363
|
}
|
|
355
364
|
createLogoutController(container) {
|
|
356
365
|
const config = container.resolve(ConfigInjectionKey);
|
|
366
|
+
const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);
|
|
367
|
+
const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
|
|
368
|
+
const clientRepository = container.resolve(OAuth2InjectionToken.ClientRepository);
|
|
369
|
+
const realmRepository = new RealmRepositoryAdapter(container.resolve(RealmEntity));
|
|
357
370
|
const endSessionService = new OAuth2EndSessionService({
|
|
358
|
-
tokenVerifier
|
|
359
|
-
sessionManager
|
|
360
|
-
clientRepository
|
|
361
|
-
realmRepository
|
|
371
|
+
tokenVerifier,
|
|
372
|
+
sessionManager,
|
|
373
|
+
clientRepository,
|
|
374
|
+
realmRepository,
|
|
362
375
|
eventService: container.resolve(DatabaseInjectionKey.EventService),
|
|
363
376
|
hintGracePeriod: config.endSessionHintGracePeriod
|
|
364
377
|
});
|
|
@@ -371,11 +384,20 @@ var HTTPControllerModule = class {
|
|
|
371
384
|
const config = container.resolve(ConfigInjectionKey);
|
|
372
385
|
return new StatusController({ options: { features: this.buildUIFeatures(config) } });
|
|
373
386
|
}
|
|
387
|
+
createAccountController(container) {
|
|
388
|
+
const config = container.resolve(ConfigInjectionKey);
|
|
389
|
+
return new AccountController({ options: {
|
|
390
|
+
baseURL: config.publicUrl,
|
|
391
|
+
features: this.buildUIFeatures(config),
|
|
392
|
+
trustedOrigins: getAppOrigins(config)
|
|
393
|
+
} });
|
|
394
|
+
}
|
|
374
395
|
buildUIFeatures(config) {
|
|
375
396
|
return {
|
|
376
397
|
registration: config.registrationEnabled,
|
|
377
398
|
passwordRecovery: config.passwordRecoveryEnabled,
|
|
378
|
-
emailVerification: config.emailVerificationEnabled
|
|
399
|
+
emailVerification: config.emailVerificationEnabled,
|
|
400
|
+
accountConsole: config.accountConsoleEnabled
|
|
379
401
|
};
|
|
380
402
|
}
|
|
381
403
|
createRegistrationService(container) {
|
|
@@ -386,9 +408,11 @@ var HTTPControllerModule = class {
|
|
|
386
408
|
repository: new UserRepository(dataSource),
|
|
387
409
|
realmRepository
|
|
388
410
|
});
|
|
411
|
+
const mailClient = container.resolve(MailInjectionKey);
|
|
412
|
+
const mailTemplateRenderer = container.resolve(MailTemplateRendererInjectionKey);
|
|
389
413
|
return new RegistrationService({
|
|
390
|
-
mailClient
|
|
391
|
-
mailTemplateRenderer
|
|
414
|
+
mailClient,
|
|
415
|
+
mailTemplateRenderer,
|
|
392
416
|
repository,
|
|
393
417
|
realmRepository: new RealmRepositoryAdapter(realmRepository),
|
|
394
418
|
eventService: container.resolve(DatabaseInjectionKey.EventService),
|
|
@@ -430,11 +454,13 @@ var HTTPControllerModule = class {
|
|
|
430
454
|
repository: container.resolve(ClientEntity),
|
|
431
455
|
realmRepository
|
|
432
456
|
});
|
|
457
|
+
const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);
|
|
458
|
+
const service = new ClientService({
|
|
459
|
+
repository,
|
|
460
|
+
realmRepository: realmRepositoryAdapter
|
|
461
|
+
});
|
|
433
462
|
return new ClientController({
|
|
434
|
-
service
|
|
435
|
-
repository,
|
|
436
|
-
realmRepository: new RealmRepositoryAdapter(realmRepository)
|
|
437
|
-
}),
|
|
463
|
+
service,
|
|
438
464
|
repository
|
|
439
465
|
});
|
|
440
466
|
}
|
|
@@ -458,103 +484,137 @@ var HTTPControllerModule = class {
|
|
|
458
484
|
realmRepository
|
|
459
485
|
});
|
|
460
486
|
const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);
|
|
487
|
+
const roleRepository = new RoleRepositoryAdapter({
|
|
488
|
+
repository: container.resolve(RoleEntity),
|
|
489
|
+
realmRepository
|
|
490
|
+
});
|
|
491
|
+
const rolePermissionRepository = new RolePermissionRepositoryAdapter(container.resolve(RolePermissionEntity));
|
|
492
|
+
const policyRepository = new PolicyRepositoryAdapter({
|
|
493
|
+
repository: new PolicyRepository(dataSource),
|
|
494
|
+
realmRepository
|
|
495
|
+
});
|
|
496
|
+
const permissionPolicyRepository = new PermissionPolicyRepositoryAdapter(container.resolve(PermissionPolicyEntity));
|
|
461
497
|
const service = new PermissionService({
|
|
462
498
|
repository,
|
|
463
499
|
realmRepository: realmRepositoryAdapter,
|
|
464
|
-
roleRepository
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
rolePermissionRepository: new RolePermissionRepositoryAdapter(container.resolve(RolePermissionEntity)),
|
|
469
|
-
policyRepository: new PolicyRepositoryAdapter({
|
|
470
|
-
repository: new PolicyRepository(dataSource),
|
|
471
|
-
realmRepository
|
|
472
|
-
}),
|
|
473
|
-
permissionPolicyRepository: new PermissionPolicyRepositoryAdapter(container.resolve(PermissionPolicyEntity))
|
|
500
|
+
roleRepository,
|
|
501
|
+
rolePermissionRepository,
|
|
502
|
+
policyRepository,
|
|
503
|
+
permissionPolicyRepository
|
|
474
504
|
});
|
|
475
505
|
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
506
|
+
const permissionProvider = new PermissionDatabaseProvider(dataSource);
|
|
507
|
+
const checkerService = new PermissionCheckerService({
|
|
508
|
+
repository,
|
|
509
|
+
realmRepository: realmRepositoryAdapter,
|
|
510
|
+
permissionProvider,
|
|
511
|
+
identityPermissionProvider
|
|
512
|
+
});
|
|
476
513
|
return new PermissionController({
|
|
477
514
|
service,
|
|
478
|
-
checkerService
|
|
479
|
-
repository,
|
|
480
|
-
realmRepository: realmRepositoryAdapter,
|
|
481
|
-
permissionProvider: new PermissionDatabaseProvider(dataSource),
|
|
482
|
-
identityPermissionProvider
|
|
483
|
-
})
|
|
515
|
+
checkerService
|
|
484
516
|
});
|
|
485
517
|
}
|
|
486
518
|
createRoleController(container) {
|
|
487
519
|
const realmRepository = new RealmRepositoryAdapter(container.resolve(RealmEntity));
|
|
488
|
-
|
|
489
|
-
repository:
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
520
|
+
const repository = new RoleRepositoryAdapter({
|
|
521
|
+
repository: container.resolve(RoleEntity),
|
|
522
|
+
realmRepository: container.resolve(RealmEntity)
|
|
523
|
+
});
|
|
524
|
+
const service = new RoleService({
|
|
525
|
+
repository,
|
|
493
526
|
realmRepository
|
|
494
|
-
})
|
|
527
|
+
});
|
|
528
|
+
return new RoleController({ service });
|
|
495
529
|
}
|
|
496
530
|
createClientPermissionController(container) {
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
531
|
+
const repository = new ClientPermissionRepositoryAdapter(container.resolve(ClientPermissionEntity));
|
|
532
|
+
const permissionRepository = this.createPermissionRepository(container);
|
|
533
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
534
|
+
const service = new ClientPermissionService({
|
|
535
|
+
repository,
|
|
536
|
+
permissionRepository,
|
|
537
|
+
identityPermissionProvider
|
|
538
|
+
});
|
|
539
|
+
return new ClientPermissionController({ service });
|
|
502
540
|
}
|
|
503
541
|
createClientRoleController(container) {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
542
|
+
const repository = new ClientRoleRepositoryAdapter(container.resolve(ClientRoleEntity));
|
|
543
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
544
|
+
const service = new ClientRoleService({
|
|
545
|
+
repository,
|
|
546
|
+
identityPermissionProvider
|
|
547
|
+
});
|
|
548
|
+
return new ClientRoleController({ service });
|
|
508
549
|
}
|
|
509
550
|
createClientScopeController(container) {
|
|
510
|
-
|
|
551
|
+
const repository = new ClientScopeRepositoryAdapter(container.resolve(ClientScopeEntity));
|
|
552
|
+
const service = new ClientScopeService({ repository });
|
|
553
|
+
return new ClientScopeController({ service });
|
|
511
554
|
}
|
|
512
555
|
createRoleAttributeController(container) {
|
|
513
556
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
557
|
+
const repository = new RoleAttributeRepositoryAdapter(container.resolve(RoleAttributeEntity));
|
|
558
|
+
const reservedNames = new Set(dataSource.getMetadata(RoleEntity).columns.map((c) => c.propertyName));
|
|
559
|
+
const service = new RoleAttributeService({
|
|
560
|
+
repository,
|
|
561
|
+
reservedNames
|
|
562
|
+
});
|
|
563
|
+
return new RoleAttributeController({ service });
|
|
518
564
|
}
|
|
519
565
|
createRolePermissionController(container) {
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
566
|
+
const repository = new RolePermissionRepositoryAdapter(container.resolve(RolePermissionEntity));
|
|
567
|
+
const permissionRepository = this.createPermissionRepository(container);
|
|
568
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
569
|
+
const service = new RolePermissionService({
|
|
570
|
+
repository,
|
|
571
|
+
permissionRepository,
|
|
572
|
+
identityPermissionProvider
|
|
573
|
+
});
|
|
574
|
+
return new RolePermissionController({ service });
|
|
525
575
|
}
|
|
526
576
|
createPermissionPolicyController(container) {
|
|
527
|
-
|
|
577
|
+
const repository = new PermissionPolicyRepositoryAdapter(container.resolve(PermissionPolicyEntity));
|
|
578
|
+
const service = new PermissionPolicyService({ repository });
|
|
579
|
+
return new PermissionPolicyController({ service });
|
|
528
580
|
}
|
|
529
581
|
createScopeController(container) {
|
|
530
582
|
const realmRepository = new RealmRepositoryAdapter(container.resolve(RealmEntity));
|
|
531
|
-
|
|
532
|
-
repository:
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
583
|
+
const repository = new ScopeRepositoryAdapter({
|
|
584
|
+
repository: container.resolve(ScopeEntity),
|
|
585
|
+
realmRepository: container.resolve(RealmEntity)
|
|
586
|
+
});
|
|
587
|
+
const service = new ScopeService({
|
|
588
|
+
repository,
|
|
536
589
|
realmRepository
|
|
537
|
-
})
|
|
590
|
+
});
|
|
591
|
+
return new ScopeController({ service });
|
|
538
592
|
}
|
|
539
593
|
createKeyController(container) {
|
|
540
|
-
|
|
594
|
+
const service = new KeyService({
|
|
541
595
|
repository: container.resolve(OAuth2InjectionToken.KeyStore),
|
|
542
596
|
eventService: container.resolve(DatabaseInjectionKey.EventService),
|
|
543
597
|
requestContext: useRequestEventContext
|
|
544
|
-
})
|
|
598
|
+
});
|
|
599
|
+
return new KeyController({ service });
|
|
545
600
|
}
|
|
546
601
|
createTrustAnchorController(container) {
|
|
547
|
-
|
|
548
|
-
|
|
602
|
+
const repository = new TrustAnchorRepositoryAdapter(container.resolve(DatabaseInjectionKey.DataSource));
|
|
603
|
+
const service = new TrustAnchorService({
|
|
604
|
+
repository,
|
|
549
605
|
eventService: container.resolve(DatabaseInjectionKey.EventService),
|
|
550
606
|
requestContext: useRequestEventContext
|
|
551
|
-
})
|
|
607
|
+
});
|
|
608
|
+
return new TrustAnchorController({ service });
|
|
552
609
|
}
|
|
553
610
|
createSessionController(container) {
|
|
554
|
-
|
|
611
|
+
const repository = container.resolve(AuthenticationInjectionKey.SessionRepository);
|
|
612
|
+
const service = new SessionService({ repository });
|
|
613
|
+
return new SessionController({ service });
|
|
555
614
|
}
|
|
556
615
|
createConsentService(container) {
|
|
557
|
-
|
|
616
|
+
const repository = container.resolve(OAuth2InjectionToken.ConsentRepository);
|
|
617
|
+
return new ConsentService({ repository });
|
|
558
618
|
}
|
|
559
619
|
createConsentController(container) {
|
|
560
620
|
return new ConsentController({ service: this.createConsentService(container) });
|
|
@@ -636,18 +696,21 @@ var HTTPControllerModule = class {
|
|
|
636
696
|
});
|
|
637
697
|
}
|
|
638
698
|
createEventController(container) {
|
|
639
|
-
|
|
699
|
+
const service = container.resolve(DatabaseInjectionKey.EventService);
|
|
700
|
+
return new EventController({ service });
|
|
640
701
|
}
|
|
641
702
|
createUserService(container) {
|
|
642
703
|
const config = container.resolve(ConfigInjectionKey);
|
|
643
704
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
644
705
|
const realmRepository = container.resolve(RealmEntity);
|
|
706
|
+
const repository = new UserRepositoryAdapter({
|
|
707
|
+
repository: new UserRepository(dataSource),
|
|
708
|
+
realmRepository
|
|
709
|
+
});
|
|
710
|
+
const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);
|
|
645
711
|
return new UserService({
|
|
646
|
-
repository
|
|
647
|
-
|
|
648
|
-
realmRepository
|
|
649
|
-
}),
|
|
650
|
-
realmRepository: new RealmRepositoryAdapter(realmRepository),
|
|
712
|
+
repository,
|
|
713
|
+
realmRepository: realmRepositoryAdapter,
|
|
651
714
|
passwordMinLength: config.passwordMinLength
|
|
652
715
|
});
|
|
653
716
|
}
|
|
@@ -659,23 +722,33 @@ var HTTPControllerModule = class {
|
|
|
659
722
|
}
|
|
660
723
|
createUserAttributeController(container) {
|
|
661
724
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
725
|
+
const repository = new UserAttributeRepositoryAdapter(container.resolve(UserAttributeEntity));
|
|
726
|
+
const reservedNames = new Set(dataSource.getMetadata(UserEntity).columns.map((c) => c.propertyName));
|
|
727
|
+
const service = new UserAttributeService({
|
|
728
|
+
repository,
|
|
729
|
+
reservedNames
|
|
730
|
+
});
|
|
731
|
+
return new UserAttributeController({ service });
|
|
666
732
|
}
|
|
667
733
|
createUserPermissionController(container) {
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
734
|
+
const repository = new UserPermissionRepositoryAdapter(container.resolve(UserPermissionEntity));
|
|
735
|
+
const permissionRepository = this.createPermissionRepository(container);
|
|
736
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
737
|
+
const service = new UserPermissionService({
|
|
738
|
+
repository,
|
|
739
|
+
permissionRepository,
|
|
740
|
+
identityPermissionProvider
|
|
741
|
+
});
|
|
742
|
+
return new UserPermissionController({ service });
|
|
673
743
|
}
|
|
674
744
|
createUserRoleController(container) {
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
745
|
+
const repository = new UserRoleRepositoryAdapter(container.resolve(UserRoleEntity));
|
|
746
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
747
|
+
const service = new UserRoleService({
|
|
748
|
+
repository,
|
|
749
|
+
identityPermissionProvider
|
|
750
|
+
});
|
|
751
|
+
return new UserRoleController({ service });
|
|
679
752
|
}
|
|
680
753
|
createPolicyController(container) {
|
|
681
754
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
@@ -685,27 +758,35 @@ var HTTPControllerModule = class {
|
|
|
685
758
|
realmRepository
|
|
686
759
|
});
|
|
687
760
|
const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);
|
|
761
|
+
const service = new PolicyService({
|
|
762
|
+
repository,
|
|
763
|
+
realmRepository: realmRepositoryAdapter
|
|
764
|
+
});
|
|
765
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
766
|
+
const checkerService = new PolicyCheckerService({
|
|
767
|
+
repository,
|
|
768
|
+
realmRepository: realmRepositoryAdapter,
|
|
769
|
+
identityPermissionProvider
|
|
770
|
+
});
|
|
688
771
|
return new PolicyController({
|
|
689
|
-
service
|
|
690
|
-
|
|
691
|
-
realmRepository: realmRepositoryAdapter
|
|
692
|
-
}),
|
|
693
|
-
checkerService: new PolicyCheckerService({
|
|
694
|
-
repository,
|
|
695
|
-
realmRepository: realmRepositoryAdapter,
|
|
696
|
-
identityPermissionProvider: container.resolve(IdentityInjectionKey.PermissionProvider)
|
|
697
|
-
})
|
|
772
|
+
service,
|
|
773
|
+
checkerService
|
|
698
774
|
});
|
|
699
775
|
}
|
|
700
776
|
createIdentityProviderRoleController(container) {
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
777
|
+
const repository = new IdentityProviderRoleMappingRepositoryAdapter(container.resolve(IdentityProviderRoleMappingEntity));
|
|
778
|
+
const roleRepository = this.createRoleRepository(container);
|
|
779
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
780
|
+
const service = new IdentityProviderRoleMappingService({
|
|
781
|
+
repository,
|
|
782
|
+
roleRepository,
|
|
783
|
+
identityPermissionProvider
|
|
784
|
+
});
|
|
785
|
+
return new IdentityProviderRoleMappingController({ service });
|
|
706
786
|
}
|
|
707
787
|
createJwkController(container) {
|
|
708
|
-
|
|
788
|
+
const repository = container.resolve(DatabaseInjectionKey.DataSource).getRepository(KeyEntity);
|
|
789
|
+
return new JwkController({ repository });
|
|
709
790
|
}
|
|
710
791
|
createRealmController(container) {
|
|
711
792
|
const config = container.resolve(ConfigInjectionKey);
|
|
@@ -717,22 +798,27 @@ var HTTPControllerModule = class {
|
|
|
717
798
|
realmRepository
|
|
718
799
|
});
|
|
719
800
|
const logger = container.resolve(LoggerInjectionKey);
|
|
801
|
+
const systemClientProvisioner = new SystemClientProvisioner({
|
|
802
|
+
clientRepository,
|
|
803
|
+
scopeRepository: new ScopeRepositoryAdapter({
|
|
804
|
+
repository: container.resolve(ScopeEntity),
|
|
805
|
+
realmRepository
|
|
806
|
+
}),
|
|
807
|
+
clientScopeRepository: new ClientScopeRepositoryAdapter(container.resolve(ClientScopeEntity)),
|
|
808
|
+
appOrigins: getAppOrigins(config),
|
|
809
|
+
logger
|
|
810
|
+
});
|
|
811
|
+
const keyProvisioner = new KeyProvisioner({
|
|
812
|
+
keyStore: container.resolve(OAuth2InjectionToken.KeyStore),
|
|
813
|
+
logger
|
|
814
|
+
});
|
|
720
815
|
const service = new RealmService({
|
|
721
816
|
repository,
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
}),
|
|
728
|
-
clientScopeRepository: new ClientScopeRepositoryAdapter(container.resolve(ClientScopeEntity)),
|
|
729
|
-
appOrigins: getAppOrigins(config),
|
|
730
|
-
logger
|
|
731
|
-
}),
|
|
732
|
-
keyProvisioner: new KeyProvisioner({
|
|
733
|
-
keyStore: container.resolve(OAuth2InjectionToken.KeyStore),
|
|
734
|
-
logger
|
|
735
|
-
}),
|
|
817
|
+
realmProvisioners: [
|
|
818
|
+
systemClientProvisioner,
|
|
819
|
+
keyProvisioner,
|
|
820
|
+
new LazyWildcardRealmProvisioner(container)
|
|
821
|
+
],
|
|
736
822
|
logger
|
|
737
823
|
});
|
|
738
824
|
const keyRepository = dataSource.getRepository(KeyEntity);
|