@authup/server-core 1.0.0-beta.51 → 1.0.0-beta.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +2 -0
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +1 -0
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +5 -0
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/index.d.ts +1 -0
- package/dist/adapters/database/domains/index.d.ts.map +1 -1
- package/dist/adapters/database/domains/index.mjs +3 -1
- package/dist/adapters/database/domains/session/entity.mjs +1 -1
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/session-token/entity.d.ts +17 -0
- package/dist/adapters/database/domains/session-token/entity.d.ts.map +1 -0
- package/dist/adapters/database/domains/session-token/entity.mjs +95 -0
- package/dist/adapters/database/domains/session-token/entity.mjs.map +1 -0
- package/dist/adapters/database/domains/session-token/index.d.ts +2 -0
- package/dist/adapters/database/domains/session-token/index.d.ts.map +1 -0
- package/dist/adapters/database/domains/session-token/index.mjs +5 -0
- package/dist/adapters/database/index.mjs +2 -1
- package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts +28 -0
- package/dist/adapters/database/migrations/mysql/1783325495597-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs +85 -0
- package/dist/adapters/database/migrations/mysql/1783325495597-Default.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts +28 -0
- package/dist/adapters/database/migrations/postgres/1783325495597-Default.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs +79 -0
- package/dist/adapters/database/migrations/postgres/1783325495597-Default.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +4 -3
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs +10 -4
- package/dist/adapters/http/adapters/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs +3 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/client-credentials.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs +5 -3
- package/dist/adapters/http/adapters/oauth2/grant-types/password.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs +12 -5
- package/dist/adapters/http/adapters/oauth2/grant-types/refresh_token.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts +2 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/credentials.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/guess.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.d.ts.map +1 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/index.mjs +2 -1
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts +9 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.d.ts.map +1 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs +21 -0
- package/dist/adapters/http/adapters/oauth2/grant-types/utils/realm.mjs.map +1 -0
- package/dist/adapters/http/adapters/oauth2/index.mjs +2 -1
- package/dist/adapters/http/controllers/entities/client/module.mjs +2 -2
- package/dist/adapters/http/controllers/entities/client-permission/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/client-role/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/client-scope/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/identity-provide-role/module.mjs +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 +4 -3
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/index.d.ts +1 -0
- package/dist/adapters/http/controllers/entities/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/index.mjs +3 -1
- package/dist/adapters/http/controllers/entities/permission/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/permission-policy/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/policy/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +11 -8
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/robot/module.mjs +2 -2
- package/dist/adapters/http/controllers/entities/robot-permission/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/robot-role/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/role/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/role-attribute/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/role-permission/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/scope/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/session/index.d.ts +2 -0
- package/dist/adapters/http/controllers/entities/session/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/session/index.mjs +5 -0
- package/dist/adapters/http/controllers/entities/session/module.d.ts +16 -0
- package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/entities/session/module.mjs +102 -0
- package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/user/module.mjs +2 -2
- package/dist/adapters/http/controllers/entities/user-attribute/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/user-permission/module.mjs +1 -1
- package/dist/adapters/http/controllers/entities/user-role/module.mjs +1 -1
- package/dist/adapters/http/controllers/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +22 -9
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +7 -4
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/logout/index.d.ts +3 -0
- package/dist/adapters/http/controllers/workflows/logout/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/logout/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts +14 -0
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +101 -0
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts +9 -0
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/logout/types.mjs +4 -0
- package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +10 -3
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/types.d.ts +8 -1
- package/dist/adapters/http/controllers/workflows/token/types.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +16 -12
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +2 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/logger.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/logger.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs +23 -2
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs +3 -8
- package/dist/adapters/http/middleware/built-in/realm-resolver/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +2 -2
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +2 -2
- package/dist/adapters/http/request/helpers/index.d.ts +1 -0
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -1
- package/dist/adapters/http/request/helpers/session-id.d.ts +9 -0
- package/dist/adapters/http/request/helpers/session-id.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/session-id.mjs +19 -0
- package/dist/adapters/http/request/helpers/session-id.mjs.map +1 -0
- package/dist/adapters/http/request/index.mjs +2 -1
- package/dist/adapters/http/request/permission/module.d.ts.map +1 -1
- package/dist/adapters/http/request/permission/module.mjs +4 -2
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/adapters/http/ui/index.d.ts +1 -0
- package/dist/adapters/http/ui/index.d.ts.map +1 -1
- package/dist/adapters/http/ui/index.mjs +2 -1
- package/dist/adapters/http/ui/internal-http-client.d.ts +22 -0
- package/dist/adapters/http/ui/internal-http-client.d.ts.map +1 -0
- package/dist/adapters/http/ui/internal-http-client.mjs +52 -0
- package/dist/adapters/http/ui/internal-http-client.mjs.map +1 -0
- package/dist/adapters/http/ui/render.d.ts.map +1 -1
- package/dist/adapters/http/ui/render.mjs +5 -2
- package/dist/adapters/http/ui/render.mjs.map +1 -1
- package/dist/adapters/http/ui/types.d.ts +12 -0
- package/dist/adapters/http/ui/types.d.ts.map +1 -1
- package/dist/app/modules/authentication/repositories/session.d.ts +5 -2
- package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs +63 -0
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/config/constants.d.ts +4 -0
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +4 -0
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/normalize.d.ts.map +1 -1
- package/dist/app/modules/config/normalize.mjs +6 -1
- package/dist/app/modules/config/normalize.mjs.map +1 -1
- package/dist/app/modules/config/read/env.d.ts.map +1 -1
- package/dist/app/modules/config/read/env.mjs +8 -0
- package/dist/app/modules/config/read/env.mjs.map +1 -1
- package/dist/app/modules/config/types.d.ts +31 -2
- 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.d.ts +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +19 -6
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +10 -6
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.d.ts +11 -0
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +12 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs +8 -8
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs +4 -3
- package/dist/app/modules/database/repositories/permission/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs +4 -3
- package/dist/app/modules/database/repositories/policy/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.d.ts +1 -0
- package/dist/app/modules/database/repositories/realm/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/realm/repository.mjs +14 -1
- package/dist/app/modules/database/repositories/realm/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/robot/repository.mjs +8 -6
- package/dist/app/modules/database/repositories/robot/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs +4 -3
- package/dist/app/modules/database/repositories/role/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs +2 -1
- package/dist/app/modules/database/repositories/role-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs +4 -3
- package/dist/app/modules/database/repositories/scope/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs +8 -5
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs +2 -1
- package/dist/app/modules/database/repositories/user-attribute/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +4 -2
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs +4 -2
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts +10 -0
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +30 -0
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +4 -2
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +57 -15
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +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 +10 -4
- package/dist/app/modules/oauth2/module.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/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/session-token/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/session-token/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +17 -0
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +63 -0
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -0
- package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs +1 -0
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/file/module.mjs.map +1 -1
- package/dist/cli/commands/migration.d.ts.map +1 -1
- package/dist/cli/commands/migration.mjs +12 -4
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +3 -0
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/index.mjs +2 -1
- package/dist/core/authentication/session/index.mjs +2 -1
- package/dist/core/authentication/session/module.d.ts +1 -0
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +3 -0
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +34 -0
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs +18 -1
- package/dist/core/authentication/session/types.mjs.map +1 -0
- package/dist/core/entities/client/web-client.d.ts +5 -3
- package/dist/core/entities/client/web-client.d.ts.map +1 -1
- package/dist/core/entities/client/web-client.mjs +8 -4
- package/dist/core/entities/client/web-client.mjs.map +1 -1
- package/dist/core/entities/index.d.ts +1 -0
- package/dist/core/entities/index.d.ts.map +1 -1
- package/dist/core/entities/index.mjs +3 -1
- package/dist/core/entities/realm/types.d.ts +9 -0
- package/dist/core/entities/realm/types.d.ts.map +1 -1
- package/dist/core/entities/session/index.d.ts +3 -0
- package/dist/core/entities/session/index.d.ts.map +1 -0
- package/dist/core/entities/session/index.mjs +5 -0
- package/dist/core/entities/session/service.d.ts +27 -0
- package/dist/core/entities/session/service.d.ts.map +1 -0
- package/dist/core/entities/session/service.mjs +151 -0
- package/dist/core/entities/session/service.mjs.map +1 -0
- package/dist/core/entities/session/types.d.ts +48 -0
- package/dist/core/entities/session/types.d.ts.map +1 -0
- package/dist/core/entities/session/types.mjs +4 -0
- package/dist/core/entities/user/service.d.ts +1 -0
- 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/identity/password-recovery/service.d.ts.map +1 -1
- package/dist/core/identity/password-recovery/service.mjs +2 -1
- package/dist/core/identity/password-recovery/service.mjs.map +1 -1
- package/dist/core/identity/password-recovery/types.d.ts +1 -0
- package/dist/core/identity/password-recovery/types.d.ts.map +1 -1
- package/dist/core/identity/permission/checker/service.d.ts.map +1 -1
- package/dist/core/identity/permission/checker/service.mjs +6 -5
- package/dist/core/identity/permission/checker/service.mjs.map +1 -1
- package/dist/core/identity/policy/checker/service.d.ts.map +1 -1
- package/dist/core/identity/policy/checker/service.mjs +6 -5
- package/dist/core/identity/policy/checker/service.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/facebook.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/presets/facebook.mjs +2 -1
- package/dist/core/identity/provider/authentication/presets/facebook.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/github.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/presets/github.mjs +2 -1
- package/dist/core/identity/provider/authentication/presets/github.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/google.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/presets/google.mjs +2 -1
- package/dist/core/identity/provider/authentication/presets/google.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/instagram.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/presets/instagram.mjs +2 -1
- package/dist/core/identity/provider/authentication/presets/instagram.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/presets/paypal.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/presets/paypal.mjs +2 -1
- package/dist/core/identity/provider/authentication/presets/paypal.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs +7 -2
- package/dist/core/identity/provider/authentication/protocols/oauth2/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts +2 -0
- package/dist/core/identity/provider/authentication/protocols/open-id/module.d.ts.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs +5 -0
- package/dist/core/identity/provider/authentication/protocols/open-id/module.mjs.map +1 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +9 -6
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/identity/registration/types.d.ts +1 -0
- package/dist/core/identity/registration/types.d.ts.map +1 -1
- package/dist/core/identity/resolver/module.d.ts +7 -0
- package/dist/core/identity/resolver/module.d.ts.map +1 -1
- package/dist/core/identity/resolver/module.mjs +7 -1
- package/dist/core/identity/resolver/module.mjs.map +1 -1
- package/dist/core/index.mjs +10 -2
- package/dist/core/oauth2/authorization/code/index.mjs +1 -0
- package/dist/core/oauth2/authorization/code/issuer/module.d.ts +0 -1
- package/dist/core/oauth2/authorization/code/issuer/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/module.mjs +7 -7
- package/dist/core/oauth2/authorization/code/issuer/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts +11 -2
- package/dist/core/oauth2/authorization/code/issuer/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/module.mjs +1 -0
- package/dist/core/oauth2/authorization/code/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code/verifier/types.d.ts +1 -0
- package/dist/core/oauth2/authorization/code/verifier/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/validator.mjs +19 -5
- package/dist/core/oauth2/authorization/code-request/validator.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs +13 -10
- package/dist/core/oauth2/authorization/code-request/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts +7 -0
- package/dist/core/oauth2/authorization/code-request/verifier/types.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.d.ts +2 -1
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +19 -2
- package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
- package/dist/core/oauth2/authorization/module.d.ts +6 -7
- package/dist/core/oauth2/authorization/module.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/module.mjs +24 -38
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/authorization/types.d.ts +15 -7
- package/dist/core/oauth2/authorization/types.d.ts.map +1 -1
- package/dist/core/oauth2/client/grant-type.d.ts +9 -0
- package/dist/core/oauth2/client/grant-type.d.ts.map +1 -0
- package/dist/core/oauth2/client/grant-type.mjs +18 -0
- package/dist/core/oauth2/client/grant-type.mjs.map +1 -0
- package/dist/core/oauth2/client/index.d.ts +1 -0
- package/dist/core/oauth2/client/index.d.ts.map +1 -1
- package/dist/core/oauth2/client/index.mjs +2 -1
- package/dist/core/oauth2/end-session/index.d.ts +4 -0
- package/dist/core/oauth2/end-session/index.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/index.mjs +6 -0
- package/dist/core/oauth2/end-session/service.d.ts +30 -0
- package/dist/core/oauth2/end-session/service.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/service.mjs +117 -0
- package/dist/core/oauth2/end-session/service.mjs.map +1 -0
- package/dist/core/oauth2/end-session/types.d.ts +55 -0
- package/dist/core/oauth2/end-session/types.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/types.mjs +4 -0
- package/dist/core/oauth2/end-session/validator.d.ts +6 -0
- package/dist/core/oauth2/end-session/validator.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/validator.mjs +23 -0
- package/dist/core/oauth2/end-session/validator.mjs.map +1 -0
- package/dist/core/oauth2/grant-types/authorize.d.ts +19 -2
- package/dist/core/oauth2/grant-types/authorize.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/authorize.mjs +53 -10
- package/dist/core/oauth2/grant-types/authorize.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.d.ts +21 -2
- package/dist/core/oauth2/grant-types/refresh-token.d.ts.map +1 -1
- package/dist/core/oauth2/grant-types/refresh-token.mjs +55 -9
- package/dist/core/oauth2/grant-types/refresh-token.mjs.map +1 -1
- package/dist/core/oauth2/grant-types/types.d.ts +22 -2
- package/dist/core/oauth2/grant-types/types.d.ts.map +1 -1
- package/dist/core/oauth2/index.d.ts +2 -0
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +7 -3
- package/dist/core/oauth2/session-token/index.d.ts +2 -0
- package/dist/core/oauth2/session-token/index.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/index.mjs +4 -0
- package/dist/core/oauth2/session-token/types.d.ts +70 -0
- package/dist/core/oauth2/session-token/types.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/types.mjs +4 -0
- package/dist/core/oauth2/token/issuer/access/module.d.ts +3 -1
- package/dist/core/oauth2/token/issuer/access/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/access/module.mjs +12 -1
- package/dist/core/oauth2/token/issuer/access/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/open-id/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/open-id/module.mjs +1 -1
- package/dist/core/oauth2/token/issuer/open-id/module.mjs.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.d.ts +3 -1
- package/dist/core/oauth2/token/issuer/refresh/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/issuer/refresh/module.mjs +12 -1
- package/dist/core/oauth2/token/issuer/refresh/module.mjs.map +1 -1
- package/dist/core/oauth2/token/revoker/module.d.ts +3 -1
- package/dist/core/oauth2/token/revoker/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/revoker/module.mjs +4 -1
- package/dist/core/oauth2/token/revoker/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/module.d.ts.map +1 -1
- package/dist/core/oauth2/token/verifier/module.mjs +4 -4
- package/dist/core/oauth2/token/verifier/module.mjs.map +1 -1
- package/dist/core/oauth2/token/verifier/types.d.ts +6 -0
- package/dist/core/oauth2/token/verifier/types.d.ts.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/client/relations-validator.mjs +3 -2
- package/dist/core/provisioning/entities/client/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/index.d.ts +1 -0
- package/dist/core/provisioning/entities/index.d.ts.map +1 -1
- package/dist/core/provisioning/entities/index.mjs +5 -1
- package/dist/core/provisioning/entities/permission/index.d.ts +1 -0
- package/dist/core/provisioning/entities/permission/index.d.ts.map +1 -1
- package/dist/core/provisioning/entities/permission/index.mjs +2 -1
- package/dist/core/provisioning/entities/permission/relations-validator.d.ts +6 -0
- package/dist/core/provisioning/entities/permission/relations-validator.d.ts.map +1 -0
- package/dist/core/provisioning/entities/permission/relations-validator.mjs +17 -0
- package/dist/core/provisioning/entities/permission/relations-validator.mjs.map +1 -0
- package/dist/core/provisioning/entities/permission/validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/permission/validator.mjs +3 -0
- package/dist/core/provisioning/entities/permission/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/policy/index.d.ts +1 -0
- package/dist/core/provisioning/entities/policy/index.d.ts.map +1 -1
- package/dist/core/provisioning/entities/policy/index.mjs +2 -1
- package/dist/core/provisioning/entities/policy/validator.d.ts +6 -0
- package/dist/core/provisioning/entities/policy/validator.d.ts.map +1 -0
- package/dist/core/provisioning/entities/policy/validator.mjs +26 -0
- package/dist/core/provisioning/entities/policy/validator.mjs.map +1 -0
- package/dist/core/provisioning/entities/realm/relations-validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/realm/relations-validator.mjs +9 -52
- package/dist/core/provisioning/entities/realm/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/role/relations-validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/role/relations-validator.mjs +4 -0
- package/dist/core/provisioning/entities/role/relations-validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/root/validator.d.ts.map +1 -1
- package/dist/core/provisioning/entities/root/validator.mjs +11 -26
- package/dist/core/provisioning/entities/root/validator.mjs.map +1 -1
- package/dist/core/provisioning/entities/utils.d.ts +10 -0
- package/dist/core/provisioning/entities/utils.d.ts.map +1 -0
- package/dist/core/provisioning/entities/utils.mjs +29 -0
- package/dist/core/provisioning/entities/utils.mjs.map +1 -0
- package/dist/core/provisioning/index.mjs +4 -1
- package/dist/core/provisioning/synchronizer/base.d.ts.map +1 -1
- package/dist/core/provisioning/synchronizer/base.mjs.map +1 -1
- package/dist/index.mjs +16 -11
- package/dist/swagger.json +531 -23
- package/dist/ui/client/.vite/ssr-manifest.json +1140 -114
- package/dist/ui/client/assets/{index-Cd3uWit-.js → index-CP9HCHoS.js} +15 -15
- package/dist/ui/client/assets/index-VM4JXBXw.css +2 -0
- package/dist/ui/client/index.html +2 -2
- package/dist/ui/server/assets/{multipart-parser-Dn2Ly9xU.js → multipart-parser-BCMy8Xwv.js} +11 -1
- package/dist/ui/server/assets/{multipart-parser-DyM9gi59.js → multipart-parser-BVY8pIV2.js} +11 -1
- package/dist/ui/server/server.js +8643 -6992
- package/package.json +15 -15
- package/dist/ui/client/assets/index-DoCTwJ8M.css +0 -2
|
@@ -46,12 +46,14 @@ import { RoleService } from "../../../../core/entities/role/service.mjs";
|
|
|
46
46
|
import { RoleAttributeService } from "../../../../core/entities/role-attribute/service.mjs";
|
|
47
47
|
import { RolePermissionService } from "../../../../core/entities/role-permission/service.mjs";
|
|
48
48
|
import { ScopeService } from "../../../../core/entities/scope/service.mjs";
|
|
49
|
+
import { SessionService } from "../../../../core/entities/session/service.mjs";
|
|
49
50
|
import { UserService } from "../../../../core/entities/user/service.mjs";
|
|
50
51
|
import { UserAttributeService } from "../../../../core/entities/user-attribute/service.mjs";
|
|
51
52
|
import { UserPermissionService } from "../../../../core/entities/user-permission/service.mjs";
|
|
52
53
|
import { UserRoleService } from "../../../../core/entities/user-role/service.mjs";
|
|
53
54
|
import { IdentityProviderRoleMappingService } from "../../../../core/entities/identity-provider-role-mapping/service.mjs";
|
|
54
55
|
import { OAuth2ClientAuthenticator } from "../../../../core/oauth2/client/authenticator.mjs";
|
|
56
|
+
import { OAuth2EndSessionService } from "../../../../core/oauth2/end-session/service.mjs";
|
|
55
57
|
import { PasswordRecoveryService } from "../../../../core/identity/password-recovery/service.mjs";
|
|
56
58
|
import { PermissionCheckerService } from "../../../../core/identity/permission/checker/service.mjs";
|
|
57
59
|
import { PolicyCheckerService } from "../../../../core/identity/policy/checker/service.mjs";
|
|
@@ -98,6 +100,7 @@ import { PermissionPolicyController } from "../../../../adapters/http/controller
|
|
|
98
100
|
import { ActivateController } from "../../../../adapters/http/controllers/workflows/activate/module.mjs";
|
|
99
101
|
import { AuthorizeController } from "../../../../adapters/http/controllers/workflows/authorize/module.mjs";
|
|
100
102
|
import { JwkController } from "../../../../adapters/http/controllers/workflows/jwks/module.mjs";
|
|
103
|
+
import { LogoutController } from "../../../../adapters/http/controllers/workflows/logout/module.mjs";
|
|
101
104
|
import { OpenIDController } from "../../../../adapters/http/controllers/workflows/openid/module.mjs";
|
|
102
105
|
import { PasswordForgotController } from "../../../../adapters/http/controllers/workflows/password-forgot/module.mjs";
|
|
103
106
|
import { PasswordResetController } from "../../../../adapters/http/controllers/workflows/password-reset/module.mjs";
|
|
@@ -113,6 +116,7 @@ import { RoleAttributeController } from "../../../../adapters/http/controllers/e
|
|
|
113
116
|
import { RolePermissionController } from "../../../../adapters/http/controllers/entities/role-permission/module.mjs";
|
|
114
117
|
import { PolicyController } from "../../../../adapters/http/controllers/entities/policy/module.mjs";
|
|
115
118
|
import { ScopeController } from "../../../../adapters/http/controllers/entities/scope/module.mjs";
|
|
119
|
+
import { SessionController } from "../../../../adapters/http/controllers/entities/session/module.mjs";
|
|
116
120
|
import { UserController } from "../../../../adapters/http/controllers/entities/user/module.mjs";
|
|
117
121
|
import { UserAttributeController } from "../../../../adapters/http/controllers/entities/user-attribute/module.mjs";
|
|
118
122
|
import { UserPermissionController } from "../../../../adapters/http/controllers/entities/user-permission/module.mjs";
|
|
@@ -143,6 +147,7 @@ var HTTPControllerModule = class {
|
|
|
143
147
|
const roleAttributeController = this.createRoleAttributeController(container);
|
|
144
148
|
const rolePermissionController = this.createRolePermissionController(container);
|
|
145
149
|
const scopeController = this.createScopeController(container);
|
|
150
|
+
const sessionController = this.createSessionController(container);
|
|
146
151
|
const userController = this.createUserController(container);
|
|
147
152
|
const userAttributeController = this.createUserAttributeController(container);
|
|
148
153
|
const userPermissionController = this.createUserPermissionController(container);
|
|
@@ -158,6 +163,7 @@ var HTTPControllerModule = class {
|
|
|
158
163
|
this.createPasswordForgotController(container),
|
|
159
164
|
this.createPasswordResetController(container),
|
|
160
165
|
this.createRegisterController(container),
|
|
166
|
+
this.createLogoutController(container),
|
|
161
167
|
this.createStatusController(container),
|
|
162
168
|
clientController,
|
|
163
169
|
clientPermissionController,
|
|
@@ -176,6 +182,7 @@ var HTTPControllerModule = class {
|
|
|
176
182
|
roleAttributeController,
|
|
177
183
|
rolePermissionController,
|
|
178
184
|
scopeController,
|
|
185
|
+
sessionController,
|
|
179
186
|
userController,
|
|
180
187
|
userAttributeController,
|
|
181
188
|
userPermissionController,
|
|
@@ -184,44 +191,58 @@ var HTTPControllerModule = class {
|
|
|
184
191
|
}
|
|
185
192
|
createAuthorize(container) {
|
|
186
193
|
const config = container.resolve(ConfigInjectionKey);
|
|
187
|
-
const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);
|
|
188
|
-
const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);
|
|
189
194
|
const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);
|
|
190
195
|
const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);
|
|
191
|
-
const
|
|
196
|
+
const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
|
|
192
197
|
return new AuthorizeController({
|
|
193
198
|
options: {
|
|
194
199
|
baseURL: config.publicUrl,
|
|
195
|
-
features: this.buildUIFeatures(config)
|
|
200
|
+
features: this.buildUIFeatures(config),
|
|
201
|
+
promptLoginMaxAge: config.promptLoginMaxAge
|
|
196
202
|
},
|
|
197
|
-
accessTokenIssuer,
|
|
198
|
-
openIdTokenIssuer,
|
|
199
203
|
codeIssuer,
|
|
200
204
|
codeRequestVerifier,
|
|
201
|
-
|
|
205
|
+
sessionManager
|
|
202
206
|
});
|
|
203
207
|
}
|
|
204
208
|
createToken(container) {
|
|
209
|
+
const config = container.resolve(ConfigInjectionKey);
|
|
210
|
+
const logger = container.resolve(LoggerInjectionKey);
|
|
205
211
|
const sessionManager = container.resolve(AuthenticationInjectionKey.SessionManager);
|
|
206
212
|
const codeVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeVerifier);
|
|
207
213
|
const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);
|
|
208
214
|
const refreshTokenIssuer = container.resolve(OAuth2InjectionToken.RefreshTokenIssuer);
|
|
215
|
+
const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);
|
|
216
|
+
const keyRepository = container.resolve(OAuth2InjectionToken.KeyRepository);
|
|
209
217
|
const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);
|
|
210
218
|
const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);
|
|
219
|
+
const tokenRepository = container.resolve(OAuth2InjectionToken.TokenRepository);
|
|
220
|
+
const sessionTokenRepository = container.resolve(OAuth2InjectionToken.SessionTokenRepository);
|
|
211
221
|
const identityResolver = container.resolve(IdentityInjectionKey.Resolver);
|
|
212
222
|
const identityProviderLdapCollectionAuthenticator = container.resolve(IdentityInjectionKey.ProviderLdapCollectionAuthenticator);
|
|
223
|
+
const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);
|
|
224
|
+
const clientAuthenticator = new ClientAuthenticator(identityResolver);
|
|
225
|
+
const robotAuthenticator = new RobotAuthenticator(identityResolver);
|
|
226
|
+
const userAuthenticator = new CredentialsAuthenticator([identityProviderLdapCollectionAuthenticator, new UserAuthenticator(identityResolver)]);
|
|
227
|
+
const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);
|
|
213
228
|
return new TokenController({
|
|
214
229
|
codeVerifier,
|
|
215
230
|
accessTokenIssuer,
|
|
216
231
|
refreshTokenIssuer,
|
|
232
|
+
openIdTokenIssuer,
|
|
233
|
+
keyRepository,
|
|
217
234
|
tokenVerifier,
|
|
218
235
|
tokenRevoker,
|
|
236
|
+
tokenRepository,
|
|
237
|
+
sessionTokenRepository,
|
|
238
|
+
tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,
|
|
239
|
+
logger,
|
|
219
240
|
identityResolver,
|
|
220
|
-
identityPermissionProvider
|
|
221
|
-
clientAuthenticator
|
|
222
|
-
robotAuthenticator
|
|
223
|
-
userAuthenticator
|
|
224
|
-
oauth2ClientAuthenticator
|
|
241
|
+
identityPermissionProvider,
|
|
242
|
+
clientAuthenticator,
|
|
243
|
+
robotAuthenticator,
|
|
244
|
+
userAuthenticator,
|
|
245
|
+
oauth2ClientAuthenticator,
|
|
225
246
|
realmRepository: new RealmRepositoryAdapter(container.resolve(RealmEntity)),
|
|
226
247
|
sessionManager
|
|
227
248
|
});
|
|
@@ -275,7 +296,8 @@ var HTTPControllerModule = class {
|
|
|
275
296
|
options: {
|
|
276
297
|
passwordRecoveryEnabled: config.passwordRecoveryEnabled,
|
|
277
298
|
emailVerificationEnabled: config.emailVerificationEnabled,
|
|
278
|
-
publicUrl: config.publicUrl
|
|
299
|
+
publicUrl: config.publicUrl,
|
|
300
|
+
passwordMinLength: config.passwordMinLength
|
|
279
301
|
}
|
|
280
302
|
});
|
|
281
303
|
}
|
|
@@ -289,6 +311,20 @@ var HTTPControllerModule = class {
|
|
|
289
311
|
service: this.createRegistrationService(container)
|
|
290
312
|
});
|
|
291
313
|
}
|
|
314
|
+
createLogoutController(container) {
|
|
315
|
+
const config = container.resolve(ConfigInjectionKey);
|
|
316
|
+
const endSessionService = new OAuth2EndSessionService({
|
|
317
|
+
tokenVerifier: container.resolve(OAuth2InjectionToken.TokenVerifier),
|
|
318
|
+
sessionManager: container.resolve(AuthenticationInjectionKey.SessionManager),
|
|
319
|
+
clientRepository: container.resolve(OAuth2InjectionToken.ClientRepository),
|
|
320
|
+
realmRepository: new RealmRepositoryAdapter(container.resolve(RealmEntity)),
|
|
321
|
+
hintGracePeriod: config.endSessionHintGracePeriod
|
|
322
|
+
});
|
|
323
|
+
return new LogoutController({
|
|
324
|
+
options: { baseURL: config.publicUrl },
|
|
325
|
+
endSessionService
|
|
326
|
+
});
|
|
327
|
+
}
|
|
292
328
|
createStatusController(container) {
|
|
293
329
|
const config = container.resolve(ConfigInjectionKey);
|
|
294
330
|
return new StatusController({ options: { features: this.buildUIFeatures(config) } });
|
|
@@ -316,7 +352,8 @@ var HTTPControllerModule = class {
|
|
|
316
352
|
options: {
|
|
317
353
|
registrationEnabled: config.registrationEnabled,
|
|
318
354
|
emailVerificationEnabled: config.emailVerificationEnabled,
|
|
319
|
-
publicUrl: config.publicUrl
|
|
355
|
+
publicUrl: config.publicUrl,
|
|
356
|
+
passwordMinLength: config.passwordMinLength
|
|
320
357
|
}
|
|
321
358
|
});
|
|
322
359
|
}
|
|
@@ -485,7 +522,11 @@ var HTTPControllerModule = class {
|
|
|
485
522
|
realmRepository
|
|
486
523
|
}) });
|
|
487
524
|
}
|
|
525
|
+
createSessionController(container) {
|
|
526
|
+
return new SessionController({ service: new SessionService({ repository: container.resolve(AuthenticationInjectionKey.SessionRepository) }) });
|
|
527
|
+
}
|
|
488
528
|
createUserController(container) {
|
|
529
|
+
const config = container.resolve(ConfigInjectionKey);
|
|
489
530
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
490
531
|
const realmRepository = container.resolve(RealmEntity);
|
|
491
532
|
return new UserController({ service: new UserService({
|
|
@@ -493,7 +534,8 @@ var HTTPControllerModule = class {
|
|
|
493
534
|
repository: new UserRepository(dataSource),
|
|
494
535
|
realmRepository
|
|
495
536
|
}),
|
|
496
|
-
realmRepository: new RealmRepositoryAdapter(realmRepository)
|
|
537
|
+
realmRepository: new RealmRepositoryAdapter(realmRepository),
|
|
538
|
+
passwordMinLength: config.passwordMinLength
|
|
497
539
|
}) });
|
|
498
540
|
}
|
|
499
541
|
createUserAttributeController(container) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.mjs","names":["decorators","ClientEntity","ClientPermissionEntity","ClientRoleEntity","ClientScopeEntity","IdentityProviderRepository","IdentityProviderRoleMappingEntity","KeyEntity","PermissionEntity","PermissionPolicyEntity","PolicyRepository","RealmEntity","RobotEntity","RobotPermissionEntity","RobotRoleEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RobotPermissionRepositoryAdapter","RobotRepositoryAdapter","RobotRoleRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","UserAttributeRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","IdentityProviderController","IdentityProviderRoleMappingController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RobotController","RobotPermissionController","RobotRoleController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","UserAttributeController","UserController","UserPermissionController","UserRoleController","ActivateController","AuthorizeController","JwkController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","ClientAuthenticator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","CredentialsAuthenticator","IdentityProviderRoleMappingService","OAuth2ClientAuthenticator","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmService","RegistrationService","RobotAuthenticator","RobotPermissionService","RobotRoleService","RobotService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","UserAttributeService","UserAuthenticator","UserPermissionService","UserRoleService","UserService","WebClientProvisioner","AuthenticationInjectionKey","OAuth2InjectionToken","IdentityInjectionKey","ConfigInjectionKey","getAppOrigins","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","HTTPControllerModule","mount","router","container","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","robotController","createRobotController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","robotPermissionController","createRobotPermissionController","robotRoleController","createRobotRoleController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","userController","createUserController","userAttributeController","createUserAttributeController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createStatusController","createIdentityProvider","config","resolve","accessTokenIssuer","AccessTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","identityResolver","Resolver","options","baseURL","publicUrl","features","buildUIFeatures","sessionManager","SessionManager","codeVerifier","AuthorizationCodeVerifier","refreshTokenIssuer","RefreshTokenIssuer","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","clientAuthenticator","robotAuthenticator","userAuthenticator","oauth2ClientAuthenticator","realmRepository","service","createRegistrationService","createPasswordRecoveryService","dataSource","DataSource","repository","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","stateManager","AuthorizationStateManager","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","getRepository","clientRepository","logger","webClientProvisioner","appOrigins","keyRepository"],"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 Robot,\n RobotPermission,\n RobotRole,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\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 RobotEntity,\n RobotPermissionEntity,\n RobotRoleEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\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 IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RobotPermissionRepositoryAdapter,\n RobotRepositoryAdapter,\n RobotRoleRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController, \n IdentityProviderController,\n IdentityProviderRoleMappingController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RobotController,\n RobotPermissionController,\n RobotRoleController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n UserAttributeController,\n UserController,\n UserPermissionController,\n UserRoleController,\n} from '../../../../adapters/http/index.ts';\nimport {\n ActivateController,\n AuthorizeController,\n JwkController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientAuthenticator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n CredentialsAuthenticator,\n IdentityProviderRoleMappingService,\n OAuth2ClientAuthenticator,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmService,\n RegistrationService,\n RobotAuthenticator,\n RobotPermissionService,\n RobotRoleService,\n RobotService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n UserAttributeService,\n UserAuthenticator,\n UserPermissionService,\n UserRoleService,\n UserService,\n WebClientProvisioner,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { IdentityInjectionKey } 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 { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: App, container: IContainer): Promise<void> {\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 robotController = this.createRobotController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const robotPermissionController = this.createRobotPermissionController(container);\n const robotRoleController = this.createRobotRoleController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(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\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n permissionController,\n permissionPolicyController,\n policyController,\n robotController,\n robotPermissionController,\n robotRoleController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n userController,\n userAttributeController,\n userPermissionController,\n userRoleController,\n ],\n }));\n }\n\n // ----------------------------------------------------\n\n createAuthorize(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const accessTokenIssuer = container.resolve(OAuth2InjectionToken.AccessTokenIssuer);\n const openIdTokenIssuer = container.resolve(OAuth2InjectionToken.OpenIDTokenIssuer);\n\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\n const codeRequestVerifier = container.resolve(OAuth2InjectionToken.AuthorizationCodeRequestVerifier);\n\n const identityResolver = container.resolve(IdentityInjectionKey.Resolver);\n\n return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n },\n\n accessTokenIssuer,\n openIdTokenIssuer,\n\n codeIssuer,\n codeRequestVerifier,\n\n identityResolver,\n });\n }\n\n createToken(container: IContainer) {\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\n const tokenRevoker = container.resolve(OAuth2InjectionToken.TokenRevoker);\n const tokenVerifier = container.resolve(OAuth2InjectionToken.TokenVerifier);\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 clientAuthenticator = new ClientAuthenticator(identityResolver);\n const robotAuthenticator = new RobotAuthenticator(identityResolver);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n\n tokenVerifier,\n tokenRevoker,\n\n identityResolver,\n identityPermissionProvider,\n\n clientAuthenticator,\n robotAuthenticator,\n userAuthenticator,\n\n oauth2ClientAuthenticator,\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 options: {\n passwordRecoveryEnabled: config.passwordRecoveryEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\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 createStatusController(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n\n return new StatusController({ options: { features: this.buildUIFeatures(config) } });\n }\n\n buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\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 options: {\n registrationEnabled: config.registrationEnabled,\n emailVerificationEnabled: config.emailVerificationEnabled,\n publicUrl: config.publicUrl,\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\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\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 return new IdentityProviderController({\n options: { baseURL: config.publicUrl },\n\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n\n accountManager,\n\n codeIssuer,\n codeRequestVerifier,\n stateManager,\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 createRobotController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new RobotService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n return new RobotController({\n service,\n repository,\n realmRepository: realmRepositoryAdapter,\n dataSource,\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 createRobotPermissionController(container: IContainer) {\n const repository = new RobotPermissionRepositoryAdapter(\n container.resolve<Repository<RobotPermission>>(RobotPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RobotPermissionController({ service });\n }\n\n createRobotRoleController(container: IContainer) {\n const repository = new RobotRoleRepositoryAdapter(\n container.resolve<Repository<RobotRole>>(RobotRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotRoleService({ repository, identityPermissionProvider });\n return new RobotRoleController({ 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 createUserController(container: IContainer) {\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 const service = new UserService({\n repository,\n realmRepository: realmRepositoryAdapter, \n });\n return new UserController({ service });\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 webClientProvisioner = new WebClientProvisioner({\n clientRepository,\n appOrigins: getAppOrigins(config),\n logger,\n });\n\n const service = new RealmService({\n repository, \n webClientProvisioner, \n logger, \n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: { baseURL: config.publicUrl },\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","RobotEntity","RobotPermissionEntity","RobotRoleEntity","RoleAttributeEntity","RoleEntity","RolePermissionEntity","ScopeEntity","UserAttributeEntity","UserEntity","UserPermissionEntity","UserRepository","UserRoleEntity","ClientPermissionRepositoryAdapter","ClientRepositoryAdapter","ClientRoleRepositoryAdapter","ClientScopeRepositoryAdapter","DatabaseInjectionKey","IdentityProviderRepositoryAdapter","IdentityProviderRoleMappingRepositoryAdapter","PermissionDatabaseProvider","PermissionPolicyRepositoryAdapter","PermissionRepositoryAdapter","PolicyRepositoryAdapter","RealmRepositoryAdapter","RobotPermissionRepositoryAdapter","RobotRepositoryAdapter","RobotRoleRepositoryAdapter","RoleAttributeRepositoryAdapter","RolePermissionRepositoryAdapter","RoleRepositoryAdapter","ScopeRepositoryAdapter","UserAttributeRepositoryAdapter","UserPermissionRepositoryAdapter","UserRepositoryAdapter","UserRoleRepositoryAdapter","ClientController","ClientPermissionController","ClientRoleController","ClientScopeController","IdentityProviderController","IdentityProviderRoleMappingController","PermissionController","PermissionPolicyController","PolicyController","RealmController","RobotController","RobotPermissionController","RobotRoleController","RoleAttributeController","RoleController","RolePermissionController","ScopeController","SessionController","UserAttributeController","UserController","UserPermissionController","UserRoleController","ActivateController","AuthorizeController","JwkController","LogoutController","OpenIDController","PasswordForgotController","PasswordResetController","RegisterController","StatusController","TokenController","ClientAuthenticator","ClientPermissionService","ClientRoleService","ClientScopeService","ClientService","CredentialsAuthenticator","IdentityProviderRoleMappingService","OAuth2ClientAuthenticator","OAuth2EndSessionService","PasswordRecoveryService","PermissionCheckerService","PermissionPolicyService","PermissionService","PolicyCheckerService","PolicyService","RealmService","RegistrationService","RobotAuthenticator","RobotPermissionService","RobotRoleService","RobotService","RoleAttributeService","RolePermissionService","RoleService","ScopeService","SessionService","UserAttributeService","UserAuthenticator","UserPermissionService","UserRoleService","UserService","WebClientProvisioner","AuthenticationInjectionKey","OAuth2InjectionToken","IdentityInjectionKey","ConfigInjectionKey","getAppOrigins","LoggerInjectionKey","MailInjectionKey","MailTemplateRendererInjectionKey","HTTPControllerModule","mount","router","container","realmController","createRealmController","roleController","createRoleController","permissionController","createPermissionController","permissionPolicyController","createPermissionPolicyController","clientController","createClientController","robotController","createRobotController","clientPermissionController","createClientPermissionController","clientRoleController","createClientRoleController","clientScopeController","createClientScopeController","robotPermissionController","createRobotPermissionController","robotRoleController","createRobotRoleController","roleAttributeController","createRoleAttributeController","rolePermissionController","createRolePermissionController","scopeController","createScopeController","sessionController","createSessionController","userController","createUserController","userAttributeController","createUserAttributeController","userPermissionController","createUserPermissionController","userRoleController","createUserRoleController","policyController","createPolicyController","identityProviderRoleController","createIdentityProviderRoleController","use","controllers","createAuthorize","createToken","createJwkController","createOpenIDController","createActivateController","createPasswordForgotController","createPasswordResetController","createRegisterController","createLogoutController","createStatusController","createIdentityProvider","config","resolve","codeIssuer","AuthorizationCodeIssuer","codeRequestVerifier","AuthorizationCodeRequestVerifier","sessionManager","SessionManager","options","baseURL","publicUrl","features","buildUIFeatures","promptLoginMaxAge","logger","codeVerifier","AuthorizationCodeVerifier","accessTokenIssuer","AccessTokenIssuer","refreshTokenIssuer","RefreshTokenIssuer","openIdTokenIssuer","OpenIDTokenIssuer","keyRepository","KeyRepository","tokenRevoker","TokenRevoker","tokenVerifier","TokenVerifier","tokenRepository","TokenRepository","sessionTokenRepository","SessionTokenRepository","identityResolver","Resolver","identityProviderLdapCollectionAuthenticator","ProviderLdapCollectionAuthenticator","identityPermissionProvider","PermissionProvider","clientAuthenticator","robotAuthenticator","userAuthenticator","oauth2ClientAuthenticator","tokenRefreshGracePeriod","realmRepository","service","createRegistrationService","createPasswordRecoveryService","dataSource","DataSource","repository","mailClient","mailTemplateRenderer","passwordRecoveryEnabled","emailVerificationEnabled","passwordMinLength","clientRepository","ClientRepository","endSessionService","hintGracePeriod","endSessionHintGracePeriod","registration","registrationEnabled","passwordRecovery","emailVerification","accountManager","ProviderAccountManager","stateManager","AuthorizationStateManager","realmRepositoryAdapter","createPermissionRepository","createRoleRepository","roleRepository","rolePermissionRepository","policyRepository","permissionPolicyRepository","permissionProvider","checkerService","permissionRepository","reservedNames","Set","getMetadata","columns","map","c","propertyName","SessionRepository","getRepository","webClientProvisioner","appOrigins"],"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 Robot,\n RobotPermission,\n RobotRole,\n Role,\n RoleAttribute,\n RolePermission,\n Scope,\n UserAttribute,\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 RobotEntity,\n RobotPermissionEntity,\n RobotRoleEntity,\n RoleAttributeEntity,\n RoleEntity,\n RolePermissionEntity,\n ScopeEntity,\n UserAttributeEntity,\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 IdentityProviderRepositoryAdapter,\n IdentityProviderRoleMappingRepositoryAdapter,\n PermissionDatabaseProvider,\n PermissionPolicyRepositoryAdapter,\n PermissionRepositoryAdapter,\n PolicyRepositoryAdapter,\n RealmRepositoryAdapter,\n RobotPermissionRepositoryAdapter,\n RobotRepositoryAdapter,\n RobotRoleRepositoryAdapter,\n RoleAttributeRepositoryAdapter,\n RolePermissionRepositoryAdapter,\n RoleRepositoryAdapter,\n ScopeRepositoryAdapter,\n UserAttributeRepositoryAdapter,\n UserPermissionRepositoryAdapter,\n UserRepositoryAdapter,\n UserRoleRepositoryAdapter,\n} from '../../database/index.ts';\nimport {\n ClientController,\n ClientPermissionController,\n ClientRoleController,\n ClientScopeController,\n IdentityProviderController,\n IdentityProviderRoleMappingController,\n PermissionController,\n PermissionPolicyController,\n PolicyController,\n RealmController,\n RobotController,\n RobotPermissionController,\n RobotRoleController,\n RoleAttributeController,\n RoleController,\n RolePermissionController,\n ScopeController,\n SessionController,\n UserAttributeController,\n UserController,\n UserPermissionController,\n UserRoleController,\n} from '../../../../adapters/http/index.ts';\nimport {\n ActivateController,\n AuthorizeController,\n JwkController,\n LogoutController,\n OpenIDController,\n PasswordForgotController,\n PasswordResetController,\n RegisterController,\n StatusController,\n TokenController,\n} from '../../../../adapters/http/controllers/index.ts';\nimport type { IContainer } from 'eldin';\nimport {\n ClientAuthenticator,\n ClientPermissionService,\n ClientRoleService,\n ClientScopeService,\n ClientService,\n CredentialsAuthenticator,\n IdentityProviderRoleMappingService,\n OAuth2ClientAuthenticator,\n OAuth2EndSessionService,\n PasswordRecoveryService,\n PermissionCheckerService,\n PermissionPolicyService,\n PermissionService,\n PolicyCheckerService,\n PolicyService,\n RealmService,\n RegistrationService,\n RobotAuthenticator,\n RobotPermissionService,\n RobotRoleService,\n RobotService,\n RoleAttributeService,\n RolePermissionService,\n RoleService,\n ScopeService,\n SessionService,\n UserAttributeService,\n UserAuthenticator,\n UserPermissionService,\n UserRoleService,\n UserService,\n WebClientProvisioner,\n} from '../../../../core/index.ts';\nimport { AuthenticationInjectionKey } from '../../authentication/index.ts';\nimport { OAuth2InjectionToken } from '../../oauth2/index.ts';\nimport { IdentityInjectionKey } 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 { LoggerInjectionKey } from '../../logger/index.ts';\nimport { MailInjectionKey, MailTemplateRendererInjectionKey } from '../../mail/index.ts';\n\nexport class HTTPControllerModule {\n async mount(router: App, container: IContainer): Promise<void> {\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 robotController = this.createRobotController(container);\n const clientPermissionController = this.createClientPermissionController(container);\n const clientRoleController = this.createClientRoleController(container);\n const clientScopeController = this.createClientScopeController(container);\n const robotPermissionController = this.createRobotPermissionController(container);\n const robotRoleController = this.createRobotRoleController(container);\n const roleAttributeController = this.createRoleAttributeController(container);\n const rolePermissionController = this.createRolePermissionController(container);\n const scopeController = this.createScopeController(container);\n const sessionController = this.createSessionController(container);\n const userController = this.createUserController(container);\n const userAttributeController = this.createUserAttributeController(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\n this.createStatusController(container),\n\n clientController,\n clientPermissionController,\n clientRoleController,\n clientScopeController,\n identityProviderRoleController,\n this.createIdentityProvider(container),\n permissionController,\n permissionPolicyController,\n policyController,\n robotController,\n robotPermissionController,\n robotRoleController,\n realmController,\n roleController,\n roleAttributeController,\n rolePermissionController,\n scopeController,\n sessionController,\n userController,\n userAttributeController,\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 return new AuthorizeController({\n options: {\n baseURL: config.publicUrl,\n features: this.buildUIFeatures(config),\n promptLoginMaxAge: config.promptLoginMaxAge,\n },\n\n codeIssuer,\n codeRequestVerifier,\n\n sessionManager,\n });\n }\n\n createToken(container: IContainer) {\n const config = container.resolve(ConfigInjectionKey);\n const logger = container.resolve(LoggerInjectionKey);\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 keyRepository = container.resolve(OAuth2InjectionToken.KeyRepository);\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 clientAuthenticator = new ClientAuthenticator(identityResolver);\n const robotAuthenticator = new RobotAuthenticator(identityResolver);\n\n const userAuthenticator = new CredentialsAuthenticator([\n identityProviderLdapCollectionAuthenticator,\n new UserAuthenticator(identityResolver),\n ]);\n\n const oauth2ClientAuthenticator = new OAuth2ClientAuthenticator(identityResolver);\n\n return new TokenController({\n codeVerifier,\n\n accessTokenIssuer,\n refreshTokenIssuer,\n openIdTokenIssuer,\n keyRepository,\n\n tokenVerifier,\n tokenRevoker,\n tokenRepository,\n sessionTokenRepository,\n\n tokenRefreshGracePeriod: config.tokenRefreshGracePeriod,\n logger,\n\n identityResolver,\n identityPermissionProvider,\n\n clientAuthenticator,\n robotAuthenticator,\n userAuthenticator,\n\n oauth2ClientAuthenticator,\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 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 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 buildUIFeatures(config: Config) : StatusResponseFeatures {\n return {\n registration: config.registrationEnabled,\n passwordRecovery: config.passwordRecoveryEnabled,\n emailVerification: config.emailVerificationEnabled,\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 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\n const codeIssuer = container.resolve(OAuth2InjectionToken.AuthorizationCodeIssuer);\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 return new IdentityProviderController({\n options: { baseURL: config.publicUrl },\n\n repository,\n realmRepository: new RealmRepositoryAdapter(realmRepository),\n\n accountManager,\n\n codeIssuer,\n codeRequestVerifier,\n stateManager,\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 createRobotController(container: IContainer) {\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const realmRepository = container.resolve<Repository<Realm>>(RealmEntity);\n const repository = new RobotRepositoryAdapter({\n repository: container.resolve<Repository<Robot>>(RobotEntity),\n realmRepository,\n });\n const realmRepositoryAdapter = new RealmRepositoryAdapter(realmRepository);\n const service = new RobotService({\n repository,\n realmRepository: realmRepositoryAdapter,\n });\n return new RobotController({\n service,\n repository,\n realmRepository: realmRepositoryAdapter,\n dataSource,\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 createRobotPermissionController(container: IContainer) {\n const repository = new RobotPermissionRepositoryAdapter(\n container.resolve<Repository<RobotPermission>>(RobotPermissionEntity),\n );\n const permissionRepository = this.createPermissionRepository(container);\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotPermissionService({\n repository,\n permissionRepository,\n identityPermissionProvider,\n });\n return new RobotPermissionController({ service });\n }\n\n createRobotRoleController(container: IContainer) {\n const repository = new RobotRoleRepositoryAdapter(\n container.resolve<Repository<RobotRole>>(RobotRoleEntity),\n );\n const identityPermissionProvider = container.resolve(IdentityInjectionKey.PermissionProvider);\n const service = new RobotRoleService({ repository, identityPermissionProvider });\n return new RobotRoleController({ 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 createSessionController(container: IContainer) {\n const repository = container.resolve(AuthenticationInjectionKey.SessionRepository);\n const service = new SessionService({ repository });\n return new SessionController({ service });\n }\n\n createUserController(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 const service = new UserService({\n repository,\n realmRepository: realmRepositoryAdapter,\n passwordMinLength: config.passwordMinLength,\n });\n return new UserController({ service });\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 webClientProvisioner = new WebClientProvisioner({\n clientRepository,\n appOrigins: getAppOrigins(config),\n logger,\n });\n\n const service = new RealmService({\n repository,\n webClientProvisioner,\n logger,\n });\n const keyRepository = dataSource.getRepository(KeyEntity);\n\n return new RealmController({\n options: { baseURL: config.publicUrl },\n service,\n keyRepository,\n });\n }\n}\n"],"mappings":"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"}
|
|
@@ -15,9 +15,9 @@ import { PermissionDatabaseProvider } from "../../database/repositories/permissi
|
|
|
15
15
|
import "../../database/repositories/index.mjs";
|
|
16
16
|
import "../../database/index.mjs";
|
|
17
17
|
import { HTTPInjectionKey } from "../constants.mjs";
|
|
18
|
+
import { DIST_PATH } from "../../../../path.mjs";
|
|
18
19
|
import { createAuthorizationMiddleware } from "../../../../adapters/http/middleware/built-in/authorization/factory.mjs";
|
|
19
20
|
import { createRealmResolverMiddleware } from "../../../../adapters/http/middleware/built-in/realm-resolver/factory.mjs";
|
|
20
|
-
import { DIST_PATH } from "../../../../path.mjs";
|
|
21
21
|
import { registerAssetsMiddleware } from "../../../../adapters/http/middleware/built-in/assets.mjs";
|
|
22
22
|
import { registerBasicMiddleware } from "../../../../adapters/http/middleware/built-in/basic.mjs";
|
|
23
23
|
import { registerCorsMiddleware } from "../../../../adapters/http/middleware/built-in/cors.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TypedToken } from 'eldin';
|
|
2
|
-
import type { IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRepository, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationStateManager, IOAuth2AuthorizeStateRepository, IOAuth2ClientRepository, IOAuth2KeyRepository, IOAuth2OpenIDTokenIssuer, IOAuth2ScopeRepository, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenSigner, IOAuth2TokenVerifier } from '../../../core/index.ts';
|
|
2
|
+
import type { IOAuth2AuthorizationCodeIssuer, IOAuth2AuthorizationCodeRepository, IOAuth2AuthorizationCodeRequestVerifier, IOAuth2AuthorizationCodeVerifier, IOAuth2AuthorizationStateManager, IOAuth2AuthorizeStateRepository, IOAuth2ClientRepository, IOAuth2KeyRepository, IOAuth2OpenIDTokenIssuer, IOAuth2ScopeRepository, IOAuth2TokenIssuer, IOAuth2TokenRepository, IOAuth2TokenRevoker, IOAuth2TokenSigner, IOAuth2TokenVerifier, ISessionTokenRepository } from '../../../core/index.ts';
|
|
3
3
|
export declare const OAuth2InjectionToken: {
|
|
4
4
|
readonly ClientRepository: TypedToken<IOAuth2ClientRepository>;
|
|
5
5
|
readonly ScopeRepository: TypedToken<IOAuth2ScopeRepository>;
|
|
@@ -14,6 +14,7 @@ export declare const OAuth2InjectionToken: {
|
|
|
14
14
|
readonly OpenIDTokenIssuer: TypedToken<IOAuth2OpenIDTokenIssuer>;
|
|
15
15
|
readonly RefreshTokenIssuer: TypedToken<IOAuth2TokenIssuer>;
|
|
16
16
|
readonly TokenRepository: TypedToken<IOAuth2TokenRepository>;
|
|
17
|
+
readonly SessionTokenRepository: TypedToken<ISessionTokenRepository>;
|
|
17
18
|
readonly TokenRevoker: TypedToken<IOAuth2TokenRevoker>;
|
|
18
19
|
readonly TokenSigner: TypedToken<IOAuth2TokenSigner>;
|
|
19
20
|
readonly TokenVerifier: TypedToken<IOAuth2TokenVerifier>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/constants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,uCAAuC,EACvC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/constants.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,KAAK,EACR,8BAA8B,EAC9B,kCAAkC,EAClC,uCAAuC,EACvC,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;CAuBvB,CAAC"}
|
|
@@ -17,6 +17,7 @@ const OAuth2InjectionToken = {
|
|
|
17
17
|
OpenIDTokenIssuer: new TypedToken("OpenIDTokenIssuer"),
|
|
18
18
|
RefreshTokenIssuer: new TypedToken("RefreshTokenIssuer"),
|
|
19
19
|
TokenRepository: new TypedToken("TokenRepository"),
|
|
20
|
+
SessionTokenRepository: new TypedToken("SessionTokenRepository"),
|
|
20
21
|
TokenRevoker: new TypedToken("TokenRevoker"),
|
|
21
22
|
TokenSigner: new TypedToken("TokenSigner"),
|
|
22
23
|
TokenVerifier: new TypedToken("TokenVerifier")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.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 { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"constants.mjs","names":["TypedToken","OAuth2InjectionToken","ClientRepository","ScopeRepository","AuthorizationCodeIssuer","AuthorizationCodeRepository","AuthorizationCodeVerifier","AuthorizationStateManager","AuthorizationCodeRequestVerifier","AuthorizationStateRepository","KeyRepository","AccessTokenIssuer","OpenIDTokenIssuer","RefreshTokenIssuer","TokenRepository","SessionTokenRepository","TokenRevoker","TokenSigner","TokenVerifier"],"sources":["../../../../src/app/modules/oauth2/constants.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 { TypedToken } from 'eldin';\nimport type {\n IOAuth2AuthorizationCodeIssuer,\n IOAuth2AuthorizationCodeRepository,\n IOAuth2AuthorizationCodeRequestVerifier,\n IOAuth2AuthorizationCodeVerifier,\n IOAuth2AuthorizationStateManager,\n IOAuth2AuthorizeStateRepository,\n IOAuth2ClientRepository,\n IOAuth2KeyRepository,\n IOAuth2OpenIDTokenIssuer,\n IOAuth2ScopeRepository,\n IOAuth2TokenIssuer,\n IOAuth2TokenRepository,\n IOAuth2TokenRevoker,\n IOAuth2TokenSigner,\n IOAuth2TokenVerifier,\n ISessionTokenRepository,\n} from '../../../core/index.ts';\n\nexport const OAuth2InjectionToken = {\n ClientRepository: new TypedToken<IOAuth2ClientRepository>('ClientRepository'),\n ScopeRepository: new TypedToken<IOAuth2ScopeRepository>('ScopeRepository'),\n\n AuthorizationCodeIssuer: new TypedToken<IOAuth2AuthorizationCodeIssuer>('AuthorizationCodeIssuer'),\n AuthorizationCodeRepository: new TypedToken<IOAuth2AuthorizationCodeRepository>('AuthorizationCodeRepository'),\n AuthorizationCodeVerifier: new TypedToken<IOAuth2AuthorizationCodeVerifier>('AuthorizationCodeVerifier'),\n AuthorizationStateManager: new TypedToken<IOAuth2AuthorizationStateManager>('AuthorizationStateManager'),\n AuthorizationCodeRequestVerifier: new TypedToken<IOAuth2AuthorizationCodeRequestVerifier>('AuthorizationCodeRequestVerifier'),\n\n AuthorizationStateRepository: new TypedToken<IOAuth2AuthorizeStateRepository>('AuthorizationStateRepository'),\n\n KeyRepository: new TypedToken<IOAuth2KeyRepository>('KeyRepository'),\n\n AccessTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('AccessTokenIssuer'),\n OpenIDTokenIssuer: new TypedToken<IOAuth2OpenIDTokenIssuer>('OpenIDTokenIssuer'),\n RefreshTokenIssuer: new TypedToken<IOAuth2TokenIssuer>('RefreshTokenIssuer'),\n\n TokenRepository: new TypedToken<IOAuth2TokenRepository>('TokenRepository'),\n SessionTokenRepository: new TypedToken<ISessionTokenRepository>('SessionTokenRepository'),\n TokenRevoker: new TypedToken<IOAuth2TokenRevoker>('TokenRevoker'),\n TokenSigner: new TypedToken<IOAuth2TokenSigner>('TokenSigner'),\n TokenVerifier: new TypedToken<IOAuth2TokenVerifier>('TokenVerifier'),\n} as const;\n"],"mappings":";;;;;AA2BA,MAAaC,uBAAuB;CAChCC,kBAAkB,IAAIF,WAAoC,kBAAA;CAC1DG,iBAAiB,IAAIH,WAAmC,iBAAA;CAExDI,yBAAyB,IAAIJ,WAA2C,yBAAA;CACxEK,6BAA6B,IAAIL,WAA+C,6BAAA;CAChFM,2BAA2B,IAAIN,WAA6C,2BAAA;CAC5EO,2BAA2B,IAAIP,WAA6C,2BAAA;CAC5EQ,kCAAkC,IAAIR,WAAoD,kCAAA;CAE1FS,8BAA8B,IAAIT,WAA4C,8BAAA;CAE9EU,eAAe,IAAIV,WAAiC,eAAA;CAEpDW,mBAAmB,IAAIX,WAA+B,mBAAA;CACtDY,mBAAmB,IAAIZ,WAAqC,mBAAA;CAC5Da,oBAAoB,IAAIb,WAA+B,oBAAA;CAEvDc,iBAAiB,IAAId,WAAmC,iBAAA;CACxDe,wBAAwB,IAAIf,WAAoC,wBAAA;CAChEgB,cAAc,IAAIhB,WAAgC,cAAA;CAClDiB,aAAa,IAAIjB,WAA+B,aAAA;CAChDkB,eAAe,IAAIlB,WAAiC,eAAA;AACxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/oauth2/module.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA8BrC,qBAAa,YAAa,YAAW,OAAO;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAO1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAI,OAAO,CAAC,IAAI,CAAC;CAmLrD"}
|
|
@@ -28,6 +28,7 @@ import { OAuth2AuthorizationStateRepository } from "./repositories/authorize/sta
|
|
|
28
28
|
import { OAuth2ClientRepository } from "./repositories/client/repository.mjs";
|
|
29
29
|
import { OAuth2ScopeRepository } from "./repositories/scope/repository.mjs";
|
|
30
30
|
import { OAuth2KeyRepository } from "./repositories/key/repository.mjs";
|
|
31
|
+
import { SessionTokenRepositoryAdapter } from "./repositories/session-token/repository.mjs";
|
|
31
32
|
import { OAuth2TokenRepository } from "./repositories/token/repository.mjs";
|
|
32
33
|
import "./repositories/index.mjs";
|
|
33
34
|
import { IdentityInjectionKey } from "../identity/constants.mjs";
|
|
@@ -62,6 +63,7 @@ var OAuth2Module = class {
|
|
|
62
63
|
container.register(OAuth2InjectionToken.TokenRepository, { useFactory: (c) => {
|
|
63
64
|
return new OAuth2TokenRepository(c.resolve(CacheInjectionKey));
|
|
64
65
|
} });
|
|
66
|
+
container.register(OAuth2InjectionToken.SessionTokenRepository, { useFactory: (c) => new SessionTokenRepositoryAdapter(c.resolve(DatabaseInjectionKey.DataSource)) });
|
|
65
67
|
container.register(OAuth2InjectionToken.KeyRepository, { useFactory: (c) => new OAuth2KeyRepository(c.resolve(DatabaseInjectionKey.DataSource)) });
|
|
66
68
|
container.register(OAuth2InjectionToken.TokenSigner, { useFactory: (c) => {
|
|
67
69
|
return new OAuth2TokenSigner(c.resolve(OAuth2InjectionToken.KeyRepository));
|
|
@@ -82,7 +84,7 @@ var OAuth2Module = class {
|
|
|
82
84
|
return new OAuth2AuthorizationStateManager(c.resolve(OAuth2InjectionToken.AuthorizationStateRepository));
|
|
83
85
|
} });
|
|
84
86
|
container.register(OAuth2InjectionToken.TokenRevoker, { useFactory: (c) => {
|
|
85
|
-
return new OAuth2TokenRevoker(c.resolve(OAuth2InjectionToken.TokenRepository));
|
|
87
|
+
return new OAuth2TokenRevoker(c.resolve(OAuth2InjectionToken.TokenRepository), c.resolve(OAuth2InjectionToken.SessionTokenRepository));
|
|
86
88
|
} });
|
|
87
89
|
container.register(OAuth2InjectionToken.TokenVerifier, { useFactory: (c) => {
|
|
88
90
|
return new OAuth2TokenVerifier(c.resolve(OAuth2InjectionToken.KeyRepository), c.resolve(OAuth2InjectionToken.TokenRepository));
|
|
@@ -91,16 +93,20 @@ var OAuth2Module = class {
|
|
|
91
93
|
const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);
|
|
92
94
|
const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);
|
|
93
95
|
const identityRoleProvider = c.resolve(IdentityInjectionKey.RoleProvider);
|
|
96
|
+
const sessionTokenRepository = c.resolve(OAuth2InjectionToken.SessionTokenRepository);
|
|
94
97
|
return new OAuth2AccessTokenIssuer(tokenRepository, tokenSigner, {
|
|
95
98
|
maxAge: config.tokenAccessMaxAge,
|
|
96
99
|
issuer: config.publicUrl
|
|
97
|
-
}, identityRoleProvider);
|
|
100
|
+
}, identityRoleProvider, sessionTokenRepository);
|
|
98
101
|
} });
|
|
99
102
|
container.register(OAuth2InjectionToken.RefreshTokenIssuer, { useFactory: (c) => {
|
|
100
|
-
|
|
103
|
+
const tokenRepository = c.resolve(OAuth2InjectionToken.TokenRepository);
|
|
104
|
+
const tokenSigner = c.resolve(OAuth2InjectionToken.TokenSigner);
|
|
105
|
+
const sessionTokenRepository = c.resolve(OAuth2InjectionToken.SessionTokenRepository);
|
|
106
|
+
return new OAuth2RefreshTokenIssuer(tokenRepository, tokenSigner, {
|
|
101
107
|
maxAge: config.tokenRefreshMaxAge,
|
|
102
108
|
issuer: config.publicUrl
|
|
103
|
-
});
|
|
109
|
+
}, sessionTokenRepository);
|
|
104
110
|
} });
|
|
105
111
|
container.register(OAuth2InjectionToken.OpenIDTokenIssuer, { useFactory: (c) => {
|
|
106
112
|
return new OAuth2OpenIDTokenIssuer({
|