@authup/server-core 1.0.0-beta.63 → 1.0.0-beta.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/database/data-source/options/module.d.ts +1 -0
- package/dist/adapters/database/data-source/options/module.d.ts.map +1 -1
- package/dist/adapters/database/data-source/options/module.mjs +33 -4
- package/dist/adapters/database/data-source/options/module.mjs.map +1 -1
- package/dist/adapters/database/domains/client/entity.d.ts +1 -2
- package/dist/adapters/database/domains/client/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/client/entity.mjs +7 -14
- package/dist/adapters/database/domains/client/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts +2 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.d.ts.map +1 -1
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs +2 -2
- package/dist/adapters/database/domains/identity-provider-attribute/subscriber.mjs.map +1 -1
- package/dist/adapters/database/domains/session/entity.d.ts +8 -0
- package/dist/adapters/database/domains/session/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/session/entity.mjs +19 -0
- package/dist/adapters/database/domains/session/entity.mjs.map +1 -1
- package/dist/adapters/database/domains/user/entity.d.ts +1 -0
- package/dist/adapters/database/domains/user/entity.d.ts.map +1 -1
- package/dist/adapters/database/domains/user/entity.mjs +6 -0
- package/dist/adapters/database/domains/user/entity.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/repository.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs +4 -2
- package/dist/adapters/database/extra-attribute-repository/tree/adapter.mjs.map +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs +1 -1
- package/dist/adapters/database/extra-attribute-repository/tree/repository.mjs.map +1 -1
- package/dist/adapters/database/index.mjs +3 -3
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs +105 -0
- package/dist/adapters/database/migrations/mysql/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts +56 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.d.ts.map +1 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs +104 -0
- package/dist/adapters/database/migrations/postgres/1787571998009-SessionUserAndClientColumns.mjs.map +1 -0
- package/dist/adapters/database/subscriber/module.d.ts +6 -2
- package/dist/adapters/database/subscriber/module.d.ts.map +1 -1
- package/dist/adapters/database/subscriber/module.mjs +9 -5
- package/dist/adapters/database/subscriber/module.mjs.map +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs +1 -1
- package/dist/adapters/http/adapters/oauth2/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/constants.d.ts +18 -0
- package/dist/adapters/http/constants.d.ts.map +1 -0
- package/dist/adapters/http/constants.mjs +23 -0
- package/dist/adapters/http/constants.mjs.map +1 -0
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs +3 -3
- package/dist/adapters/http/controllers/entities/identity-provider/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts +6 -0
- package/dist/adapters/http/controllers/entities/identity-provider/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/realm/module.mjs +2 -0
- package/dist/adapters/http/controllers/entities/realm/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts +33 -1
- package/dist/adapters/http/controllers/entities/session/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/entities/session/module.mjs +74 -0
- package/dist/adapters/http/controllers/entities/session/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/index.mjs +3 -1
- package/dist/adapters/http/controllers/workflows/account/index.d.ts +1 -0
- package/dist/adapters/http/controllers/workflows/account/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.d.ts +25 -16
- package/dist/adapters/http/controllers/workflows/account/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/module.mjs +40 -17
- package/dist/adapters/http/controllers/workflows/account/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/account/types.d.ts +33 -0
- package/dist/adapters/http/controllers/workflows/account/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/activate/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/activate/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/activate/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/admin/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts +30 -0
- package/dist/adapters/http/controllers/workflows/admin/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs +88 -0
- package/dist/adapters/http/controllers/workflows/admin/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts +14 -0
- package/dist/adapters/http/controllers/workflows/admin/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts +16 -0
- package/dist/adapters/http/controllers/workflows/auth-console.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs +32 -0
- package/dist/adapters/http/controllers/workflows/auth-console.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts +16 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs +40 -22
- package/dist/adapters/http/controllers/workflows/authorize/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts +5 -0
- package/dist/adapters/http/controllers/workflows/authorize/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts +3 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/index.mjs +5 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts +83 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs +230 -0
- package/dist/adapters/http/controllers/workflows/console-login/module.mjs.map +1 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts +58 -0
- package/dist/adapters/http/controllers/workflows/console-login/types.d.ts.map +1 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts +2 -0
- package/dist/adapters/http/controllers/workflows/index.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/index.mjs +5 -1
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts +32 -3
- package/dist/adapters/http/controllers/workflows/logout/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/module.mjs +48 -24
- package/dist/adapters/http/controllers/workflows/logout/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts +1 -1
- package/dist/adapters/http/controllers/workflows/logout/types.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-forgot/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/password-forgot/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/password-reset/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs +7 -10
- package/dist/adapters/http/controllers/workflows/password-reset/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.d.ts +8 -4
- package/dist/adapters/http/controllers/workflows/register/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/register/module.mjs +7 -9
- package/dist/adapters/http/controllers/workflows/register/module.mjs.map +1 -1
- package/dist/adapters/http/controllers/workflows/status/module.mjs +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.d.ts +45 -2
- package/dist/adapters/http/controllers/workflows/token/module.d.ts.map +1 -1
- package/dist/adapters/http/controllers/workflows/token/module.mjs +102 -24
- package/dist/adapters/http/controllers/workflows/token/module.mjs.map +1 -1
- package/dist/adapters/http/cookie/index.d.ts +2 -0
- package/dist/adapters/http/cookie/index.d.ts.map +1 -0
- package/dist/adapters/http/cookie/index.mjs +5 -0
- package/dist/adapters/http/cookie/session.d.ts +35 -0
- package/dist/adapters/http/cookie/session.d.ts.map +1 -0
- package/dist/adapters/http/cookie/session.mjs +62 -0
- package/dist/adapters/http/cookie/session.mjs.map +1 -0
- package/dist/adapters/http/index.d.ts +2 -0
- package/dist/adapters/http/index.d.ts.map +1 -1
- package/dist/adapters/http/index.mjs +20 -16
- package/dist/adapters/http/internal-client/index.d.ts +3 -0
- package/dist/adapters/http/internal-client/index.d.ts.map +1 -0
- package/dist/adapters/http/internal-client/index.mjs +5 -0
- package/dist/adapters/http/internal-client/module.d.ts +21 -0
- package/dist/adapters/http/internal-client/module.d.ts.map +1 -0
- package/dist/adapters/http/{ui/auth-console/http-client.mjs → internal-client/module.mjs} +16 -15
- package/dist/adapters/http/internal-client/module.mjs.map +1 -0
- package/dist/adapters/http/internal-client/types.d.ts +13 -0
- package/dist/adapters/http/internal-client/types.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/index.mjs +2 -1
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts +45 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs +61 -0
- package/dist/adapters/http/middleware/built-in/authorization/issuance.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts +26 -2
- package/dist/adapters/http/middleware/built-in/authorization/module.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs +67 -1
- package/dist/adapters/http/middleware/built-in/authorization/module.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts +21 -1
- package/dist/adapters/http/middleware/built-in/authorization/types.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/basic.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/basic.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.d.ts +8 -2
- package/dist/adapters/http/middleware/built-in/cors.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/cors.mjs +20 -3
- package/dist/adapters/http/middleware/built-in/cors.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/error.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/error.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.d.ts +1 -4
- package/dist/adapters/http/middleware/built-in/index.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/index.mjs +3 -4
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts +17 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.d.ts.map +1 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs +27 -0
- package/dist/adapters/http/middleware/built-in/internal-http-client.mjs.map +1 -0
- package/dist/adapters/http/middleware/built-in/logger.mjs +1 -1
- package/dist/adapters/http/middleware/built-in/logger.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts +6 -5
- package/dist/adapters/http/middleware/built-in/prometheus.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/prometheus.mjs +3 -2
- package/dist/adapters/http/middleware/built-in/prometheus.mjs.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts +2 -2
- package/dist/adapters/http/middleware/built-in/rate-limit.d.ts.map +1 -1
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs +15 -0
- package/dist/adapters/http/middleware/built-in/rate-limit.mjs.map +1 -1
- package/dist/adapters/http/middleware/index.mjs +3 -4
- package/dist/adapters/http/request/constants.d.ts +1 -1
- package/dist/adapters/http/request/constants.d.ts.map +1 -1
- package/dist/adapters/http/request/constants.mjs +1 -5
- package/dist/adapters/http/request/constants.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts +1 -1
- package/dist/adapters/http/request/helpers/index.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/index.mjs +2 -2
- package/dist/adapters/http/request/helpers/locale.d.ts +2 -1
- package/dist/adapters/http/request/helpers/locale.d.ts.map +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs +1 -1
- package/dist/adapters/http/request/helpers/locale.mjs.map +1 -1
- package/dist/adapters/http/request/helpers/same-origin.d.ts +38 -0
- package/dist/adapters/http/request/helpers/same-origin.d.ts.map +1 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs +68 -0
- package/dist/adapters/http/request/helpers/same-origin.mjs.map +1 -0
- package/dist/adapters/http/request/index.mjs +2 -2
- package/dist/adapters/http/request/permission/module.mjs +1 -1
- package/dist/adapters/http/request/permission/module.mjs.map +1 -1
- package/dist/adapters/http/request/types.d.ts +1 -2
- package/dist/adapters/http/request/types.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.d.ts.map +1 -1
- package/dist/adapters/shared/ldap/module.mjs +4 -1
- package/dist/adapters/shared/ldap/module.mjs.map +1 -1
- package/dist/app/builder.d.ts +4 -4
- package/dist/app/builder.d.ts.map +1 -1
- package/dist/app/builder.mjs +7 -4
- package/dist/app/builder.mjs.map +1 -1
- package/dist/app/factory.d.ts +10 -0
- package/dist/app/factory.d.ts.map +1 -1
- package/dist/app/factory.mjs +26 -2
- package/dist/app/factory.mjs.map +1 -1
- package/dist/app/index.mjs +17 -19
- package/dist/app/modules/authentication/module.d.ts.map +1 -1
- package/dist/app/modules/authentication/module.mjs +15 -2
- package/dist/app/modules/authentication/module.mjs.map +1 -1
- package/dist/app/modules/authentication/repositories/session.d.ts +4 -1
- package/dist/app/modules/authentication/repositories/session.d.ts.map +1 -1
- package/dist/app/modules/authentication/repositories/session.mjs +20 -3
- package/dist/app/modules/authentication/repositories/session.mjs.map +1 -1
- package/dist/app/modules/components/index.d.ts +1 -0
- package/dist/app/modules/components/index.d.ts.map +1 -1
- package/dist/app/modules/components/module.d.ts +3 -1
- package/dist/app/modules/components/module.d.ts.map +1 -1
- package/dist/app/modules/components/module.mjs +26 -7
- package/dist/app/modules/components/module.mjs.map +1 -1
- package/dist/app/modules/components/types.d.ts +11 -0
- package/dist/app/modules/components/types.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.d.ts +10 -0
- package/dist/app/modules/config/app-origins.d.ts.map +1 -0
- package/dist/app/modules/config/app-origins.mjs +21 -0
- package/dist/app/modules/config/app-origins.mjs.map +1 -0
- package/dist/app/modules/config/constants.d.ts +23 -50
- package/dist/app/modules/config/constants.d.ts.map +1 -1
- package/dist/app/modules/config/constants.mjs +34 -51
- package/dist/app/modules/config/constants.mjs.map +1 -1
- package/dist/app/modules/config/index.d.ts +2 -3
- package/dist/app/modules/config/index.d.ts.map +1 -1
- package/dist/app/modules/config/index.mjs +4 -8
- package/dist/app/modules/config/module.d.ts +2 -2
- package/dist/app/modules/config/module.d.ts.map +1 -1
- package/dist/app/modules/config/module.mjs +1 -1
- package/dist/app/modules/config/module.mjs.map +1 -1
- package/dist/app/modules/config/read.d.ts +29 -0
- package/dist/app/modules/config/read.d.ts.map +1 -0
- package/dist/app/modules/config/read.mjs +65 -0
- package/dist/app/modules/config/read.mjs.map +1 -0
- package/dist/app/modules/config/types.d.ts +30 -405
- package/dist/app/modules/config/types.d.ts.map +1 -1
- package/dist/app/modules/config/validator.d.ts.map +1 -1
- package/dist/app/modules/config/validator.mjs +3 -87
- package/dist/app/modules/config/validator.mjs.map +1 -1
- package/dist/app/modules/database/index.d.ts +1 -0
- package/dist/app/modules/database/index.d.ts.map +1 -1
- package/dist/app/modules/database/index.mjs +2 -1
- package/dist/app/modules/database/migration.d.ts +33 -0
- package/dist/app/modules/database/migration.d.ts.map +1 -0
- package/dist/app/modules/database/migration.mjs +52 -0
- package/dist/app/modules/database/migration.mjs.map +1 -0
- package/dist/app/modules/database/module.d.ts.map +1 -1
- package/dist/app/modules/database/module.mjs +12 -6
- package/dist/app/modules/database/module.mjs.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts +6 -1
- package/dist/app/modules/database/repositories/client/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/client/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.d.ts +29 -2
- package/dist/app/modules/database/repositories/event/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/event/repository.mjs +42 -24
- package/dist/app/modules/database/repositories/event/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/helpers.d.ts +24 -1
- package/dist/app/modules/database/repositories/helpers.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/helpers.mjs +38 -1
- package/dist/app/modules/database/repositories/helpers.mjs.map +1 -1
- package/dist/app/modules/database/repositories/identity-provider/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs +4 -2
- package/dist/app/modules/database/repositories/identity-provider-account/repository.mjs.map +1 -1
- package/dist/app/modules/database/repositories/key/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/permission/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/policy/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/role/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/scope/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/trust-anchor/repository.mjs +1 -1
- package/dist/app/modules/database/repositories/user/repository.d.ts +7 -2
- package/dist/app/modules/database/repositories/user/repository.d.ts.map +1 -1
- package/dist/app/modules/database/repositories/user/repository.mjs +21 -4
- package/dist/app/modules/database/repositories/user/repository.mjs.map +1 -1
- package/dist/app/modules/http/constants.d.ts +3 -1
- package/dist/app/modules/http/constants.d.ts.map +1 -1
- package/dist/app/modules/http/constants.mjs +3 -2
- package/dist/app/modules/http/constants.mjs.map +1 -1
- package/dist/app/modules/http/module.d.ts +30 -9
- package/dist/app/modules/http/module.d.ts.map +1 -1
- package/dist/app/modules/http/module.mjs +31 -33
- package/dist/app/modules/http/module.mjs.map +1 -1
- package/dist/app/modules/http/modules/controller.d.ts +4 -3
- package/dist/app/modules/http/modules/controller.d.ts.map +1 -1
- package/dist/app/modules/http/modules/controller.mjs +65 -36
- package/dist/app/modules/http/modules/controller.mjs.map +1 -1
- package/dist/app/modules/http/modules/middleware.d.ts +13 -22
- package/dist/app/modules/http/modules/middleware.d.ts.map +1 -1
- package/dist/app/modules/http/modules/middleware.mjs +20 -36
- package/dist/app/modules/http/modules/middleware.mjs.map +1 -1
- package/dist/app/modules/identity/module.mjs +4 -4
- package/dist/app/modules/identity/repositories/client.mjs +4 -2
- package/dist/app/modules/identity/repositories/client.mjs.map +1 -1
- package/dist/app/modules/identity/repositories/user.mjs +4 -2
- package/dist/app/modules/identity/repositories/user.mjs.map +1 -1
- package/dist/app/modules/index.mjs +21 -23
- package/dist/app/modules/logger/module.mjs +1 -1
- package/dist/app/modules/logger/module.mjs.map +1 -1
- package/dist/app/modules/mail/module.d.ts.map +1 -1
- package/dist/app/modules/mail/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/constants.d.ts +2 -1
- package/dist/app/modules/oauth2/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/constants.mjs +1 -0
- package/dist/app/modules/oauth2/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/module.d.ts.map +1 -1
- package/dist/app/modules/oauth2/module.mjs +9 -4
- package/dist/app/modules/oauth2/module.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/client/repository.mjs +4 -2
- package/dist/app/modules/oauth2/repositories/client/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs +3 -2
- package/dist/app/modules/oauth2/repositories/consent/repository.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts +2 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/index.mjs +5 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts +19 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.d.ts.map +1 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs +47 -0
- package/dist/app/modules/oauth2/repositories/console-login/store.mjs.map +1 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/constants.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/constants.mjs +1 -0
- package/dist/app/modules/oauth2/repositories/constants.mjs.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.d.ts +1 -0
- package/dist/app/modules/oauth2/repositories/index.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/index.mjs +3 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts +2 -2
- package/dist/app/modules/oauth2/repositories/session-token/repository.d.ts.map +1 -1
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs +5 -3
- package/dist/app/modules/oauth2/repositories/session-token/repository.mjs.map +1 -1
- package/dist/app/modules/provisioning/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/module.mjs +5 -6
- package/dist/app/modules/provisioning/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/composite/module.mjs.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.d.ts.map +1 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs +2 -1
- package/dist/app/modules/provisioning/sources/default/module.mjs.map +1 -1
- package/dist/app/modules/runtime/module.d.ts.map +1 -1
- package/dist/app/modules/runtime/module.mjs +2 -1
- package/dist/app/modules/runtime/module.mjs.map +1 -1
- package/dist/app/types.d.ts +16 -0
- package/dist/app/types.d.ts.map +1 -1
- package/dist/cli/commands/config.d.ts +40 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.mjs +65 -0
- package/dist/cli/commands/config.mjs.map +1 -0
- package/dist/cli/commands/healthcheck.d.ts +3 -2
- package/dist/cli/commands/healthcheck.d.ts.map +1 -1
- package/dist/cli/commands/healthcheck.mjs +6 -3
- package/dist/cli/commands/healthcheck.mjs.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.mjs +3 -1
- package/dist/cli/commands/migration.d.ts +3 -10
- package/dist/cli/commands/migration.d.ts.map +1 -1
- package/dist/cli/commands/migration.mjs +17 -9
- package/dist/cli/commands/migration.mjs.map +1 -1
- package/dist/cli/commands/shutdown.d.ts +16 -0
- package/dist/cli/commands/shutdown.d.ts.map +1 -0
- package/dist/cli/commands/shutdown.mjs +41 -0
- package/dist/cli/commands/shutdown.mjs.map +1 -0
- package/dist/cli/commands/start.d.ts +3 -2
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.mjs +3 -21
- package/dist/cli/commands/start.mjs.map +1 -1
- package/dist/cli/commands/types.d.ts.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.mjs.map +1 -1
- package/dist/cli/module.d.ts +0 -2
- package/dist/cli/module.d.ts.map +1 -1
- package/dist/cli/module.mjs +4 -3
- package/dist/cli/module.mjs.map +1 -1
- package/dist/components/oauth2-cleaner/module.d.ts +2 -2
- package/dist/components/oauth2-cleaner/module.d.ts.map +1 -1
- package/dist/components/oauth2-cleaner/module.mjs +10 -7
- package/dist/components/oauth2-cleaner/module.mjs.map +1 -1
- package/dist/core/authentication/index.mjs +2 -1
- package/dist/core/authentication/session/constants.d.ts +10 -0
- package/dist/core/authentication/session/constants.d.ts.map +1 -0
- package/dist/core/authentication/session/constants.mjs +16 -0
- package/dist/core/authentication/session/constants.mjs.map +1 -0
- package/dist/core/authentication/session/index.d.ts +1 -0
- package/dist/core/authentication/session/index.d.ts.map +1 -1
- package/dist/core/authentication/session/index.mjs +2 -1
- package/dist/core/authentication/session/module.d.ts +2 -1
- package/dist/core/authentication/session/module.d.ts.map +1 -1
- package/dist/core/authentication/session/module.mjs +7 -1
- package/dist/core/authentication/session/module.mjs.map +1 -1
- package/dist/core/authentication/session/types.d.ts +70 -1
- package/dist/core/authentication/session/types.d.ts.map +1 -1
- package/dist/core/authentication/session/types.mjs.map +1 -1
- package/dist/core/entities/client/schema.d.ts.map +1 -1
- package/dist/core/entities/client/schema.mjs +1 -2
- package/dist/core/entities/client/schema.mjs.map +1 -1
- package/dist/core/entities/client/service.d.ts.map +1 -1
- package/dist/core/entities/client/service.mjs +15 -1
- package/dist/core/entities/client/service.mjs.map +1 -1
- package/dist/core/entities/client/system-clients.d.ts +0 -5
- package/dist/core/entities/client/system-clients.d.ts.map +1 -1
- package/dist/core/entities/client/system-clients.mjs +0 -6
- package/dist/core/entities/client/system-clients.mjs.map +1 -1
- package/dist/core/entities/client/types.d.ts +12 -0
- package/dist/core/entities/client/types.d.ts.map +1 -1
- package/dist/core/entities/client-permission/service.mjs +1 -1
- package/dist/core/entities/client-permission/service.mjs.map +1 -1
- package/dist/core/entities/event/constants.d.ts +1 -6
- package/dist/core/entities/event/constants.d.ts.map +1 -1
- package/dist/core/entities/event/constants.mjs +1 -5
- package/dist/core/entities/event/constants.mjs.map +1 -1
- package/dist/core/entities/event/entity-event-handler.d.ts.map +1 -1
- package/dist/core/entities/event/entity-event-handler.mjs +3 -2
- package/dist/core/entities/event/entity-event-handler.mjs.map +1 -1
- package/dist/core/entities/event/service.d.ts.map +1 -1
- package/dist/core/entities/event/service.mjs +3 -3
- package/dist/core/entities/event/service.mjs.map +1 -1
- package/dist/core/entities/event/types.d.ts +15 -1
- package/dist/core/entities/event/types.d.ts.map +1 -1
- package/dist/core/entities/permission/service.mjs +1 -2
- package/dist/core/entities/permission/service.mjs.map +1 -1
- package/dist/core/entities/role-permission/service.mjs +1 -1
- package/dist/core/entities/role-permission/service.mjs.map +1 -1
- package/dist/core/entities/session/service.d.ts +13 -1
- package/dist/core/entities/session/service.d.ts.map +1 -1
- package/dist/core/entities/session/service.mjs +19 -16
- package/dist/core/entities/session/service.mjs.map +1 -1
- package/dist/core/entities/user/schema.d.ts.map +1 -1
- package/dist/core/entities/user/schema.mjs +1 -0
- package/dist/core/entities/user/schema.mjs.map +1 -1
- package/dist/core/entities/user/service.d.ts.map +1 -1
- package/dist/core/entities/user/service.mjs +21 -1
- package/dist/core/entities/user/service.mjs.map +1 -1
- package/dist/core/entities/user/types.d.ts +12 -0
- package/dist/core/entities/user/types.d.ts.map +1 -1
- package/dist/core/entities/user-permission/service.mjs +1 -1
- package/dist/core/entities/user-permission/service.mjs.map +1 -1
- package/dist/core/identity/permission/junction-grant.mjs +1 -1
- package/dist/core/identity/permission/junction-grant.mjs.map +1 -1
- package/dist/core/identity/provider/account/module.mjs +1 -1
- package/dist/core/identity/provider/account/module.mjs.map +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs +1 -1
- package/dist/core/identity/provider/authentication/protocols/oauth2/assurance.mjs.map +1 -1
- package/dist/core/identity/registration/service.d.ts.map +1 -1
- package/dist/core/identity/registration/service.mjs +2 -1
- package/dist/core/identity/registration/service.mjs.map +1 -1
- package/dist/core/index.mjs +11 -3
- package/dist/core/oauth2/authorization/helpers.d.ts +14 -0
- package/dist/core/oauth2/authorization/helpers.d.ts.map +1 -1
- package/dist/core/oauth2/authorization/helpers.mjs +9 -1
- package/dist/core/oauth2/authorization/helpers.mjs.map +1 -1
- package/dist/core/oauth2/authorization/index.mjs +2 -2
- package/dist/core/oauth2/authorization/module.mjs +1 -1
- package/dist/core/oauth2/authorization/module.mjs.map +1 -1
- package/dist/core/oauth2/backchannel-logout/constants.d.ts +16 -0
- package/dist/core/oauth2/backchannel-logout/constants.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs +20 -0
- package/dist/core/oauth2/backchannel-logout/constants.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts +4 -0
- package/dist/core/oauth2/backchannel-logout/index.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/index.mjs +6 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts +26 -0
- package/dist/core/oauth2/backchannel-logout/module.d.ts.map +1 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs +78 -0
- package/dist/core/oauth2/backchannel-logout/module.mjs.map +1 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts +29 -0
- package/dist/core/oauth2/backchannel-logout/types.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.d.ts +19 -0
- package/dist/core/oauth2/console-login/constants.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/constants.mjs +24 -0
- package/dist/core/oauth2/console-login/constants.mjs.map +1 -0
- package/dist/core/oauth2/console-login/index.d.ts +3 -0
- package/dist/core/oauth2/console-login/index.d.ts.map +1 -0
- package/dist/core/oauth2/console-login/index.mjs +5 -0
- package/dist/core/oauth2/console-login/types.d.ts +53 -0
- package/dist/core/oauth2/console-login/types.d.ts.map +1 -0
- package/dist/core/oauth2/end-session/service.mjs +1 -1
- package/dist/core/oauth2/end-session/service.mjs.map +1 -1
- package/dist/core/oauth2/federated-login/module.mjs +3 -3
- package/dist/core/oauth2/federated-login/module.mjs.map +1 -1
- package/dist/core/oauth2/index.d.ts +4 -0
- package/dist/core/oauth2/index.d.ts.map +1 -1
- package/dist/core/oauth2/index.mjs +13 -3
- package/dist/core/oauth2/introspection/index.d.ts +3 -0
- package/dist/core/oauth2/introspection/index.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/index.mjs +5 -0
- package/dist/core/oauth2/introspection/module.d.ts +14 -0
- package/dist/core/oauth2/introspection/module.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/module.mjs +49 -0
- package/dist/core/oauth2/introspection/module.mjs.map +1 -0
- package/dist/core/oauth2/introspection/types.d.ts +45 -0
- package/dist/core/oauth2/introspection/types.d.ts.map +1 -0
- package/dist/core/oauth2/introspection/types.mjs +4 -0
- package/dist/core/oauth2/openid/claims.d.ts +20 -2
- package/dist/core/oauth2/openid/claims.d.ts.map +1 -1
- package/dist/core/oauth2/openid/claims.mjs +18 -4
- package/dist/core/oauth2/openid/claims.mjs.map +1 -1
- package/dist/core/oauth2/session-credential/constants.d.ts +30 -0
- package/dist/core/oauth2/session-credential/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/constants.mjs +34 -0
- package/dist/core/oauth2/session-credential/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-credential/index.d.ts +3 -0
- package/dist/core/oauth2/session-credential/index.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/index.mjs +6 -0
- package/dist/core/oauth2/session-credential/module.d.ts +31 -0
- package/dist/core/oauth2/session-credential/module.d.ts.map +1 -0
- package/dist/core/oauth2/session-credential/module.mjs +43 -0
- package/dist/core/oauth2/session-credential/module.mjs.map +1 -0
- package/dist/core/oauth2/session-token/constants.d.ts +10 -0
- package/dist/core/oauth2/session-token/constants.d.ts.map +1 -0
- package/dist/core/oauth2/session-token/constants.mjs +16 -0
- package/dist/core/oauth2/session-token/constants.mjs.map +1 -0
- package/dist/core/oauth2/session-token/index.d.ts +1 -0
- package/dist/core/oauth2/session-token/index.d.ts.map +1 -1
- package/dist/core/oauth2/session-token/index.mjs +2 -1
- package/dist/core/oauth2/session-token/types.d.ts +13 -2
- package/dist/core/oauth2/session-token/types.d.ts.map +1 -1
- package/dist/core/provisioning/merge/module.mjs +5 -3
- package/dist/core/provisioning/merge/module.mjs.map +1 -1
- package/dist/core/query/module.mjs +1 -1
- package/dist/core/query/module.mjs.map +1 -1
- package/dist/core/security/policy/evaluator.mjs +1 -1
- package/dist/core/security/policy/evaluator.mjs.map +1 -1
- package/dist/index.mjs +62 -59
- package/dist/path.mjs +1 -1
- package/dist/swagger.json +466 -104
- package/dist/utils/error.d.ts +6 -0
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.mjs +6 -2
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/index.mjs +2 -2
- package/package.json +31 -25
- package/dist/adapters/http/middleware/built-in/assets.d.ts +0 -11
- package/dist/adapters/http/middleware/built-in/assets.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/assets.mjs +0 -91
- package/dist/adapters/http/middleware/built-in/assets.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/theme.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/theme.mjs +0 -27
- package/dist/adapters/http/middleware/built-in/theme.mjs.map +0 -1
- package/dist/adapters/http/middleware/built-in/types.d.ts +0 -14
- package/dist/adapters/http/middleware/built-in/types.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts +0 -15
- package/dist/adapters/http/middleware/built-in/ui-http-client.d.ts.map +0 -1
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs +0 -25
- package/dist/adapters/http/middleware/built-in/ui-http-client.mjs.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.d.ts +0 -14
- package/dist/adapters/http/request/helpers/redirect.d.ts.map +0 -1
- package/dist/adapters/http/request/helpers/redirect.mjs +0 -36
- package/dist/adapters/http/request/helpers/redirect.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/index.d.ts +0 -4
- package/dist/adapters/http/ui/account-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/index.mjs +0 -6
- package/dist/adapters/http/ui/account-console/module.d.ts +0 -28
- package/dist/adapters/http/ui/account-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/module.mjs +0 -80
- package/dist/adapters/http/ui/account-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.d.ts +0 -30
- package/dist/adapters/http/ui/account-console/ref.d.ts.map +0 -1
- package/dist/adapters/http/ui/account-console/ref.mjs +0 -50
- package/dist/adapters/http/ui/account-console/ref.mjs.map +0 -1
- package/dist/adapters/http/ui/account-console/types.d.ts +0 -11
- package/dist/adapters/http/ui/account-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.d.ts +0 -22
- package/dist/adapters/http/ui/auth-console/http-client.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/http-client.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.d.ts +0 -6
- package/dist/adapters/http/ui/auth-console/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/index.mjs +0 -8
- package/dist/adapters/http/ui/auth-console/module.d.ts +0 -4
- package/dist/adapters/http/ui/auth-console/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/module.mjs +0 -73
- package/dist/adapters/http/ui/auth-console/module.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.d.ts +0 -21
- package/dist/adapters/http/ui/auth-console/resolve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/resolve.mjs +0 -53
- package/dist/adapters/http/ui/auth-console/resolve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.d.ts +0 -9
- package/dist/adapters/http/ui/auth-console/serve.d.ts.map +0 -1
- package/dist/adapters/http/ui/auth-console/serve.mjs +0 -35
- package/dist/adapters/http/ui/auth-console/serve.mjs.map +0 -1
- package/dist/adapters/http/ui/auth-console/types.d.ts +0 -26
- package/dist/adapters/http/ui/auth-console/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/index.mjs +0 -5
- package/dist/adapters/http/ui/console-packages/module.d.ts +0 -33
- package/dist/adapters/http/ui/console-packages/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/console-packages/module.mjs +0 -70
- package/dist/adapters/http/ui/console-packages/module.mjs.map +0 -1
- package/dist/adapters/http/ui/console-packages/types.d.ts +0 -12
- package/dist/adapters/http/ui/console-packages/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.d.ts +0 -6
- package/dist/adapters/http/ui/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/index.mjs +0 -25
- package/dist/adapters/http/ui/shared/html.d.ts +0 -76
- package/dist/adapters/http/ui/shared/html.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/html.mjs +0 -104
- package/dist/adapters/http/ui/shared/html.mjs.map +0 -1
- package/dist/adapters/http/ui/shared/index.d.ts +0 -2
- package/dist/adapters/http/ui/shared/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/shared/index.mjs +0 -5
- package/dist/adapters/http/ui/theme/apply.d.ts +0 -12
- package/dist/adapters/http/ui/theme/apply.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/apply.mjs +0 -29
- package/dist/adapters/http/ui/theme/apply.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/assets.d.ts +0 -20
- package/dist/adapters/http/ui/theme/assets.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/assets.mjs +0 -86
- package/dist/adapters/http/ui/theme/assets.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/constants.d.ts +0 -16
- package/dist/adapters/http/ui/theme/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/constants.mjs +0 -20
- package/dist/adapters/http/ui/theme/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.d.ts +0 -120
- package/dist/adapters/http/ui/theme/contract/constants.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/constants.mjs +0 -136
- package/dist/adapters/http/ui/theme/contract/constants.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.d.ts +0 -12
- package/dist/adapters/http/ui/theme/contract/head.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/head.mjs +0 -61
- package/dist/adapters/http/ui/theme/contract/head.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.d.ts +0 -6
- package/dist/adapters/http/ui/theme/contract/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/index.mjs +0 -8
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts +0 -25
- package/dist/adapters/http/ui/theme/contract/manifest.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/manifest.mjs +0 -77
- package/dist/adapters/http/ui/theme/contract/manifest.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/contract/types.d.ts +0 -26
- package/dist/adapters/http/ui/theme/contract/types.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.d.ts +0 -11
- package/dist/adapters/http/ui/theme/contract/utils.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/contract/utils.mjs +0 -22
- package/dist/adapters/http/ui/theme/contract/utils.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/index.d.ts +0 -7
- package/dist/adapters/http/ui/theme/index.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/index.mjs +0 -13
- package/dist/adapters/http/ui/theme/module.d.ts +0 -79
- package/dist/adapters/http/ui/theme/module.d.ts.map +0 -1
- package/dist/adapters/http/ui/theme/module.mjs +0 -206
- package/dist/adapters/http/ui/theme/module.mjs.map +0 -1
- package/dist/adapters/http/ui/theme/types.d.ts +0 -42
- package/dist/adapters/http/ui/theme/types.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.d.ts +0 -9
- package/dist/app/modules/config/helpers.d.ts.map +0 -1
- package/dist/app/modules/config/helpers.mjs +0 -22
- package/dist/app/modules/config/helpers.mjs.map +0 -1
- package/dist/app/modules/config/normalize.d.ts +0 -3
- package/dist/app/modules/config/normalize.d.ts.map +0 -1
- package/dist/app/modules/config/normalize.mjs +0 -117
- package/dist/app/modules/config/normalize.mjs.map +0 -1
- package/dist/app/modules/config/origins.d.ts +0 -25
- package/dist/app/modules/config/origins.d.ts.map +0 -1
- package/dist/app/modules/config/origins.mjs +0 -46
- package/dist/app/modules/config/origins.mjs.map +0 -1
- package/dist/app/modules/config/read/env.d.ts +0 -3
- package/dist/app/modules/config/read/env.d.ts.map +0 -1
- package/dist/app/modules/config/read/env.mjs +0 -139
- package/dist/app/modules/config/read/env.mjs.map +0 -1
- package/dist/app/modules/config/read/fs.d.ts +0 -3
- package/dist/app/modules/config/read/fs.d.ts.map +0 -1
- package/dist/app/modules/config/read/fs.mjs +0 -60
- package/dist/app/modules/config/read/fs.mjs.map +0 -1
- package/dist/app/modules/config/read/index.d.ts +0 -5
- package/dist/app/modules/config/read/index.d.ts.map +0 -1
- package/dist/app/modules/config/read/index.mjs +0 -7
- package/dist/app/modules/config/read/module.d.ts +0 -4
- package/dist/app/modules/config/read/module.d.ts.map +0 -1
- package/dist/app/modules/config/read/module.mjs +0 -29
- package/dist/app/modules/config/read/module.mjs.map +0 -1
- package/dist/app/modules/config/read/types.d.ts +0 -9
- package/dist/app/modules/config/read/types.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.d.ts +0 -28
- package/dist/app/modules/config/trust-proxy.d.ts.map +0 -1
- package/dist/app/modules/config/trust-proxy.mjs +0 -64
- package/dist/app/modules/config/trust-proxy.mjs.map +0 -1
- package/dist/cli/config.d.ts +0 -18
- package/dist/cli/config.d.ts.map +0 -1
- package/dist/cli/config.mjs +0 -34
- package/dist/cli/config.mjs.map +0 -1
- package/dist/cli/types.d.ts.map +0 -1
- package/dist/utils/host.d.ts +0 -2
- package/dist/utils/host.d.ts.map +0 -1
- package/dist/utils/host.mjs +0 -12
- package/dist/utils/host.mjs.map +0 -1
- /package/dist/adapters/http/{middleware/built-in → controllers/workflows/account}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → controllers/workflows/admin}/index.d.ts +0 -0
- /package/dist/adapters/http/{ui/account-console → controllers/workflows/admin}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/auth-console → controllers/workflows/console-login}/types.mjs +0 -0
- /package/dist/adapters/http/{ui/console-packages → internal-client}/types.mjs +0 -0
- /package/dist/{adapters/http/ui/theme/contract → app/modules/components}/types.mjs +0 -0
- /package/dist/cli/{types.d.ts → commands/types.d.ts} +0 -0
- /package/dist/{adapters/http/ui/theme → cli/commands}/types.mjs +0 -0
- /package/dist/{app/modules/config/read → core/oauth2/backchannel-logout}/types.mjs +0 -0
- /package/dist/{cli → core/oauth2/console-login}/types.mjs +0 -0
package/dist/app/builder.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.mjs","names":["Application","AuthenticationModule","CacheModule","ComponentsModule","ConfigModule","DatabaseModule","HTTPModule","IdentityModule","LdapModule","LoggerModule","MailModule","ModuleName","OAuth2Module","ProvisionerModule","RuntimeModule","defaultFactories","CONFIG","LOGGER","CACHE","MAIL","RUNTIME","DATABASE","PROVISIONING","LDAP","AUTHENTICATION","IDENTITY","OAUTH2","COMPONENTS","HTTP","ApplicationBuilder","slots","Map","withConfig","instance","set","withLogger","withCache","withMail","withRuntime","withDatabase","withProvisioning","withLdap","withAuthentication","withIdentity","withOAuth2","withComponents","withHTTP","buildModules","modules","forEach","slot","name","push","factory","build","undefined"],"sources":["../../src/app/builder.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
|
|
1
|
+
{"version":3,"file":"builder.mjs","names":["Application","AuthenticationModule","CacheModule","ComponentsModule","ConfigModule","DatabaseModule","HTTPModule","IdentityModule","LdapModule","LoggerModule","MailModule","ModuleName","OAuth2Module","ProvisionerModule","RuntimeModule","defaultFactories","CONFIG","LOGGER","CACHE","MAIL","RUNTIME","DATABASE","PROVISIONING","LDAP","AUTHENTICATION","IDENTITY","OAUTH2","COMPONENTS","HTTP","ApplicationBuilder","slots","Map","withConfig","instance","set","withLogger","withCache","withMail","withRuntime","withDatabase","withProvisioning","withLdap","withAuthentication","withIdentity","withOAuth2","withComponents","withHTTP","buildModules","modules","forEach","slot","name","push","factory","build","ctx","undefined"],"sources":["../../src/app/builder.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 { ApplicationContext, IApplication, IModule } from 'orkos';\nimport { Application } from 'orkos';\nimport {\n AuthenticationModule,\n CacheModule,\n ComponentsModule,\n ConfigModule,\n DatabaseModule,\n HTTPModule,\n IdentityModule,\n LdapModule,\n LoggerModule,\n MailModule,\n ModuleName,\n OAuth2Module,\n ProvisionerModule,\n RuntimeModule,\n} from './modules/index.ts';\n\ntype ModuleSlot = IModule | false | undefined;\n\ntype ModuleFactory = () => IModule;\n\nconst defaultFactories: Record<string, ModuleFactory> = {\n [ModuleName.CONFIG]: () => new ConfigModule(),\n [ModuleName.LOGGER]: () => new LoggerModule(),\n [ModuleName.CACHE]: () => new CacheModule(),\n [ModuleName.MAIL]: () => new MailModule(),\n [ModuleName.RUNTIME]: () => new RuntimeModule(),\n [ModuleName.DATABASE]: () => new DatabaseModule(),\n [ModuleName.PROVISIONING]: () => new ProvisionerModule(),\n [ModuleName.LDAP]: () => new LdapModule(),\n [ModuleName.AUTHENTICATION]: () => new AuthenticationModule(),\n [ModuleName.IDENTITY]: () => new IdentityModule(),\n [ModuleName.OAUTH2]: () => new OAuth2Module(),\n [ModuleName.COMPONENTS]: () => new ComponentsModule(),\n [ModuleName.HTTP]: () => new HTTPModule(),\n};\n\nexport class ApplicationBuilder {\n protected slots: Map<string, ModuleSlot>;\n\n constructor() {\n this.slots = new Map();\n }\n\n // ----------------------------------------------------\n\n withConfig(instance?: ConfigModule | false): this {\n return this.set(ModuleName.CONFIG, instance);\n }\n\n withLogger(instance?: LoggerModule | false): this {\n return this.set(ModuleName.LOGGER, instance);\n }\n\n withCache(instance?: CacheModule | false): this {\n return this.set(ModuleName.CACHE, instance);\n }\n\n withMail(instance?: MailModule | false): this {\n return this.set(ModuleName.MAIL, instance);\n }\n\n withRuntime(instance?: RuntimeModule | false): this {\n return this.set(ModuleName.RUNTIME, instance);\n }\n\n withDatabase(instance?: DatabaseModule | false): this {\n return this.set(ModuleName.DATABASE, instance);\n }\n\n withProvisioning(instance?: ProvisionerModule | false): this {\n return this.set(ModuleName.PROVISIONING, instance);\n }\n\n withLdap(instance?: LdapModule | false): this {\n return this.set(ModuleName.LDAP, instance);\n }\n\n withAuthentication(instance?: AuthenticationModule | false): this {\n return this.set(ModuleName.AUTHENTICATION, instance);\n }\n\n withIdentity(instance?: IdentityModule | false): this {\n return this.set(ModuleName.IDENTITY, instance);\n }\n\n withOAuth2(instance?: OAuth2Module | false): this {\n return this.set(ModuleName.OAUTH2, instance);\n }\n\n withComponents(instance?: ComponentsModule | false): this {\n return this.set(ModuleName.COMPONENTS, instance);\n }\n\n withHTTP(instance?: IModule | false): this {\n return this.set(ModuleName.HTTP, instance);\n }\n\n // ----------------------------------------------------\n\n buildModules(): IModule[] {\n const modules: IModule[] = [];\n\n this.slots.forEach((slot, name) => {\n if (slot === false) {\n return;\n }\n\n if (slot) {\n modules.push(slot);\n return;\n }\n\n const factory = defaultFactories[name];\n if (factory) {\n modules.push(factory());\n }\n });\n\n return modules;\n }\n\n build(ctx: ApplicationContext = {}): IApplication {\n return new Application({ modules: this.buildModules(), ...ctx });\n }\n\n // ----------------------------------------------------\n\n protected set(name: string, instance?: IModule | false): this {\n if (instance === false) {\n this.slots.set(name, false);\n } else if (instance) {\n this.slots.set(name, instance);\n } else {\n this.slots.set(name, undefined);\n }\n\n return this;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8BA,MAAMe,mBAAkD;EACnDJ,WAAWK,eAAe,IAAIZ,aAAAA;EAC9BO,WAAWM,eAAe,IAAIR,aAAAA;EAC9BE,WAAWO,cAAc,IAAIhB,YAAAA;EAC7BS,WAAWQ,aAAa,IAAIT,WAAAA;EAC5BC,WAAWS,gBAAgB,IAAIN,cAAAA;EAC/BH,WAAWU,iBAAiB,IAAIhB,eAAAA;EAChCM,WAAWW,qBAAqB,IAAIT,kBAAAA;EACpCF,WAAWY,aAAa,IAAIf,WAAAA;EAC5BG,WAAWa,uBAAuB,IAAIvB,qBAAAA;EACtCU,WAAWc,iBAAiB,IAAIlB,eAAAA;EAChCI,WAAWe,eAAe,IAAId,aAAAA;EAC9BD,WAAWgB,mBAAmB,IAAIxB,iBAAAA;EAClCQ,WAAWiB,aAAa,IAAItB,WAAAA;AACjC;AAEA,IAAauB,qBAAb,MAAaA;CACCC;CAEV,cAAc;EACV,KAAKA,wBAAQ,IAAIC,IAAAA;CACrB;CAIAC,WAAWC,UAAuC;EAC9C,OAAO,KAAKC,IAAIvB,WAAWK,QAAQiB,QAAAA;CACvC;CAEAE,WAAWF,UAAuC;EAC9C,OAAO,KAAKC,IAAIvB,WAAWM,QAAQgB,QAAAA;CACvC;CAEAG,UAAUH,UAAsC;EAC5C,OAAO,KAAKC,IAAIvB,WAAWO,OAAOe,QAAAA;CACtC;CAEAI,SAASJ,UAAqC;EAC1C,OAAO,KAAKC,IAAIvB,WAAWQ,MAAMc,QAAAA;CACrC;CAEAK,YAAYL,UAAwC;EAChD,OAAO,KAAKC,IAAIvB,WAAWS,SAASa,QAAAA;CACxC;CAEAM,aAAaN,UAAyC;EAClD,OAAO,KAAKC,IAAIvB,WAAWU,UAAUY,QAAAA;CACzC;CAEAO,iBAAiBP,UAA4C;EACzD,OAAO,KAAKC,IAAIvB,WAAWW,cAAcW,QAAAA;CAC7C;CAEAQ,SAASR,UAAqC;EAC1C,OAAO,KAAKC,IAAIvB,WAAWY,MAAMU,QAAAA;CACrC;CAEAS,mBAAmBT,UAA+C;EAC9D,OAAO,KAAKC,IAAIvB,WAAWa,gBAAgBS,QAAAA;CAC/C;CAEAU,aAAaV,UAAyC;EAClD,OAAO,KAAKC,IAAIvB,WAAWc,UAAUQ,QAAAA;CACzC;CAEAW,WAAWX,UAAuC;EAC9C,OAAO,KAAKC,IAAIvB,WAAWe,QAAQO,QAAAA;CACvC;CAEAY,eAAeZ,UAA2C;EACtD,OAAO,KAAKC,IAAIvB,WAAWgB,YAAYM,QAAAA;CAC3C;CAEAa,SAASb,UAAkC;EACvC,OAAO,KAAKC,IAAIvB,WAAWiB,MAAMK,QAAAA;CACrC;CAIAc,eAA0B;EACtB,MAAMC,UAAqB,CAAA;EAE3B,KAAKlB,MAAMmB,SAASC,MAAMC,SAAAA;GACtB,IAAID,SAAS,OACT;GAGJ,IAAIA,MAAM;IACNF,QAAQI,KAAKF,IAAAA;IACb;GACJ;GAEA,MAAMG,UAAUtC,iBAAiBoC;GACjC,IAAIE,SACAL,QAAQI,KAAKC,QAAAA,CAAAA;EAErB,CAAA;EAEA,OAAOL;CACX;CAEAM,MAAMC,MAA0B,CAAC,GAAiB;EAC9C,OAAO,IAAIvD,YAAY;GAAEgD,SAAS,KAAKD,aAAY;GAAI,GAAGQ;EAAI,CAAA;CAClE;CAIUrB,IAAIiB,MAAclB,UAAkC;EAC1D,IAAIA,aAAa,OACb,KAAKH,MAAMI,IAAIiB,MAAM,KAAA;OAClB,IAAIlB,UACP,KAAKH,MAAMI,IAAIiB,MAAMlB,QAAAA;OAErB,KAAKH,MAAMI,IAAIiB,MAAMK,KAAAA,CAAAA;EAGzB,OAAO;CACX;AACJ"}
|
package/dist/app/factory.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import type { CreateApplicationContext } from './types.ts';
|
|
2
2
|
export declare function createApplication(context?: CreateApplicationContext): import("orkos").IApplication;
|
|
3
|
+
/**
|
|
4
|
+
* Worker mode: the background components and the modules they stand on,
|
|
5
|
+
* and nothing else. No http, oauth2, identity, authentication, ldap, mail or
|
|
6
|
+
* provisioning module, so the process serves no request and writes no
|
|
7
|
+
* provisioning graph.
|
|
8
|
+
*
|
|
9
|
+
* `core.worker.enabled` is REQUIRED here: a process started for nothing but
|
|
10
|
+
* the sweeps refuses to boot with them off, rather than coming up idle.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createWorkerApplication(context?: CreateApplicationContext): import("orkos").IApplication;
|
|
3
13
|
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/app/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/app/factory.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE3D,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,gCAkBvE;AAYD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,gCAQ7E"}
|
package/dist/app/factory.mjs
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { LoggerInjectionKey } from "./modules/logger/constants.mjs";
|
|
5
|
+
import { verifySchemaOrSynchronize } from "./modules/database/migration.mjs";
|
|
6
|
+
import { DatabaseModule } from "./modules/database/module.mjs";
|
|
7
|
+
import { ComponentsModule } from "./modules/components/module.mjs";
|
|
8
|
+
import { HTTPModule } from "./modules/http/module.mjs";
|
|
4
9
|
import { DefaultProvisioningSource } from "./modules/provisioning/sources/default/module.mjs";
|
|
5
10
|
import { ProvisionerModule } from "./modules/provisioning/module.mjs";
|
|
6
11
|
import "./modules/index.mjs";
|
|
7
12
|
import { ApplicationBuilder } from "./builder.mjs";
|
|
8
13
|
//#region src/app/factory.ts
|
|
9
14
|
function createApplication(context = {}) {
|
|
10
|
-
return new ApplicationBuilder().withConfig(context.config).withLogger().withCache().withMail().withRuntime().withDatabase().withProvisioning(new ProvisionerModule([new DefaultProvisioningSource()])).withLdap().withAuthentication().withIdentity().withOAuth2().withComponents().withHTTP().build();
|
|
15
|
+
return new ApplicationBuilder().withConfig(context.config).withLogger().withCache().withMail().withRuntime().withDatabase().withProvisioning(new ProvisionerModule([new DefaultProvisioningSource()])).withLdap().withAuthentication().withIdentity().withOAuth2().withComponents().withHTTP(context.http || new HTTPModule()).build({ container: context.container });
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* The worker never applies migrations, whatever `migrationEnabled` says: a
|
|
19
|
+
* deployment lets one process own that DDL, and it is not this one. It does
|
|
20
|
+
* still create a schema nobody migrates, which is the sqlite shape the shared
|
|
21
|
+
* helper falls through to.
|
|
22
|
+
*/ async function migrateWorkerSchema(container, dataSource) {
|
|
23
|
+
await verifySchemaOrSynchronize(container.resolve(LoggerInjectionKey), dataSource);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Worker mode: the background components and the modules they stand on,
|
|
27
|
+
* and nothing else. No http, oauth2, identity, authentication, ldap, mail or
|
|
28
|
+
* provisioning module, so the process serves no request and writes no
|
|
29
|
+
* provisioning graph.
|
|
30
|
+
*
|
|
31
|
+
* `core.worker.enabled` is REQUIRED here: a process started for nothing but
|
|
32
|
+
* the sweeps refuses to boot with them off, rather than coming up idle.
|
|
33
|
+
*/ function createWorkerApplication(context = {}) {
|
|
34
|
+
return new ApplicationBuilder().withConfig(context.config).withLogger().withCache().withDatabase(new DatabaseModule({ migrate: migrateWorkerSchema })).withComponents(new ComponentsModule({ required: true })).build({ container: context.container });
|
|
11
35
|
}
|
|
12
36
|
//#endregion
|
|
13
|
-
export { createApplication };
|
|
37
|
+
export { createApplication, createWorkerApplication };
|
|
14
38
|
|
|
15
39
|
//# sourceMappingURL=factory.mjs.map
|
package/dist/app/factory.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.mjs","names":["ApplicationBuilder","DefaultProvisioningSource","ProvisionerModule","createApplication","context","withConfig","config","withLogger","withCache","withMail","withRuntime","withDatabase","withProvisioning","withLdap","withAuthentication","withIdentity","withOAuth2","withComponents","withHTTP","build"],"sources":["../../src/app/factory.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 { ApplicationBuilder } from './builder.ts';\nimport {\n DefaultProvisioningSource,\n ProvisionerModule,\n} from './modules/index.ts';\nimport type { CreateApplicationContext } from './types.ts';\n\nexport function createApplication(context: CreateApplicationContext = {}) {\n return new ApplicationBuilder()\n .withConfig(context.config)\n .withLogger()\n .withCache()\n .withMail()\n .withRuntime()\n .withDatabase()\n .withProvisioning(new ProvisionerModule([\n new DefaultProvisioningSource(),\n ]))\n .withLdap()\n .withAuthentication()\n .withIdentity()\n .withOAuth2()\n .withComponents()\n .withHTTP()\n .build();\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.mjs","names":["ApplicationBuilder","ComponentsModule","DatabaseModule","DefaultProvisioningSource","HTTPModule","LoggerInjectionKey","ProvisionerModule","verifySchemaOrSynchronize","createApplication","context","withConfig","config","withLogger","withCache","withMail","withRuntime","withDatabase","withProvisioning","withLdap","withAuthentication","withIdentity","withOAuth2","withComponents","withHTTP","http","build","container","migrateWorkerSchema","dataSource","resolve","createWorkerApplication","migrate","required"],"sources":["../../src/app/factory.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 { IContainer } from 'eldin';\nimport type { DataSource } from 'typeorm';\nimport { ApplicationBuilder } from './builder.ts';\nimport {\n ComponentsModule,\n DatabaseModule,\n DefaultProvisioningSource,\n HTTPModule,\n LoggerInjectionKey,\n ProvisionerModule,\n verifySchemaOrSynchronize,\n} from './modules/index.ts';\nimport type { CreateApplicationContext } from './types.ts';\n\nexport function createApplication(context: CreateApplicationContext = {}) {\n return new ApplicationBuilder()\n .withConfig(context.config)\n .withLogger()\n .withCache()\n .withMail()\n .withRuntime()\n .withDatabase()\n .withProvisioning(new ProvisionerModule([\n new DefaultProvisioningSource(),\n ]))\n .withLdap()\n .withAuthentication()\n .withIdentity()\n .withOAuth2()\n .withComponents()\n .withHTTP(context.http || new HTTPModule())\n .build({ container: context.container });\n}\n\n/**\n * The worker never applies migrations, whatever `migrationEnabled` says: a\n * deployment lets one process own that DDL, and it is not this one. It does\n * still create a schema nobody migrates, which is the sqlite shape the shared\n * helper falls through to.\n */\nasync function migrateWorkerSchema(container: IContainer, dataSource: DataSource): Promise<void> {\n await verifySchemaOrSynchronize(container.resolve(LoggerInjectionKey), dataSource);\n}\n\n/**\n * Worker mode: the background components and the modules they stand on,\n * and nothing else. No http, oauth2, identity, authentication, ldap, mail or\n * provisioning module, so the process serves no request and writes no\n * provisioning graph.\n *\n * `core.worker.enabled` is REQUIRED here: a process started for nothing but\n * the sweeps refuses to boot with them off, rather than coming up idle.\n */\nexport function createWorkerApplication(context: CreateApplicationContext = {}) {\n return new ApplicationBuilder()\n .withConfig(context.config)\n .withLogger()\n .withCache()\n .withDatabase(new DatabaseModule({ migrate: migrateWorkerSchema }))\n .withComponents(new ComponentsModule({ required: true }))\n .build({ container: context.container });\n}\n"],"mappings":";;;;;;;;;;;;;AAqBA,SAAgBQ,kBAAkBC,UAAoC,CAAC,GAAC;CACpE,OAAO,IAAIT,mBAAAA,CAAAA,CACNU,WAAWD,QAAQE,MAAM,CAAA,CACzBC,WAAU,CAAA,CACVC,UAAS,CAAA,CACTC,SAAQ,CAAA,CACRC,YAAW,CAAA,CACXC,aAAY,CAAA,CACZC,iBAAiB,IAAIX,kBAAkB,CACpC,IAAIH,0BAAAA,CACP,CAAA,CAAA,CAAA,CACAe,SAAQ,CAAA,CACRC,mBAAkB,CAAA,CAClBC,aAAY,CAAA,CACZC,WAAU,CAAA,CACVC,eAAc,CAAA,CACdC,SAASd,QAAQe,QAAQ,IAAIpB,WAAAA,CAAAA,CAAAA,CAC7BqB,MAAM,EAAEC,WAAWjB,QAAQiB,UAAU,CAAA;AAC9C;;;;;;GAQA,eAAeC,oBAAoBD,WAAuBE,YAAsB;CAC5E,MAAMrB,0BAA0BmB,UAAUG,QAAQxB,kBAAAA,GAAqBuB,UAAAA;AAC3E;;;;;;;;;GAWA,SAAgBE,wBAAwBrB,UAAoC,CAAC,GAAC;CAC1E,OAAO,IAAIT,mBAAAA,CAAAA,CACNU,WAAWD,QAAQE,MAAM,CAAA,CACzBC,WAAU,CAAA,CACVC,UAAS,CAAA,CACTG,aAAa,IAAId,eAAe,EAAE6B,SAASJ,oBAAoB,CAAA,CAAA,CAAA,CAC/DL,eAAe,IAAIrB,iBAAiB,EAAE+B,UAAU,KAAK,CAAA,CAAA,CAAA,CACrDP,MAAM,EAAEC,WAAWjB,QAAQiB,UAAU,CAAA;AAC9C"}
|
package/dist/app/index.mjs
CHANGED
|
@@ -4,16 +4,14 @@ import.meta.url;
|
|
|
4
4
|
import { AuthenticationInjectionKey } from "./modules/authentication/constants.mjs";
|
|
5
5
|
import { CacheInjectionKey } from "./modules/cache/constants.mjs";
|
|
6
6
|
import { ModuleName } from "./modules/constants.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { readConfigRawFromEnv } from "./modules/config/read/env.mjs";
|
|
10
|
-
import { readConfigRawFromFS } from "./modules/config/read/fs.mjs";
|
|
11
|
-
import { readConfigRaw } from "./modules/config/read/module.mjs";
|
|
12
|
-
import { readConfig } from "./modules/config/helpers.mjs";
|
|
7
|
+
import { CONFIG_SCHEMA, ConfigInjectionKey } from "./modules/config/constants.mjs";
|
|
8
|
+
import { normalizeConfig, readConfig } from "./modules/config/read.mjs";
|
|
13
9
|
import { ConfigModule } from "./modules/config/module.mjs";
|
|
10
|
+
import { getAppOrigins } from "./modules/config/app-origins.mjs";
|
|
14
11
|
import { CacheModule } from "./modules/cache/module.mjs";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
12
|
+
import { LoggerInjectionKey } from "./modules/logger/constants.mjs";
|
|
13
|
+
import { LoggerModule } from "./modules/logger/module.mjs";
|
|
14
|
+
import { OAuth2InjectionToken } from "./modules/oauth2/constants.mjs";
|
|
17
15
|
import { RealmRepositoryAdapter } from "./modules/database/repositories/realm/repository.mjs";
|
|
18
16
|
import { ClientRepositoryAdapter } from "./modules/database/repositories/client/repository.mjs";
|
|
19
17
|
import { ClientPermissionRepositoryAdapter } from "./modules/database/repositories/client-permission/repository.mjs";
|
|
@@ -38,15 +36,6 @@ import { UserAuthenticatorRepositoryAdapter } from "./modules/database/repositor
|
|
|
38
36
|
import { UserPermissionRepositoryAdapter } from "./modules/database/repositories/user-permission/repository.mjs";
|
|
39
37
|
import { UserRoleRepositoryAdapter } from "./modules/database/repositories/user-role/repository.mjs";
|
|
40
38
|
import { IdentityProviderRoleMappingRepositoryAdapter } from "./modules/database/repositories/identity-provider-role-mapping/repository.mjs";
|
|
41
|
-
import { DatabaseInjectionKey } from "./modules/database/constants.mjs";
|
|
42
|
-
import { LoggerInjectionKey } from "./modules/logger/constants.mjs";
|
|
43
|
-
import { LoggerModule } from "./modules/logger/module.mjs";
|
|
44
|
-
import { DatabaseModule } from "./modules/database/module.mjs";
|
|
45
|
-
import { ComponentsModule } from "./modules/components/module.mjs";
|
|
46
|
-
import { HTTPInjectionKey } from "./modules/http/constants.mjs";
|
|
47
|
-
import { MetricsInjectionKey } from "./modules/metrics/constants.mjs";
|
|
48
|
-
import { PromAuthFlowMetrics } from "./modules/metrics/prom.mjs";
|
|
49
|
-
import { OAuth2InjectionToken } from "./modules/oauth2/constants.mjs";
|
|
50
39
|
import { IdentityInjectionKey } from "./modules/identity/constants.mjs";
|
|
51
40
|
import { IdentityProviderAttributeMappingRepository } from "./modules/identity/repositories/provider/mapper/attribute.mjs";
|
|
52
41
|
import { IdentityProviderPermissionMappingRepository } from "./modules/identity/repositories/provider/mapper/permission.mjs";
|
|
@@ -55,10 +44,19 @@ import { CacheIdentityPrefix } from "./modules/identity/repositories/constants.m
|
|
|
55
44
|
import { IdentityProviderAccountLinkStore } from "./modules/identity/repositories/provider/link.mjs";
|
|
56
45
|
import { ClientIdentityRepository } from "./modules/identity/repositories/client.mjs";
|
|
57
46
|
import { UserIdentityRepository } from "./modules/identity/repositories/user.mjs";
|
|
47
|
+
import { DatabaseInjectionKey } from "./modules/database/constants.mjs";
|
|
48
|
+
import { assertNoPendingMigrations, verifySchemaOrSynchronize } from "./modules/database/migration.mjs";
|
|
49
|
+
import { DatabaseModule } from "./modules/database/module.mjs";
|
|
58
50
|
import { LDAPInjectionKey } from "./modules/ldap/constants.mjs";
|
|
59
51
|
import { LdapModule } from "./modules/ldap/module.mjs";
|
|
60
52
|
import { IdentityModule } from "./modules/identity/module.mjs";
|
|
61
53
|
import { OAuth2Module } from "./modules/oauth2/module.mjs";
|
|
54
|
+
import { SessionRepository } from "./modules/authentication/repositories/session.mjs";
|
|
55
|
+
import { AuthenticationModule } from "./modules/authentication/module.mjs";
|
|
56
|
+
import { ComponentsModule } from "./modules/components/module.mjs";
|
|
57
|
+
import { HTTPInjectionKey } from "./modules/http/constants.mjs";
|
|
58
|
+
import { MetricsInjectionKey } from "./modules/metrics/constants.mjs";
|
|
59
|
+
import { PromAuthFlowMetrics } from "./modules/metrics/prom.mjs";
|
|
62
60
|
import { ProvisioningInjectionKey } from "./modules/provisioning/constants.mjs";
|
|
63
61
|
import { LazyWildcardRealmProvisioner } from "./modules/provisioning/lazy-wildcard.mjs";
|
|
64
62
|
import { MailInjectionKey, MailTemplateRendererInjectionKey } from "./modules/mail/constants.mjs";
|
|
@@ -71,5 +69,5 @@ import { ProvisionerModule } from "./modules/provisioning/module.mjs";
|
|
|
71
69
|
import { RuntimeModule } from "./modules/runtime/module.mjs";
|
|
72
70
|
import "./modules/index.mjs";
|
|
73
71
|
import { ApplicationBuilder } from "./builder.mjs";
|
|
74
|
-
import { createApplication } from "./factory.mjs";
|
|
75
|
-
export { ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, CacheIdentityPrefix, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource,
|
|
72
|
+
import { createApplication, createWorkerApplication } from "./factory.mjs";
|
|
73
|
+
export { ApplicationBuilder, AuthenticationInjectionKey, AuthenticationModule, CONFIG_SCHEMA, CacheIdentityPrefix, CacheInjectionKey, CacheModule, ClientIdentityRepository, ClientPermissionRepositoryAdapter, ClientRepositoryAdapter, ClientRoleRepositoryAdapter, ClientScopeRepositoryAdapter, ComponentsModule, CompositeProvisioningSource, ConfigInjectionKey, ConfigModule, DatabaseInjectionKey, DatabaseModule, DefaultProvisioningSource, EventRepositoryAdapter, FileProvisioningSource, HTTPInjectionKey, HTTPModule, IdentityInjectionKey, IdentityModule, IdentityProviderAccountLinkStore, IdentityProviderAccountRepositoryAdapter, IdentityProviderAttributeMappingRepository, IdentityProviderPermissionMappingRepository, IdentityProviderRepositoryAdapter, IdentityProviderRoleMappingRepository, IdentityProviderRoleMappingRepositoryAdapter, KeyRepositoryAdapter, LDAPInjectionKey, LazyWildcardRealmProvisioner, LdapModule, LoggerInjectionKey, LoggerModule, MailInjectionKey, MailModule, MailTemplateRendererInjectionKey, MetricsInjectionKey, ModuleName, OAuth2InjectionToken, OAuth2Module, PermissionDatabaseProvider, PermissionPolicyRepositoryAdapter, PermissionRepositoryAdapter, PolicyRepositoryAdapter, PromAuthFlowMetrics, ProvisionerModule, ProvisioningInjectionKey, RealmRepositoryAdapter, RoleAttributeRepositoryAdapter, RolePermissionRepositoryAdapter, RoleRepositoryAdapter, RuntimeModule, ScopeRepositoryAdapter, SessionRepository, TrustAnchorRepositoryAdapter, UserAttributeRepositoryAdapter, UserAuthenticatorRepositoryAdapter, UserIdentityRepository, UserPermissionRepositoryAdapter, UserRepositoryAdapter, UserRoleRepositoryAdapter, assertNoPendingMigrations, createApplication, createWorkerApplication, getAppOrigins, normalizeConfig, readConfig, verifySchemaOrSynchronize };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/authentication/module.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/authentication/module.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAOxC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAKrC,qBAAa,oBAAqB,YAAW,OAAO;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;;IAe1B,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BpD"}
|
|
@@ -5,12 +5,17 @@ import { AuthenticationInjectionKey } from "./constants.mjs";
|
|
|
5
5
|
import { SessionEntity } from "../../../adapters/database/domains/session/entity.mjs";
|
|
6
6
|
import "../../../adapters/database/domains/index.mjs";
|
|
7
7
|
import { SessionManager } from "../../../core/authentication/session/module.mjs";
|
|
8
|
+
import { OAuth2BackchannelLogoutNotifier } from "../../../core/oauth2/backchannel-logout/module.mjs";
|
|
8
9
|
import "../../../core/index.mjs";
|
|
9
10
|
import { CacheInjectionKey } from "../cache/constants.mjs";
|
|
10
11
|
import { ModuleName } from "../constants.mjs";
|
|
11
12
|
import { ConfigInjectionKey } from "../config/constants.mjs";
|
|
12
13
|
import "../config/index.mjs";
|
|
13
14
|
import "../cache/index.mjs";
|
|
15
|
+
import { LoggerInjectionKey } from "../logger/constants.mjs";
|
|
16
|
+
import "../logger/index.mjs";
|
|
17
|
+
import { OAuth2InjectionToken } from "../oauth2/constants.mjs";
|
|
18
|
+
import "../oauth2/index.mjs";
|
|
14
19
|
import { SessionRepository } from "./repositories/session.mjs";
|
|
15
20
|
import "./repositories/index.mjs";
|
|
16
21
|
//#region src/app/modules/authentication/module.ts
|
|
@@ -22,7 +27,8 @@ var AuthenticationModule = class {
|
|
|
22
27
|
this.dependencies = [
|
|
23
28
|
ModuleName.DATABASE,
|
|
24
29
|
ModuleName.CACHE,
|
|
25
|
-
ModuleName.CONFIG
|
|
30
|
+
ModuleName.CONFIG,
|
|
31
|
+
ModuleName.OAUTH2
|
|
26
32
|
];
|
|
27
33
|
}
|
|
28
34
|
async setup(container) {
|
|
@@ -39,7 +45,14 @@ var AuthenticationModule = class {
|
|
|
39
45
|
const repository = c.resolve(AuthenticationInjectionKey.SessionRepository);
|
|
40
46
|
return new SessionManager({
|
|
41
47
|
repository,
|
|
42
|
-
options: { maxAge: config.tokenRefreshMaxAge + 3600 }
|
|
48
|
+
options: { maxAge: config.tokenRefreshMaxAge + 3600 },
|
|
49
|
+
revokeNotifier: new OAuth2BackchannelLogoutNotifier({
|
|
50
|
+
signer: c.resolve(OAuth2InjectionToken.TokenSigner),
|
|
51
|
+
sessionTokenRepository: c.resolve(OAuth2InjectionToken.SessionTokenRepository),
|
|
52
|
+
clientRepository: c.resolve(OAuth2InjectionToken.ClientRepository),
|
|
53
|
+
options: { issuer: config.publicUrl },
|
|
54
|
+
logger: c.resolve(LoggerInjectionKey)
|
|
55
|
+
})
|
|
43
56
|
});
|
|
44
57
|
} });
|
|
45
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["SessionEntity","SessionManager","CacheInjectionKey","ConfigInjectionKey","ModuleName","AuthenticationInjectionKey","SessionRepository","AuthenticationModule","name","dependencies","AUTHENTICATION","DATABASE","CACHE","CONFIG","setup","container","register","useFactory","c","cache","resolve","repository","config","options","maxAge","tokenRefreshMaxAge"],"sources":["../../../../src/app/modules/authentication/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Session } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport { SessionEntity } from '../../../adapters/database/domains/index.ts';\nimport type { IContainer } from 'eldin';\nimport { SessionManager } from '../../../core/index.ts';\nimport { CacheInjectionKey } from '../cache/index.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { AuthenticationInjectionKey } from './constants.ts';\nimport { SessionRepository } from './repositories/index.ts';\n\nexport class AuthenticationModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.AUTHENTICATION;\n this.dependencies = [ModuleName.DATABASE
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["SessionEntity","OAuth2BackchannelLogoutNotifier","SessionManager","CacheInjectionKey","ConfigInjectionKey","LoggerInjectionKey","OAuth2InjectionToken","ModuleName","AuthenticationInjectionKey","SessionRepository","AuthenticationModule","name","dependencies","AUTHENTICATION","DATABASE","CACHE","CONFIG","OAUTH2","setup","container","register","useFactory","c","cache","resolve","repository","config","options","maxAge","tokenRefreshMaxAge","revokeNotifier","signer","TokenSigner","sessionTokenRepository","SessionTokenRepository","clientRepository","ClientRepository","issuer","publicUrl","logger"],"sources":["../../../../src/app/modules/authentication/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Session } from '@authup/core-kit';\nimport type { Repository } from 'typeorm';\nimport { SessionEntity } from '../../../adapters/database/domains/index.ts';\nimport type { IContainer } from 'eldin';\nimport { OAuth2BackchannelLogoutNotifier, SessionManager } from '../../../core/index.ts';\nimport { CacheInjectionKey } from '../cache/index.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { LoggerInjectionKey } from '../logger/index.ts';\nimport { OAuth2InjectionToken } from '../oauth2/index.ts';\n\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport { AuthenticationInjectionKey } from './constants.ts';\nimport { SessionRepository } from './repositories/index.ts';\n\nexport class AuthenticationModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n constructor() {\n this.name = ModuleName.AUTHENTICATION;\n // OAUTH2 for the back-channel logout notifier the manager pushes\n // through (signer, token inventory, client repository). No cycle:\n // OAUTH2 stands on DATABASE, CACHE, CONFIG and IDENTITY only.\n this.dependencies = [\n ModuleName.DATABASE,\n ModuleName.CACHE,\n ModuleName.CONFIG,\n ModuleName.OAUTH2,\n ];\n }\n\n async setup(container: IContainer): Promise<void> {\n container.register(AuthenticationInjectionKey.SessionRepository, {\n useFactory: (c) => {\n const cache = c.resolve(CacheInjectionKey);\n const repository = c.resolve<Repository<Session>>(SessionEntity);\n return new SessionRepository({\n cache,\n repository,\n });\n },\n });\n\n container.register(AuthenticationInjectionKey.SessionManager, {\n useFactory: (c) => {\n const config = c.resolve(ConfigInjectionKey);\n const repository = c.resolve(AuthenticationInjectionKey.SessionRepository);\n return new SessionManager({\n repository,\n options: { maxAge: config.tokenRefreshMaxAge + 3_600 },\n revokeNotifier: new OAuth2BackchannelLogoutNotifier({\n signer: c.resolve(OAuth2InjectionToken.TokenSigner),\n sessionTokenRepository: c.resolve(OAuth2InjectionToken.SessionTokenRepository),\n clientRepository: c.resolve(OAuth2InjectionToken.ClientRepository),\n options: { issuer: config.publicUrl },\n logger: c.resolve(LoggerInjectionKey),\n }),\n });\n },\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAsBA,IAAaU,uBAAb,MAAaA;CACAC;CAEAC;CAET,cAAc;EACV,KAAKD,OAAOJ,WAAWM;EAIvB,KAAKD,eAAe;GAChBL,WAAWO;GACXP,WAAWQ;GACXR,WAAWS;GACXT,WAAWU;EACd;CACL;CAEA,MAAMC,MAAMC,WAAsC;EAC9CA,UAAUC,SAASZ,2BAA2BC,mBAAmB,EAC7DY,aAAaC,MAAAA;GACT,MAAMC,QAAQD,EAAEE,QAAQrB,iBAAAA;GACxB,MAAMsB,aAAaH,EAAEE,QAA6BxB,aAAAA;GAClD,OAAO,IAAIS,kBAAkB;IACzBc;IACAE;GACJ,CAAA;EACJ,EACJ,CAAA;EAEAN,UAAUC,SAASZ,2BAA2BN,gBAAgB,EAC1DmB,aAAaC,MAAAA;GACT,MAAMI,SAASJ,EAAEE,QAAQpB,kBAAAA;GACzB,MAAMqB,aAAaH,EAAEE,QAAQhB,2BAA2BC,iBAAiB;GACzE,OAAO,IAAIP,eAAe;IACtBuB;IACAE,SAAS,EAAEC,QAAQF,OAAOG,qBAAqB,KAAM;IACrDC,gBAAgB,IAAI7B,gCAAgC;KAChD8B,QAAQT,EAAEE,QAAQlB,qBAAqB0B,WAAW;KAClDC,wBAAwBX,EAAEE,QAAQlB,qBAAqB4B,sBAAsB;KAC7EC,kBAAkBb,EAAEE,QAAQlB,qBAAqB8B,gBAAgB;KACjET,SAAS,EAAEU,QAAQX,OAAOY,UAAU;KACpCC,QAAQjB,EAAEE,QAAQnB,kBAAAA;IACtB,CAAA;GACJ,CAAA;EACJ,EACJ,CAAA;CACJ;AACJ"}
|
|
@@ -2,7 +2,7 @@ import type { Session } from '@authup/core-kit';
|
|
|
2
2
|
import type { IQuery } from '@rapiq/core';
|
|
3
3
|
import type { EntityRepositoryFindManyResult, ICache } from '@authup/server-kit';
|
|
4
4
|
import type { Repository } from 'typeorm';
|
|
5
|
-
import type { ISessionRepository, SessionFindManyOptions, SessionOwner } from '../../../../core/index.ts';
|
|
5
|
+
import type { ISessionRepository, SessionDeleteExpiredOptions, SessionFindManyOptions, SessionOwner } from '../../../../core/index.ts';
|
|
6
6
|
type SessionRepositoryContext = {
|
|
7
7
|
repository: Repository<Session>;
|
|
8
8
|
cache: ICache;
|
|
@@ -12,12 +12,15 @@ export declare class SessionRepository implements ISessionRepository {
|
|
|
12
12
|
protected repository: Repository<Session>;
|
|
13
13
|
constructor(ctx: SessionRepositoryContext);
|
|
14
14
|
findOneById(id: string): Promise<Session | null>;
|
|
15
|
+
findOneBySecret(secret: string): Promise<Session | null>;
|
|
16
|
+
updateSecret(id: string, secret: string | null): Promise<void>;
|
|
15
17
|
findMany(query: IQuery, options?: SessionFindManyOptions): Promise<EntityRepositoryFindManyResult<Session>>;
|
|
16
18
|
findAllByOwner(owner: SessionOwner): Promise<Session[]>;
|
|
17
19
|
findAllByQuery(query: IQuery): Promise<Session[]>;
|
|
18
20
|
save(input: Partial<Session>): Promise<Session>;
|
|
19
21
|
remove(session: Session): Promise<void>;
|
|
20
22
|
removeById(id: string): Promise<void>;
|
|
23
|
+
deleteExpired(before: string, options?: SessionDeleteExpiredOptions): Promise<number>;
|
|
21
24
|
}
|
|
22
25
|
export {};
|
|
23
26
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/authentication/repositories/session.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../../src/app/modules/authentication/repositories/session.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,OAAO,KAAK,EACR,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,YAAY,EACf,MAAM,2BAA2B,CAAC;AAQnC,KAAK,wBAAwB,GAAG;IAC5B,UAAU,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAA;CAChB,CAAC;AAEF,qBAAa,iBAAkB,YAAW,kBAAkB;IACxD,SAAS,CAAC,KAAK,EAAG,MAAM,CAAC;IAEzB,SAAS,CAAC,UAAU,EAAG,UAAU,CAAC,OAAO,CAAC,CAAC;gBAI/B,GAAG,EAAE,wBAAwB;IAOnC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAehD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAexD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9D,QAAQ,CACV,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC;IA0B7C,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASvD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAgBjD,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B/C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC,aAAa,CACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,MAAM,CAAC;CAYrB"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { SESSION_EXPIRY_SWEEP_BATCH_SIZE } from "../../../../core/authentication/session/constants.mjs";
|
|
5
|
+
import { hashSessionSecret } from "../../../../core/oauth2/session-credential/module.mjs";
|
|
6
|
+
import "../../../../core/index.mjs";
|
|
4
7
|
import { applyQuery, redactFieldConditions } from "../../database/repositories/query.mjs";
|
|
5
|
-
import { applyRealmScopeSelect } from "../../database/repositories/helpers.mjs";
|
|
8
|
+
import { applyRealmScopeSelect, deleteInBatches, resolveSweepBatchSize } from "../../database/repositories/helpers.mjs";
|
|
6
9
|
import { AuthenticationCachePrefix } from "./constants.mjs";
|
|
10
|
+
import { LessThan } from "typeorm";
|
|
7
11
|
import { buildCacheKey } from "@authup/server-kit";
|
|
8
12
|
//#region src/app/modules/authentication/repositories/session.ts
|
|
9
13
|
var SessionRepository = class {
|
|
@@ -21,6 +25,13 @@ var SessionRepository = class {
|
|
|
21
25
|
if (session) return session;
|
|
22
26
|
return this.repository.findOneBy({ id });
|
|
23
27
|
}
|
|
28
|
+
async findOneBySecret(secret) {
|
|
29
|
+
if (!secret) return null;
|
|
30
|
+
return this.repository.findOneBy({ secret: hashSessionSecret(secret) });
|
|
31
|
+
}
|
|
32
|
+
async updateSecret(id, secret) {
|
|
33
|
+
await this.repository.update({ id }, { secret: secret === null ? null : hashSessionSecret(secret) });
|
|
34
|
+
}
|
|
24
35
|
async findMany(query, options = {}) {
|
|
25
36
|
const qb = this.repository.createQueryBuilder("session");
|
|
26
37
|
const { pagination } = applyQuery(qb, query);
|
|
@@ -53,23 +64,29 @@ var SessionRepository = class {
|
|
|
53
64
|
async save(input) {
|
|
54
65
|
const session = this.repository.create(input);
|
|
55
66
|
await this.repository.save(session);
|
|
67
|
+
const cacheable = { ...session };
|
|
68
|
+
delete cacheable.secret;
|
|
56
69
|
await this.cache.set(buildCacheKey({
|
|
57
70
|
prefix: AuthenticationCachePrefix.SESSION,
|
|
58
71
|
key: session.id
|
|
59
|
-
}),
|
|
72
|
+
}), cacheable, { ttl: new Date(session.expiresAt).getTime() - Date.now() });
|
|
60
73
|
return session;
|
|
61
74
|
}
|
|
62
75
|
async remove(session) {
|
|
76
|
+
const { id } = session;
|
|
63
77
|
await this.repository.remove(session);
|
|
64
78
|
await this.cache.drop(buildCacheKey({
|
|
65
79
|
prefix: AuthenticationCachePrefix.SESSION,
|
|
66
|
-
key:
|
|
80
|
+
key: id
|
|
67
81
|
}));
|
|
68
82
|
}
|
|
69
83
|
async removeById(id) {
|
|
70
84
|
const session = await this.findOneById(id);
|
|
71
85
|
if (session) await this.remove(session);
|
|
72
86
|
}
|
|
87
|
+
async deleteExpired(before, options = {}) {
|
|
88
|
+
return deleteInBatches(this.repository, { expiresAt: LessThan(before) }, resolveSweepBatchSize(options.batchSize, SESSION_EXPIRY_SWEEP_BATCH_SIZE));
|
|
89
|
+
}
|
|
73
90
|
};
|
|
74
91
|
//#endregion
|
|
75
92
|
export { SessionRepository };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.mjs","names":["buildCacheKey","applyQuery","redactFieldConditions","applyRealmScopeSelect","AuthenticationCachePrefix","SessionRepository","cache","repository","ctx","findOneById","id","session","get","prefix","SESSION","key","findOneBy","findMany","query","options","qb","createQueryBuilder","pagination","owner","andWhere","ownerSub","sub","ownerSubKind","subKind","entities","total","getManyAndCount","data","meta","findAllByOwner","where","getMany","findAllByQuery","save","input","create","set","ttl","Date","expiresAt","getTime","now","remove","drop","removeById"],"sources":["../../../../../src/app/modules/authentication/repositories/session.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 { Session } from '@authup/core-kit';\nimport type { IQuery } from '@rapiq/core';\nimport type { EntityRepositoryFindManyResult, ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { applyQuery, redactFieldConditions } from '../../database/repositories/query.ts';\nimport type {\n ISessionRepository,\n SessionFindManyOptions,\n SessionOwner,\n} from '../../../../core/index.ts';\nimport { applyRealmScopeSelect } from '../../database/repositories/helpers.ts';\nimport { AuthenticationCachePrefix } from './constants.ts';\n\ntype SessionRepositoryContext = {\n repository: Repository<Session>,\n cache: ICache\n};\n\nexport class SessionRepository implements ISessionRepository {\n protected cache : ICache;\n\n protected repository : Repository<Session>;\n\n // -----------------------------------------------------\n\n constructor(ctx: SessionRepositoryContext) {\n this.cache = ctx.cache;\n this.repository = ctx.repository;\n }\n\n // -----------------------------------------------------\n\n async findOneById(id: string): Promise<Session | null> {\n const session = await this.cache.get<Session>(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: id, \n }),\n );\n\n if (session) {\n return session;\n }\n\n return this.repository.findOneBy({ id });\n }\n\n // -----------------------------------------------------\n\n async findMany(\n query: IQuery,\n options: SessionFindManyOptions = {},\n ): Promise<EntityRepositoryFindManyResult<Session>> {\n const qb = this.repository.createQueryBuilder('session');\n\n const { pagination } = applyQuery(qb, query);\n\n applyRealmScopeSelect(qb, 'session', ['sub', 'subKind']);\n\n if (options.owner) {\n // mandatory constraint — not overridable by a rapiq filter\n qb.andWhere('session.sub = :ownerSub AND session.subKind = :ownerSubKind', {\n ownerSub: options.owner.sub,\n ownerSubKind: options.owner.subKind,\n });\n }\n\n const [entities, total] = await qb.getManyAndCount();\n\n return {\n data: redactFieldConditions(query, entities),\n meta: {\n total,\n ...pagination,\n },\n };\n }\n\n async findAllByOwner(owner: SessionOwner): Promise<Session[]> {\n return this.repository.createQueryBuilder('session')\n .where('session.sub = :sub AND session.subKind = :subKind', {\n sub: owner.sub,\n subKind: owner.subKind,\n })\n .getMany();\n }\n\n async findAllByQuery(query: IQuery): Promise<Session[]> {\n const qb = this.repository.createQueryBuilder('session');\n\n // NOTE: `parameters: ['filters']` — a bulk revoke must reach every\n // matching row. Applying the schema's `pagination.maxLimit` would\n // default the limit to that cap when the caller sends no page (rapiq\n // `finalizePagination`), silently truncating the delete.\n applyQuery(qb, query);\n\n applyRealmScopeSelect(qb, 'session', ['sub', 'subKind']);\n\n return qb.getMany();\n }\n\n // -----------------------------------------------------\n\n async save(input: Partial<Session>): Promise<Session> {\n const session = this.repository.create(input);\n await this.repository.save(session);\n\n await this.cache.set(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: session.id, \n }),\n session,\n { ttl: new Date(session.expiresAt).getTime() - Date.now() },\n );\n\n return session;\n }\n\n // -----------------------------------------------------\n\n async remove(session: Session): Promise<void> {\n await this.repository.remove(session);\n await this.cache.drop(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: session.id, \n }),\n );\n }\n\n async removeById(id: string): Promise<void> {\n const session = await this.findOneById(id);\n\n if (session) {\n await this.remove(session);\n }\n }\n}\n"],"mappings":";;;;;;;;AA0BA,IAAaK,oBAAb,MAAaA;CACCC;CAEAC;CAIV,YAAYC,KAA+B;EACvC,KAAKF,QAAQE,IAAIF;EACjB,KAAKC,aAAaC,IAAID;CAC1B;CAIA,MAAME,YAAYC,IAAqC;EACnD,MAAMC,UAAU,MAAM,KAAKL,MAAMM,IAC7BZ,cAAc;GACVa,QAAQT,0BAA0BU;GAClCC,KAAKL;EACT,CAAA,CAAA;EAGJ,IAAIC,SACA,OAAOA;EAGX,OAAO,KAAKJ,WAAWS,UAAU,EAAEN,GAAG,CAAA;CAC1C;CAIA,MAAMO,SACFC,OACAC,UAAkC,CAAC,GACa;EAChD,MAAMC,KAAK,KAAKb,WAAWc,mBAAmB,SAAA;EAE9C,MAAM,EAAEC,eAAerB,WAAWmB,IAAIF,KAAAA;EAEtCf,sBAAsBiB,IAAI,WAAW,CAAC,OAAO,SAAU,CAAA;EAEvD,IAAID,QAAQI,OAERH,GAAGI,SAAS,+DAA+D;GACvEC,UAAUN,QAAQI,MAAMG;GACxBC,cAAcR,QAAQI,MAAMK;EAChC,CAAA;EAGJ,MAAM,CAACC,UAAUC,SAAS,MAAMV,GAAGW,gBAAe;EAElD,OAAO;GACHC,MAAM9B,sBAAsBgB,OAAOW,QAAAA;GACnCI,MAAM;IACFH;IACA,GAAGR;GACP;EACJ;CACJ;CAEA,MAAMY,eAAeX,OAAyC;EAC1D,OAAO,KAAKhB,WAAWc,mBAAmB,SAAA,CAAA,CACrCc,MAAM,qDAAqD;GACxDT,KAAKH,MAAMG;GACXE,SAASL,MAAMK;EACnB,CAAA,CAAA,CACCQ,QAAO;CAChB;CAEA,MAAMC,eAAenB,OAAmC;EACpD,MAAME,KAAK,KAAKb,WAAWc,mBAAmB,SAAA;EAM9CpB,WAAWmB,IAAIF,KAAAA;EAEff,sBAAsBiB,IAAI,WAAW,CAAC,OAAO,SAAU,CAAA;EAEvD,OAAOA,GAAGgB,QAAO;CACrB;CAIA,MAAME,KAAKC,OAA2C;EAClD,MAAM5B,UAAU,KAAKJ,WAAWiC,OAAOD,KAAAA;EACvC,MAAM,KAAKhC,WAAW+B,KAAK3B,OAAAA;EAE3B,MAAM,KAAKL,MAAMmC,IACbzC,cAAc;GACVa,QAAQT,0BAA0BU;GAClCC,KAAKJ,QAAQD;EACjB,CAAA,GACAC,SACA,EAAE+B,KAAK,IAAIC,KAAKhC,QAAQiC,SAAS,CAAA,CAAEC,QAAO,IAAKF,KAAKG,IAAG,EAAG,CAAA;EAG9D,OAAOnC;CACX;CAIA,MAAMoC,OAAOpC,SAAiC;EAC1C,MAAM,KAAKJ,WAAWwC,OAAOpC,OAAAA;EAC7B,MAAM,KAAKL,MAAM0C,KACbhD,cAAc;GACVa,QAAQT,0BAA0BU;GAClCC,KAAKJ,QAAQD;EACjB,CAAA,CAAA;CAER;CAEA,MAAMuC,WAAWvC,IAA2B;EACxC,MAAMC,UAAU,MAAM,KAAKF,YAAYC,EAAAA;EAEvC,IAAIC,SACA,MAAM,KAAKoC,OAAOpC,OAAAA;CAE1B;AACJ"}
|
|
1
|
+
{"version":3,"file":"session.mjs","names":["buildCacheKey","LessThan","applyQuery","redactFieldConditions","SESSION_EXPIRY_SWEEP_BATCH_SIZE","hashSessionSecret","applyRealmScopeSelect","deleteInBatches","resolveSweepBatchSize","AuthenticationCachePrefix","SessionRepository","cache","repository","ctx","findOneById","id","session","get","prefix","SESSION","key","findOneBy","findOneBySecret","secret","updateSecret","update","findMany","query","options","qb","createQueryBuilder","pagination","owner","andWhere","ownerSub","sub","ownerSubKind","subKind","entities","total","getManyAndCount","data","meta","findAllByOwner","where","getMany","findAllByQuery","save","input","create","cacheable","set","ttl","Date","expiresAt","getTime","now","remove","drop","removeById","deleteExpired","before","batchSize"],"sources":["../../../../../src/app/modules/authentication/repositories/session.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 { Session } from '@authup/core-kit';\nimport type { IQuery } from '@rapiq/core';\nimport type { EntityRepositoryFindManyResult, ICache } from '@authup/server-kit';\nimport { buildCacheKey } from '@authup/server-kit';\nimport type { Repository } from 'typeorm';\nimport { LessThan } from 'typeorm';\nimport { applyQuery, redactFieldConditions } from '../../database/repositories/query.ts';\nimport { SESSION_EXPIRY_SWEEP_BATCH_SIZE, hashSessionSecret } from '../../../../core/index.ts';\nimport type {\n ISessionRepository,\n SessionDeleteExpiredOptions,\n SessionFindManyOptions,\n SessionOwner,\n} from '../../../../core/index.ts';\nimport {\n applyRealmScopeSelect,\n deleteInBatches,\n resolveSweepBatchSize,\n} from '../../database/repositories/helpers.ts';\nimport { AuthenticationCachePrefix } from './constants.ts';\n\ntype SessionRepositoryContext = {\n repository: Repository<Session>,\n cache: ICache\n};\n\nexport class SessionRepository implements ISessionRepository {\n protected cache : ICache;\n\n protected repository : Repository<Session>;\n\n // -----------------------------------------------------\n\n constructor(ctx: SessionRepositoryContext) {\n this.cache = ctx.cache;\n this.repository = ctx.repository;\n }\n\n // -----------------------------------------------------\n\n async findOneById(id: string): Promise<Session | null> {\n const session = await this.cache.get<Session>(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: id, \n }),\n );\n\n if (session) {\n return session;\n }\n\n return this.repository.findOneBy({ id });\n }\n\n async findOneBySecret(secret: string): Promise<Session | null> {\n if (!secret) {\n // A blank handle must never become a query: the column is\n // nullable, so an empty match is meaningless, and refusing it here\n // keeps a missing cookie from reaching the database at all.\n return null;\n }\n\n // Deliberately not cached: the session cache is id-keyed, and the\n // credential is a multi-day one, so the row is the authority (a cache\n // a replica never saw would answer anonymous in steady state).\n // The column holds a digest, never the credential itself.\n return this.repository.findOneBy({ secret: hashSessionSecret(secret) });\n }\n\n async updateSecret(id: string, secret: string | null): Promise<void> {\n await this.repository.update({ id }, { secret: secret === null ? null : hashSessionSecret(secret) });\n\n // The cached copy never carries the secret (see `save`), so nothing\n // cached goes stale here. `auth_sessions` has no entity subscriber, so\n // a targeted update publishes nothing either.\n }\n\n // -----------------------------------------------------\n\n async findMany(\n query: IQuery,\n options: SessionFindManyOptions = {},\n ): Promise<EntityRepositoryFindManyResult<Session>> {\n const qb = this.repository.createQueryBuilder('session');\n\n const { pagination } = applyQuery(qb, query);\n\n applyRealmScopeSelect(qb, 'session', ['sub', 'subKind']);\n\n if (options.owner) {\n // mandatory constraint — not overridable by a rapiq filter\n qb.andWhere('session.sub = :ownerSub AND session.subKind = :ownerSubKind', {\n ownerSub: options.owner.sub,\n ownerSubKind: options.owner.subKind,\n });\n }\n\n const [entities, total] = await qb.getManyAndCount();\n\n return {\n data: redactFieldConditions(query, entities),\n meta: {\n total,\n ...pagination,\n },\n };\n }\n\n async findAllByOwner(owner: SessionOwner): Promise<Session[]> {\n return this.repository.createQueryBuilder('session')\n .where('session.sub = :sub AND session.subKind = :subKind', {\n sub: owner.sub,\n subKind: owner.subKind,\n })\n .getMany();\n }\n\n async findAllByQuery(query: IQuery): Promise<Session[]> {\n const qb = this.repository.createQueryBuilder('session');\n\n // NOTE: `parameters: ['filters']` — a bulk revoke must reach every\n // matching row. Applying the schema's `pagination.maxLimit` would\n // default the limit to that cap when the caller sends no page (rapiq\n // `finalizePagination`), silently truncating the delete.\n applyQuery(qb, query);\n\n applyRealmScopeSelect(qb, 'session', ['sub', 'subKind']);\n\n return qb.getMany();\n }\n\n // -----------------------------------------------------\n\n async save(input: Partial<Session>): Promise<Session> {\n const session = this.repository.create(input);\n await this.repository.save(session);\n\n // The cookie handle must never enter the cache. `findOneById` serves\n // the cached object verbatim, and an owner reads its own session\n // through `GET /sessions/:id` with no permission at all, so a cached\n // secret would be published where a `select: false` column is\n // otherwise absent by construction. Omitted rather than nulled: a\n // cached `secret: null` fed back through `save()` (ping / refresh both\n // do exactly that) would clear the column and kill a live console\n // session on its first request.\n const cacheable : Session = { ...session };\n delete cacheable.secret;\n\n await this.cache.set(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: session.id,\n }),\n cacheable,\n { ttl: new Date(session.expiresAt).getTime() - Date.now() },\n );\n\n return session;\n }\n\n // -----------------------------------------------------\n\n async remove(session: Session): Promise<void> {\n // TypeORM unsets the primary key on the entity it removed, so the id\n // has to be read first or the cache drop misses and the revoked\n // session stays readable until its entry expires.\n const { id } = session;\n\n await this.repository.remove(session);\n await this.cache.drop(\n buildCacheKey({\n prefix: AuthenticationCachePrefix.SESSION,\n key: id,\n }),\n );\n }\n\n async removeById(id: string): Promise<void> {\n const session = await this.findOneById(id);\n\n if (session) {\n await this.remove(session);\n }\n }\n\n async deleteExpired(\n before: string,\n options: SessionDeleteExpiredOptions = {},\n ): Promise<number> {\n // Deliberately bypasses the cache, unlike `remove`. A cached session\n // is written with `ttl = expiresAt - now` on every save (creation and\n // every refresh alike), so an entry has always lapsed by the time its\n // row matches this predicate. Dropping the keys would mean reading\n // each row back only to evict something that is already gone.\n return deleteInBatches(\n this.repository,\n { expiresAt: LessThan(before) },\n resolveSweepBatchSize(options.batchSize, SESSION_EXPIRY_SWEEP_BATCH_SIZE),\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAiCA,IAAaU,oBAAb,MAAaA;CACCC;CAEAC;CAIV,YAAYC,KAA+B;EACvC,KAAKF,QAAQE,IAAIF;EACjB,KAAKC,aAAaC,IAAID;CAC1B;CAIA,MAAME,YAAYC,IAAqC;EACnD,MAAMC,UAAU,MAAM,KAAKL,MAAMM,IAC7BjB,cAAc;GACVkB,QAAQT,0BAA0BU;GAClCC,KAAKL;EACT,CAAA,CAAA;EAGJ,IAAIC,SACA,OAAOA;EAGX,OAAO,KAAKJ,WAAWS,UAAU,EAAEN,GAAG,CAAA;CAC1C;CAEA,MAAMO,gBAAgBC,QAAyC;EAC3D,IAAI,CAACA,QAID,OAAO;EAOX,OAAO,KAAKX,WAAWS,UAAU,EAAEE,QAAQlB,kBAAkBkB,MAAAA,EAAQ,CAAA;CACzE;CAEA,MAAMC,aAAaT,IAAYQ,QAAsC;EACjE,MAAM,KAAKX,WAAWa,OAAO,EAAEV,GAAG,GAAG,EAAEQ,QAAQA,WAAW,OAAO,OAAOlB,kBAAkBkB,MAAAA,EAAQ,CAAA;CAKtG;CAIA,MAAMG,SACFC,OACAC,UAAkC,CAAC,GACa;EAChD,MAAMC,KAAK,KAAKjB,WAAWkB,mBAAmB,SAAA;EAE9C,MAAM,EAAEC,eAAe7B,WAAW2B,IAAIF,KAAAA;EAEtCrB,sBAAsBuB,IAAI,WAAW,CAAC,OAAO,SAAU,CAAA;EAEvD,IAAID,QAAQI,OAERH,GAAGI,SAAS,+DAA+D;GACvEC,UAAUN,QAAQI,MAAMG;GACxBC,cAAcR,QAAQI,MAAMK;EAChC,CAAA;EAGJ,MAAM,CAACC,UAAUC,SAAS,MAAMV,GAAGW,gBAAe;EAElD,OAAO;GACHC,MAAMtC,sBAAsBwB,OAAOW,QAAAA;GACnCI,MAAM;IACFH;IACA,GAAGR;GACP;EACJ;CACJ;CAEA,MAAMY,eAAeX,OAAyC;EAC1D,OAAO,KAAKpB,WAAWkB,mBAAmB,SAAA,CAAA,CACrCc,MAAM,qDAAqD;GACxDT,KAAKH,MAAMG;GACXE,SAASL,MAAMK;EACnB,CAAA,CAAA,CACCQ,QAAO;CAChB;CAEA,MAAMC,eAAenB,OAAmC;EACpD,MAAME,KAAK,KAAKjB,WAAWkB,mBAAmB,SAAA;EAM9C5B,WAAW2B,IAAIF,KAAAA;EAEfrB,sBAAsBuB,IAAI,WAAW,CAAC,OAAO,SAAU,CAAA;EAEvD,OAAOA,GAAGgB,QAAO;CACrB;CAIA,MAAME,KAAKC,OAA2C;EAClD,MAAMhC,UAAU,KAAKJ,WAAWqC,OAAOD,KAAAA;EACvC,MAAM,KAAKpC,WAAWmC,KAAK/B,OAAAA;EAU3B,MAAMkC,YAAsB,EAAE,GAAGlC,QAAQ;EACzC,OAAOkC,UAAU3B;EAEjB,MAAM,KAAKZ,MAAMwC,IACbnD,cAAc;GACVkB,QAAQT,0BAA0BU;GAClCC,KAAKJ,QAAQD;EACjB,CAAA,GACAmC,WACA,EAAEE,KAAK,IAAIC,KAAKrC,QAAQsC,SAAS,CAAA,CAAEC,QAAO,IAAKF,KAAKG,IAAG,EAAG,CAAA;EAG9D,OAAOxC;CACX;CAIA,MAAMyC,OAAOzC,SAAiC;EAI1C,MAAM,EAAED,OAAOC;EAEf,MAAM,KAAKJ,WAAW6C,OAAOzC,OAAAA;EAC7B,MAAM,KAAKL,MAAM+C,KACb1D,cAAc;GACVkB,QAAQT,0BAA0BU;GAClCC,KAAKL;EACT,CAAA,CAAA;CAER;CAEA,MAAM4C,WAAW5C,IAA2B;EACxC,MAAMC,UAAU,MAAM,KAAKF,YAAYC,EAAAA;EAEvC,IAAIC,SACA,MAAM,KAAKyC,OAAOzC,OAAAA;CAE1B;CAEA,MAAM4C,cACFC,QACAjC,UAAuC,CAAC,GACzB;EAMf,OAAOrB,gBACH,KAAKK,YACL,EAAE0C,WAAWrD,SAAS4D,MAAAA,EAAQ,GAC9BrD,sBAAsBoB,QAAQkC,WAAW1D,+BAAAA,CAAAA;CAEjD;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/components/index.ts"],"names":[],"mappings":"AAOA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { Component } from '../../../components/index.ts';
|
|
2
2
|
import type { IModule } from 'orkos';
|
|
3
3
|
import type { IContainer } from 'eldin';
|
|
4
|
+
import type { ComponentsModuleOptions } from './types.ts';
|
|
4
5
|
export declare class ComponentsModule implements IModule {
|
|
5
6
|
readonly name: string;
|
|
6
7
|
readonly dependencies: string[];
|
|
8
|
+
protected options: ComponentsModuleOptions;
|
|
7
9
|
protected components: Component[];
|
|
8
|
-
constructor();
|
|
10
|
+
constructor(options?: ComponentsModuleOptions);
|
|
9
11
|
setup(container: IContainer): Promise<void>;
|
|
10
12
|
teardown(container: IContainer): Promise<void>;
|
|
11
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/components/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/components/module.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAS9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,gBAAiB,YAAW,OAAO;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;IAEhC,SAAS,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAE3C,SAAS,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;gBAEtB,OAAO,GAAE,uBAA4B;IAY3C,KAAK,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA2D3C,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBvD"}
|
|
@@ -1,38 +1,56 @@
|
|
|
1
1
|
import "node:path";
|
|
2
2
|
import "node:url";
|
|
3
3
|
import.meta.url;
|
|
4
|
+
import { CacheInjectionKey } from "../cache/constants.mjs";
|
|
4
5
|
import { ModuleName } from "../constants.mjs";
|
|
5
6
|
import { ConfigInjectionKey } from "../config/constants.mjs";
|
|
6
7
|
import "../config/index.mjs";
|
|
7
|
-
import
|
|
8
|
-
import { createOAuth2CleanerComponent } from "../../../components/oauth2-cleaner/module.mjs";
|
|
9
|
-
import "../../../components/index.mjs";
|
|
10
|
-
import { DatabaseInjectionKey } from "../database/constants.mjs";
|
|
8
|
+
import "../cache/index.mjs";
|
|
11
9
|
import { LoggerInjectionKey } from "../logger/constants.mjs";
|
|
12
10
|
import "../logger/index.mjs";
|
|
11
|
+
import { DatabaseInjectionKey } from "../database/constants.mjs";
|
|
13
12
|
import "../database/index.mjs";
|
|
13
|
+
import { createEventCleanerComponent } from "../../../components/event-cleaner/module.mjs";
|
|
14
|
+
import { createOAuth2CleanerComponent } from "../../../components/oauth2-cleaner/module.mjs";
|
|
15
|
+
import "../../../components/index.mjs";
|
|
14
16
|
//#region src/app/modules/components/module.ts
|
|
15
17
|
var ComponentsModule = class {
|
|
16
18
|
name;
|
|
17
19
|
dependencies;
|
|
20
|
+
options;
|
|
18
21
|
components;
|
|
19
|
-
constructor() {
|
|
22
|
+
constructor(options = {}) {
|
|
20
23
|
this.name = ModuleName.COMPONENTS;
|
|
21
24
|
this.dependencies = [
|
|
22
25
|
ModuleName.CONFIG,
|
|
23
26
|
ModuleName.LOGGER,
|
|
27
|
+
ModuleName.CACHE,
|
|
24
28
|
ModuleName.DATABASE
|
|
25
29
|
];
|
|
30
|
+
this.options = options;
|
|
26
31
|
this.components = [];
|
|
27
32
|
}
|
|
28
33
|
async setup(container) {
|
|
29
34
|
const config = container.resolve(ConfigInjectionKey);
|
|
30
35
|
const dataSource = container.resolve(DatabaseInjectionKey.DataSource);
|
|
31
36
|
const logger = container.resolve(LoggerInjectionKey);
|
|
32
|
-
|
|
37
|
+
if (!config.worker.enabled) {
|
|
38
|
+
if (this.options.required) throw new Error("This process runs in worker mode, but core.worker.enabled is false. Set it to true for this process (WORKER_ENABLED=true), or start the API instead (`authup start` or `authup start core`), which runs the worker in process while the key is true.");
|
|
39
|
+
logger.info("The worker is disabled by configuration (core.worker.enabled: false).");
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const cache = container.resolve(CacheInjectionKey);
|
|
43
|
+
const registry = [{
|
|
44
|
+
name: "oauth2-cleaner",
|
|
45
|
+
component: createOAuth2CleanerComponent(dataSource, cache, logger)
|
|
46
|
+
}];
|
|
33
47
|
const securitySweep = config.eventLogRetentionDays > 0;
|
|
34
48
|
const entitySweep = config.eventLogEntityEnabled && config.eventLogEntityRetentionDays > 0;
|
|
35
|
-
if (config.eventLogEnabled && (securitySweep || entitySweep))
|
|
49
|
+
if (config.eventLogEnabled && (securitySweep || entitySweep)) registry.push({
|
|
50
|
+
name: "event-cleaner",
|
|
51
|
+
component: createEventCleanerComponent(dataSource, logger)
|
|
52
|
+
});
|
|
53
|
+
const components = registry.map((entry) => entry.component);
|
|
36
54
|
this.components = components;
|
|
37
55
|
components.forEach((component) => {
|
|
38
56
|
component.start().catch((e) => {
|
|
@@ -40,6 +58,7 @@ var ComponentsModule = class {
|
|
|
40
58
|
logger.error(e);
|
|
41
59
|
});
|
|
42
60
|
});
|
|
61
|
+
logger.info(`Background components started: ${registry.map((entry) => entry.name).join(", ")}.`);
|
|
43
62
|
}
|
|
44
63
|
async teardown(container) {
|
|
45
64
|
const logger = container.tryResolve(LoggerInjectionKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.mjs","names":["createEventCleanerComponent","createOAuth2CleanerComponent","ConfigInjectionKey","DatabaseInjectionKey","LoggerInjectionKey","ModuleName","ComponentsModule","name","dependencies","components","COMPONENTS","CONFIG","LOGGER","DATABASE","setup","container","config","resolve","dataSource","DataSource","logger","securitySweep","eventLogRetentionDays","entitySweep","eventLogEntityEnabled","eventLogEntityRetentionDays","eventLogEnabled","push","
|
|
1
|
+
{"version":3,"file":"module.mjs","names":["createEventCleanerComponent","createOAuth2CleanerComponent","CacheInjectionKey","ConfigInjectionKey","DatabaseInjectionKey","LoggerInjectionKey","ModuleName","ComponentsModule","name","dependencies","options","components","COMPONENTS","CONFIG","LOGGER","CACHE","DATABASE","setup","container","config","resolve","dataSource","DataSource","logger","worker","enabled","required","Error","info","cache","registry","component","securitySweep","eventLogRetentionDays","entitySweep","eventLogEntityEnabled","eventLogEntityRetentionDays","eventLogEnabled","push","map","entry","forEach","start","catch","e","error","join","teardown","tryResolve","stop","success","data","warn"],"sources":["../../../../src/app/modules/components/module.ts"],"sourcesContent":["/*\n * Copyright (c) 2025.\n * Author Peter Placzek (tada5hi)\n * For the full copyright and license information,\n * view the LICENSE file that was distributed with this source code.\n */\n\nimport type { Component } from '../../../components/index.ts';\nimport {\n createEventCleanerComponent,\n createOAuth2CleanerComponent,\n} from '../../../components/index.ts';\nimport { CacheInjectionKey } from '../cache/index.ts';\nimport { ConfigInjectionKey } from '../config/index.ts';\nimport { DatabaseInjectionKey } from '../database/index.ts';\nimport { LoggerInjectionKey } from '../logger/index.ts';\nimport type { IModule } from 'orkos';\nimport { ModuleName } from '../constants.ts';\nimport type { IContainer } from 'eldin';\nimport type { ComponentsModuleOptions } from './types.ts';\n\nexport class ComponentsModule implements IModule {\n readonly name: string;\n\n readonly dependencies: string[];\n\n protected options: ComponentsModuleOptions;\n\n protected components: Component[];\n\n constructor(options: ComponentsModuleOptions = {}) {\n this.name = ModuleName.COMPONENTS;\n this.dependencies = [\n ModuleName.CONFIG,\n ModuleName.LOGGER,\n ModuleName.CACHE,\n ModuleName.DATABASE,\n ];\n this.options = options;\n this.components = [];\n }\n\n async setup(container: IContainer): Promise<void> {\n const config = container.resolve(ConfigInjectionKey);\n const dataSource = container.resolve(DatabaseInjectionKey.DataSource);\n const logger = container.resolve(LoggerInjectionKey);\n\n // worker mode requires it; the default mode follows the config, so an\n // API replica can hand the sweeps to a dedicated worker process.\n if (!config.worker.enabled) {\n if (this.options.required) {\n throw new Error('This process runs in worker mode, but core.worker.enabled is false. Set it to true for this process (WORKER_ENABLED=true), or start the API instead (`authup start` or `authup start core`), which runs the worker in process while the key is true.');\n }\n\n logger.info('The worker is disabled by configuration (core.worker.enabled: false).');\n return;\n }\n\n const cache = container.resolve(CacheInjectionKey);\n\n // Name and component travel together so the boot log can never drift\n // from what was actually registered.\n const registry: { name: string, component: Component }[] = [\n {\n name: 'oauth2-cleaner',\n component: createOAuth2CleanerComponent(dataSource, cache, logger),\n },\n ];\n\n // The sweep only exists when rows are written AND at least one row\n // family carries an expiry — security events (eventLogRetentionDays)\n // and entity-CRUD events (eventLogEntityRetentionDays) are stamped\n // independently, so either non-zero retention needs the cleaner.\n const securitySweep = config.eventLogRetentionDays > 0;\n const entitySweep = config.eventLogEntityEnabled && config.eventLogEntityRetentionDays > 0;\n if (config.eventLogEnabled && (securitySweep || entitySweep)) {\n registry.push({\n name: 'event-cleaner',\n component: createEventCleanerComponent(dataSource, logger),\n });\n }\n\n const components = registry.map((entry) => entry.component);\n this.components = components;\n\n // start() is deliberately fire-and-forget, so a rejection must be\n // caught here — an unhandled rejection is fatal on modern node.\n components.forEach((component) => {\n component.start().catch((e) => {\n logger.error('Starting a background component failed.');\n logger.error(e);\n });\n });\n\n // Info level, and the only line a healthy process writes about this:\n // the sweeps log nothing per tick, the production console transport\n // is info, and a worker whose whole job is these components would\n // otherwise boot silent.\n logger.info(`Background components started: ${registry.map((entry) => entry.name).join(', ')}.`);\n }\n\n async teardown(container: IContainer): Promise<void> {\n const logger = container.tryResolve(LoggerInjectionKey);\n\n const { components } = this;\n this.components = [];\n\n for (const component of components) {\n try {\n await component.stop();\n } catch (e) {\n if (logger.success) {\n logger.data.warn('Stopping a background component failed.');\n logger.data.warn(e);\n }\n }\n }\n }\n\n // ----------------------------------------------------\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAqBA,IAAaO,mBAAb,MAAaA;CACAC;CAEAC;CAECC;CAEAC;CAEV,YAAYD,UAAmC,CAAC,GAAG;EAC/C,KAAKF,OAAOF,WAAWM;EACvB,KAAKH,eAAe;GAChBH,WAAWO;GACXP,WAAWQ;GACXR,WAAWS;GACXT,WAAWU;EACd;EACD,KAAKN,UAAUA;EACf,KAAKC,aAAa,CAAA;CACtB;CAEA,MAAMM,MAAMC,WAAsC;EAC9C,MAAMC,SAASD,UAAUE,QAAQjB,kBAAAA;EACjC,MAAMkB,aAAaH,UAAUE,QAAQhB,qBAAqBkB,UAAU;EACpE,MAAMC,SAASL,UAAUE,QAAQf,kBAAAA;EAIjC,IAAI,CAACc,OAAOK,OAAOC,SAAS;GACxB,IAAI,KAAKf,QAAQgB,UACb,MAAM,IAAIC,MAAM,sPAAA;GAGpBJ,OAAOK,KAAK,uEAAA;GACZ;EACJ;EAEA,MAAMC,QAAQX,UAAUE,QAAQlB,iBAAAA;EAIhC,MAAM4B,WAAqD,CACvD;GACItB,MAAM;GACNuB,WAAW9B,6BAA6BoB,YAAYQ,OAAON,MAAAA;EAC/D,CACH;EAMD,MAAMS,gBAAgBb,OAAOc,wBAAwB;EACrD,MAAMC,cAAcf,OAAOgB,yBAAyBhB,OAAOiB,8BAA8B;EACzF,IAAIjB,OAAOkB,oBAAoBL,iBAAiBE,cAC5CJ,SAASQ,KAAK;GACV9B,MAAM;GACNuB,WAAW/B,4BAA4BqB,YAAYE,MAAAA;EACvD,CAAA;EAGJ,MAAMZ,aAAamB,SAASS,KAAKC,UAAUA,MAAMT,SAAS;EAC1D,KAAKpB,aAAaA;EAIlBA,WAAW8B,SAASV,cAAAA;GAChBA,UAAUW,MAAK,CAAA,CAAGC,OAAOC,MAAAA;IACrBrB,OAAOsB,MAAM,yCAAA;IACbtB,OAAOsB,MAAMD,CAAAA;GACjB,CAAA;EACJ,CAAA;EAMArB,OAAOK,KAAK,kCAAkCE,SAASS,KAAKC,UAAUA,MAAMhC,IAAI,CAAA,CAAEsC,KAAK,IAAA,EAAM,EAAE;CACnG;CAEA,MAAMC,SAAS7B,WAAsC;EACjD,MAAMK,SAASL,UAAU8B,WAAW3C,kBAAAA;EAEpC,MAAM,EAAEM,eAAe;EACvB,KAAKA,aAAa,CAAA;EAElB,KAAK,MAAMoB,aAAapB,YACpB,IAAI;GACA,MAAMoB,UAAUkB,KAAI;EACxB,SAASL,GAAG;GACR,IAAIrB,OAAO2B,SAAS;IAChB3B,OAAO4B,KAAKC,KAAK,yCAAA;IACjB7B,OAAO4B,KAAKC,KAAKR,CAAAA;GACrB;EACJ;CAER;AAGJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type ComponentsModuleOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* Refuse to boot when `core.worker.enabled` is false instead of skipping
|
|
4
|
+
* the components. Worker mode sets it: a process started for nothing but
|
|
5
|
+
* the sweeps must not come up doing nothing.
|
|
6
|
+
*
|
|
7
|
+
* default: false
|
|
8
|
+
*/
|
|
9
|
+
required?: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/components/types.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,uBAAuB,GAAG;IAClC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Config } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Derive the set of trusted application origins (scheme://host[:port]).
|
|
4
|
+
*
|
|
5
|
+
* publicUrl may carry a path, so its origin is extracted; trustedOrigins
|
|
6
|
+
* entries are canonical origins already (normalizeConfig owns that
|
|
7
|
+
* invariant, via `expandToOrigins`) and are merged verbatim.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getAppOrigins(config: Pick<Config, 'publicUrl' | 'trustedOrigins'>): string[];
|
|
10
|
+
//# sourceMappingURL=app-origins.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-origins.d.ts","sourceRoot":"","sources":["../../../../src/app/modules/config/app-origins.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,gBAAgB,CAAC,GAAG,MAAM,EAAE,CAS5F"}
|